Intl.

2021-06-03 23:15:52

构造函数用于启用语言,区域和脚本显示名称的一致转换。

国际化构造函数以及其他构造函数的几种语言敏感方法(也可以参见“其他构造函数)使用常见的模式来识别语言环境并确定其实际使用的内容并确定它们都接受语句和选项参数,并协商所请求的区域设置(s )在使用Options.LocaleMatcher属性中指定的算法,他们支持的Ligales。

Publuees参数用于确定给定操作中使用的语言环境。 JavaScript实现检查了语言环境,然后计算它理解最接近满足表达的偏好的区域设置。可能是:

lockes列表:任何其他值,它将被转换为对象,然后将其视为一个区域设置数组。

在后两种情况下,使用的实际区域设置是由地区商协商决定的最佳支持的语言环境。

......与连字符分开的所有存在的子标记和序列。区域设置标识符是不区分大小写的ASCII。然而,它'常规使用标题案例(第一个字母大写字母,连续的字母小写)用于脚本子标记,大写字母的子标记,以及其他一切的小写。例如:

识别语言,脚本,区域(包括国家)和(很少使用)变体的子标记在IANA语言子标记记录中注册。此注册表随着时间的推移定期更新,实现可能并不总是最新的,所以不要在普遍支持的子项上依赖太多。

BCP 47扩展序列由单个数字或字母(" x&#34)和用连字符分隔的一个或多个两个到八个字母或数字子标记组成。每个数字或字母允许只允许一个序列:" de-a-foo-a-foo"是无效的。 BCP 47扩展子标记在Unicode CLDR项目中定义。目前只有两个扩展名为语义:

" U" (Unicode)扩展可用于请求额外自定义Intl / Collat​​or,Intl / NumberFormat或Intl / DateTimeFormat对象。例子:" de-de-u-co-phonebk&#34 ;:使用德国排序顺序的电话簿变体,这将重新命令元音解释为相应的字符对:ä→ae,ö→oe,ü→ue。

" TH-TH-U-NU-THAI&#34 ;:使用数量格式化的泰式(0,1,2,3,4,5,6,7,8,9)。

" JA-JP-U-CA-Japanese&#34 ;:使用日期日历和时间格式化,因此2013年表示为19世纪时期的25岁或平成25。

" en-gb-u-ca-islamic&#34 ;:使用英国英语与伊斯兰(Hijri)日历,2017年10月14日的Gregorian日期是Hijri约会24 Muharram,1439。

" t" (转换)扩展指示转换内容:例如,从另一个语言环境转换的文本。没有Intl功能目前考虑" t"扩大。但是,此扩展有时包含一个嵌套的语言环境(没有扩展):例如,变换的扩展名为#34; de-t-en"包含用于英语的区域设置标识符。如果存在嵌套语言环境,则必须是有效的语言环境标识符。例如,因为" en-emodeng-emodeng"是无效的(因为它包含一个重复的emodeng Variant子标记)," de-t-en-emodeng-emodeng"也无效。

最后,使用字母" x"可能会出现,后跟一个或多个由连字符分隔的八个字母或数字子标记。这允许应用程序为自己的私人使用编码信息,这将被所有INTL操作忽略。

由locales参数指定的locales列表,在从它们中删除Unicode扩展后,被解释为来自应用程序的优先级请求。运行时将其与本地数据集进行比较,它可用并选择最佳可用。存在两个匹配算法:"查找"匹配者遵循BCP 47中指定的查找算法; "最适合"匹配器允许运行时提供至少一个,但可能更多,适用于Lookup算法的结果的语言环境。如果应用程序没有提供Lockes参数,或者运行时没有与匹配请求的语言环境,则运行时' s默认语言环境。可以使用选项参数的属性来选择匹配器(见下文)。

如果所选的语言环境标识符具有Unicode扩展序列,则该扩展程序现在用于自定义构造的对象或函数的行为。每个构造函数或函数仅支持为Unicode扩展名定义的键的子集,并且支持的值通常取决于语言环境标识符。例如," CO"密钥(归属)仅由Intl / Collat​​or及其&#34支持; PermalBK"仅限德语的价值。

选项参数必须是具有在构造函数和函数之间变化的属性的对象。如果未提供选项参数或未确定,则默认值用于所有属性。

所有语言敏感构造函数和函数都支持一个属性:LoyeMatcher属性,其值必须是字符串"查找"或"最适合"并且选择上述语言环境匹配算法之一。

您可以使用INTL以特定语言和区域的常规形式格式化日期和数字:

const count = 26254.39; Const Date = New(" 2012-05-24");函数日志(locale){控制台。日志(`$ {new(locale)。格式(日期)} $ {new(locale)。格式(count)}`); }日志(" en-US"); //预期输出:5/24/2012 26,254.39日志(" de-de"); //预期产出:24.5.2012 26.254,39