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 相关文章推荐
php数字转汉字代码(算法)
Oct 08 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
php银联网页支付实现方法
Mar 04 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
php 中奖概率算法实现代码
Jan 25 PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
PHP实现的支付宝支付功能示例
Mar 26 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
BBS(php & mysql)完整版(八)
2006/10/09 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
二行代码解决全部网页木马
2008/03/28 Javascript
Jquery ui css framework
2010/06/28 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
简介Django中内置的一些中间件
2015/07/24 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
django中使用POST方法获取POST数据
2019/08/20 Python
python处理document文档保留原样式
2019/09/23 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
开业庆典邀请函
2014/01/08 职场文书
运动会入场词100字
2014/02/06 职场文书
信用卡工资证明格式
2014/09/13 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
联谊会开场白
2015/06/01 职场文书
指导教师推荐意见
2015/06/05 职场文书
学生病假条范文
2015/08/17 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python