2

JavaScript ES6/Harmony 现在具有特定于语言的排序/整理。

现在浏览器的支持有所不同,所以我在 Chrome 中找到了一些我使用的语言,而另一些则没有。

但我遇到的问题是芬兰语、日语、西班牙语和瑞典语等语言,它们有不止一种排序文本的方式,找到浏览器支持的方式?

4

1 回答 1

1

Intl.Collator.supportedLocalesOf接受一个语言环境列表并返回它支持的那些,但它会在测试支持之前从每个语言环境中删除 Unicode 扩展。所以如果你要做

Intl.Collator.supportedLocalesOf("de-u-co-phonebk")

并且de支持语言环境,但支持电话簿排序,你会回来["de-u-co-phonebk"]的。可能更糟(因为我怀疑对de语言环境的支持几乎总是意味着对电话簿排序的支持),如果你把它打错

Intl.Collator.supportedLocalesOf("de-u-co-phonebm")

你会得到["de-u-co-phonebm"]这可能真的很糟糕。

鉴于这已经结束,我认为您必须单独尝试为所有语言环境创建整理器,指定您关心的可能影响排序顺序的所有可能的 Unicode 语言环境扩展,然后检查resolvedOptions().locale整理器以查看 Unicode 扩展是否转移超过。例如,

Intl.Collator("de-u-co-phonebk").resolvedOptions().locale

将返回"de-u-co-phonebk",而

Intl.Collator("de-u-co-phonebm").resolvedOptions().locale

将返回"de"

于 2016-10-26T22:13:43.410 回答