Next: msguniq Invocation, Previous: msggrep Invocation, Up: Manipulating [Contents][Index]
msgfilter
プログラムの呼び出しmsgfilter [option] filter [filter-option]
msgfilter
は、翻訳カタログ内の翻訳にフィルターを適用するためのプログラムです。
各filter呼び出しの間、環境変数MSGFILTER_MSGID
がそのメッセージのmsgid、環境変数MSGFILTER_LOCATION
がそのメッセージのPOファイル内での位置にバインドされます。そのメッセージがコンテキストをもつ場合、環境変数MSGFILTER_MSGCTXT
にそのメッセージのmsgctxtがバインドされます(それ以外はバインドされません)。そのメッセージがplural
formをもつ場合、環境変数MSGFILTER_MSGID_PLURAL
にそのメッセージのmsgid_plural、MSGFILTER_PLURAL_FORM
には実際に処理sqあれたpluralの順番(0から開始)がバインドされます(それ以外では両方ともバインドされません)。そのメッセージが(msgmerge
により追加された)以前のmsgidをもつ場合、環境変数MSGFILTER_PREV_MSGCTXT
にそのメッセージの以前のmsgctxt、MSGFILTER_PREV_MSGID
に以前のmsgid、MSGFILTER_PREV_MSGID_PLURAL
に以前のmsgid_pluralがバインドされます。
入力となるPOファイルです。
ディレクトリーのリストにdirectoryを追加します。このディレクトリーのリストよりソースファイルを検索します。しかし.poファイルが出力されるのは、カレントディレクトリーです。
inputfileが指定されていないか、‘-’が指定された場合は、標準入力から読み込みます。
指定されたファイルに出力を書き込みます。
出力ファイルが指定されていない、または‘-’が指定された場合、結果は標準出力に出力されます。
filterは、標準入力から翻訳を読み込み、それに変更を加えて標準出力に書き込むプログラムです。フィルターとして頻繁に使用されるプログラムとしては‘sed’があります。その他にも認識できるビルトインフィルターがいくつか存在します。
各入力行の最後に改行を追加するとともに、出力行の最後の改行を取り除きます。
注意:
ビルトインではないフィルターの場合には、エンコーディングに注意する必要があります。filterが、入力となる翻訳カタログのエンコードに対処できるようにするのは、あなたの責任となります。filterが入力として特定のエンコーディングを期待する場合には、‘msgfilter’を呼び出す前に、最初のステップとして‘msgconv’で翻訳カタログをそのエンコーディングに変換できます。filterが入力としてlocaleのエンコーディングを期待しているけれど、あなたはlocaleのエンコーディングを無視したいときには、最初に‘msgconv’で翻訳カタログをUTF-8に変換してから、環境変数LC_ALL
にUTF-8
localeを指定して、‘msgfilter’を使うことができます。
注意:
翻訳カタログ内のほとんどの翻訳は改行で終端されていません。そのため、--newline
が使用されていない場合は、入力の最終行が改行で終端されていなくても、filterがそれを認識すること、そして最終行に余分な改行を付加しないことが重要になります。いくつかのプラットフォームにおいて‘sed’が、改行で終端されていない最終行を無視することが知られています。代用として、このような制限を持たないGNU
‘sed’を使うことができます。
実行するコマンドにscriptを追加します。
実行するコマンドに、scriptfileの内容を追加します。
パターンの空白の出力を自動的に抑制します。
‘recode-sr-latin’はビルトインのフィルターとして認識されます。‘recode-sr-latin’は、Cyrillic文字で記述されたSerbianのテキストを、Latin文字に変換するコマンドです。‘msgfilter recode-sr-latin’コマンドにより、POファイルの翻訳にたいしてこの変換を適用できます。これを使えばsr.poファイルを、sr@latin.poファイルに変換できます。
フィルター‘quot’は、ビルトインフィルターとして認識されます。コマンド‘msgfilter quot’は、対になった‘"’、および‘'’と‘`’で囲まれた引用を変換します。
フィルター‘boldquot’は、ビルトインフィルターとして認識されます。コマンド‘msgfilter boldquot’は、対になった‘"’、‘'’と‘`’で囲まれた引用を変換するとともに、そのテキストがboldとして装飾されるように、VT100エスケープシーケンスを追加します。
ビルトインのフィルターは、現在のロケールのエンコーディングとは無関係です。またビルトインのフィルターを使う場合、‘msgfilter’はメッセージカタログのエンコーディングを自動的にUTF-8に変換することができます。
入力ファイルがPOファイルの構文ではなく、Javaの.properties
の構文にのっとったJava
ResourceBundleファイルだとみなします。
入力ファイルがPOファイルの構文ではなく、NeXTstep/GNUstepのlocalized
resourceの.strings
の構文にのっとったファイルだとみなします。
色や色以外のテキスト属性を使うか、いつ使うかを指定します。詳細はThe --color optionを参照してください。
--color
にたいしてCSS style ruleファイルを使うかを指定します。詳細はThe --style optionを参照してください。
メッセージが何も含まれていない場合でも、常に出力ファイルに書き込みます。
インデントされた形式で.poファイルを書き込みます。
ヘッダーのエントリーを保持します(例: ‘msgid ""’にフィルターを適用しないで未変更にします)。デフォルトでは、ヘッダーのエントリーにたいしても、他のメッセージと同様にフィルタリングの対象になります。
‘#: filename:line’という行を書き込みません。
‘#: filename:line’という行を生成します(デフォルト)。
typeはオプションで、‘full’、‘file’、または‘never’を指定できます。オプションが指定されない、または‘full’の場合は、ファイル名と行番号のの両方が生成されます。‘file’の場合、行番号は省略されます。‘never’の場合は、完全にこの行を抑制します(--no-location
と同じです)。
Uniforumに厳密に準拠したPOファイルを出力します。このUniforum形式はGNUの拡張をサポートしないため避けたほうがよいでしょう。
Javaの.properties
の書式で、Java ResourceBundleを出力します。このファイル形式はplural
formをサポートせず、陳腐化したメッセージを暗黙で除去することに注意してください。
.strings
の書式で、NeXTstep/GNUstepのローカライズされたリソースファイルを出力します。このファイル形式はplural
formをサポートしないことに注意してください。
出力ページの幅をセットします。これにより出力ファイル中の長い文字列が指定した幅(例:スクリーンの列数)に収まるように、各行の長さがnumber以下のような複数の行に分割されます。
長いメッセージ行を分割しません。出力ページの幅を超えるようなメッセージ行も、複数行に分割されません。出力ページの幅を超えるファイル参照行だけが分割されます。
ソートされた出力を生成します。このオプションを使用することにより翻訳者が、メッセージがどのようなコンテキストで使用されるかを理解するのが、困難になることに注意してください。
ファイルの場所により出力をソートします。
このヘルプを表示して終了します。
バージョン情報を表示して終了します。
Germanの翻訳を、Swissの正書法に変換する場合(UTF-8 locale):
msgconv -t UTF-8 de.po | msgfilter sed -e 's/ß/ss/g'
Cyrillic文字の Serbianの翻訳を、Latin文字に変換する場合:
msgfilter recode-sr-latin < sr.po
Next: msguniq Invocation, Previous: msggrep Invocation, Up: Manipulating [Contents][Index]