如何在CakePHP中使用多个po文件?

时间:2009-04-06 13:25:05

标签: cakephp internationalization

我刚刚开始在CakePHP中探索i18n的过程,我似乎无法找到允许我使用多个po文件的文件和函数的正确组合。如果我想为每个可翻译文本使用单个po文件(default.po),那可以正常工作,但我发现这非常非常快速地成为一个难以维护的毛球。我已经阅读了文档和我能找到的一些文章,但是没有人真正深入研究i18n,而不是简单地使用一个.po文件。

我现在就在这里:

  • 我已经“烘焙”了我的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文件,那么我放入的任何键都填充得很好。我显然错过了一些拼图,但我找不到它。任何帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:6)

由于CakePHP Google Group,我找到了我失踪的那篇文章。我一直在使用__d()方便功能,但没有清晰的图片说明如何将它连接到我的.po文件。一旦你知道,答案很简单:

域名翻译:

__d ( 'login', 'PLEASE_LOGIN' );

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