11 統合Excelワークブックの国際化

統合Excelワークブックの開発時に考慮する国際化の問題、リソース・バンドルの使用方法、および統合Excelワークブックのローカライズ方法について説明します。

この章の内容は次のとおりです。

統合Excelワークブックの国際化について

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ユーザー・インタフェースの開発』「ページの国際化およびローカライズ」を参照してください。

統合Excelワークブックの国際化のユース・ケースと例

国際化されたFusion Webアプリケーションの統合Excelワークブックを作成できます。国際化されたFusion Webアプリケーションの一部として統合Excelワークブックを設計すると、特定のローカル言語および文化に簡単に適応できるようになります。リソース・バンドルを使用し、実行時にエンド・ユーザーに表示されるユーザーが参照可能な文字列を変換することで、特定のローカル言語および文化に対応する統合Excelワークブックを構成できます。「ADFデスクトップ統合でのローカライズ」を参照してください。

図11-1に、日本語用に構成された統合Excelワークブックの例を示します。

図11-1 日本語の統合Excelワークブック

この図は周囲のテキストで説明しています

統合Excelワークブックの国際化の追加機能

統合Excelワークブックを国際化した後、必要に応じてワークブックを構成するための機能をさらに追加できます。次の各項では、使用可能なその他の機能について説明します。

  • セキュリティ: セキュアなFusion Webアプリケーションを使用する場合もそうでない場合も、統合Excelワークブックのセキュリティ実装について認識しておく必要があります。「統合Excelワークブックの保護」を参照してください。

  • 統合Excelワークブックの検証: Fusion Webアプリケーションおよび統合Excelワークブックに対して、サーバー・サイドおよびクライアント・サイドのデータ入力の検証を構成できます。「統合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式が、このリソース・バンドルの文字列の値を参照します。

統合Excelワークブックでのリソース・バンドルの登録方法

「リソースの編集」ダイアログを使用して要素をResourcesに追加することにより、リソース・バンドルを登録します。

始める前に:

リソース・バンドルの使用方法を理解しておくと役立ちます。「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックの国際化の追加機能」を参照してください。

リソース・バンドルを登録するには:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
  3. 「ワークブック・プロパティの編集」ダイアログでResourcesの入力フィールドの横にある参照(...)アイコンをクリックして、図11-2に示す「リソースの編集」ダイアログを表示します。

    図11-2 リソースの編集ダイアログ

    この図は周囲のテキストで説明しています
  4. リソース・バンドルの値を指定して、「OK」をクリックします。

    リソース・バンドルに指定する値の詳細は、表A-19のリソースのエントリを参照してください。

ヒント:

リソース・バンドル・クラスの登録には、ファイル拡張子を含めません。

リソース・バンドルに関する必知事項

統合Excelワークブックのリソース・バンドルに関する追加情報は、次の項を参照してください。

リソース・バンドルのタイプ

ADFデスクトップ統合は、次のタイプのリソース・バンドルの使用をサポートしています。

  • プロパティ・バンドル(.properties)

  • リスト・リソース・バンドル(.rts)

  • Xliffリソース・バンドル(.xlf)

リソース・バンドルの詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』リソース・バンドルおよびロケールの手動による定義に関する項を参照してください。

統合Excelワークブックのリソース・バンドルのキャッシング

ADFデスクトップ統合は、最初にFusion Webアプリケーションに接続するときに統合Excelワークブックが取得するリソース・バンドルからの文字列キーの値をキャッシュします。統合Excelワークブックによって以前の値がキャッシュされた後にリソース・バンドルの文字列キーの値を変更した場合、ClearAllDataワークブック・アクションが起動され、エンド・ユーザーがワークブックを閉じてから再び開くことによりFusion Webアプリケーションから変更済の値が取得されないかぎり、変更した値はワークブックに表示されません。ClearAllDataアクションの詳細は、表A-18を参照してください。

リソース・バンドルのEL式の構文

ADFデスクトップ統合では、次の例に示すように[]文字を使用して、文字列のキー名をEL式で囲む必要があります。

#{res['StringKey']}

ADFデスクトップ統合は、次の構文をサポートしていません。

#{res.StringKey}

ADFデスクトップ統合でのローカライズ

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デスクトップ統合でのローカライズ

図11-3の説明が続きます
「図11-3 ADFデスクトップ統合でのローカライズ」の説明

ADFデスクトップ統合でのローカライズの詳細は、OTNのOracle ADF Desktop Integrationローカライズに関するホワイトペーパーを参照してください。

http://www.oracle.com/technetwork/developer-tools/adf/overview/index-085534.html

サーバー・サイドのロケール設定をオーバーライドするためのFusion Webアプリケーションの構成

サーバー・サイドのローカライズは、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ワークブックの国際化の追加機能」を参照してください。

ユーザー・プリファレンス・ハンドラを登録するには:

  1. Fusion Webアプリケーションのweb.xmlファイルを開きます。
  2. 表11-2に示すように、初期化パラメータを追加して、ユーザー・プリファレンス・ハンドラを構成します。

    表11-2 ロケール・ユーザー・プリファレンスの構成

    プロパティ

    Name

    次のように初期化パラメータ名を入力します。

    UserPreferences.Handler

    Value

    ハンドラ・クラスのパスを入力します。

  3. web.xmlファイルを保存します。
  4. Fusion Webアプリケーションをリビルドして再起動します。

例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>

例11-2は、UserPreferences.Handlerが含まれるweb.xmlファイルを示します。

例11-2では、myCompany.XYZ.CustomUserPrefsHandlerはハンドラ・クラスの完全なパスです。