2011-01-28 14 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 

古いメッセージも保存されるようにテンプレートを更新するには、この方法が適していますか?もう1つの質問は、翻訳可能な文字列とソースコードの通常の文字列を区別する方法です。私は、xgettextが上記のソースコードファイルからすべての文字列を取得すると仮定します。 -jは、--join-existingオプション(「既存のファイルとメッセージを結合」)あなたが必要なもの

誰が正しいapproach..Thanksに

+0

ピーターブレットの答えを参照してください:その方法! – neuro

答えて

3

を共有することができればそれは素晴らしいことだしないのか?

コマンドラインで複数の入力ファイルを指定できることに注意してください。

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

+1:これを行う方法:use -jと$ {list_of_files_to_i18nize} – neuro

+0

ありがとう@Peterと@ neuro..私が探していたeflagです。どうやら、私はそれをマージオプションと混同しました。 – confused

1

これを達成する最も簡単な方法は次のとおりです。

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

にxgettextが、通常の入力ファイルとして.po.potファイルを受け入れるので、あなたが-j--join-existingを必要としません。

オプション-j,--join-existingはほとんど役に立ちません。 -Dと組み合わせて、--directoryと入力ファイルとして使用される出力ファイルsample.potではなく、がディレクトリのリスト内で検索されるという効果があります。 -l cを使用する場合は--language=cを入力してください。はC/C++ソースファイルとして解析されるため、,--join-existingが必要です。

さらに、-o sample.pot,--output=sample.potは、-d sample,--default-domain=sampleと全く同じ効果を有する。そのうちの1つを安全に省略することができます。

関連する問題