【问题标题】:Set locale from user function从用户函数设置语言环境
【发布时间】:2013-12-15 18:13:36
【问题描述】:

我正在尝试在 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'

我在这里做错了什么?

【问题讨论】:

    标签: yii locale


    【解决方案1】:

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

        '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'));
    

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多