1

我已经搜索了几个小时来寻找解决方案,包括在文档中。

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

为什么我没有得到希伯来文文本?

4

3 回答 3

1

好的解决了

必须更新到 PHP 版本 5.3.5/5.3.10

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

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

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

于 2012-05-21T11:59:33.700 回答
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();
 }

你可以在这里阅读更多关于谷歌翻译 API 的信息http://code.google.com/p/gtranslate-api-php/

于 2012-05-20T13:45:03.147 回答
0

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

于 2012-05-20T13:55:29.400 回答