最近,因为项目需要,开始学习使用Yii框架来作为项目MVC框架,Yii 官方网站:http://www.yiiframework.com/
今天主要讲一下Yii的国际化
---------------------------------------------------------------------------------------------------
Yii的国际化主要有三种,最常使用的是 基于PHP文件的国际化,这篇文章主要说明的也是此国际化方式
model的国际化:
在Yii 1.0.10没有出现之前,model的国际化和其他如 controller,widget等国际化方式一样,这类国际化方式稍后介绍,今天主要介绍1.0.10出现的新的model的国际化方式
我现在有一个model,代码如下:
class LoginForm extends CFormModel { public $username; public $password; public $rememberMe; /** * Declares the validation rules. * The rules state that username and password are required, * and password needs to be authenticated. */ public function rules() { return array( // username and password are required array('username, password', 'required'), // password needs to be authenticated array('password', 'authenticate'), ); } /** * Declares attribute labels. */ public function attributeLabels() { return array( 'rememberMe'=>Yii::t('LoginForm.loginForm','Remember me next time'), 'username'=>Yii::t('LoginForm.loginForm','UserName'), 'password'=>Yii::t('LoginForm.loginForm','PassWord'), ); } .............
现在我要将这个LoginForm的用户名,密码,和自动登陆 进行国际化,首先设置这三个参数的默认显示语言,如 'username'=>Yii::t('LoginForm.loginForm','UserName'),现在对这段代码做一个说明:username 为 变量名,LoginForm 为 LoginForm 这个 class 的名称,loginForm 为 我为这个用户登录命名的国际化类别,UserName为
username这个变量在view里面默认显示的名称(yii默认的显示语言为 en_us ),现在我们来看下我们的目录结构
--|model
--|LoginForm.php
--|messages
--|zh_cn
--|loginForm.php
其中loginForm.php里面为
<?php return array( 'Remember me next time'=>'自动登陆', 'UserName'=>'用户名', 'PassWord'=>'密   码', 'password incorrect'=>'密码错误', );
这样我们就实现了这个LoginForm的zh_cn国际化,那么如何使用zh_cn语言呢?在protected->config->main.php里面添加一行:'language'=>'zh_cn',这样就能将LoginForm这个登陆框用中文提示显示了