按母语人数寻找良好的 ISO 语言标签列表

Ste*_*eve 4 javascript json iso internationalization

我正在寻找一个包含语言代码和相应语言的语言名称的文件。如果该列表按母语人士数量排序,那就太好了。

\n\n

我想要类似下面的列表,但更大并下载

\n\n
{ "cmn" :  ["Chinese", "\xe5\xae\x98\xe8\xaf\x9d"],\n "es" :["Spanish", "espa\xc3\xb1ol"],\n "en": ["English", "English"],\n ... \n"ru": ["Russian", "\xd0\xa0\xd1\x83\xd1\x81\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9"] }\n
Run Code Online (Sandbox Code Playgroud)\n

use*_*800 5

不知道你想要的东西是否唾手可得。您可能需要自己创建它,从最大的语言开始,逐渐转向较小的语言。

这个问题提出了几个困难:

  • 世界上有 6000-7000 种语言,但并非所有语言都有语言标签。
  • 对发言者人数的估计总是有些过时,但有些估计比其他估计更过时。在查阅维基百科来创建我的语言标签列表时,估计的日期是 2010 年至 2010 年代初。因此这些数字并不完全可比。
  • 对较小语言和没有官方地位的语言的估计通常非常粗略,有时甚至不存在。
  • 一些语言标签,尤其是ISO 639-3中的语言标签,是“包容性代码”,即它们标识语言​​组(例如中文)而不是单个语言。
  • 对于某些语言,有时区分不同国家/地区使用的变体很有用,例如,当您想要区分比利时荷兰语或荷兰语与荷兰语的语音合成时。

您最初需要的只是ISO 639-1语言标签(两个字母代码)的列表,因为最大的语言都在那里表示。对于较小的产品,您最终将需要ISO 639-3 标签(三字母代码)。IETF BCP 47建议您使用特定语言可用的最短代码。(因此,在您的示例中,中文的“cmn”将被替换为“zh”、“zh-CN”、“zh-TW”或其他内容,具体取决于您想要的具体程度。)

不管怎样,我现在在我的 GitHub 存储库之一中有一个包含 400 多种语言的 JSON 文件。请参阅http://cstrobbe.gitlab.io/languagelearning/misc/languagetags.json

PS:有关按字母顺序排列的 ISO 639-1 标签的 JSON 列表,请参阅GitHub 上的 languages.js。这些标签并不是按照相应语言的母语人数排序的。(ISO 639-3 涵盖的许多语言并不在 ISO 639-1 中。)