JavaScript ES6/Harmony に、言語固有の並べ替え/照合が追加されました。
現在、ブラウザによってサポートが異なるため、Chrome では、使用する言語と使用しない言語があることがわかりました。
しかし、私が問題を抱えているのは、フィンランド語、日本語、スペイン語、スウェーデン語など、テキストを並べ替える方法が複数あり、ブラウザでサポートされている方法を見つけることです。
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"
ます。