我有一个问题,我在我的多语言网站上使用了一种翻译yii 1的方法,如下所示。对不起,如果我没有解释好,但我是新来的。
我认为负责构建url的类取决于组件文件夹中传播CUrlManager的所选语言
/ **
* We extend the class urlManager
* /
MyCUrlManager class extends CUrlManager
{
public function createUrl ($ route, $ params = array (), $ ampersand = '&')
{
if (! isset ($ params ['language']))
$ Params ['language'] = Yii :: app () -> language;
return parent :: createUrl ($ route, $ params, $ ampersand);
}
}
然后config/main我执行以下
'UrlManager' => array (
...
'Class' => 'application.components.MyCUrlManager'
...
)
建立语言在阵列配置中,
'SourceLanguage' => 'is',
'Language' => 'is',
在控制器中,我执行以下操作:
/ **
* Builder main controller
*param [String] $ id id driver father
*param [String] $ module referers
* /
public function __construct ($ id, $ module = null) {
parent :: __ construct ($ id, $ module);
Yii :: app () -> language = (isset ($ _ GET ['language'])) $ _ GET ['language']: Yii :: app () -> language;
}
/ **
* Method to create the url of the selected language
*param String $ lang [description]
*return [Type] [description]
* /
public function createMultilanguageReturnUrl ($ lang = 'en') {
$ Arr = array ('language' => $ lang);
if (count ($ _ GET)> 0) {
$ Arr = $ _GET;
$ Arr ['language'] = $ lang;
}
return $ this-> createUrl ('', $ arr);
}
并最终在链接上指示语言
$ this-> createMultilanguageReturnUrl ('en')
用CMenu制作菜单和子菜单,最后我在url 中找到了这样的东西
/mysite/home/index?Language=es
链接我所做的:http://daniarlandis.es/2014/02/19/yii-multilenguaje-mediante-get-para-optimizar-seo/
问题是,我在重定向视图时产生了很多错误,当我打开一个链接时,一个新的选项卡被放回默认语言EN,然后我想知道:
我想知道是否可以用会话变量来实现这个方法?如果它可以与数据列表一起实现?
我使用了这里提供的相同解决方案,这对我来说效果最好,但不是最佳
提前非常感谢您的帮助
您可以像TsUrlManager一样创建UrlManager
。您可以将参数名称从_lang
更改为language
(如代码中所示)