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 相关文章推荐
备份mysql数据库的php代码(一个表一个文件)
May 28 PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
PHP用SAX解析XML的实现代码与问题分析
Aug 22 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
Apr 15 PHP
PHP排序算法类实例
Jun 17 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
javascript 动态加载 css 方法总结
2009/07/11 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
浅析JS运动
2015/12/28 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
Python贪心算法实例小结
2018/04/22 Python
python中强大的format函数实例详解
2018/12/05 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
Python调用服务接口的实例
2019/01/03 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
python和c语言哪个更适合初学者
2020/06/22 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
毕业生就业自荐书
2013/12/15 职场文书
企业办公室岗位职责
2014/03/12 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
2014年团支书工作总结
2014/11/14 职场文书
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js