ローカリゼーション API のサポート
com.ibm.websphere.i18n.localizabletext パッケージには、テキストのローカライズ用のクラスおよびインターフェースが含まれます。
- java.util.Locale
- java.util.TimeZone
- java.util.ResourceBundle
- java.text.MessageFormat
標準 Java API について詳しくは、グローバリゼーション: 学習用リソースを参照してください。
ローカライズ可能テキスト・パッケージは、Java を完全にサポートし、分散環境で効率的かつ簡単に使用できるように拡張します。 アプリケーション・プログラマーによって使用される 1 次クラスは、LocalizableTextFormatter です。 このクラスのインスタンスは、通常サーバー・プログラムで作成されますが、クライアント・プログラムでも作成できます。 フォーマッター・インスタンスは、特定のリソース・バンドル名および鍵について作成されます。 LocalizableTextFormatter インスタンスを受け取るクライアント・プログラムは、その format メソッドを呼び出します。 このメソッドはクライアント・アプリケーションのロケールを使用して、適切なリソース・バンドルを検索し、鍵に基づいてロケール特有のメッセージを構成します。
例えば、分散アプリケーションがフランス語と英語の両方のロケールをサポートする場合には、サーバーは英語ロケールを使用し、クライアントはフランス語ロケールを使用します。 サーバーは、英語とフランス語のそれぞれに 1 つずつ、合計 2 つのリソース・バンドルを作成します。 クライアントがメッセージを生成する要求を出すと、サーバーはリソース・バンドルの名前およびメッセージの鍵を含む LocalizableTextFormatter インスタンスを作成し、クライアントにインスタンスを戻します。
クライアントが LocalizableTextFormatter インスタンスを受け取ると、オブジェクトの format メソッドが呼び出されます。 ロケールおよびリソース・バンドルの名前を使用することにより、format メソッドは、フランス語ロケールをサポートするリソース・バンドル名を判別し、フランス語リソース・バンドルの鍵に対応するメッセージを検索します。 メッセージのフォーマットは、クライアントから透過的です。
- クライアント・アプリケーションは、時間帯およびロケール値を明示的に渡したり、またはデフォルト値を介することにより、LocalizableTextFormatter インスタンスに時間帯およびロケール値を設定します。
- LocalizableTextFormatterEJBFinder 呼び出しは、フォーマッター Bean への参照を検索するために行われます。
- クライアントの時間帯およびロケールを含む、 LocalizableTextFormatter インスタンスからの情報は、フォーマット Bean に送られます。
- フォーマット設定 Bean は、リソース・バンドルの名前、 メッセージ・キー、時間帯、およびロケールを使用して、 言語特有のメッセージを構成します。
- フォーマッター Bean は、クライアントにフォーマット設定メッセージを戻します。
- フォーマット設定メッセージは、LocalizableTextFormatter インスタンスに挿入され、format メソッドによって戻されます。
フォーマッター Bean と接触するために、format メソッドの呼び出しには、最大 1 つのリモート呼び出しが必要です。 また別の方法として、LocalizableTextFormatter インスタンスは、今後使用するためのリモート呼び出しを除去し、フォーマット設定メッセージをキャッシュに入れることができます。 また、アプリケーションが適切なメッセージ・カタログにアクセスできない場合でも、読み取り可能なストリングを戻すことができるように、フォールバック・ストリングを設定できます。
リソース・バンドルはローカルに保管することができます。 ローカライズ可能テキスト・パッケージは、バンドルがローカルに (LocalizableConfiguration.LOCAL)、またはリモートに (LocalizableConfiguration.REMOTE) 保管されるかどうかを示す、静的変数を提供します。 ただし、この変数の設定は、同じ Java 仮想マシン内で実行されるすべてのアプリケーションに適用されます。