对于具有多个 "alphabetic orders" 的语言,我如何确定浏览器支持 Intl.Collator 的排序规则变体?
How can I determine which collation variants a browser supports for Intl.Collator for languages which have multiple "alphabetic orders"?
JavaScript ES6/Harmony 现在有特定语言 sorting/collation.
现在浏览器的支持各不相同,所以我发现 Chrome 我使用的一些语言可以工作,而其他语言则不能。
但我遇到的麻烦是芬兰语、日语、西班牙语和瑞典语等语言,它们有不止一种排序文本的方式,查找浏览器支持哪些方式?
Intl.Collator.supportedLocalesOf
接受语言环境列表和 return 它支持的语言环境,但它在测试支持之前从每个语言环境中删除了 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
将return"de-u-co-phonebk"
,而
Intl.Collator("de-u-co-phonebm").resolvedOptions().locale
将 return "de"
.
JavaScript ES6/Harmony 现在有特定语言 sorting/collation.
现在浏览器的支持各不相同,所以我发现 Chrome 我使用的一些语言可以工作,而其他语言则不能。
但我遇到的麻烦是芬兰语、日语、西班牙语和瑞典语等语言,它们有不止一种排序文本的方式,查找浏览器支持哪些方式?
Intl.Collator.supportedLocalesOf
接受语言环境列表和 return 它支持的语言环境,但它在测试支持之前从每个语言环境中删除了 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
将return"de-u-co-phonebk"
,而
Intl.Collator("de-u-co-phonebm").resolvedOptions().locale
将 return "de"
.