Я делал перевод для своего сайта с помощью i18n и переводил поведение.Cakephp 2.6 интернационализация
Как только пользователь нажмет на кнопку изменения языка. Весь текст и записи будут показаны на китайском языке.
Но
, когда пользователь нажимает на других страницах, только текст переведен через i18n еще отображая на китайском. Записи базы данных показывают оригинал, который является английским.
это код в AppController
function beforeFilter() {
$this->_setLanguage();
}
private function _setLanguage() {
//if the cookie was previously set, and Config.language has not been set
//write the Config.language with the value from the Cookie
if ($this->Cookie->read('lang') && !$this->Session->check('Config.language')) {
$this->Session->write('Config.language', $this->Cookie->read('lang'));
}
//if the session was previously set, and cookie language has not been set
//write the cookie language with the value from the session
else if (!$this->Cookie->read('lang') && $this->Session->check('Config.language')) {
$this->Cookie->write('lang', $this->Session->read('Config.language'));
}
//if the user clicked the language URL
if (isset($this->params['language'])) {
//then update the value in Session and the one in Cookie
$this->Session->write('Config.language', $this->params['language']);
$this->Cookie->write('lang', $this->params['language'], false, '20 days');
}
}
Мне интересно, где я пошло не так?
Может ли кто-нибудь помочь?
Благодаря
Пожалуйста, всегда указывайте точную версию CakePHP, что вы используете! Также, пожалуйста, покажите, как/где вы устанавливаете фактическое значение 'Config.language' [** configuration **] (http://book.cakephp.org/2.0/en/development/configuration.html#configure-class) (не значение сеанса)! – ndm