我试图将罗马英语单词翻译成乌尔都语单词。很像这样website tool.我正在使用icu4j音译器。输出音译很少出乎意料,例如icu4j音译英语到乌尔都语
输入: “namaz”
输出: “نمز”
预期输出: “نماز”
翻译: “祈祷”
下面是我的ID得到实例。
String id = "Eng-ur; NFD;";
有没有人知道哪里是问题在我的ID字符串...?
我试图将罗马英语单词翻译成乌尔都语单词。很像这样website tool.我正在使用icu4j音译器。输出音译很少出乎意料,例如icu4j音译英语到乌尔都语
输入: “namaz”
输出: “نمز”
预期输出: “نماز”
翻译: “祈祷”
下面是我的ID得到实例。
String id = "Eng-ur; NFD;";
有没有人知道哪里是问题在我的ID字符串...?
我不认为你的ID字符串本身有问题。 (可能en-ur
已经足够 - 虽然 - 为什么要求NFD?)我注意到字符串nmạz
音译到。也许音译规则还有改进的余地吗?
感谢您的回复,我使用NFD从输入中删除任何重音字符,但没关系如果我删除NFD,它仍然会提供相同的输出。其次,我如何改进音译规则,我的意思是我不知道音译规则是什么,以及我不知道如何改善它们,因为我认为它是由icu4j管理如果我是对的。 –
NFD不是用于删除重音字符,它只是一个分解。你的意思是你想删除元音标记吗?这将是一个不同的规则。但是,是的,icu4j数据来自CLDR,http://cldr.unicode.org –
ICU的规则框架不适用于发音不规则的源语言。可悲的是,英语特别难以发音。
音译意味着模仿目标语言中源语言的发音。它由两部分组成:(a)将输入转换为表示发音的中间表示; (b)将发音转换为最终输出。 (a)中,基于规则的ICU框架永远不会给出好的结果,但它很可能是一个很好的(b)系统。我建议您通过文字转语音系统来运行您的英文字符串,或者至少在一个非常大的发音字典中查找输入。这会给你发音International Phonetic Alphabet。一旦你有发音,ICU应该工作得相当好,生成乌尔都语。
现在,ICU还没有将国际音标转换为乌尔都语的规则。作为Unicode音译规则的维护者,我认为这应该很容易实现;我会很乐意做到这一点,当我找到一些时间(但欢迎任何人发送补丁!)如果你想要走这条路,请提供一个缺陷http://unicode.org/cldr/trac/newticket。
你有没有发现任何关于将乌尔都语转换为罗马乌尔都语? –