Oracle HTML DBユーザーズ・ガイド
リリース2.0
B25045-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

15 Oracle HTML DBのグローバリゼーションの管理

このセクションでは、Oracle HTML DBで作成したアプリケーションを言語変換する方法について説明します。

内容は次のとおりです。

アプリケーションの言語変換およびグローバリゼーション・サポート

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

通常、Oracle HTML DBアプリケーションの言語変換は、次のステップを実行します。

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

言語の指定

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

Oracle HTML DBでのアプリケーションの変換規則

Oracle HTML DBで言語変換済アプリケーションを使用する場合、次の規則に従って、使用する言語変換済バージョンが決定されます。

  • ユーザーの言語プリファレンスに完全一致する言語コードの言語変換済アプリケーションが検索されます。

  • ユーザーの言語プリファレンスに部分一致する言語コードの言語変換済アプリケーションが検索されます。このためには、言語およびロケールの存在が確認されます。 たとえば、ユーザー言語プリファレンスがen-usで、en-usの変換済バージョンが存在しない場合は、言語コードがenの変換済アプリケーションを検索します。

  • プライマリ言語のアプリケーションが使用されます。

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

言語変換済アプリケーションのレンダリング方法

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

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

言語変換可能なコンポーネント

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

メッセージの言語変換をサポートするショートカット

Oracle HTML DBには、 言語変換可能なメッセージを参照できる、2つのショートカット・タイプがあります。

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

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

メッセージ

アプリケーションにPL/SQLリージョンまたはPL/SQLプロセスが含まれる場合は、生成されたHTMLまたはテキストを言語変換する必要があります。Oracle HTML DBでは、これらのタイプの生成されたHTMLおよびテキストは「メッセージ」と呼ばれます。「翻訳可能なメッセージ」ページで、すべてのメッセージを定義し、メッセージを言語変換できます。HTMLDB_LANG.MESSAGE APIを使用して、PL/SQLストアド・プロシージャ、ファンクション、トリガー、パッケージ化されたプロシージャおよびファンクションのテキスト文字列を言語変換できます。

テキスト文字列の動的言語変換

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

リージョン・タイトルの言語変換

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

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

  1. ページ定義にナビゲートします。

    1. 「作業領域」ホームページにナビゲートします。

    2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

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

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

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

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

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

言語変換テンプレート

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

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

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

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

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

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

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

  7. 「テンプレートの指定」で、「翻訳可能」を選択します。

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

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

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

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

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. 属性の編集」をクリックします。

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

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

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

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

    オプション 説明
    NLSなし(アプリケーションは言語変換されない) このオプションは、アプリケーションが言語変換されない場合に選択します。
    アプリケーションのプライマリ言語を使用 アプリケーションのプライマリ言語属性に基づいて、アプリケーションのプライマリ言語を決定します(ステップ5を参照)。
    ブラウザ(ブラウザの言語プリファレンスを使用) ユーザーのブラウザの言語プリファレンスに基づいて、アプリケーションのプライマリ言語を決定します。
    アプリケーション・プリファレンス(FSP_LANGUAGE_PREFERENCEを使用) HTMLDB_UTIL.SET_PREFERENCE APIを使用して定義された値に基づいて、アプリケーションのアプリケーションのプライマリ言語を決定します。選択した言語プリファレンスを複数のログインで維持するには、このオプションを選択します。

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

    アイテム・プリファレンス(プリファレンスを含むアイテムを使用) FSP_LANGUAGE_PREFERENCEと呼ばれるアプリケーション・レベル・アイテムに基づくことを指定します。このオプションを使用するには、ログインするたびにOracle HTML DBで適切な言語プリファレンスを決定する必要があります。

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

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

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

  • アイテム作成時

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

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

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

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

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

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

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

  6. 「指定」で、「表示形式」リストから選択します。


参照:

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

マルチバイト言語用へのアプリケーションの言語変換

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


参照:

『Oracle Databaseグローバリゼーション・サポート・ガイド』

言語変換プロセスの理解

Oracle HTML DBで開発されたアプリケーションを言語変換するには、プライマリ・アプリケーションIDとターゲット・アプリケーションIDをマップし、言語変換ファイルにテキストをシードおよびエクスポートした後、テキストを言語変換して、言語変換ファイルを適用および公開する必要があります。

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

ステップ1: 「アプリケーションの翻訳」ページへのナビゲート

言語変換の処理は、「アプリケーションの翻訳」ページで実行します。

「アプリケーションの翻訳」ページにナビゲートするには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

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

  5. 「グローバリゼーション」で、「言語変換サービス」を選択します。

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

ステップ2: プライマリおよびターゲットのアプリケーションIDのマップ

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

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

  1. 「アプリケーションの翻訳」ページにナビゲートします。 「ステップ1: 「アプリケーションの翻訳」ページへのナビゲート」を参照してください。

  2. 「アプリケーションの翻訳」ページで、「翻訳されたアプリケーションIDにプライマリ言語アプリケーションをマップ」を選択します。

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

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

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

    • 「言語変換アプリケーション」 - ターゲット・アプリケーションを識別する数値のアプリケーションIDを入力します。言語変換済アプリケーションIDは整数である必要があり、0(ゼロ)以外の整数で終了する必要があります。

    • 「言語変換アプリケーション言語コード」 - 言語変換結果となる言語を選択します。

    • 「イメージ・ディレクトリ」 - イメージが取得されるディレクトリを入力します。

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

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

ステップ3: 言語変換ファイルへのテキストのシードおよびエクスポート

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

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

言語変換可能なテキストのシード

アプリケーションを言語変換するには、言語変換をシードする必要があります。言語変換のシードでは、言語変換可能なすべてのテキストを言語変換テキスト・リポジトリにコピーします。アプリケーションおよび特定の言語を言語変換テキスト・リポジトリにシードした後は、言語変換用のXLIFFファイルを生成し、エクスポートできます。

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

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

  1. 「アプリケーションの翻訳」ページにナビゲートします。 「ステップ1: 「アプリケーションの翻訳」ページへのナビゲート」を参照してください。

  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 HTML DBがXLIFFドキュメントを生成すると、各ドキュメントには複数の言語変換単位が含まれます。各言語変換単位は、ソース要素とターゲット要素で構成されます。XLIFFドキュメントは、言語変換単位ごと、ソースおよびターゲットの両方の要素で生成できます。生成するファイルにソース要素のみを含めることもできます。更新された言語変換は、言語変換単位のターゲット要素から適用されます。

エクスポート

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

ステップ4: XLIFFファイルの言語変換

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

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


参照:

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


ステップ5: 言語変換済XLIFFドキュメントのアップロードおよび公開

XLIFFドキュメントを言語変換したら、Oracle HTML DBにアップロードして戻します。

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

  1. 「アプリケーションの翻訳」ページにナビゲートします。 「ステップ1: 「アプリケーションの翻訳」ページへのナビゲート」を参照してください。

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

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

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

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

    2. 説明を入力します。

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

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

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

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

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

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

言語変換済XLIFFドキュメントを適用および公開するには、次のステップを実行します。

  1. 「アプリケーションの翻訳」ページにナビゲートします。 「ステップ1: 「アプリケーションの翻訳」ページへのナビゲート」を参照してください。

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

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

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

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

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

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

  1. 「アプリケーションの翻訳」ページにナビゲートします。 「ステップ1: 「アプリケーションの翻訳」ページへのナビゲート」を参照してください。

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

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

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

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

言語変換済アプリケーションがアプリケーション・ビルダーに表示されるためには、アプリケーションのグローバリゼーション属性が正しく設定されている必要があります。

PL/SQLプロシージャで使用されるメッセージの言語変換

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

言語変換可能なメッセージの定義

「翻訳可能なメッセージ」ページで、言語変換可能なメッセージを作成します。

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

  1. 「アプリケーションの翻訳」ページにナビゲートします。 「ステップ1: 「アプリケーションの翻訳」ページへのナビゲート」を参照してください。

  2. 「アプリケーションの翻訳」ページで、「(オプション)PL/SQLプロシージャおよびファンクションで使用するメッセージを翻訳」を選択します。

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

  4. 「テキスト・メッセージを指定」ページで、次のステップを実行します。

    1. 「名前」で、テキスト・メッセージを識別するための名前を入力します。

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

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

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

      Good morning %0
      
      

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

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

HTMLDB_LANG.MESSAGE API

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

構文

HTMLDB_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;

パラメータ

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

表15-2 HTMLDB_LANG.MESSAGEパラメータ

パラメータ 説明
p_name Oracle HTML DBで定義されたメッセージの名前。
p0

...

p9

動的置換値。p0は、メッセージの0%に対応します。p1は、メッセージの1%に対応します。p2は、メッセージの2% に対応します(以降同様)。
p_lang 取得されるメッセージの言語コード。指定しない場合、Oracle HTML DBは、アプリケーション言語の派生元属性で定義されているとおり、ユーザーの現行の言語を使用します。

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


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

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

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


参照:

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

LOVをサポートするデータの言語変換

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

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

動的言語変換の定義

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

動的言語変換を定義するには、次のステップを実行します。

  1. 「アプリケーションの翻訳」ページにナビゲートします。 「ステップ1: 「アプリケーションの翻訳」ページへのナビゲート」を参照してください。

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

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

    1. 「言語」で、ターゲットの言語を選択します。

    2. 「翻訳元テキスト」で、言語変換されるソースのテキストを入力します。

    3. 「翻訳先」で、言語変換後のテキストを入力します。

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

HTMLDB_LANG.LANG API

構文

HTMLDB_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;

パラメータ

表15-3に、HTMLDB_LANG.LANGで使用可能なパラメータを示します。

表15-3 HTMLDB_LANG.LANGパラメータ

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

...

p9

動的置換値。p0は、言語変換文字列の0%に対応します。p1は、言語変換文字列の1%に対応します。p2は、言語変換文字列の2% に対応します(以降同様)。
p_primary_language 取得されるメッセージの言語コード。指定しない場合、Oracle HTML DBは、アプリケーション言語の派生元属性で定義されているとおり、ユーザーの現行の言語を使用します。

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


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

SELECT HTMLDB_LANG.LANG(color)
  FROM my_colors

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

Oracle HTML DBのグローバリゼーション・コード

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

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

表15-4に、Oracle HTML DBのグローバリゼーション・コードを示します。

表15-4 Oracle HTML DBのグローバリゼーション・コード

言語名 言語コード 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