POファイルを手で扱うよりは、自動的な方法で取り扱うほうがよいときがあります。GNU
gettext
には、この目的のための完全なツールが含まれています。
2つのパッケージを1つのパッケージにマージするときには、元の2つのパッケージのPOTファイルが結合されたものが、マージされたパッケージのPOTファイルになります。したがってメンテナーは、翻訳された各言語ごとに、既存の2つの翻訳済みパッケージを1つの翻訳カタログにマージしなければなりません。これを行うには‘msgcat’を使うのが最善です。マージにより発生し得る競合を解決するのは、翻訳者の役目となります。
ある翻訳者が他の翻訳者から作業を引き継ぐときに、彼女がそのlocaleの異なるエンコーディングを使っている場合には、カタログの文字のエンコーディングを変換することになるでしょう。これを行うには‘msgconv’プログラムを使うのが最善です。
メンテナーが他のパッケージからタグ付けされたメッセージを取得するとき、彼はこのソースファイルの既存の翻訳も取り込む必要があります(翻訳者が同じ作業をしなくても済むように)。これを行うには‘msggrep’を使う方法と、そのソースファイルからPOTファイルを作成して‘msgmerge’を使う方法があります。
翻訳者がある翻訳カタログを特定の方言や正書法に適応させたいとき – たとえばSwitzerlandで記述されたGermanを、Germanyで記述されたGerman に適応させる場合など – 彼女はカタログの中のすべてのメッセージに適用できるテキストプロセッサーが必要にるでしょう。これを行うためのツールが、‘msgfilter’です。
msgfilter
の他の使い方としては、POファイルが作成される元となったPOTファイルに近いものを生成することです。これは、‘msgfilter
sed -e d | sed -e '/^#
/d'’のようなフィルターコマンドにより行うことができます。オリジナルのPOTファイルには異なるコメントがあったり、plural
messageの数も異なります。この理由により、利用可能ならオリジナルのPOTファイルを使うほうがよいことに注意してください。
翻訳者が翻訳をチェックしたいとき、たとえば正書法のルールや非対話型のスペルチェッカーにしたがってチェックをしたいときは、‘msgexec’を使うことができます。
サードパーティー製のツールによりPO、またはPOTファイルを作成するとき、重複が無視されるときがあります。しかしGNU
gettext
ツールは、同じファイル中に同じドメインで重複したmsgidがある場合にはエラーとなります。重複をマージするためには、‘msguniq’を使うことができます。
複数のファイル間での重複を維持(または破棄)するための、より一般的なツールとしては‘msgcomm’があります。
翻訳カタログが完全に翻訳されているかをチェックするには、‘msgcmp’を使うことができます。
翻訳カタログからfuzzyや未翻訳のメッセージだけを選択・抽出するためには、‘msgattrib’を使うことができます。
Englishの翻訳カタログを準備するための最初のステップとしては、‘msgen’が便利です。これは、各メッセージのmsgidをmsgstrにコピーします。
そして最後に、これらの様々なアプリケーションでも十分でない場合には、POファイルを取り扱う特殊なプログラムを記述するために使用できる、‘libgettextpo’ライブラリーが提供されています。
• msgcat Invocation: | Invoking the msgcat Program
| |
• msgconv Invocation: | Invoking the msgconv Program
| |
• msggrep Invocation: | Invoking the msggrep Program
| |
• msgfilter Invocation: | Invoking the msgfilter Program
| |
• msguniq Invocation: | Invoking the msguniq Program
| |
• msgcomm Invocation: | Invoking the msgcomm Program
| |
• msgcmp Invocation: | Invoking the msgcmp Program
| |
• msgattrib Invocation: | Invoking the msgattrib Program
| |
• msgen Invocation: | Invoking the msgen Program
| |
• msgexec Invocation: | Invoking the msgexec Program
| |
• Colorizing: | Highlighting parts of PO files | |
• libgettextpo: | Writing your own programs that process PO files |