Yii Framework v1.1.10 绫诲弬鑰

CMessageSource

system.i18n
缁ф壙 abstract class CMessageSource » CApplicationComponent » CComponent
瀹炵幇 IApplicationComponent
瀛愮被 CDbMessageSource, CGettextMessageSource, CPhpMessageSource
婧愯嚜 1.0
鐗堟湰 $Id: CMessageSource.php 3515 2011-12-28 12:29:24Z mdomba $
婧愮爜 framework/i18n/CMessageSource.php
CMessageSource鏄秷鎭炕璇戠被鐨勫熀绫汇

淇℃伅婧愭槸鎻愪緵淇℃伅鍥介檯鍖栵紙i18n锛夌殑搴旂敤绋嬪簭缁勪欢銆 瀹冨瓨鍌ㄤ笉鍚岀殑缈昏瘧淇℃伅缁撴灉锛 褰撹姹傛椂鎻愪緵杩欎簺缈昏瘧淇℃伅銆

鍏蜂綋绫诲繀闇瀹炵幇loadMessages鎴栭噸鍐translateMessage

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
behaviors array 杩欎釜搴旂敤缁勪欢闄勫姞鐨勮涓恒 杩欐琛屼负灏嗗湪搴旂敤缁勪欢璋冪敤init鏃堕檮鍔犲湪搴旂敤缁勪欢涓娿 璇峰弬鐓CModel::behaviors濡備綍鎸囧畾姝ゅ睘鎬у笺 CApplicationComponent
forceTranslation boolean 褰撴簮璇█鍜岀洰鏍囪瑷鐩稿悓鏃讹紝鏄惁寮哄埗缈昏瘧淇℃伅銆 榛樿涓篺alse锛屾剰鎬濇槸婧愯瑷鍜岀洰鏍囪瑷涓嶅悓鏃舵墽琛屻 CMessageSource
isInitialized boolean 妫鏌ュ簲鐢ㄧ粍浠舵槸鍚﹀凡缁忓垵濮嬪寲銆 CApplicationComponent
language string 杩斿洖婧愪俊鎭殑涔﹀啓璇█銆 榛樿涓application language CMessageSource

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__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() 鍒濆鍖栧簲鐢ㄧ粍浠躲 CApplicationComponent
onMissingTranslation() 褰撲俊鎭笉鑳借缈昏瘧鏃跺彂璧枫 CMessageSource
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
setLanguage() 璁剧疆璁剧疆婧愪俊鎭殑涔﹀啓璇█銆 CMessageSource
translate() 缈昏瘧淇℃伅鍒版寚瀹氳瑷銆 CMessageSource

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
loadMessages() 鍔犺浇鎸囧畾璇█鍜岀被鍨嬬殑淇℃伅缈昏瘧銆 CMessageSource
translateMessage() 缈昏瘧鎸囧畾淇℃伅銆 CMessageSource

浜嬩欢

闅愯棌缁ф壙浜嬩欢

浜嬩欢鎻忚堪瀹氫箟鍦
onMissingTranslation 褰撲俊鎭笉鑳借缈昏瘧鏃跺彂璧枫 CMessageSource

灞炴ц缁

forceTranslation 灞炴 锛堝彲鐢ㄨ嚜 v1.1.4锛
public boolean $forceTranslation;

褰撴簮璇█鍜岀洰鏍囪瑷鐩稿悓鏃讹紝鏄惁寮哄埗缈昏瘧淇℃伅銆 榛樿涓篺alse锛屾剰鎬濇槸婧愯瑷鍜岀洰鏍囪瑷涓嶅悓鏃舵墽琛屻

language 灞炴
public string getLanguage()
public void setLanguage(string $language)

杩斿洖婧愪俊鎭殑涔﹀啓璇█銆 榛樿涓application language

鏂规硶璇︾粏

getLanguage() 鏂规硶
public string getLanguage()
{return} string 杩斿洖婧愪俊鎭殑涔﹀啓璇█銆 榛樿涓application language
婧愮爜锛 framework/i18n/CMessageSource.php#52 (鏄剧ず)
public function getLanguage()
{
    return 
$this->_language===null Yii::app()->sourceLanguage $this->_language;
}

loadMessages() 鏂规硶
abstract protected array loadMessages(string $category, string $language)
$category string 淇℃伅绫诲埆
$language string 鐩綍璇█
{return} array 杩斿洖鍔犺浇淇℃伅
婧愮爜锛 framework/i18n/CMessageSource.php#46 (鏄剧ず)
abstract protected function loadMessages($category,$language);

鍔犺浇鎸囧畾璇█鍜岀被鍨嬬殑淇℃伅缈昏瘧銆

onMissingTranslation() 鏂规硶
public void onMissingTranslation(CMissingTranslationEvent $event)
$event CMissingTranslationEvent the event parameter
婧愮爜锛 framework/i18n/CMessageSource.php#124 (鏄剧ず)
public function onMissingTranslation($event)
{
    
$this->raiseEvent('onMissingTranslation',$event);
}

褰撲俊鎭笉鑳借缈昏瘧鏃跺彂璧枫 澶勭悊瀵硅薄灏嗕繚瀛樹俊鎭埌鏃ュ織锛 鎴栬呭仛涓浜涢粯璁ゅ鐞嗐 灏嗙敱translateMessage杩斿洖CMissingTranslationEvent::message灞炴с

setLanguage() 鏂规硶
public void setLanguage(string $language)
$language string 璁剧疆婧愪俊鎭殑涔﹀啓璇█銆
婧愮爜锛 framework/i18n/CMessageSource.php#60 (鏄剧ず)
public function setLanguage($language)
{
    
$this->_language=CLocale::getCanonicalID($language);
}

translate() 鏂规硶
public string translate(string $category, string $message, string $language=NULL)
$category string 淇℃伅绫诲埆
$message string 瑕佺炕璇戠殑淇℃伅
$language string 鐩爣璇█銆傚鏋滀负null锛堥粯璁わ級锛屽垯璋冪敤application language
{return} string 杩斿洖宸茬粡缈昏瘧鐨勪俊鎭紙濡傛灉涓嶉渶瑕佺炕璇戝垯杩斿洖鍘熷淇℃伅锛
婧愮爜锛 framework/i18n/CMessageSource.php#81 (鏄剧ず)
public function translate($category,$message,$language=null)
{
    if(
$language===null)
        
$language=Yii::app()->getLanguage();
    if(
$this->forceTranslation || $language!==$this->getLanguage())
        return 
$this->translateMessage($category,$message,$language);
    else
        return 
$message;
}

缈昏瘧淇℃伅鍒版寚瀹氳瑷銆

娉ㄦ剰锛 濡傛灉鎸囧畾璇█涓source message language鐩稿悓鏃跺垯涓嶇炕璇戜俊鎭

濡傛灉娌℃湁鎵惧埌瀵瑰簲鐨勭炕璇戜俊鎭紝 鍒欒皟鐢onMissingTranslation浜嬩欢銆 澶勭悊瀵硅薄鍙互璁板綍杩欎簺淇℃伅鎴栧仛涓浜涢粯璁ゅ鐞嗭紝 鐒跺悗杩斿洖CMissingTranslationEvent::message杩欎釜浜嬩欢鍙傛暟銆

translateMessage() 鏂规硶
protected string translateMessage(string $category, string $message, string $language)
$category string 淇℃伅鎵灞炵殑绫诲埆
$message string 瑕佺炕璇戠殑娑堟伅
$language string 鐩爣璇█
{return} string 杩斿洖宸茬粡缈昏瘧鐨勪俊鎭
婧愮爜锛 framework/i18n/CMessageSource.php#100 (鏄剧ず)
protected function translateMessage($category,$message,$language)
{
    
$key=$language.'.'.$category;
    if(!isset(
$this->_messages[$key]))
        
$this->_messages[$key]=$this->loadMessages($category,$language);
    if(isset(
$this->_messages[$key][$message]) && $this->_messages[$key][$message]!=='')
        return 
$this->_messages[$key][$message];
    else if(
$this->hasEventHandler('onMissingTranslation'))
    {
        
$event=new CMissingTranslationEvent($this,$category,$message,$language);
        
$this->onMissingTranslation($event);
        return 
$event->message;
    }
    else
        return 
$message;
}

缈昏瘧鎸囧畾淇℃伅銆 濡傛灉缈昏瘧淇℃伅娌℃湁琚壘鍒帮紝 鍒欏彂璧onMissingTranslation浜嬩欢銆

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