JavaScript ES6 / Harmony现在具有特定于语言的排序/整理。
现在浏览器的支持各不相同,所以我在Chrome中找到了一些我使用的语言而其他语言没有。
但我遇到的问题是芬兰语,日语,西班牙语和瑞典语等语言,它们有多种方式来排序文本,找到浏览器支持的方式?
答案 0 :(得分: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语言环境扩展,然后检查{{1在collator上查看是否转移了Unicode扩展。例如,
resolvedOptions().locale
将返回Intl.Collator("de-u-co-phonebk").resolvedOptions().locale
,而
"de-u-co-phonebk"
将返回Intl.Collator("de-u-co-phonebm").resolvedOptions().locale
。