我已经阅读了关于 CakePHP 国际化的所有 SO 帖子,但似乎没有什么对我有用。我正在使用 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>';
我的用户控制器对此执行以下操作:
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 核心代码中从哪里开始调试的任何提示?
PD。错误日志不显示任何内容。
谢谢!