この記事では、YII Frameworkフレームワークチュートリアルの国際化実装方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
インターネットに公開される Web アプリケーションは、世界中のユーザーを対象としています。世界中のユーザーが Web アプリケーションにアクセスできるかどうかは、Web サイトによって異なりますが、調和のとれた社会では、不調和な Web アプリケーションにアクセスすることはできません。
YII は国際的なサポートを提供し、私たちが作成するアプリケーションがさまざまな言語の人々に適したものになるようにします。
国際化は非常に派手なものであり、大規模な Web サイトが真の国際化を達成することはできません。そのほとんどは理解できない言語向けに設計されており、地域ごとに異なる Web サイトが設計されています。アプリケーションが比較的小規模で、多くのことを扱わない場合は、国際化することは十分に許容されます。
国際化は次の側面から始まります:
地域設定
情報テキストとファイルリソースの翻訳
日付/時刻、通貨記号、数値形式
YII の国際化に関連するクラスは /yii_dev/yii にあります / Framework/i18n ディレクトリ:
/yii_dev/yii/framework/i18n#tree
.
§── CchoiceFormat.php
§── CDateFormatter.php
§── CDbMessageSource.php
§── CGettextMessageSource.php
っていつ── ─ CLocale.php
§─ CMessageSource.php
§─ CNumberFormatter.php
§─ CPhpMessageSource.php
├─ data
│ ├─ en_us.php
│ っていつ─ ..... .. …………
│ §── zh_hk.php
│ っていつ── zh_mo.php
│ っていってください。 php
│ §── zu.php
│ └── zu_za.php
└── gettext
§── CGettextFile.php
っていつ── CGettextMoFile.php
└── CGettextPoFile.php
2 ディレクトリ、616 ファイル
地域設定
地域を設定することで、ユーザーの国と言語を決定できます。
YII は、エリアを表す一意の ID とみなすことができる共通エリア識別子を定義します。
YII は、CLocale クラスを通じて地域データ (通貨、日付、数値形式などを含む) を保存します。
リージョンの一意の ID を使用すると、CLocale::getInstance($localeID) または CApplication::getLocale($localeID) を通じて、対応する CLocale インスタンスを取得できます。 CLocale インスタンスを通じて、ユーザーの国と言語を確認できます。その後、CLocale データに基づいて対応する変換を実行し、Web アプリケーションを現在のユーザーが使用したり読み取ったりするのにさらに適したものにすることができます。最も基本的なことは、ユーザーに対して特定の翻訳を実行することです。
情報テキストおよび文書リソースの翻訳
翻訳とは、単にある言語を別の言語に変更することです。コンピュータでは、電子テキストである 26 文字が使用されます。したがって、電子テキストはすべての言語の元の言語と見なすことができ、他のすべての言語は当面、電子テキストを通じて翻訳されます。翻訳先の言語をターゲット言語と呼びます。
特定のクラスの説明
/** * Translates a message to the specified language. * Starting from version 1.0.2, this method supports choice format (see {@link CChoiceFormat}), * i.e., the message returned will be chosen from a few candidates according to the given * number value. This feature is mainly used to solve plural format issue in case * a message has different plural forms in some languages. * @param string $category message category. Please use only word letters. Note, category 'yii' is * reserved for Yii framework core code use. See {@link CPhpMessageSource} for * more interpretation about message category. * @param string $message the original message * @param array $params parameters to be applied to the message using <code>strtr</code>. * Starting from version 1.0.2, the first parameter can be a number without key. * And in this case, the method will call {@link CChoiceFormat::format} to choose * an appropriate message translation. * Starting from version 1.1.6 you can pass parameter for {@link CChoiceFormat::format} * or plural forms format without wrapping it with array. * @param string $source which message source application component to use. * Defaults to null, meaning using 'coreMessages' for messages belonging to * the 'yii' category and using 'messages' for the rest messages. * @param string $language the target language. If null (default), the {@link CApplication::getLanguage application language} will be used. * This parameter has been available since version 1.0.3. * @return string the translated message * @see CMessageSource */ public static function t($category,$message,$params=array(),$source=null,$language=null) {
$category ソース言語
$mesage ターゲット言語$params は、翻訳のために照合される $mesage 内の配列です。
具体的な使用方法は次のとおりです:
Yii::t('app', 'Path alias "{alias}" is redefined.', array('{alias}'=>$alias))
もちろん、yiicが提供するコマンドラインコマンドメッセージを通じて翻訳することもできます。詳細については、yiicコマンドの使用説明を参照してください
日付/時刻、金額、番号。フォーマット
日付/時刻処理 CDateFormatter クラス
(/yii_dev/yii/framework/i18n/CDateFormatter.php) クラス ファイルへの特定の参照
数値処理
この記事で説明する内容が、PHP プログラミング用の Yii フレームワークに基づいて皆さんに役立つことを願っています。
YII Frameworkフレームワークチュートリアルの国際化実装方法に関連するその他の記事については、PHP中国語Webサイトに注目してください。