我已经搜索了几个小时的解决方案,包括在文档中。
尝试使用gettext进行希伯来语翻译,
使用PHP 5.3.1和wamp,
它打印出“hello world”而不是希伯来文等价物
$directory = '/locale';
$domain = 'messages';
$locale ="he_IL";
putenv("LANG=".$locale); //not needed for my tests, but people say it's useful for windows
setlocale( LC_ALL, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
echo _("hello world");
我使用poedit来创建mo / po文件,它们位于: ./locale/he_IL/LC_MESSAGES/messages.mo
php文件位于“./”
为什么我不能收到希伯来文?
答案 0 :(得分:1)
好的解决了,
必须更新到PHP版本5.3.5 / 5.3.10
因为我正在使用Windows,所以我必须使用这个语言环境“Hebrew_Israel.1255” 而不是“he_IL”(这就是windows无论如何调用希伯来语语言环境)。
当然我还必须将./locale中的文件夹重命名为“Hebrew_Israel.1255”
现在系统成功选择了区域设置
答案 1 :(得分:0)
正如MarcB所指出的那样,PHP并没有神奇地将这些单词翻译成不同的语言。但是有几种不同的解决方案可以帮助你。例如,您可以使用谷歌翻译API在不同语言之间转换文本。
try {
$gt = new Gtranslate;
echo "Translating [Hello World] from English to German => ".$gt->english_to_german("hello world")."<br/>";
echo "Translating [Ciao mondo] Italian to English => ".$gt->it_to_en("Ciao mondo")."<br/>";
} catch (GTranslateException $ge) {
echo $ge->getMessage();
}
您可以在此处阅读有关Google翻译API的更多信息http://code.google.com/p/gtranslate-api-php/
答案 2 :(得分:0)
您应该检查系统中是否安装了“he_IL”语言环境。我不知道如何在Windows中执行此操作,但在Linux中,您可以运行“locale -a”(http://linux.about.com/library/cmd/blcmdl1_locale.htm)来查看所有已安装的语言环境。