1

ここでは、gettextが機能していないようです。

MAMP Proを使用しphpinfo();ていますが、gettextが有効になっているとのことです。

私はこのチュートリアルに従いました:http://zez.org/article/articleview/42/1/

  1. 私のコードでは、次のように文字列を宣言しています。_('test string');
  2. 次に、を実行しました。これにより、ファイルxgettest -L PHP test.phpが生成されました。messages.po
  3. このファイルをpoeditで開き、文字列を翻訳してから、ファイルを保存してファイルを作成しましたmessages.mo
  4. .po.moファイルの両方を取得して移動しました[webroot]/locale/es/LC_MESSAGES/(この場合、私の翻訳はスペイン語でした)
  5. 私のコードでは、次のように設定します。

    $lang = $_SESSION['lang']; // available to all views that include this file

    putenv('LC_ALL='.$lang);

    bindtextdomain('messages','./locale');

    textdomain('messages');

    ...と$_SESSION['lang']を簡単に切り替えることができます。enes

  6. ページをリロードしてから、に切り替わるリンクをクリックしますesが、文字列はスペイン語バージョンではなく英語バージョンとして表示されたままです。に戻すとen、変化はありません。それは常に英語版です。

エラーメッセージがどこにも表示されないので、なぜこの問題が発生するのか少し迷っています。誰かが私にいくつかのガイダンス/ヘルプを与えることができますか?私は何か見落としてますか?

4

2 に答える 2

1

また、対応する言語ファイルをサーバーに次のようにインストールする必要があります。

cat /usr/share/i18n/SUPPORTED |grep -i "es_ES" > /var/lib/locales/supported.d/es
cat /usr/share/i18n/SUPPORTED |grep -i "nl_NL" > /var/lib/locales/supported.d/nl
cat /usr/share/i18n/SUPPORTED |grep -i "de_DE" > /var/lib/locales/supported.d/de

これで、スペイン語、オランダ語、ドイツ語をインストールしました。終了したら、dpkg-reconfigurelocalesを実行して完了です。=)

于 2011-06-06T14:50:53.953 に答える
0

問題はpoeditにあるようです。もともと、私が「ファジー」とマークしたスペイン語の翻訳はすべて。それらから「ファジー」を削除すると、それらは私のWebページに表示されるはずです。

これは通常の動作ではないと思いますが、少なくとも機能します。

于 2009-11-21T18:27:06.637 に答える