更改CakePHP中的语言

时间:2015-06-10 09:12:32

标签: php cakephp

我正在尝试在CakePHP应用程序中实现语言更改按钮。我按照了食谱(http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html),现在我可以在用户登录后更改语言。

我的语言按钮与我自己的LanguagesController中的操作相关联,如下所示:

public function sk() {
    $this->Session->write('Config.language', 'svk');
    $this->redirect($this->referer());
}

public function en() {
    $this->Session->write('Config.language', 'eng');
    $this->redirect($this->referer());
}

然后在AppController beforeFilter()函数中我有以下内容:

if ($this->Session->check('Config.language')) {
        Configure::write('Config.language', $this->Session->read('Config.language'));
}

但是,这仅在用户登录时有效,并且我希望让未登录的用户也更改应用程序语言。我试过这个:

public function en() {
    Configure::write('Config.language', 'eng');
    $this->redirect($this->referer());
}

但它对我不起作用。

另一件事 - 我想将应用程序的默认语言更改为斯洛伐克语,但是当我放入时:

Configure::write('Config.language', 'svk');

到上面提到的app/Config/bootstrap.php根本没有。

感谢您提前帮助的人:)

1 个答案:

答案 0 :(得分:0)

Cake php提供了一种非常好的方式来执行功能而无需登录系统。这是$this->Auth->allow()中的AppController

所以

在App控制器中,您将在某处获得此行$this->Auth->allow()。只是给那些将改变语言的动作名称。该功能在没有用户登录的情况下开始工作如果你在AppController中找不到这一行,那么你也可以写它。