add dialect support

@robguthrie can you look over this file please.
I've shifted everything towards using symbols (rather than strings).
Also decided to use dashes in locales as this is what browsers speak in  ( `:'pt-BR'`  vs. `:pt_BR` )