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 09 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
php 将excel导入mysql
Nov 09 PHP
php的一些小问题
Jul 03 PHP
php实现下载限制速度示例分享
Feb 13 PHP
php实现的通用图片处理类
Mar 24 PHP
php is_executable判断给定文件名是否可执行实例
Sep 26 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 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
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
jQuery 使用手册(三)
2009/09/23 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
python远程邮件控制电脑升级版
2019/05/23 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
python 如何快速复制序列
2020/09/07 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
eBay奥地利站:eBay.at
2019/07/24 全球购物
毕业生个人求职的自我评价
2013/10/28 职场文书
博士生求职信
2014/07/06 职场文书
湘江北去观后感
2015/06/15 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
Vue router配置与使用分析讲解
2022/12/24 Vue.js