前へ
前へ
 
次へ
次へ

PL/SQLプロシージャで使用されるメッセージの翻訳

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

翻訳可能なメッセージ・ページで、翻訳可能なメッセージを作成します。

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

  1. アプリケーションの翻訳ページにナビゲートします。

    1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

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

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

    4. 「グローバリゼーション」の下で「テキスト・メッセージ」をクリックします。

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

  3. 「テキスト・メッセージを指定」で次を指定します。

    1. 名前: メッセージを識別するための名前を入力します。

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

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

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

      Good morning %0
      

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

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

APEX_LANG.MESSAGE APIについて

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;

パラメータ

表: APEX_LANG.MESSAGEのパラメータでは、APEX_LANG.MESSAGE APIで使用可能なパラメータについて説明します。

APEX_LANG.MESSAGEのパラメータ

パラメータ 説明

p_name

Oracle Application Expressで定義されたメッセージの名前。

p0

...

p9

動的置換値。p0は、メッセージの0%に対応します。p1は、メッセージの1%に対応します。p2は、メッセージの2%に対応します(以降同様)。

p_lang

取得されるメッセージの言語コード。指定しない場合、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 APIリファレンス「APEX_LANG」を参照してください。