この章では、ADFスキンでテキストを使用する方法について説明します。異なるリソース文字列によって追加のリソース・バンドルを指定する方法に加えて、実行時にADF Facesコンポーネントがレンダリングするリソース文字列がリソース・バンドルに保存される方法などの主要概念についても説明します。
この章には次の項が含まれます:
ADFスキンのソース・ファイルには、ADF Facesコンポーネントがアプリケーションのユーザー・インタフェースにレンダリングするテキストは保存されません。ADF Facesコンポーネントをレンダリングするアプリケーションでは、これらのコンポーネントがレンダリングするテキストをリソース文字列として抽象化し、リソース文字列をリソース・バンドルに保存します。たとえば、図7-1に、OK
およびCancelのラベルが付いたボタンをレンダリングするADF Faces dialogコンポーネントを示します。
これらのボタンのラベルとして表示されるテキスト(OKおよびCancel)は、リソース・バンドルで定義され、リソース文字列によって参照されます。ボタンのラベルに表示されるテキストを変更する場合は、次のリソース文字列に代替テキストを指定することによって、表示する値を定義するリソース・バンドルを作成します。
af_dialog.LABEL_OK
af_dialog.LABEL_CANCEL
注意: 第4.3項「ADFスキン・ファイルの作成」で説明しているように、デフォルトで、新規ADFスキンの作成時にリソース・バンドル( |
特定のコンポーネントのユーザー・インタフェースに表示されるテキストを定義するリソース文字列以外に、コンポーネントに関係なく表示されるテキストを定義する様々なリソース文字列があります。これらのリソース文字列は、グローバル・リソース文字列と呼ばれます。ADF Facesコンポーネントのリソース文字列およびグローバル・リソース文字列の詳細は、Oracle ADF Facesスキン・セレクタ・タグ・リファレンス(スキニングするアプリケーションに関連するリリース)を参照してください。
ADF Facesコンポーネントでは自動変換がサポートされています。ADF Facesコンポーネントのスキンに使用されるリソース・バンドルは、28の言語に変換されます。たとえば、エンド・ユーザーがブラウザでドイツ語を使用するよう設定している場合、コンポーネント内に含まれるテキストはすべて自動的にドイツ語で表示されます。このため、新規ADFスキン用のリソース・バンドルを作成した場合は、Webアプリケーションでサポートされている他の言語に対応するそのリソース・バンドルのローカライズ済バージョンも作成する必要があります。
リソース・バンドルとリソース文字列の作成およびADF Facesコンポーネントのローカライズの詳細は、Oracle ADF FacesによるWebユーザー・インタフェースの開発(スキニングするアプリケーションに関連するリリース)の「ページの国際化およびローカライズ」を参照してください。
アプリケーションのADF Facesコンポーネントのユーザー・インタフェースにレンダリングされるデフォルトのテキスト値をオーバーライドするために、リソース・バンドルに代替テキストを入力する場合は、そのリソース・バンドルをアプリケーションに指定する必要があります。実行時に、オーバーライドするリソース文字列に対しては、リソース・バンドル内の代替テキストがアプリケーションによってレンダリングされます。オーバーライドしないリソース文字列に対しては、ベースのリソース・バンドルで定義されているテキストがレンダリングされます。たとえば、図7-4に示すADF Facesのdialogコンポーネントでは、アプリケーション開発者はaf_dialog.LABEL_OK
リソース文字列のデフォルト値であるOK
にYay
をオーバーライドし、af_dialog.LABEL_CANCEL
リソース文字列のデフォルト値は変更していません。つまり、アプリケーション開発者はリソース・バンドルのaf_dialog.LABEL_CANCEL
リソース文字列の値を定義しておらず、アプリケーションでは、このリソース文字列の値について、ベースのリソース・バンドルを参照します。
リソース・バンドルを作成する方法および文字列キーの値を定義する方法の詳細は、Oracle ADF FacesによるWebユーザー・インタフェースの開発(スキニングするアプリケーションに関連するリリース)の「ページの国際化およびローカライズ」を参照してください。
ADFスキンにリソース・バンドルを指定するには、その名前と場所を値としてtrinidad-skins.xml
ファイルのbundle-name
プロパティに追加します。
ADFスキンに追加のリソース・バンドルを指定するには、次のようにします。
「アプリケーション」ウィンドウで、アプリケーション用のtrinidad-skins.xmlファイルをダブルクリックします。デフォルトで、これはWeb Content/WEB-INFノードの下にあります。
「構造」ウィンドウで、追加のリソース・バンドルを追加するskinノードを右クリックし、「skinの中に挿入」→バンドル名を選択します。
「プロパティ」ウィンドウで、リソース・バンドルの名前と場所をbundle-name
プロパティの値として指定します。
たとえば、図7-3に示すように、プロジェクトで最初のADFスキンを作成した後にデフォルトで作成されるリソース・バンドルでは、<bundle-name>
要素の次の値が指定されます。
<bundle-name>resources.skinBundle</bundle-name>
trinidad-skins.xml
ファイルでは、bundle-name
プロパティの値として例7-1のように定義したリソース・バンドルを参照します。
例7-1 trinidad-skins.xmlでの追加のリソース・バンドルの指定
<skin> <id>skin1.desktop</id> <family>skin1</family> <extends>skyros-v1.desktop</extends> <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id> <style-sheet-name>skins/skin1/skin1.css</style-sheet-name> <bundle-name>resources.skinBundle</bundle-name> </skin>
実行時に、デフォルトのテキスト値をオーバーライドするためにリソース・バンドルに指定したテキスト値が、アプリケーションによってレンダリングされます。たとえば、Yeah
をaf_dialog.LABEL_OK
リソース文字列の値として指定し、Oops
をaf_dialog.LABEL_CANCEL
の値として指定したリソース・バンドルを定義したとします。例7-4に、これらの値を使用してラベルをレンダリングするdialog
コンポーネントを示します。