新しい genmsg ユーティリティは、国際化されたソースメッセージカタログを作成するために、catgets() ファミリの関数で使用されます。このユーティリティは、ソースプログラムファイルの catgets での関数の呼び出しを調べ、見つかった情報からソースメッセージカタログを作成します。たとえば、次のようにします。
% cat example.c ... /* NOTE: %s is a file name */ printf(catgets(catd, 5, 1, "%s cannot be opened.")); /* NOTE: "Read" is a past participle, not a present tense verb */ printf(catgets(catd, 5, 1, "Read")); ... % genmsg -c NOTE example.c The following file(s) have been created. new msg file = "example.c.msg" % cat example.c.msg $quote " $set 5 1 "%s cannot be opened" /* NOTE: %s is a file name */ 2 "Read" /* NOTE: "Read" is a past participle, not a present tense verb */
上記の例では、ソースファイル example.c について genmsg が実行され、example.c.msg という名前のソースメッセージカタログが作成されています。-c オプションの引数 NOTE により、genmsg はカタログにコメントを含めます。ソースプログラムのコメントに指定された文字列が含まれている場合、コメントはメッセージカタログの catgets の呼び出しから抽出された次の文字列の後に表示されます。
genmsg を使用して、メッセージセット内のメッセージの番号を自動的に付けることができます。
詳細については、genmsg(1) のマニュアルページを参照してください。
フォーマットされたメッセージカタログファイルを生成する場合は、gencat(1) ユーティリティを使用します。
ポータブルメッセージファイル (.po ファイル) に対するメッセージ抽出ユーティリティ、および .po ファイルからメッセージオブジェクトファイル (.mo ファイル) を生成する方法については、それぞれ xgettext(1) とmsgfmt(1) のマニュアルページを参照してください。