关于Yii2国际化的问题 专门抽时间研究了一下~
首先可以先查看一下这个文件夹: /xxx/vendor/yiisoft/yii2/messages (xxx为项目根目录名)
打开后可以看到,该文件夹下有大量语言文件包,每个包里对应了框架中一大堆的翻译规则,比如“zh-CN”包会
把英文转换为中文,其他的包也是一样。但其实只能转换已存在的规则,而不存在的规则还需要进行手工添加。
举个栗子,首先打开 xxx/index.php?r=site/login 页面,可以看到原来的样子如下图,如果非法输入,会提示出不能为空,这时的提示是英文的。
那么现在我们打开这个文件:common/config/main.php 并添加以下三行到末尾:
'language' => 'zh-CN',//启用国际化支持 'sourceLanguage' => 'zh-CN',//源代码采用中文 'timeZone' => 'Asia/Shanghai', //设置时区
添加后如下:
接下来再次打开刚才的页面,出现如下显示
仔细看会发现提示变为中文了!而变化的原因就是因为匹配了语言包里面的规则!但我们同时也看到有的英文却没有被翻译,这也说明翻译对中文的支持还不是很全面。从而我们可以得知这些语言包是对总体框架产生作用的语言包,如果我们想改变框架的总体语言的显示,就可以这么设置,但是如果想要改变特定的文字呢?那么则需要用到 Yii::t 这个翻译函数了。当然这里只讲总体框架的国际化。
我想看到这个大家就基本明白框架的国际化是怎么回事了吧!另外本人也是刚刚写技术博客,如果有什么问题,欢迎大家来拍砖!