java - icu4j音译英语到乌尔都语

标签 java icu transliteration icu4j

我正在尝试将罗马英语单词音译为乌尔都语单词。很像这样website tool.我正在使用 icu4j音译者。输出音译有点出乎意料,例如

input : "namaz"

output : "نَمَز"

expected output : "نماز"

English Translation : "Prayer"

下面是我获取实例的id。

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

有谁知道我的 id String 哪里有问题...???

最佳答案

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

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

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

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

关于java - icu4j音译英语到乌尔都语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40606099/

相关文章:

unicode - 使用 ICU 消息语法时,是否应该将复数 `offset` 参数替换为代码?

raku - Perl 6 : Backslashes in transliteration (tr///)

c# - C# 中的 Slugify 和字符音译

java - 使用 icu4j 将德语变音符号音译到他们的 DIN 5007-2 替代品中

node.js - Intl.NumberFormat 在 Node 和浏览器中的不同行为

java - 为什么java中的集合有int索引?

java - 以安全的方式将字符串转换为整数

Python - 检查一个字符是否在字典中,如果不在则处理它

java - 难以找到最高平均值

java - Signapk.jar 给出错误 java.lang.ClassNotFoundException : sun. misc.BASE64Encoder