Agmodel
ホーム
日本語
 
   

ResourceServer Home Page

ResourceServer - 分散コンピューティングアプリケーションのためのローカライゼイションシステム

ResourceServerFileSetView.gif

ソフトウエアを国際化することによって、潜在的ユーザーを増大させることができます。国際化の1つとして、ボタンラベルやメニューアイテムなどの画面上の文字を様々な言語で表示できなければなりません。これは通常、各画面上の文字アイテムに言語から独立したIDを割り当て、実行時に各言語の対応する文字列をロードすることによって実現します。プログラマーがソフトウエアをこのような動的文字列ロードの方法に適応させた場合には、翻訳者は各言語で(”ID”,”文字列”)のペアのリストを作らなければなりません。

このプロセスは、Java言語では標準のJavaクラスである ResourceBundle を継承したコンパイル済みクラスのセットが使われます。このクラスのセットは関連する文字列を扱う”ファミリー”のようなものと考えられます(例えば、MetBrokerResources)。”ファミリー”の各メンバーは1つの言語に特化します(例えば、中国語を扱う MetBrokerResources_zh)。また時には言語と国の組み合わせの場合もあります(例えば、シンガポールの中国語を扱う MetBrokerResources_zh_sg)。 ”ファミリー”は特定の場所にもっともふさわしい文字列を提供する責任を負います。

Java の国際化サポートは他のほとんどの言語よりも優れています。しかし、ResourceBundle を使うことにはたくさんの問題が残ります。特に分散コンピューティング環境では次のような問題点があります。

  • 最も適当な bundle を探すには、たくさんのネットワークリクエストとレスポンスが必要であり、これには時間がかかります。
  • たとえ1つの文字列が必要な場合であっても、ResourceBundle全体(1言語分の全ての文字列)がクライアントのコンピューターに転送されなければならない。
  • もしアプレットがJarアーカイブで保存されるならば、すべての ResourceBundle ”ファミリー”(すべての言語)がクライアントに転送されなければなりません。
  • ResourceBundle ファミリーに新しい言葉を追加したときには、それぞれのファミリーのメンバーは再コンパイルする必要があり、また新しい JAR に再パッケージする必要があるでしょう。

ResourceServer はこれらの問題に対処するための Java アプリケーションです。通常はResourceBundleファミリーに保存される文字列は、代わりにサーバーアプリケーションに管理されるデータベースに保存されます。クライアントアプリケーションは Java Remote Method Invocation (RMI) を使ってResourceServerと通信し、表示したい言語を指定するとともに、必要な文字列のIDを渡します。そして、クライアントアプリケーションは必要な文字列だけを受け取ります。

ホームへ戻る