2

我刚刚开始在 CakePHP 中探索 i18n 的过程,我似乎无法找到允许我使用多个 po 文件的文件和函数的正确组合。如果我想为每一位可翻译文本使用一个 po 文件(default.po),那效果很好,但我发现它很快就会变成一个无法维护的毛球。我已经阅读了文档和我能找到的几篇文章,但除了简单地使用一个 .po 文件之外,没有人真正深入了解 i18n。

这是我现在的位置:

  • 我已经“烘焙”了我的 po 模板(.pot 文件)并将它们复制到 app/locale/eng/LC_MESSAGES 中(我不会使用默认文本作为键,以便我可以轻松发现丢失的键)。现在,我有 -views-layouts-default.po 和 -views-pages-index.po。
  • 在那些 .po 文件中,我输入了我想为每个键使用的文本。
  • 在我的主页 (views/pages/index.ctp) 和默认布局 (views/layouts/default.ctp) 中,我使用 __() 函数包装了我想要翻译的文本键。

但是,当我加载主页时,我看到的只是它们的键。没有文字被翻译。但是,如果我抛出一个 default.po 文件,那么我放入的任何键都可以很好地填充。我显然错过了一些拼图,但我找不到它。任何帮助将非常感激。

谢谢。

4

1 回答 1

6

感谢 CakePHP Google Group,我找到了我丢失的部分。我一直在使用 __d() 便利功能,但没有清楚地了解如何将它与我的 .po 文件绑定在一起。知道后答案很简单:

领域翻译:

__d ( 'login', 'PLEASE_LOGIN' );

将在名为 login.po 的文件中查找“PLEASE_LOGIN”键。我不知道(也没有在任何地方读过) domain == po 文件名(没有扩展名)。学习让一切变得不同。

于 2009-04-06T18:57:58.630 回答