2009-03-16 3 views
3

Локализация саги продолжается ...Как транслитерировать китайский текст на пиньинь на iPhone?

Итак, я пытаюсь поддерживать сортировку китайского текста в приложении для iPhone, и после разговора с родным китайским оратором, я думаю, я понимаю, как это делают китайцы ...

Допустим, у вас была строка 巴拉克 · 奥巴马, и вы хотели выяснить, в какую часть китайской телефонной книги положить ее (в этом примере я игнорирую имя/фамилию и просто использую первый символ строки) ...

Сначала вы транслитерируете его на пиньинь, который дает вам «балаке аобама» Затем вы сортируете по первому символу er этой строки: «b»

Итак, вопрос в том, как я могу перейти от 巴拉克 · 奥巴马 к баллаке aobama с помощью iPhone SDK? Похоже, что библиотека ICU, которая отправляется по телефону, может делать такую ​​транслитерацию, но я не уверен, могу ли я легко ее использовать из своего кода, и даже если могу, я не знаю, транслитерация материал включен в сборку ICU, которая поступает по телефону.

Если ICU не работает, есть ли у кого-нибудь лучшие идеи?

ответ

1

В последних версиях iPhone SDK (3.0 и новее) класс UILocalizedIndexedCollation может выполнять сортировку для китайского и всех других языков, поддерживаемых на iPhone.

1

Вы довольно хорошо должен сделать это с помощью таблицы поиска. Помните, что каждый символ ханзи имеет (по крайней мере) одно чтение, но связь между характером и способом его звучания нерегулярна, а иногда и произвольна.

+0

Можете ли вы указать мне какие-либо ссылки, которые я могу использовать для создания этой таблицы поиска? Я довольно новичок в этом пиньине ... –

+1

ну, в некоторой степени это китайский словарь. Взгляните на CEDICT: http://www.mdbg.net/chindict/chindict.php?page=cedict –

0

Простите мое невежество, но не -localizedCompare: или -compare:options:range:locale: между двумя NSStrings выполните эту сортировку заказа для вас?

+0

-localizedCompare здесь не делает правильной вещи. Я проверю -compare: options: range: locale: –