APEX_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;
パラメータ
表11-1に、APEX_LANG.LANG
ファンクションで使用可能なパラメータを示します。
表11-1 LANGのパラメータ
パラメータ | 説明 |
---|---|
|
プライマリ言語のテキスト文字列。これは、「動的翻訳」の「翻訳元テキスト」の値になります。 |
|
動的置換値。p0は、翻訳文字列の0%に対応します。p1は、翻訳文字列の1%に対応します。p2は、翻訳文字列の2% に対応します(以降同様)。 |
|
取得されるメッセージの言語コード。指定しない場合、Oracle Application Expressは、アプリケーション言語の派生元属性で定義されているとおり、ユーザーの現行の言語を使用します。 参照: 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションへのプライマリ言語の指定」 |
例
すべての1次色を定義する表があるとします。それぞれの色に動的メッセージを定義し、問合せで定義された値にLANGファンクションを適用します。次に例を示します。
SELECT APEX_LANG.LANG(color) FROM my_colors
アプリケーションをドイツ語で実行中の場合、my_colors
表の「カラー」列の値がREDであったとすると、赤にドイツ語を定義すると、前述の例では、ROTが戻されます。
このファンクションは、PL/SQLのストアド・プロシージャ、ストアド・ファンクション、ストアド・トリガー、パッケージ化されたプロシージャおよびパッケージ化されたファンクションから生成されたテキスト文字列(メッセージ)の翻訳に使用します。
構文
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;
パラメータ
表11-2に、APEX_LANG.MESSAGE
ファンクションで使用可能なパラメータを示します。
表11-2 MESSAGEのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Application Expressでアプリケーションの「共有コンポーネント」→「テキスト・メッセージ」で定義されたメッセージの名前。 |
|
動的置換値。p0は、翻訳文字列の0%に対応します。p1は、翻訳文字列の1%に対応します。p2は、翻訳文字列の2% に対応します(以降同様)。 |
|
取得されるメッセージの言語コード。指定しない場合、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アプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションへのプライマリ言語の指定」 |