The Jakarta Project

Tomcat における地域化

このドキュメントは、Tomcatで供給される地域化したコンテンツを開発するために必要な情報を提供します。

このドキュメントの対象は Tomcat のアプリケーションの開発者、 特定のロケールにコンテンツを変換する必要のある国際化や地域化の専門家です。

このドキュメントは、いくつかの章に分れています。

Tomcat における地域化されたリソースの構成方法

この章では、Tomcatで地域化された版のリソースに対してアクセスできるようにする仕組みを説明しますが、必ずしもHTML ページや、JavaScript ファイル、イメージファイルなどに限りません。

Tomcat は、地域化された版のコンテンツを供給できるようにするための 3 つの仕組みを提供します。

地域化されたリソース検索のためのファイルベースの構成

このタイプの地域化されたコンテンツの構成は、 java.lang.ResourceBundleのリソース検索方法を使って、 リソースの基本名に基づいて問い合わせられたリソースの地域化された版のを探そうとします。

例えば、次のようなシナリオを仮定します。

この仕組みでは、次の順にリソースを検索します。

この仕組みを使うときには、すべての地域化された版はデフォルト (地域化された名前がないリソース)と同じディレクトリに位置することになるでしょう。

開発者へのメモ: それぞれの地域化されたファイルを提供するために URL を変更する必要はありません。

地域化されたリソース検索のためのDocbase ベースの構成

このタイプの地域化されたリソースの構成は、 "docbase" ディレクトリ下に地域化されたドキュメント階層が存在するかどうかを問い合わせることで、 地域化された版のリソースを見つけようとします。 ドキュメントの構成は、JavaHelp が使っているものと同様です。

例えば、次のようなシナリオを仮定します。

この仕組みでは、次の順にリソースを検索します。

この仕組みを使ったとき、すべての地域化されたバージョンは異なるディレクトリに位置することになります。 すべての指定したロケールのファイルは、[docbase]/[ロケール] を共通の親ディレクトリとするサブディレクトリの中にあるでしょう。

開発者へのメモ: 地域化された版のファイルにおいては、URL を変更する必要があるかもしれません。 これは、特にそれらの URL が相対参照をしている時です(例えば、上のディレクトリのドキュメントへのアクセス)

実装に関する話題

org.apache.tomcat.request.StaticInterceptor クラスが、地域化されたリソースの検索を処理するために使われています。

これは、server.xml の対応するエントリを記述することにより実現されています。 StaticInterceptor クラスは、以下のどれかの値を設定できる localizationと呼ばれる属性を含んでいます。

以下は、ファイルベースの検索をするための StaticInterceptor エントリの例です。

<RequestInterceptor className="org.apache.tomcat.request.StaticInterceptor" debug="0" localization="file" suppress="false" />

以下は、docbase ベースの検索をするための StaticInterceptor エントリの例です。

<RequestInterceptor className="org.apache.tomcat.request.StaticInterceptor" debug="0" localization="docbase" suppress="false" />

デフォルトのモードは、地域化されたリソースを検索しないように設定されています。

将来と拡張性

将来別のタイプの地域化構成をサポートするためには、すでに実装されている上記のファイルベースの仕組みを拡張すればできます。

この章は Jakarta 開発者に関係しています。Tomcat ユーザは読み飛ばしてもかまいません。

これを実現するためのステップは、 org.apache.tomcat.request.StaticInterceptor, org.apache.tomcat.util.FileUtil, org.apache.tomcat.core.Context を適切に修正することです。

必要な行動は、そのチームは(FileUtil内の)地域化された検索メソッドを開発して、(StaticInterceptorContext内で)その検索メソッドを呼び出すように実装することです。

[訳注: これは鰈崎義之が翻訳しました。 日本語訳に対するコメントは、jajakarta-report@nekoyanagi.com宛に送って下さい。]


Copyright © 1999-2001, Apache Software Foundation