CGettextMessageSource
| 鍖 | system.i18n |
|---|---|
| 缁ф壙 | class CGettextMessageSource » CMessageSource » CApplicationComponent » CComponent |
| 瀹炵幇 | IApplicationComponent |
| 婧愯嚜 | 1.0 |
| 鐗堟湰 | $Id: CGettextMessageSource.php 3515 2011-12-28 12:29:24Z mdomba $ |
| 婧愮爜 | framework/i18n/CGettextMessageSource.php |
CGettextMessageSource琛ㄧず淇℃伅鏉ユ簮鏄熀浜嶨NU鐨凣ettext銆
姣忎釜CGettextMessageSource鐨勫疄渚嬩唬琛ㄧ炕璇戠殑淇℃伅涓哄崟涓鐨勫煙銆 骞朵笖姣忎釜淇℃伅绫诲埆浠h〃Gettext淇℃伅鐨勪笂涓嬫枃锛 缈昏瘧鐨勪俊鎭瓨鍌ㄤ负MO鎴朠O鏂囦欢锛 渚濊禆浜useMoFile鐨勫睘鎬у笺
鎵鏈夌炕璇戣淇濆瓨鍦basePath鐩綍涓嬨 缈昏瘧鐨勮瑷淇濆瓨鍦∕O鎴朠O鐨勬枃浠朵箣涓嬶紝 瀛愮洰褰曠殑鍚嶇О涓鸿瑷ID銆 閫氳繃鎸囧畾鏂囦欢鍚嶇Оcatalog鐨勫睘鎬э紝榛樿涓衡榤essages鈥欍
姣忎釜CGettextMessageSource鐨勫疄渚嬩唬琛ㄧ炕璇戠殑淇℃伅涓哄崟涓鐨勫煙銆 骞朵笖姣忎釜淇℃伅绫诲埆浠h〃Gettext淇℃伅鐨勪笂涓嬫枃锛 缈昏瘧鐨勪俊鎭瓨鍌ㄤ负MO鎴朠O鏂囦欢锛 渚濊禆浜useMoFile鐨勫睘鎬у笺
鎵鏈夌炕璇戣淇濆瓨鍦basePath鐩綍涓嬨 缈昏瘧鐨勮瑷淇濆瓨鍦∕O鎴朠O鐨勬枃浠朵箣涓嬶紝 瀛愮洰褰曠殑鍚嶇О涓鸿瑷ID銆 閫氳繃鎸囧畾鏂囦欢鍚嶇Оcatalog鐨勫睘鎬э紝榛樿涓衡榤essages鈥欍
鍏叡灞炴
| 灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|---|
| basePath | string | 鎵鏈夌炕璇戜俊鎭殑鍩烘湰璺緞銆 榛樿鍊间负null锛岃繖鎰忓懗鐫鏄簲鐢ㄧ▼搴忕殑瀛愮洰褰曗渕essages鈥 (渚嬪锛氣減rotected/messages鈥)銆 | CGettextMessageSource |
| behaviors | array | 杩欎釜搴旂敤缁勪欢闄勫姞鐨勮涓恒 杩欐琛屼负灏嗗湪搴旂敤缁勪欢璋冪敤init鏃堕檮鍔犲湪搴旂敤缁勪欢涓娿 璇峰弬鐓CModel::behaviors濡備綍鎸囧畾姝ゅ睘鎬у笺 | CApplicationComponent |
| cacheID | string | 鐢ㄦ潵缂撳瓨娑堟伅鐨勭紦瀛樺簲鐢ㄧ粍浠禝D銆 榛樿涓衡榗ache鈥欙紝杩欓噷鎸囧簲鐢ㄧ▼搴忕紦瀛樼粍浠讹紝 濡傛灉浣犳兂绂佺敤缂撳瓨缁勪欢锛岃灏嗘灞炴ц缃负false銆 | CGettextMessageSource |
| cachingDuration | integer | 淇濆瓨缂撳瓨淇℃伅鐨勭敓鍛藉懆鏈燂紝鍗曚綅鏄銆 榛樿涓0琛ㄧず璇ョ紦瀛樿绂佺敤銆 | CGettextMessageSource |
| catalog | string | 淇℃伅鐩綍鍚嶇О銆 杩欎釜淇℃伅鏂囦欢鍚嶇О锛堜笉鍚墿灞曞悕锛夛紝瀹冨瓨鍌ㄥ凡缈昏瘧鐨勪俊鎭傞粯璁や负鈥榤essages鈥欍 | CGettextMessageSource |
| forceTranslation | boolean | 褰撴簮璇█鍜岀洰鏍囪瑷鐩稿悓鏃讹紝鏄惁寮哄埗缈昏瘧淇℃伅銆 榛樿涓篺alse锛屾剰鎬濇槸婧愯瑷鍜岀洰鏍囪瑷涓嶅悓鏃舵墽琛屻 | CMessageSource |
| isInitialized | boolean | 妫鏌ュ簲鐢ㄧ粍浠舵槸鍚﹀凡缁忓垵濮嬪寲銆 | CApplicationComponent |
| language | string | 杩斿洖婧愪俊鎭殑涔﹀啓璇█銆 榛樿涓application language銆 | CMessageSource |
| useBigEndian | boolean | 鏄惁浣跨敤澶у瓧鑺傝鍜屽啓MO鏂囦欢銆 榛樿涓篺alse銆 姝ゅ睘鎬у湪useMoFile涓簍rue鏃朵娇鐢ㄣ | CGettextMessageSource |
| useMoFile | boolean | 鏄惁浠嶮O鏂囦欢鍔犺浇淇℃伅锛岄粯璁や负true銆 濡傛灉涓篺alse锛屽垯淇℃伅灏嗕粠PO鏂囦欢鍔犺浇銆 | CGettextMessageSource |
鍏叡鏂规硶
鍙椾繚鎶ゆ柟娉
| 鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|
| loadMessages() | 鍔犺浇鎸囧畾鐨勮瑷鍜岀被鍒潵缈昏瘧淇℃伅銆 | CGettextMessageSource |
| translateMessage() | 缈昏瘧鎸囧畾淇℃伅銆 | CMessageSource |
灞炴ц缁
basePath
灞炴
public string $basePath;
鎵鏈夌炕璇戜俊鎭殑鍩烘湰璺緞銆 榛樿鍊间负null锛岃繖鎰忓懗鐫鏄簲鐢ㄧ▼搴忕殑瀛愮洰褰曗渕essages鈥 (渚嬪锛氣減rotected/messages鈥)銆
cacheID
灞炴
public string $cacheID;
鐢ㄦ潵缂撳瓨娑堟伅鐨勭紦瀛樺簲鐢ㄧ粍浠禝D銆 榛樿涓衡榗ache鈥欙紝杩欓噷鎸囧簲鐢ㄧ▼搴忕紦瀛樼粍浠讹紝 濡傛灉浣犳兂绂佺敤缂撳瓨缁勪欢锛岃灏嗘灞炴ц缃负false銆
cachingDuration
灞炴
public integer $cachingDuration;
淇濆瓨缂撳瓨淇℃伅鐨勭敓鍛藉懆鏈燂紝鍗曚綅鏄銆 榛樿涓0琛ㄧず璇ョ紦瀛樿绂佺敤銆
catalog
灞炴
public string $catalog;
淇℃伅鐩綍鍚嶇О銆 杩欎釜淇℃伅鏂囦欢鍚嶇О锛堜笉鍚墿灞曞悕锛夛紝瀹冨瓨鍌ㄥ凡缈昏瘧鐨勪俊鎭傞粯璁や负鈥榤essages鈥欍
useBigEndian
灞炴
public boolean $useBigEndian;
鏄惁浣跨敤澶у瓧鑺傝鍜屽啓MO鏂囦欢銆 榛樿涓篺alse銆 姝ゅ睘鎬у湪useMoFile涓簍rue鏃朵娇鐢ㄣ
useMoFile
灞炴
public boolean $useMoFile;
鏄惁浠嶮O鏂囦欢鍔犺浇淇℃伅锛岄粯璁や负true銆 濡傛灉涓篺alse锛屽垯淇℃伅灏嗕粠PO鏂囦欢鍔犺浇銆
鏂规硶璇︾粏
init()
鏂规硶
|
public void init()
|
婧愮爜锛 framework/i18n/CGettextMessageSource.php#72 (鏄剧ず)
public function init()
{
parent::init();
if($this->basePath===null)
$this->basePath=Yii::getPathOfAlias('application.messages');
}
鍒濆鍖栧簲鐢ㄧ▼搴忕粍浠躲 姝ゆ柟娉曢噸鍐欑埗绫伙紝 閫氳繃棰勫鐞嗘潵瀹炴柦鐢ㄦ埛璇锋眰鏁版嵁銆
loadMessages()
鏂规硶
|
protected array loadMessages(string $category, string $language)
| ||
| $category | string | 淇℃伅绫诲埆 |
| $language | string | 鐩綍璇█ |
| {return} | array | 杩斿洖鍔犺浇鐨勪俊鎭 |
婧愮爜锛 framework/i18n/CGettextMessageSource.php#85 (鏄剧ず)
protected function loadMessages($category, $language)
{
$messageFile=$this->basePath . DIRECTORY_SEPARATOR . $language . DIRECTORY_SEPARATOR . $this->catalog;
if($this->useMoFile)
$messageFile.=self::MO_FILE_EXT;
else
$messageFile.=self::PO_FILE_EXT;
if ($this->cachingDuration > 0 && $this->cacheID!==false && ($cache=Yii::app()->getComponent($this->cacheID))!==null)
{
$key = self::CACHE_KEY_PREFIX . $messageFile;
if (($data=$cache->get($key)) !== false)
return unserialize($data);
}
if (is_file($messageFile))
{
if($this->useMoFile)
$file=new CGettextMoFile($this->useBigEndian);
else
$file=new CGettextPoFile();
$messages=$file->load($messageFile,$category);
if(isset($cache))
{
$dependency=new CFileCacheDependency($messageFile);
$cache->set($key,serialize($messages),$this->cachingDuration,$dependency);
}
return $messages;
}
else
return array();
}
鍔犺浇鎸囧畾鐨勮瑷鍜岀被鍒潵缈昏瘧淇℃伅銆