共通デスクトップ環境 プログラマーズ・ガイド (国際化対応編)

付録 A メッセージ・ガイドライン

簡単に国際化対応にできるメッセージを作成するために、この付録にある情報を参照してください。

ファイル名の規約

この節では、ファイルにユーザ・メッセージの名前を付ける際の規約を説明します。通常、メッセージ・ソース・ファイルには拡張子 .msg が付き、生成されるメッセージ・カタログには拡張子 .cat が付きます。その他にもメッセージ関連のファイルがある場合もあります。ファイルが.msg.cat などの拡張子を持つためには、次の基準を満たしていなければなりません。

原因および回復情報

可能な限り、何が起こったのか、またその状況を修復するために何ができるかをユーザに対して正確に説明します。

Bad arg というメッセージはあまり役に立ちません。しかし、次のメッセージなら、コマンドを機能させるためにどうすべきかを正確にユーザに伝えています。

Do not specify more than 2 files on the command line

同様に、Line too long というメッセージもユーザに回復情報を与えていません。しかし、次のメッセージは、ユーザに対して具体的な回復情報を提供します。

Line cannot exceed 20 characters

与えられたエラー・メッセージに詳しい回復情報が必要な場合は、オンライン情報やヘルプの適切な場所に追加してください。

「メッセージの例」で、元のメッセージと書き直したメッセージの例を参照してください。

翻訳者のためのコメント行

メッセージのソース・ファイルには、翻訳のプロセスで翻訳者に役立つコメントを入れることができます。そのようなコメントは、生成されるメッセージ・カタログの一部ではありません。このコメントは、C 言語でのプログラムのドキュメント化を助けるコメントに似ています。ドル記号 ($) のあとにスペース 1 つが続くと、翻訳ツールと gencat コマンドによって、コメントと認識されます。メッセージ・ソース・ファイルのコメント行の例を次に示します。

$ This is a comment

翻訳者や著者に %s%c%d などの変数が何を表すかを伝えるために、コメント行を使用します。たとえば、その変数がユーザ、ファイル、ディレクトリ、フラグなどを指すかどうかを注意書きします。

コメント行は、メッセージ・カタログの最後ではなく、コメントが参照するメッセージの下に置いてください。セット全体に関する包括的なコメントは、ソース・ファイル内で $set 指示子の下に置けます。

メッセージ・カタログ内の使用しなくなったメッセージは、コメント行に指定してください。

プログラム形式

メッセージのプログラミング形式については、次の事項を参照してください。

記述形式

メッセージの記述形式に関する次のガイドラインには、用語、句読法、叙法、態、時制、キャピタリゼーション、その他の使用法に関する項目が含まれます。

使用方法の説明文

使用方法の説明文は、少なくとも 1 つの無効なフラグがコマンド行で指定された場合に、コマンドによって生成されます。フラグに関連付けられたデータがない場合または不正な場合は、使用方法の説明文は使用してはなりません。そのような場合は、その問題に固有のエラー・メッセージが使用されます。

標準メッセージ

POSIX.2 ドキュメンテーションに定義された標準エラーを持つコマンドがあります。当てはまる場合は、POSIX.2 でセットアップされたガイドラインに従ってください。

表 A-1 新しい標準メッセージ

使用すべき標準メッセージ 

使用すべきでないメッセージ 

Cannot find or open the file.

Can't open filename.

Cannot find or access the file.

Can't access

The syntax of a parameter is not valid.

syntax error

正規表現の標準メッセージ

表 A-2 は、正規表現の標準エラーメッセージを、各正規表現エラーに関連付けられたメッセージ番号と共にリストします。

表 A-2 正規表現の標準メッセージ

番号 

使用すべき標準メッセージ 

使用すべきでないメッセージ 

11 

Specify a range end point that is less than 256.

Range end point too large.

16 

The character or characters between ¥{ and ¥} must be numeric.

Bad number.

25 

Specify a ¥digit between 1 and 9 that is not greater than the number of subpatterns.

¥digit out of range.

36 

A delimiter is not correct or is missing.

Illegal or missing delimiter.

41 

There is no remembered search string.

No remembered search string.

42 

There is a missing ¥( or ¥).

¥(¥) imbalance.

43 

Do not use ¥( more than 9 times.

Too many ¥(.

44 

Do not specify more than 2 numbers between ¥{ and ¥}.

More than two numbers given in ¥{ and ¥}.

45 

An opening ¥{ must have a closing ¥}.

} expected after ¥.

46 

The first number cannot exceed the second number between ¥{ and ¥}.

First number exceeds second in ¥{ and ¥}.

48 

Specify a valid end point to the range.

Invalid end point in range expression.

49 

For each [ there must be a ].

[ ] imbalance.

50 

The regular expression is too large for internal memory storage. Simplify the regular expression.

Regular expression overflow.

メッセージの例

次に、元のメッセージと書き直したメッセージの例を示します。元のメッセージの下に書き直したメッセージがあります。

AFLGKEYLTRS "Too Many -a Keyletters (Ad9)"  
AFLGKEYLTRS "foo: 7777-007 Use the -a flag less than 11 times.¥n"  

FLGTWICE "Flag %c Twice  (Ad4)"  
FLGTWICE "foo: 7777-004 Use the %c header flag once.¥n"  

ESTAT "can't access %s.¥n"  
ESTAT "foo: 7777-031 Cannot find or access %s.¥n"  

EMODE "foo: invalid mode¥n"  
EMODE "foo: 7777-033 A mode flag or value is not correct.¥n"  

DNORG "-d has no argument  (ad1)"  
DNORG "foo: 7777-001 Specify a parameter after the -d flag.¥n"  

FLOORRNG "floor out of range  (ad23)"  
FLOORRNG "foo: 7777-021 Specify a floor value greater than 0¥n¥  
¥tand less than 10000.¥n"  

AFLGARG "bad -a argument  (ad8)"  
AFLGARG "foo: 7777-006 Specify a user name, group name, or¥n¥  
¥tgroup number after the -a flag.¥n"  

BADLISTFMT "bad list format  (ad27)"  
BADLISTFMT "foo: 7777-025 Use numeric version and release¥ 
¥tnumbers.¥n"