ヘッダーをスキップ
Oracle® Fusion Middleware Oracle ADFデスクトップ統合によるアプリケーションの開発
12c (12.1.3)
E59438-01
  目次へ移動
目次

前
 
次
 

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

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

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

10.1 統合Excelワークブックの国際化の概要

ADFデスクトップ統合には、統合Excelワークブックを国際化されたFusion Webアプリケーションの一部として提供できるようにするいくつかの特徴があります。主な特徴の1つとして、リソース・バンドルを使用して、設計時にOracle ADFコンポーネントに表示されるユーザーが参照可能な文字列のローカライズを管理します。また、リソース・バンドルを使用して、実行時にこれらのコンポーネントに表示されるユーザーが参照可能な文字列も管理します。この章では、リソース・バンドルの使用についても説明します。

統合Excelワークブックでの国際化とローカライズに関して、次の点に注意してください。

Fusion Webアプリケーションの国際化の詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のページの国際化とローカライズに関する項を参照してください。

10.1.1 統合Excelワークブックの国際化のユースケースおよび例

国際化されたFusion Webアプリケーションの統合Excelワークブックを作成できます。国際化されたFusion Webアプリケーションの一部として統合Excelワークブックを設計すると、特定のローカル言語および文化に簡単に適応できるようになります。リソース・バンドルおよび他のコンポーネントを使用し、設計時および実行時にテキストを翻訳してロケール固有のコンポーネントを追加することで、特定のローカル言語および文化に対応する統合Excelワークブックを構成できます。詳細は10.3項「ADFデスクトップ統合でのローカライズ」を参照してください。

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

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

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

10.1.2 統合Excelワークブックを国際化するための追加の機能

統合Excelワークブックを国際化した後、必要に応じてワークブックを構成するための機能をさらに追加できます。使用可能な他の機能へのリンクは次のとおりです。

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

  • 統合Excelワークブックの検証: Fusion Webアプリケーションおよび統合Excelワークブックに対して、サーバー・サイドおよびクライアント・サイドの検証を構成できます。詳細は、第12章「統合Excelワークブックへの検証の追加」を参照してください。

  • 統合Excelワークブックの公開およびデプロイ: 統合Excelワークブックの設計と検証に続く最終ステップは、公開およびデプロイです。詳細は、第14章「統合Excelワークブックのデプロイ」を参照してください。

10.2 統合Excelワークブックでのリソース・バンドルの使用

ADFデスクトップ統合はリソース・バンドルを使用して、設計時と実行時にExcelワークブックのADFコンポーネントに表示される、ユーザーが参照可能な文字列を管理します。JDeveloperは、リソース・バンドルをADFデスクトップ統合プロジェクトに格納します。

統合Excelワークブックで定義する文字列を含むリソース・バンドルを最高20まで登録できます。リソース・バンドルは、1MBを超えることはできません。20を上回るリソース・バンドル、または1MBを超えるリソース・バンドルを登録しようとすると、ADFデスクトップ統合はクライアント・サイド・ログ・ファイルに警告を書き込み、追加のリソース・バンドルあるいは1MBの上限に達した後のリソース・バンドルの登録を停止します。

たとえば、リソース・バンドルAが2MBで、リソース・バンドルBが1MBの場合、ADFデスクトップ統合はリソース・バンドルAの最初の1MB分のデータと、リソース・バンドルBのすべてのデータを登録します。クライアント・サイド・ロギングの詳細は、C.3.2項「クライアント・サイド・ロギングの概要」を参照してください。

Resourcesワークブック・プロパティは、統合Excelワークブックが使用できるリソース・バンドルを指定します。このプロパティでは、統合Excelワークブックでのリソース・バンドル(Resourcesリスト)の配列を指定します。配列の各要素には、リソース・バンドルを一意に識別するプロパティ(Alias)と、JDeveloperデスクトップ統合プロジェクトのリソース・バンドルへのパスを識別するプロパティ(Class)があります。たとえば、ADFデスクトップ統合のSummitサンプル・アプリケーションのEditCustomers-DT.xlsxは、Classプロパティに対して次の値を持つresリソース・バンドルを参照します。

oracle.summitdi.resources.UIResources

Resourcesワークブック・プロパティの詳細は、A.15項「ワークブックのアクションとプロパティ」を参照してください。

デフォルトでは、ADFデスクトップ統合に予約済のリソース・バンドルがあり、これが多くのコンポーネント・プロパティによって実行時に使用される文字列のキー値を提供します。Fusion Webアプリケーションと統合するようにExcelワークブックを有効化すると、デフォルトで予約済リソース・バンドルがそのワークブックに登録されます。ADFデスクトップ統合は、_ADFDIresの値を使用して、このリソース・バンドルを一意に識別します。多くのEL式が、このリソース・バンドルの文字列の値を参照します。

別のリソース・バンドルを登録する場合、_ADFDIresリソース・バンドルから割り当てられたデフォルトの文字列のキー値を、ADFコンポーネント・プロパティの多くに置換できます。

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

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

開始する前に:

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

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

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

  1. 統合Excelワークブックを開きます。

  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。

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

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

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

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


ヒント:

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


10.2.2 構成不可能なリソースのオーバーライド方法

このオーバーライド可能なリソースには、ユーザーが参照可能な実行時の文字列がいくつか含まれます。これらは、ADFデスクトップ統合コンポーネントのプロパティを構成しても、置換できません。例として、図7-11に示すようなデフォルトのアップロード・ダイアログに表示される文字列があげられます。

これらのユーザーが参照可能な実行時の文字列を置換するには、ADFデスクトップ統合がサポートしているオーバーライド可能なリソースからの文字列キーを含むFusion Webアプリケーションにリソース・バンドルを作成します。付録E「オーバーライド可能なリソースの文字列キー」に、これらの文字列キーの一覧があります。作成したリソース・バンドルでオーバーライドする、付録Eに記載されている文字列キーの値を定義します。

開始する前に:

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

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

構成不可能なリソースをオーバーライドするには:

  1. Fusion Webアプリケーションにリソース・バンドルを作成します。

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

  2. 付録E「オーバーライド可能なリソースの文字列キー」に記載された文字列キーのリソース・バンドルに、実行時に表示する文字列のキー値を定義します。

  3. 手順1で作成したリソース・バンドルを登録する際に、_ADFDIresAliasプロパティの値に設定します。

    リソース・バンドルの登録方法の詳細は、10.2.1項「統合Excelワークブックでのリソース・バンドルの登録方法」を参照してください。

表E-1に、ADFデスクトップ統合でサポートされるオーバーライド可能なリソースの文字列キーを示します。オーバーライド可能なリソースの文字列キーごとに、英語の値列に記載された値に代わる値を指定します。上書き可能なリソースはコンポーネント・プロパティで使用しないようにしてください。このリソースはオリジナルでの使用のみを目的としています。

10.2.3 実行時の処理: 構成不可能なリソースのオーバーライド

ADFデスクトップ統合により、作成したリソース・バンドルで定義した表E-1に記載されている文字列キーの値が取得されます。予約済のリソース・バンドルから作成したリソース・バンドルで定義していない他の文字列キーの値が取得されます。

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

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

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

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

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

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

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

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

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

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

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

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

#{res['StringKey']}

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

#{res.StringKey}

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

ADFデスクトップ統合は、多様なテクノロジのセットを統合しています。これらのテクノロジのそれぞれが、Fusion Webアプリケーションをローカライズするときに、自然な人間の言語の選択をコントロールする様々なオプションを提供します。

エンド・ユーザーが統合Excelワークブックと対話するときには、様々な要素が関係しています。これらの要素のひとつひとつに、サポートされる言語とリソース翻訳の独自のセットがあります。こうしたシナリオでは、言語の翻訳はそれぞれのパブリッシャの役割です。

表10-1は、関係する要素および翻訳におけるそれらの役割の概要を示します。

表10-1 ローカライズの概要

ローカライズの対象 使用する言語の決定

Microsoftオペレーティング・システム

オペレーティング・システムの言語設定。「コントロール パネル」の「地域の設定」から言語を選択できます。

Microsoft Office

Microsoft Officeの言語の設定

ADFデスクトップ統合のダイアログ・アクションで表示されるWebページ

通常はMicrosoft Internet Explorerの言語設定により制御されます。

ADFデスクトップ統合のクライアント・リソース

Microsoft Officeの言語の設定

ADFデスクトップ統合のサーバー・リソース

Microsoft Internet Explorerの言語設定

ADFデスクトップ統合のカスタム・リソース・バンドル

Microsoft Internet Explorerの言語設定


図10-3は、Fusion Webアプリケーションに関わる様々な要素が翻訳でどのような役割を果すかを示します。

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

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

ADFデスクトップ統合でのローカライズの詳細は、OTNの『Oracle ADF Desktop Integration Localization whitepaper』を参照してください。

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

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

サーバー・サイドのローカライズは、ADFデスクトップ統合のサーバー・リソースとアプリケーション・カスタム・リソースから構成されます。デフォルトでは、ADFデスクトップ統合は、クライアント・サイドのInternet Explorerの言語プリファレンスを使用してサーバー・サイドのローカライズを決定しますが、Fusion Webアプリケーションを構成してサーバー・サイドのロケールを決定することもできます。そのためには、ユーザー・プリファレンス・ハンドラを作成し登録する必要があります。登録するには、ADFデスクトップ統合サーブレットにUserPreferences.Handler初期化パラメータを追加します。

10.3.1.1 ユーザー・プリファレンス・ハンドラの作成方法

ユーザー・プリファレンス・ハンドラを作成するには、java.util.Locale getLocale()シグネチャのpublicメソッドでpublic javaクラスを作成します。このシグネチャは、ADFデスクトップ統合のサーバー・サイドのリソース・ロケールを決定し、そのロケールをjava.util.Localeオブジェクトとして返します。

例10-1に、ユーザー・プリファレンス・ハンドラの実装例を示します。

例10-1 ユーザー・プリファレンス・ハンドラの実装

public class CustomUserPrefsHandler 
{
  public Locale getLocale ()
  {
    UserPref info = (UserPref) 
           ADFContext.getCurrent().getSessionScope().map.get("User_Pref_Info");
    return info.getLocale();
  }
}

注意:

ハンドラ・クラスは、引数を持たないコンストラクタが必要です。引数を持たないコンストラクタがない場合は、デフォルトのJavaコンストラクタを使用します。


10.3.1.2 ユーザー・プリファレンス・ハンドラの登録方法

ユーザー・プリファレンス・ハンドラを登録するには、ADFデスクトップ統合のUserPreferences.Handler初期化パラメータをweb.xmlに追加します。

開始する前に:

リソース・バンドルの使用方法を理解しておくと役立ちます。詳細は10.3項「ADFデスクトップ統合でのローカライズ」を参照してください。

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

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

  1. Fusion Webアプリケーションのweb.xmlファイルを開きます。

  2. 表10-2に示すように、初期化パラメータを追加して、ユーザー・プリファレンス・ハンドラを構成します。

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

    プロパティ

    Name

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

    UserPreferences.Handler

    Value

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


  3. web.xmlファイルを保存します。

  4. Fusion Webアプリケーションをリビルドして再起動します。

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

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

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