すべての.jsファイルと.htmlファイル(アンダースコアテンプレート)から文字列を抽出する、非常にうまく機能するコマンドがあります。ただし、翻訳者のコメントには機能しないようです。
たとえば、これは私の.jsファイルの1つにあります。
/// TRANSLATORS: The word "manual" stands for manual process
gettext("manual");
次のコマンドを使用します。
find . -iname '*.html' -o -iname '*.js' | xargs xgettext --language=Python --from-code=utf-8 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 --add-comments=/
xgettextは、.jsファイルからコメントを抽出し、次のように.poファイルに配置する必要があります。
#. TRANSLATORS: The word "manual" stands for manual process
#: tax.js:200
msgid "manual" msgstr ""
しかし、そうではありません。私はここで何か間違ったことをしていますか、それとも翻訳者のコメントがPythonモードで機能していないだけですか?
編集:私はジョンフラットネスの答えを正しいものとして受け入れましたが、Pythonモードを引き続き使用して翻訳者のコメントを抽出できる回避策を見つけました。コメント内に構文の一部が実際に残っているため、完全ではありません。
私のtax.js
ファイル:
/*
# This is a translator comment */
gettext("What is this?");
次のコマンドを実行します。
find . -iname '*.html' -o -iname '*.js' | xargs xgettext --language=Python --from-code=utf-8 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 -c
結果は.poファイルになります。
#. This is a translator comment */
#: tax.js:201
msgid "What is this?"
msgstr ""
ご覧のとおり、唯一の問題は次のとおりです。
- コメントは2行で書く必要があります
- コメントターミネーター
*/
は翻訳者のコメントに残されています
ただし、ほとんどの場合、これはそれほど問題にはなりません。