2011-10-31 77 views
1

国际化进程无法正常工作。CakePHP 2.0国际化问题

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

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

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

回答

2

这里有一些可行的建议:

•清零PATH_YOUR_APP/tmp/cache蛋糕缓存。删除modelspersistent中的文件,但不删除目录本身。我相信持久性是本地化字符串被保存的位置,但是两者都是确定的。

•您是否覆盖了您的任何控制器中的beforeFilter,而不是AppController?如果这样称呼在控制器的beforeFilter方法parent::beforeFilter();,处理其他的东西之前,像这样:

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

•您是如何创建的翻译文件? .po目录中是否还有.mo文件?由于字符编码问题,我相信直接编辑0​​和.pot文件是不被推荐的(但我可能会被误认为是)。 Poedit是处理.po文件的好工具,虽然它可能更健壮。

+0

只是清除它的缓存工作!谢谢! –

+0

感谢您使用缓存清除提示。这解决了我的问题。 – trante

0

一些更多的东西来检查

  1. 检查浏览器的语言是否被选定为第一语言
  2. 是在各行,妥善你MSGID,msgstr等键封闭双引号内的文字正确葡萄牙?
  3. 我不是CakePHP专家,但尝试将配置移动到bootstrap.php。你的代码似乎符合逻辑。
+0

我也尝试过bootstrap,但问题是缓存...但是,谢谢! –