找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 776|回复: 0
打印 上一主题 下一主题

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

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 05:28:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            前言:
由于我的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' => '@@这是啥玩意@@',
很奇怪的两边多出@@.
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
            
            
您可能感兴趣的文章:
  • 解析yii数据库的增删查改
  • Yii操作数据库的3种方法
  • Yii入门教程之目录结构、入口文件及路由设置
  • yii的CURD操作实例详解
  • Yii使用smsto短信接口的函数demo示例
  • Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
  • yii2高级应用之自定义组件实现全局使用图片上传功能的方法
  • Yii2实现增删改查后留在当前页的方法详解
  • yii使用bootstrap分页样式的实例
  • Yii CDBCriteria常用方法实例小结
  • Yii2-GridView 中让关联字段带搜索和排序功能示例
  • Yii全局函数用法示例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端