ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server アプリケーション ロギングのロギング サービス ユーザーズ ガイド
11g リリース 1 (10.3.1)
E13704-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

7 WebLogic Server インターナショナライゼーション ユーティリティの使い方

以下の節では、インターナショナライゼーションおよびローカライゼーションに使用される WebLogic Server ユーティリティに関する情報を記述します。

WebLogic Server インターナショナライゼーション ユーティリティ

WebLogic Server では、以下の 3 つのインターナショナライゼーション ユーティリティが用意されています。


注意 :

カタログ定義のテキストでは読みやすいように書式設定文字 (行末文字など) が使用される場合がありますが、それらの文字はパーサでは維持されません。テキスト データは、1 行の文字列に標準化されます。先頭と末尾のホワイト スペースはすべて削除されます。埋め込まれている行末文字は、単語の区切りを維持するために必要に応じてスペースに置き換えられます。タブはそのまま残されます。

エスケープは、埋め込まれている改行 ('\n'など) に使用します。保存され、出力すると改行として出力されます。


WebLogic Server インターナショナライゼーションおよびローカライゼーション

weblogic.i18ngen ユーティリティを使用すると、メッセージ カタログを検証し、ローカライズされたメッセージの生成に必要な実行時クラスを作成できます。weblogic.l10ngen ユーティリティを使用すると、ロケール固有のカタログを検証し、カタログで定義されたさまざまな異なるロケールで使用される追加のプロパティ ファイルを作成できます。

WebLogic Server で実行しているシンプル テキストベースのユーティリティは、それらのユーティリティでテキスト データのアクセスに Localizer を使用するように指定することにより、インターナショナライズできます。weblogic.i18ngen ユーティリティから生成された Logger および TextFormatter クラスを使用して、アプリケーションをコンフィグレーションします。

Logger クラスおよび TextFormatter クラスの詳細については、「C WebLogic Server 用の TextFormatter クラスのリファレンス」および「D WebLogic Server 用の Logger クラスのリファレンス」を参照しください。

生成された Logger クラスは、英語のテキストをログに書き込む従来の方法に代わるログ記録の手段として使用されます。たとえば、weblogic.i18ngen では、カタログ xyz.xml に対して適切なパッケージにクラス xyzLogger が生成されます。また、MyUtilLog.xml カタログでは、クラス programs.utils.MyUtilLogger.class が生成されます。カタログで定義されているログ メッセージごとに、このクラスでは method 属性で定義されているとおりに静的なパブリック メソッドが格納されます。

TextFormatter クラスは、シンプル メッセージ カタログごとに生成されます。TextFormatter クラスには、カタログのローカライズおよびフォーマットされたテキストにアクセスするために使用するメソッドがあります。このクラスは、メッセージ本文、プレースホルダ、および MessageFormat とのインタフェースを処理するコンビニエンス クラスです。フォーマット用メソッドは、各メッセージ定義の method 属性により指定します。たとえば、あるカタログのメッセージ定義に属性 method=getErrorNumber(int err) が指定されている場合、「コード リスト 7-1」に示されている TextFormatter クラスが生成されます。

コード リスト 7-1 TextFormatter クラスの例

package my.text;
public class xyzTextFormatter 
{
   . . .
   public String getErrorNumber(int err) 
   {
   . . .
   }
}

コード リスト 7-2」は、getErrorNumber メソッドのコードでの使用例を示します。

コード リスト 7-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]

注意 :

ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンドラインで指定される場合、ファイル パスはカレント ディレクトリに対する相対パスになります。

オプション

オプション 定義
-build
必要なすべてのファイルを生成し、コンパイルする。

-build オプションは、-i18n-l10n-keepgenerated、および Ecompile オプションを兼ね備える。

-d targetdirectory
生成された Java ソース ファイルの宛先となるルート ディレクトリを指定する。ユーザ カタログ プロパティは、指定された対象ディレクトリの相対パスにある i18n_user.properties に配置される。ファイルは、メッセージ カタログの i18n_package 値および l10n_package 値に基づいて適切なディレクトリに配置される。デフォルトの対象ディレクトリは現在のディレクトリとなる。このディレクトリは必要に応じて作成される。

この引数が省略された場合は、メッセージ カタログに指定されたクラス階層に関係なく、すべてのクラスがカレント ディレクトリに生成される。

-n
解析し、有効性を検証するが、クラスは生成しない。
-keepgenerated 
生成された Java ソース (クラス ファイルと同じディレクトリに存在) を保持する。
-ignore
エラーを無視する。
-i18n
インターナショナライザ (LoggersTextFormatters など) を生成する。

i18ngen -i18n では、インターナショナライズされたメッセージのロギングをサポートするインターナショナライザ ソース (*Logger.java など) が作成される。

-l10n
localizers (LogLocalizersTextLocalizers など) を生成する。

i18ngen -l10n では、メッセージ カタログで定義されている各メッセージにアクセスできるようにするローカライザ ソース (リソースのまとまり) が作成される。これらのクラスは、メッセージをローカライズするためにローカライゼーション ユーティリティによって使用される。

-compile
現在の CLASSPATH を使用して生成された Java ファイルをコンパイルする。生成されたクラスは、-d オプションで識別されるディレクトリに配置される。生成されたクラスは、ソースと同じディレクトリに配置される。

通常は、コンパイルの途中でエラーが検出されると、クラス ファイルやプロパティ ファイルが作成されない。i18ngen は異常な終了ステータスで終了する。

-nobuild
解析と有効性の検証のみを実行する。
-debug
デバッグ モード。
-dates
weblogic.i18ngen に、カタログ内のメッセージ タイムスタンプを更新させる。カタログが書き込み可能でタイムスタンプが更新された場合、カタログは上書きされる。
filelist
このファイル リストのファイルとディレクトリを処理する。ディレクトリが指定されている場合は、そのディレクトリのすべての XML ファイルが処理される。すべてのファイルの名前には、XML のサフィックスが付いている必要がある。すべてのファイルは msgcat.dtd 構文に準拠している必要がある。weblogic.i18ngen は、実際に生成されたファイルに対して、完全修飾名リスト (Java ソース) を stdout ログに出力する。

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]

注意 :

ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンドラインで指定される場合、ファイル パスはカレント ディレクトリに対する相対パスになります。

オプション

オプション 定義
-d target
プロパティを配置するディレクトリ。デフォルトはカレント ディレクトリ。
-language code
言語コード。デフォルト値は all
-country code
国コード。デフォルト値は all
-variant code
バリアント コード。デフォルト値は all
filelist
プロパティ ファイルを生成するメッセージ カタログを指定する。メッセージ エディタで作成される最上位のカタログを指定する必要がある。メッセージ ローカライザで作成される特定ロケールのカタログは指定しない。通常は、i18ngen コマンドで指定したものと同じソース ファイルまたはソース ディレクトリ。

メッセージ カタログのローカライゼーション

カタログ サブディレクトリの名前は、小文字 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_MacModern_MAC など)。


注意 :

言語、国、およびバリアントは、すべて大文字/小文字が区別されます。

完全修飾ロケールは zh\TW\WIN のようになり、Win32 プラットフォームでの繁体字中国語を識別します。

上記のロケールをサポートするメッセージ カタログには、次のファイルが含まれます。

  • \*.xml - デフォルト カタログ

  • \zh\*.xml - 中国語ローカライゼーション

  • \zh\TW\*.xml - 繁体字中国語ローカライゼーション

  • \zh\TW\WIN\*.xml - Win32 コード セットに対する繁体字中国語ローカライゼーション

特定のローカライゼーションは、親ローカライゼーションで定義されたすべてのメッセージに対応する必要はありません。

  1. すべてのロケールに対するローカライゼーション プロパティを生成するには、次のコマンドを実行します。

    java weblogic.l10ngen -d $CLASSESEDIR catalogdirectory
    
  2. すべての繁体字中国語ロケールに対するローカライゼーション プロパティを生成するには、次のコマンドを実行します。

    java weblogic.l10ngen -d $CLASSESEDIR -language zh -country TW catalogdirectory
    
  3. すべての中国語ロケールに対するローカライゼーション プロパティを生成するには、次のコマンドを実行します。

    java weblogic.l10ngen -d $CLASSESEDIR -language zh catalogdirectory
    
  4. すべてのロケールで JMS カタログに対するローカライゼーション プロパティを生成するには、次のコマンドを実行します。

    java weblogic.l10ngen -d $CLASSESEDIR catalogdirectory
    

    注意 :

    例 2 は例 3 のサブセットです。すべての中国語 (zh) には、任意の国指定 (TW など) およびバリアントが含まれます。

    weblogic.l10ngen は、ロケール識別子 (言語、国、バリアント) を検証しません。


weblogic.GetMessage ユーティリティ

weblogic.GetMessage ユーティリティは、以前のバージョンの WebLogic Server で提供された CatInfo ユーティリティに代わるユーティリティです。このユーティリティはメッセージ コンテンツを表示しますが、インストールされたすべてのメッセージ、または一部のメッセージを一覧表示するためにも使用できます。デフォルト (オプションなし) では、weblogic.GetMessage は使用方法を出力します。

構文

java weblogic.GetMessage [options]

オプション


注意 :

-verbose を除いて、すべてのオプションは 1 文字に短縮できます。

オプション 定義
-id nnnnnn
nnnnnn はメッセージ ID を表す。

-id オプションは特定のメッセージを指定するために使用する。

-subsystem identifier
サブシステムの識別子。-subsystem オプションでは指定されたサブシステムに一致するメッセージだけが出力される。
-nodetail
詳細でないリストを要求し、メッセージのメッセージ本文のみ出力される。デフォルトでは、重大度、サブシステム、メッセージ詳細、原因、およびアクション情報などの詳細なリストが出力される。
-verbose
詳細なリストを要求する。-verbose オプションを指定すると、パッケージ化、スタック トレース オプション、重大度、サブシステム、メッセージ詳細、原因、およびアクション情報も出力される。
-lang code
使用する言語。たとえば、英語の場合は en
-country code
使用する国コード。たとえば、米国の場合は US
-variant code
ロケールに対するバリアント識別子。
-help
ヘルプ情報を提供する。
-retired
廃止されたすべてのメッセージをリストする。廃止されたメッセージは、このオプションを使用しないと表示されない。メッセージのサブシステムおよび ID のみリストされる。

引数を指定しないと、weblogic.GetMessage-help が指定された場合と同様に、使用方法が出力されます。