xgettext - 提取可翻译的字符串并更新.pot

时间:2011-01-28 20:21:22

标签: c++ c gettext xgettext

我继承了一个sample.pot文件。现在,我在a1.c和a2.cpp中添加了新消息。我是否可以使用xgettext并将内容输出到相同的sample.pot而不是创建一个新的?例如: -

xgettext -d sample -s -o sample.pot a1.c
xgettext -d sample -s -o sample.pot a2.cpp

这是首选方式,以便更新模板,以便保留旧邮件吗?另一个问题是我们如何在源代码中区分可翻译字符串和普通字符串。我假设xgettext将从提到的源代码文件中提取所有字符串。

如果有人可以分享正确的方法,那就太好了。谢谢

2 个答案:

答案 0 :(得分:3)

-j--join-existing选项(“加入包含现有文件的邮件”)不能满足您的需求吗?

请注意,您可以在命令行上指定多个输入文件。

xgettext -d sample -s -j -o sample.pot a1.c a2.cpp

答案 1 :(得分:1)

实现这一目标的最简单方法是:

xgettext -o sample.pot -s a1.c a2.cpp sample.pot

您不需要-j--join-existing,因为xgettext接受.po.pot个文件作为常规输入文件。

选项-j--join-existing很少有用。与-D--directory结合使用时,其结果是用作输入文件的输出文件sample.pot在目录列表中搜索。如果您使用-l c --language=c,则需要-j--join-existing因为sample.pot将被解析为C / C ++源文件。

此外,-o sample.pot--output=sample.pot-d sample--default-domain=sample具有完全相同的效果。你可以安全地省略其中一个。