YII Framework框架教程之國(guó)際化實(shí)現(xiàn)方法
本文講述了YII Framework框架教程之國(guó)際化實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
一個(gè)web應(yīng)用,發(fā)布到互聯(lián)網(wǎng),就是面向全球用戶。用戶在世界的各個(gè)角落都可以訪問(wèn)到你的web應(yīng)用,當(dāng)然要看你的網(wǎng)站和不和諧,不和諧的web應(yīng)用在和諧社會(huì)是不讓你訪問(wèn)的。
YII提供了國(guó)際化的支持,可以讓我們創(chuàng)建的應(yīng)用適合不同語(yǔ)言的人群。
國(guó)際化是一個(gè)很花哨的東西,沒(méi)有哪個(gè)大型的網(wǎng)站真正能做到國(guó)際化。大多都是針對(duì)不懂的語(yǔ)言,不同地區(qū)設(shè)計(jì)不同的網(wǎng)站。如果你的應(yīng)用相對(duì)較小,處理的東西不多,那么國(guó)際化起來(lái)的東西還是蠻可以的。
國(guó)際化從以下幾個(gè)方面入手:
區(qū)域設(shè)置
信息文本和文件資源的翻譯
日期/時(shí)間、貨幣符號(hào)和數(shù)字格式
YII中國(guó)際化涉及到的類在/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
│ ├── zh.php
│ ├── zh_sg.php
│ ├── zh_tw.php
│ ├── zu.php
│ └── zu_za.php
└── gettext
├── CGettextFile.php
├── CGettextMoFile.php
└── CGettextPoFile.php
2 directories, 616 files
區(qū)域設(shè)置
通過(guò)對(duì)區(qū)域的設(shè)置,來(lái)判斷用戶所在的國(guó)際和使用的語(yǔ)言。
YII定義了常見(jiàn)的區(qū)域標(biāo)識(shí),可以認(rèn)為是表示區(qū)域的唯一ID。
YII中通過(guò)CLocale類存放區(qū)域數(shù)據(jù)(包括貨幣,日期,數(shù)字格式等等)。
通過(guò)一個(gè)區(qū)域唯一ID,然后就可以通過(guò) CLocale::getInstance($localeID) 或者CApplication::getLocale($localeID) 獲取相應(yīng)的 CLocale 實(shí)例。通過(guò)CLocale實(shí)例,就能夠判斷用戶所在的國(guó)家,使用的語(yǔ)言。然后可以根據(jù)CLocale的數(shù)據(jù)進(jìn)行相應(yīng)的翻譯,讓web應(yīng)用更適于當(dāng)前用戶使用和閱讀。最根本的就是為了用戶進(jìn)行特定的翻譯。
信息文本和文件資源的翻譯
翻譯很簡(jiǎn)單就是把一種語(yǔ)言變成另一種語(yǔ)言。在計(jì)算機(jī)中用的是26字母,就是e文。所以可以把e文當(dāng)成是原始語(yǔ)言,萬(wàn)語(yǔ)之源,所有其他的語(yǔ)言都是通過(guò)e文翻譯而成的,暫且e文叫做源語(yǔ)言。翻譯成的語(yǔ)言叫做目標(biāo)語(yǔ)言。
具體的類說(shuō)明
/**
* 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源語(yǔ)言
$mesage目標(biāo)語(yǔ)言
$params是$mesage中要匹配翻譯的數(shù)組。
具體使用方法如:
Yii::t('app', 'Path alias "{alias}" is redefined.',
array('{alias}'=>$alias))
當(dāng)然可以通過(guò)yiic提供的命令行命令message進(jìn)行翻譯,具體的參考yiic命令的使用說(shuō)明
日期/時(shí)間、金錢和數(shù)字格式
日期/時(shí)間處理CDateFormatter類
具體參考(/yii_dev/yii/framework/i18n/CDateFormatter.php)類文件
數(shù)字處理
具體參考(/yii_dev/yii/framework/i18n/CNumberFormatter.php)類文件
更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。
- 記錄Yii2框架開發(fā)微信公眾號(hào)遇到的問(wèn)題及解決方法
- 使用YII2框架實(shí)現(xiàn)微信公眾號(hào)中表單提交功能
- 完美利用Yii2微信后臺(tái)開發(fā)的系列總結(jié)
- Yii PHP Framework實(shí)用入門教程(詳細(xì)介紹)
- YII Framework框架使用YIIC快速創(chuàng)建YII應(yīng)用之migrate用法實(shí)例詳解
- YII Framework框架教程之使用YIIC快速創(chuàng)建YII應(yīng)用詳解
- Yii Framework框架獲取分類下面的所有子類方法
- YiiFramework入門知識(shí)點(diǎn)總結(jié)(圖文教程)
- YII Framework框架教程之緩存用法詳解
- YII Framework框架教程之安全方案詳解
- Yii Framework框架開發(fā)微信公眾平臺(tái)示例
相關(guān)文章
PHP生成自定義長(zhǎng)度隨機(jī)字符串的函數(shù)分享
這篇文章主要介紹了PHP生成自定義長(zhǎng)度隨機(jī)字符串的函數(shù)分享,需要的朋友可以參考下2014-05-05
PHP提取字符串中的手機(jī)號(hào)正則表達(dá)式怎么寫
PHP通過(guò)正則表達(dá)式提取字符串中的手機(jī)號(hào)并判斷運(yùn)營(yíng)商,簡(jiǎn)單快速方便,能提取多個(gè)手機(jī)號(hào)。下面通過(guò)本文實(shí)例代碼給大家詳細(xì)介紹,需要的的朋友參考下吧2017-07-07
PHP explode()函數(shù)的幾個(gè)應(yīng)用和implode()函數(shù)有什么區(qū)別
這篇文章主要介紹了PHP explode()函數(shù)的幾個(gè)應(yīng)用和implode()函數(shù)有什么區(qū)別,需要的朋友可以參考下2015-11-11
laravel-admin解決表單select聯(lián)動(dòng)時(shí),編輯默認(rèn)沒(méi)選上的問(wèn)題
今天小編就為大家分享一篇laravel-admin解決表單select聯(lián)動(dòng)時(shí),編輯默認(rèn)沒(méi)選上的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
Laravel 5 框架入門(二)構(gòu)建 Pages 的管理功能
這篇文章主要介紹了Laravel 5 框架入門的第二篇文章,給大家講解的是構(gòu)建 Pages 的管理功能,十分的詳細(xì),有需要的小伙伴可以參考下。2015-04-04

