3

我有蛋糕 php 应用程序,我正在使用翻译功能<?php __('msg'); ?>。我在我的 app/config/bootstrap.php 中添加了一行Configure::write('Config.language', 'eng');- 我希望英语作为默认语言。

我创建了文件夹app/Locale/eng/LC_MESSAGES

然后我在我的应用程序文件夹中打开 Windows 控制台并输入“cake i18n extract” - 有几个提示 - 我选择扫描应用程序目录并输出到 Locale 目录。

在我的文件夹 app/Locale 中的 i18n 程序之后,出现了几个文件:

cake.pot
cake_dev.pot
default.pot

app/Locale/eng 中没有任何内容

所以我只是将 default.pot 复制到 app/Locale/eng/LC_MESSAGES 并添加了一些翻译,但是当我通过网站打开时,没有打印任何内容来代替 __('') 函数......

如何正确设置这个?

4

1 回答 1

3

:) 你需要从你刚刚创建的 .pot 文件中为每个语言创建一个 .po 文件。我建议使用poedit来做到这一点

在 Poedit 中,转到File->New Catalog from POT file,然后选择default.pot蛋糕烘焙生成的文件。它会询问你一些信息,然后你会看到所有要翻译的文本,一个完成,保存到app/Locale/eng/LC_MESSAGES/default.po

当您在代码中添加/删除/修改其中一些字符串时,您需要再次运行烘焙以提取文本。它将更新 .pot 文件,在 Poedit 中,您需要打开您的 .po 文件并转到Catalog->Update from POT它会显示您需要翻译的所有新行,有时它会尝试根据您的以前的翻译

希望这可以帮助

于 2012-05-07T11:02:52.673 回答