ナビゲーション・ヘッダーをスキップ
Oracle Help for the Web開発者ガイド Table of Contents
目次
Previous topic
前へ
Next topic
次へ

複数のロケールに対するOHWのデプロイ

OHW 1.xアーキテクチャでは、ロケールごとにOHWサーブレットのインスタンスが1つ必要です。 このため、複数の言語でヘルプを提供するには、OHWサーブレットの複数のインスタンスが必要となります。 これは、複数のWebアプリケーションまたはエンタープライズ・アプリケーションのセットアップが必要であることを意味するものではありません。

OHW Webアプリケーションのweb.xmlファイルでは、OHWサーブレットの複数の名前付きインスタンスを定義できます。各インスタンスには、OHWインスタンスのロケールを定義し、そのサーブレットのローカライズされたヘルプセットをロードする、異なるOHW構成ファイルを含めることができます。 さらに、OHWサーブレットの各インスタンスに対してサーブレット・マッピングを定義します。通常、マッピングは/en/*/ja/*/de/*などのような言語コードです。 例として、OHWサーブレットの3つのインスタンスを含むweb.xmlファイルを次に示します。それぞれ、英語(en)、日本語(ja)およびドイツ語(de)のコンテンツに対応します。

<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
  <login-config>
    <auth-method>BASIC</auth-method>
  </login-config>

  <servlet>
    <servlet-name>en</servlet-name>
    <servlet-class>oracle.help.OHW</servlet-class>
    <init-param>
      <param-name>configFileName</param-name>
      <param-value>/helpsets/help_en/ohwconfig.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>en</servlet-name>
    <url-pattern>/en/*</url-pattern>
  </servlet-mapping>


  <servlet>
    <servlet-name>ja</servlet-name>
    <servlet-class>oracle.help.OHW</servlet-class>
    <init-param>
      <param-name>configFileName</param-name>
      <param-value>/helpsets/help_ja/ohwconfig.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>ja</servlet-name>
    <url-pattern>/ja/*</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>de</servlet-name>
    <servlet-class>oracle.help.OHW</servlet-class>
    <init-param>
      <param-name>configFileName</param-name>
      <param-value>/helpsets/help_de/ohwconfig.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>de</servlet-name>
    <url-pattern>/de/*</url-pattern>
  </servlet-mapping>

</web-app>

OHWサーブレットの各インスタンスには名前が付けられる点に注意してください。たとえば、言語コードが名前として使用されます。 各サーブレットのconfigFileName初期化パラメータは、異なるohwconfig.xmlファイルを指します。 各サーブレットには、特定の名前(de)のサーブレットをURLパターン(/de/*)にマップする<servlet-mapping>があります。 これにより、ローカライズされたヘルプの各セットに対してサーブレット・マッピングが設定されます。 この例では、次のURLが有効です。

  http://<hostname>:<port>/<web-app-context-path>/en/
  http://<hostname>:<port>/<web-app-context-path>/ja/
  http://<hostname>:<port>/<web-app-context-path>/de/

OHWサーブレットは、最初の要求まで初期化されません。 たとえば、これまでユーザーが日本語コンテンツのURLにアクセスしていない場合、OHWサーブレット・インスタンスは日本語ヘルプセットをロードしません。 したがって、OHWは、実際に使用されているコンテンツに対してのみサーバー上のメモリーを使用します。

UIXを使用している場合

Oracle UIXテクノロジで構築されたアプリケーションでOHWを使用している場合、registerLocaleSpecificServlet()メソッドを使用して、各ロケールに対して設定したURLをoracle.cabo.ui.data.help.OracleHelpProviderに登録します。 このメソッドのJavadocは次のとおりです。

registerLocaleSpecificServlet()メソッド
registerLocaleSpecificServlet(Locale locale, String localeSpecificServletLocation)

特定のロケールについて、異なるOHWサーブレット・インスタンスを登録します。 特定のロケールを持つエンド・ユーザーのブラウザから要求が送信された場合、OracleHelpProviderは、そのロケールについて登録されたHelpProviderを検索します。 言語、国および可変値との一致が見つからない場合、言語および国が一致するロケールが登録されているかどうかをチェックします。 言語および国の一致が見つからない場合は、言語のみについてロケールが登録されているかどうかをチェックします。 一致が見つからない場合、作成時に登録されたデフォルトのOHWサーブレット・インスタンスを使用して、要求を処理します。

パラメータ:

locale  -  このOHWインスタンスが使用されるロケール

localeSpecificServletLocation  -  OHWサーブレットの場所

UIX HelpProviderメカニズムを使用して状況依存ヘルプを実装する場合、data:destination="topic1@ui:helpTopics"の例のように、リンクまたはボタンの参照先をデータバインドします。 OracleHelpProviderにはトピックID topic1が渡され、そのトピックを表示するためのURLを戻します。 OracleHelpProviderは、HTTPリクエストのブラウザ・ロケールを検証し、このロケールを使用して、registerLocaleSpecificServlet()メソッドにより登録されたURLのセットから最も一致するベースURLを選択します。