Next: , Previous: , Up: Binaries   [Contents][Index]


10.1 msgfmtプログラムの呼び出し

msgfmt [option] filename.po …

msgfmtは、翻訳済みのテキストのメッセージから、バイナリーのメッセージカタログを生成するプログラムです。

10.1.1 入力ファイルの位置

‘filename.po …’
‘-D directory’
‘--directory=directory’

ディレクトリーのリストにdirectoryを追加します。このディレクトリーのリストよりソースファイルを検索します。しかし、結果となるバイナリーファイルが出力されるのは、カレントディレクトリーです。

入力ファイルに‘-’が指定された場合は、標準入力から読み込みます。

10.1.2 オペレーションモード

‘-j’
‘--java’

Javaモード: JavaのResourceBundleクラスを生成します。

‘--java2’

–javaと同様ですがJava2(JDK 1.2以上)とみなします。

‘--csharp’

C#モード: GettextResourceSetのサブクラスを含んだ、.NETの.dllファイルを生成します。

‘--csharp-resources’

C# resourcesモード: .NETの.resourcesファイルを生成します。

‘--tcl’

Tclモード: tcl/msgcatの.msgファイルを生成します。

‘--qt’

Qtモード: Qtの.qmファイルを生成します。

‘--desktop’

Desktop Entryモード: .desktopファイルを生成します。

‘--xml’

XMLモード: XMLファイルを生成します。

10.1.3 出力ファイルの位置

‘-o file’
‘--output-file=file’

指定されたファイルに出力を書き込みます。

‘--strict’

プログラムがUniforum/Sun実装にしたがうように指定します。これは現時点では、出力ファイルの名前に影響を与えるだけです。オプションにファイル名を指定しなかった場合、出力ファイルは同じdomain 名になります。厳密なUniforumモードが有効でファイル名が与えられなかった場合には、ファイル名に.moが付加されます。

わたしたちはこのSun実装は意味がないと考え、デフォルトではこのモードは選択されません。

出力となるfileに‘-’が指定されたときは、出力は標準出力に書き込まれます。

10.1.4 Javaモードでの出力ファイルの位置

‘-r resource’
‘--resource=resource’

リソース名を指定します。

‘-l locale’
‘--locale=locale’

locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。

‘-d directory’

classのディレクトリー階層のベースとなるディレクトリーを指定します。

‘--source’

コンパイルされた.classファイルのかわりに、.javaソースファイルを生成します。

クラス名はリソース名の後ろに区切り文字のアンダースコアーとlocale名を付加して決定されます。‘-d’オプションは必須です。クラスは指定されたディレクトリーに出力されます。

10.1.5 C#モードでの出力ファイルの位置

‘-r resource’
‘--resource=resource’

リソース名を指定します。

‘-l locale’
‘--locale=locale’

locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。

‘-d directory’

localeに依存する.dllファイルを出力するベースディレクトリーを指定します。

\‘-l’と‘-d’が必須オプションです。.dllファイルは、localeに依存した名前の指定ディレクトリーのサブディレクトリーに出力されます。

10.1.6 Tclモードでの出力ファイルの位置

‘-l locale’
‘--locale=locale’

locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。

‘-d directory’

メッセージカタログ.msgのベースディレクトリーを指定します。

‘-l’と‘-d’は必須オプションです。.msgは指定されたディレクトリーに出力されます。

10.1.7 Desktop Entry mode operations

‘--template=template’

テンプレートとして使用された.desktopファイルを指定します。

‘-k[keywordspec]’
‘--keyword[=keywordspec]’

探すべき追加のキーワードとして、keywordspecを指定します。keywordspecを指定しない場合は、デフォルトのキーワードを使用しないことを意味します。

‘-l locale’
‘--locale=locale’

locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。

‘-d directory’

POファイルが読み込まれるディレクトリーを指定します。このディレクトリーは、‘LINGUAS’ファイルを含んでいなければなりません。

単一のlocaleにたいして‘.desktop’ファイルを生成するために、以下を使用することができます。

msgfmt --desktop --template=template --locale=locale \
  -o file filename.po …

1度に複数の.poファイルを処理するために、msgfmtは特別な"bulk"モードを提供します。

msgfmt --desktop --template=template -d directory -o file

最初にmsgfmtはdirectory配下の‘LINGUAS’ファイルを読み込み、そこにリストされたすべての‘.po’ファイルを処理します。‘LINGUAS’環境変数を通じて、localeをサブセットに制限することもできます。

どちらの操作モードでも、‘-o’と‘--template’のオプションは必須です。

10.1.8 XML mode operations

‘--template=template’

テンプレートとして使用されるXMLファイルを指定します。

‘-L name’
‘--language=name’

入力ファイルの言語を指定します。

‘-l locale’
‘--locale=locale’

locale名を指定します。ll形式による言語指定と、国と言語指定を組み合わせたll_CCのどちらでも指定できます。

‘-d directory’

メッセージカタログ.poのベースディレクトリーを指定します。

単一のlocaleにたいしてXMLファイルを生成するために、以下を使用することができます。

msgfmt --xml --template=template --locale=locale \
  -o file filename.po …

1度に複数の.poファイルを処理するために、msgfmtは特別な"bulk"モードを提供します。

msgfmt --xml --template=template -d directory -o file

最初にmsgfmtはdirectory配下の‘LINGUAS’ファイルを読み込み、そこにリストされたすべての‘.po’ファイルを処理します。‘LINGUAS’環境変数を通じて、localeをサブセットに制限することもできます。

どちらの操作モードでも、‘-o’と‘--template’のオプションは必須です。

10.1.9 入力ファイルの構文

‘-P’
‘--properties-input’

入力ファイルがPOファイルの構文ではなく、Javaの.propertiesの構文にのっとったJava ResourceBundleファイルだとみなします。

‘--stringtable-input’

入力ファイルがPOファイルの構文ではなく、NeXTstep/GNUstepのlocalized resourceの.stringsの構文にのっとったファイルだとみなします。

10.1.10 入力ファイルの解釈

‘-c’
‘--check’

--check-format、--check-header、--check-domainがすべて指定されたとみなしてチェックを行います。

‘--check-format’

languageに依存した書式文字列をチェックします。

文字列がprintfのような関数で使用される書式文字列の場合、書式指定子‘%’と、それらに対応する型の変数の個数は一致するはずです。エントリーにたいして#,コメントでc-formatやpossible-c-formatフラグが指定されている場合は、チェックが行われます。たとえば、‘%s’が期待される箇所に‘%.*s’や‘%d’が使われていたり、‘%x’が期待される箇所に‘%d’が使われている場合、チェックは診断メッセージを出力します。このチェックは位置パラメーターを処理することさえできるのです。

xgettextプログラムは通常、ある文字列が書式文字列かどうかを、自動的に判定します。しかしこのアルゴリズムも完全ではありません。そのため、printfのような関数で使用されていない文字列を書式文字列とみなしてしまい、エラーが存在しないにもかかわらずmsgfmtがエラーを報告する場合があります。

プログラマーがxgettextに判定結果を指示することにより、この問題を解決することができます(c-formatを参照してください)。翻訳者は#,行からフラグを削除しようと考える必要はありません。なぜならこの"fix"は、次にmsgmergeを呼び出したときに元に戻されてしまうからです。

‘--check-header’

ヘッダーエントリーの存在および内容をチェックします。ヘッダーエントリーのさまざまなフィールドの説明は、Header Entryを参照してください。

‘--check-domain’

domain指定と--output-fileオプションの競合をチェックします。

‘-C’
‘--check-compatibility’

GNU msgfmtがX/Open msgfmtのように振る舞うかをチェックします。GNU拡張を使用しているとエラーになります。

‘--check-accelerators[=char]’

メニューアイテムにたいしてキーボードアクセラレーターの存在をチェックします。このチェックは、いくつかのGUIにおいてメニューアイテム文字列内のキーボードアクセラレーターが、‘&’のすぐ後ろに続く文字としてデザインされていることにもとづきます。キーボードアクセラレーターが"keyboard mnemonic"と呼ばれることもあります。このチェックは、未翻訳文字列に‘&’が1つあるとき、翻訳文字列にも1つの‘&’があるかをチェックします。このオプションの引数にcharが与えらる場合、charには非英数文字を指定します。指定した文字は‘&’のかわりに、キーボードアクセラレーターのマークとして使用されます。

‘-f’
‘--use-fuzzy’

出力にfuzzyエントリーを使用します。これらのfuzzyメッセージは人間の翻訳者により検証されたものではないため、このオプションの使用は通常は正しくないことに注意してください。

10.1.11 出力の詳細

‘-a number’
‘--alignment=number’

文字列をnumberバイトに揃えます(デフォルトは1)。

‘--endianness=byteorder’

32ビットの数字を与えられたバイト順で書き出します。bigとlittleを指定できます。デフォルトはlittleです。

任意のインディアンをもつMOファイルは、任意のプラットフォームで使用できます。MOファイルのインディアンがプラットフォームのものでない場合、32ビットの数値は実行時に交換されます。パフォーマンスに与える影響は無視できるものです。

このオプションは、1つのプラットフォームに最適化されたMOを作成するために便利です。

‘--no-hash’

バイナリーファイルにハッシュテーブルを含めないようにします。(ハッシュテーブルを参照するかわりに、バイナリーサーチが行われるため)実行時の検索が、より高価な処理となります。

10.1.12 情報的な出力

‘-h’
‘--help’

このヘルプを表示して終了します。

‘-V’
‘--version’

バージョン情報を表示して終了します。

‘--statistics’

翻訳の統計情報を表示します。--statisticsとともに--verboseオプションが指定された場合は、統計行の前に入力ファイルの名前が出力されます。

‘-v’
‘--verbose’

診断レベルを上げます。


Next: , Previous: , Up: Binaries   [Contents][Index]