1

国际化进程不起作用。

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

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

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

4

2 回答 2

2

以下是一些可能的建议:

• 清除Cake 缓存PATH_YOUR_APP/tmp/cache。删除 and 中的文件modelspersistent但不删除目录本身。我相信持久化是保存本地化字符串的地方,但可以肯定的是两者都是空的。

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

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

• 您是如何创建翻译文件的?目录中也有.mo文件.po吗?我相信由于字符编码问题,不建议直接编辑.po和文件(但我可能会弄错)。Poedit 是处理文件的好工具,尽管它可能更健壮。.pot.po

于 2011-10-31T13:33:32.450 回答
0

还有一些事情要检查

  1. 检查您的浏览器语言是否正确选择葡萄牙语作为首选语言
  2. 您的 msgid 和 msgstr 键是否位于单独的行中并正确地将文本括在双引号中?
  3. 我不是 CakePHP 专家,但请尝试将配置移至 bootstrap.php。您的代码在那里似乎合乎逻辑。
于 2011-10-31T14:21:15.247 回答