国際化を実現するYIIフレームワーク手法

不言
リリース: 2023-04-01 10:48:02
オリジナル
1632 人が閲覧しました

この記事では、主に YII フレームワーク フレームワーク チュートリアルの国際化実装方法を紹介します。YII フレームワーク フレームワークの国際化の原理と関連する実装テクニックについて詳しく説明します。必要な方は、次の

を参照してください。この記事では、YII Frameworkフレームワークチュートリアルの国際化実装方法を学習しました。参照用に全員と共有してください。詳細は次のとおりです。

インターネットに公開される Web アプリケーションは、世界中のユーザーを対象としています。世界中のユーザーが Web アプリケーションにアクセスできるかどうかは、Web サイトによって異なりますが、調和のとれた社会では、不調和な Web アプリケーションにアクセスすることはできません。

YII は国際的なサポートを提供し、作成したアプリケーションがさまざまな言語の人々に適したものになるようにします。

国際化は非常に派手なものであり、大規模な Web サイトで真の国際化を実現できるものはありません。そのほとんどは理解できない言語向けに設計されており、地域ごとに異なる Web サイトが設計されています。アプリケーションが比較的小規模で、多くのことを扱わない場合は、国際化することは十分に許容されます。

国際化は次の側面から始まります:

ロケール設定

情報テキストおよびファイル リソースの翻訳

日付/時刻、通貨記号および数値形式

YII の国際化に関連するクラスは、/yii_dev/yii/framework/i18n ディレクトリ:

#/yii_dev/yii/framework/i18n# ツリー ## の下にあります。 #§── 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
│ ├── zh.php
│ っていつ── ─ zh_sg.php
│ ├─ zh_tw.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 &#39;coreMessages&#39; for messages belonging to
* the &#39;yii&#39; category and using &#39;messages&#39; 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)
{
ログイン後にコピー

$カテゴリ ソース言語

$メッセージ ターゲット言語

$$mesage 配列にはparams が必要です一致する翻訳の数。

具体的な使用法は次のとおりです:

Yii::t(&#39;app&#39;, &#39;Path alias "{alias}" is redefined.&#39;,
  array(&#39;{alias}&#39;=>$alias))
ログイン後にコピー

もちろん、yiic が提供するコマンド ライン コマンド メッセージを介して変換できます。詳細については、yiic コマンドの使用方法を参照してください。 説明

日付/時刻、金額、数値の形式

日付/時刻処理 CDateFormatter クラス


上記はこの記事の全内容です。他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

YiiFramework の入門知識ポイントのまとめ


Yii について カテゴリ


# の下にあるすべてのサブクラスを取得するフレームワーク メソッド

以上が国際化を実現するYIIフレームワーク手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート