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;
パラメータ
表14-1に、APEX_LANG.LANGファンクションで使用可能なパラメータを示します。
表14-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;
パラメータ
表14-2に、APEX_LANG.MESSAGEファンクションで使用可能なパラメータを示します。
表14-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
--
HTP.P(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であるこの名前のメッセージを検索します。
|
関連項目: Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイドの「アプリケーションへのプライマリ言語の指定」 |