2

我正在尝试将罗马英语单词音译为乌尔都语单词。很像这个网站工具。我正在使用icu4j音译。输出音译有点出乎意料,例如

输入:“namaz”

输出:“نَمَز”

预期输出:“نماز”

英文翻译:“祈祷”

下面是我获取实例的 ID。

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

有谁知道我的 id 字符串哪里有问题...???

4

2 回答 2

4

ICU 的规则框架不适用于发音不规则的源语言。可悲的是,英语特别难发音。

音译是指模仿目标语言中源语言的发音。这包括两部分: (a) 将输入转换为指示发音的中间表示;(b) 将发音转换为最终输出。

对于英语到乌尔都语,基于规则的 ICU 框架永远不会为 (a) 提供良好的结果,但它很可能是执行 (b) 的良好系统。我建议通过文本到语音系统运行您的英语字符串,或者至少在一个非常大的发音词典中查找输入。这将为您提供国际音标的发音。一旦你有了发音,ICU 应该可以很好地生成乌尔都语。

现在,ICU 还没有将国际音标转换为乌尔都语的规则。作为Unicode音译规则的维护者,我认为这应该很容易实现;当我找到一些时间时,我会很乐意这样做(但欢迎任何人发送补丁!)如果你想走这条路,请在http://unicode.org/cldr/trac/newticket提交错误。

于 2016-11-24T14:23:25.177 回答
2

我认为您的 ID 字符串本身没有问题。(但可能en-ur就足够了 - 为什么要请求 NFD?)我注意到该字符串nmạz完全音译为نماز。或许音译规则还有改进的余地?

于 2016-11-21T19:34:30.853 回答