1

これが私の./locale/fr/LC_MESSAGES/messages.poファイルです:

msgid "NO GOOD"
msgstr "IT WORKED!"

.mo ファイルの生成に使用するコマンド:

$ msgfmt -o locale/fr/LC_MESSAGES/messages.mo locale/fr/LC_MESSAGES/messages.po

私のPHPファイル(テスト目的で、ルートとしてCLI経由で実行されています)。

<?php 
    bindtextdomain('messages','./locale');
    textdomain('messages');
    setlocale(LC_MESSAGES, 'fr');
    echo gettext("NO GOOD");

ここに私の出力があります:

$ NO GOOD

PHP情報:

GetText Support => enabled

これがうまくいかない理由はありますか?

4

2 に答える 2

9

機能しなかった理由は、選択したロケールがシステムによって認識される必要があるためです。

私の場合、fr有効なロケールではありませんfr_FR.UTF-8。システムが認識するロケールを選択する必要がありました...

于 2012-09-30T18:58:27.997 に答える