使用i18n shell更新语言环境

时间:2019-05-23 10:02:06

标签: cakephp internationalization

阅读docs后,我可以提取应用程序的所有字符串:

bin/cake i18n extract

Locale/default.pot文件现在包含要翻译的消息。 一段时间后,我将需要再次执行此操作,因为我将添加其他一些表单。

我没有找到一种方法来更新已经存在的po(t)文件,添加新字符串,不再删除使用过的字符串,而是保留现有字符串。

在大型应用程序中,手工“合并”翻译很麻烦。

是否可以使用extract命令来执行此操作?

1 个答案:

答案 0 :(得分:1)

没有这样的命令,不,i18n shell纯粹是用于将消息提取到翻译模板文件中,而不是合并/更新。

必须使用外部工具(例如 Poedit )进行合并/更新,该外部工具为 gettext tools 提供了GUI。使用这样的工具从.po模板文件创建.mo(和.pot)文件,然后在应用程序代码中进行更改后,重新提取.pot模板文件通过i18n Shell进行操作,并使用外部工具的merging/updating functionality从新的.po模板文件更新您现有的.pot文件。

gettext的合并功能将为您带来不错的结果,合并后查找fuzzyobsolete条目,它们可能需要一些额外的手动操作,但大多数情况下通常会自动完成。