如何确定浏览器支持具有多个"alphabetic orders"的语言的 Intl.Collator 的排序规则变体?



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

现在浏览器的支持不同,所以我在 Chrome 上发现有些语言我可以使用,而另一些则不使用。

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

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".

相关内容

  • 没有找到相关文章

最新更新