ヘッダーをスキップ
Oracle® Application Express APIリファレンス
リリース3.2
B53798-03
  目次へ移動
目次

前
 
 

11 APEX_LANG

APEX_LANG APIを使用してメッセージを翻訳できます。

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


LANGファンクション

このファンクションは、動的翻訳で定義された翻訳に対して翻訳済テキスト文字列を戻すために使用します。

構文

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のパラメータ

パラメータ 説明

p_primary_text_string

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

p_p0からp_p9

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

p_primary_language

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

参照: 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションへのプライマリ言語の指定」


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

SELECT APEX_LANG.LANG(color)
FROM my_colors

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


MESSAGEファンクション

このファンクションは、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のパラメータ

パラメータ 説明

p_name

Oracle Application Expressでアプリケーションの「共有コンポーネント」→「テキスト・メッセージ」で定義されたメッセージの名前。

p_p0からp_p9

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

p_lang

取得されるメッセージの言語コード。指定しない場合、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_CODEdeであるGREETING_MSGというメッセージを検索します。見つからない場合は、アプリケーションのプライマリ言語属性に戻ります。それでも見つからない場合、Application Expressエンジンは、言語コードがen-usであるこの名前のメッセージを検索します。


参照:

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションへのプライマリ言語の指定」