前言:
由于我的YII2版本是2.0.7,设置多语言时和其他教程有不同的地方,所以想着整理下,方便自己以后需要的时候和有需要的朋友参考学习。下面来一起学习学习吧。
方法如下:
1. 在一个controller里面写一个调用i18n的语句,比如actionIndex
rush:plain;">
echo \Yii::t('app','whatisthis');
2. 手动创建一个文件夹messages来存放多语言相关文件,如果是advanced版本则在frontend下面创建这个文件夹
3. 创建i18n配置文件
然后打开frontend/messages/config.PHP
,language行设置为
['en','zh-CN'],
4. 创建message文件,执行
这样在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',
8. 当你需要新增其他语言时候,执行第3,4步会重新生成文件,之前的翻译(whatisthis)会保留,但我试了之后发现变成了
'@@这是啥玩意@@',
很奇怪的两边多出@@.
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。