Web アプリケーションにおけるテキストのローカライズ

Web ページが別の言語で表示されるように、ご使用の Web アプリケーションをローカライズすることができます。Web アプリケーションをローカライズするには、サポートする言語ごとにリソース・バンドル を作成する必要があります。これらのリソース・バンドルには、実行時に Web ページで表示されるストリングが含まれます。 各リソース・バンドルは人間言語に固有のものであるため、異なるリソース・バンドルに切り替えると、Web ページ上のストリングも別の言語に切り替わります。

変換可能ストリングを Web ページのテキストとして使用することができます。ここでは、こうしたストリングを Web ページで使用する際の方法の一部を紹介します。また、変換可能ストリングを Web ページのエラー・メッセージとして使用することもできます。詳しくは、Web ページでのエラー・メッセージの表示を参照してください。

出力フィールドとしての変換可能ストリングの使用

JSF フィールド (出力フィールドなど) の値として、変換可能ストリングを使用する場合、そのフィールドにバインドされた EGL 変数に、変換可能ストリングのキーを割り当てることはできません。変換可能ストリングを JSF フィールドの値として使用する場合、そのフィールドは、いかなる EGL 変数にもバインドすることはできません。代わりに、変換可能ストリングにフィールドを直接バインドすることが必要になります。 そのためには、以下のステップを実行してください。

  1. EGL Web プロジェクトの JSP ファイルで、JSF 出力コンポーネント (例えば、出力フィールドなど) を、「パレット」ビューの「拡張 Faces コンポーネント」ドロワーからページにドラッグします。
  2. フィールドをクリックして、選択します。
  3. 「プロパティー」ビューで、「値」フィールドを見つけます。 このフィールドに、コンポーネントのテキストが表示されます。
  4. 「値」フィールドの隣にある「ページ・データ・オブジェクトの選択」ボタンをクリックします。 「ページ・データ・オブジェクトの選択」ウィンドウが開きます。通常は、このウィンドウから JSF ハンドラーの変数を選択しますが、このケースでは、代わりにリソース・バンドルのストリングを使用することにします。
  5. 「ストリング・リソース」タブにジャンプします。
  6. 「プロパティー・ファイルの追加」をクリックします。
  7. 「プロパティー・ファイルの選択/作成」ウィンドウの 「既存ファイル」タブで、使用するリソース・バンドル・ファイルを選択します。 新規のリソース・バンドルを作成する場合は、「新規ファイル」タブにジャンプしてください。いずれの場合にも、リソース・バンドルの作成で説明されている、命名および配置の規則を守ってください。
  8. リソース・バンドル・ファイルの選択または作成を終えたら、そのファイルを表すニーモニックを「ファイル識別子」フィールドに入力します。デフォルトのニーモニックは labels です。 このデフォルトのニーモニックを変更する場合は、EGL Page Designer 設定で設定されたニーモニックと一致させる必要があります (Web プロジェクトの設定の変更で説明しています)。
  9. 「OK」をクリックして、「プロパティー・ファイルの選択/作成」ウィンドウを閉じます。 「ストリング・リソース」タブのテーブルに、そのファイルのストリングが表示されます。 既にファイルにあるストリングを使用することもできますし、「リソースの追加」ボタンを使用して、 新規のストリングを追加することもできます。
  10. フィールドで使用したいストリングを選択し、「OK」をクリックします。変換可能ストリングのキーが、フィールドに表示されます。ページを実行すると、サーバーはこのストリングをフィールドの値として使用します。

EGL プロパティーでの変換可能ストリングの使用

特定の EGL プロパティーの値として、変換可能ストリングを使用することもできます。 この使用例としてよく挙げられるのは、DisplayName です。

  1. プロジェクトの Java™ リソース・フォルダーの jsfhandlers パッケージに、アプリケーションで使用するストリングを保持するリソース・バンドルを作成します。 リソース・バンドルの作成を参照してください。 例えば、米国英語を使用する場合に、myBundle_en_US.properties という名前のリソース・バンドルを作成するとします。
  2. そのリソース・バンドルで、Web ページで使用するテキストのキーおよびストリング値を追加します (次のサンプルを参照)。
    myString01=Hello there!
    myString02=Welcome to my Web page.
  3. このリソース・バンドルをデフォルト・ニーモニックを使用して表すように、ワークベンチの設定を変更します。
    1. 「ウィンドウ」 > 「設定」とクリックします。
    2. 「設定」ウィンドウで「EGL」を展開し、「Page Designer」をクリックします。
    3. 「Loadbundle 変数」フィールドに、変換可能ストリングのニーモニックを入力します。デフォルトのニーモニックは labels です。 ニーモニックを変更する場合は、前述の「プロパティー・ファイルの選択/作成」ウィンドウの「ファイル識別子」フィールドで使用しているニーモニックと一致させる必要があります。
    4. 「OK」をクリックします。
  4. Web ページの JSF ハンドラーで、変数の DisplayName プロパティーまたは Help プロパティーに、Web ページで使用するテキストを表すキーを設定します。
    myFieldString string {DisplayUse = button,
        DisplayName = "%myString01",
        Action = "DoSomething"};

    % 記号 (%) が、DisplayName の値の中にあることに注意してください。 この記号は、その値をリソース・バンドルの所定のキーから取り出すよう指示するものです。

  5. JSF ハンドラーに関連付けられている JSP 上で、変数をページにドラッグします。例えば、直前の例にある変数をページにドラッグした場合、JSP で作成されるコードは次のようになります。
    <hx:commandExButton id="buttonMyFieldString1"
        styleClass="commandExButton" type="submit"
        value="#{labels.myString01}"
        actionListener="#{testResourceBundle._commandActionListener}"
        action="DoSomething"></hx:commandExButton>
    ボタンの値は、変数の名前や変数の値ではなく、(設定で入力したニーモニックと、JSF ハンドラーで使用されるキーから構成される) リソース・バンドルのストリングであることに注意してください。

    変換可能ストリングをページで使用する方法は、他にもあります。 関連ページなしで JSF ハンドラー・パーツを定義し、そのハンドラーの変数を基にして、EGL にページ作成を行わせるようにするという方法です。 Web ページの作成の『既存の JSF ハンドラー・パーツからページを作成する』を参照してください。 この方法を使用すれば、JSF ハンドラーの title プロパティーにも変換可能ストリングを使用できます。 EGL がページを作成する際、そのストリングがページのトップに明確に表示されます。

  6. JSP のコードで、次のコード行を、<f:view> コードのすぐ下に追加します。
    <f:loadBundle basename="myBundle" var="labels"/>
  7. basename 属性と var 属性の値をそれぞれ、 リソース・バンドルの接頭部とニーモニックに設定します。このサンプルでは、リソース・バンドルの名前を myBundle_locale.properties とし、デフォルトのニーモニックには labels を使用しているものとします。

    このコードは、ページ上で labels.keyname として表された変換可能ストリングを、接頭部が myBundle の名前を持つリソース・バンドル・ファイルで検出するように指定しています。 このタグの basename 属性は、リソース・バンドル・ファイル名の接頭部を指定し、var 属性は、コードで使用される変換可能ストリングの開始を指定します。

実行時における異なる言語での変換可能ストリングの使用

異なる言語の変換可能ストリングを実行時に使用するには、以下のステップを実行します。

  1. アプリケーションがサポートする言語ごとに 1 つのリソース・バンドルを作成します。 アプリケーション内の各リソース・バンドルのファイル名は、同じ接頭部を持っていなければなりません。 最初のリソース・バンドルの名前が myBundle_en_US.properties であるならば、他のリソース・バンドルの名前は myBundle で始まる必要があります。
  2. 「プロジェクト・エクスプローラー」ビューで、ファイル faces-config.xml をダブルクリックして 開きます。 このファイルは、フォルダー WebContent/WEB-INF にあります。
  3. faces-config.xml ファイルの <application> タグ内で、<locale-config> タグを追加します。
    <faces-config>
    <application>
        <locale-config>
    
        </locale-config>
    ...
    </application
    </faces-config>
  4. <locale-config> タグ内で、デフォルトのリソース・バンドルのロケールが含まれている <default-locale> タグを追加します。例えば、ご使用のアプリケーションをドイツ語で表示させるときに、ユーザーがロケールを指定していない場合、またはアプリケーションでサポートされていないロケールを指定した場合には、<locale-config> タグ内に以下のコードを追加します。
    <default-locale>de</default-locale>

    デフォルト・ロケールを指定することをお勧めしますが、必須ではありません。

  5. <default-locale> タグの後に、アプリケーションがサポートするロケールごとに <supported-locale> タグを追加します。例えば、ご使用のアプリケーションが米国英語をサポートしている場合、以下のコードを <locale-config> タグ内に追加します。
    <supported-locale>en_US</supported-locale>
    以下は、いくつかのロケールをサポートするアプリケーションからの例です。
    <faces-config>
    <application>
      <locale-config>
        <default-locale>de</default-locale>
        <supported-locale>en_US</supported-locale>
        <supported-locale>es</supported-locale>
        <supported-locale>de</supported-locale>
        <supported-locale>fr_FR</supported-locale>
        <supported-locale>it_IT</supported-locale>
        <supported-locale>pt_br</supported-locale>
      </locale-config>
    ...
    </application>	
    </faces-config>
    デフォルト・ロケールを定義する場合、そのロケールを、サポートされるロケールとしても定義する必要があります。
    注: このファイルで定義される各ロケールでは、一致するリソース・バンドルがそのロケールに定義されている必要があります。
  6. ファイルを保存して閉じます。
  7. 別の言語に設定された Web ブラウザーを使用して、アプリケーションをテストし、ストリングの相違を調べます。

フィードバック