我已经用谷歌搜索(好吧,实际上是 DuckDuckGo'ed),直到我脸色发青,但找不到该类型en-GB
或fr-CA
任何地方的语言代码列表。
有关于组件的优秀资源,特别是W3C I18n 页面,但我希望有一个简单的按字母顺序排列的列表,如果可能的话,相当规范(类似于这个)。找不到。
谁能指出我正确的方向?非常感谢!
我已经用谷歌搜索(好吧,实际上是 DuckDuckGo'ed),直到我脸色发青,但找不到该类型en-GB
或fr-CA
任何地方的语言代码列表。
有关于组件的优秀资源,特别是W3C I18n 页面,但我希望有一个简单的按字母顺序排列的列表,如果可能的话,相当规范(类似于这个)。找不到。
谁能指出我正确的方向?非常感谢!
有几种语言代码系统和几种地区代码系统,以及它们的组合。当您提到 W3C 页面时,我假设您指的是BCP 47中定义的系统。该系统是正交的,因为像 en-GB 和 fr-CA 这样的代码只是简单地结合了语言代码和区域代码。这意味着有大量可能的组合,其中大部分没有什么意义,例如 ab-AX,这意味着在奥兰说的阿布哈兹语(我不认为任何人,更不用说任何社区,在那里说阿布哈兹语,尽管理论上是当然可能)。
因此,任何语言-区域组合列表都只是一个实用的组合列表,这些组合在某种意义上很重要,或者在某种特殊意义上被某些软件支持。
您找到的规范定义了一般原则以及不同“子标签”(如主要语言代码和区域代码)的权威来源。对于最重要的部分,官方注册机构维护语言的三字母和两字母 ISO 639 代码,ISO 网站包含区域的两字母 ISO 3166 代码。这些列表非常易读,我认为没有理由考虑使用这些主要资源之外的其他资源,尤其是在可能的更改方面。
Unicode 维护这样一个列表: http ://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/index.html 更好的是,您可以使用 XML 格式(非常适合解析列表)以及每种语言使用的常用书写系统:http: //unicode.org/repos/cldr/trunk/common/supplemental/supplementalData.xml (查看/LanguageData)
一种解决方案是解析此列表,它会为您提供创建所需列表所需的所有键。
http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
这可以在Unicode 的 Common Locale Data Repository中找到。具体来说,此信息的JSON 文件可在他们的cldr-json 存储库中找到
我们有一个工作列表,用于为 Localizejs 引用语言代码/语言名称。希望有帮助
主要语言子标签列表,每种语言都有公共区域子标签(基于每个地区的语言使用者人数):
https://www.unicode.org/cldr/charts/latest/supplemental/language_territory_information.html
例如,对于英语:
(Jukka K. Korpela和tigrish很好地解释了为什么语言 + 区域代码的任何组合都是有效的,但是拥有一个最有可能在实际使用中的代码列表可能会有所帮助。 sf的链接对这些有用的信息进行了排序按地区划分,因此按语言对这些信息进行排序也可能会有所帮助。)