6 WebLogic Server国際化ユーティリティの使い方
WebLogic Server国際化ユーティリティ
WebLogic Serverは、3つの国際化ユーティリティ(weblogic.i18ngen
ユーティリティ、weblogic.l10ngen
ユーティリティおよびweblogic.GetMessage
ユーティリティ)を提供します。
-
weblogic.i18ngenユーティリティ - メッセージ・カタログのパーサー。このユーティリティは、ログ・メッセージ内のテキストのローカライズに使用されるクラスの検証および生成に使用します。「weblogic.i18ngenユーティリティ」を参照してください。
-
weblogic.l10ngenユーティリティ - ロケール固有のメッセージ・カタログのパーサー。このユーティリティは、ロケール固有のカタログの処理に使用します。「weblogic.l10ngenユーティリティ」を参照してください。
-
weblogic.GetMessageユーティリティ - 組み込まれているログ・メッセージのリストを生成するユーティリティ。このユーティリティは、組み込まれているログ・メッセージのリストの生成およびメッセージの表示に使用します。「weblogic.GetMessageユーティリティ」を参照してください。
ノート:
カタログ定義のテキストでは読みやすいように書式設定文字(行末文字など)が使用される場合がありますが、それらの文字はパーサーでは維持されません。テキスト・データは、1行の文字列に標準化されます。先頭と末尾のホワイト・スペースはすべて削除されます。埋め込まれている行末文字は、単語の区切りを維持するために必要に応じてスペースに置き換えられます。タブはそのまま残されます。
エスケープは、埋め込まれている改行('\n'
など)に使用します。保存され、出力すると改行として出力されます。
WebLogic Server国際化およびローカライゼーション
weblogic.i18ngen
ユーティリティを使用すると、メッセージ・カタログを検証し、ローカライズされたメッセージの生成に必要な実行時クラスを作成できます。
weblogic.l10ngen
ユーティリティを使用すると、ロケール固有のカタログを検証し、カタログで定義された様々な異なるロケールで使用される追加のプロパティ・ファイルを作成できます。
WebLogic Serverで実行しているシンプル・テキスト・ベースのユーティリティは、それらのユーティリティでテキスト・データのアクセスにLocalizer
を使用するように指定することにより、国際化できます。weblogic.i18ngen
ユーティリティから生成されたLogger
およびTextFormatter
クラスを使用して、アプリケーションを構成します。
Logger
クラスおよびTextFormatter
クラスの詳細は、「WebLogic Server用のTextFormatterクラスのリファレンス」および「WebLogic Server用のLoggerクラスのリファレンス」を参照してください。
生成されたLogger
クラスは、英語のテキストをログに書き込む従来の方法にかわるログ記録の手段として使用されます。たとえば、weblogic.i18ngen
では、カタログxyz.xml
に対して適切なパッケージにクラスxyzLogger
が生成されます。また、MyUtilLog.xml
カタログでは、クラスprograms.utils.MyUtilLogger.class
が生成されます。カタログで定義されているログ・メッセージごとに、このクラスではmethod
属性で定義されているとおりに静的なパブリック・メソッドが格納されます。
TextFormatter
クラスは、シンプル・メッセージ・カタログごとに生成されます。これらのクラスには、カタログのローカライズおよびフォーマットされたテキストにアクセスするために使用するメソッドがあります。このクラスは、メッセージ本文、プレースホルダー、およびMessageFormat
とのインタフェースを処理するコンビニエンス・クラスです。フォーマット用メソッドは、各メッセージ定義のmethod属性により指定します。たとえば、あるカタログのメッセージ定義に属性method=getErrorNumber(int err)
が指定されている場合、例6-1に示されているTextFormatter
クラスが生成されます。
例6-1 TextFormatterクラスの例
package my.text; public class xyzTextFormatter { . . . public String getErrorNumber(int err) { . . . } }
例6-2は、getErrorNumber
メソッドのコードでの使用例を示します。
例6-2 getErrorNumberメソッドの例
import my.text.xyzTextFormatter . . . xyzTextFormatter xyzL10n = new xyzTextFormatter(); System.out.println(xyzL10n.getErrorNumber(someVal));
この場合、someVal
引数が適切に挿入された状態で現在のロケールのメッセージ・テキストが出力されます。
weblogic.i18ngenユーティリティ
weblogic.i18ngen
ユーティリティは、メッセージ・カタログ(XMLファイル)を解析し、ログ・メッセージのテキストをローカライズするためのLogger
クラスおよびTextFormatter
クラスを生成します。
このユーティリティでは、次のプロパティ・ファイル(メッセージIDのルックアップ・クラス・ハッシュ表weblogic.i18n.L10nLookup
のロードに使用)が作成、または更新されます。
targetdirectory\i18n_user.properties
エラーや警告などのメッセージはすべてstderr
に送信されます。
ユーザー・カタログが認識されるように、i18n_user.properties
ファイルはWebLogicクラスパスで識別されたディレクトリに置く必要があります。
たとえば: targetdirectory
\i18n_user.properties
i18n_user.properties
ファイルは、サーバー・クラスパスに置くようにお薦めします。i18n_user.properties
ファイルがtargetdirectory
にある場合は、targetdirectory
がサーバー・クラスパスにある必要があります。
構文
java weblogic.i18ngen [options] [filelist]
ノート:
ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンド行で指定される場合、ファイル・パスはカレント・ディレクトリに対する相対パスになります。
オプション
表6-1 weblogic.i18ngenユーティリティで使用可能なオプション
オプション | 定義 |
---|---|
-build |
必要なすべてのファイルを生成し、コンパイルします。
|
-d targetdirectory |
生成されたJavaソース・ファイルの宛先となるルート・ディレクトリを指定します。ユーザー・カタログ・プロパティは、指定されたターゲット・ディレクトリの相対パスにある この引数が省略された場合は、メッセージ・カタログに指定されたクラス階層に関係なく、すべてのクラスがカレント・ディレクトリに生成されます。 |
-n |
解析し、有効性を検証しますが、クラスは生成しません。 |
-keepgenerated |
生成されたJavaソース(クラス・ファイルと同じディレクトリに存在)を保持します。 |
-ignore |
エラーを無視します。 |
-i18n |
インターナショナライザ(
|
-l10n |
ローカライザ(
|
-compile |
現在のCLASSPATHを使用して生成されたJavaファイルをコンパイルします。生成されたクラスは、 通常は、コンパイルの途中でエラーが検出されると、クラス・ファイルやプロパティ・ファイルが作成されません。 |
-nobuild |
解析と有効性の検証のみを実行します。 |
-debug |
デバッグ・モード。 |
-dates |
|
filelist |
このファイル・リストのファイルとディレクトリを処理します。ディレクトリが指定されている場合は、そのディレクトリのすべてのXMLファイルが処理されます。すべてのファイルの名前には、XMLの接尾辞が付いている必要があります。すべてのファイルは |
weblogic.l10ngenユーティリティ
weblogic.l10ngen
ユーティリティは、ファイル・リストで指定されたメッセージ・カタログをローカライゼーションするためのプロパティ・リソースを生成します。ファイル・リストでは、翻訳されたカタログではなく、最上位カタログが識別されます。
同様に、ターゲット・ディレクトリ(-d
オプション)は、デフォルトのローカライゼーションが置かれた同一のターゲット・ディレクトリを識別します。たとえば、デフォルト・カタログが$SRC\weblogic\msgcat
にあり、生成されたリソースを$CLASSESDIR
に置く場合、l10ngen
を適切に呼び出すコマンドは次のようになります。
java weblogic.l10ngen -d $CLASSESDIR $SRC\weblogic\msgcat
このコマンドでは、定義されたすべてのロケールに対するローカライズされたリソースが、weblogic\msgcat
サブディレクトリに生成されます。
構文
java weblogic.l10ngen [options] [filelist]
ノート:
ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンド行で指定される場合、ファイル・パスはカレント・ディレクトリに対する相対パスになります。
オプション
表6-2 weblogic.l10ngenユーティリティで使用可能なオプション
オプション | 定義 |
---|---|
-d target |
プロパティを配置するディレクトリ。デフォルトはカレント・ディレクトリ。 |
-language code |
言語コード。デフォルトは、 |
-country code |
国コード。デフォルトは、 |
-variant code |
バリアント・コード。デフォルトは、 |
filelist |
プロパティ・ファイルを生成するメッセージ・カタログを指定します。メッセージ・エディタで作成される最上位のカタログを指定する必要があります。メッセージ・ローカライザで作成される特定ロケールのカタログは指定しません。通常は、 |
メッセージ・カタログのローカライゼーション
カタログ・サブディレクトリの名前は、小文字2文字のISO 639言語コード(日本語はja
、フランス語はfr
など)に基づいて付けられます。サポートされている言語コードは、java.util.Locale
javadocで確認できます。
言語コードのバリエーションは、言語コードの下位にある大文字2文字のISO 3166国コードとバリアントを使用するとできます。一般的な構文は、lang\country\variant
です。
たとえば、zh
は中国の言語コードです。CN
は簡体字中国語の国コードで、TW
は繁体字中国語の国コードです。このため、zh\CN
およびzh\TW
は中国語の異なる2つのロケールです。
バリアントは、特定のロケールを扱うプラットフォーム・ベンダーの機能に違いがある場合などに役立ちます。ベンダー・バリアントには、WIN、MAC、POSIXなどがあります。ロケールをさらに修飾するために2つのバリアントが使用される場合もあります。この場合、バリアントはアンダースコアで区切ります(Traditional_Mac
とModern_MAC
など)。
ノート:
言語、国、およびバリアントは、すべて大文字/小文字が区別されます。
完全修飾ロケールはzh\TW\WIN
のようになり、Win32プラットフォームでの繁体字中国語を識別します。
上記のロケールをサポートするメッセージ・カタログには、次のファイルが含まれます。
-
\*.xml
- デフォルト・カタログ -
\zh\*.xml
- 中国語ローカライゼーション -
\zh\TW\*.xml
- 繁体字中国語ローカライゼーション -
\zh\TW\WIN\*.xml
- Win32コード・セットに対する繁体字中国語ローカライゼーション
特定のローカライゼーションは、親ローカライゼーションで定義されたすべてのメッセージに対応する必要はありません。
例
-
すべてのロケールに対するローカライゼーション・プロパティを生成するには:
java weblogic.l10ngen -d $CLASSESEDIR catalogdirectory
-
すべての繁体字中国語ロケールに対するローカライゼーション・プロパティを生成するには:
java weblogic.l10ngen -d $CLASSESEDIR -language zh -country TW catalogdirectory
-
すべての中国語ロケールに対するローカライゼーション・プロパティを生成するには:
java weblogic.l10ngen -d $CLASSESEDIR -language zh catalogdirectory
-
すべてのロケールでJMSカタログに対するローカライゼーション・プロパティを生成するには:
java weblogic.l10ngen -d $CLASSESEDIR catalogdirectory
ノート:
例2は例3のサブセットです。すべての中国語(
zh
)には、任意の国指定(TW
など)およびバリアントが含まれます。weblogic.l10ngen
は、ロケール識別子(言語、国、バリアント)を検証しません。
weblogic.GetMessageユーティリティ
weblogic.GetMessage
ユーティリティは、メッセージ・コンテンツを表示します。インストールされたすべてのメッセージ、または一部のメッセージを一連表示することもできます。デフォルト(オプションなし)では、weblogic.GetMessage
は使用方法を出力します。
weblogic.GetMessage
ユーティリティは、以前のバージョンのWebLogic Serverで提供されたCatInfo
ユーティリティにかわるユーティリティです。
構文
java weblogic.GetMessage [options]
オプション
ノート:
-verbose
を除いて、すべてのオプションは1文字に短縮できます。
表6-3 weblogic.GetMessageユーティリティで使用可能なオプション
オプション | 定義 |
---|---|
-id nnnnnn |
|
-subsystem identifier |
サブシステムの識別子。 |
-nodetail |
詳細でないリストをリクエストし、メッセージのメッセージ本文のみ出力されます。デフォルトでは、重大度、サブシステム、メッセージ詳細、原因、およびアクション情報などの詳細なリストが出力されます。 |
-verbose |
詳細なリストをリクエストします。 |
-lang code |
使用する言語。たとえば、英語の場合は |
-country code |
使用する国コード。たとえば、米国の場合は |
-variant code |
ロケールに対するバリアント識別子。 |
-help |
ヘルプ情報を提供します。 |
-retired |
リタイアされたすべてのメッセージをリストします。リタイアされたメッセージは、このオプションを使用しないと表示されません。メッセージのサブシステムおよびIDのみリストされます。 |
引数を指定しないと、weblogic.GetMessage
は-help
が指定された場合と同様に、使用方法が出力されます。