このセクションでは、アプリケーション・ビルダーで構築したアプリケーションを翻訳する方法を説明します。
このセクションの内容は次のとおりです。
アプリケーション・ビルダーで、同時に異なる言語で実行可能なアプリケーションを開発できます。1つのOracle DatabaseインスタンスとOracle Application Expressで、異なる言語をサポートするようにカスタマイズされた複数のデータベース・セッションをサポートできます。
一般的に、アプリケーション・ビルダーで構築したアプリケーションの翻訳は、次のようなステップになります。
プライマリおよびターゲットのアプリケーションIDをマップします
翻訳用のファイルにテキストをシードおよびエクスポートします
ファイルのテキストを翻訳します
翻訳済ファイルを適用します
翻訳済ファイルを公開します
このセクションの構成は次のとおりです。
アプリケーションの作成後、グローバリゼーション属性の編集ページで言語プリファレンスを指定します。次にグローバリゼーション属性の編集ページで、プライマリ・アプリケーションの言語を選択し、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を使用して、動的翻訳をプログラム的に取得できます。
デフォルトでは、ページ・リージョン・タイトルは、生成された翻訳ファイルに含まれます。ただし、リージョン・タイトルは、翻訳不可と指定できます。
リージョン・タイトルを翻訳不可と指定するには、次のステップを実行します。
ページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。
ページ定義で、リージョン・タイトルをクリックします。
「リージョンの編集」ページが表示されます。
「タイトルを翻訳から除外」チェック・ボックスを選択します。
デフォルトでは、テンプレートは翻訳可能ではないため、生成された翻訳ファイルには含まれません。通常、テンプレートには翻訳可能なテキストを含めません。ただし、テンプレートを翻訳可能として指定する必要がある場合は、ページ・テンプレートの編集ページで、「翻訳可能」チェック・ボックスを選択します。
テンプレートを翻訳可能として指定するには、次のステップを実行します。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
アプリケーションのホームページで、「共有コンポーネント」をクリックします。
「ユーザー・インタフェース」で、「テンプレート」を選択します。
「テンプレート」ページが表示されます。
編集するテンプレートを検索して、テンプレート名を選択します。
「名前」の下で「翻訳可能」を選択します。
静的置換文字列を使用して翻訳可能なテキストを定義することで、翻訳可能なテキストをアプリケーション・レベルで含めることができます。アプリケーション・レベル属性は翻訳されるため、静的置換文字列として定義された任意のテキストは、生成された翻訳ファイルに含まれます。
グローバリゼーション属性は、Application Expressエンジンによるアプリケーションのプライマリ言語の決定方法を指定します。
グローバリゼーション属性を編集するには、次のステップを実行します。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」で、「属性の編集」をクリックします。
「アプリケーションのプライマリ言語」から、アプリケーションが開発されている言語を選択します。
「アプリケーション言語の派生元」から、Application Expressエンジンによるアプリケーション言語の決定(派生)方法を指定します。表14-1に、使用可能なオプションを示します。
表14-1 アプリケーション言語の派生元オプション
オプション | 説明 |
---|---|
NLSなし(アプリケーションは翻訳されない) |
このオプションは、アプリケーションが翻訳されない場合に選択します。 |
アプリケーションのプライマリ言語を使用 |
アプリケーションのプライマリ言語属性に基づいて、アプリケーションのプライマリ言語を決定します(ステップ5を参照)。 |
ブラウザ(ブラウザの言語プリファレンスを使用) |
ユーザーのブラウザの言語設定に基づいて、アプリケーションのプライマリ言語を決定します。 |
アプリケーション・プリファレンス(FSP_LANGUAGE_PREFERENCEを使用) |
|
アイテム・プリファレンス(プリファレンスを含むアイテムを使用) |
|
Application Expressエンジンは、レンダリングされた各ページにグローバリゼーション設定を適用します。デフォルトの動作は、数字や日付などの特定のアイテムの表示に影響する可能性があります。
たとえば、ユーザーのブラウザの言語設定に基づいて、アプリケーション言語を決定するとします。Application Expressエンジンが、ユーザーのブラウザの言語設定をフランス語と決定した場合、日付および数字は、フランス語の標準に合せた書式で表示されます。書式マスクを適用することによって、このデフォルトの動作をオーバーライドし、アイテムの表示方法を明示的に制御できます。「表示形式」リストから選択して、書式マスクを適用します。
アイテム作成時
アイテム属性を編集してアイテムを作成した後
次のステップでは、データベース列のソース・タイプを持つアイテムの属性の編集方法を説明します。
アイテム属性を編集するには、次のステップを実行します。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
ページを選択します。
ページ定義が表示されます。
「アイテム」で、アイテム名を選択します。
ページ・アイテムの編集ページが表示されます。
「名前」の下で、「表示形式」リストから選択します。
「ソース」の下で書式マスクを選択または入力します。
アプリケーション・ビルダーで開発したアプリケーションを翻訳するには、プライマリおよびターゲット言語をマップし、テキストを翻訳ファイルにシードおよびエクスポートし、テキストを翻訳し、翻訳ファイルを適用し、翻訳済アプリケーションを公開する必要があります。
このセクションの構成は次のとおりです。
アプリケーション翻訳の最初のステップは、プライマリおよびターゲットのアプリケーション言語をマップすることです。プライマリ・アプリケーションは、翻訳されるアプリケーションです。ターゲット・アプリケーションは、翻訳結果のアプリケーションです。
プライマリおよびターゲットのアプリケーション言語をマップするには、次のステップを実行します。
アプリケーションの翻訳ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。
アプリケーションの翻訳ページが表示されます。
「翻訳されたアプリケーションにプライマリ言語アプリケーションをマップ」をクリックします。
「アプリケーション・マッピング」ページが表示されます。
「作成」をクリックします。
「翻訳アプリケーション・マッピング」ページで、次のステップを実行します。
翻訳アプリケーション: ターゲット・アプリケーションを識別する数値のアプリケーションIDを入力します。翻訳済アプリケーションIDは整数である必要があり、末尾は0(ゼロ)以外の整数にする必要があります。
翻訳アプリケーション言語コード: 翻訳先となる言語を選択します。
イメージ・ディレクトリ: イメージの取得元となるディレクトリを入力します。
この属性は、翻訳されたイメージの仮想パスを指定します。たとえば、プライマリ言語アプリケーションのイメージ接頭辞が/i/
の場合、ドイツ語には/i/de/
、スペイン語には/i/es/
のように、その他の言語の仮想ディレクトリを追加で定義できます。
この言語特定のイメージ・ディレクトリは通常、ほとんどの翻訳済アプリケーションに必要がないことに注意してください。
「作成」をクリックします。
2番目のステップでは、翻訳表をシードし、翻訳テキストを翻訳ファイルにエクスポートします。
このセクションの構成は次のとおりです。
翻訳のシードにより、すべての翻訳可能なテキストが翻訳テキスト・リポジトリにコピーされます。言語を指定して翻訳テキストをシードすると、翻訳用のXLIFFファイルを生成してエクスポートできます。
シード・プロセスでは、プライマリ言語アプリケーションと翻訳テキスト・リポジトリの同期がとられます。プライマリ言語アプリケーションを変更するたびに、シード・プロセスを実行する必要があります。
翻訳可能なテキストをシードするには、次のステップを実行します。
アプリケーションの翻訳ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。
アプリケーションの翻訳ページが表示されます。
「アプリケーションの翻訳」ページで、「アプリケーションの翻訳テキストを翻訳ファイルにシードおよびエクスポート」を選択します。
「言語マッピング」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。
「翻訳可能なテキストのシード」をクリックします。
「XLIFFのエクスポート」ページが表示されます。
注意: XLIFF(XML Localization Interchange File Format)は、ローカリゼーション・データを変換するためのXMLベースのフォーマットです。XLIFFについて、またはXLIFF仕様を確認するには、次のURLを参照してください。
|
翻訳可能なテキストをシードすると、XLIFFのエクスポート・ページの上部のステータス・ボックスに、翻訳が必要な場合のある属性の合計数と次の項目の数が表示されます。
翻訳が必要な可能性のある既存の更新済属性
翻訳が必要な可能性のある新しい属性
翻訳が不要になった削除済属性
この情報を使用して、アプリケーション全体の翻訳可能なテキストをエクスポートするか、特定のページの翻訳可能なテキストをエクスポートするかを判断できます。
XLIFFのエクスポート・ページは、2つのセクションに分かれています。アプリケーション全体(すべてのページ、LOV、メッセージなど)の翻訳可能なテキストをエクスポートするには、ページの上のセクションを使用します。特定のページの翻訳可能なテキストをエクスポートするには、下のセクションを使用します。
アプリケーション全体の翻訳可能なテキストをエクスポートするには、次のステップを実行します。
翻訳可能なテキストをシードします。「翻訳可能なテキストのシード」を参照してください。
「XLIFFのエクスポート: ステップ2、XLIFFのエクスポート」で、次のステップを実行します。
「アプリケーション」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。
XLIFFターゲット要素を含めるかどうかを指定します。
「エクスポート」で、XLIFFファイルに含める翻訳テキストを指定します。
「アプリケーションのXLIFFファイルのエクスポート」をクリックします。
画面に表示されるステップに従います。
特定のページの翻訳可能なテキストをエクスポートするには、次のステップを実行します。
「翻訳可能なテキストのシード」のとおり、翻訳可能なテキストをシードします。
「特定ページのXLIFFのエクスポート」で、次のステップを実行します。
「アプリケーション」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。
XLIFFターゲット要素を含めるかどうかを指定します。
「エクスポート」で、XLIFFファイルに含める翻訳テキストを指定します。
「ページの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ドキュメントをアップロードするには、次のステップを実行します。
アプリケーションの翻訳ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。
アプリケーションの翻訳ページが表示されます。
「翻訳ファイルを適用して公開」をクリックします。
「XLIFFのアップロード」をクリックします。
「XLIFFのアップロード」ページで、次のステップを実行します。
タイトルを指定します。
説明を入力します。
「参照」をクリックし、アップロードするファイルを指定します。
「XLIFFファイルのアップロード」をクリックします。
アップロードされたドキュメントが、XLIFFファイル・リポジトリに表示されます。
XLIFFドキュメントをアップロードした後、そのXLIFFドキュメントを適用して翻訳済アプリケーションを公開します。XLIFFドキュメントを適用すると、Application Expressエンジンはファイルを解析して、翻訳表を新しい翻訳可能なテキストで更新します。
アプリケーションを公開すると、ベース言語のアプリケーションのコピーが作成され、翻訳表の翻訳されたテキスト文字列が置換されます。その後、この公開されたアプリケーションを使用して、代替言語でアプリケーションをレンダリングできます。
アプリケーションを代替言語で実行するには、代替言語バージョンで表示するようにグローバリゼーション設定を行ってアプリケーションを実行する必要があります。たとえば、言語がブラウザ言語に従う場合は、ブラウザ言語を翻訳済アプリケーションと同じ言語に設定する必要があります。
翻訳済XLIFFドキュメントを適用してアプリケーションを公開するには、次のステップを実行します。
アプリケーションの翻訳ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。
アプリケーションの翻訳ページが表示されます。
「翻訳ファイルを適用して公開」をクリックします。
XLIFFファイル・リポジトリで、公開するドキュメントの横にある「ビュー」アイコンをクリックします。
「適用」から、適切なプライマリおよびターゲットのアプリケーションIDマップを選択します。
「XLIFF翻訳ファイルの適用」をクリックします。
「アプリケーションのパブリッシュ」をクリックします。
アップロードしたXLIFFドキュメントを削除するには、次のステップを実行します。
アプリケーションの翻訳ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。
アプリケーションの翻訳ページが表示されます。
「アプリケーションの翻訳」ページで、「翻訳ファイルを適用して公開」を選択します。
XLIFFファイル・リポジトリで、そのドキュメント・タイトルの左のチェック・ボックスを選択します。
「チェックした項目の削除」をクリックします。
アプリケーションを公開した後、翻訳済アプリケーションの有無を確認する必要があります。翻訳済アプリケーションは、アプリケーション・ビルダーのホームページの「選択可能なアプリケーション」リストには表示されません。かわりに、そのページの左側のアプリケーション・ナビゲート・リストを使用します。
翻訳済アプリケーションをアプリケーション・ビルダーに表示するには、アプリケーションのグローバリゼーション属性を正しく設定する必要があります。
ターゲット言語をマップし、翻訳可能なテキストをシードした後は、手動で翻訳を編集できます。
手動で翻訳を編集するには、次のステップを実行します。
ターゲット言語をマップします。「ステップ1: ターゲット言語のマップ」を参照してください。
翻訳可能なテキストをシードします。「翻訳可能なテキストのシード」を参照してください。
翻訳可能なテキスト・ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。
「翻訳ユーティリティ」リストから、「翻訳の手動編集」をクリックします。
翻訳可能なテキスト・ページが表示されます。ページ上部の「ナビゲーション・バー」を使用してレポート表示を変更します。使用可能なオプションは次のとおりです。
言語のマッピング: 言語のマッピングを選択し、「実行」をクリックします。
ページ: ページ番号を入力し、「実行」をクリックします。
翻訳: 大/小文字を区別しない問合せを入力し、「実行」をクリックします。
表示: 表示する行数を選択し、「実行」をクリックします。
翻訳可能なテキストを編集するには、「編集」アイコンをクリックします。
「翻訳可能なテキスト」フィールドが表示されます。
適切なテキストを編集し、「変更の適用」をクリックします。
アプリケーションが次に当てはまる場合、メッセージを翻訳する必要があることがあります。
PL/SQLリージョンまたはPL/SQLプロセスが含まれる場合、あるいはPL/SQLパッケージ、プロシージャ、またはファンクションをコールする場合。この場合、生成されたHTMLを翻訳する必要があることがあります。
Oracle Application Expressが翻訳されている10言語以外の言語を使用する場合。この場合、レポートに使用されているメッセージを翻訳する必要があることがあります。
このセクションの構成は次のとおりです。
アプリケーションにPL/SQLリージョンまたはPL/SQLプロセスが含まれる場合、あるいはアプリケーションがPL/SQLパッケージ、プロシージャ、またはファンクションをコールする場合は、生成されるHTMLを翻訳する必要がある場合があります。最初に、翻訳可能なメッセージ・ページで、各メッセージを定義します。次に、APEX_LANG
.MESSAGE
APIを使用して、PL/SQLストアド・プロシージャ、ファンクション、トリガーまたはパッケージ化されたプロシージャおよびファンクションのメッセージを翻訳します。
翻訳可能なメッセージ・ページで、翻訳可能なメッセージを作成します。
新しい翻訳メッセージを定義するには、次のステップを実行します。
アプリケーション・アイテムの作成/編集ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「テキスト・メッセージ」をクリックします。
メッセージの翻訳ページで、「作成」をクリックします。
「テキスト・メッセージを指定」で次を指定します。
名前: メッセージを識別するための名前を入力します。
言語: メッセージが使用される言語を選択します。
テキスト: テキスト・メッセージがコールされたときに戻されるテキストを入力します。
たとえば、メッセージGREETING_MSG
を次のように英語で定義できます。
Good morning %0
また、メッセージGREETING_MSG
を次のようにドイツ語で定義できます。
Guten Tag %0
「作成」をクリックします。
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のパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Application Expressで定義されたメッセージの名前。 |
...
|
動的置換値。 |
|
取得されるメッセージの言語コード。指定しない場合、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_CODE
がde
であるGREETING_MSG
というメッセージを検索します。見つからない場合は、アプリケーションのプライマリ言語属性に戻ります。それでも見つからない場合、Application Expressエンジンは、言語コードがen-us
であるこの名前のメッセージを検索します。
Oracle Application Expressはドイツ語、スペイン語、フランス語、イタリア語、日本語、韓国語、ポルトガル語(ブラジル)、簡体字中国語、および繁体字中国語に翻訳されています。これらの翻訳された10言語以外の言語をアプリケーションで使用する場合は、Application Expressレポート・エンジンによって表示されるメッセージを翻訳する必要があります。
たとえば、ロシア語のアプリケーションを開発してロシア語のレポート・メッセージ(ページ区切りなど)を使用する場合は、レポートに表示されるメッセージで使用される文字列を翻訳する必要があります。
メッセージを翻訳するには、次のステップを実行します。
アプリケーションの翻訳ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「テキスト・メッセージ」をクリックします。
メッセージの翻訳ページで、「作成」をクリックします。
「テキスト・メッセージを指定」で次を指定します。
名前: 翻訳する必要のある各メッセージの名前を入力します。表14-3を参照してください。
言語: メッセージが使用される言語を選択します
テキスト: テキスト・メッセージがコールされたときに戻されるテキストを入力します。英語のテキスト・メッセージに定位置の置換値(%0
、%1
など)が含まれている場合、ユーザー定義のメッセージにも同じ名前と数字の定位置の置換値を含めてください。
「作成」をクリックします。
表14-3に、翻訳が必要な内部メッセージを示します。
表14-3 翻訳が必要な内部メッセージ
メッセージ名 | 英語のテキスト |
---|---|
|
1 error has occurred |
|
%0 errors have occurred |
|
Invalid set of rows requested, the source data of the report has been modified |
|
Next |
|
Next Set |
|
Previous |
|
Previous Set |
|
report total |
|
reset pagination |
|
%0 days ago |
|
%0 hours ago |
|
%0 minutes ago |
|
%0 months ago |
|
%0 seconds ago |
|
%0 weeks ago |
|
%0 years ago |
|
Total |
|
Calendar |
|
Close |
|
Ok |
|
Minimum row requested: %0, rows found but not displayed: %1 |
|
Sort by this column |
|
row(s) %0 - %1 of more than %2 |
|
row(s)%0 - %1 of %2 |
|
%0 - %1 of %2 |
動的データを翻訳するには、動的翻訳を作成します。たとえば、データベース問合せに基づくLOVで動的翻訳を使用する場合があります。
動的翻訳は、メッセージ名ではなく特定の文字列を問い合せるという点でメッセージとは異なります。動的翻訳は、動的翻訳ページで定義します。その後、APEX_LANG
.LANG
APIを使用して、パラメータp_primary_text_string
で指定された動的翻訳文字列を戻します。
動的翻訳は、動的翻訳ページで定義します。動的翻訳は、翻訳元の言語文字列、言語コードおよび翻訳先の文字列で構成されています。
動的翻訳を定義するには、次のステップを実行します。
アプリケーションの翻訳ページにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
「グローバリゼーション」の下で「アプリケーションの翻訳」をクリックします。
「アプリケーションの翻訳」ページで、「(オプション)SQLに基づくLOVをサポートするために動的に翻訳する必要があるデータを指定」を選択します。
「動的翻訳」ページで、「作成」をクリックし、次の項目を指定します。
言語: ターゲットの言語を選択します。
翻訳元テキスト: 翻訳するテキストを入力します。
翻訳先: 翻訳したテキストを入力します。
「作成」をクリックします。
構文
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のパラメータ
パラメータ | 説明 |
---|---|
|
プライマリ言語のテキスト文字列。これは、「動的翻訳」の「翻訳元テキスト」の値になります。 |
...
|
動的置換値。 |
|
取得されるメッセージの言語コード。指定しない場合、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 |
---|---|---|---|
アフリカーンス語 |
|
ENGLISH |
SOUTH AFRICA |
アラビア語 |
|
ARABIC |
UNITED ARAB EMIRATES |
アラビア語(アルジェリア) |
|
ARABIC |
ALGERIA |
アラビア語(バーレーン) |
|
ARABIC |
BAHRAIN |
アラビア語(エジプト) |
|
EGYPTIAN |
EGYPT |
アラビア語(イラク) |
|
ARABIC |
IRAQ |
アラビア語(ヨルダン) |
|
ARABIC |
JORDAN |
アラビア語(クウェート) |
|
ARABIC |
KUWAIT |
アラビア語(レバノン) |
|
ARABIC |
LEBANNON |
アラビア語(リビア) |
|
ARABIC |
LIBYA |
アラビア語(モロッコ) |
|
ARABIC |
MOROCCO |
アラビア語(オマーン) |
|
ARABIC |
OMAN |
アラビア語(カタール) |
|
ARABIC |
QATAR |
アラビア語(サウジアラビア) |
|
ARABIC |
SAUDI ARABIA |
アラビア語(シリア) |
|
ARABIC |
SYRIA |
アラビア語(チュニジア) |
|
ARABIC |
TUNISIA |
アラビア語(アラブ首長国連邦) |
|
ARABIC |
UNITED ARAB EMIRATES |
アラビア語(イエメン) |
|
ARABIC |
YEMEN |
アッサム語 |
|
ASSAMESE |
INDIA |
バスク語 |
|
FRENCH |
FRANCE |
ベラルーシ語 |
|
RUSSIAN |
RUSSIA |
ベンガル語 |
|
BANGLA |
BANGLADESH |
ブルガリア語 |
|
BULGARIAN |
BULGARIA |
カタロニア語 |
|
CATALAN |
CATALONIA |
中国語 |
|
SIMPLIFIED CHINESE |
CHINA |
中国語(中国) |
|
SIMPLIFIED CHINESE |
CHINA |
中国語(香港SAR) |
|
TRADITIONAL CHINESE |
HONG KONG |
中国語(マカオSAR) |
|
TRADITIONAL CHINESE |
HONG KONG |
中国語(シンガポール) |
|
SIMPLIFIED CHINESE |
SINGAPORE |
中国語(台湾) |
|
TRADITIONAL CHINESE |
TAIWAN |
クロアチア語 |
|
CROATIAN |
CROATIA |
チェコ語 |
|
CZECH |
CZECH REPUBLIC |
デンマーク語 |
|
DANISH |
DENMARK |
オランダ語(ベルギー) |
|
DUTCH |
BELGIUM |
オランダ語(オランダ) |
|
DUTCH |
THE NETHERLANDS |
英語 |
|
AMERICAN |
AMERICA |
英語(オーストラリア) |
|
ENGLISH |
AUSTRALIA |
英語(ベリーズ) |
|
ENGLISH |
UNITED KINGDOM |
英語(カナダ) |
|
ENGLISH |
CANADA |
英語(アイルランド) |
|
ENGLISH |
IRELAND |
英語(ジャマイカ) |
|
ENGLISH |
UNITED KINGDOM |
英語(ニュージーランド) |
|
ENGLISH |
NEW ZEALAND |
英語(フィリピン) |
|
ENGLISH |
PHILIPPINES |
英語(南アフリカ) |
|
ENGLISH |
SOUTH AFRICA |
英語(トリニダード) |
|
ENGLISH |
UNITED KINGDOM |
英語(イギリス) |
|
ENGLISH |
UNITED KINGDOM |
英語(米国) |
|
AMERICAN |
AMERICA |
英語(ジンバブエ) |
|
ENGLISH |
UNITED KINGDOM |
エストニア語 |
|
ESTONIAN |
ESTONIA |
フェロー語 |
|
ENGLISH |
UNITED KINGDOM |
ペルシア語 |
|
ENGLISH |
UNITED KINGDOM |
フィンランド語 |
|
FINNISH |
FINLAND |
フランス語(ベルギー) |
|
FRENCH |
BELGIUM |
フランス語(カナダ) |
|
CANADIAN FRENCH |
CANADA |
フランス語(フランス) |
|
FRENCH |
FRANCE |
フランス語(ルクセンブルグ) |
|
FRENCH |
LUXEMBOURG |
フランス語(モナコ) |
|
FRENCH |
FRANCE |
フランス語(スイス) |
|
FRENCH |
SWITZERLAND |
FYROマケドニア語 |
|
MACEDONIAN |
FYR MACEDONIA |
ゲール語 |
|
ENGLISH |
UNITED KINGDOM |
ガリシア語 |
|
SPANISH |
SPAIN |
ドイツ語(オーストリー) |
|
GERMAN |
AUSTRIA |
ドイツ語(ドイツ) |
|
GERMAN |
GERMANY |
ドイツ語(リヒテンシュタイン) |
|
GERMAN |
GERMANY |
ドイツ語(ルクセンブルグ) |
|
GERMAN |
LUXEMBOURG |
ドイツ語(スイス) |
|
GERMAN |
SWITZERLAND |
ギリシャ語 |
|
GREEK |
GREECE |
グジャラト語 |
|
GUJARATI |
INDIA |
ヘブライ語 |
|
HEBREW |
ISRAEL |
ヒンディー語 |
|
HINDI |
INDIA |
ハンガリー語 |
|
HUNGARIAN |
HUNGARY |
アイスランド語 |
|
ICELANDIC |
ICELAND |
インドネシア語 |
|
INDONESIAN |
INDONESIA |
イタリア語(イタリア) |
|
ITALIAN |
ITALY |
イタリア語(スイス) |
|
ITALIAN |
SWITZERLAND |
日本語 |
|
JAPANESE |
JAPAN |
カンナダ語 |
|
KANNADA |
INDIA |
カザフ語 |
|
CYRILLIC KAZAKH |
KAZAKHSTAN |
コンカニ語 |
|
KOREAN |
KOREA |
韓国語 |
|
KOREAN |
KOREA |
キルギス語 |
|
RUSSIAN |
RUSSIA |
ラトビア語 |
|
LATVIAN |
LATVIA |
リトアニア語 |
|
LITHUANIAN |
LITHUANIANA |
マラヤーラム語(マレーシア) |
|
MALAY |
MALAYSIA |
マラヤーラム語 |
|
MALAYALAM |
INDIA |
マルタ語 |
|
ENGLISH |
UNITED KINGDOM |
マラーティー語 |
|
ENGLISH |
INDIA |
ネパール語(インド) |
|
ENGLISH |
UNITED KINGDOM |
ノルウェー語(ブークモール) |
|
NORWEGIAN |
NORWAY |
ノルウェー語(ブークモール) |
|
NORWEGIAN |
NORWAY |
ノルウェー語(ニーノシュク) |
|
NORWEGIAN |
NORWAY |
オリヤー語 |
|
ORIYA |
INDIA |
ポーランド語 |
|
POLISH |
POLAND |
ポルトガル語(ブラジル) |
|
BRAZILIAN PORTUGUESE |
BRAZIL |
ポルトガル語(ポルトガル) |
|
PORTUGUESE |
PORTUGAL |
パンジャブ語 |
|
PUNJABI |
INDIA |
ルーマニア語 |
|
ROMANIAN |
ROMANIA |
ロシア語 |
|
RUSSIAN |
RUSSIA |
ロシア語(モルドバ) |
|
RUSSIAN |
RUSSIA |
セルビア語 |
|
CYRILLIC SERBIAN |
SERBIA AND MONTENEGRO |
スロバキア語 |
|
SLOVAK |
SLOVAKIA |
スロベニア語 |
|
SLOVENIAN |
SLOVENIA |
スペイン語(アルゼンチン) |
|
LATIN AMERICAN SPANISH |
ARGENTINA |
スペイン語(ボリビア) |
|
LATIN AMERICAN SPANISH |
ARGENTINA |
スペイン語(チリ) |
|
LATIN AMERICAN SPANISH |
CHILE |
スペイン語(コロンビア) |
|
LATIN AMERICAN SPANISH |
COLUMBIA |
スペイン語(コスタリカ) |
|
LATIN AMERICAN SPANISH |
COSTA RICA |
スペイン語(ドミニカ共和国) |
|
LATIN AMERICAN SPANISH |
PUERTO RICO |
スペイン語(エクアドル) |
|
LATIN AMERICAN SPANISH |
ECUDOR |
スペイン語(エルサルバドル) |
|
LATIN AMERICAN SPANISH |
EL SALVADOR |
スペイン語(グアテマラ) |
|
LATIN AMERICAN SPANISH |
GUATEMALA |
スペイン語(ホンジュラス) |
|
LATIN AMERICAN SPANISH |
GUATEMALA |
スペイン語(メキシコ) |
|
MEXICAN SPANISH |
MEXICO |
スペイン語(ニカラグア) |
|
LATIN AMERICAN SPANISH |
NICARAGUA |
スペイン語(パナマ) |
|
LATIN AMERICAN SPANISH |
PANAMA |
スペイン語(パラグアイ) |
|
LATIN AMERICAN SPANISH |
ARGENTINA |
スペイン語(ペルー) |
|
LATIN AMERICAN SPANISH |
PERU |
スペイン語(プエルトリコ) |
|
LATIN AMERICAN SPANISH |
PUERTO RICO |
スペイン語(標準) |
|
LATIN AMERICAN SPANISH |
SPAIN |
スペイン語(米国) |
|
LATIN AMERICAN SPANISH |
AMERICAN |
スペイン語(ウルグアイ) |
|
LATIN AMERICAN SPANISH |
ARGENTINA |
スペイン語(ベネズエラ) |
|
LATIN AMERICAN SPANISH |
VENEZUELA |
スウェーデン語 |
|
SWEDISH |
SWEDEN |
スウェーデン語 |
|
SWEDISH |
FINLAND |
タミル語 |
|
TAMIL |
INDIA |
テルグ語 |
|
TELUGU |
INDIA |
タイ語 |
|
THAI |
THAILAND |
トルコ語 |
|
TURKISH |
TURKEY |
ウクライナ語 |
|
UKRAINIAN |
UKRAINE |
ウルドゥー語 |
|
ENGLISH |
UNITED KINGDOM |
ウズベク語 |
|
LATIN UZBEK |
UZBEKISTAN |
ベトナム語 |
|
VIETNAMESE |
VIETNAM |
ズールー語 |
|
ENGLISH |
UNITED KINGDOM |