2

PHP プロジェクトの 1 つで繁体字中国語をサポートしようとしていますが、漢字を表示できません。これが私のgettextセットアップです:

putenv("LC_ALL=zh_CN.utf8");
setlocale(LC_ALL, "zh_CN.utf8");
bindtextdomain("wpsmessages", dirname(__FILE__) . "/locale");
bind_textdomain_codeset("wpsmessages", 'UTF-8');
textdomain("wpsmessages");

前に、次のように入力して、SSH でロケールを作成しました。

sudo locale-gen zh_CN.utf8

次に返されたもの:

Generating locales...
zh_CN.UTF-8... done

入力後locale -a、リストに次のものが表示されます(特に):

zh_CN
zh_CN.utf8

それでも、漢字は表示されません。ここで何が間違っていますか?

4

1 に答える 1

3

少し恥ずかしいですが、解決策は、ファイルの名前を変更して、独自のファイル名規則wpsmessages-zh_CN.moに従うことでした。wpsmessages.mo

基本的に、gettext を使用した PHP プロジェクトの構造は次のようになります。

/locale/pt_BR.utf8/LC_MESSAGES/wpsmessages.mo
/locale/zh_CN.utf8/LC_MESSAGES/wpsmessages.mo
...

そのため、 usingは で指定されたロケールbindtextdomain("wpsmessages", dirname(__FILE__) . "/locale");の正しいファイルを取得しますが、名前が間違っていたため、ファイルを見つけることができませんでした。.mosetlocale()

これが私のように愚かな人の助けになることを願っています。:)

于 2013-12-21T16:20:51.707 に答える