16.3. ラベル
<f:loadBundle /> により JSF はユーザーインターフェースのラベルや説明用テキストの国際化に対応しています。 Seam アプリケーションではこの方法をとるか、 組み込みの EL 式を利用したテンプレート化ラベルの表示に Seam の messages コンポーネントを利用することができます。
16.3.1. ラベルの定義 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Seam の
java.util.ResourceBundle で利用できる国際化ラベルを org.jboss.seam.core.resourceBundle としてアプリケーションに対して使用できるようにします。 デフォルトでは、 Seam で使用されるリソースバンドルは messages の名称なので messages.properties、 messages_en.properties、 messages_en_AU.properties などの名称のファイルにラベルを定義する必要があります。 これらのファイルは通常 WEB-INF/classes ディレクトリに属します。
従って、
messages_en.properties では次のようになります。
Hello=Hello
Hello=Hello
そして、
messages_en_AU.properties では次のようになります。
Hello=G'day
Hello=G'day
org.jboss.seam.core.resourceLoader.bundleNames と呼ばれる Seam 設定プロパティを設定することで、リソースバンドルに別の名前を選択することができます。 リソースバンドル名の一覧を指定してメッセージの検索をさせる (深さ優先) こともできます。
特定のページだけにメッセージを定義したい場合は、 その JSF ビュー ID と同じ名前でリソースバンドルに指定します。 このとき ID の最初の
/ と最後の拡張子を除去します。 つまり /welcome/hello.jsp にのみメッセージを表示したいのであれば、 表示させるメッセージを welcome/hello_en.properties に配置します。
pages.xml に明示的なバンドル名を指定することもできます。
<page view-id="/welcome/hello.jsp" bundle="HelloMessages"/>
<page view-id="/welcome/hello.jsp" bundle="HelloMessages"/>
これで
HelloMessages.properties に定義されたメッセージを /welcome/hello.jsp で使うことができます。