8

gettext を使用して複数の翻訳を行う Web アプリケーションがあります。しかし今、私はアプリケーションを大幅に書き直しました。ほとんどの文字列は同じですが、かなりの数の文字列が大幅に変更または削除されています。

xgettext を使用して .po ファイルを作成します。コード内で新しい文字列を見つけて .po ファイルに追加できるのは素晴らしいことですが、コード内に見つからない文字列を削除するオプションが表示されません。 .

コードに含まれなくなった .po ファイルから文字列を自動的に削除する方法はありますか?

4

2 に答える 2

9

という名前のファイルの最終的な PO カタログにある必要がある文字列のみを含む新しい PO テンプレート ファイルがmessages.potあり、ターゲットの PO カタログが であると仮定すると、次のmessages.poように実行できます。

msgattrib --set-obsolete --ignore-file=messages.pot -o messages.po messages.po

これは廃止された文字列を示します。この--set-obsoleteスイッチは、msgattrib にターゲット ファイル内のすべての文字列にobsolete--ignore-fileフラグを適用するように指示し、指定されたファイル (この場合は PO テンプレート) に表示される文字列を無視するように指示します。

それらも完全に削除したい場合は、もう 1 つの手順があります。

msgattrib --no-obsolete -o messages.po messages.po

msgattribコマンドの詳細については、こちらを参照してください。

于 2014-11-27T19:37:24.550 に答える
-1

そうすることができます

find . -name '*.po' -print0 | while read -d '' -r file; do msgattrib --output-file="$file" --no-obsolete "$file"; done
于 2014-10-20T15:43:02.977 に答える