言語検出の有効化
Oracle Formsアーキテクチャは、複数言語の配置をサポートしています。この機能の目的は、ユーザーが使用する言語に一致する適切な構成を自動的に選択することです。
この機能を使用すれば、だれでも同じURLを使用してOracle Formsアプリケーションを実行でき、しかもユーザーが使用する言語でアプリケーションを実行することができます。Oracle Forms Servicesには統合翻訳ツールは提供されていないため、翻訳済のアプリケーション・ソース・ファイルを用意する必要があります。
この節の内容は以下のとおりです。
言語検出の指定
「Web構成」ページの各構成セクションに、<config_name>.<language-code>
などの名前を付けた言語固有のセクションを作成できます。たとえば、構成セクションhrを作成し、フランス語と中国語を作成する場合は、構成セクションは次のようになります。
[hr]
lookAndFeel=oracle
width=600
height=500
envFile=default.env
[hr.fr]
envFile=french.env
[hr.zh]
envFile=chinese.env
言語検出機能の仕組み
Formsサーブレットが特定の構成(http://myserv/servlet/frmservlet?config=hr
など)のリクエストを受信した場合、リクエスト・ヘッダーaccept-language
からクライアントの言語設定を取得します。この設定には、優先順位の付いた言語のリストがあります。たとえば、accept-language: de, fr, en_usは、優先順位がドイツ語、フランス語、米語となります。サーブレットは、最初の言語に一致する言語固有の構成セクションを検索します。1つの構成セクションが見つからなければ、次の構成セクションへと検索を続けていきます。言語固有の構成が検索できなかった場合は、基本の構成を使用します。
Formsサーブレットが、特定の構成が指定されていないリクエストを受信した場合(config=
URLパラメータがないhttp://myserv/servlet/frmservlet
など)、サーブレットはデフォルトのセクションで最初の言語([.fr]など)に一致する言語固有のセクションを検索します。
マルチレベルの継承
基本構成のあらゆる言語固有の可変の値で共通の値が重複しないように、使いやすさを考慮した結果、言語固有のセクションでは言語固有のパラメータしか定義できないように設計されています。次の4つのレベルでの継承をサポートしています。
-
config=myconfig
のようなURLの問合せパラメータを使用した特定の構成が必要な場合、各パラメータの値は、ユーザーのブラウザの言語設定で最も優先順位の高い言語固有の構成セクション(たとえば、セクション[myconfig.fr])で検索されます。 -
検出されなかった場合、その値は基本構成セクション([myconfig])で検索されます。
-
そこでも検出されなかった場合は、言語固有のデフォルト・セクション([.fr]など)で検索されます。
-
最終的には、デフォルト・セクションで検索されます。
一般に、言語間で最も変更されやすいパラメータはenvFile
です。各言語で異なるenvFile
設定を使用すると、NLS_LANG
(異なる文字セット、日付、数値書式が可能)とFORMS_PATH
(言語固有のfmxファイルの取得)に異なる値を設定できます。
インラインIMEサポート
キーを一度打つと挿入カーソルのわきにその文字が直接表示されること(いわゆるインラインまたはオンザスポット入力)が(アジア言語の文字のように)不可能な場合であっても、インラインIMEサポートにより、Forms Webアプリケーションでは作成するテキストを正しく表示できます。これはデフォルトで有効になっています。これを無効にするには、baseHTMLファイルのアプレット・パラメータinlineIMEをfalseに設定します。
<HTML> <!-- FILE: base.htm (Oracle Forms) --> <BODY> ... <OBJECT classid=... > <PARAM NAME="inlineIME" VALUE="false"> <EMBED SRC="" ... inlineIME="false" > ... . </BODY> </HTML>