我正在尝试将罗马英语单词音译为乌尔都语单词。很像这个网站工具。我正在使用icu4j音译。输出音译有点出乎意料,例如
输入:“namaz”
输出:“نَمَز”
预期输出:“نماز”
英文翻译:“祈祷”
下面是我获取实例的 ID。
String id = "Eng-ur; NFD;";
有谁知道我的 id 字符串哪里有问题...???
ICU 的规则框架不适用于发音不规则的源语言。可悲的是,英语特别难发音。
音译是指模仿目标语言中源语言的发音。这包括两部分: (a) 将输入转换为指示发音的中间表示;(b) 将发音转换为最终输出。
对于英语到乌尔都语,基于规则的 ICU 框架永远不会为 (a) 提供良好的结果,但它很可能是执行 (b) 的良好系统。我建议通过文本到语音系统运行您的英语字符串,或者至少在一个非常大的发音词典中查找输入。这将为您提供国际音标的发音。一旦你有了发音,ICU 应该可以很好地生成乌尔都语。
现在,ICU 还没有将国际音标转换为乌尔都语的规则。作为Unicode音译规则的维护者,我认为这应该很容易实现;当我找到一些时间时,我会很乐意这样做(但欢迎任何人发送补丁!)如果你想走这条路,请在http://unicode.org/cldr/trac/newticket提交错误。
我认为您的 ID 字符串本身没有问题。(但可能en-ur
就足够了 - 为什么要请求 NFD?)我注意到该字符串nmạz
完全音译为نماز。或许音译规则还有改进的余地?