(57)【特許請求の範囲】
【請求項１】
クライアントによって選択された特性に基づいてＷｅｂページを、サーバで、ローカライズする方法であって、前記Ｗｅｂページにおいて、ローカライズ要素を定義するキーが複数のコントロール・タイプに関連付けられ、各コントロール・タイプは少なくとも１つのプロパティに関連付けられ、かつ各プロパティは前記選択された特性に合致する前記プロパティを表す、ある値を取り出すデータに関連付けられ、前記ローカライズ要素は、複数のコントロール・タイプを含む混成辞書を関連付けられ、前記複数のコントロール・タイプは、テキストボックス、ボタン、リンク、ドロップダウン・リスト、および複合コントロールのうちの一つまたは複数を定義することが可能であり、
前記方法は、
（ａ）特定のＷｅｂページを求める、前記選択された特性を表すデータを含む、クライアントの要求に応じて、前記特定のＷｅｂページの中で、前記キーが関連付けられた前記コントロール・タイプのすべてのインスタンスを検出するステップと、
（ｂ）ステップ（ａ）で検出された各コントロール・タイプの各インスタンスのプロパティを、前記プロパティに関連付けられた前記値を、前記キーと前記選択された特性とに関連付けられたデータを使用して、獲得するステップと、
（ｃ）ステップ（ａ）で検出された前記コントロール・タイプの各インスタンスに関して、前記コントロール・タイプの前記インスタンスの各プロパティ上に値を設定するステップであって、前記コントロール・タイプの前記インスタンスの前記プロパティが、ステップ（ｂ）で獲得された、前記プロパティに関する前記値、を有するようにする、ステップと、
（ｄ）前記特定のＷｅｂページを、当該Ｗｅｂページがステップ（ｃ）で設定された各プロパティの値を含むように変換し、前記変換されたＷｅｂページを、前記クライアントに配信するステップと
を備えることを特徴とする方法。
【請求項２】
前記特性は、文化、言語、ロケーション、外観、スキン、ビジネス規則、および検証のうちの少なくとも１つを備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記キーは、
（ａ）前記少なくとも１つのコントロール・タイプと、
（ｂ）各コントロール・タイプに関連付けられた各プロパティと、
（ｃ）各プロパティに関連付けられた各値と
を備えるローカライズ要素を識別する構成可能な識別子（configurable identifier）
を備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記ローカライズ要素は、データベース、ルース・リソース・ファイル（loose resource file）、コンパイルされたデータ・ファイル、ＸＭＬファイル、およびテキスト・ベースのファイルのうちの１つの中にデータ構造を備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記キーを関連付ける前記ステップは、
（ａ）前記少なくとも１つのプロパティに関連付けられた前記値を、前記選択された特性に適合する代替の値に変換するステップと、
（ｂ）前記キーに関連付けられた前記代替の値を含むリソース・ファイルを生成するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記少なくとも１つのコントロール・タイプは、少なくとも１つのマークアップ言語コントロールを備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記Ｗｅｂページがディスプレイのために要求された際、前記Ｗｅｂページをレンダリングするステップをさらに含み、前記キーが適用されているかどうかを検出する前記ステップは、
（ａ）前記Ｗｅｂページをレンダリングする前記ステップ中に前記少なくとも１つのコントロール・タイプの前記インスタンスを認識するステップと、
（ｂ）前記インスタンスが、前記キーを識別する属性を含むと決定するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項８】
各プロパティ、および前記プロパティに関連付けられた前記値を獲得する前記ステップは、
（ａ）リソース・ファイルの中で前記キーを検出するステップと、
（ｂ）前記リソース・ファイルの中で、前記キーに関連付けられた各プロパティ、および前記プロパティに関連付けられた前記値を読み取るステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項９】
前記値を設定する前記ステップは、各プロパティ、および前記プロパティに関連付けられた前記値を前記キーのロケーションにおいて各コントロール・タイプの前記インスタンスに割り当てるステップを備えることを特徴とする請求項１に記載の方法。
【請求項１０】
割り当てる前記ステップは、カスタマイズされたＰａｇｅクラスのＲｅｎｄｅｒメソッドを使用して行われることを特徴とする請求項９に記載の方法。
【請求項１１】
前記コントロール・タイプに関連付けられた各プロパティの前記値を用いて、各コントロール・タイプの前記インスタンスをマークアップ言語にレンダリングするステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１２】
レンダリングする前記ステップは、前記所望の特性に応じてローカライズされたマークアップ・データを作成し、前記ローカライズされたマークアップ・データは、Ｗｅｂページ・ブラウザ・プログラムによって可読であることを特徴とする請求項１１に記載の方法。
【請求項１３】
請求項１に記載の前記複数のステップをプロセッサに実行させるマシン命令を格納することを特徴とするマシン可読媒体。
【請求項１４】
クライアントによって選択された特性に基づいてＷｅｂページをローカライズするシステムであって、前記Ｗｅｂページにおいて、ローカライズ要素を定義するキーが複数のコントロール・タイプに関連付けられ、各コントロール・タイプは少なくとも１つのプロパティに関連付けられ、かつ各プロパティは前記選択された特性に合致する前記プロパティを表す、ある値を取り出すデータに関連付けられ、前記ローカライズ要素は、複数のコントロール・タイプを含む混成辞書を関連付けられ、前記複数のコントロール・タイプは、テキストボックス、ボタン、リンク、ドロップダウン・リスト、および複合コントロールのうちの一つまたは複数を定義することが可能であり、
前記システムは、
（ａ）プロセッサと、
（ｂ）前記プロセッサに、
（ｉ）特定のＷｅｂページを求める、前記選択された特性を表すデータを含む、クライアントの要求に応じて、前記特定のＷｅｂページの中で、前記キーが関連付けられた前記コントロール・タイプのすべてのインスタンスを検出し、
（ｉｉ）前記検出された各コントロール・タイプの各インスタンスの各プロパティと、および前記プロパティに関連付けられた値を、前記キーと前記選択された特性に関連付けられたデータを使用して獲得し、かつ
（ｉｉｉ）検出された前記コントロール・タイプの各インスタンスに関して、前記コントロール・タイプの前記インスタンスの各プロパティ上に値を設定するようにさせ、前記コントロール・タイプの前記インスタンスの前記プロパティが、獲得された前記プロパティに関する値を有するようにし、
（ｉｖ）前記特定のＷｅｂページを、当該Ｗｅｂページが（ｉｉｉ）で設定された各プロパティ用の値を含むように変換し、当該変換されたＷｅｂページを、前記クライアントに配信する
ことを行わせる、前記プロセッサによって実行されるマシン命令が格納されている前記プロセッサと通信するメモリと
を備えることを特徴とするシステム。
【請求項１５】
前記キーは、
（ａ）前記少なくとも１つのコントロール・タイプと、
（ｂ）各コントロール・タイプに関連付けられた各プロパティと、
（ｃ）各プロパティに関連付けられた各値と
を備えるローカライズ要素を識別する構成可能な識別子（configurable identifier）
を備えることを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記ローカライズ要素は、データベース、ルース・リソース・ファイル（loose resource file）、およびコンパイルされたデータ・ファイルのうちの１つの中にデータ構造を備えることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記キーを関連付けることを前記プロセッサが行うようにさせる前記マシン命令は、前記プロセッサに
（ａ）前記少なくとも１つのプロパティに関連付けられた前記値を、前記選択された特性に適合する代替の値に変換すること、および
（ｂ）前記キーに関連付けられた前記代替の値を含むリソース・ファイルを生成すること
を実行させることを特徴とする請求項１４に記載のシステム。
【請求項１８】
前記少なくとも１つのコントロール・タイプは、少なくとも１つのマークアップ言語コントロールを備えることを特徴とする請求項１４に記載のシステム。
【請求項１９】
前記マシン命令は、前記Ｗｅｂページがディスプレイのために要求された際、前記Ｗｅｂページをレンダリングすることを前記プロセッサがさらに行うようさせ、前記キーを検出することを前記プロセッサが行うようにさせる前記マシン命令は、
（ａ）前記Ｗｅｂページをレンダリングする際に前記少なくとも１つのコントロール・タイプの前記インスタンスを認識すること、および
（ｂ）前記インスタンスが前記キーを識別する属性を含むことを決定すること
を前記プロセッサが行うようにさせることを特徴とする請求項１４に記載のシステム。
【請求項２０】
各プロパティ、および前記プロパティに関連付けられた値を獲得することを前記プロセッサが行うようにさせる前記マシン命令は、
（ａ）リソース・ファイルの中で前記キーを検出すること、および
（ｂ）前記リソース・ファイルの中で、前記キーに関連付けられた各プロパティ、および前記プロパティに関連付けられた前記値を、読み取ることを前記プロセッサが行うようにさせること
を特徴とする請求項１４に記載のシステム。
【請求項２１】
前記値を設定することを前記プロセッサが行うようにさせる前記マシン命令は、各プロパティ、および前記プロパティに関連付けられた前記値を、前記キーのロケーションにおいて各コントロール・タイプの前記インスタンスに割り当てることを前記プロセッサが行うようにさせることを特徴とする請求項１４に記載のシステム。
【請求項２２】
各プロパティを割り当てることを前記プロセッサが行うようにさせる前記マシン命令は、カスタマイズされたＰａｇｅクラスのＲｅｎｄｅｒメソッドの命令であることを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記マシン命令は、前記コントロール・タイプに関連付けられた各プロパティの前記値を用いて各コントロール・タイプの前記インスタンスをマークアップ言語にレンダリングすることを前記プロセッサが行うようにさせることを特徴とする請求項１４に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、ローカル特性（local characteristic）を反映するＷｅｂページを作成することに関し、より具体的には、Ｗｅｂページが、コントロール上に配置されたキー属性に基づいてコントロールを自動的にローカライズする（特定の地域に適用できるように変更する）ことができるようにＷｅｂページ上のコントロールに関する複数のプロパティをグループ化することに関する。
【０００２】
【従来の技術】
ローカライズとは、ユーザに関係のある特定の１つまたは複数の特性に関してソフトウェアをカスタマイズ（customize）することを指す。例には、特定のデザイン・テーマおよび／またはカラー・テーマを有するスキン（skin）を使用してユーザ・インターフェースの外観をカスタマイズすること、ユーザの経験またはニーズとの関係でユーザに利用可能なコントロールのセットを制限すること、ビジネス規則に従ってユーザに特定のコントロールまたは特定のデータを提供すること、Ｗｅｂフォームに入力されるデータの文化ベースの検証を提供すること、および特定のユーザにソフトウェアを合わせるその他の変更、が含まれる。通常、ローカライズとは、ユーザの特定の文化または社会に合わせてソフトウェアをカスタマイズすることを指す。文化とは、一般に、ユーザの選好の言語と、地球上におけるユーザの地理的出身地または地理的ロケーションに依存するその他の特性の組み合わせを指す。したがって、ローカライズには、しばしば、メニューおよびメッセージをユーザの言語に翻訳すること、また異なるアルファベット、異なる日付形式および数字形式、あるカラーに対する異なる感受性に対応するようにソフトウェア・プログラムの中のユーザ・インターフェースを変更すること、ならびにユーザの文化特性および社会特性に適切なその他のカスタマイズを行うことが含まれる。
【０００３】
Ｗｅｂベースのアプリケーションに関して、ローカライズのために使用される２つの主な技法は、各ページの静的翻訳、および動的翻訳である。静的翻訳は、翻訳者が、Ｗｅｂページにアクセスが行われる各地域ごとにＷｅｂページのカスタマイズされたバージョンを作成することを必要とする。静的翻訳は、Ｗｅｂサイトが少数のページを有する場合、またはサイトが非常に高速の、または非常に正確なパフォーマンスの要件を有する場合に使用するのが最適である。もちろん、静的翻訳の抱える最も重要な問題は、サイトによって提供されるＷｅｂページの管理容易性（manageability）および維持に関するコストが増大することである。
【０００４】
動的翻訳では、Ｗｅｂページは、ユーザがそこからＷｅｂページを要求した場所（locale）に関する文化情報を使用して（キャッシュ最適化が行われなければ）オン・ザ・フライで（on the fly；こっそりと）生成される。このコンテキストにおける動的翻訳は、ある言語を別の言語に自動的に翻訳することに必ずしも限定されないが、動的翻訳には、ランタイムにプロパティの値について、基準ベースへの書き込み（criteria-based insertions）または基準ベースの置換を行う能力が含まれる。動的翻訳を行う場合、Ｗｅｂページは、ユーザが要求を行った際に生成される。Ｗｅｂページを生成することは、ときとして、Ｗｅｂページのレンダリングと呼ばれる。ただし、Ｗｅｂページをレンダリングすることには、ディスプレイ装置上にグラフィカル・イメージを実際に生成することが含まれることも、含まれないこともある。例えば、サーバ・コントロールに基づいてＨＴＭＬをレンダリングするＡＳＰ．ＮＥＴを使用する場合、サーバ・コントロール上のプロパティの値を変更することによってＨＴＭＬレンダリングを行うことが可能である。この説明では、コントロールは、Ｗｅｂページを介してデータを入力するためのテキスト・ボックス、Ｗｅｂページの中のボタン上のラベル、開発者が定義したコントロール・タイプ、などのコントロール・タイプのインスタンスを提供するデータのオブジェクトおよび／またはコードとして定義される。
【０００５】
動的翻訳中、ＨＴＭＬ出力は、基準ベースである所定のプロパティに基づいたサーバ・コントロール上のプロパティ、を変更することによってローカライズされる。コントロールのローカライズされるプロパティの値は、通常、データベースまたはファイルなどのデータ・ストア内に格納され、ときとして、データ・ストアの中のリソースと呼ばれる。この値は、Ｗｅｂアプリケーション開発者の文化を反映するベースライン・プロパティの値に設定されるのではなく、要求を行うユーザの文化を反映するローカライズされたプロパティの値に設定される。もちろん、この代替の挿入は、Ｗｅｂページをレンダリングするパフォーマンスに影響を与える。しかし、動的翻訳は、静的翻訳と比べて管理容易性を向上させ、維持費用を低減する。
【０００６】
現行では、Ｗｅｂページ開発者は、しばしば、いくつかのキーを、Ｗｅｂアプリケーションの中で定義された各コントロール・インスタンスに、、動的翻訳中にそのコントロール・インスタンスのプロパティがローカライズされた値でレンダリングされるべきことを示す各コントロール・インスタンスに、割り当てる。例えば、Ｗｅｂページの中でボタン・コントロール・インスタンスをレンダリングするＷｅｂアプリケーション・コードに、いくつかのキーを割り当てることができる。１つのキーが、要求を行うユーザの言語のラベルで、ボタンのラベルがレンダリングされるべきこと、を示すことが可能である。ボタンが、要求を行うユーザの文化において望ましいと考えられるあるカラーでレンダリングされるべきことを別のキーが示すことが可能である。また、ドロップダウン・リスト、グラフィック記号などのその他のコントロール・インスタンスに関して、複数のキーがしばしば使用される。各キーは、通常、データベースの中またはファイルの中に格納された単一のプロパティの値を参照する。したがって、Ｗｅｂページの要求がなされるサーバにユーザから送られた文化属性は、Ｗｅｂページ中にレンダリングされる各コントロール・インスタンスの各プロパティに文化的に適切な値が獲得されるように、各キーと組み合わされる。
【０００７】
ローカライズされる値を備えるＷｅｂページ内に、レンダリングされる多数のコントロール・インスタンスの各プロパティのキーを含めることは、相当なプログラミングの時間と労力が必要とされる。また、多数のコントロール・タイプおよび多数の文化に対する対応するプロパティの値のデータベースを確立することにも、相当な時間と労力が必要とされる。さらに、動的翻訳中にデータベースまたはファイルから各プロパティの値を個々に獲得することは、、ユーザによる閲覧のためにＷｅｂページがレンダリングされる際の応答時間を遅くする。必要とされるプログラミングおよび処理を少なくするため、ローカライズ・プロパティを互いにグループ化して、ローカライズ・プロセスのより多くの部分を自動的に行うことが望ましい。
【０００８】
【発明が解決しようとする課題】
本発明は、文化、スキン、フィルタリングされた機能のセット、またはその他の所望される特徴などの選択された特性に基づいて、Ｗｅｂページをローカライズするための方法を対象とする。上記Ｗｅｂページは、ブラウザ・プログラムによってＷｅｂページがレンダリングされる際にローカライズされるべきコントロールのインスタンスを含む。ローカライズされるべき各コントロール・インスタンスには、属性として、構成可能なキー（configurable key）が含まれる。キーは、単に単一のキーと値のペア（key-value pair）を参照するのではなく、１つまたは複数のタイプのコントロールに関連付けられた１つまたは複数のローカライズされるプロパティの値のローカライズ要素（localization element）を参照する。コントロールの各インスタンス上に１つまたは複数のプロパティの値のローカライズ要素に対するリファレンスを含めることにより、そうでなければＷｅｂページをローカライズする多数のキーと値のペアを提供するのに必要とされることになる相当な量のプログラミングが節約される。
【０００９】
【課題を解決するための手段】
Ｗｅｂページのレンダリング中、選択された特性に関連付けられた適切なローカライズされたプロパティの値が、キーを含むことが確認された各コントロール・インスタンスに自動的に適用される。プロパティの値は、好ましくは、キャッシュに入れられたリソース・ファイルから獲得され、これにより、アクセス時間が向上する。キャッシュに入れられたリソース・ファイルは、好ましくは、データベースの中に格納されたローカライズ要素のデータ構造から生成される。ただし、プロパティの値は、別法では、データベースまたはその他の格納装置から直接に獲得してもよい。
【００１０】
好ましくは、プロパティの値は、ユーザの文化、役割、またはその他の選択された基準に基づく翻訳、またはその他のカスタマイズされた値である。例えば、選択された特性が特定の文化である場合、プロパティの値は、コントロールのラベルとしてその文化の言語の語、またはその文化に適切なコントロール上のカラー、を備えることが可能である。より複雑なケースでは、プロパティの値は、ドロップダウン・リスト・コントロールとして州または県のリスト（a list of states or provinces）を備えるその文化の特定された言語の複数の語であることが可能である。特定の言語の語であれ、選択された特性に基づく何らかの他のプロパティであれ、カスタマイズされたプロパティの値は、コントロール・ボタン、ラベル、ドロップダウン・リスト、またはその他の複雑なコントロールなどのコントロール・タイプのインスタンスに適用される。
【００１１】
Ｗｅｂページに関してコントロールのインスタンスが検出されたとき、そのコントロールのそのインスタンスに問い合わせを行ってキーを特定する属性を含むかどうかが判定される。選択された特性およびキーが、リソース・マネージャによって使用されて、リソース・ファイルから対応する１つまたは複数のプロパティの値が読み取られる。コントロールのインスタンスのコントロール・タイプに関連付けられたプロパティが、そのコントロールのそのインスタンスに割り当てられ、また次に、そのプロパティの値が、リソース・ファイルから獲得された値に設定される。この割当ておよび値設定は、好ましくは、カスタマイズされたＰａｇｅクラスのＲｅｎｄｅｒメソッドによって行われる。このステップが完了した後、従来の、または標準のＲｅｎｄｅｒメソッドが使用されて、Ｗｅｂページが、ＨＴＭＬページなどのマークアップ言語ページにレンダリングされる。
【００１２】
本発明の別の態様は、ローカライズ要素を定義するデータ構造を対象とする。好ましくは、ローカライズ要素は、所望の特性によるセット内に一緒にグループ化される。各ローカライズ要素は、固有要素キーで識別され、１つまたは複数のコントロール・タイプの混成辞書に関連付けられる。各コントロール・タイプは、１つまたは複数のプロパティおよび対応するプロパティの値の別の混成辞書に関連付けられる。
【００１３】
本発明のその他の態様は、データベースの中のローカライズ要素を管理するため、およびリソース・ファイルを生成するための命令を格納する方法、システム、および媒体をそれぞれ対象とする。好ましくは、グラフィカル・ユーザ・インターフェースを使用して、設計者、プログラマ、翻訳者、オペレータ、またはその他のユーザが、Ｗｅｂページを構成する１つまたは複数のＷｅｂアプリケーションに関してローカライズするデータ（localization data）を入力し、操作できるようにする。また、ユーザは、各アプリケーションがサポートする特性に関してローカライズするデータも入力し、操作することができる。また、さらに、グラフィカル・ユーザ・インターフェースは、ユーザが、要素キー、コントロール・タイプ、プロパティ、およびプロパティの値を確立し、拡張されたローカライズ要素データを収容する特定の形式を備えたコンパイルされていないリソース・ファイル、またはコンパイルされたリソース・ファイルを生成できるようにもする。したがって、また、本発明は、この特定の形式でリソース・ファイルの書込みおよび読取りを行うリソース・ライタおよびリソース・リーダも対象とする。
【００１４】
本発明の以上の態様、および付随する利点の多くは、添付の図面と併せて以下の詳細な説明を参照して本発明をよりよく理解することで、より明白となる。
【００１５】
【発明の実施の形態】
例としての動作環境
図１およびそれに関連する以下の説明は、本発明を実施することができる適切なコンピュータ環境の簡単な一般的な説明を提供するものである。本発明は、好ましくは、通信網を介してクライアント・コンピュータ装置またはその他の遠隔コンピュータ装置に結合されたサーバとして機能する単一のコンピュータ装置上で実施される。また、クライアント・コンピュータ装置は、通常、図１に示す機能構成要素も含む。必要ではないが、本発明は、Ｗｅｂページのローカライズを可能にするようにサーバによって実行され、そうすることにより、クライアント・コンピュータまたはコンピュータ装置によって、ローカライズされた状態でＷｅｂページをレンダリングすることが可能になる、そのようにサーバによって実行されるプログラム・モジュールなどのコンピュータ実行可能命令を使用するものとして説明される。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ・タイプを実装する、アプリケーション・プログラム、ルーチン、オブジェクト、構成要素、機能、データ構造等を含む。また、特にクライアント装置に関して、ハンドヘルド装置、ポケット・パーソナル・コンピュータ装置、アプリケーション・プログラムを実行し、ネットワークに無線式に接続するデジタル・セル電話機、その他のマイクロ・プロセッサ・ベースの家庭用電化製品、またはプログラマブル家庭用電化製品、マルチ・プロセッサ・システム、ネットワーク・パーソナル・コンピュータ、ミニ・コンピュータ、メイン・フレーム・コンピュータ等を含むその他のコンピュータ・システム構成で本発明を実施するのも可能であることが、当分野の技術者には理解されよう。また、示すとおり、通信網を介してリンクされた遠隔処理装置と通信する１つまたは複数のサーバによってタスクが行われる分散コンピュータ環境で本発明を実施することも可能である。分散コンピュータ環境では、プログラム・モジュールを、ローカル・メモリ格納装置と遠隔メモリ蓄積装置（memory storage device）の両方に配置することが可能である。
【００１６】
図１を参照すると、本発明を実施する例としてのシステムは、処理装置２１、システム・メモリ２２、およびシステム・バス２３を備えた従来のサーバ２０の形態を備えた汎用コンピュータ装置を含む。システム・バスは、システム・メモリを含む様々なシステム構成要素を処理装置２１に結合し、様々なバス・アーキテクチャの任意のものを使用するメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含むいくつかのタイプのバスの任意のものであることが可能である。システム・メモリは、読取り専用メモリ（ＲＯＭ）２４、およびランダム・アクセス・メモリ（ＲＡＭ）２５を含む。始動中などにサーバ２０内の要素間で情報の転送するのに役立つ基本ルーチンを含む基本入力／出力システム２６（ＢＩＯＳ）が、ＲＯＭ２４の中に格納されている。サーバ２０は、ハード・ディスク（図示せず）に対して読取りおよび書込みを行うためのハード・ディスク・ドライブ２７、取外し可能磁気ディスク２９に対する読取りおよび書込みを行うための磁気ディスク・ドライブ２８、およびＣＤ−ＲＯＭまたはその他の光媒体などの取外し可能光ディスク３１に対して読取りおよび書込みを行うための光ディスク・ドライブ３０をさらに含む。ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光ディスク・ドライブ３０はそれぞれ、ハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光ディスク・ドライブ・インターフェース３４でシステム・バス２３に接続される。このドライブおよび関連するコンピュータ可読媒体が、サーバ２０のためのコンピュータ可読マシン命令、データ構造、プログラム・モジュール、およびその他のデータの不揮発性ストーレッジを提供する。本明細書で説明する例としての環境は、ハード・ディスク、取外し可能な磁気ディスク２９、および取外し可能な光ディスク３１を使用するが、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク（ＤＶＤ）、ベルヌーイ・カートリッジ、ＲＡＭ、ＲＯＭなどの、コンピュータによってアクセス可能なデータを格納することができるその他のタイプのコンピュータ可読媒体も、例としての動作環境で使用できることが当分野の技術者には理解されよう。
【００１７】
オペレーティング・システム３５、１つまたは複数のアプリケーション・プログラム３６、その他のプログラム・モジュール３７、およびプログラム・データ３８を含め、いくつかのプログラム・モジュールをハード・ディスク上、磁気ディスク２９上、光ディスク３１上、ＲＯＭ２４上、またはＲＡＭ２５上に格納することができる。ユーザは、キーボード４０およびポインティング・デバイス４２などの入力装置を介してサーバ２０にコマンドおよび情報を入力することができる。その他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナ等が含まれることが可能である。以上およびその他の入力／出力（Ｉ／Ｏ）装置が、しばしば、システム・バス２３に結合されたＩ／Ｏインターフェース４６を介して処理装置２１に接続される。Ｉ／Ｏインターフェースという用語は、シリアル・ポート、パラレル・ポート、ゲーム・ポート、キーボード・ポート、および／またはユニバーサル・シリアル・バス（ＵＳＢ）として具体的に使用される各インターフェースを包含するものとする。また、モニタ４７、またはその他のタイプのディスプレイ装置も、ビデオ・アダプタ４８などの適切なインターフェースを介してシステム・バス２３に結合され、アプリケーション・プログラム、Ｗｅｂページ、および／またはその他の情報をディスプレイするのに使用可能である。モニタに加えて、サーバは、スピーカ（サウンド・カードまたはその他のオーディオ・インターフェース（図示せず）を介して）やプリンタなどのその他の周辺出力装置（図示せず）に結合することも可能である。
【００１８】
上記に示したとおり、本発明の多くの態様は、好ましくは、単一のマシン上で実施される。ただし、サーバ２０は、遠隔コンピュータ４９のような１つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境で動作することも可能である。遠隔コンピュータ４９は、別のサーバ、クライアント・パーソナル・コンピュータ、ルータ、ネットワークＰＣ、ピア装置、またはサテライト、あるいは他の共通ネットワーク・ノードであることが可能であり、通常、サーバ２０に関連して説明した要素の多く、またはすべてを含む。ただし、外部メモリ格納装置５０だけを図１に示している。図１に描いた論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）５１、およびワイド・エリア・ネットワーク（ＷＡＮ）５２を含む。そのようなネットワーク環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【００１９】
ＬＡＮネットワーキング環境で使用される場合、サーバ２０は、ネットワーク・インターフェースまたはアダプタ５３を介してＬＡＮ５１に接続される。ＷＡＮネットワーキング環境で使用される場合、サーバ２０は、通常、インターネットなどのＷＡＮ５２を介して通信を確立するため、モデム５４、またはケーブル・モデム、デジタル加入者回線（ＤＳＬ）インターフェース、または統合サービスデジタル網（ＩＳＤＮ）インターフェースなどのその他の手段を含む。内部にある、または外部にあることが可能なモデム５４が、システム・バス２３に接続される、またはＩ／Ｏ装置インターフェース４６を介して、つまりシリアル・ポートを介してそのバスに結合される。ネットワーク化された環境では、サーバ２０に関連して描いたプログラム・モジュール、またはその部分を遠隔メモリ格納装置の中に格納することが可能である。図示するネットワーク接続は、例としてのものであり、無線通信リンクおよび広帯域網リンクなどのコンピュータ間で通信リンクを確立するその他の手段も使用できることが理解されよう。
【００２０】
例としての実施形態
図２は、本発明の好ましい実施形態に関するアーキテクチャを示している。管理アプリケーション６０が、サーバ２０または別のパーソナル・コンピュータを使用してＷｅｂアプリケーションのためのローカライズ要素の定義を作成し、維持することを、ユーザに与えている。管理アプリケーション６０は、Ｗｅｂアプリケーション、独立型ソフトウェア・アプリケーション、設計スタジオ内のツール、またはその他の形態のソフトウェア・モジュールであることが可能である。好ましくは、管理アプリケーション６０は、構造化照会言語（ＳＱＬ）データベース６２（例えば、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＳＱＬ  Ｓｅｒｖｅｒ（商標）プログラム）とインターフェースを取る。データベース６２は、ローカライズ要素、文化情報、Ｗｅｂアプリケーション情報、バージョニング情報、およびリソース定義およびＷｅｂアプリケーションを作成して維持することに関係のあるその他のデータ、を格納する。データベース６２は、ローカライズされるべきハイパー・テキスト・マークアップ言語（ＨＴＭＬ）要素間の関係をさらに格納する。
【００２１】
また、管理アプリケーション６０は、カスタム形式リソース・ファイル６４を生成するのにも使用される。好ましくは、リソース・ファイル６４は、Ｗｅｂサーバ上で管理アプリケーションのサブ・ディレクトリの中に格納するために作成される。リソース・ファイル６４は、コンパイルされていないファイルであるルース（loose）リソース・ファイルとすることが可能である。あるいはまたは、リソース・ファイル６４は、リソースだけを含むコンパイルされたダイナミック・リンク・ライブラリ（ＤＤＬ）ファイルであるサテライト・アセンブリとすることが可能である。要するに、サテライト・アセンブリは、文化に基づいて別々のＤＬＬに一緒にコンパイルされ、文化名に対応するディレクトリ構造の中に配置されるルース（loose）リソース・ファイルである。好ましくは、ルース・リソース・ファイルは、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＲＥＳＧＥＮ．ＥＸＥなどのモジュールを使用して構築される。サテライト・アセンブリは、好ましくは、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＡＬ．ＥＸＥなどのアセンブリ生成ツールを使用して構築される。
【００２２】
Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの現世代のアクティブ・サーバ・ページ（ＡＳＰ．ＮＥＴ（商標））などのＷｅｂサーバ・ランタイム・プログラム６６が、リソース・ファイル６４を利用してＷｅｂアプリケーションのＷｅｂページをローカライズする。リソース・リーダ６８を使用してリソース・ファイル６４の特定の形式が読み取られ、要素リソース・セット７２にローカライズ情報が提供される。リソース・リーダ６８によって読み取られた各文化ごとに１つの要素リソース・セットが確立される。リソース・マネージャ７０が、Ｗｅｂサーバ・ランタイム・プログラム６６によって使用されて、要素リソース・セット７２からローカライズ情報が獲得される。リソース・マネージャ７０および要素リソース・セット７２は、好ましくは、ローカライズ情報に対するより高速のアクセスを提供するため、アプリケーション・キャッシュ７４の中に格納される。
【００２３】
Ｗｅｂアプリケーションは、通常、サーバ・ページ８０ａおよびサーバ・ページ８０ｂのような複数のサーバ・ページを含む。サーバ・ページは、Ｃ＃（Ｃシャープ）、Ｃ＋＋などの言語、およびその他の言語からコンパイルされた組み込まれた実行可能なプログラム（embedded executable programs）を含むことが可能である。あるいはまた、サーバ・ページは、コモン・ゲートウェイ・インターフェース（ＣＧＩ）スクリプト、ＪＡＶＡ（商標）、またはその他のＷｅｂ言語を含むことが可能である。サーバ・ページは、ローカライズされるページ・クラスから導出され、このクラスのインスタンスが、サーバ・ページの中のコントロール・プロパティのローカライズを行う。サーバ・ページのレンダリング中、ローカライズされるページ・クラスのインスタンスが、サーバ・ページのコントロール・インスタンス全体を繰り返して、コントロール・インスタンスのローカライズされるプロパティに関連付けられたキー属性を探し出す。ローカライズされるページ・クラスのインスタンスは、リソース・マネージャ７０を利用して、要素リソース・セット７２からローカライズされるプロパティを獲得し、次に、サーバ・ページのコントロール・インスタンスにローカライズされる値を設定する。このローカライズ・プロセスに関するさらなる詳細を以下に説明する。ローカライズされる値が設定された後、ＨＴＭＬページ８２ａおよび８２ｂのようなクライアント・ページがレンダリングされる。
【００２４】
図３は、ローカライズ要素の例としてのデータ構造９０を示している。ローカライズ要素９２および９４のような各ローカライズ要素は、単純なキーと値のペアではなく、複数のフィールドを含む。好ましくは、フィールドは、ローカライズ要素キー（ときとして、要素キーと呼ばれる）、コントロール・タイプ、プロパティ、および値を含む。各ローカライズ要素は、コントロール・タイプおよびそのプロパティの混成辞書に関連付けられた要素キーで一意的に識別される。要素キー・フィールドは、サーバ・ページ・コントロール・インスタンスに追加されるキー属性を代表する。キー属性は、そのキー属性を含むサーバ・ページ・コントロール・インスタンスの自動ローカライズを行わせるトリガとして作用する。例えば、以下に説明するとおり、「キー」のキー属性を有するあらゆるサーバ・ページ・コントロール・インスタンスが、自動的にローカライズされる。また、サーバ・ページ・コントロール・インスタンス上のキー属性は、データ構造９０のローカライズ要素キーの１つに対応する属性値も含む。したがって、例えば、キー属性「キー」、および「Ｋ１」の属性値を含むサーバ・ページ・コントロール・インスタンスは、ローカライズ要素９２のローカライズ情報を使用して自動的にローカライズされる。この例では、「キー」というキー属性名を使用したが、キー属性は、ｗｅｂ．ｃｏｎｆｉｇファイルを介して他の任意の所望の名前で構成することができる。これとは対照的に、Ｋ１やＫ２のようなローカライズ要素キー名は、管理アプリケーションを使用して定義されてデータベースの中に格納され、後に文化ベースのリソース・ファイルの中に格納される。
【００２５】
上記に示したとおり、各ローカライズ要素キーは、コントロール・タイプの混成辞書に関連付けられる。例えば、ローカライズ要素９４は、コントロール・タイプ「ラベル」および「リンク」に関連付けられたキー「Ｋ２」を含む。混成辞書のキーは、「Ｓｙｓｔｅｍ．Ｗｅｂ．ＵＩ．Ｌａｂｌｅ」のようなコントロール・タイプ名である。名前とのペアにおける値は、指定された文化に関する複数のプロパティおよびプロパティの値を含む別の混成辞書を参照する。例えば、ローカライズ要素９４は、プロパティ「テキスト」および「フォント」に関連付けられたコントロール・タイプ「ラベル」を含む。プロパティ「テキスト」は、「ローカライズ・ツール・キット」のフランス語訳である「ＳＫＤ  ｄｅ  ｌｏｃａｌｉｓａｔｉｏｎ」の値１００に関連付けられている。このラベルのためのフォントは、ストリング「Ａｒｉｅｌ」に等しい値を有する。同様に、ローカライズ要素９４は、プロパティ「テキスト」および「カラー」を含むコントロール・タイプ「リンク」を含む。リンク・コントロール・タイプのテキスト・プロパティは、「設計者」のフランス語訳である「ｃｏｎｃｅｐｔｅｕｒ」に対する値１０２を有する。
【００２６】
図３で見ることができるとおり、データ構造９０は、ローカライズ要素全体にわたる複製のコントロール・タイプを含むことが可能である。例えば、ローカライズ要素９２も、コントロール・タイプ「ラベル」を含む。ローカライズ要素９４と同様に、ローカライズ要素９２のラベル・コントロール・タイプは、テキスト・プロパティおよびフォント・プロパティを含む。ただし、テキスト・プロパティおよびフォント・プロパティの値は、ローカライズ要素９２と異なっている。例えば、テキスト・プロパティの値１０４は、「ようこそ」のフランス語訳である「Ｂｉｅｎｖｅｎｕｅ」である。また、コントロール・タイプのプロパティの値が、いくつかのローカライズ要素の間で同一である可能性があることも明白であろう。実際、様々な異なるセットのコントロール・タイプを複数のローカライズ要素キーに関連付けることができる。様々なその他のコントロール・タイプをローカライズ要素キーに関連付けるのが可能であることが、当分野の技術者には認められよう。例えば、ローカライズ要素９２は、複数のプロパティおよび、値１０６に対する「ＯｐｔｉｏｎＶａｌｕｅ０」および値１０８に対する「ＯｐｔｉｏｎＶａｌｕｅ２」などの関連する値を含む「ドロップダウン」コントロール・タイプを含む。ボタン、およびその他の標準のコントロール・タイプも使用することができる。前述したプロパティは、単純なストリング値、または複雑なデータ・タイプであるのが可能なことが、当分野の技術者には認められよう。さらに、Ｗｅｂアプリケーションを特定のクライアント・ユーザの文化またはその他の特性に合わせるスキン、限定されたセットのユーザ機能、またはその他の変更に合わせて、その他のデータ構造を定義することができる。
【００２７】
説明のため、図４に示す例としてのＷｅｂページ１１０は、フランス文化圏内のクライアント・ユーザに合わせてローカライズされている。リンク１１２は、図３のプロパティの値１０２によって提供される「Ｃｏｎｃｅｐｔｅｕｒ」のローカライズされたテキスト・プロパティの値でレンダリングされている。同様に、図４のラベル１１１は、図３のプロパティの値１００によって提供される「ＳＤＫ  ｄｅ  Ｌｏｃａｌｉｚａｔｉｏｎ」のテキスト・プロパティの値でローカライズされている。図４のラベル１１４は、図３のプロパティの値１０４に対応する。ドロップダウン・リスト１１６は、図３のプロパティの値１０８に対応する「ＦＲ」の現在選択されているプロパティの値を示している。
【００２８】
図５は、Ｗｅｂアプリケーションのためのローカライズ要素を定義するための論理を示すフローチャートである。ステップ１２０で、Ｗｅｂ設計者などのユーザが、Ｗｅｂアプリケーションを定義する。Ｗｅｂアプリケーションを定義することは、事実上、前述したようなデータ構造を提案する。Ｗｅｂ設計者は、Ｗｅｂ設計者がＷｅｂアプリケーションの名前、記述、バージョン、リソース・ファイル・ベース名、およびその他の情報を入力できるようにするグラフィカル・ユーザ・インターフェースを使用することができる。好ましくは、Ｗｅｂ設計者は、Ｗｅｂアプリケーションを構成するサーバ・ページのためのデザインも考案する（ただし、必ずしもコードは考案しない）。ステップ１２２で、Ｗｅｂ設計者は、Ｗｅｂアプリケーションがサポートする文化を定義する。Ｗｅｂアプリケーションがサポートする文化を定義することは、Ｗｅｂ設計者がＷｅｂアプリケーションをローカライズすることを望む目標の文化のリストをＷｅｂ設計者が入力することができるグラフィカル・ユーザ・インターフェースの別のＷｅｂフォームを介して、実行することができる。例えば、Ｗｅｂ設計者は、クライアント・ユーザがＷｅｂアプリケーションのページを翻訳するのを望む可能性がある目標言語のリストを入力することができる。さらに、Ｗｅｂ設計者は、スキン、フィルタリングされたセットのコントロール、またはＷｅｂアプリケーションが選択的にサポートするその他のカスタマイズ特性も定義することができる。
【００２９】
ステップ１２４で、Ｗｅｂ設計者は、固有要素キーでローカライズ要素を定義する。前述したステップで述べたとおり、Ｗｅｂ設計者は、グラフィカル・ユーザ・インターフェースを使用してデータベースに要素キーを入力することができる。各要素キーに関して、ステップ１２６で、Ｗｅｂ設計者は、要素キーに関連付けられるべき１つまたは複数のコントロール・タイプを定義して入力する。同様に、ステップ１２８で、Ｗｅｂ設計者は、クライアントＷｅｂページにレンダリングされる際にローカライズされていることをＷｅｂ設計者が望む各コントロール・タイプに関して、１つまたは複数のプロパティを定義して入力する。ステップ１３０で、Ｗｅｂ設計者は、各プロパティに対して初期中立言語値（initial neutral language value）を割り当てる。中立言語値は、設計者の母語であること、またはあるプロパティに対するデフォルトの言語またはベース言語であることを設計者が望むその他の言語であることが可能である。他の言語への翻訳などの代替のプロパティの値が、プロセスにおける後の時点で提供される。
【００３０】
前述したステップの各ステップで、入力された値が、データベースの中に格納されたデータ構造の中のローカライズ要素に追加される。判定ステップ１３２で、追加のローカライズ要素が必要かどうかをＷｅｂ設計者が判定する。Ｗｅｂ設計者は、追加のローカライズ要素を追加することを望む場合、それぞれの追加のローカライズ要素に関してステップ１２４から１３０を繰り返す。Ｗｅｂアプリケーションを定義するためのツールを介して前述したローカライズ要素がデータベースの中で自動的に確立され得ることが、当分野の技術者には認められよう。ローカライズ要素のすべてが定義されると、Ｗｅｂ設計者（またはその他のオペレータ）は、Ｗｅｂアプリケーションのサーバ・ページのコーディング（coding）に取りかかることができる。
【００３１】
図６は、レンダリング時にローカライズされるＷｅｂページを作成するための論理ステップを示すフローチャートである。好ましくは、Ｗｅｂページは、サーバからダウンロードされるが、当分野の技術者には、Ｗｅｂページがクライアント・コンピュータ上でアクセスされること、メモリの中のコントロール階層であること、または別の形態のＷｅｂページを含むことが可能であることが認められよう。ステップ１３４で、Ｗｅｂ設計者またはＷｅｂプログラマが、ＬｏｃａｌｉｚｅｄＰａｇｅと呼ばれるローカライズされるページ・クラスからページを導出する。簡明にするため、サーバ上に格納するために作成されているページを「サーバ・ページ」と呼ぶ。ＬｏｃａｌｉｚｅｄＰａｇｅクラスのインスタンスが、サーバからダウンロードされたページをクライアント・コンピュータのディスプレイにレンダリングする際、コントロール・プロパティの値を設定する。この時点でページは、これより本明細書で「クライアント・ページ」と呼ばれる。この機能を実行するため、ＬｏｃａｌｉｚｅｄＰａｇｅクラスのインスタンスは、標準のＡＳＰ．ＮＥＴ  Ｐａｇｅクラスの標準のＲｅｎｄｅｒメソッドに優先する。標準の．ＮＥＴ  Ｐａｇｅクラスの標準Ｒｅｎｄｅｒメソッドの代わりに、ＬｏｃａｌｉｚｅｄＰａｇｅクラスの固有Ｒｅｎｄｅｒメソッドを使用するようＡＳＰ．ＮＥＴランタイムに命令するため、Ｗｅｂ設計者は、次の指示文をページに挿入しなければならない。
<%@Page language="C#" inherits="LocalizationToolkit.LocalizedPage"%>
ステップ１３６で、Ｗｅｂ設計者またはＷｅｂプログラマが、Ｐａｇｅ＿Ｌｏａｄイベント時に要求を行うクライアントの文化を設定する指示文を含める。例えば、Ｗｅｂ設計者は、クライアントが要求したページのダウンロード中で提供される文化属性から、またはクライアントのプロファイル・データベースから、またはクライアントのコンピュータ上でアクセスされる以前に置かれたクッキーから、またはユニバーサル・アクセス・アカウント（例えば、クライアント用のＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＰａｓｓｐｏｒｔ（商標）アカウント・データ）から、または別の所望のソースから、クライアントの文化を獲得するために、サーバ・ページ中に命令を含めることができる。指示文は、クライアントが要求したサーバからのＷｅｂページのダウンロードのスレッド上にその文化を設定する。
【００３２】
ステップ１３７で、次に、Ｗｅｂ設計者またはＷｅｂプログラマは、サーバ・ページ・コードの残りの部分を作成して所望の１つまたは複数の機能を完成させる。サーバ・ページを作成している間、またはサーバ・ページの初期作成後、Ｗｅｂ設計者またはＷｅｂプログラマは、ステップ１３８で、ローカライズされるべきサーバ・ページの中の各コントロール・インスタンスに関して、キー属性、およびそのキー属性の値としての所望の要素キーを挿入する。
【００３３】
図７は、選択されたＷｅｂアプリケーションのために選択された文化を反映するローカライズ要素をカスタマイズするための論理ステップを示すフローチャートである。上記に示したとおり、ローカライズ要素の各プロパティには、中立言語値が割り当てられる。ローカライズ要素をカスタマイズすることには、文化などの選択された基準（criteria）に基づいて各プロパティに対して代替の値を提供することが必然的に含まれる。カスタマイズすることは、代替のカスタム値を手作業で入力すること、中立値を自動的に変換すること、または別の動作にローカライズされた代替の値を提供させること、を含めることができる。グラフィカル・ユーザ・インターフェース（ＧＵＩ）を介してＷｅｂアプリケーションを選択した後、ＧＵＩのユーザは、ステップ１４０で、自身がＷｅｂアプリケーションのプロパティの値をカスタマイズする目標の文化を選択する。ステップ１４２で、ユーザは、カスタマイズを行うためのリンクを選択し、これにより、Ｗｅｂアプリケーションのローカライズ要素がディスプレイされる。次に、ユーザは、ローカライズ要素を検討して、選択された文化のための代替のプロパティの値を有していないプロパティを探し出す。ステップ１４４で、ユーザは、グラフィカル・ユーザ・インターフェースのリンクを選択して、選択された文化のための代替の値を含まないローカライズ要素を編集する。ステップ１４６で、ユーザは、グラフィカル・ユーザ・インターフェースのＷｅｂフォームを介して代替のプロパティの値を入力する。本例では、代替のプロパティの値は、ステップ１４０で選択された文化の言語における１つまたは複数の語である。ステップ１４７で、グラフィカル・ユーザ・インターフェースが、データベース中に代替のプロパティの値を格納する。
【００３４】
判定ステップ１４８で、ユーザは、選択されたＷｅｂアプリケーションに代替の値が入力されるべきであることをさらなるローカライズ要素が必要としているかどうかを判定する。別のローカライズ要素が、代替の値を必要としている場合、論理は、ステップ１４４に戻り、そこで、別のローカライズ要素が入力される。選択された文化に関して入力されるべきさらなる代替の値が存在しない場合、判定ステップ１５０で、異なる文化に対応するさらなる代替の値を入力するかどうかの判定が行われる。これは、例えば、その使用マルチ・リンガルである場合に可能であり得る。異なる文化のために代替の値を入力することができる場合、論理は、ユーザが別の文化を選択するようにステップ１４０に戻る。ＷｅｂアプリケーションによってサポートされるべきであるとＷｅｂ設計者が判定した文化のすべてに関してローカライズ要素のための代替の値が入力されると、ローカライズ要素のデータベースは、リソース・ファイルの生成に使用される準備ができている。カスタマイズするステップは、自動化されること、かつ／またはオンラインおよびオフラインの言語辞書および翻訳辞書、および代替の値のその他のソースを使用して支援することが可能であることが、当分野の技術者には認められよう。
【００３５】
図８は、Ｗｅｂアプリケーションのすべてのページがコード化され、すべてのローカライズ要素がカスタマイズされた後、Ｗｅｂアプリケーションおよびそれに関連するリソース・ファイルに展開する（deploy；配置する）ための論理を示すフローチャートである。ステップ１５２で、ユーザは、生成するリソース・ファイルのタイプを選択する。好ましくは、ユーザは、単にグラフィカル・ユーザ・インターフェースを介して２つのボタンのどちらかを押す。一方のボタンは、ルース・リソース・ファイルを生成することに対応し、他方のボタンは、サテライト・アセンブリを生成することに対応する。ルース・リソース・ファイルを生成するボタンを押すことにより、ＳｅｔｔｉｎｇｓクラスのＧｅｎｅｒａｔｅＲｅｓｏｕｒｃｅＦｉｌｅｓメソッドが活動化される。あるいは、サテライト・アセンブリを生成するボタンを押すことにより、ＳｅｔｔｉｎｇｓクラスのＧｅｎｅｒａｔｅＳａｔｅｌｌｉｔｅｓメソッドが活動化される。以上のメソッド以外に、Ｓｅｔｔｉｎｇｓクラスは、構成設定（ｗｅｂ．ｃｏｎｆｉｇファイルなどの）にアクセスするためのメソッド、利用可能な文化およびアプリケーションを伴うドロップダウン・リストをロードするためのメソッド、およびその他のヘルパ（helper）機能、を備える。
【００３６】
判定ステップ１５４で、選択された生成メソッドが、各ローカライズ要素の各プロパティを検査して、少なくとも中立言語またはベース言語が各プロパティに定義されているのを確実にする。中立言語が定義されていない場合には、未定義のプロパティに関連付けられたコントロール・インスタンスをレンダリングすることができない。このように、プロパティのどれかに少なくとも中立言語が定義されていない場合、どの種類のリソース・ファイルを生成するのに取りかかることにも意味が無い。この理由は、レンダリング中、誤りが不可避的に生じるからである。したがって、すべてのプロパティが、中立言語またはベース言語を使用して定義されていない場合、ステップ１５５で誤りが処理され、その誤りがユーザに警報される。リソース・ファイルを生成する前にその他の検査または検証を行うのも可能であることが、当分野の技術者には認められよう。
【００３７】
各プロパティに対して中立言語またはベース言語が定義されている場合、上記の選択されたメソッドは、ステップ１５６で適切なリソース・ファイルを生成する。好ましくは、ＧｅｎｅｒａｔｅＲｅｓｏｕｒｃｅＦｉｌｅｓメソッドは、．ＮＥＴ（商標）フレームワークからのＲＥＳＧＥＮ．ＥＸＥツールをＷｒｉｔｅｒクラスの固有Ｗｒｉｔｅｒメソッドとともに利用する。Ｗｒｉｔｅｒメソッドは、標準の．ＮＥＴ（商標）ＲｅｓｏｕｒｃｅＷｒｉｔｅｒメソッドのカスタマイズされた実装形態であり、図３に関連して前述したローカライズ要素の拡張コントロール・タイプ、プロパティ、および値を反映する形式（format）でルース・リソース・ファイルを作成する。同様に、ＧｅｎｅｒａｔｅＳａｔｅｌｌｉｔｅｓメソッドは、．ＮＥＴ（商標）フレームワークからのＡＬ．ＥＸＥツールを利用して、ＧｅｎｅｒａｔｅＲｅｓｏｕｒｃｅＦｉｌｅｓメソッドによって生成されたルース・リソース・ファイルからコンパイルされたサテライト・アセンブリを生成する。生成中、サーバ上にリソース・ファイルを格納するためにサブ・ディレクトリが作成される。リソース・ファイルが生成され、適切なサブ・ディレクトリの中に格納されると、ユーザは、ステップ１５８でリソース・ファイルおよびＷｅｂアプリケーション・ページに展開して、クライアント・コンピュータが、ネットワークを介してそのＷｅｂアプリケーション・ページにアクセスすることができるようにする。
【００３８】
図９は、要求されたサーバ・ページをローカライズして、クライアント・コンピュータにレンダリングするための概略の論理を示すフローチャートである。ステップ１６０で、サーバが、特定のサーバ・ページに対するクライアント要求を受信する。好ましくは、サーバのＩｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（ＩＩＳ）ソフトウェアが、要求されたサーバ・ページ・ファイル名をＡＳＰ．ＮＥＴ（商標）ランタイム・プログラム（例えば、．ＮＥＴ（商標）共通言語ランタイム（ＣＬＲ）モジュール）に渡す。好ましくは、サーバ・ページを探し出すため、またその他の設定のためにｗｅｂ．ｃｏｎｆｉｇファイルを利用して、ＡＳＰ．ＮＥＴ（商標）ランタイム・プログラムが、ステップ１６２で（通常、ＯｎＩｎｉｔイベントの結果として）、サーバ・ページに基づき、メモリの中にサーバ・コントロール階層をロードする。ＰａｇｅＬｏａｄイベント時に、ＡＳＰ．ＮＥＴ（商標）ランタイムが、ステップ１６４で、サーバ・コントロール階層に、要求を行うクライアントの文化を獲得して設定する。
【００３９】
Ｒｅｎｄｅｒイベント時に、ＡＳＰ．ＮＥＴランタイムが、仮想（virtual）テーブルを検査して、標準のＰａｇｅクラスのインスタンスの代わりにＬｏｃａｌｉｚｅｄＰａｇｅクラスのインスタンスが呼び出されるべきことを決定する。仮想テーブルは、通常、コンパイル時に設定されるか、または前述した＠Ｐａｇｅ指示文に基づいて初期ランタイム時に設定される。ステップ１６６で、ＡＳＰ．ＮＥＴ（商標）ランタイムが、ＬｏｃａｌｉｚｅｄＰａｇｅクラスの固有Ｒｅｎｄｅｒメソッドを呼び出して、サーバ・コントロール階層の中のコントロール・インスタンスにローカライズされるプロパティの値を設定する。図１０に関連して、このステップのさらなる詳細を以下に述べる。サーバ・コントロール階層がローカライズされた後、ＬｏｃａｌｉｚｅｄＰａｇｅクラスの固有Ｒｅｎｄｅｒメソッドが、ステップ１６８でＰａｇｅクラスの標準のＲｅｎｄｅｒメソッドを呼び出す。次に、標準のＲｅｎｄｅｒメソッドは、標準のＴｅｘｔＷｒｉｔｅｒクラスのインスタンスを利用して、ＨＴＭＬ、ＸＭＬ、ＳＧＭＬ、またはその他の言語などの所望のマークアップ言語にサーバ・コントロール階層をレンダリングする。（このコンテキストで使用される「レンダリングする」という用語は、Ｗｅｂページのディスプレイを作成することではなく、変換することを意味する。）  ステップ１７０で、サーバが、レンダリングされたページをクライアントに送信し、処理を継続する。クライアント・コンピュータにおいて、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（商標）などのブラウザ・プログラムが、サーバから受信されたページのマークアップ言語を実行して、クライアント・コンピュータにおいてＷｅｂページをディスプレイする。したがって、ディスプレイされるＷｅｂページは、クライアントに適切なローカライズを含む。
【００４０】
上記に示したとおり、本発明全体を単一のマシン上で代わりに実施するのも可能であることに留意されたい。したがって、Ｗｅｂページが、クライアントに送信されるのではなく、サーバ上でローカライズされてレンダリングされ、サーバにおいてディスプレイされることも可能である。特定のデザインテーマおよび／またはカラー・テーマを有するスキンを使用してユーザ・インターフェースの外観をカスタマイズすること、ユーザの経験またはニーズとの関係でユーザに利用可能なコントロールのセットを制限すること、ビジネス規則に従ってユーザに特定のコントロールまたは特定のデータを提供すること、Ｗｅｂフォームに入力されたデータの検証に基づいて文化を提供すること、および特定のユーザにソフトウェアを合わせるその他の変更、にも同じ一般的ステップが適用されることが、当分野の技術者には認められよう。
【００４１】
図１０は、サーバ・ページをローカライズするための詳細な論理を示すフローチャートである。ステップ１７２で、ＬｏｃａｌｉｚｅｄＰａｇｅクラスの固有Ｒｅｎｄｅｒメソッドが、サーバ・コントロール階層のコントロール・インスタンスに対して深さ優先探索（depth-first search）を行って、ローカライズするコントロール・インスタンスを検出する。具体的には、コントロール・インスタンスが、Ｓｙｓｔｅｍ．Ｗｅｂ．ＵＩ．ＷｅｂＣｏｎｔｒｏｌｓから導出されているか、またはＳｙｓｔｅｍ．Ｗｅｂ．ＵＩ．ＨｔｍｌＣｏｎｔｒｏｌｓから導出されているかを固有Ｒｅｎｄｅｒメソッドが判定する。また、このステップは、コントロール・インスタンスのコントロール・タイプも判定する。適格なコントロール・インスタンスが検出されると、固有Ｒｅｎｄｅｒメソッドは、判定ステップ１７４で、コントロール・インスタンスのＡｔｔｒｉｂｕｔｅｓ集合を評価して、コントロール・インスタンスが事前定義されたキー属性（例えば、ｗｅｂ．ｃｏｎｆｉｇファイルの中で定義された名前を有する属性）を含むかどうかを判定する。コントロール・インスタンスが、そのキー属性を含まない場合、固有Ｒｅｎｄｅｒメソッドは、ステップ１７２に戻って別のコントロール・インスタンスを探索する。サーバ・コントロール階層の中にさらなるコントロール・インスタンスが存在しない場合、固有Ｒｅｎｄｅｒメソッドは、詳細なローカライズ・プロセスを終了する。
【００４２】
固有Ｒｅｎｄｅｒメソッドは、コントロール・インスタンス上でキー属性を検出したとき、そのコントロール・インスタンス上のそのキー属性に関連付けられた値を決定する。現行のコントロール・インスタンスに関するキー属性は、図３で定義したＫ１またはＫ２のようなローカライズ要素キーである。次に、固有Ｒｅｎｄｅｒメソッドは、そのキー属性値がＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスのインスタンスに利用可能であるようにする。
【００４３】
ステップ１７６で、固有Ｒｅｎｄｅｒメソッドは、呼び出すべき標準の．ＮＥＴ（商標）ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスの現行のインスタンスを探す。ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスのインスタンスは、ＷｅｂアプリケーションのＯｎＩｎｉｔイベント中にインスタンス化される。次に、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスのそのインスタンスは、ｗｅｂ．ｃｏｎｆｉｇファイルを介して構成可能なアプリケーション変数としてキャッシュに入れられる。ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスのインスタンスをキャッシュに入れることにより、Ｗｅｂアプリケーションの中のサーバ・ページごとにＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスの別個のインスタンスを生成するのではなく、そのインスタンスをＷｅｂアプリケーションのすべてのサーバ・ページの間で共用することができる。したがって、固有Ｒｅｎｄｅｒメソッドは、まず、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスの既存のインスタンスを調べる。ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスのどのインスタンスが、サーバ・コントロール階層に現在、関連付けられているかを固有Ｒｅｎｄｅｒメソッドが識別しない場合、ＬｏｃａｌｉｚｅｄＰａｇｅクラス（固有Ｒｅｎｄｅｒメソッドの導出元である）のインスタンスが、大域的に利用可能なメソッド、Ｓｅｔｔｉｎｇｓ．ＣｕｒｒｅｎｔＭａｎａｇｅｒを使用して、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスの現行のインスタンスを決定する。Ｓｅｔｔｉｎｇｓ．ＣｕｒｒｅｎｔＭａｎａｇｅｒメソッドは、最初に呼び出されたとき、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスの共用インスタンスを生成して、デフォルトの変数名ＬｏｃａｌｉｚｅｄＴｏｏｌｋｉｔＲｅｓｏｕｒｃｅＭａｎａｇｅｒの下でそのインスタンスをＡＳＰ．ＮＥＴ（商標）キャッシュの中に入れる。変数名はｗｅｂ．ｃｏｎｆｉｇファイルを介して構成可能である。
【００４４】
識別されると、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスのインスタンスは、クライアントの文化および要求されたサーバ・ページが属するＷｅｂアプリケーションに適切なリソース・ファイル（ｗｅｂ．ｃｏｎｆｉｇファイルの中の構成設定に応じて、ルース・ファイルまたはサテライト・アセンブリＤＬＬ）を探し出す。適切なリソース・ファイルをロードするため、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスのインスタンスは、ＥｌｅｍｅｎｔＲｅｓｏｕｒｃｅＳｅｔクラスのインスタンスを呼び出す。ＥｌｅｍｅｎｔＲｅｓｏｕｒｃｅＳｅｔクラスのインスタンスは、標準の．ＮＥＴ（商標）ＲｅｓｏｕｒｃｅＳｅｔクラスのカスタム実装形態である。ＥｌｅｍｅｎｔＲｅｓｏｕｒｃｅＳｅｔクラスのインスタンスは、カスタムＲｅａｄｅｒメソッド（およびカスタムＷｒｉｔｅｒメソッド）を利用して、要求を行うクライアントの文化、および要求されたサーバ・ページが属するＷｅｂアプリケーションに関連付けられた特定のフォーマットされたリソース・ファイルにアクセスする。例えば、特定の文化のためのリソース・ファイルを次のＣ＃ステートメントを使用してＥｌｅｍｅｎｔＲｅｓｏｕｒｃｅＳｅｔとしてメモリの中にロードすることができる。
【００４５】
ElementResourceSet rs=
Settings.CurrentManager.GetResourceSet(Thread.CurrentThread.CurrentUICulture,true,true)
as ElementResourceSet;
また、ＥｌｅｍｅｎｔＲｅｓｏｕｒｃｅＳｅｔクラスのインスタンスは、ハッシュ・テーブルを利用して、ローカライズ要素キー、およびＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスに対するリファレンスを含むキーと値のペアを保持する。標準のＲｅｓｏｕｒｃｅＳｅｔクラスの場合とは異なり、ハッシュ・テーブルのキーと値のペアにおける値は、単純なストリングではなく、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスに対応するオブジェクトである。コントロール・タイプのＨｙｂｒｉｄＤｉｃｔｉｏｎａｒｙおよびそのプロパティを構成するのは、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスである。クライアントの文化に基づいて取り出されたリソース・ファイルから、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスが、ステップ１７８で、１つまたは複数のプロパティのＨｙｂｒｉｄＤｉｃｔｉｏｎａｒｙおよび関連する値（ときとして、プロパティ・バッグとも呼ばれる）を獲得する。プロパティ・バッグは、サーバ・コントロール階層の中で識別されたコントロール・インスタンスのキー属性値およびタイプに基づいて獲得される。好ましくは、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスは、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのＳｅｔＰｒｏｐｅｒｔｉｅｓメソッドのサービスを使用して、識別されたコントロール・インスタンスのコントロール・タイプに関連付けられたプロパティおよび値のプロパティ・バッグ（ＨｙｂｒｉｄＤｉｃｔｉｏｎａｒｙ）を獲得する。リソース・ファイルの中の正しいコントロール・タイプにアクセスするため、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスは、別個のコントロール・キーを使用する。具体的には、コントロール・キーは、サーバ・コントロール階層の中のコントロール・インスタンスのラベル・タイプに対応するＳｙｓｔｅｍ．Ｗｅｂ．ＵＩ．Ｌａｂｅｌなどのコントロール・タイプ名である。
【００４６】
コントロール・キーに対応する値は、別のＨｙｂｒｉｄＤｉｃｔｉｏｎａｒｙを参照する。この第２のＨｙｂｒｉｄＤｉｃｔｉｏｎａｒｙは、クライアントの文化に関連付けられ、またコントロールの指定されたタイプに関連付けられたプロパティ名および値を含む。ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスは、好ましくは、ＳｅｔＰｒｏｐｅｒｔｉｅｓメソッドを使用して、このコントロール・インスタンスに関して定義されるすべてのローカライズされるプロパティを設定する。例えば、あるコントロールに対するローカライズされるプロパティの値は、次のＣ＃ステートメントを使用して設定することができる。
0004275379.tif 000002
【００４７】
次に、ステップ１８０で、この値の情報を用いて、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスが、好ましくは、ＳｅｔＰｒｏｐｅｒｔｉｅｓメソッドを使用して、サーバ・コントロール階層の中のコントロール・インスタンスのプロパティを設定する。ＳｅｔＰｒｏｐｅｒｔｉｅｓメソッドは、．ＮＥＴリフレクション・サービスを利用してプロパティを定義された値に設定する。リフレクション（反映）は、アセンブリ、モジュール、およびタイプをカプセル化するオブジェクトを提供する。リフレクションを使用して、タイプのインスタンスを生成し、そのタイプを既存のオブジェクトに結び付け、または既存のオブジェクトからそのタイプを獲得するのを動的に行うことが可能である。具体例として、ストリング・ベースのリソースのために次のＣ＃ステートメントを使用してＳｅｔＰｒｏｐｅｒｔｉｅｓメソッドを実装することができる（このメソッドを拡張して複雑なデータ・タイプの使用を可能にすることができる）。
【００４８】
0004275379.tif 000003
【００４９】
したがって、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスは、様々なコントロール・タイプ・プロパティとローカライズ要素キーの間の関係を管理する。ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスは、特定のローカライズ要素キーに関連付けられたすべてのプロパティを１つのＲｅｓｏｕｒｃｅＭａｎａｇｅｒコールにまとめることができ、これにより、１つのローカライズ要素キーを複数のプロパティに関連付けることができるようになる。プロパティは、コントロール・タイプによってさらにまとめられ、異なるコントロール・タイプが、同一のローカライズ要素キーを共用できるようになる。コントロール・インスタンスのプロパティのこの自動設定全体により、そうでなければサーバ・ページに関するＰａｇｅ＿Ｌｏａｄイベントを実行するために書かれなければならない初期設定コードを書く必要性が回避される。メモリの中のリソース・ファイルの使用は、より高速なアクセスを提供するが、コントロール・タイプ、プロパティ、および値には、データベースで直接にアクセスすることができる。例えば、ＲｅｓｏｕｒｃｅＭａｎａｇｅｒクラスの新しいインスタンスが、リソース・ファイルの代わりに、データベースにアクセスすることが可能である。この機能は、データベースの中のデータが頻繁に変化し、最新のデータが所望される場合、有用である可能性がある。
【００５０】
判定ステップ１８２で、コントロール・タイプに関して設定されるべきさらなるプロパティが存在するかどうかをＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスが判定する。そのコントロール・タイプに関して設定されるべきさらなるプロパティが存在する場合、ＬｏｃａｌｉｚａｔｉｏｎＥｌｅｍｅｎｔクラスのインスタンスは、ステップ１８０を繰り返す。そのコントロール・タイプに関してプロパティのすべてが設定された後、判定ステップ１８４で、サーバ・コントロール階層（ＳＣＨ）の終わりに到達したかどうかを固有Ｒｅｎｄｅｒメソッドが判定する。終わりに到達していない場合、固有Ｒｅｎｄｅｒメソッドは、ステップ１７２に戻って別のコントロール・インスタンスがないか調べる。サーバ・コントロール階層の終わりに到達すると、サーバ・コントロール階層の詳細なローカライズが完了であり、Ｗｅｂページを要求するクライアントに適切なマークアップ言語にレンダリングするローカライズの準備が整う。
【００５１】
本発明は、本発明を実施する好ましい形態、およびその変更形態に関連して説明してきたが、頭記の特許請求の範囲内でその他の多くの変更を加えるのが可能であることが、当分野の技術者には理解されよう。例えば、前述した方法は、オフィス・アプリケーション・ソフトウェアなどのパーソナル・プロダクティビティ・ツールに適用して、パーソナル・プロダクティビティ・ドキュメントのＸＭＬバージョンにおけるコントロールをローカライズすることが可能である。代替のクライアントベースの実施形態は、クライアントの文化に対応するリソース・ファイルが、クライアント装置にダウンロードされるようにし、クライアント・オペレーティング・システムまたはローカル・プログラムが、ローカライズを行って、クライアント・コンピュータ上で実行されるブラウザによるディスプレイのためにＷｅｂページをマークアップ言語にレンダリングすることが可能である。モバイル・クライアント装置が、モバイル・コントロール・ソフトウェア開発者キット（ＳＤＫ）を利用して本発明を実施することが可能である。したがって、本発明の範囲は、前述した説明によって決して限定されず、頭記の特許請求の範囲を参照することによって完全に決定されるものとする。
【図面の簡単な説明】
【図１】従来のサーバ・コンピュータの形態の汎用コンピュータ装置を使用して本発明を実装するための例としてのシステムを示すブロック図である。
【図２】本発明の好ましい実施形態のアーキテクチャを示すブロック図である。
【図３】ローカライズ要素のデータ構造を示すテーブルである。
【図４】フランス文化におけるクライアント・ユーザに対する本発明でローカライズされた例としてのＷｅｂページを示す図である。
【図５】Ｗｅｂアプリケーションのためのローカライズ要素を定義するための論理ステップを示すフローチャートである。
【図６】レンダリング時にローカライズされるＷｅｂページを作成するための論理ステップを示すフローチャートである。
【図７】選択されたＷｅｂアプリケーションのために選択された文化を反映するローカライズ要素をカスタマイズするための論理ステップを示すフローチャートである。
【図８】Ｗｅｂアプリケーションのすべてのページがコード化され、すべてのローカライズ要素が翻訳された後、Ｗｅｂアプリケーションおよび関連するリソース・ファイルに展開するための論理ステップを示すフローチャートである。
【図９】要求されたサーバ・ページをローカライズしてレンダリングするための概略の論理ステップを示すフローチャートである。
【図１０】サーバ・ページをローカライズするための詳細な論理ステップを示すフローチャートである。
【符号の説明】
２０  サーバ
２１  処理装置
２２  システム・メモリ
２３  システム・バス
２４  読取り専用メモリ
２５  ランダム・アクセス・メモリ
２６  基本入力／出力システム
２７  ハード・ディスク・ドライブ
２８  磁気ディスク・ドライブ
２９  磁気ディスク
３０  光ディスク・ドライブ
３１  光ディスク
３２  ハード・ディスク・ドライブ・インターフェース
３３  磁気ディスク・ドライブ・インターフェース
３４  光ディスク・ドライブ・インターフェース
３５  オペレーティング・システム
３６  アプリケーション・プログラム
３７  その他のプログラム・モジュール
３８  プログラム・データ
４０  キーボード
４２  ポインティング・デバイス
４６  Ｉ／Ｏインターフェース
４７  モニタ
４８  ビデオ・アダプタ
４９  遠隔コンピュータ
５０  外部メモリ格納装置
５１  ローカル・エリア・ネットワーク
５２  ワイド・エリア・ネットワーク
５３  ネットワーク・インターフェースまたはアダプタ
５４  モデム
６０  管理アプリケーション
６２  データベース
６４  リソース・ファイル
６６  Ｗｅｂサーバ・ランタイム・プログラム
６８  リソース・リーダ
７０  リソース・マネージャ
７２  要素リソース・セット
７４  アプリケーション・キャッシュ
８０ａ、８０ｂ  サーバ・ページ
８２ａ、８２ｂ  ＨＴＭＬページ
【図１】
0004275379.tif 000004
【図２】
0004275379.tif 000005
【図３】
0004275379.tif 000006
【図４】
0004275379.tif 000007
【図５】
0004275379.tif 000008
【図６】
0004275379.tif 000009
【図７】
0004275379.tif 000010
【図８】
0004275379.tif 000011
【図９】
0004275379.tif 000012
【図１０】
0004275379.tif 000013