从用户功能设置区域设置

时间:2013-12-15 18:13:36

标签: yii locale

我正在尝试在Yii之间调整语言之间的网页。

到目前为止,我有这个简单的功能可以从菜单栏中调用:

    public function actionSetLanguage(){

    if(Yii::app()->language == 'en_us'){

            Yii::app()->language == 'en_uk';
    } else {

            Yii::app()->language == 'en_us';
    }

    $this->redirect(array('site/index'));


}

在我的索引页面中,我只是通过Yii::app()->language打印该值。

在我的配置中,我有:

'language'=>'en_us',

Yii::app()->language的价值从未改变过。它总是打印出'en_us'

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

我通过以下方式解决了这个问题:

    'behaviors' => array('ApplicationConfigBehavior'),

在我的配置中:

关注这篇文章:

http://www.yiiframework.com/wiki/208/how-to-use-an-application-behavior-to-maintain-runtime-configuration/

将其更改为会话而非POST。

控制器已更新为

    if(Yii::app()->language == 'en_us'){

        Yii::app()->session->add('lang', 'en_uk');
        Yii::app()->language == Yii::app()->session['lang'];
    } else {

            Yii::app()->session->remove('lang');
            Yii::app()->session->add('lang', 'en_us');
            Yii::app()->language == Yii::app()->session['lang'];
    }

    $this->redirect(array('site/index'));