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