この章の内容は次のとおりです。
ADFデスクトップ統合には、統合Excelワークブックを国際化されたFusion Webアプリケーションの一部として提供できるようにするいくつかの特徴があります。主な特徴の1つとして、リソース・バンドルを使用して、実行時にOracle ADFコンポーネントに表示されるユーザーが参照可能な文字列のローカライズを管理します。
統合Excelワークブックでの国際化とローカライズに関して、次の点に注意してください。
国際化されたデータ
ADFデスクトップ統合では、シングルバイトとダブルバイトの両方の文字セットがサポートされています。ExcelワークシートとFusion Webアプリケーションとの間で送信されるデータを、XMLペイロードにマーシャリングします。これらのXMLペイロードでは、正規化されたフォーマットの日付、時間および数字でUTF-8エンコーディングが使用されます。
ロケール
Excelワークブックを使用するシステムのロケールにより、日付、時間および数字のフォーマットが決まります。これらの設定(システムのフォーマットとロケール)は、Fusion Webアプリケーションで使用される設定と異なる場合があります。ADFデスクトップ統合はこれらの設定を同期しませんが、データの整合性が保持されるように徹底します。ADFデスクトップ統合には、実行時に統合ExcelワークブックのOracle ADFコンポーネントの言語や表示設定をエンド・ユーザーが変更するためのメカニズムがありません。
スタイルを構成したり、統合ExcelワークブックのADFコンポーネントに適用する場合、ロケールに依存するスタイルを構成または選択してください。詳細は、「スタイルの使用」を参照してください。
Fusion Webアプリケーションの国際化の詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』の「ページの国際化およびローカライズ」の章を参照してください。
国際化されたFusion Webアプリケーションの統合Excelワークブックを作成できます。国際化されたFusion Webアプリケーションの一部として統合Excelワークブックを設計すると、特定のローカル言語および文化に簡単に適応できるようになります。リソース・バンドルを使用し、実行時にエンド・ユーザーに表示されるユーザーが参照可能な文字列を変換することで、特定のローカル言語および文化に対応する統合Excelワークブックを構成できます。詳細は、「ADFデスクトップ統合でのローカライズ」を参照してください。
図11-1に、日本語用に構成された統合Excelワークブックの例を示します。
図11-1 日本語の統合Excelワークブック
統合Excelワークブックを国際化した後、必要に応じてワークブックを構成するための機能をさらに追加できます。次の各項では、使用可能なその他の機能について説明します。
セキュリティ: セキュアなFusion Webアプリケーションを使用する場合もそうでない場合も、統合Excelワークブックのセキュリティ実装について認識しておく必要があります。詳細は、「統合Excelワークブックの保護」を参照してください。
統合Excelワークブックの検証: Fusion Webアプリケーションおよび統合Excelワークブックに対して、サーバー・サイドおよびクライアント・サイドのデータ入力の検証を構成できます。詳細は、「統合Excelワークブックへの検証の追加」を参照してください。
統合Excelワークブックの公開およびデプロイ: 統合Excelワークブックの設計と検証に続く最終ステップは、公開およびデプロイです。詳細は、「統合Excelワークブックのデプロイ」を参照してください。
ADFデスクトップ統合はリソース・バンドルを使用して、設計時と実行時にExcelワークブックのADFコンポーネントに表示される、ユーザーが参照可能な文字列を管理します。JDeveloperを使用して、リソース・バンドルをFusion Webアプリケーションで作成および管理できます。
複数のリソース・バンドルに統合Excelワークブックを登録できます。実行時に、ADFデスクトップ統合は統合Excelワークブックがワークブックの初期化中に登録されたリソース・バンドルから使用する文字列のキー値のみをダウンロードします。たとえば、リソース・バンドルAから3つの文字列のキー値を参照する統合Excelワークブックにリソース・バンドルAを登録するとします。ワークブックの初期化中、ADFデスクトップ統合は、ワークブックがリソース・バンドルAから参照する3つの文字列のキー値をダウンロードします。
注意:
統合Excelワークブックに登録するリソース・バンドルが20を超える場合、ADFデスクトップ統合は警告メッセージをログに記録します。クライアント・サイド・ロギングの詳細は、「クライアント・サイド・ロギングの概要」を参照してください。
Resources
ワークブック・プロパティは、統合Excelワークブックが使用できるリソース・バンドルを指定します。このプロパティでは、統合Excelワークブックでのリソース・バンドル(Resources
リスト)の配列を指定します。配列の各要素には、リソース・バンドルを一意に識別するプロパティ(Alias
)と、JDeveloperデスクトップ統合プロジェクトのリソース・バンドルへのパスを識別するプロパティ(Class
)があります。たとえば、ADFデスクトップ統合のSummitサンプル・アプリケーションのEditCustomers-DT.xlsx
は、Class
プロパティに対して次の値を持つres
リソース・バンドルを参照します。
oracle.summitdi.resources.UIResources
Resources
ワークブック・プロパティの詳細は、「ワークブックのアクションおよびプロパティ」を参照してください。
デフォルトでは、ADFデスクトップ統合に予約済のリソース・バンドルがあり、これが多くのコンポーネント・プロパティによって実行時に使用される文字列のキー値を提供します。ADFデスクトップ統合は、_ADFDIres
の値を使用して、このリソース・バンドルを一意に識別します。多くのEL式が、このリソース・バンドルの文字列の値を参照します。
「リソースの編集」ダイアログを使用して要素をResources
に追加することにより、リソース・バンドルを登録します。
開始する前に:
リソース・バンドルの使用方法を理解しておくと役立ちます。詳細は、「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合Excelワークブックを国際化するための追加の機能」を参照してください。
リソース・バンドルを登録するには:
ヒント:
リソース・バンドル・クラスの登録には、ファイル拡張子を含めません。
このオーバーライド可能なリソースには、ユーザーが参照可能な実行時の文字列がいくつか含まれます。これらは、ADFデスクトップ統合コンポーネントのプロパティを構成しても、置換できません。例として、図7-11に示すようなデフォルトのアップロード・ダイアログに表示される文字列があげられます。
これらのユーザーが参照可能な実行時の文字列を置換するには、ADFデスクトップ統合がサポートしている上書き可能なリソースからの文字列キーを含むFusion Webアプリケーションにリソース・バンドルを作成します。「オーバーライド可能なリソースの文字列キー」に、これらの文字列キーの一覧があります。作成したリソース・バンドルでオーバーライドする、「オーバーライド可能なリソースの文字列キー」に記載されている文字列キーの値を定義します。
開始する前に:
リソース・バンドルの使用方法を理解しておくと役立ちます。詳細は、「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合Excelワークブックを国際化するための追加の機能」を参照してください。
構成不可能なリソースをオーバーライドするには:
表E-1に、ADFデスクトップ統合でサポートされるオーバーライド可能なリソースの文字列キーを示します。オーバーライド可能なリソースの文字列キーごとに、英語の値列に記載された値に代わる値を指定します。オーバーライド可能なリソースはコンポーネント・プロパティで使用しないようにしてください。このリソースはオリジナルでの使用のみを目的としています。
ADFデスクトップ統合により、作成したリソース・バンドルで定義した表E-1に記載されている文字列キーの値が取得されます。予約済のリソース・バンドルから作成したリソース・バンドルで定義していない他の文字列キーの値が取得されます。
統合Excelワークブックのリソース・バンドルに関する追加情報は、次の項を参照してください。
リソース・バンドルのタイプ
ADFデスクトップ統合は、次のタイプのリソース・バンドルの使用をサポートしています。
プロパティ・バンドル(.properties
)
リスト・リソース・バンドル(.rts
)
Xliffリソース・バンドル(.xlf
)
リソース・バンドルの詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のリソース・バンドルおよびロケールの手動による定義に関する項を参照してください。
統合Excelワークブックのリソース・バンドルのキャッシング
ADFデスクトップ統合は、最初にFusion Webアプリケーションに接続するときに統合Excelワークブックが取得するリソース・バンドルからの文字列キーの値をキャッシュします。統合Excelワークブックによって以前の値がキャッシュされた後にリソース・バンドルの文字列キーの値を変更した場合、ClearAllData
ワークブック・アクションが起動され、エンド・ユーザーがワークブックを閉じてから再び開くことによりFusion Webアプリケーションから変更済の値が取得されないかぎり、変更した値はワークブックに表示されません。ClearAllData
ワークブック・アクションの詳細は、表A-19を参照してください。
リソース・バンドルのEL式の構文
ADFデスクトップ統合では、次の例に示すように[]
文字を使用して、文字列のキー名をEL式で囲む必要があります。
#{res['StringKey']}
ADFデスクトップ統合は、次の構文をサポートしていません。
#{res.StringKey}
ADFデスクトップ統合は、多様なテクノロジのセットを統合しています。これらのテクノロジのそれぞれが、Fusion Webアプリケーションをローカライズするときに、自然な人間の言語の選択をコントロールする様々なオプションを提供します。
エンド・ユーザーが統合Excelワークブックと対話するときには、様々な要素が関係しています。これらの要素のひとつひとつに、サポートされる言語とリソース翻訳の独自のセットがあります。こうしたシナリオでは、言語の翻訳はそれぞれのパブリッシャの役割です。
表11-1は、関係する要素および翻訳におけるそれらの役割の概要を示します。
表11-1 ローカライズの概要
ローカライズの対象 | 使用する言語の決定 |
---|---|
Microsoftオペレーティング・システム |
オペレーティング・システムの言語設定。「コントロール パネル」の「地域の設定」から言語を選択できます。 |
Microsoft Office |
Microsoft Officeの言語の設定 |
ADFデスクトップ統合のダイアログ・アクションで表示されるWebページ |
通常はMicrosoft Internet Explorerの言語設定により制御されます。 |
ADFデスクトップ統合のクライアント・リソース |
Microsoft Officeの言語の設定 |
ADFデスクトップ統合のサーバー・リソース |
Microsoft Internet Explorerの言語設定 |
ADFデスクトップ統合のカスタム・リソース・バンドル |
Microsoft Internet Explorerの言語設定 |
図11-3は、Fusion Webアプリケーションに関わる様々な要素が翻訳でどのような役割を果すかを示します。
図11-3 ADFデスクトップ統合でのローカライズ
ADFデスクトップ統合でのローカライズの詳細は、OTNのOracle ADF Desktop Integrationローカライズに関するホワイトペーパーを参照してください。
http://www.oracle.com/technetwork/developer-tools/adf/overview/index-085534.html
サーバー・サイドのローカライズは、ADFデスクトップ統合のサーバー・リソースとアプリケーション・カスタム・リソースから構成されます。デフォルトでは、ADFデスクトップ統合は、クライアント・サイドのInternet Explorerの言語プリファレンスを使用してサーバー・サイドのローカライズを決定しますが、Fusion Webアプリケーションを構成してサーバー・サイドのロケールを決定することもできます。そのためには、ユーザー・プリファレンス・ハンドラを作成し登録する必要があります。登録するには、ADFデスクトップ統合サーブレットにUserPreferences.Handler
初期化パラメータを追加します。
ユーザー・プリファレンス・ハンドラを作成するには、java.util.Locale getLocale()
シグネチャのpublicメソッドでpublic javaクラスを作成します。このシグネチャは、ADFデスクトップ統合のサーバー・サイドのリソース・ロケールを決定し、そのロケールをjava.util.Locale
オブジェクトとして返します。
例11-1に、ユーザー・プリファレンス・ハンドラの実装例を示します。
注意:
ハンドラ・クラスは、引数を持たないコンストラクタが必要です。引数を持たないコンストラクタがない場合は、デフォルトのJavaコンストラクタを使用します。
例11-1 ユーザー・プリファレンス・ハンドラの実装
public class CustomUserPrefsHandler { public Locale getLocale () { UserPref info = (UserPref) ADFContext.getCurrent().getSessionScope().map.get("User_Pref_Info"); return info.getLocale(); } }
ユーザー・プリファレンス・ハンドラを登録するには、ADFデスクトップ統合のUserPreferences.Handler
初期化パラメータをweb.xml
に追加します。
開始する前に:
リソース・バンドルの使用方法を理解しておくと役立ちます。詳細は、「ADFデスクトップ統合でのローカライズ」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合Excelワークブックを国際化するための追加の機能」を参照してください。
ユーザー・プリファレンス・ハンドラを登録するには:
例11-2 UserPreferences.Handlerが含まれるweb.xmlファイル
<servlet> <servlet-name>adfdiRemote</servlet-name> <servlet-class> oracle.adf.desktopintegration.servlet.DIRemoteServlet </servlet-class> <init-param> <param-name>UserPreferences.Handler</param-name> <param-value>myCompany.XYZ.CustomUserPrefsHandler</param-value> </init-param> </servlet>