1

ドキュメントに含めて、これに対する解決策を何時間も検索しました。

ヘブライ語の翻訳にgettextを使用しようとしていますが、

PHP 5.3.1とwampを使用して、

ヘブライ語に相当するものではなく、「helloworld」を出力します

$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を使用しているため、「he_IL」ではなくこのロケール「Hebrew_Israel.1255」を使用する必要がありました(これが、Windowsがヘブライ語ロケールを呼び出す方法です)。

もちろん、。/localeのフォルダの名前も「Hebrew_Israel.1255」に変更する必要がありました。

これで、システムはロケールを正常に選択します

于 2012-05-21T11:59:33.700 に答える
0

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();
 }

Google トランスレータ 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 に答える