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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
PHP技术开发技巧分享
Mar 23 PHP
php结合ajax实现赞、顶、踩功能实例
May 12 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
PHP消息队列用法实例分析
Feb 12 PHP
Yii rules常用规则示例
Mar 15 PHP
CI配置多数据库访问的方法
Mar 28 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
PHP引用返回用法示例
May 28 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 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之变量、常量学习笔记
2008/03/27 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
Python文件路径名的操作方法
2019/10/30 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
就业协议书范本
2014/04/11 职场文书
小学生操行评语
2014/04/22 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
初三毕业评语
2014/12/26 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android