roger
(Roger Happy8)
1
使用多语言的时:
- 我在VIEW层里生成切换到当前页面的其它语言的链接, 这个链接怎么生成呢?
比如, /post/index?id=1 或 /post/index 或 /post/index , 那如何把语言把语言附加上呢?
注: 是指在任何页都可以转到当前页面的其它语言的该页面, 而非指定的 array('post/index')
- 如何能用路由规则来解决上面这个问题?
比如, 语言版本有 en_us, zh_cn. 能不能使用 post/index/en_us/id/1 和post/index/zh_cn/id/1 来切换语言呢?
- 我这样使用本地化和语言对吗?
// path: controllers/BaseController.php
// $defaultLocale => ('en_us', 'zh_cn', ...)中的一个
$this->_locale = Yii::app()->getLocale($defaultLocale);
Yii::app()->setLanguage($defaultLocale);
$this->_language = Yii::app()->getLanguage();
qiang
(Qiang Xue)
2
-
不是太明白你的要求。你可以用$this->createUrl('post/index', array('id'=>1, 'lang'=>$lang)创建出包含语言参数的链接。
-
路由规则可以是:
'post/index/<lang:\w+_\w+>/*'=>'post/index'
- 你不需要额外去设locale了。当你setLanguage()后,缺省的locale就是这个语言所对应的locale。你可以直接使用Yii::app()->numberFormatter。
roger
(Roger Happy8)
3
谢谢强哥的回答
第一个问题。 我在网站中的任何一个页面, 点击另一种语言的按钮, 都会跳转到该语言的页面。 这一部分代码是放在layout里面, 是公用的。 使用 Yii::app()->getRequest()->getUrl() 得到该页的链接, 可是我不知道怎么把语言加到链接, 并且用 createUrl()的方式写出来。
不知道我描述清楚了没有~~
roger
(Roger Happy8)
4
qiang
(Qiang Xue)
5
你可以参考一下CPagination::createPageUrl()的做法。