ResourceBundles を使用することにより、Web アプリケーションでサポートしている各ロケール用のソースファイルを作成できます。これらのファイルには、各ロケール専用のテキストや画像などのオブジェクトが含まれます。
ResourceBundles は、java.util
パッケージのアブストラクトクラスであり、次のサブクラスの 1 つとして実装する必要があります。
Web アプリケーションで多くのローカライズされたテキスト情報が必要な場合は、クラスファイル (PropertyResourceBundle に必須) ではなくプロパティファイル
(ListResourceBundles に必須) を使用してデータを保管する方が簡単です。
JRun は、次の規則を使用して、ファイル名に基づいて取り込むリソースバンドルを決定します。
ClassName_languagecode_COUNTRYCODE.class
ClassName_languagecode_COUNTRYCODE.properties
languagecode
は、en
などのデフォルトのシステムロケールの場合以外では必須です。COUNTRYCODE
はオプションです。
ロケールを付けて getBundle
メソッドを呼び出した場合、JRun では適切なリソースクラスまたはファイルが自動的に取り込まれます。たとえば、ロケールが日本語に設定されている場合、JRun では MyResources_ja.class または MyResources_ja.properties が取り込まれます。
Web アプリケーションでリソースバンドルを使用するには、クライアントロケールを付けて ResourceBundle.getBundle
メソッドを呼び出します。次に、次の例に示すように、リソースバンドルの適切なメソッドを呼び出します。
...
ResourceBundle bundle = ResourceBundle.getBundle("Resources",request.getLocale()); <html> <head><title><%= bundle.getString("title") %></title></head> <body> <%-- ResourceBundle に基づいてすべての内容を表示します --%> <h2><%= bundle.getString("hello_message") %></h2> </body> </html> ...
リソースバンドルのプロパティファイルの内容は次のとおりです。
title=Morning Greeting
hello_message=Good Morning
例については、/samples/SERVER-INF/lib/jrun/samples/security ディレクトリ内の SampleJDBCLoginModule
を参照してください。