2016-11-15 68 views
0

我試圖將羅馬英語單詞翻譯成烏爾都語單詞。很像這樣website tool.我正在使用icu4j音譯器。輸出音譯很少出乎意料,例如icu4j音譯英語到烏爾都語

輸入: 「namaz」

輸出: 「نمز」

預期輸出: 「نماز」

翻譯: 「祈禱」

下面是我的ID得到實例。

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

有沒有人知道哪裏是問題在我的ID字符串...?

+0

你有沒有發現任何關於將烏爾都語轉換爲羅馬烏爾都語? –

回答

1

我不認爲你的ID字符串本身有問題。 (可能en-ur已經足夠 - 雖然 - 爲什麼要求NFD?)我注意到字符串nmạz音譯到。也許音譯規則還有改進的餘地嗎?

+0

感謝您的回覆,我使用NFD從輸入中刪除任何重音字符,但沒關係如果我刪除NFD,它仍然會提供相同的輸出。其次,我如何改進音譯規則,我的意思是我不知道音譯規則是什麼,以及我不知道如何改善它們,因爲我認爲它是由icu4j管理如果我是對的。 –

+0

NFD不是用於刪除重音字符,它只是一個分解。你的意思是你想刪除元音標記嗎?這將是一個不同的規則。但是,是的,icu4j數據來自CLDR,http://cldr.unicode.org –

1

ICU的規則框架不適用於發音不規則的源語言。可悲的是,英語特別難以發音。

音譯意味着模仿目標語言中源語言的發音。它由兩部分組成:(a)將輸入轉換爲表示發音的中間表示; (b)將發音轉換爲最終輸出。 (a)中,基於規則的ICU框架永遠不會給出好的結果,但它很可能是一個很好的(b)系統。我建議您通過文字轉語音系統來運行您的英文字符串,或者至少在一個非常大的發音字典中查找輸入。這會給你發音International Phonetic Alphabet。一旦你有發音,ICU應該工作得相當好,生成烏爾都語。

現在,ICU還沒有將國際音標轉換爲烏爾都語的規則。作爲Unicode音譯規則的維護者,我認爲這應該很容易實現;我會很樂意做到這一點,當我找到一些時間(但歡迎任何人發送補丁!)如果你想要走這條路,請提供一個缺陷http://unicode.org/cldr/trac/newticket

相關問題