CakePHP应用程序的本地化问题

时间:2013-11-07 11:37:44

标签: cakephp localization internationalization cakephp-2.4

我正在开发CakePHP 2应用程序。

我的问题是我不知道在用户点击链接后如何执行指令。

我的意图是在会话中写一个值。用户点击标志图标,因此他指定了会话的语言。

然后我会跑

$this->Session->write('Config.language', 'eng');

我该如何解决这个问题?感谢

2 个答案:

答案 0 :(得分:0)

我认为,你应该创建一个接受lang属性的控制器动作,如。

<?php

    // in settings controller
    funciton select_lang($lang = 'eng'){
      $this->autoRender = false;
      $this->Session->write('Config.language', $lang);
      return $this->redirect($this->refrer());
    }
?>

在视图中,您只需传递var lang的值。

答案 1 :(得分:0)

假设您已点击eng语言链接,即http://mycakeapp.com/?lang=eng

现在,您可以在appcontroller中使用beforefilter回调来设置英语 像这样。

public function beforeFilter() {
    if (!empty($this->request->query['lang'])) {
        $this->Session->write('Config.language', $this->request->query['lang']);
    }

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