Структура правил ICU не работает с исходными языками, которые имеют неправильное произношение. К сожалению, английский язык особенно трудно произнести.
Транслитерация означает эмулирование произношения исходного языка на целевом языке. Это состоит из двух частей: (a) Преобразование ввода в промежуточное представление, которое указывает на произношение; (б) преобразование произношения в конечный результат.
С основанной на правилах инфраструктурой ICU никогда не дадут хороших результатов для (a), но это, скорее всего, будет хорошей системой для выполнения (b). Я бы рекомендовал использовать ваши английские строки с помощью системы «текст-речь» или, по крайней мере, искать вход в очень большом словаре произношения. Это даст вам произношение в International Phonetic Alphabet. После того, как вы произнесите произношения, ICU должен работать достаточно хорошо, чтобы сгенерировать Urdu.
Теперь в ОИТ еще нет правил для перевода Международного фонетического алфавита на урду. Являясь разработчиком правил транслитерации Unicode, я считаю, что это должно быть очень легко реализовать; Я с удовольствием сделаю это, когда найду какое-то время (но кто-нибудь может отправить патчи!) Пожалуйста, напишите ошибку на http://unicode.org/cldr/trac/newticket, если вы хотите пройти этот маршрут.
Вы нашли что-нибудь относительно преобразования урду в римский урду? –