JSFでのローカライズ・リソース・バンドルの使用

JSFでローカライズ・リソース・バンドルを使用する手順は、次のとおりです。

  1. ローカライズ・メッセージおよびデータ文字列に対するキーと値のペアを含んだリソース・バンドルを作成します。ローカライズ・バンドルをアプリケーションのクラスパスに配置します。
  2. アプリケーション・ナビゲータで、「faces-config.xml」をダブルクリックしてJSF構成エディタで開きます。必要な場合は、「概要」モードに切り替えます。
  3. 「アプリケーション」をクリックし、右矢印 をクリックして「ロケール構成」を開きます。
  4. 「ロケール構成」の下にある「デフォルトのロケール」の値を入力します。「サポートされているロケール」で、「新規」をクリックして、サポートされているロケールに対するISOロケール識別子を追加します。サポートされているロケールは複数追加できます。
  5. ビジュアル・エディタで、対象のJSFページを開きます。
  6. コンポーネント・パレットで、ドロップダウン・リストから「JSF Core」を選択し、LoadBundleをページにドラッグ・アンド・ドロップします。

    リソース・バンドルのベース名、およびリクエスト・スコープで使用されるマップ変数の任意の名前を入力するためのダイアログが表示されます。

ヒント: JSFページでは、値バインディング式(例: #{bundle.key})を受け入れるどのコンポーネント・タグ属性からでもリソース・バンドル文字列を参照できます。

コード・サンプル

faces-config.xmlのコード

<faces-config>
  <application>
    <locale-config>
      <default-locale>en</default-locale>
      <supported-locale>en-us</supported-locale>
      <supported-locale>fr</supported-locale>
      <supported-locale>es</supported-locale>
    </locale-config>
  </application>
  ...
</faces-config>    

JSFページ・ファイルのコード

...
<f:loadBundle basename="model.login.ApplicationMessages" var="loginBundle"/>
<f:view>
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
      <title>Sample Application</title>
      <link href="css/mycompany.css" rel="stylesheet" media="screen"/>
    </head>
    <body>
      <H2><h:outputText value="#{loginBundle.someHeadLabel}" /></H2>      
      <h:form id="loginForm">
        <h:outputText value="#{loginBundle.useridLabel}" />        
        <h:inputText id="userid" value="#{login.userid}"  
                     required="true" size="15">
          <f:validateLength minimum="4" maximum="7"/>
        </h:inputText>
        <h:commandButton value="#{loginBundle.loginLabel} 
                           action="someBean.someMethod"} />
        ...
      </h:form>
    </body>
  </html>
</f:view>    

JSFでのローカライズ・データおよびメッセージの使用について