ResourceBundle の使用

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 を参照してください。