Next: msgunfmt Invocation, Previous: Binaries, Up: Binaries [Contents][Index]
msgfmt
プログラムの呼び出しmsgfmt [option] filename.po …
msgfmt
は、翻訳済みのテキストのメッセージから、バイナリーのメッセージカタログを生成するプログラムです。
ディレクトリーのリストにdirectoryを追加します。このディレクトリーのリストよりソースファイルを検索します。しかし、結果となるバイナリーファイルが出力されるのは、カレントディレクトリーです。
入力ファイルに‘-’が指定された場合は、標準入力から読み込みます。
Javaモード: JavaのResourceBundle
クラスを生成します。
–javaと同様ですがJava2(JDK 1.2以上)とみなします。
C#モード: GettextResourceSet
のサブクラスを含んだ、.NETの.dllファイルを生成します。
C# resourcesモード: .NETの.resourcesファイルを生成します。
Tclモード: tcl/msgcatの.msgファイルを生成します。
Qtモード: Qtの.qmファイルを生成します。
指定されたファイルに出力を書き込みます。
プログラムがUniforum/Sun実装にしたがうように指定します。これは現時点では、出力ファイルの名前に影響を与えるだけです。オプションにファイル名を指定しなかった場合、出力ファイルは同じdomain 名になります。厳密なUniforumモードが有効でファイル名が与えられなかった場合には、ファイル名に.moが付加されます。
わたしたちはこのSun実装は意味がないと考え、デフォルトではこのモードは選択されません。
出力となるfileに‘-’が指定されたときは、出力は標準出力に書き込まれます。
リソース名を指定します。
locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。
classのディレクトリー階層のベースとなるディレクトリーを指定します。
クラス名はリソース名の後ろに区切り文字のアンダースコアーとlocale名を付加して決定されます。‘-d’オプションは必須です。クラスは指定されたディレクトリーに出力されます。
リソース名を指定します。
locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。
localeに依存する.dllファイルを出力するベースディレクトリーを指定します。
\‘-l’と‘-d’が必須オプションです。.dllファイルは、localeに依存した名前の指定ディレクトリーのサブディレクトリーに出力されます。
locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。
メッセージカタログ.msgのベースディレクトリーを指定します。
‘-l’と‘-d’は必須オプションです。.msgは指定されたディレクトリーに出力されます。
入力ファイルがPOファイルの構文ではなく、Javaの.properties
の構文にのっとったJava
ResourceBundleファイルだとみなします。
入力ファイルがPOファイルの構文ではなく、NeXTstep/GNUstepのlocalized
resourceの.strings
の構文にのっとったファイルだとみなします。
--check-format
、--check-header
、--check-domain
がすべて指定されたとみなしてチェックを行います。
languageに依存した書式文字列をチェックします。
文字列がprintf
のような関数で使用される書式文字列の場合、書式指定子‘%’と、それらに対応する型の変数の個数は一致するはずです。エントリーにたいして#,コメントでc-format
やpossible-c-format
フラグが指定されている場合は、チェックが行われます。たとえば、‘%s’が期待される箇所に‘%.*s’や‘%d’が使われていたり、‘%x’が期待される箇所に‘%d’が使われている場合、チェックは診断メッセージを出力します。このチェックは位置パラメーターを処理することさえできるのです。
xgettext
プログラムは通常、ある文字列が書式文字列かどうかを、自動的に判定します。しかしこのアルゴリズムも完全ではありません。そのため、printf
のような関数で使用されていない文字列を書式文字列とみなしてしまい、エラーが存在しないにもかかわらずmsgfmt
がエラーを報告する場合があります。
プログラマーがxgettext
に判定結果を指示することにより、この問題を解決することができます(c-formatを参照してください)。翻訳者は#,行からフラグを削除しようと考える必要はありません。なぜならこの"fix"は、次にmsgmerge
を呼び出したときに元に戻されてしまうからです。
ヘッダーエントリーの存在および内容をチェックします。ヘッダーエントリーのさまざまなフィールドの説明は、Header Entryを参照してください。
domain指定と--output-file
オプションの競合をチェックします。
GNU msgfmtがX/Open msgfmtのように振る舞うかをチェックします。GNU拡張を使用しているとエラーになります。
メニューアイテムにたいしてキーボードアクセラレーターの存在をチェックします。このチェックは、いくつかのGUIにおいてメニューアイテム文字列内のキーボードアクセラレーターが、‘&’のすぐ後ろに続く文字としてデザインされていることにもとづきます。キーボードアクセラレーターが"keyboard mnemonic"と呼ばれることもあります。このチェックは、未翻訳文字列に‘&’が1つあるとき、翻訳文字列にも1つの‘&’があるかをチェックします。このオプションの引数にcharが与えらる場合、charには非英数文字を指定します。指定した文字は‘&’のかわりに、キーボードアクセラレーターのマークとして使用されます。
出力にfuzzyエントリーを使用します。これらのfuzzyメッセージは人間の翻訳者により検証されたものではないため、このオプションの使用は通常は正しくないことに注意してください。
文字列をnumberバイトに揃えます(デフォルトは1)。
32ビットの数字を与えられたバイト順で書き出します。big
とlittle
を指定できます。デフォルトはプラットフォーム、正確に言うとCPUのインディアンに依存します。
任意のインディアンをもつMOファイルは、任意のプラットフォームで使用できます。MOファイルのインディアンがプラットフォームのものでない場合、32ビットの数値は実行時に交換されます。パフォーマンスに与える影響は無視できるものです。
このオプションは、プラットフォームに束縛されずMOを作成するために便利です。
バイナリーファイルにハッシュテーブルを含めないようにします。(ハッシュテーブルを参照するかわりに、バイナリーサーチが行われるため)実行時の検索が、より高価な処理となります。
このヘルプを表示して終了します。
バージョン情報を表示して終了します。
翻訳の統計情報を表示します。--statistics
とともに--verbose
オプションが指定された場合は、統計行の前に入力ファイルの名前が出力されます。
診断レベルを上げます。
Next: msgunfmt Invocation, Previous: Binaries, Up: Binaries [Contents][Index]