2011-01-28 80 views
4

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

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

这是为了更新模板以便旧的消息也被保留的首选方式吗?另一个问题是我们如何区分源代码中的可转换字符串与正常字符串。我假设xgettext会从提到的源代码文件中提取所有字符串。

这将是巨大的,如果任何人都可以分享正确的approach..Thanks

+0

请参阅Peter Brett答案:那样! – neuro 2011-01-31 17:53:41

回答

3

是否-j--join-existing选项(“加入现有文件的消息”)不是你所需要的?

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

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

+1:这样做的方式:使用-j和$ {list_of_files_to_i18nize} – neuro 2011-01-31 17:53:05

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的效果完全相同。您可以放心地忽略其中的一个。