PHP音译指定语言环境

PHP音译指定语言环境,php,locale,icu,transliteration,Php,Locale,Icu,Transliteration,我正在使用(从php5 intl,使用ICU)将CJK音译为拉丁语(罗马化),问题是,我需要一些方法来指定输入区域,这样日本汉字就不会被罗马化为汉语拼音(因为它们通常共享相同) 例如: transiterator_transiterate('Any-Latin;拉丁ASCII;Lower();',$input) 中国オタク界 => 中国御宅节 虽然我想得到: 中国オタク界 => 丘悟空御宅佳 有什么想法吗 关于这个问题的进一步研究表明,这个问题可能是Han-lactin只遵循拼音音译,因此我正

我正在使用(从php5 intl,使用ICU)将CJK音译为拉丁语(罗马化),问题是,我需要一些方法来指定输入区域,这样日本汉字就不会被罗马化为汉语拼音(因为它们通常共享相同)

例如:

transiterator_transiterate('Any-Latin;拉丁ASCII;Lower();',$input)

中国オタク界 => 中国御宅节

虽然我想得到:

中国オタク界 => 丘悟空御宅佳

有什么想法吗



关于这个问题的进一步研究表明,这个问题可能是
Han-lactin
只遵循拼音音译,因此我正在寻找一种方法,允许php5 intl告诉ICU使用罗马拼音音译(我还没有找到这样的id)。

我能想到的一种可能性是使用

setlocale(LC_ALL, "ja_JP");

然后,在运行音译器之前,您可以应用各种方法对文本进行格式化。

这是我提出的一个脚本,用于测试与
拉丁ASCII链接的所有不同的tracriter;下(),但它们中的任何一个都不会产生您所寻求的结果。您可以尝试其他汉字,并尝试选择除
任何拉丁语以外的音译词

$scripts = transliterator_list_ids();

foreach ($scripts as $script) {
    echo $transliterated = transliterator_transliterate(
        $script . '; Latin-ASCII; Lower();',
        '中国オタク界'
    ) . ' in ' . $script . "\n";
}

这些词产生了一些有意义的东西,其作用方式与任何拉丁语都不同:
JapaneseKana-Latin/BGN
Katakana-Latin
,是的,
Han-Latin
意味着拼音。ICU的音译词来自(我将更新用户指南以澄清这一点)。ICU已经可以将假名(hira/kata)转换为拉丁语,但汉字有不止一种读法,因此通过简单的基于表格的转换,您将找不到所需的内容


编辑:总之,如果没有书面规则,ICU将不会做你想做的事情,在我看来,由于日语是如何工作的,用你自己的规则做起来也不容易。

thx用于研究工作。我会看看我能用它做些什么。赏金给你,先生,但不幸的是,我还没有找到一种不写自定义规则就实现汉字罗马化的方法(见我的问题更新)。也许你有更进一步的见解?为了证实这一点,维基百科似乎建议CLDR主要使用BGN/PCGN罗马化的规则集,它似乎不包含特定于汉字的规则。所以,我想做的比我最初的猜测要困难得多(至少,正确地做需要付出更多的努力)…请参阅维基百科关于日语汉字的文章,每个汉字都有多重阅读。你的意思是?您是否访问过CLDR自己的网站或邮件列表?这比维基百科更具权威性(我不知道“很多”这句话是从哪里来的。)是的,我在CLDR的主要网站上搜索了一些,发现很少有关于汉字的主题。作为母语为汉语和日语的读者,我知道他们音译的核心困难。我的问题主要是找到一个类似于汉语拉丁语的解决方案,但似乎还没有开源的解决方案。