Yii Framework v1.1.10 绫诲弬鑰

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鈥欍

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
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

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getIsInitialized() 妫鏌ュ簲鐢ㄧ粍浠舵槸鍚﹀凡缁忓垵濮嬪寲銆 CApplicationComponent
getLanguage() 杩斿洖杩斿洖婧愪俊鎭殑涔﹀啓璇█銆 榛樿涓application language CMessageSource
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
init() 鍒濆鍖栧簲鐢ㄧ▼搴忕粍浠躲 CGettextMessageSource
onMissingTranslation() 褰撲俊鎭笉鑳借缈昏瘧鏃跺彂璧枫 CMessageSource
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
setLanguage() 璁剧疆璁剧疆婧愪俊鎭殑涔﹀啓璇█銆 CMessageSource
translate() 缈昏瘧淇℃伅鍒版寚瀹氳瑷銆 CMessageSource

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
loadMessages() 鍔犺浇鎸囧畾鐨勮瑷鍜岀被鍒潵缈昏瘧淇℃伅銆 CGettextMessageSource
translateMessage() 缈昏瘧鎸囧畾淇℃伅銆 CMessageSource

浜嬩欢

闅愯棌缁ф壙浜嬩欢

浜嬩欢鎻忚堪瀹氫箟鍦
onMissingTranslation 褰撲俊鎭笉鑳借缈昏瘧鏃跺彂璧枫 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 && $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();
}

鍔犺浇鎸囧畾鐨勮瑷鍜岀被鍒潵缈昏瘧淇℃伅銆

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.