ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド
11g リリース 1 (11.1.1)
B61375-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

23.6 アプリケーションの翻訳

Oracle Reports Servicesのどのアプリケーションにも、次のような様々なメッセージが使用されています。

このうち最初の2つについては、NLS_LANG環境変数を正しく設定し、適切なメッセージ・ファイルを用意することで、メッセージが自動的に翻訳されます。アプリケーションの一部として定義されているメッセージおよびボイラープレート・テキストを翻訳するには、Oracleの翻訳ツールであるTranslationHubを使用します。また、コードの文字列にはPL/SQLライブラリを使用すると便利です。


注意:

TranslationHubの使用方法は、Oracle Developer SuiteドキュメントCDおよびOracle Technology Network(http://www.oracle.com/technology/index.html)を参照してください。


PL/SQLブロック内の定数テキストは、手動で翻訳する必要があります。これは、このテキストが明確に区切られておらず、多くの場合、変数や文字列から構成されているためです。このような文字列を翻訳するには、PL/SQLライブラリを使用して柔軟なメッセージ構造を実装します。

ビルトイン・プロシージャSRW.MESSAGEによって、またはトリガーやプロシージャから表示項目にメッセージを割り当てることによってプログラムから表示されるメッセージには、連結可能なPL/SQLライブラリを使用して、柔軟なメッセージ機能を実装できます。ライブラリはホスト上に格納し、実行時に動的に連結できます。実行時には、検索パスに基づいて、連結されたライブラリを読み込むことができます。たとえば、ライブラリにイタリア語のメッセージのみが格納されているとします。

FUNCTION nls_appl_mesg(index_no NUMBER)
RETURN CHAR
IS
   msg CHAR(80);
BEGIN
   IF index_no = 1001 THEN
      msg := 'L''impiegato che Voi cercate non esiste...';
   ELSIF index_no = 1002 THEN
      msg := 'Lo stipendio non puo essere minore di zero.';
   ELSIF  ...
   .
   .
   ELSE
      msg := 'ERRORE: Indice messaggio inesistente.';
   END IF;
   RETURN msg;
END;

このようなルーチンは、一般に文字式が使用可能な場所であればどこでも使用できます。たとえば、適切に翻訳されたアプリケーション・メッセージを使用して警告を表示するには、次のコードを組み込みます。

SRW.MESSAGE(1001,nls_appl_mesg(1001));

注意:

SRW.MESSAGEビルトイン・プロシージャを含めてSRWビルトイン・パッケージの詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。


アプリケーションを別の言語に変更するには、nls_appl_mesファンクションを含むPL/SQLライブラリを、翻訳済みテキストを指定したnls_appl_mesgファンクションを含む同名のライブラリに置き換えるだけです。