Я сталкиваюсь с довольно сложной задачей здесь. Я должен отсортировать некоторые китайские «выражения» по пиньинь.
Вопрос:
Как я могу сортировать по пиньинь в Firefox?
Есть ли способ правильно сортировать в IE 9 и 10? (Они также должны поддерживаться веб-сайтом)
Пример:
- 财经传讯公司
- 财经顾问
- 房地产及按揭
По мнению бюро переводов, именно таким должен быть порядок сортировки слов. Переводы следующие:
- Агентства финансовых коммуникаций
- Финансовые консультации
- Недвижимость и ипотека
Произношения в латинском алфавите:
- Цай цзин чуань сюнь гун си
- Цай Цзин гу вэнь
- фан ди чан джи ан цзе
String.localeCompare: документы MDN
Насколько я понимаю, я должен предоставить 2-й аргумент методу String.localeCompare
, который «говорит» методу о сортировке по пиньину в формате BCP 47, который должен быть zh-CN-u-co-pinyin
.
Таким образом, полный код должен выглядеть так:
var arr = [ "财经传讯公司", "财经顾问", "房地产及按揭"];
console.dir(arr.sort(function(a, b){
return a.localeCompare(b, [ "zh-CN-u-co-pinyin" ]);
}));
Я ожидал, что это зарегистрирует выражения для консоли в том порядке, в котором я их ввел в массив, но вывод отличается.
В FX 27 порядок следующий: 3, 1, 2
В Chrome 33: 1, 2, 3
В IE 11: 1, 2, 3
Примечание.
Пиньинь — это официальная фонетическая система для преобразования китайского произношения китайских иероглифов в латинский алфавит.