For Rails we've picked the default locale :"en-US" because we've
thought it'd be the most defensive claim to make. Nobody could really
argue for picking anything else because this is in fact the locale to
which Rails always (implicitely) was localized.
But it is also artificial in that Rails I18n itself does not support
locale fallbacks (e.g. looking up :en when :"en-US" is not available)
so when we work with only Rails we either have to use en-US literally
as a locale or somehow map it manually. (E.g. when one wants to use a
route like /en/:ressource one needs to map :en to :en-US so that Rails
can find its own translations. How cumbersome.)
I guess way more than 80% of all applications will be perfectly happy
with only supporting language locales and ignoring the country/region
tag (like :en, :fr, :es, :de, ...).
So my feeling is that we should change the Rails default locale
from :"en-US" to just :en as long as it is still possible.
That might expose us to arguments that we implicitely define English
as American English but on the one hand I'd say that the gained
simplicity and convenience outweighs this and on the other hand we
might argue that Rails actually always implicitely already did that.
For what it's worth, I named mine to just "en" too. English is
English, if you got a local dialect then fine, use it.
> For what it's worth, I named mine to just "en" too. English is
> English, if you got a local dialect then fine, use it.
Raul Murciano - Freelance Web Developer
Can't we implement it in a way we will define how Rails locale should
I18n.rails_locale = :en
And those who want "en-US":
I18n.rails_locale = :"en-US"
The default could be "en-US" since it's more "complete", who is not
satisfied can change it for whatever they want.