CakePHP 2.0国际化的麻烦

时间:2011-10-31 13:10:52

标签: php cakephp internationalization cakephp-2.0

国际化进程无效。

我跑了cake i18n export。之后,我将翻译放入文件夹app/locale/por/LC_MESSAGES/default.po.中的文件“.po”。

我在AppController beforeFilter()中调用了方法Configure::write('Config.language', 'por');

但翻译未显示在__() - 方法中。

2 个答案:

答案 0 :(得分:2)

以下是一些可能的建议:

•清除PATH_YOUR_APP/tmp/cache中的Cake缓存。删除modelspersistent中的文件,但不删除目录本身。我相信持久性是保存本地化字符串的地方,但是为了确保它们都是空的。

•除beforeFilter以外,您是否覆盖任何控制器中的AppController?如果是这样,请在控制器的parent::beforeFilter();方法中调用beforeFilter,然后再处理其他内容,如下所示:

public function beforeFilter() {
  parent:beforeFilter();
  //Do stuff here
}

•您是如何创建翻译文件的? .mo目录中是否还有.po个文件?我认为由于字符编码问题,不建议直接编辑.po.pot文件(但我可能会弄错)。 Poedit是处理.po文件的好工具,但它可能更强大。

答案 1 :(得分:0)

还有更多要检查的事情

  1. 检查您的浏览器语言是否正确选择葡萄牙语作为首选语言
  2. 你的msgid和msgstr键是否在单独的行中并且用双引号正确地包含了文本?
  3. 我不是CakePHP专家,但尝试将配置移至bootstrap.php。你的代码似乎合乎逻辑。