我用Google搜索(好吧,实际上是DuckDuckGo),直到我脸色发蓝,但找不到任何地方en-GB
或fr-CA
类型的语言代码列表。
有很多关于组件的资源,特别是W3C I18n page,但我希望有一个简单的字母列表,如果可能的话,这是相当规范的(类似this one)。找不到。
有人能指出我正确的方向吗?非常感谢!
答案 0 :(得分:44)
有几种语言代码系统和几种区域代码系统,以及它们的组合。当您参考W3C页面时,我认为您指的是BCP 47中定义的系统。在诸如en-GB和fr-CA之类的代码简单地组合语言代码和区域代码的意义上,该系统是正交的。这意味着大量可能的组合,其中大部分都没有意义,比如ab-AX,这意味着Åland的阿布哈兹语(我认为没有人,更不用说任何社区,在那里说阿布哈兹语,尽管从理论上说当然可能。)
因此,任何语言区域组合列表都只是一个实用的组合列表,这些组合在某种意义上很重要,或者某些特殊意义上的某些软件支持。
您找到的规范定义了一般原则以及不同“子标签”(如主要语言代码和区域代码)的权威来源。对于最重要的部分,官方注册机构维护语言three- and two-letter ISO 639 codes,ISO站点包含区域two-letter ISO 3166 codes。这些列表非常易读,我认为没有理由考虑使用除这些主要资源之外的其他资源,特别是有关可能的更改。
答案 1 :(得分:8)
这里有两个组成部分:
您可以根据自己的意义混合搭配语言和区域,这样就没有所有可能性的列表。
顺便说一句,您实际上正在使用BCP47 tag,它定义了每个区域设置细分的标准。
答案 2 :(得分:7)
Unicode维护这样一个列表: http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/index.html 更好的是,您可以使用XML格式(理想的解析列表)以及每种语言使用的常用书写系统: http://unicode.org/repos/cldr/trunk/common/supplemental/supplementalData.xml (查看/ LanguageData)
答案 3 :(得分:2)
一种解决方案是解析此列表,它将为您提供创建所需列表所需的所有密钥。
http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
答案 4 :(得分:2)
我们有一个工作清单,我们为Localizejs的语言代码/语言名称引用而工作。希望有所帮助
答案 5 :(得分:2)
答案 6 :(得分:2)
这可以在 Unicode's Common Locale Data Repository 找到。具体来说,此信息的 JSON file 可在他们的 cldr-json repo
答案 7 :(得分:0)
主要语言子标签的列表,以及每种语言的公共区域子标签(基于每个区域的讲语言的人群):
https://www.unicode.org/cldr/charts/latest/supplemental/language_territory_information.html
例如,对于English:
(Jukka K. Korpela和tigrish很好地解释了为什么任何语言+地区代码组合是有效的,但是列出以下内容可能会有所帮助s-f的链接具有按区域分类的有用信息,因此按语言对这些信息进行分类也可能会有所帮助。)