我正在尝试在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
根本没有。
感谢您提前帮助的人:)
答案 0 :(得分:0)
Cake php提供了一种非常好的方式来执行功能而无需登录系统。这是$this->Auth->allow()
中的AppController
。
所以
在App控制器中,您将在某处获得此行$this->Auth->allow()
。只是给那些将改变语言的动作名称。该功能在没有用户登录的情况下开始工作如果你在AppController
中找不到这一行,那么你也可以写它。