Yii2已经发布一段时间了,现在最新的版本号是2.0.6。由于准备新开发一个支持多语言的网站(之前一直采用的是Yii1.1.x),因此来研究一下Yii2的i18n的用法。
借助Yii2带的basic模版,在 commands 中的 HelloController 来写示例代码,步骤如下:
1、写一个对i18n消息的调用语句:在 actionIndex 函数中写入
echo \Yii::t('app', 'zcg');
此时,执行 yii hello,将会直接输出:zcg
2、手工创建 i18n 配置文件存放目录
在应用目录下,手工创建 messages 目录
3、创建 i18n 配置文件
yii message/config messages/config.php
打开新生成的 config.php,里面的默认语言是 de,修改成 zh-CN
4、创建 message 文件
yii message messages/config.php
这样,会在 messages 目录下自动创建 zh-CN 目录,下面有两个新建的文件,分别是 app.php 和 yii.php
5、修改 app.php 文件中的 zcg 项
从空字符串'',改为 '张成钢'
6、language 设置
到目前为止,重新运行 yii hello,发现输出还是 zcg,这是因为我们还没有配置 language 属性。在 config/console.php 中加入 'language' => 'zh-CN',再运行 yii hello,会发现屏幕上显示的是'张成钢'了。
同理,如果是用在页面上,需要配置 config/web.php 的 language 属性。
7、新增的资源字符串
新增资源字符串后,再重新执行 步骤4 和 步骤5 进行配置就可以了