jerry2801
(Jerry2801)
1
在视图中使用:
<?php echo CHtml::submitButton(‘Login’); ?>
生成:
<input tabindex="100" type="submit" name="yt0" value="Login" />
当在main.php 设置了language='zh_cn’后,
是否允许在 messages/zh_cn/ 下面,自动读取 _CHtml.php 文件,获取里面对应的 Login => 登录 ?
这样的好处是,无需在视图进行多语转换,这种机制最好是可以结合框架,即:
优先查找 messages/languageCode/YiiModuleName.php, 假如没有,则读取框架的多语对应的翻译模块~
这只是一个设想~
不知道,qiang是否有考虑这个呢?
这个可以应用到很多领域,如 model的验证 required, 假如,通过配置项目的messages对应的文件,就可以达到更改翻译结果的话,
我想是非常方便的~ 虽然这样可能会牺牲一点性能,不过我觉得还是值得~
qiang
(Qiang Xue)
2
不是太明白你的意思。
如果是自动翻译多语言视图,那么你可以创建views/post/zh_cn/view.php,这样在显示views/post/view.php,Yii会自动去读取zh_cn下面的视图,假设language=zh_cn的话。
对于消息翻译,Yii会在messages/zh_cn去寻找消息文件。
jerry2801
(Jerry2801)
3
views/post/zh_cn/view.php 这样的设计非常好!~
这完全是自动的? 假如是,应该有效率问题吧,每次都检查目录一次
我觉得这种做法,可以考虑在控制器层进行控制,如:
$this->useI18NView();
return $this->render(‘view’);
qiang
(Qiang Xue)
4
application有两个语言相关的属性:language和sourceLanguage。如果两者一样,Yii就不去找子目录的视图文件了。这样,对于不需要多语言的网站就没有性能损失了。如果你的网站只是部分需要支持多语言,那么你可以在控制器里动态控制这两个属性值。