3

JavaScript ES6/Harmony現在具有語言特定的排序/排序規則。如何確定瀏覽器支持多種「字母順序」語言的Intl.Collat​​or的排序規則變體?

現在,瀏覽器在支持方面有所不同,所以我使用Chrome找到了一些我使用過的工作語言,而其他語言則沒有。

。但我遇到的麻煩是語言,如芬蘭,日語,西班牙語和瑞典語,這有訂貨的文字,發現其方式是通過瀏覽器支持不止一種方式?

回答

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"