ヘッダーをスキップ
Oracle Database Application Expressユーザーズ・ガイド
リリース3.0
E05699-01
  目次
目次
索引
索引

前へ
前へ
 
次へ
次へ
 

14 アプリケーションのグローバリゼーションの管理

このセクションでは、アプリケーション・ビルダーで構築したアプリケーションを翻訳する方法を説明します。

このセクションの内容は次のとおりです。

アプリケーションの翻訳およびグローバリゼーション・サポートについて

アプリケーション・ビルダーで、同時に異なる言語で実行可能なアプリケーションを開発できます。1つのOracle DatabaseインスタンスとOracle Application Expressで、異なる言語をサポートするようにカスタマイズされた複数のデータベース・セッションをサポートできます。

一般的に、アプリケーション・ビルダーで構築したアプリケーションの翻訳は、次のようなステップになります。

このセクションの構成は次のとおりです。

言語の指定について

アプリケーションの作成後、グローバリゼーション属性の編集ページで言語プリファレンスを指定します。次にグローバリゼーション属性の編集ページで、プライマリ・アプリケーションの言語を選択し、Application Expressエンジンによるアプリケーション言語の決定方法を決定します。ユーザーのブラウザの言語プリファレンス、アプリケーション・プリファレンスまたはアイテム・プリファレンスに基づいてアプリケーション言語を指定できます。

アプリケーション・ビルダーで構築したアプリケーションの翻訳ルール

次のルールを使用して、使用する翻訳のバージョンを決定します。

  • ユーザーの言語設定に完全一致する言語コードの翻訳済アプリケーションを検索します。

  • 部分一致を検索します。つまり、言語およびロケールが存在するかどうかを確認します。 たとえば、ユーザーの言語設定がen-usで、en-usの翻訳済バージョンが存在しない場合は、言語コードがenの翻訳済アプリケーションを検索します。

  • プライマリのアプリケーションを使用します。

たとえば、プライマリ言語がドイツ語(de)のアプリケーションを作成し、言語コードがen-usの翻訳済バージョンを作成すると想定します。ユーザーがブラウザ言語en-usを使用してこのアプリケーションにアクセスすると、英語(en-us)バージョンのアプリケーションが実行されます。ユーザーがブラウザ言語en-gbを使用してこのアプリケーションにアクセスすると、アプリケーションがプライマリ言語(つまりドイツ語)で表示されます。この例では、enのすべてのバリエーションに対応するために、言語コードenを使用して英語に翻訳されたバージョンを作成する必要があります。

翻訳済アプリケーションのレンダリング方法

Oracle Application Expressがアプリケーションの言語を決定した後、Application Expressエンジンは、特定のページ・リクエストに対してデータベース言語を変更します。その後、適切な言語に翻訳されたアプリケーションを検索します。その言語を検出すると、その定義を使用してアプリケーションをレンダリングします。それ以外の場合は、ベース(プライマリ)のアプリケーション言語でアプリケーションをレンダリングします。

アプリケーション内に表示されるテキストは、すぐには翻訳されないことに注意してください。Oracle Application Expressは、ベース言語アプリケーション定義または代替アプリケーション定義のいずれかから動的にページ属性を収集します。

翻訳可能なコンポーネントについて

Application Builderでアプリケーションを作成する際、フィールド・ラベル、リージョン・ヘッダー、ページ・ヘッダー・テキストなど、多数の宣言的な属性を定義します。このセクションで説明するステップを使用して、アプリケーション内のすべてのアプリケーション定義属性を翻訳可能にできます。

メッセージの翻訳をサポートするショートカットについて

Application Builderには、翻訳可能なメッセージを参照できる2つのタイプのショートカットがあります。

  • メッセージ: 翻訳可能なメッセージを実行時に参照するには、このショートカットを使用します。ショートカット名は、対応するメッセージ名と一致している必要があります。実行時、ショートカット名は、現在の言語に翻訳可能なメッセージのテキストに拡張されます。

  • JavaScriptにより一重引用符がエスケープされたメッセージ: JavaScriptリテラル文字列内部のショートカットを参照し、実行時に翻訳可能なメッセージを参照するには、このショートカットを使用します。このショートカットは、テキスト文字列を定義します。ショートカットが参照されると、JavaScriptに必要な一重引用符がエスケープされます。

メッセージについて

アプリケーションにPL/SQLリージョンまたはPL/SQLプロセスが含まれている場合には、生成されるHTMLまたはテキストを翻訳する必要がある場合があります。また、Oracle Application Expressが翻訳されている10の言語以外の言語をアプリケーションで使用する場合、レポートで使用されているメッセージの翻訳が必要な場合もあります。

テキスト文字列の動的翻訳について

動的翻訳は、実行時に翻訳する必要があるデータベース・データに使用されます。たとえば、動的翻訳を使用して、データベース問合せに基づくLOVを翻訳する場合があります。動的翻訳は、翻訳元の言語文字列、言語コードおよび翻訳先の文字列で構成されています。また、APEX_LANG.LANG APIを使用して、動的翻訳をプログラム的に取得できます。

リージョン・タイトルの翻訳について

デフォルトでは、ページ・リージョン・タイトルは、生成された翻訳ファイルに含まれます。ただし、リージョン・タイトルは、翻訳不可と指定できます。

リージョン・タイトルを翻訳不可と指定するには、次のステップを実行します。

  1. ページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

  2. ページ定義で、リージョン・タイトルをクリックします。

    「リージョンの編集」ページが表示されます。

  3. 「タイトルを翻訳から除外」チェック・ボックスを選択します。

翻訳テンプレートについて

デフォルトでは、テンプレートは翻訳可能ではないため、生成された翻訳ファイルには含まれません。通常、テンプレートには翻訳可能なテキストを含めません。ただし、テンプレートを翻訳可能として指定する必要がある場合は、ページ・テンプレートの編集ページで、「翻訳可能」チェック・ボックスを選択します。

テンプレートを翻訳可能として指定するには、次のステップを実行します。

  1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

  2. アプリケーションを選択します。

  3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

  4. 「ユーザー・インタフェース」で、「テンプレート」を選択します。

    「テンプレート」ページが表示されます。

  5. 編集するテンプレートを検索して、テンプレート名を選択します。

  6. 「名前」の下で「翻訳可能」を選択します。

静的置換文字列を使用して翻訳可能なテキストを定義することで、翻訳可能なテキストをアプリケーション・レベルで含めることができます。アプリケーション・レベル属性は翻訳されるため、静的置換文字列として定義された任意のテキストは、生成された翻訳ファイルに含まれます。

アプリケーションへのプライマリ言語の指定

グローバリゼーション属性は、Application Expressエンジンによるアプリケーションのプライマリ言語の決定方法を指定します。

グローバリゼーション属性を編集するには、次のステップを実行します。

  1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

  2. アプリケーションを選択します。

  3. 「共有コンポーネント」をクリックします。

  4. 「グローバリゼーション」で、「属性の編集」をクリックします。

  5. 「アプリケーションのプライマリ言語」から、アプリケーションが開発されている言語を選択します。

  6. 「アプリケーション言語の派生元」から、Application Expressエンジンによるアプリケーション言語の決定(派生)方法を指定します。表14-1に、使用可能なオプションを示します。

    表14-1 アプリケーション言語の派生元オプション

    オプション 説明

    NLSなし(アプリケーションは翻訳されない)

    このオプションは、アプリケーションが翻訳されない場合に選択します。

    アプリケーションのプライマリ言語を使用

    アプリケーションのプライマリ言語属性に基づいて、アプリケーションのプライマリ言語を決定します(ステップ5を参照)。

    ブラウザ(ブラウザの言語プリファレンスを使用)

    ユーザーのブラウザの言語設定に基づいて、アプリケーションのプライマリ言語を決定します。

    アプリケーション・プリファレンス(FSP_LANGUAGE_PREFERENCEを使用)

    APEX_UTIL.SET_PREFERENCE APIを使用して定義された値に基づいて、アプリケーションのプライマリ言語を決定します。選択した言語プリファレンスを複数のログインで維持するには、このオプションを選択します。

    参照: 「SET_PREFERENCEプロシージャ」

    アイテム・プリファレンス(プリファレンスを含むアイテムを使用)

    FSP_LANGUAGE_PREFERENCEと呼ばれるアプリケーション・レベル・アイテムに基づいて、アプリケーションのプライマリ言語を決定します。このオプションを使用すると、ログインするたびにOracle Application Expressで適切な言語設定を決定する必要があります。


アイテムの書式マスクの使用

Application Expressエンジンは、レンダリングされた各ページにグローバリゼーション設定を適用します。デフォルトの動作は、数字や日付などの特定のアイテムの表示に影響する可能性があります。

たとえば、ユーザーのブラウザの言語設定に基づいて、アプリケーション言語を決定するとします。Application Expressエンジンが、ユーザーのブラウザの言語設定をフランス語と決定した場合、日付および数字は、フランス語の標準に合せた書式で表示されます。書式マスクを適用することによって、このデフォルトの動作をオーバーライドし、アイテムの表示方法を明示的に制御できます。「表示形式」リストから選択して、書式マスクを適用します。

  • アイテム作成時

  • アイテム属性を編集してアイテムを作成した後

次のステップでは、データベース列のソース・タイプを持つアイテムの属性の編集方法を説明します。

アイテム属性を編集するには、次のステップを実行します。

  1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

  2. アプリケーションを選択します。

  3. ページを選択します。

    ページ定義が表示されます。

  4. 「アイテム」で、アイテム名を選択します。

    ページ・アイテムの編集ページが表示されます。

  5. 「名前」の下で、「表示形式」リストから選択します。

  6. 「ソース」の下で書式マスクを選択または入力します。


参照:

アイテム属性については、「アイテム」を参照してください。

マルチバイト言語用のアプリケーション翻訳

アプリケーションを複数の言語(中国語と日本語など)で同時に実行する必要がある場合、すべての言語をサポートするキャラクタ・セットを使用してデータベースを構成することを検討してください。同じキャラクタ・セットは、mod_plsqlの対応するデータベース・アクセス記述子(DAD)で構成する必要があります。UTF8およびAL32UTF8は、ほぼすべての言語をサポートするために使用できるキャラクタ・セットです。

翻訳プロセスの理解

アプリケーション・ビルダーで開発したアプリケーションを翻訳するには、プライマリおよびターゲット言語をマップし、テキストを翻訳ファイルにシードおよびエクスポートし、テキストを翻訳し、翻訳ファイルを適用し、翻訳済アプリケーションを公開する必要があります。

このセクションの構成は次のとおりです。

ステップ1: ターゲット言語のマップ

アプリケーション翻訳の最初のステップは、プライマリおよびターゲットのアプリケーション言語をマップすることです。プライマリ・アプリケーションは、翻訳されるアプリケーションです。ターゲット・アプリケーションは、翻訳結果のアプリケーションです。

プライマリおよびターゲットのアプリケーション言語をマップするには、次のステップを実行します。

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。

      アプリケーションの翻訳ページが表示されます。

  2. 「翻訳されたアプリケーションにプライマリ言語アプリケーションをマップ」をクリックします。

    「アプリケーション・マッピング」ページが表示されます。

  3. 「作成」をクリックします。

  4. 「翻訳アプリケーション・マッピング」ページで、次のステップを実行します。

    • 翻訳アプリケーション: ターゲット・アプリケーションを識別する数値のアプリケーションIDを入力します。翻訳済アプリケーションIDは整数である必要があり、末尾は0(ゼロ)以外の整数にする必要があります。

    • 翻訳アプリケーション言語コード: 翻訳先となる言語を選択します。

    • イメージ・ディレクトリ: イメージの取得元となるディレクトリを入力します。

      この属性は、翻訳されたイメージの仮想パスを指定します。たとえば、プライマリ言語アプリケーションのイメージ接頭辞が/i/の場合、ドイツ語には/i/de/、スペイン語には/i/es/のように、その他の言語の仮想ディレクトリを追加で定義できます。

      この言語特定のイメージ・ディレクトリは通常、ほとんどの翻訳済アプリケーションに必要がないことに注意してください。

  5. 「作成」をクリックします。

ステップ2: 翻訳ファイルへのテキストのシードおよびエクスポート

2番目のステップでは、翻訳表をシードし、翻訳テキストを翻訳ファイルにエクスポートします。

このセクションの構成は次のとおりです。

翻訳可能なテキストのシード

翻訳のシードにより、すべての翻訳可能なテキストが翻訳テキスト・リポジトリにコピーされます。言語を指定して翻訳テキストをシードすると、翻訳用のXLIFFファイルを生成してエクスポートできます。

シード・プロセスでは、プライマリ言語アプリケーションと翻訳テキスト・リポジトリの同期がとられます。プライマリ言語アプリケーションを変更するたびに、シード・プロセスを実行する必要があります。

翻訳可能なテキストをシードするには、次のステップを実行します。

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。

      アプリケーションの翻訳ページが表示されます。

  2. 「アプリケーションの翻訳」ページで、「アプリケーションの翻訳テキストを翻訳ファイルにシードおよびエクスポート」を選択します。

  3. 「言語マッピング」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。

  4. 翻訳可能なテキストのシード」をクリックします。

    「XLIFFのエクスポート」ページが表示されます。


    注意:

    XLIFF(XML Localization Interchange File Format)は、ローカリゼーション・データを変換するためのXMLベースのフォーマットです。XLIFFについて、またはXLIFF仕様を確認するには、次のURLを参照してください。
    http://www.xliff.org
    

翻訳ファイルへのテキストのエクスポート

翻訳可能なテキストをシードすると、XLIFFのエクスポート・ページの上部のステータス・ボックスに、翻訳が必要な場合のある属性の合計数と次の項目の数が表示されます。

  • 翻訳が必要な可能性のある既存の更新済属性

  • 翻訳が必要な可能性のある新しい属性

  • 翻訳が不要になった削除済属性

この情報を使用して、アプリケーション全体の翻訳可能なテキストをエクスポートするか、特定のページの翻訳可能なテキストをエクスポートするかを判断できます。

XLIFFのエクスポート・ページは、2つのセクションに分かれています。アプリケーション全体(すべてのページ、LOV、メッセージなど)の翻訳可能なテキストをエクスポートするには、ページの上のセクションを使用します。特定のページの翻訳可能なテキストをエクスポートするには、下のセクションを使用します。

アプリケーション全体の翻訳可能なテキストのエクスポート

アプリケーション全体の翻訳可能なテキストをエクスポートするには、次のステップを実行します。

  1. 翻訳可能なテキストをシードします。「翻訳可能なテキストのシード」を参照してください。

  2. XLIFFのエクスポート: ステップ2、XLIFFのエクスポート」で、次のステップを実行します。

    1. 「アプリケーション」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。

    2. XLIFFターゲット要素を含めるかどうかを指定します。

    3. 「エクスポート」で、XLIFFファイルに含める翻訳テキストを指定します。

    4. アプリケーションのXLIFFファイルのエクスポート」をクリックします。

  3. 画面に表示されるステップに従います。

特定のページの翻訳可能なテキストのエクスポート

特定のページの翻訳可能なテキストをエクスポートするには、次のステップを実行します。

  1. 「翻訳可能なテキストのシード」のとおり、翻訳可能なテキストをシードします。

  2. 特定ページのXLIFFのエクスポート」で、次のステップを実行します。

    1. 「アプリケーション」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。

    2. XLIFFターゲット要素を含めるかどうかを指定します。

    3. 「エクスポート」で、XLIFFファイルに含める翻訳テキストを指定します。

    4. ページのXLIFFファイルのエクスポート」をクリックします。

  3. 画面に表示されるステップに従います。

含まれるXLIFFターゲット要素について

Oracle Application ExpressがXLIFFドキュメントを生成すると、各ドキュメントには複数の翻訳単位が含まれます。各翻訳単位は、ソース要素とターゲット要素で構成されます。XLIFFドキュメントは、各翻訳単位ごとのソースおよびターゲットの両方の要素で生成できます。生成するファイルにソース要素のみを含めることもできます。更新された翻訳は、翻訳単位のターゲット要素から適用されます。

エクスポートについて

「エクスポート」の下のオプションを使用して、XLIFFファイルに含める翻訳テキストを指定します。アプリケーションのすべての翻訳テキストを含めるには、「すべての翻訳可能な要素」を選択します。また、まだ翻訳されていない新しい要素のみを含めるには、「翻訳が必要な要素のみ」を選択します。「翻訳が必要な要素のみ」では、新規または変更された翻訳単位を含むXLIFFファイルが生成されます。また、翻訳単位が意図的に翻訳されなかった(つまり、翻訳要素のソースが翻訳要素のターゲットと同じである)場合は、これらの翻訳単位もそのファイルに含まれます

ステップ3: XLIFFファイルの翻訳

翻訳可能なファイルをXLIFFフォーマットにエクスポートすると、これを適切な言語に翻訳できます。XLIFFは翻訳のためのオープン標準のXMLファイルであるため、ほとんどの翻訳ベンダーでサポートされています。Oracle Application Expressは、UTF-8キャラクタ・セットでエンコードされたXLIFFファイルのみをサポートしています。つまり、Oracle Application Expressでは、翻訳用のXLIFFファイルはUTF-8でエクスポートされ、翻訳済XLIFFファイルも同じキャラクタ・セットであることを前提としています。

翻訳は時間のかかるタスクです。Oracle Application Expressでは、アプリケーション開発と翻訳を並行して行えるように、増分的な翻訳をサポートしています。XLIFFファイルの一部のみが翻訳されている場合でも、ファイルを翻訳してOracle Application Expressにアップロードできます。対応する翻訳済アプリケーションに翻訳がない文字列の場合、Oracle Application Expressは、プライマリ言語の対応する文字列を使用します。


参照:

XLIFFの詳細またはXLIFF仕様を確認するには、次のURLを参照してください。
http://www.xliff.org

ステップ4: 翻訳済XLIFFドキュメントのアップロードおよび適用とアプリケーションの公開

XLIFFドキュメントの翻訳後に、ドキュメントをアップロードして適用します。

このセクションの構成は次のとおりです。

翻訳済XLIFFドキュメントのアップロード

翻訳済XLIFFドキュメントをアップロードするには、次のステップを実行します。

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。

      アプリケーションの翻訳ページが表示されます。

  2. 「翻訳ファイルを適用して公開」をクリックします。

  3. XLIFFのアップロード」をクリックします。

  4. 「XLIFFのアップロード」ページで、次のステップを実行します。

    1. タイトルを指定します。

    2. 説明を入力します。

    3. 「参照」をクリックし、アップロードするファイルを指定します。

    4. XLIFFファイルのアップロード」をクリックします。

    アップロードされたドキュメントが、XLIFFファイル・リポジトリに表示されます。

アップロードしたXLIFFドキュメントの適用およびアプリケーションの公開

XLIFFドキュメントをアップロードした後、そのXLIFFドキュメントを適用して翻訳済アプリケーションを公開します。XLIFFドキュメントを適用すると、Application Expressエンジンはファイルを解析して、翻訳表を新しい翻訳可能なテキストで更新します。

アプリケーションを公開すると、ベース言語のアプリケーションのコピーが作成され、翻訳表の翻訳されたテキスト文字列が置換されます。その後、この公開されたアプリケーションを使用して、代替言語でアプリケーションをレンダリングできます。

アプリケーションを代替言語で実行するには、代替言語バージョンで表示するようにグローバリゼーション設定を行ってアプリケーションを実行する必要があります。たとえば、言語がブラウザ言語に従う場合は、ブラウザ言語を翻訳済アプリケーションと同じ言語に設定する必要があります。

翻訳済XLIFFドキュメントを適用してアプリケーションを公開するには、次のステップを実行します。

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。

      アプリケーションの翻訳ページが表示されます。

  2. 「翻訳ファイルを適用して公開」をクリックします。

  3. XLIFFファイル・リポジトリで、公開するドキュメントの横にある「ビュー」アイコンをクリックします。

  4. 「適用」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。

  5. XLIFF翻訳ファイルの適用」をクリックします。

  6. アプリケーションのパブリッシュ」をクリックします。

アップロードしたXLIFFドキュメントの削除

アップロードしたXLIFFドキュメントを削除するには、次のステップを実行します。

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。

      アプリケーションの翻訳ページが表示されます。

  2. 「アプリケーションの翻訳」ページで、「翻訳ファイルを適用して公開」を選択します。

  3. XLIFFファイル・リポジトリで、そのドキュメント・タイトルの左のチェック・ボックスを選択します。

  4. チェックした項目の削除」をクリックします。

アプリケーションを公開した後、翻訳済アプリケーションの有無を確認する必要があります。翻訳済アプリケーションは、アプリケーション・ビルダーのホームページの「選択可能なアプリケーション」リストには表示されません。かわりに、そのページの左側のアプリケーション・ナビゲート・リストを使用します。

翻訳済アプリケーションをアプリケーション・ビルダーに表示するには、アプリケーションのグローバリゼーション属性を正しく設定する必要があります。

翻訳の手動編集

ターゲット言語をマップし、翻訳可能なテキストをシードした後は、手動で翻訳を編集できます。

手動で翻訳を編集するには、次のステップを実行します。

  1. ターゲット言語をマップします。「ステップ1: ターゲット言語のマップ」を参照してください。

  2. 翻訳可能なテキストをシードします。「翻訳可能なテキストのシード」を参照してください。

  3. 翻訳可能なテキスト・ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。

  4. 「翻訳ユーティリティ」リストから、「翻訳の手動編集」をクリックします。

    翻訳可能なテキスト・ページが表示されます。ページ上部の「ナビゲーション・バー」を使用してレポート表示を変更します。使用可能なオプションは次のとおりです。

    • 言語のマッピング: 言語のマッピングを選択し、「実行」をクリックします。

    • ページ: ページ番号を入力し、「実行」をクリックします。

    • 翻訳: 大/小文字を区別しない問合せを入力し、「実行」をクリックします。

    • 表示: 表示する行数を選択し、「実行」をクリックします。

  5. 翻訳可能なテキストを編集するには、「編集」アイコンをクリックします。

    「翻訳可能なテキスト」フィールドが表示されます。

  6. 適切なテキストを編集し、「変更の適用」をクリックします。

メッセージの翻訳

アプリケーションが次に当てはまる場合、メッセージを翻訳する必要があることがあります。

このセクションの構成は次のとおりです。

PL/SQLプロシージャで使用されるメッセージの翻訳

アプリケーションにPL/SQLリージョンまたはPL/SQLプロセスが含まれる場合、あるいはアプリケーションがPL/SQLパッケージ、プロシージャ、またはファンクションをコールする場合は、生成されるHTMLを翻訳する必要がある場合があります。最初に、翻訳可能なメッセージ・ページで、各メッセージを定義します。次に、APEX_LANG.MESSAGE APIを使用して、PL/SQLストアド・プロシージャ、ファンクション、トリガーまたはパッケージ化されたプロシージャおよびファンクションのメッセージを翻訳します。

翻訳可能なメッセージ・ページで、翻訳可能なメッセージを作成します。

新しい翻訳メッセージを定義するには、次のステップを実行します。

  1. アプリケーション・アイテムの作成/編集ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「テキスト・メッセージ」をクリックします。

  2. メッセージの翻訳ページで、「作成」をクリックします。

  3. 「テキスト・メッセージを指定」で次を指定します。

    1. 名前: メッセージを識別するための名前を入力します。

    2. 言語: メッセージが使用される言語を選択します。

    3. テキスト: テキスト・メッセージがコールされたときに戻されるテキストを入力します。

      たとえば、メッセージGREETING_MSGを次のように英語で定義できます。

      Good morning %0
      

      また、メッセージGREETING_MSGを次のようにドイツ語で定義できます。

      Guten Tag %0
      
  4. 「作成」をクリックします。

APEX_LANG.MESSAGE APIについて

PL/SQLストアド・プロシージャ、ファンクション、トリガー、パッケージ化されたプロシージャおよびファンクションから生成されたテキスト文字列(メッセージ)を翻訳するには、APEX_LANG.MESSAGE APIを使用します。

構文

APEX_LANG.MESSAGE (
    p_name    IN    VARCHAR2 DEFAULT NULL,
    p0        IN    VARCHAR2 DEFAULT NULL,
    p1        IN    VARCHAR2 DEFAULT NULL,
    p2        IN    VARCHAR2 DEFAULT NULL,
    ...
    p9        IN    VARCHAR2 DEFAULT NULL,
    p_lang    IN    VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;

パラメータ

表14-2に、 APEX_LANG.MESSAGE APIで使用可能なパラメータを示します。

表14-2 APEX_LANG.MESSAGEのパラメータ

パラメータ 説明

p_name

Oracle Application Expressで定義されたメッセージの名前。

p0

...

p9

動的置換値。p0は、メッセージの0%に対応します。p1は、メッセージの1%に対応します。p2は、メッセージの2%に対応します(以降同様)。

p_lang

取得されるメッセージの言語コード。指定しない場合、Oracle Application Expressは、アプリケーション言語の派生元属性で定義されているとおり、ユーザーの現行の言語を使用します。

参照: 「アプリケーションへのプライマリ言語の指定」


次の例では、アプリケーションのGREETING_MSGというメッセージを、英語でGood morning%0、ドイツ語でGuten Tag%1と定義したと仮定しています。この例は、PL/SQLからこのメッセージを呼び出す方法を示しています。

BEGIN
    --
    -- Print the greeting
    --
    APEX_LANG.MESSAGE('GREETING_MSG', V('APP_USER'));
END;

p_lang属性の定義は、Application Expressエンジンがアプリケーションのプライマリ言語を導出する方法によって異なります。たとえば、アプリケーションをドイツ語で実行中で、前回のコールがAPEX_LANG.MESSAGE APIに対して行われた場合、Application Expressエンジンは、最初にLANG_CODEdeであるGREETING_MSGというメッセージを検索します。見つからない場合は、アプリケーションのプライマリ言語属性に戻ります。それでも見つからない場合、Application Expressエンジンは、言語コードがen-usであるこの名前のメッセージを検索します。


参照:

アプリケーションのプライマリ言語属性については、「アプリケーションへのプライマリ言語の指定」を参照してください。

Application Expressにより内部使用されるメッセージの翻訳

Oracle Application Expressはドイツ語、スペイン語、フランス語、イタリア語、日本語、韓国語、ポルトガル語(ブラジル)、簡体字中国語、および繁体字中国語に翻訳されています。これらの翻訳された10言語以外の言語をアプリケーションで使用する場合は、Application Expressレポート・エンジンによって表示されるメッセージを翻訳する必要があります。

たとえば、ロシア語のアプリケーションを開発してロシア語のレポート・メッセージ(ページ区切りなど)を使用する場合は、レポートに表示されるメッセージで使用される文字列を翻訳する必要があります。

メッセージを翻訳するには、次のステップを実行します。

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「テキスト・メッセージ」をクリックします。

  2. メッセージの翻訳ページで、「作成」をクリックします。

  3. 「テキスト・メッセージを指定」で次を指定します。

    1. 名前: 翻訳する必要のある各メッセージの名前を入力します。表14-3を参照してください。

    2. 言語: メッセージが使用される言語を選択します

    3. テキスト: テキスト・メッセージがコールされたときに戻されるテキストを入力します。英語のテキスト・メッセージに定位置の置換値(%0%1など)が含まれている場合、ユーザー定義のメッセージにも同じ名前と数字の定位置の置換値を含めてください。

  4. 「作成」をクリックします。

表14-3に、翻訳が必要な内部メッセージを示します。

表14-3 翻訳が必要な内部メッセージ

メッセージ名 英語のテキスト

FLOW.SINGLE_VALIDATION_ERROR

1 error has occurred

FLOW.VALIDATION_ERROR

%0 errors have occurred

OUT_OF_RANGE

Invalid set of rows requested, the source data of the report has been modified

PAGINATION.NEXT

Next

PAGINATION.NEXT_SET

Next Set

PAGINATION.PREVIOUS

Previous

PAGINATION.PREVIOUS_SET

Previous Set

REPORT_TOTAL

report total

RESET

reset pagination

SINCE_DAYS_AGO

%0 days ago

SINCE_HOURS_AGO

%0 hours ago

SINCE_MINUTES_AGO

%0 minutes ago

SINCE_MONTHS_AGO

%0 months ago

SINCE_SECONDS_AGO

%0 seconds ago

SINCE_WEEKS_AGO

%0 weeks ago

SINCE_YEARS_AGO

%0 years ago

TOTAL

Total

WWV_FLOW_UTILITIES.CAL

Calendar

WWV_FLOW_UTILITIES.CLOSE

Close

WWV_FLOW_UTILITIES.OK

Ok

WWV_RENDER_REPORT3.FOUND_BUT_NOT_DISPLAYED

Minimum row requested: %0, rows found but not displayed: %1

WWV_RENDER_REPORT3.SORT_BY_THIS_COLUMN

Sort by this column

WWV_RENDER_REPORT3.X_Y_OF_MORE_THAN_Z

row(s) %0 - %1 of more than %2

WWV_RENDER_REPORT3.X_Y_OF_Z

row(s)%0 - %1 of %2

WWV_RENDER_REPORT3.X_Y_OF_Z_2

%0 - %1 of %2


LOVをサポートするデータの翻訳

動的データを翻訳するには、動的翻訳を作成します。たとえば、データベース問合せに基づくLOVで動的翻訳を使用する場合があります。

動的翻訳は、メッセージ名ではなく特定の文字列を問い合せるという点でメッセージとは異なります。動的翻訳は、動的翻訳ページで定義します。その後、APEX_LANG.LANG APIを使用して、パラメータp_primary_text_stringで指定された動的翻訳文字列を戻します。

動的翻訳の定義

動的翻訳は、動的翻訳ページで定義します。動的翻訳は、翻訳元の言語文字列、言語コードおよび翻訳先の文字列で構成されています。

動的翻訳を定義するには、次のステップを実行します。

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    2. アプリケーションを選択します。

    3. 「共有コンポーネント」をクリックします。

    4. 「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。

  2. 「アプリケーションの翻訳」ページで、「(オプション)SQLに基づくLOVをサポートするために動的に翻訳する必要があるデータを指定」を選択します。

  3. 「動的翻訳」ページで、「作成」をクリックし、次の項目を指定します。

    1. 言語: ターゲットの言語を選択します。

    2. 翻訳元テキスト: 翻訳するテキストを入力します。

    3. 翻訳先: 翻訳したテキストを入力します。

  4. 「作成」をクリックします。

APEX_LANG.LANG API

構文

APEX_LANG.LANG (
    p_primary_text_string    IN    VARCHAR2 DEFAULT NULL,
    p0                       IN    VARCHAR2 DEFAULT NULL,
    p1                       IN    VARCHAR2 DEFAULT NULL,
    p2                       IN    VARCHAR2 DEFAULT NULL,
    ...
    p9                       IN    VARCHAR2 DEFAULT NULL,
    p_primary_language       IN    VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;

パラメータ

表14-4に、APEX_LANG.LANG API.で使用可能なパラメータを示します。

表14-4 APEX_LANG.LANGのパラメータ

パラメータ 説明

p_primary_string

プライマリ言語のテキスト文字列。これは、「動的翻訳」の「翻訳元テキスト」の値になります。

p0

...

p9

動的置換値。p0は、翻訳文字列の0%に対応します。p1は、翻訳文字列の1%に対応します。p2は、翻訳文字列の2% に対応します(以降同様)。

p_primary_language

取得されるメッセージの言語コード。指定しない場合、Oracle Application Expressは、アプリケーション言語の派生元属性で定義されているとおり、ユーザーの現行の言語を使用します。

参照: 「アプリケーションへのプライマリ言語の指定」


すべての1次色を定義する表があるとします。それぞれの色に動的メッセージを定義し、問合せで定義された値にLANGファンクションを適用します。次に例を示します。

SELECT APEX_LANG.LANG(color)
  FROM my_colors

アプリケーションをドイツ語で実行中の場合、my_colors表の「カラー」列の値がREDであったとすると、赤にドイツ語を定義すると、前述の例では、ROTが戻されます。

サポートされるグローバリゼーション・コードについて

多言語アプリケーションを構築する場合、グローバリゼーション・コードが、アプリケーションの実行方法に与える影響を理解しておくことが重要です。これらのコードは、選択したアプリケーション・レベルのグローバリゼーション属性に基づいて自動的に設定されます。

NLS_LANGUAGEおよびNLS_TERRITORY によって、数字、日付および通貨のデフォルトの表示形式が決まります。

表14-5に、Oracle Application Expressのグローバリゼーション・コードを示します。

表14-5 Oracle Application Expressのグローバリゼーション・コード

言語名 言語コード NLS_LANGUAGE NLS_TERRITORY

アフリカーンス語

af

ENGLISH

SOUTH AFRICA

アラビア語

ar

ARABIC

UNITED ARAB EMIRATES

アラビア語(アルジェリア)

ar-dz

ARABIC

ALGERIA

アラビア語(バーレーン)

ar-bh

ARABIC

BAHRAIN

アラビア語(エジプト)

ar-eg

EGYPTIAN

EGYPT

アラビア語(イラク)

ar-iq

ARABIC

IRAQ

アラビア語(ヨルダン)

ar-jo

ARABIC

JORDAN

アラビア語(クウェート)

ar-kw

ARABIC

KUWAIT

アラビア語(レバノン)

ar-lb

ARABIC

LEBANNON

アラビア語(リビア)

ar-ly

ARABIC

LIBYA

アラビア語(モロッコ)

ar-ma

ARABIC

MOROCCO

アラビア語(オマーン)

ar-om

ARABIC

OMAN

アラビア語(カタール)

ar-qa

ARABIC

QATAR

アラビア語(サウジアラビア)

ar-sa

ARABIC

SAUDI ARABIA

アラビア語(シリア)

ar-sy

ARABIC

SYRIA

アラビア語(チュニジア)

ar-tn

ARABIC

TUNISIA

アラビア語(アラブ首長国連邦)

ar-ae

ARABIC

UNITED ARAB EMIRATES

アラビア語(イエメン)

ar-ye

ARABIC

YEMEN

アッサム語

as

ASSAMESE

INDIA

バスク語

eu

FRENCH

FRANCE

ベラルーシ語

be

RUSSIAN

RUSSIA

ベンガル語

bn

BANGLA

BANGLADESH

ブルガリア語

bg

BULGARIAN

BULGARIA

カタロニア語

ca

CATALAN

CATALONIA

中国語

zh

SIMPLIFIED CHINESE

CHINA

中国語(中国)

zh-cn

SIMPLIFIED CHINESE

CHINA

中国語(香港SAR)

zh-hk

TRADITIONAL CHINESE

HONG KONG

中国語(マカオSAR)

zh-mo

TRADITIONAL CHINESE

HONG KONG

中国語(シンガポール)

zh-sg

SIMPLIFIED CHINESE

SINGAPORE

中国語(台湾)

zh-tw

TRADITIONAL CHINESE

TAIWAN

クロアチア語

hr

CROATIAN

CROATIA

チェコ語

cs

CZECH

CZECH REPUBLIC

デンマーク語

da

DANISH

DENMARK

オランダ語(ベルギー)

nl-be

DUTCH

BELGIUM

オランダ語(オランダ)

nl

DUTCH

THE NETHERLANDS

英語

en

AMERICAN

AMERICA

英語(オーストラリア)

en-au

ENGLISH

AUSTRALIA

英語(ベリーズ)

en-bz

ENGLISH

UNITED KINGDOM

英語(カナダ)

en-ca

ENGLISH

CANADA

英語(アイルランド)

en-ie

ENGLISH

IRELAND

英語(ジャマイカ)

en-jm

ENGLISH

UNITED KINGDOM

英語(ニュージーランド)

en-nz

ENGLISH

NEW ZEALAND

英語(フィリピン)

en-ph

ENGLISH

PHILIPPINES

英語(南アフリカ)

en-za

ENGLISH

SOUTH AFRICA

英語(トリニダード)

en-tt

ENGLISH

UNITED KINGDOM

英語(イギリス)

en-gb

ENGLISH

UNITED KINGDOM

英語(米国)

en-us

AMERICAN

AMERICA

英語(ジンバブエ)

en-zw

ENGLISH

UNITED KINGDOM

エストニア語

et

ESTONIAN

ESTONIA

フェロー語

fo

ENGLISH

UNITED KINGDOM

ペルシア語

fa

ENGLISH

UNITED KINGDOM

フィンランド語

fi

FINNISH

FINLAND

フランス語(ベルギー)

fr-be

FRENCH

BELGIUM

フランス語(カナダ)

fr-ca

CANADIAN FRENCH

CANADA

フランス語(フランス)

fr

FRENCH

FRANCE

フランス語(ルクセンブルグ)

fr-lu

FRENCH

LUXEMBOURG

フランス語(モナコ)

fr-mc

FRENCH

FRANCE

フランス語(スイス)

fr-ch

FRENCH

SWITZERLAND

FYROマケドニア語

mk

MACEDONIAN

FYR MACEDONIA

ゲール語

gd

ENGLISH

UNITED KINGDOM

ガリシア語

gl

SPANISH

SPAIN

ドイツ語(オーストリー)

de-at

GERMAN

AUSTRIA

ドイツ語(ドイツ)

de

GERMAN

GERMANY

ドイツ語(リヒテンシュタイン)

de-li

GERMAN

GERMANY

ドイツ語(ルクセンブルグ)

de-lu

GERMAN

LUXEMBOURG

ドイツ語(スイス)

de-ch

GERMAN

SWITZERLAND

ギリシャ語

el

GREEK

GREECE

グジャラト語

gu

GUJARATI

INDIA

ヘブライ語

he

HEBREW

ISRAEL

ヒンディー語

hi

HINDI

INDIA

ハンガリー語

hu

HUNGARIAN

HUNGARY

アイスランド語

is

ICELANDIC

ICELAND

インドネシア語

id

INDONESIAN

INDONESIA

イタリア語(イタリア)

it

ITALIAN

ITALY

イタリア語(スイス)

it-ch

ITALIAN

SWITZERLAND

日本語

ja

JAPANESE

JAPAN

カンナダ語

kn

KANNADA

INDIA

カザフ語

kk

CYRILLIC KAZAKH

KAZAKHSTAN

コンカニ語

kok

KOREAN

KOREA

韓国語

ko

KOREAN

KOREA

キルギス語

kz

RUSSIAN

RUSSIA

ラトビア語

lv

LATVIAN

LATVIA

リトアニア語

lt

LITHUANIAN

LITHUANIANA

マラヤーラム語(マレーシア)

ms

MALAY

MALAYSIA

マラヤーラム語

ml

MALAYALAM

INDIA

マルタ語

mt

ENGLISH

UNITED KINGDOM

マラーティー語

mr

ENGLISH

INDIA

ネパール語(インド)

ne

ENGLISH

UNITED KINGDOM

ノルウェー語(ブークモール)

nb-no

NORWEGIAN

NORWAY

ノルウェー語(ブークモール)

no

NORWEGIAN

NORWAY

ノルウェー語(ニーノシュク)

nn-no

NORWEGIAN

NORWAY

オリヤー語

or

ORIYA

INDIA

ポーランド語

pl

POLISH

POLAND

ポルトガル語(ブラジル)

pt-br

BRAZILIAN PORTUGUESE

BRAZIL

ポルトガル語(ポルトガル)

pt

PORTUGUESE

PORTUGAL

パンジャブ語

pa

PUNJABI

INDIA

ルーマニア語

ro

ROMANIAN

ROMANIA

ロシア語

ru

RUSSIAN

RUSSIA

ロシア語(モルドバ)

ru-md

RUSSIAN

RUSSIA

セルビア語

sr

CYRILLIC SERBIAN

SERBIA AND MONTENEGRO

スロバキア語

sk

SLOVAK

SLOVAKIA

スロベニア語

sl

SLOVENIAN

SLOVENIA

スペイン語(アルゼンチン)

es-ar

LATIN AMERICAN SPANISH

ARGENTINA

スペイン語(ボリビア)

es-bo

LATIN AMERICAN SPANISH

ARGENTINA

スペイン語(チリ)

es-cl

LATIN AMERICAN SPANISH

CHILE

スペイン語(コロンビア)

ec-co

LATIN AMERICAN SPANISH

COLUMBIA

スペイン語(コスタリカ)

es-cr

LATIN AMERICAN SPANISH

COSTA RICA

スペイン語(ドミニカ共和国)

es-do

LATIN AMERICAN SPANISH

PUERTO RICO

スペイン語(エクアドル)

es-ec

LATIN AMERICAN SPANISH

ECUDOR

スペイン語(エルサルバドル)

es-sv

LATIN AMERICAN SPANISH

EL SALVADOR

スペイン語(グアテマラ)

es-gt

LATIN AMERICAN SPANISH

GUATEMALA

スペイン語(ホンジュラス)

es-hn

LATIN AMERICAN SPANISH

GUATEMALA

スペイン語(メキシコ)

es-mx

MEXICAN SPANISH

MEXICO

スペイン語(ニカラグア)

es-ni

LATIN AMERICAN SPANISH

NICARAGUA

スペイン語(パナマ)

es-pa

LATIN AMERICAN SPANISH

PANAMA

スペイン語(パラグアイ)

es-py

LATIN AMERICAN SPANISH

ARGENTINA

スペイン語(ペルー)

es-pe

LATIN AMERICAN SPANISH

PERU

スペイン語(プエルトリコ)

es-pr

LATIN AMERICAN SPANISH

PUERTO RICO

スペイン語(標準)

es

LATIN AMERICAN SPANISH

SPAIN

スペイン語(米国)

es-us

LATIN AMERICAN SPANISH

AMERICAN

スペイン語(ウルグアイ)

es-uy

LATIN AMERICAN SPANISH

ARGENTINA

スペイン語(ベネズエラ)

es-ve

LATIN AMERICAN SPANISH

VENEZUELA

スウェーデン語

sv

SWEDISH

SWEDEN

スウェーデン語

sv-fi

SWEDISH

FINLAND

タミル語

ta

TAMIL

INDIA

テルグ語

te

TELUGU

INDIA

タイ語

th

THAI

THAILAND

トルコ語

tr

TURKISH

TURKEY

ウクライナ語

uk

UKRAINIAN

UKRAINE

ウルドゥー語

ur

ENGLISH

UNITED KINGDOM

ウズベク語

uz

LATIN UZBEK

UZBEKISTAN

ベトナム語

vi

VIETNAMESE

VIETNAM

ズールー語

zu

ENGLISH

UNITED KINGDOM