2016-11-15 26 views
0

Я пытаюсь транслитерировать слова римского английского на урду. очень люблю это website tool. Я использую транслитератор icu4j. Вывод транслитерации маловероятен, например.icu4j transliteration Английский к урду

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

выход: "نمز"

ожидается выход: "نماز"

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

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

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

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

+0

Вы нашли что-нибудь относительно преобразования урду в римский урду? –

ответ

1

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

+0

Спасибо за ваш ответ, я использовал NFD для удаления любых символов акцента из ввода, но это нормально. Если я удалю NFD, он все равно даст такой же результат. Во-вторых, как я могу улучшить правила транслитерации? Я имею в виду, что я не знаю, какие правила транслитерации и я также не знаю, как улучшить их, потому что я думаю, что он управляется icu4j. Если я прав. –

+0

NFD не для удаления символов акцента, это просто разложение. Вы хотите, чтобы вы удалили знаки гласных? Это было бы другим правилом. Но да icu4j данные поступают из CLDR, http://cldr.unicode.org –

1

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

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

С основанной на правилах инфраструктурой ICU никогда не дадут хороших результатов для (a), но это, скорее всего, будет хорошей системой для выполнения (b). Я бы рекомендовал использовать ваши английские строки с помощью системы «текст-речь» или, по крайней мере, искать вход в очень большом словаре произношения. Это даст вам произношение в International Phonetic Alphabet. После того, как вы произнесите произношения, ICU должен работать достаточно хорошо, чтобы сгенерировать Urdu.

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

 Смежные вопросы

  • Нет связанных вопросов^_^