React Intl 使用什么格式的语言环境?

Chr*_*zak 3 javascript localization react-intl

根据 React Intl 文档,要为您的应用程序添加对特定语言的支持,您需要从locale-data/目录中导入相关语言文件并将其传递给名为addLocaleData().

对于英语或法语等语言,一切都很简单,en.js并且fr.js遵循熟悉的两字母代码命名约定。但是,该locale-data目录还包含一系列我以前从未遇到过的带有三个字母语言代码的文件,例如:agq,guzkkj.

我正在寻找一些文档来帮助我将这些语言代码映射到相应的语言。

我需要它的原因是我目前正在尝试查找奥地利德语和巴西葡萄牙语的语言文件,我只是不知道它们隐藏在什么代码后面。我认为前者可能在下可用,at.js但没有这样的文件,而后者 - 在下br.js但该文件包含一些其他语言。

T.J*_*der 5

TL; 博士

它使用ISO 639,特别是:

  • ISO 639-1(两个字母的代码)用于 ISO 639-1 涵盖的语言,以及
  • ISO 639-3适用于 ISO 639-1 未涵盖但 ISO 639-3 涵盖的语言

您可以在此处找到所有代码。它列出了 ISO 639-1 代码(其中有一个)和 ISO 639-3 代码(以及 ISO 639-2/T 和 ISO 639-2/B 代码,我认为它们已经过时了)。


细节:

标签说:“联合收割机反应的组分与FormatJS。” 快速搜索 FormatJS 会打开它的网站,在它的关于页面上说:

行业标准

FormatJS 建立在ECMAScript 国际化 API (ECMA-402)之上,使用来自CLDR 的区域设置数据,并使用专业翻译人员使用的行业标准ICU 消息语法

(我的重点)

按照 CLDR 链接,您将进入 unicode.org 上的 CLDR 页面,该页面描述了下载页面的格式和链接。在 CLDR 网站上闲逛,它提到了 ISO 639-3 语言代码。踢在他们的“当前工作”,我们可以找到这些代码的UTF-8名单在这里,其中列出了所有三个你所提到的:agq(Aghem), guz(列出两次; Ekegusii和古西伊),和kkj(化工株式会社)。

但是,在评论中user3775501指出他/她检查过的唯一代码(针对威尔士语)是cym,但在查看 时node_modules/react-intl/locale-data,却是cy。它显然cym在 ISO 639-3 中,但cy在 ISO 639-1 中;显然,他们整体使用ISO 639,而不仅仅是 ISO 639-3。ISO 639 定义了两个字母的代码 (ISO 639-1) 和三个字母的代码 (ISO 639-3)(有一个关于四字母代码的提案已被撤销,另外一个 ISO 639-2 显然有两个部分,T 和 B,我认为它们已经过时了)。ISO 639-3 的注册机构 SIL International 的此页面列出了两个字母 (ISO 639-1) 和三个字母 (ISO 639-3) 的代码。在代码的第一页以c我们找到威尔士语,cy在 ISO 639-1、cymISO 639-2/T、welISO 639-2/B 和cymISO 639-3 中。(威尔士语的威尔士名字是Cymraeg,因此是cy/ cym)。

查看node_modules/react-intl/locale-data,我们可以看到两个字母和三个字母的代码。例如,这里是 c:

钙
ce
CG
铬
卡布
CS
铜
cy

查看 SIL International 的c 列表,我们发现:

  • ca - 加泰罗尼亚语、巴伦西亚语的 ISO 639-1 代码;它的 ISO 639-3 代码是cat
  • ce - 捷克语的 ISO 639-1 代码;它的 ISO 639-3 代码是che
  • cgg - Chiga 的 ISO 639-3 代码,没有 ISO 639-1 代码
  • chr - 切诺基的 ISO 639-3 代码,没有 ISO 639-1 代码
  • ckb - 中部库尔德语的 ISO 639-3 代码,没有 ISO 639-1 代码
  • cs - 捷克语的 ISO 639-1 代码;它的 ISO 639-3 代码是ces
  • cu - 教会斯拉夫语、教会斯拉夫语、古保加利亚语、古教会斯拉夫语、古斯拉夫语的 ISO 639-1 代码;它的 ISO 639-3 代码是chu
  • cy - 威尔士的 ISO 639-1 代码;它的 ISO 639-3 代码是cym

所以看起来他们在使用 ISO 639-1 代码的地方,如果没有 ISO 639-1 代码,则使用 ISO 639-3 代码。

在 SIL 列表中搜索“austri”只会找到奥地利手语。搜索“德语”会产生许多德语方言,但没有识别为奥地利方言。维基百科告诉我,大多数奥地利人都说巴伐利亚语,也就是bar. 搜索“braz”不会出现巴西葡萄牙语;搜索“portu”会出现几个葡萄牙语的方言,您必须弄清楚哪些与您的目标人群相关。