add dialect support

@robguthrie this is the only place I saw anything mentioning fallback. You said something about wanting to create a fallback tree for languages. 
I imagined that with a locale like like `:zh` this would mean that the app would know that `:zh_TW` should be tried before `:en`. Same with `:pt` and `:pt_BR`. I guess when you said somethinkg like 'tree' I imagined a hash with some safe fallbacks which might be referenced when best
Was this what you were thinking. If so did you have a place/method in mind for this?