ホームページ  >  記事  >  バックエンド開発  >  国際化を実現するために gettext を使用する php に関連する問題! 使ったことがある方はぜひご相談ください〜

国際化を実現するために gettext を使用する php に関連する問題! 使ったことがある方はぜひご相談ください〜

WBOY
WBOYオリジナル
2016-06-13 13:36:13855ブラウズ

PHP は gettext を使用して国際化の問題を実装します。 使ったことがあるかどうか話し合ってください~~
私の環境: ubuntu サーバー +xampp パッケージ

PHP コードの出力は簡体字中国語で出力されます。次に、簡体字中国語の出力を中国語に変換する必要があります。英語、繁体字中国語。
これを行うには gettext を使用します。

現象: 変換できない!
ただし、コード内の中国語の文字を英語の文字に変更し、それを .po ファイル内で更新してから、.mo ファイルを生成すると、変換は正常に行われます。


つまり、po ファイル内の変換する必要がある文字列が中国語の場合、変換できません。

つまり、中国語 --> 他の言語では失敗します。
英語 --》 他の言語でも成功できます! !


これがなぜなのか話し合ってください。 !



-----解決策---------
ダウンロード アドレス:
http://sourceforge.net/projects/gnuwin32/files/gettext/0.14.4/gettext-0.14.4-src.zip/download

PHP コード

ステップ 1: PHP プログラムを作成する
<?php
putenv("LANG=zh_CN");
setlocale(LC_ALL, "zh_CN");

バインドテキストドメイン("テスト", "./ロケール");
テキストドメイン("テスト");

echo gettext("こんにちは!");
echo gettext("世界!");
echo gettext("Hello World!");
?>
ステップ 2:
xgettext.exe -d test -L PHP --from-code=utf-8index.php

ステップ 3:
test.po を次のように変更します。

#: ../index.php:8
msgstr "こんにちは!"
msgstr "こんにちは!"

#: ../index.php:9
msgstr "世界!"
msgstr "世界!"

#: ../index.php:10
msgstr "Hello World!"
msgstr "こんにちは、世界!"

ステップ 4:
msgfmt -o zh_CN/test.mo zh_CN/test.po
test.mo ファイルを生成する
ステップ5:
localezh_CNLC_MESSAGES ディレクトリを作成し、test.mo をこのディレクトリに置きます
ステップ6:
Apacheを再起動し、index.phpにアクセスして効果を確認してください。
<br><font color="#e78608">------解決策------------------</font><br>
utf-8 でエンコードしてみる <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。