インターナショナライゼーション ガイド
|
|
以下の節では、インターナショナライゼーションおよびローカライゼーションに使用される WebLogic Server ユーティリティに関する情報を記述します。
WebLogic Server では、以下の 3 つのインターナショナライゼーション ユーティリティが用意されています。
注意 : カタログ定義のテキストでは読みやすいように書式設定文字 (行末文字など) が使用される場合がありますが、それらの文字はパーサでは維持されません。テキスト データは、1 行の文字列に標準化されます。先頭と末尾のホワイト スペースはすべて削除されます。埋め込まれている行末文字は、単語の区切りを維持するために必要に応じてスペースに置き換えられます。タブはそのまま残されます。
注意 : エスケープは、埋め込まれている改行 (\n など) に使用します。保存され、出力すると改行として出力されます。
weblogic.i18ngen ユーティリティを使用すると、メッセージ カタログを検証し、ローカライズされたメッセージの生成に必要な実行時クラスを作成できます。weblogic.l10ngen ユーティリティを使用すると、ロケール固有のカタログを検証し、カタログで定義されたさまざまな異なるロケールで使用される追加のプロパティ ファイルを作成できます。
WebLogic Server で実行しているシンプル テキストベースのユーティリティは、それらのユーティリティでテキスト データのアクセスに Localizer を使用するように指定することにより、インターナショナライズできます。weblogic.i18ngen ユーティリティから生成された Logger および TextFormatter クラスを使用して、アプリケーションをコンフィグレーションします。
weblogic.i18ngen ユーティリティの詳細については、「weblogic.i18ngen ユーティリティ」を参照してください。Logger クラスおよび TextFormatter クラスの詳細については、「BEA WebLogic Server 用の TextFormatter クラスのリファレンス」および「BEA WebLogic Server 用の Logger クラスのリファレンス」を参照してください。
生成された Logger クラスは、英語のテキストをログに書き込む従来の方法に代わるログ記録の手段として使用されます。たとえば、weblogic.i18ngen では、カタログ xyz.xml に対して適切なパッケージにクラス xyzLogger が生成されます。また、たとえば MyUtilLog.xml カタログでは、クラス programs.utils.MyUtilLogger.class が生成されます。カタログで定義されているログ メッセージごとに、このクラスでは method 属性で定義されているとおりに静的なパブリック メソッドが格納されます。
TextFormatter クラスは、シンプル メッセージ カタログごとに生成されます。TextFormatter クラスには、カタログのローカライズおよびフォーマットされたテキストにアクセスするために使用するメソッドがあります。このクラスは、メッセージ本文、プレースホルダ、および MessageFormat とのインタフェースを処理するコンビニエンス クラスです。フォーマット用メソッドは、各メッセージ定義の method 属性により指定します。たとえば、あるカタログのメッセージ定義に属性 method=getErrorNumber(int err) が指定されている場合、コード リスト 4-1 に示されている TextFormatter クラスが生成されます。
コード リスト 4-1 TextFormatter クラスの例
package my.text;
public class xyzTextFormatter
{
. . .
public String getErrorNumber(int err)
{
. . .
}
}
コード リスト 4-2 は、getErrorNumber メソッドのコードでの使用例を示しています。
コード リスト 4-2 getErrorNumber メソッドの例
import my.text.xyzTextFormatter
. . .
xyzTextFormatter xyzL10n = new xyzTextFormatter();
System.out.println(xyzL10n.getErrorNumber(someVal));
この場合、someVal 引数が適切に挿入された状態で現在のロケールのメッセージ テキストが出力されます。
weblogic.i18ngen ユーティリティを使用すると、メッセージ カタログ (XML ファイル) を解析し、ログ メッセージのテキストをローカライズするための Logger クラスおよび TextFormatter クラスを生成できます。このユーティリティでは、次のプロパティ ファイル (メッセージ ID のルックアップ クラス ハッシュテーブル weblogic.i18n.L10nLookup のロードに使用) が作成、または更新されます。
targetdirectory/i18n_user.properties
weblogic.i18ngen ユーティリティでは、i18n_user.properties ファイルの作成または更新も行われます。エラーや警告などのメッセージはすべて stderr に送信されます。
ユーザ カタログが認識されるように、i18n_user.properties ファイルは WebLogic クラスパスで識別されたディレクトリに置く必要があります。
targetdirectory/i18n_user.properties
i18n_user.properties ファイルは、サーバ クラスパスに置くようにお勧めします。i18n_user.properties ファイルが targetdirectory にある場合は、targetdirectory がサーバ クラスパスにある必要があります。
java weblogic.i18ngen [options]
注意 : ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンドラインで指定される場合、ファイル パスはカレント ディレクトリに対する相対パスになります。
weblogic.l10ngen ユーティリティは、ファイルリストで指定されたメッセージ カタログをローカライゼーションするためのプロパティ リソースを生成します。ファイルリストでは、翻訳されたカタログではなく、最上位カタログが識別されます。
同様に、target ディレクトリ (-d オプション) は、デフォルトのローカライゼーションが置かれた同一の target ディレクトリを識別します。たとえば、デフォルト カタログが $SRC/weblogic/msgcat にあり、生成されたリソースを $CLASSESDIR に置く場合、l10ngen を適切に呼び出すコマンドは次のようになります。
java weblogic.i18n.tools.l10ngen -d $CLASSESDIR $SRC/weblogic/msgcat
このコマンドでは、定義されたすべてのロケールに対するローカライズされたリソースが、weblogic/msgcat サブディレクトリに生成されます。
java weblogic.l10ngen [options]
注意 : ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンドラインで指定される場合、ファイル パスはカレント ディレクトリに対する相対パスになります。
|
|
カタログ サブディレクトリの名前は、小文字 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 プラットフォームでの繁体字中国語を識別します。
上記のロケールをサポートするメッセージ カタログには、次のファイルが含まれます。
特定のローカライゼーションは、親ローカライゼーションで定義されたすべてのメッセージに対応する必要はありません。
java weblogic.i18ntools.l10ngen -d $CLASSESEDIR catalogdirectory
java weblogic.i18ntools.l10ngen -d $CLASSESEDIR -language zh -country TW catalogdirectory
java weblogic.i18ntools.l10ngen -d $CLASSESEDIR -language zh catalogdirectory
java weblogic.i18ntools.l10ngen -d $CLASSESEDIR catalogdirectory
注意 : 例 2 は例 3 のサブセットです。すべての中国語 (zh) には、任意の国指定 (TW など) およびバリアントが含まれます。
weblogic.l10ngen は、ロケール識別子 (言語、国、バリアント) を検証しません。
weblogic.GetMessage ユーティリティは、以前のバージョンの WebLogic Server で提供された CatInfo ユーティリティに代わるユーティリティです。このユーティリティはメッセージ コンテンツを表示しますが、インストールされたすべてのメッセージ、または一部のメッセージを一覧表示するためにも使用できます。デフォルト (オプションなし) では、weblogic.GetMessage は使用方法を出力します。
java weblogic.GetMessage [options]
注意 : -verbose を除いて、すべてのオプションは 1 文字に短縮できます。
|
|
|
|
|
引数を指定しないと、weblogic.GetMessage は -help が指定された場合と同様に、使用方法が出力されます。
|
|
|