icu4j транслитерация с английского на урду

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

вход: "намаз"

вывод: "نَمَز"

ожидаемый результат: "نماز"

Английский перевод: "Молитва"

Ниже мой идентификатор, чтобы получить экземпляр.

String id = "Eng-ur; NFD;";

Кто-нибудь знает, где проблема в моем идентификаторе String...???

2 ответа

Структура правил ICU не очень хорошо работает с исходными языками с нерегулярным произношением. К сожалению, английский язык особенно трудно произносить.

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

С английским на урду основанная на правилах структура ICU никогда не даст хороших результатов для (а), но, скорее всего, это будет хорошая система для выполнения (б). Я бы порекомендовал пропустить ваши английские строки через систему преобразования текста в речь или, по крайней мере, посмотреть ввод в очень большом словаре произношения. Это даст вам произношение в международном фонетическом алфавите. Как только у вас есть произношение, ICU должен работать достаточно хорошо, чтобы генерировать урду.

Сейчас в ICU еще нет правил для преобразования международного фонетического алфавита в урду. Как разработчик правил транслитерации Unicode, я думаю, что это должно быть очень легко реализовать; Я с удовольствием сделаю это, когда найду время (но каждый может присылать патчи!) Пожалуйста, отправьте сообщение об ошибке по адресу http://unicode.org/cldr/trac/newticket если вы хотите пойти по этому пути.

Я не думаю, что есть проблема с вашей строкой идентификатора как таковой. (Наверное en-ur хотя достаточно - зачем запрашивать NFD?) Замечу, что строка nmạz транслитерует точно на نماز. Возможно, есть место для улучшения правил транслитерации?

Другие вопросы по тегам