Java 用の EGL システム・ランタイム・メッセージのカスタマイズ
Java™ ランタイムにエラーが発生すると、デフォルトで EGL システム・メッセージが 表示されます。これらのシステム・メッセージごとに、またはサブセットに対して、 カスタマイズされたメッセージを指定することができます。
カスタマイズしたメッセージは、vgj.messages.file Java ランタイム・プロパティーで識別するプロパティー・ファイルに保存されます。このプロパティーは、userMessageFile ビルド記述子オプションで設定します。Javaプロパティー・ファイルの形式について詳しくは、プログラム・プロパティー・ファイルを参照してください。
メッセージが必要な場合、EGL はまず、vgj.messages.file で指定 したプロパティー・ファイルを検索します。EGL は、必要なメッセージのメッセージ ID と、プロパティー・ファイルのメッセージの ID とを比較します。 一致する ID を持つメッセージを、EGL がプロパティー・ファイルで見つけた場合は、そのメッセージを使用します。 一致する ID を持つメッセージがプロパティー・ファイルにない場合、EGL はデフォルトのシステム・メッセージを使用します。 sysLib.getMessage システム関数を使用して、vgj.messages.file で 指定されたプロパティー・ファイルからメッセージを戻すこともできます。
EGL0049E = {0} の {1} への割り当てでのオーバーフローです。
EGL0049E = {0} を {1} に割り当てようとしましたが、失敗しました。
EGL0049E = {1} = {0} : 割り当てでのオーバーフローです。
vgj.messages.file プロパティーで識別されるファイルを開くことができない場合は、プログラムが終了します。
COBOL 用に生成されるシステム・メッセージの場合、最初のプレースホルダーは {0} ではなく {1} であることに注意してください。
- メッセージの処理方法、および有効なコンテンツに関する詳細については 、Java クラス java.text.MessageFormat の 資料を参照してください。
- (常にプロパティー・ファイルで使用される) ISO 8859-1 文字エンコードで直接表すことができない文字の処理に関する詳細については 、Java クラス java.util.Properties の 資料を参照してください。
カスタマイズされたメッセージ・ファイルの作成
Java ランタイムでエラーが発生 したときに表示される、カスタマイズされたメッセージが含まれるプロパティー・ファイルを作成することができます。これらのメッセージによって、デフォルトのシステム・メッセージが置き換えられます。
- カスタマイズされたメッセージ用のプロパティー・ファイルを作成するには、以下を実行します。
- 「プロジェクト・エクスプローラー」ビューで、EGL プロジェクトの「Java リソース」フォルダーを右クリックする。
- とクリックする。
- 「新規」ウィンドウで、「一般」を展開し、「ファイル」をクリックします。
- 「次へ」をクリックします。
- 「親フォルダーを入力または選択」フィールドで、 プロジェクトの Java リソース・フォルダーが選択されていることを確認します。
- 「ファイル名」フィールドで、末尾が .properties のプロパティー・ファイルの 名前を入力する。 有効なファイル名は、例えば messages.properties です。
- 「終了」をクリックします。新規ファイルが作成されてエディターで開きます。
- カスタマイズされたメッセージをメッセージ・ファイルに追加するには、以下を実行します。
- 置き換えたいシステム・メッセージのメッセージ ID を検索する。
新規メッセージを追加する場合は、新規メッセージ ID を作成する。
文書には、 システム・メッセージ、そのメッセージ ID、およびメッセージのすべてのプレースホルダーに関する情報が含まれています。 ランタイム・エラー・コードを参照してください。
- メッセージ・ファイルに、以下の形式で 1 行追加する。
messageID = customMessage- messageID
- システム・メッセージの ID。
- customMessage
- メッセージ内のプレースホルダーを含む、システム・メッセージの代わりに表示するカスタム・メッセージ。
例えば、以下のプロパティー・ファイルの行は、 システム・メッセージ ID EGL0049E (デフォルトでは、「{{0} の {1} への割り当てでのオーバーフローです。」) を置き換えます。
EGL0049E = {0} を {1} に割り当てようとしましたが、失敗しました。この例で、コード・ストリング {0} および {1} は、EGL が実行時に 取得する、メッセージ挿入のためのプレースホルダーです。 これらのプレースホルダーの指定は、カスタマイズされたメッセージではオプションです。
- メッセージの追加を完了したら、保存してメッセージ・ファイルを閉じる。
- 置き換えたいシステム・メッセージのメッセージ ID を検索する。
新規メッセージを追加する場合は、新規メッセージ ID を作成する。
- genProperties ビルド記述子オプションを、GLOBAL または PROGRAM に設定します。
- 以下のいずれかの方法を使用して、メッセージ・ファイルを指定します。
- userMessageFile ビルド記述子オプションを設定して、.properties 拡張子なしの
メッセージ・ファイルの名前を指定する。
例えば、メッセージ・ファイルの名前が messages.properties であれば、userMessageFile ビルド記述子オプションを messages に設定します。
userMessageFile ビルド記述子オプションは、 メッセージ・ファイルを指定するランタイム・プロパティーである vgj.messages.file Java ランタイム・プロパティーを設定します。この方法は、どのタイプの EGL プロジェクトにも適用できます。
- J2EE デプロイメント記述子 (EGL デプロイメント記述子ではありません) に vgj.messages.file Java ランタイム・プロパティーを設定して、
メッセージ・ファイルの名前を指定する。この方法は、J2EE フレームワーク内で使用されるプロジェクトにのみ適用されます。J2EE デプロイメント記述子に vgj.messages.file ランタイム・プロパティーを
設定するには、以下のステップに従います。
- 「プロジェクト・エクスプローラー」ビューで、プロジェクトの J2EE デプロイメント記述子をダブルクリックする。そのデプロイメント記述子が、デプロイメント記述子エディターで開きます。
- 「変数」タブをクリックする。
- 「環境変数」の下で、「追加」をクリックする。 「環境エントリーの追加 (Add Environment Entry)」ウィンドウが開きます。
- 「名前」フィールドに vgj.messages.file を入力する。
- 「タイプ」フィールドで「ストリング」を選択する。
- 「値」フィールドに、メッセージ・ファイルの名前を .properties 拡張子なしで 入力する。 例えば、メッセージ・ファイルの名前が messages.properties であれば、messages と 入力します。
- 「終了」をクリックします。
- ファイル rununit.properties に vgj.messages.file プロパティーを設定して、メッセージ・ファイルの名前を指定する。
この方法は、J2EE フレームワーク内で使用されるプロジェクトにのみ適用されます。ファイル rununit.properties に vgj.messages.file ランタイム・プロパティーを
設定するには、以下のステップに従います。
- Java リソース・フォルダーにあるファイル rununit.properties を開きます。このファイルは、genProperties プロパティーを GLOBAL に設定して最初に ファイルを生成すると作成されます。genProperties を PROGRAM に 設定して生成すると、プロパティー・ファイルの名前は pgmNameOrAlias.properties になり、 生成されたプログラムの Java パッケージ内に配置されます。
- プロパティー・ファイルに、以下のコードを追加する。
vgj.messages.file = messageFileName - messageFileName を、.properties 拡張子なしのメッセージ・ファイルの名前と 置き換える。 例えば、メッセージ・ファイルの名前が messages.properties で あれば、vgj.messages.file = messages と入力します。
- 保存して、プロパティー・ファイルを閉じる。
- userMessageFile ビルド記述子オプションを設定して、.properties 拡張子なしの
メッセージ・ファイルの名前を指定する。
例えば、メッセージ・ファイルの名前が messages.properties であれば、userMessageFile ビルド記述子オプションを messages に設定します。
- メッセージを別の言語にローカライズしたい場合は、その言語に合わせて追加のプロパティー・ファイルを作成します。
- 提供したい言語ごとに新規プロパティー・ファイルを作成し、言語を表すロケール接尾部を新規ファイルに追加します。例えば、 元のプロパティー・ファイルの名前が messages.properties である場合、ドイツ語のメッセージを持つファイルの名前は messages_de.properties となります。 ロケールについて詳しくは 、リソース・バンドルのロケールを参照してください。
- 新規ファイルごとに、最初のプロパティー・ファイルで使用したメッセージ ID を 繰り返し使用します。
- 新規ファイルで、メッセージ ID を変更せずに、メッセージのテキストを 翻訳します。
- 指定した言語を使用するように、アプリケーションを設定します。targetNLS ビルド記述子オプションを言語名に設定して 生成するか、もしくは sysLib.setLocale() システム関数を使用して言語を設定するか、いずれかを行ってください。
- プロジェクト内の EGL ファイルをすべて生成します。