PHP音译指定语言环境
我正在使用(从php5 intl,使用ICU)将CJK音译为拉丁语(罗马化),问题是,我需要一些方法来指定输入区域,这样日本汉字就不会被罗马化为汉语拼音(因为它们通常共享相同) 例如:PHP音译指定语言环境,php,locale,icu,transliteration,Php,Locale,Icu,Transliteration,我正在使用(从php5 intl,使用ICU)将CJK音译为拉丁语(罗马化),问题是,我需要一些方法来指定输入区域,这样日本汉字就不会被罗马化为汉语拼音(因为它们通常共享相同) 例如: transiterator_transiterate('Any-Latin;拉丁ASCII;Lower();',$input) 中国オタク界 => 中国御宅节 虽然我想得到: 中国オタク界 => 丘悟空御宅佳 有什么想法吗 关于这个问题的进一步研究表明,这个问题可能是Han-lactin只遵循拼音音译,因此我正
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的主要网站上搜索了一些,发现很少有关于汉字的主题。作为母语为汉语和日语的读者,我知道他们音译的核心困难。我的问题主要是找到一个类似于汉语拉丁语的解决方案,但似乎还没有开源的解决方案。