我正在使用 PHP Transliterator(来自 php5-intl,使用 ICU)将 CJK 音译为拉丁语(罗马化),问题是,我需要一些方法来指定输入区域设置,以便日语汉字不会被罗马化为中文拼音(因为它们经常共享相同的 utf8 character )。

例如:
transliterator_transliterate('Any-Latin; Latin-ASCII; Lower();', $input);中国オタク界 => zhong guo otaku jie
虽然我想得到:
中国オタク界 => chuu goku otaku kai
任何想法?

ICU site 的进一步研究表明问题可能是 Han-Latin 只遵循拼音音译,所以我正在寻找一种方法让 php5-intl 告诉 ICU 使用罗马字音译(我还没有找到这样的 id)。

最佳答案

是的,Han-Latin 是拼音的意思。 ICU 音译来自 CLDR(我将更新用户指南以说明这一点)。 ICU 已经可以将假名 (hira/kata) 转换为拉丁语,但是 Kanji 有多个读数,因此您不会通过简单的基于表格的转换找到所需的内容。

编辑: 总而言之,ICU 不会在没有编写规则的情况下做您想做的事情,在我看来,由于日语的工作方式,使用您自己的规则似乎也不是一件容易的事。

关于PHP 音译指定语言环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22496164/

10-13 09:19