BEA ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic ServerTM > インターナショナライゼーション ガイド > BEA WebLogic Server でのメッセージ カタログの使い方 |
インターナショナライゼーション ガイド
|
BEA WebLogic Server でのメッセージ カタログの使い方
以下の節では、メッセージ カタログとその使い方について説明します。
メッセージ カタログは、テキスト メッセージのコレクションの説明が格納される XML ファイルです。各メッセージは、ユニークな識別子でインデックス付けされます。これらの XML ファイルを、i18ngen ユーティリティのビルド プロセスでクラスにコンパイルします (詳細については、18ngen ユーティリティを参照してください)。生成されたクラスのメソッドは、実行時にメッセージをログに記録するために使用されるオブジェクトとなります。
メッセージ カタログでは、複数のロケールまたは言語がサポートされています。個々のメッセージ カタログには、最上位カタログというデフォルト バージョンが必ず 1 つあります。さらに、追加してサポートされるロケールごとに、対応するロケール固有のカタログが付加されます。最上位カタログには、メッセージの定義に必要なすべての情報が含まれます。ロケール固有のカタログには、メッセージ ID、変更された日付、および特定ロケールに対応するメッセージの変換だけが含まれます。
メッセージ カタログ ファイルは、XML DTD (Document Type Definition:文書型定義) によって定義されます。この DTD は msgcat ディレクトリに格納されます。msgcat ディレクトリの場所は、WebLogic Server のインストール先によって異なる場合があります。デフォルト インストール パスを使用した場合、msgcat ディレクトリは WL_HOME¥samples¥server¥src¥examples¥i18n¥msgcat の下の BEA_HOME ディレクトリにあります。
WebLogic Server 配布キットには、以下の 2 つの DTD が付属しています。
この msgcat ディレクトリには、最上位のメッセージ カタログおよびロケール固有のメッセージ カタログ作成に使用できるテンプレートも入っています。
メッセージ カタログの作成では、ロギングのすべての必要条件に対応するログ メッセージ カタログを 1 つ作成するか、サブシステムまたは Java パッケージごとに細かく分けてカタログを作成するか、いずれかを選択できます。複数のサブシステムを使用すると、表示するときにそのログの特定の部分に焦点を当てることができるので、この方法をお勧めします。
シンプル テキストのカタログの場合は、インターナショナライズされるユーティリティごとに 1 つのカタログを作成することをお勧めします。BEA WebLogic Server メッセージ エディタの使い方で説明されているメッセージ エディタを使用すれば、特定サイト用のメッセージ カタログを作成することができます。
すべてのメッセージおよび例外は、デフォルトの最上位カタログで定義する必要があります。WebLogic Server 配布キットには、WL_HOME¥samples¥server¥src¥examples¥i18n¥msgcat ディレクトリにサンプル カタログ集が付属しています。
注意: このディレクトリ パスは、WebLogic Server のインストール先によっては異なる場合があります。
基本カタログのさまざまなローカライゼーションを提供するカタログは、ロケールに基づいた名前がついた msgcat のサブディレクトリ (例: ドイツの場合 msgcat¥de) に定義されています。たとえば、mycat.xml という最上位カタログと ..¥de¥mycat.xml というそのドイツ語版カタログがある、といった要領です。通常、最上位カタログは英語ですが、インストールされている WebLogic Server のカタログ以外のカタログで英語は必要ではありません。
java.util.Locale のドキュメントで定義されているように、ロケールの指定 (de など) にも階層があります。ロケールでは言語、国、およびバリアントを指定できます。言語は、ロケール指定でもっとも一般的なものです。言語は国コードによって拡張できます。たとえば、en¥US はアメリカ英語を示します。これに関連付けられたカタログの名前は、..¥en¥US¥mycat.xml となります。バリアントはベンダまたはブラウザに固有であり、言語または国で定義された複数のロケールの間で細かな違い (照合順序など) を持たせるために使用します。
メッセージ カタログ ファイルの名前 (.xml 拡張子なし) は、実行時クラスおよびプロパティ名の生成に使用されるため、命名は慎重に行なってください。
メッセージ カタログに名前をつける場合、以下のガイドラインに従ってください。
たとえば、カタログの名前が Xyz.xml の場合、生成されるクラスの名前は XyzLogLocalizer および XyzLogger になります。
以下に挙げる考慮事項も、メッセージ カタログ ファイルに適用されます。
ログ メッセージのメッセージ本文、メッセージの詳細、原因、およびアクションといったセクションには、java.text.MessageFormat に記載されているようなメッセージ引数を組み込むことができます。シンプル メッセージでは、引数を入れられるのは、メッセージ本文のセクションに限られます。引数は、実行時に動的に設定される値を表します。これらの値は、メッセージを出力するなど、ルーチンに渡されます。1 つのメッセージには 0 〜 9 で番号付けされた 10 個までの引数をサポートできます。メッセージ本文にはすべての引数を入れるようにしますが、メッセージ定義の任意のテキスト セクションにもこれらの引数の任意のサブセットを入れることができます。メッセージ引数は開発時にメッセージの定義に挿入され、実行時においてメッセージがログに記録されるときに適切なメッセージ コンテンツに置き換えられます。
以下は、XML ログ メッセージ定義の抜粋で、メッセージ引数の使い方を示しています。引数の番号は、method 属性で指定された引数の 1 つと対応していなければなりません。具体的には、{0} は最初の引数、{1} は 2 番目の引数、という要領で対応している必要があります。
<messagebody>Unable to open file, {0}.</messagebody>
<messagedetail>
File, {0} does not exist. The server will restore the file
contents from {1}, resulting in the use of default values
for all future requests.
</messagedetail>
<cause>The file was deleted</cause>
<action>
If this error repeats then investigate unauthorized access to
the file system.
</action>
-method=゛logNoFile(String name, String path)"
このメッセージでは、2 つの引数 {0} と {1} が使用されます。
また、引数は文字列であるか、文字列として表現可能である必要があります。数値データは {n,number} として表されます。日付は {n,date} の形式がサポートされます。また、ログ メッセージでは重要度レベルを割り当てる必要があります。ログ メッセージは、Logger メソッドによって method 属性で定義されているとおりに生成されます。
最上位のカタログ ファイルとロケール固有のカタログ ファイルでは、カタログのフォーマットが若干異なります。最上位のカタログでは、基本ロケールのテキスト メッセージが定義されます。ロケール固有のカタログは、最上位バージョンで定義されているテキストの翻訳だけを備えています。さらに、ログ メッセージ カタログではシンプル テキスト カタログと定義の方法が異なります。
これら各タイプのカタログの要素は、以下の節で説明されています。
この節では、ログ メッセージ カタログの以下の要素に関するリファレンス情報を提供します。
次の表では、message_catalog 要素で定義できる各属性について説明します。
次の表では、log_message 要素で定義できる各属性について説明します。
このログ メッセージのユニークな識別子。識別子は、すべてのカタログにわたってユニークでなければならない。値は、baseid 属性と endid 属性で定義された範囲で指定する必要がある。これは message_catalog の子要素となっている。 |
|||
このメッセージの修正管理に使用される日付と時刻のスタンプ。日付は、カタログで動作するユーティリティによって提供される。構文は次のとおり。 |
|||
ログ メッセージの重要度を示す。値は、debug、info、warning、notice、error、critical、alert、または emergency のいずれか。ユーザ カタログで使用できるのは、debug、info、warning および error に限られる。 |
|||
Throwable の引数に対するスタック トレースを生成するかどうかを示す。指定できる値は true または false。値が true の場合はトレースが生成される。構文は次のとおり。 |
|||
このメッセージをログに記録するためのメソッド シグネチャ。実際には、ここで指定されるメソッドと Throwable 引数が追加された同様のメソッドの 2 つが提供される。 構文は標準の Java メソッド シグネチャから修飾子、セミコロン、および拡張子を除いたもの。引数の型には Java プリミティブまたは Java クラスを使用できる。クラスは java.lang にない場合は完全修飾でなければならない。また、クラスは java.text.MessageFormat の規約に準拠していなければならない。たいていの場合、クラス引数は便利な toString() メソッドを備えている。 引数には有効であればどのような名前でも指定できるが、argn (n は 0 〜 9) の規約に従っていなければならない。指定できる引数は 10 個まで。各 argn について、その他の log_message カタログ要素で説明されているテキスト要素に少なくとも 1 つの対応するプレースホルダが存在しなければならない。プレースホルダの形式は {n}、{n,number}、または {n,date}。 |
|||
次の表では、log_message 要素の子要素を説明します。
次の例は、ログ メッセージを 1 つ持つログ メッセージ カタログ MyUtilLog.xml を示しています。
<?xml version="1.0"?>
<!DOCTYPE message_catalog PUBLIC "weblogic-message-catalog-dtd" "http://www.bea.com/servers/wls700/dtd/msgcat.dtd">
<message_catalog
l10n_package="programs.utils"
i18n_package="programs.utils"
subsystem="MYUTIL"
version="1.0"
baseid="600000"
endid="600100"
<log_message
messageid="600001"
severity="warning"
method="logNoAuthorization(String arg0, java.util.Date arg1,
int arg2)"
<messagebody>
Could not open file, {0} on {1,date} after {2,number} attempts.
</messagebody>
<messagedetail>
The configuration for this application will be defaulted to
factory settings. Custom configuration information resides
in file, {0}, created on {1,date}, but is not readable.
</messagedetail>
<cause>
The user is not authorized to use custom configurations. Custom
configuration information resides in file, {0}, created on
{1,date}, but is not readable.The attempt has been logged to
the security log.
</cause>
<action>
The user needs to gain approriate authorization or learn to
live with the default settings.
</action>
</log_message>
</message_catalog>
この節では、シンプル テキスト メッセージ カタログの以下の要素に関するリファレンス情報を提供します。
次の表では、message_catalog 要素で定義できる各属性について説明します。
次の表では、message 要素で定義できる各属性について説明します。
次の例は、テキスト定義が 1 つあるシンプル テキスト カタログ MyUtilLabels.xml を示しています。
<?xml version="1.0"?>
<!DOCTYPE message_catalog PUBLIC "weblogic-message-catalog-dtd"
"http://www.bea.com/servers/wls700/dtd/msgcat.dtd">
<message_catalog>
l10n_package="programs.utils"
i18n_package="programs.utils"
subsystem="MYUTIL"
version="1.0"
<message>
messageid="FileMenuTitle"
<messagebody>
File
</messagebody>
</message>
</message_catalog>
ロケール固有のカタログは、最上位カタログのサブセットです。ロケール固有のカタログは、それらが表すロケールに基づいた名前のサブディレクトリに格納されます。以下の節で説明する要素および属性は、ロケール固有のカタログに有効なものです。
次の表では、locale_message_catalog 要素で定義できる各属性について説明します。
ロケール固有のカタログでは、ログ メッセージ カタログの log_message 要素で定義された属性が使用されますので、この要素は改めて定義する必要はありません。
その他の locale_message_catalog 要素
ロケール固有のカタログでは、ログ メッセージ カタログで定義された messagebody、messagedetail、cause、および action の各カタログ要素を使用しますので、これらの要素を改めて定義する必要はありません。
次の例は、...¥msgcat¥fr¥MyUtilLabels.xml にあるメッセージのフランス語版です。
翻訳されたメッセージをリスト2-4 に示します。
コード リスト 2-4 フランス語に翻訳されたメッセージの例
<?xml version="1.0"?>
<!DOCTYPE message_catalog PUBLIC
"weblogic-locale-message-catalog-dtd"
"http://www.bea.com/servers/wls700/dtd/l10n_msgcat.dtd">
<locale_message_catalog
l10n_package="programs.utils"
subsystem="MYUTIL"
version="1.0">
<message>
<messageid="FileMenuTitle">
<messagebody> Fichier </messagebody>
</message>
</locale_message_catalog>
messagebody、messagedetail、cause、および action の各要素でテキストを入力するときには、有効な UTF-8 (Unicode Transformation Format-8) 文字を生成するツールを使用するとともに、適切なキーボードのマッピングがインストールされている必要があります。UTF-8 は、ASCII 文字のエンコーディングを最適化する、効率的な Unicode 文字列エンコーディング方式です。メッセージ カタログでは常に UTF-8 エンコーディング方式が使用されます。WebLogic Server と共にダウンロードされる MessageLocalizer ユーティリティは、有効な UTF-8 文字の生成に使用できるツールです。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |