phpプログラムの国際化実現方法(gettextを利用)

2648 ワード

ステップ1:環境を構築する1、まずあなたのphp拡張カタログの下にphp_があるかどうかを確認します。gettext.dllというファイルがなければ、ダウンロードしたり、他のところからコピーしたりして、php拡張ディレクトリに置いてください。2,php.iniを開いて、探します。extension=php_gettext.dllをクリックし、コメントを削除してapacheを再開します。ステップ2:原理解説国際化の手続きにこのようなコードがあれば、echo「こんにちは」国際化の手続きはecho gettextと書きます。そして設定ファイルに「こんにちは」対応の英語「Hi」を追加します。この時、中国地区のブラウズはいずれもスクリーンの上で“こんにちは”を出力して、米国地区のブラウズはいずれもスクリーンの上で“Hi”を出力します。つまり、最終的に何を表示するかはあなたの設定ファイルによって決まります。配置ファイルが見つからないと、プログラムの内容が出力されます。ステップ3:コードテスト1、私達はd:\wwwの下にファイルhi.phpを新規作成します。詳細コードは
 
<?php
$domain = 'test';
bindtextdomain($domain, "locale/");// mo
textdomain($domain);// gettext() mo
echo gettext("Hi!");//_() gettext()
?>

の時に変更プログラムを実行して、Hiだけを出力します。しかし、私たちは中国人です。Hiとは知り合いではなく、「こんにちは」ということだけを知っています。この時は書類を配置して出馬します。プロファイルの生成は、一般的にツールを介して行われる。ダウンロード先:http://nchc.dl.sourceforge.net/sourceforge/gnuwin32/gettext-0.14.4.exe インストール後、任意のディレクトリで使用するためには、システム環境変数に「インストール経路/bin」を追加する必要があります。ステップ4:プロファイルの生成1は、あなたのツールがインストールされていると仮定し、任意のディレクトリで使用できます。今cmdを実行して、経路をd:\wwwの下に切り替えます。つまり、hi.phpのディレクトリです。xgettext-d hi.php--from-code=gb 2312を入力して実行します。ここでhi.poファイルを新たに作成することができます。注意してください。2,hi.poファイルを開けて、下記のように表示します。
 
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION
"
"Report-Msgid-Bugs-To:
"
"POT-Creation-Date: 2009-01-19 17:47+0800
"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE
"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>
"
"Language-Team: LANGUAGE <[email protected]>
"
"MIME-Version: 1.0
"
"Content-Type: text/plain; charset=CHARSET
"
"Content-Transfer-Encoding: 8bit
"
#: hi.php:6
msgid "Hi!"
msgstr ""
は今二つのところに修正が必要です。1:「Content-Type:text/plin」charset=CHARSET「2:msgstr」「1のCHARSETをgb 2312に修正し、2をmsgstrに修正します。こんにちは」。3,msgfmt-o hi.mohi.poを入力して実行すると、hi.moファイルが生成されます。そしてd:\wwwの下にlocale\zh_を新設します。Cn\LC_MESSAGESカタログは、hi.moをここに拷問すればいいです。4,今からapacheを再起動して、再起動します。スクリーンから「こんにちは」を出力できます。他:utft-8コードを使うなら、bind_を使う必要があります。textdomain_codeset($domain、'UTF-8')そのためにはhi.poのCHARSETをutf-8に変更し、hi.poをutf-8形式に保存して、もう一度hi.moを生成すればいいです。まとめ:私たちが書いたプログラムは大衆にも国際にも広く使われてほしいです。有名なwodpressの国際化にも彼が使われています。テキストはとてもいいです。簡単で使いやすいです。