Yii 国际化的实现

简介:

全局配置

第一在 main.php 配置文件里加上'language'=>'zh_cn' 或'sourceLanguage'=>'zh_cn' , 告诉程序这是中文的,你去找中文包去(zh_cn).

第二在你对应的 model 里面加上以下代码,例如 Post model,

Java代码   收藏代码
  1. public function rules()  
  2. {  
  3.     return array(  
  4.         array('password','compare''message'=>Yii::t('models/Post','content')),  
  5.     );  
  6. }  
  7. public function attributeLabels()  
  8. {  
  9.     return array(  
  10.         'p_id'         => Yii::t('models/Post','id'),  
  11.         'p_title'      => Yii::t('models/Post','title'),  
  12.         'p_content'  => Yii::t('models/Post','content'),  
  13.         'p_addtime'     => 'PAddtime',  
  14.     );  
  15. }  

得到某一个

Java代码   收藏代码
  1. $model->getAttributeLabel('p_content');    
  2. <?php echo $form->label($model,'name'); ?  

 

Yii::t() 就是自动去找你的资源文件。参数第一个是路径,不用加.php, 后面是对应的名字

第三在 messages/ 下面新建 zh_cn/models/Post.php,内容是如下 不要命名成系统默认的YII,Zii

Java代码   收藏代码
  1. <?php  
  2. return  array(  
  3.     'Post'    => 'y1_post',  
  4.     'id'    => '编号',  
  5.     'title'    => '标题',  
  6.     'content'=>'内容'  
  7. );  

之后就好了。如果你还有英文以及其它语道理是一样的。

To get current language: 
$lang = Yii::app()->language;

To set current language:
Yii::app()->language = 'en';

部分配置

我们可以在应用程序配置文件进行设置,这样该设置将会对整个网站起作用 。但是我们只想翻译登录表单 ,所以我们只需要在SiteController::actionLogin()方法内进行设置,所以该设置只会在渲染登录表单时有效。所以打开该文件,在方法的开头按照如下形式设置目标语言

Java代码   收藏代码
  1. public function init() {  
  2.     if (Yii::app()->getRequest()->getServerName()=='cn.domain.com') {                 
  3.             Yii::app()->language='zh_cn';  
  4.     }  
  5. }  

 

Java代码   收藏代码
  1. public function actionLogin()   
  2. {  
  3.     Yii::app()->language = 'zh_cn';  
相关文章
|
7月前
|
存储 自然语言处理 开发者
Django国际化与本地化
Django提供了强大的国际化和本地化支持,使开发者能够轻松地构建多语言和多地区的Web应用
57 3
Yii2的国际化和本地化支持是什么?底层原理是什么?
Yii2的国际化和本地化支持是什么?底层原理是什么?
180 0
|
Oracle 关系型数据库 MySQL
Yii2的基本要求是什么?
Yii2的基本要求是什么?
158 0
|
缓存 开发框架 安全
Yii2是什么?
Yii2是什么?
303 0
|
缓存 安全 数据处理
Yii2相对于Yii1有哪些改进?
Yii2相对于Yii1有哪些改进?
国际化
国际化
120 0
国际化
|
SQL NoSQL PHP
Yii 2.0相比于Yii 1.1和Laravel有什么特点
今天收到一个需求,需要调研一下YII2框架,和Laravel做对比,从而确定技术选型。 我之前使用过YII框架,但是是1.1版本。目前的YII2是2.0版本,是重写的,可以说和1.1版本有天翻地覆的变化。
242 0
|
JSON 前端开发 JavaScript
前端国际化
前端国际化
|
PHP 开发工具 git
Yii2语言国际化配置
转载 Yii2语言国际化配置   最近想将博客做成支持多语言的,还好Yii2支持这个功能,于是查看了下官方的文档,哎,看了半天不知道干嘛用的,于是各种百度,Google的搜索,最终才明白原来很简单,只是官方写的太复杂...
1850 0
|
前端开发 自然语言处理 定位技术
Yii2语言国际化自动配置
转转发 Yii2语言国际化自动配置 如何实现语言国际自动化,大家可能觉得自动化,是不是不需要配置就自动切换,这个思路我之前也想过,能不能根据IP来判断地理位置然后确定其语言,网上找过一个"IpToCountry"相关的...
1196 0