如何从翻译的.po文件生成新的.pot模板

ric*_*oke 6 php gettext xgettext

从一个不完整的gettext .pot文件开始,生成的.po翻译文件现在包含大量原本不在.pot文件中的翻译字符串.

如何从翻译的.po文件向后生成其他语言(包含空白翻译条目的字符串)的.pot文件?

谢谢你的帮助.

Pet*_*aut 11

你可以使用这样的东西:

msgfilter -i xx.po -o new.pot true
Run Code Online (Sandbox Code Playgroud)

msgfilter将程序应用于文件中的所有翻译,并且true只是某些程序不为任何输入输出任何内容.

您可能需要在此之后按下标题注释,使其看起来像一个新的POT文件.

  • 如果您想保留翻译中的标头,请使用选项“--keep-header”(这样您就可以修改它而不是创建新标头)。 (2认同)

Mic*_*ati 7

虽然 @richhallstoke 报告的命令适用于 Linux 和 Mac

msgfilter -i xx.po -o new.pot true
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,这会失败,因为我们没有该true命令。

我刚刚发布了一个执行此操作(以及其他操作)的在线工具:只需将 .po 文件拖放到浏览器中,点击“工具”图标,然后单击“转换为 .pot”。

PS:该在线工具是 FOSS:其源代码位于GitHub 上


小智 1

当前的 Windows 版 PoEdit 3.4.1 中没有 .po 文件msgfilter.exe,但您可以使用(您可以在 ...\Poedit\GettextTools\bin 中找到它)从.poxgettext.exe文件开始生成.pot文件:

xgettext.exe -i xx.po -o new.pot
Run Code Online (Sandbox Code Playgroud)