如何从.pot文件获取.po文件

时间:2012-04-10 07:40:09

标签: cakephp cakephp-2.0 po

我使用cakePHP 2.0并使用控制台工具创建一个... / app / locale / default.pot。现在,我想将我的网站翻译成多种语言。我在cakephp烹饪书中阅读了关于国际化的段落(http://book.cakephp.org/1.2/en/view/162/Internationalizing-Your-Application)。

我将default.pot文件复制到

  • ... /应用程序/区域/主机/ LC_MESSAGES / default.pot
  • ... /应用程序/区域/ FRE / LC_MESSAGES / default.pot
  • ... /应用程序/区域/ POL / LC_MESSAGES / default.pot
  • ...

使用utf-8文本编辑器(作为gedit)输入tranalations字符串。并且...我的网站根本没有翻译。

我注意到AppController可能会实现一些代码来更改Configure :: write('Config.language',some_three_letters_language),因为配置没有改变,我已经实现了一些非常简单的代码。

// in AppController
public function beforeFilter() {
        Configure::write('Config.language', 'fre');
}

为什么翻译函数总是返回它的参数而不是.pot文件中的翻译字符串(在视图中,__('Something')-answers->'Something')?

我发现没有.pot文件被翻译成.po。如何使用REHL或CentOS获取那些.po文件(在名称中无法获得带po或poeditor的任何合适数据包)?

感谢您的回答。

1 个答案:

答案 0 :(得分:9)

.pot和.po文件是相同的文件格式。 .pot代表“PO 模板”。不同之处在于您应该使用此模板文件并将其提供给翻译人员,翻译人员将生成翻译的.po文件。 .pot文件是几个本地化.po文件的模板。请参阅http://www.gnu.org/software/gettext/manual/gettext.html#Files

换句话说,只需将.pot重命名为.po即可 在正确的gettext工作流程中,有msginit工具用于执行此操作,该工具还会将多个标头设置为所选区域设置的正确值。