PHPの国際化

WBOY
WBOYオリジナル
2016-06-23 14:34:221066ブラウズ

I18N 国際化は I18N と略され、真ん中の数字は省略された文字の数です。 Linux システムでは、I18N をサポートするために一連の環境変数を定義することによってプログラムのロケールが設定されます。 ロケール (ローカリゼーション) LANG 低優先度グローバル ロケール変数 次の変数に値が割り当てられていない場合。この変数の値はデフォルトで使用されます。 LC_COLLATE 比較と並べ替えの習慣は、ディレクトリ リストの分類表示などに影響します。 LC_CTYPE どの文字が文字、数字などと密接に関連していると見なすことができるシステムの文字処理特性を定義します。中国語入力 LC_MESSAGES プロンプト情報、エラー メッセージ、ステータス情報、タイトル、ラベル、ボタン、メニューなど LC_MONETARY 通貨単位と通貨値の形式を定義 LC_NUMERIC 千の位の区切り文字と小数点に影響する非通貨値の形式を定義区切り文字など LC_TIME 日付と時刻の形式を定義します LC_NAME 名前の書き込み方法 LC_ADDRESS 住所の書き込み方法 LC_TELEPHONE 電話番号の書き込み方法 LC_MEASUREMENT 度量衡の表現方法 LC_PAPER デフォルトの用紙サイズを定義します LC_IDENTIFICATION ロケール自体に含まれる情報の概要 LC_ALL 高優先度グローバル ロケール変数 この変数に値を割り当てると、上記の変数の値が強制的に上書きされます。推奨されません。 ステップ 1: 環境のセットアップ 1. まず、PHP 拡張ディレクトリに php_gettext.dll ファイルがあるかどうかを確認します。ない場合は、必要があります。 1 つをダウンロードするか、他の場所から 1 つをコピーして、PHP 拡張ディレクトリに置きます。 2. php.ini を開き、「;extension=php_gettext.dll」を検索し、コメントを削除して Apache を再起動します。 ステップ 2: 原理の説明。国際化されていないプログラムにそのようなコードがある場合は、echo "Hello"; を記述し、国際化されたプログラムの場合は、echo gettext("Hello"); を記述して、設定ファイルに追加する必要があります。 「こんにちは」に相当する英語の「Hi」。 このとき、中国でのブラウジングでは画面に「Hello」が出力され、米国でのブラウジングでは画面に「Hi」が出力されます。つまり、最終的に表示される内容は設定ファイルによって異なります。設定ファイルが見つからない場合は、プログラム内の内容が出力されます。 ステップ 3: コーディングテスト 1. d:www の下に新しいファイル hi.php を作成します。詳細なコードは次のとおりです。 1. 変更したプログラムを実行すると、「Hi」のみが出力されます。しかし、私たちは中国人なので、「こんにちは」は知らず、「こんにちは」しか知りません。その場合は、アクションを実行するようにファイルを構成する必要があります。構成ファイルは通常、ツールを使用して生成されます。 ダウンロードアドレス: http://nchc.dl.sourceforge.net/sourceforge/gnuwin32/gettext-0.14.4.exe インストール後、任意のディレクトリで使用するには、ディレクトリに「インストールパス/bin」を追加する必要があります。内部のシステム環境変数。 ステップ 4: 構成ファイルの生成 1. ツールがインストールされており、任意のディレクトリで使用できることを前提としています。ここで、cmd を実行し、パスを d:www (hi.php が存在するディレクトリ) に切り替える必要があります。 「xgettext -d hi hi.php --from-code=gb2312」と入力して実行すると、新しく生成された hi.po ファイルが表示されます。 注: --from-code=gb2312 も表示されます。 utf-8であること。 2. 次のように表示される hi.po ファイルを開きます。 # 説明的なタイトル。 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # このファイルは、PACKAGE パッケージと同じライセンスの下で配布されます。 #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSIONn" "Report-Msgid-Bugs-To: n" "POT-Creation-Date: 2009-01-19 17:47+0800n" "PO -Revision- Date: YEAR-MO-DA HO:MI+ZONEn" "Last-Translator: FULL NAME n" "Language-Team: LANGUAGE n" "MIME-Version: 1.0n" "Content-Type: text/plain; charset=CHARSETn " "Content-Transfer-Encoding: 8bitn" #: hi.php:6 msgid "Hi!" msgstr "" ここで、変更する必要がある箇所が 2 か所あります。1: "Content-Type: text/plain; charset=CHARSETn" 2: msgstr "" 1のCHARSETをgb2312に変更し、2をmsgstr "Hello"に変更します。 3. msgfmt -o hi.mo hi.po と入力して実行すると、hi.mo ファイルが生成されます。 次に、d:www の下に新しい localezh_CnLC_MESSAGES ディレクトリを作成し、ここに hi.mo をコピーします。 4. Apache を再起動し、再度実行すると、画面に「Hello」が出力されます。 その他: utft-8 エンコーディングを使用する場合は、bind_textdomain_codeset($domain,'UTF-8') を使用する必要があります。これに応じて、hi.po の CHARSET を utf-8 に変更し、hi.po を utf として保存する必要があります。 - 8 形式の場合は、hi.mo を再度生成するだけです。 概要: 私たちは皆、自分の作成したプログラムが一般の人々、さらには国際的にも使用されることを望んでいます。たとえば、有名な wordpress は国際的にも使用されています。 gettext は依然として非常に優れており、シンプルで使いやすいです、http://www.cnblogs.com/suimengsiqu/archive/2009/01/19/1378466.html

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。