我刚刚开始在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文件,那么我放入的任何键都填充得很好.我显然错过了一些拼图,但我找不到它.任何帮助将非常感激.
谢谢.
感谢CakePHP Google Group,我找到了我失踪的那篇文章.我一直在使用__d()方便功能,但没有清晰的图片说明如何将它连接到我的.po文件.一旦你知道,答案很简单:
域名翻译:
__d ( 'login', 'PLEASE_LOGIN' );
将在名为login.po的文件中查找"PLEASE_LOGIN"键.我不知道(并且没有在任何地方读过)那个domain == po文件名(没有扩展名).学习使一切变得不同.