gencat - メッセージ・カタログを作成または変更する

形式

gencat CatalogFile MessageFile …

説明

gencat は、メッセージ・テキストのソース・ファイル (通常 *.msg) を定様式メッセージ・カタログ CatalogFile (通常 *.cat) にマージします。 MessageFile ファイル CatalogFile は、存在しない場合に作成されます。CatalogFile が存在する場合は、そのメッセージは MessageFiles の 指示に従って変更されます。設定とメッセージ番号が同じ場合、MessageFile で 定義された新しいメッセージ・テキストは、CatalogFile で 定義されたメッセージ・テキストと置き換えられます。

MessageFiles は任意の数だけ指定できます。gencat は、MessageFiles を 1 つずつ、指定された順序に処理します。各後続の MessageFileCatalogFile を変更します。

CatalogFile に指定されると、標準出力 (stdout) が使用されます。MessageFile に指定されると、標準入力 (stdin) が使用されます。

gencat は、シンボル・メッセージ ID を受け入れません。 シンボル・メッセージ ID を使用したい場合は、mkcatdefs を 使用する必要があります。

詳細説明

メッセージ・テキストのソース・ファイルのフォーマットは、以下のように定義されます。すべての文字は、注記された個所を除いて 1 バイト文字として エンコードされる必要があります。メッセージ・テキスト・ソース行のフィールドは 、1 つのブランク文字で分離されます。その他のブランク文字は、後続のフィールドの一部であるとみなされます。
$set n comment
次の $set、またはファイルの終わりが現れるまで、後続のメッセージのセット ID を指定します。n は、1–NL_SETMAX の範囲の数として 定義されているセット ID を指示します。セット ID は、単一のソース・ファイル内では昇順でなければなりませんが、隣接している必要はありません。セット ID に続くストリングはどれもコメントと して扱われます。$set ディレクティブがメッセージ・テキストのソース・ファイルで 指定されないと、すべてのメッセージはデフォルト・メッセージ・セット NL_SETD に位置付けられます。
$delset n comment
メッセージ・セット n を既存のメッセージ・カタログから削除します。n は、セット番号 1–NL_SETMAX を指示します。セット番号に続くストリングは どれもコメントとして扱われます。
$ comment
ブランク文字に続く $ で開始される行は コメントとして扱われます。
m message-text
m は、1–NL_MSGMAX の範囲の数として定義されている メッセージ ID を指示します。メッセージ ID は単一のセ ット内で昇順でなければなりませんが、隣接している必要はありません。message-text の長さは、–NL_TEXTMAX の 範囲である必要があります。メッセージ・テキストは、メッセージ・カタログ内に 最後の $set ディレクティブで指定されたセット ID、およびメッセージ ID m と一緒に保管されます。メッセージ・テキストが空で、ブランク文字フィールド分離文字がある場合は、空ストリングがメッセージ・カタログに保管されます。メッセージ・ソース行に メッセージ番号があり、フィールド分離文字またはメッセージ・テキストがない場合は、その番号 (ある場合) を持つ既存のメッセージがカタログから削除されます。メッセージ・ テキストは 2 バイト文字を含めることができます。
$quote c
オプショナルの引用符文字 c を指定しますが、これは message-text を囲んで、末尾スペースまたは ヌル (空) メッセージがメッセージ・ソース行で見えるようにできます。デフォルトで、または空の $quote ディレクティブが供給されると、message-text の引用符付けは認識されません。引用符文字は、2 バイト文字にできます。
$timestamp
タイム・スタンプを指定しますが、これは後続の .cat ファイルを このファイルから来たものとして識別するのに使用できます。タイム・スタンプは、最大 20 文字の長さで、自由な形式にできます。通常は、以下の形式に従います。
$timestamp 1994 137 19:09 UTC

mkcatdefs コマンドは、gencat

への入力として作成 するファイルの中にタイム・スタンプを自動的に生成します。

メッセージ・テキストのソース・ファイルの空の行は無視されます。行が定義された以外の文字で開始されている場合は、無効とみなされます。

テキスト・ストリングは、以下の表で定義された特殊文字 およびエスケープ・シーケンスを含むことができます。

説明 シーケンス
バックスペース ¥b
backslash \
キャリッジ・リターン ¥r
二重引用符 \"
用紙送り ¥f
水平タブ ¥t
改行 ¥n
8 進数ビット・パターン ¥ddd
垂直タブ ¥v

これらの順序は、1 バイト文字としてエンコードする必要があります。

エスケープ・シーケンス ¥ddd は、必要な文字の値を指定する 1、2、または 3 桁の 8 進数と、その前に置かれた円記号で構成されます。円記号 に続く文字が、指定されたものの 1 つでない場合、円記号は無視されます。

円記号 (¥) の後の改行文字も、後続行にストリングを続けるために 使用されます。したがって、以下の 2 行は単一のメッセージ・ストリングを表します。
1 This line continues ¥
to the next line
これは、以下と同等です。
1 This line continues to the next line

メッセージ・カタログの移植性

gencat は、z/OS XL C/C++ ランタイム・ライブラリー関数 catgets() と作動して 、catgets() 使用の C プログラムが実行時に使用するロケールによって メッセージ・テキストを正しく表示します。gencat は、gencatCatalogFile を 処理するときに有効なコード・セットに関する情報を CatalogFile に追加します。gencat は、メッセージの受信者が使用するのと同じロケールで働く必要があります。このロケールは 、MessageFile のメッセージ・テキストを作成するのに使用されたのと同じ ロケールである必要があります。

gencat により作成されたメッセージ・カタログは 2 進エンコードされ、これらの移植性がシステム間で保証できないことを意味します。このように 、C プログラムとしてだけ再コンパイルが必要なため、メッセージ・カタログは別のシステムに移動するとき、gencat を経由して 再作成する必要があります。

test.cat カタログをソース・ファイル test.msg から 生成するには、以下を入力します。
gencat test.cat test.msg

ローカライズ

gencat は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_CTYPE
  • LC_MESSAGES
  • LC_SYNTAX
  • NLSPATH

詳しくは、ローカライズを参照してください。

終了値

0
正常終了
1
エラーが発生。

移植性

X/Open 移植性ガイド.