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中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
May 04 PHP
ThinkPHP框架设计及扩展详解
Nov 25 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
php文件管理基本功能简单操作
Jan 16 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 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生成HTML静态页面实例代码
2008/08/31 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
PHP数组操作类实例
2015/07/11 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python 元类使用说明
2009/12/18 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
python用post访问restful服务接口的方法
2018/12/07 Python
详解python持久化文件读写
2019/04/06 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
酒店led欢迎词
2014/01/09 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
模范教师材料大全
2014/12/16 职场文书
读后感作文评语
2014/12/25 职场文书
学生检讨书怎么写
2015/05/07 职场文书
php中pcntl_fork详解
2021/04/01 PHP