在cakePHP中切换语言方法运行时

时间:2016-11-27 09:13:22

标签: cakephp

我想在cakePHP运行时更改语言...

我在appController中试过这个

public function c(){

    Configure::write('Config.language', 'de');
    I18n::locale('de_DE');
    $this->Session->write('Config.language', 'de_DE');
    $this->Session->write('Config.language', 'de');

    $this->redirect($this->here);
}

以上都没有改变我的语言......

默认我有

'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_EN')

所以我试着打电话给http://www.example.com/app/c但它不起作用

1 个答案:

答案 0 :(得分:1)

use Cake\I18n\I18n;

I18n::locale('de_DE');


这实际上应该改变cookbook中所述的语言环境 但我在你的方法中看到你有一个重定向。您意识到您的方法更改了acual请求的语言?
如果您重定向,则再次设置app.php的默认语言环境。
如果您动态想要设置语言环境,则必须设置在每个请求中调用的地方,例如bootstrap.php或AppController beforeFilter方法。在那里你可以实现一个逻辑,根据例如,设置语言环境。网址等。