YII2 实现多语言配置的方法分享

前言:

由于我的YII2版本是2.0.7,设置多语言时和其他教程有不同的地方,所以想着整理下,方便自己以后需要的时候和有需要的朋友参考学习。下面来一起学习学习吧。

方法如下:

1. 在一个controller里面写一个调用i18n的语句,比如actionIndex

rush:plain;"> echo \Yii::t('app','whatisthis');

现在进入这个页面,页面输出whatisthis

2. 手动创建一个文件夹messages来存放多语言相关文件,如果是advanced版本则在frontend下面创建这个文件

3. 创建i18n配置文件

rush:plain;"> yii message/config frontend/messages/config.PHP

自动生成一个config.PHP文件

然后打开frontend/messages/config.PHP,language行设置为

['en','zh-CN'],

4. 创建message文件,执行

rush:plain;"> yii message frontend/messages/config.PHP

这样在frontend/messages里面会生成en和zh-CN文件

5. 打开frontend/messages/zh-CH/yii.PHP

添加一行

'这是啥玩意',

6. 在/yii2/frontend/config/main.PHP里设置

components中加入

[ 'translations' => [ 'apP*' => [ 'class' => 'yii\i18n\PHPMessageSource',//'basePath' => '@app/messages',//'sourceLanguage' => 'en-US','fileMap' => [ 'app' => 'yii.PHP','app/error' => 'error.PHP',],

注意,如果想要更改validate等yii本身的翻译

增加下面设置到 'translations' => []中:

[ 'class' => 'yii\i18n\PHPMessageSource','sourceLanguage' => 'en-US','basePath' => '@app/messages' ],

components同等级后加入

'zh-CN',

7. 再刷新页面,应该会显示"这是啥玩意"了.

8. 当你需要新增其他语言时候,执行第3,4步会重新生成文件,之前的翻译(whatisthis)会保留,但我试了之后发现变成了

'@@这是啥玩意@@',

很奇怪的两边多出@@.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


服务器优化必备:深入了解PHP8底层开发原理
Golang的网络编程:如何快速构建高性能的网络应用?
Golang和其他编程语言的对比:为什么它的开发效率更高?
PHP8底层开发原理揭秘:如何利用新特性创建出色的Web应用
将字符重新排列以形成回文(如果可能)在C++中
掌握PHP8底层开发原理和新特性:创建高效可扩展的应用程序
服务器性能优化必学:掌握PHP8底层开发原理
PHP8新特性和底层开发原理详解:优化应用性能的终极指南
将 C/C++ 代码转换为汇编语言
深入研究PHP8底层开发原理:创建高效可扩展的应用程序
C++程序查找法向量和迹
PHP8底层开发原理实战指南:提升服务器效能
重排数组,使得当 i 为偶数时,arr[i] >= arr[j],当 i 为奇数时,arr[i] <= arr[j],其中 j < i,使用 C++ 语言实现
Golang的垃圾回收:为什么它可以减少开发人员的负担?
C++程序:将一个数组的所有元素复制到另一个数组中
Golang:构建智能系统的基石
为什么AI开发者应该关注Golang?
在C和C++中,逗号(comma)的用法是用来分隔表达式或语句
PHP8底层开发原理解析及新特性应用实例
利用PHP8底层开发原理解析新特性:如何构建出色的Web应用