繁体   English   中英

用PHP / Gettext转换为希伯来语失败

[英]Translation to hebrew with PHP/Gettext fails

我已经搜索了数小时以寻求解决方案,包括在文档中。

试图使用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文件位于“ ./”

为什么我看不到希伯来文字?

好了,解决了

必须更新到PHP版本5.3.5 / 5.3.10

并且因为我使用的是Windows,所以不得不使用此语言环境“ Hebrew_Israel.1255”而不是“ he_IL”(这是Windows始终调用希伯来语语言环境的方式)。

当然,我还必须将./locale中的文件夹重命名为“ Hebrew_Israel.1255”

现在,系统成功选择了语言环境

正如MarcB指出的那样,PHP不会为您神奇地将单词翻译成其他语言。 但是有几种不同的解决方案可以帮助您。 例如,您可以利用Google翻译器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();
 }

您可以在http://code.google.com/p/gtranslate-api-php/上了解有关Google翻译API的更多信息

您应该检查系统中是否安装了“ he_IL”语言环境。 我不知道如何在Windows中执行此操作,但是在Linux中,您可以运行“ locale -a”(http://linux.about.com/library/cmd/blcmdl1_locale.htm)以查看所有已安装的语言环境。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM