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';  
相关文章
|
10天前
|
自然语言处理 中间件 开发者
Django的国际化与本地化支持:打造多语言应用
【4月更文挑战第15天】Django,一款强大的Web框架,内置出色的支持国际化和本地化功能,使得创建多语言应用变得简单。本文介绍了国际化(i18n)与本地化(l10n)的概念,阐述了Django的相应机制,包括标记可翻译字符串、提取与翻译、设置语言和地区、本地化格式处理。遵循文中步骤,开发者能有效构建适应不同语言和地区需求的Web应用,提升用户体验。
|
8月前
|
编解码 前端开发 Java
springMVC--数据验证以及国际化
springMVC--数据验证以及国际化
84 0
Yii2的国际化和本地化支持是什么?底层原理是什么?
Yii2的国际化和本地化支持是什么?底层原理是什么?
118 0
|
前端开发 PHP
Yii2的布局是什么?
Yii2的布局是什么?
|
自然语言处理 前端开发 Java
页面国际化
有的时候,我们的网站会去涉及中英文甚至多语言的切换,这时候我们就需要学习国际化了!
页面国际化
|
SQL NoSQL PHP
Yii 2.0相比于Yii 1.1和Laravel有什么特点
今天收到一个需求,需要调研一下YII2框架,和Laravel做对比,从而确定技术选型。 我之前使用过YII框架,但是是1.1版本。目前的YII2是2.0版本,是重写的,可以说和1.1版本有天翻地覆的变化。
196 0
|
JSON 前端开发 JavaScript
前端国际化
前端国际化
|
PHP 开发工具 git
Yii2语言国际化配置
转载 Yii2语言国际化配置   最近想将博客做成支持多语言的,还好Yii2支持这个功能,于是查看了下官方的文档,哎,看了半天不知道干嘛用的,于是各种百度,Google的搜索,最终才明白原来很简单,只是官方写的太复杂...
1793 0
|
前端开发 自然语言处理 定位技术
Yii2语言国际化自动配置
转转发 Yii2语言国际化自动配置 如何实现语言国际自动化,大家可能觉得自动化,是不是不需要配置就自动切换,这个思路我之前也想过,能不能根据IP来判断地理位置然后确定其语言,网上找过一个"IpToCountry"相关的...
1167 0
|
PHP 开发工具 git
Yii2语言国际化配置Twig翻译解决方案
转载 Yii2语言国际化配置Twig翻译解决方案 我自己在写项目的时候,不喜欢使用php自身的模板,主要是各种PHP标签让我烦,而且对Html的标签兼容也不够友好,所以我后面采用了twig模板,配置之类的也是很方便,写...
1237 0