最近,因为项目需要,开始学习使用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这个登陆框用中文提示显示了