6

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

我将 default.pot 文件复制到

  • .../app/locale/eng/LC_MESSAGES/default.pot
  • .../app/locale/fre/LC_MESSAGES/default.pot
  • .../app/locale/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 的任何合适的数据包)?

感谢您的回答。

4

1 回答 1

11

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

换句话说,只需将 .pot 重命名为 .po 即可。
在正确的 gettext 工作流程中,有msginit执行此操作的工具,它还将为所选语言环境设置一些标题为正确的值。

于 2012-04-10T07:49:39.943 回答