Я прочитал абсолютно все сообщения SO об интернационализации в CakePHP, и, похоже, у меня ничего не работает. Я использую CakePHP 2.5.1.
В config/bootstrap.php:
//Default language
Configure::write('Config.language', 'spa');
В контроллере/AppController.php:
public $components = array('Session', 'DebugKit.Toolbar');
public function beforeFilter()
{
//Set the UI lang preference
if($this->Session->check('Config.language'))
{
Configure::write('Config.language', $this->Session->read('Config.language'));
}
}
Моя файловая структура такова:
/Locale/
- default.mo
- default.po
- default.pot
- eng/LC_MESSAGES/
- default.mo
- default.po
У меня есть ссылки на вид как таковой:
echo '<p class="">' . $this->Html->link('EN', array('controller' => 'users', 'action' => 'lang', 'en')) . '</p>';
echo '<p class="">' . $this->Html->link('ES', array('controller' => 'users', 'action' => 'lang', 'es')) . '</p>';
и мой контроллер Users делает с этим следующее:
public function lang($which)
{
if($which == "en")
{
$this->Session->write('Config.language', 'eng');
} elseif($which == "es")
{
$this->Session->write('Config.language', 'spa');
} else
{
$this->Session->setFlash(_('Unknown language.'), 'flash_red');
}
$this->redirect('/');
}
Когда я нажимаю на любую из ссылок (EN или ES), страница перезагружается, но показывает обычный текст.
Любая подсказка о том, что я мог упустить? Или какие-нибудь советы о том, с чего начать отладку кода ядра Cake?
ПД. Журналы ошибок ничего не показывают.
Спасибо!
/app/tmp/cache/
). - person ndm   schedule 07.10.2014>Config
, и когда я нажимаю на него, я вижу значениеlanguage
, которое меняется междуeng
иspa
, когда я нажимаю на разные ссылки. Я также удалил настройку в bootstrap.php и удалил файлы из папки кеша. Все равно не повезло :( - person Sandy   schedule 08.10.2014/tmp/cache/persistent/
, которые заканчиваются на_eng
и_spa
- person Sandy   schedule 08.10.2014