在所有站点视图中应用Yii :: app() - >语言

时间:2014-08-23 01:13:47

标签: php yii

我使用yii ..我希望在我的网站中将语言从阿拉伯语改为英语

它对我不起作用 当我点击..我将让它去功能,并为我的所有视图执行此操作

但现在这个功能不起作用

public function actionLanguage()
 //This function to change language
{
    $lang = Yii::app()->request->getQuery('lang');
    if($lang=='ar') {Yii::app()->language='ar'; $this->redirect(array('site/index'));}
    if($lang=='en') {Yii::app()->language='en'; $this->redirect(array('site/index'));}
}

1 个答案:

答案 0 :(得分:2)

我使用以下代码更改语言。我有一个language操作,可以将语言保存到会话中。然后在每个页面加载中,我将应用程序语言设置为会话语言。

 public function actionLanguage($lang) {
    Yii::app()->session['_lang'] = $lang;
    $this->redirect(Yii::app()->request->getUrlReferrer());
 }

在我的Controller.php(所有其他控制器扩展此控制器)中,我否决了init()函数来设置语法。

 public function init() {
    parent::init();

    $app = Yii::app();
    if (isset($app->session['_lang'])) {
        $app->language = $app->session['_lang'];
    }
 }