Should I assume that ^[a-z]{2} will match any locale?
I'm implementing the routing and i18n part of my framework. I'm wondering if I should assume that
^[a-z]{2}
Will be a locale, and if so use it. Or should I make the user p开发者_Python百科opulate a list with languages? Eg:
supported = [ 'en', 'es', 'it', 'ru', ]
So the developer has to manually define languages. And for the record, 90% of the sites here only use en
only.
ISO 639 is the language code specs - but it defines more than one way
- ISO 639-1: two-letter codes
- ISO 639-2/T: three letter codes
- ISO 639-2/B: three letter codes
- ISO 639-3: three letter codes where dialects of a common root (Arabic Generic, Arabic Standard for example) are separate.
However is language actually a locale? EN for example most certainly isn't. Being British I want EN-UK content first, but I'm in the US. This means google redirects me to google.co.uk which is certainly not what I want.
Keep in mind that some languages need more than two characters to specify. Simplified Chinese is often "zh-CN" or "zh-HANS", and Traditional Chinese is "zh-TW" or "zh-HANT". Brazilian Portuguese is "pt-BR", and so on.
精彩评论