Welcome 微信登录

首页 / 操作系统 / Linux / Yii2配置多语言

我的YII2版本是2.0.7, 设置多语言时和其他教程有不同的地方, 所以整理如下1. 在一个controller里面写一个调用i18n的语句, 比如actionIndexecho Yii::t("app", "whatisthis");现在进入这个页面, 页面输出whatisthis2. 手动创建一个文件夹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" => "yiii18nPhpMessageSource",//"basePath" => "@app/messages",//"sourceLanguage" => "en-US","fileMap" => ["app" => "yii.php","app/error" => "error.php",],],],],

注意, 如果想要更改validate等yii本身的翻译
需增加下面设置到"translations" => []中:"yii" => [ "class" => "yiii18nPhpMessageSource", "sourceLanguage" => "en-US", "basePath" => "@app/messages" ],components同等级后加入"language" => "zh-CN",7. 再刷新页面, 应该会显示"这是啥玩意"了.8. 当你需要新增其他语言时候, 执行第3,4步会重新生成文件, 之前的翻译(whatisthis)会保留, 但我试了之后发现变成了"whatisthis" => "@@这是啥玩意@@",很奇怪的两边多出@@.在Yii2中使用Pjax导致Yii2内联脚本载入失败的问题 http://www.linuxidc.com/Linux/2016-03/128949.htmYii2 实现修改密码功能 http://www.linuxidc.com/Linux/2015-07/120137.htmYii 用户登陆机制  http://www.linuxidc.com/Linux/2015-01/111602.htmYii中引入js和css文件  http://www.linuxidc.com/Linux/2015-01/111603.htmYii 不完全解决方案  http://www.linuxidc.com/Linux/2015-01/111606.htmYii CGridView 基本使用 http://www.linuxidc.com/Linux/2015-01/111607.htmYii框架分布式缓存的实现方案 http://www.linuxidc.com/Linux/2015-02/113828.htmYii 的详细介绍:请点这里
Yii 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139314.htm