阅读docs后,我可以提取应用程序的所有字符串:
bin/cake i18n extract
Locale/default.pot
文件现在包含要翻译的消息。
一段时间后,我将需要再次执行此操作,因为我将添加其他一些表单。
我没有找到一种方法来更新已经存在的po(t)文件,添加新字符串,不再删除使用过的字符串,而是保留现有字符串。
在大型应用程序中,手工“合并”翻译很麻烦。
是否可以使用extract
命令来执行此操作?
答案 0 :(得分:1)
没有这样的命令,不,i18n shell纯粹是用于将消息提取到翻译模板文件中,而不是合并/更新。
必须使用外部工具(例如 Poedit )进行合并/更新,该外部工具为 gettext tools 提供了GUI。使用这样的工具从.po
模板文件创建.mo
(和.pot
)文件,然后在应用程序代码中进行更改后,重新提取.pot
模板文件通过i18n Shell进行操作,并使用外部工具的merging/updating functionality从新的.po
模板文件更新您现有的.pot
文件。
gettext的合并功能将为您带来不错的结果,合并后查找fuzzy和obsolete条目,它们可能需要一些额外的手动操作,但大多数情况下通常会自动完成。