YII2 实现多语言配置的方法分享


Posted in PHP onJanuary 11, 2017

前言:

由于我的YII2版本是2.0.7, 设置多语言时和其他教程有不同的地方, 所以想着整理下,方便自己以后需要的时候和有需要的朋友参考学习。下面来一起学习学习吧。

方法如下:

1. 在一个controller里面写一个调用i18n的语句, 比如actionIndex

echo \Yii::t('app', 'whatisthis');

现在进入这个页面, 页面输出whatisthis

2. 手动创建一个文件夹messages来存放多语言相关文件, 如果是advanced版本则在frontend下面创建这个文件夹

3. 创建i18n配置文件

yii message/config frontend/messages/config.php

会自动生成一个config.php文件

然后打开frontend/messages/config.php, language行设置为

'languages' => ['en', 'zh-CN'],

4. 创建message文件, 执行

yii message frontend/messages/config.php

这样在frontend/messages里面会生成en和zh-CN文件夹

5. 打开frontend/messages/zh-CH/yii.php

添加一行

'whatisthis' => '这是啥玩意',

6. 在/yii2/frontend/config/main.php里设置

components中加入

'i18n' => [
  'translations' => [
  'app*' => [
   'class' => 'yii\i18n\PhpMessageSource',
   //'basePath' => '@app/messages',
   //'sourceLanguage' => 'en-US',
   'fileMap' => [
   'app' => 'yii.php',
   'app/error' => 'error.php',
   ],
  ],
  ],
 ],

注意, 如果想要更改validate等yii本身的翻译

需增加下面设置到 'translations' => []中:

'yii' => [ 'class' => 'yii\i18n\PhpMessageSource', 'sourceLanguage' => 'en-US', 'basePath' => '@app/messages' ],

components同等级后加入

'language' => 'zh-CN',

7. 再刷新页面, 应该会显示"这是啥玩意"了.

8. 当你需要新增其他语言时候, 执行第3,4步会重新生成文件, 之前的翻译(whatisthis)会保留, 但我试了之后发现变成了

'whatisthis' => '@@这是啥玩意@@',

很奇怪的两边多出@@.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

PHP 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
php Calender(日历)代码分享
Jan 03 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
yii添删改查实例
Nov 16 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
Smarty模板常见的简单应用分析
Nov 15 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 PHP
PHP7 错误处理机制修改
Mar 09 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 #PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 #PHP
php实现36进制与10进制转换功能示例
Jan 10 #PHP
php获取当前url地址的方法小结
Jan 10 #PHP
PHP实现接收二进制流转换成图片的方法
Jan 10 #PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 #PHP
php 访问oracle 存储过程实例详解
Jan 08 #PHP
You might like
杏林同学录(八)
2006/10/09 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
JS定义类的六种方式详解
2016/05/12 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
numpy.meshgrid()理解(小结)
2019/08/01 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
python两种注释用法的示例
2020/10/09 Python
Python类型转换的魔术方法详解
2020/12/23 Python
python中remove函数的踩坑记录
2021/01/04 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
经典c++面试题三
2015/07/08 面试题
办公室驾驶员岗位职责
2013/11/15 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
大学三年计划书范文
2014/04/30 职场文书
2015年党性分析材料
2014/12/19 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python