JP4275379B2 - 効率的なWebページのローカライズ - Google Patents

効率的なWebページのローカライズ Download PDF

Info

Publication number
JP4275379B2
JP4275379B2 JP2002296670A JP2002296670A JP4275379B2 JP 4275379 B2 JP4275379 B2 JP 4275379B2 JP 2002296670 A JP2002296670 A JP 2002296670A JP 2002296670 A JP2002296670 A JP 2002296670A JP 4275379 B2 JP4275379 B2 JP 4275379B2
Authority
JP
Japan
Prior art keywords
property
instance
key
value
control type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002296670A
Other languages
English (en)
Other versions
JP2003186733A (ja
Inventor
ジェイ.アベル タッド
コザリ ニクヒル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003186733A publication Critical patent/JP2003186733A/ja
Application granted granted Critical
Publication of JP4275379B2 publication Critical patent/JP4275379B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Description

【0001】
【発明の属する技術分野】
本発明は、一般に、ローカル特性(local characteristic)を反映するWebページを作成することに関し、より具体的には、Webページが、コントロール上に配置されたキー属性に基づいてコントロールを自動的にローカライズする(特定の地域に適用できるように変更する)ことができるようにWebページ上のコントロールに関する複数のプロパティをグループ化することに関する。
【0002】
【従来の技術】
ローカライズとは、ユーザに関係のある特定の1つまたは複数の特性に関してソフトウェアをカスタマイズ(customize)することを指す。例には、特定のデザイン・テーマおよび/またはカラー・テーマを有するスキン(skin)を使用してユーザ・インターフェースの外観をカスタマイズすること、ユーザの経験またはニーズとの関係でユーザに利用可能なコントロールのセットを制限すること、ビジネス規則に従ってユーザに特定のコントロールまたは特定のデータを提供すること、Webフォームに入力されるデータの文化ベースの検証を提供すること、および特定のユーザにソフトウェアを合わせるその他の変更、が含まれる。通常、ローカライズとは、ユーザの特定の文化または社会に合わせてソフトウェアをカスタマイズすることを指す。文化とは、一般に、ユーザの選好の言語と、地球上におけるユーザの地理的出身地または地理的ロケーションに依存するその他の特性の組み合わせを指す。したがって、ローカライズには、しばしば、メニューおよびメッセージをユーザの言語に翻訳すること、また異なるアルファベット、異なる日付形式および数字形式、あるカラーに対する異なる感受性に対応するようにソフトウェア・プログラムの中のユーザ・インターフェースを変更すること、ならびにユーザの文化特性および社会特性に適切なその他のカスタマイズを行うことが含まれる。
【0003】
Webベースのアプリケーションに関して、ローカライズのために使用される2つの主な技法は、各ページの静的翻訳、および動的翻訳である。静的翻訳は、翻訳者が、Webページにアクセスが行われる各地域ごとにWebページのカスタマイズされたバージョンを作成することを必要とする。静的翻訳は、Webサイトが少数のページを有する場合、またはサイトが非常に高速の、または非常に正確なパフォーマンスの要件を有する場合に使用するのが最適である。もちろん、静的翻訳の抱える最も重要な問題は、サイトによって提供されるWebページの管理容易性(manageability)および維持に関するコストが増大することである。
【0004】
動的翻訳では、Webページは、ユーザがそこからWebページを要求した場所(locale)に関する文化情報を使用して(キャッシュ最適化が行われなければ)オン・ザ・フライで(on the fly;こっそりと)生成される。このコンテキストにおける動的翻訳は、ある言語を別の言語に自動的に翻訳することに必ずしも限定されないが、動的翻訳には、ランタイムにプロパティの値について、基準ベースへの書き込み(criteria-based insertions)または基準ベースの置換を行う能力が含まれる。動的翻訳を行う場合、Webページは、ユーザが要求を行った際に生成される。Webページを生成することは、ときとして、Webページのレンダリングと呼ばれる。ただし、Webページをレンダリングすることには、ディスプレイ装置上にグラフィカル・イメージを実際に生成することが含まれることも、含まれないこともある。例えば、サーバ・コントロールに基づいてHTMLをレンダリングするASP.NETを使用する場合、サーバ・コントロール上のプロパティの値を変更することによってHTMLレンダリングを行うことが可能である。この説明では、コントロールは、Webページを介してデータを入力するためのテキスト・ボックス、Webページの中のボタン上のラベル、開発者が定義したコントロール・タイプ、などのコントロール・タイプのインスタンスを提供するデータのオブジェクトおよび/またはコードとして定義される。
【0005】
動的翻訳中、HTML出力は、基準ベースである所定のプロパティに基づいたサーバ・コントロール上のプロパティ、を変更することによってローカライズされる。コントロールのローカライズされるプロパティの値は、通常、データベースまたはファイルなどのデータ・ストア内に格納され、ときとして、データ・ストアの中のリソースと呼ばれる。この値は、Webアプリケーション開発者の文化を反映するベースライン・プロパティの値に設定されるのではなく、要求を行うユーザの文化を反映するローカライズされたプロパティの値に設定される。もちろん、この代替の挿入は、Webページをレンダリングするパフォーマンスに影響を与える。しかし、動的翻訳は、静的翻訳と比べて管理容易性を向上させ、維持費用を低減する。
【0006】
現行では、Webページ開発者は、しばしば、いくつかのキーを、Webアプリケーションの中で定義された各コントロール・インスタンスに、、動的翻訳中にそのコントロール・インスタンスのプロパティがローカライズされた値でレンダリングされるべきことを示す各コントロール・インスタンスに、割り当てる。例えば、Webページの中でボタン・コントロール・インスタンスをレンダリングするWebアプリケーション・コードに、いくつかのキーを割り当てることができる。1つのキーが、要求を行うユーザの言語のラベルで、ボタンのラベルがレンダリングされるべきこと、を示すことが可能である。ボタンが、要求を行うユーザの文化において望ましいと考えられるあるカラーでレンダリングされるべきことを別のキーが示すことが可能である。また、ドロップダウン・リスト、グラフィック記号などのその他のコントロール・インスタンスに関して、複数のキーがしばしば使用される。各キーは、通常、データベースの中またはファイルの中に格納された単一のプロパティの値を参照する。したがって、Webページの要求がなされるサーバにユーザから送られた文化属性は、Webページ中にレンダリングされる各コントロール・インスタンスの各プロパティに文化的に適切な値が獲得されるように、各キーと組み合わされる。
【0007】
ローカライズされる値を備えるWebページ内に、レンダリングされる多数のコントロール・インスタンスの各プロパティのキーを含めることは、相当なプログラミングの時間と労力が必要とされる。また、多数のコントロール・タイプおよび多数の文化に対する対応するプロパティの値のデータベースを確立することにも、相当な時間と労力が必要とされる。さらに、動的翻訳中にデータベースまたはファイルから各プロパティの値を個々に獲得することは、、ユーザによる閲覧のためにWebページがレンダリングされる際の応答時間を遅くする。必要とされるプログラミングおよび処理を少なくするため、ローカライズ・プロパティを互いにグループ化して、ローカライズ・プロセスのより多くの部分を自動的に行うことが望ましい。
【0008】
【発明が解決しようとする課題】
本発明は、文化、スキン、フィルタリングされた機能のセット、またはその他の所望される特徴などの選択された特性に基づいて、Webページをローカライズするための方法を対象とする。上記Webページは、ブラウザ・プログラムによってWebページがレンダリングされる際にローカライズされるべきコントロールのインスタンスを含む。ローカライズされるべき各コントロール・インスタンスには、属性として、構成可能なキー(configurable key)が含まれる。キーは、単に単一のキーと値のペア(key-value pair)を参照するのではなく、1つまたは複数のタイプのコントロールに関連付けられた1つまたは複数のローカライズされるプロパティの値のローカライズ要素(localization element)を参照する。コントロールの各インスタンス上に1つまたは複数のプロパティの値のローカライズ要素に対するリファレンスを含めることにより、そうでなければWebページをローカライズする多数のキーと値のペアを提供するのに必要とされることになる相当な量のプログラミングが節約される。
【0009】
【課題を解決するための手段】
Webページのレンダリング中、選択された特性に関連付けられた適切なローカライズされたプロパティの値が、キーを含むことが確認された各コントロール・インスタンスに自動的に適用される。プロパティの値は、好ましくは、キャッシュに入れられたリソース・ファイルから獲得され、これにより、アクセス時間が向上する。キャッシュに入れられたリソース・ファイルは、好ましくは、データベースの中に格納されたローカライズ要素のデータ構造から生成される。ただし、プロパティの値は、別法では、データベースまたはその他の格納装置から直接に獲得してもよい。
【0010】
好ましくは、プロパティの値は、ユーザの文化、役割、またはその他の選択された基準に基づく翻訳、またはその他のカスタマイズされた値である。例えば、選択された特性が特定の文化である場合、プロパティの値は、コントロールのラベルとしてその文化の言語の語、またはその文化に適切なコントロール上のカラー、を備えることが可能である。より複雑なケースでは、プロパティの値は、ドロップダウン・リスト・コントロールとして州または県のリスト(a list of states or provinces)を備えるその文化の特定された言語の複数の語であることが可能である。特定の言語の語であれ、選択された特性に基づく何らかの他のプロパティであれ、カスタマイズされたプロパティの値は、コントロール・ボタン、ラベル、ドロップダウン・リスト、またはその他の複雑なコントロールなどのコントロール・タイプのインスタンスに適用される。
【0011】
Webページに関してコントロールのインスタンスが検出されたとき、そのコントロールのそのインスタンスに問い合わせを行ってキーを特定する属性を含むかどうかが判定される。選択された特性およびキーが、リソース・マネージャによって使用されて、リソース・ファイルから対応する1つまたは複数のプロパティの値が読み取られる。コントロールのインスタンスのコントロール・タイプに関連付けられたプロパティが、そのコントロールのそのインスタンスに割り当てられ、また次に、そのプロパティの値が、リソース・ファイルから獲得された値に設定される。この割当ておよび値設定は、好ましくは、カスタマイズされたPageクラスのRenderメソッドによって行われる。このステップが完了した後、従来の、または標準のRenderメソッドが使用されて、Webページが、HTMLページなどのマークアップ言語ページにレンダリングされる。
【0012】
本発明の別の態様は、ローカライズ要素を定義するデータ構造を対象とする。好ましくは、ローカライズ要素は、所望の特性によるセット内に一緒にグループ化される。各ローカライズ要素は、固有要素キーで識別され、1つまたは複数のコントロール・タイプの混成辞書に関連付けられる。各コントロール・タイプは、1つまたは複数のプロパティおよび対応するプロパティの値の別の混成辞書に関連付けられる。
【0013】
本発明のその他の態様は、データベースの中のローカライズ要素を管理するため、およびリソース・ファイルを生成するための命令を格納する方法、システム、および媒体をそれぞれ対象とする。好ましくは、グラフィカル・ユーザ・インターフェースを使用して、設計者、プログラマ、翻訳者、オペレータ、またはその他のユーザが、Webページを構成する1つまたは複数のWebアプリケーションに関してローカライズするデータ(localization data)を入力し、操作できるようにする。また、ユーザは、各アプリケーションがサポートする特性に関してローカライズするデータも入力し、操作することができる。また、さらに、グラフィカル・ユーザ・インターフェースは、ユーザが、要素キー、コントロール・タイプ、プロパティ、およびプロパティの値を確立し、拡張されたローカライズ要素データを収容する特定の形式を備えたコンパイルされていないリソース・ファイル、またはコンパイルされたリソース・ファイルを生成できるようにもする。したがって、また、本発明は、この特定の形式でリソース・ファイルの書込みおよび読取りを行うリソース・ライタおよびリソース・リーダも対象とする。
【0014】
本発明の以上の態様、および付随する利点の多くは、添付の図面と併せて以下の詳細な説明を参照して本発明をよりよく理解することで、より明白となる。
【0015】
【発明の実施の形態】
例としての動作環境
図1およびそれに関連する以下の説明は、本発明を実施することができる適切なコンピュータ環境の簡単な一般的な説明を提供するものである。本発明は、好ましくは、通信網を介してクライアント・コンピュータ装置またはその他の遠隔コンピュータ装置に結合されたサーバとして機能する単一のコンピュータ装置上で実施される。また、クライアント・コンピュータ装置は、通常、図1に示す機能構成要素も含む。必要ではないが、本発明は、Webページのローカライズを可能にするようにサーバによって実行され、そうすることにより、クライアント・コンピュータまたはコンピュータ装置によって、ローカライズされた状態でWebページをレンダリングすることが可能になる、そのようにサーバによって実行されるプログラム・モジュールなどのコンピュータ実行可能命令を使用するものとして説明される。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ・タイプを実装する、アプリケーション・プログラム、ルーチン、オブジェクト、構成要素、機能、データ構造等を含む。また、特にクライアント装置に関して、ハンドヘルド装置、ポケット・パーソナル・コンピュータ装置、アプリケーション・プログラムを実行し、ネットワークに無線式に接続するデジタル・セル電話機、その他のマイクロ・プロセッサ・ベースの家庭用電化製品、またはプログラマブル家庭用電化製品、マルチ・プロセッサ・システム、ネットワーク・パーソナル・コンピュータ、ミニ・コンピュータ、メイン・フレーム・コンピュータ等を含むその他のコンピュータ・システム構成で本発明を実施するのも可能であることが、当分野の技術者には理解されよう。また、示すとおり、通信網を介してリンクされた遠隔処理装置と通信する1つまたは複数のサーバによってタスクが行われる分散コンピュータ環境で本発明を実施することも可能である。分散コンピュータ環境では、プログラム・モジュールを、ローカル・メモリ格納装置と遠隔メモリ蓄積装置(memory storage device)の両方に配置することが可能である。
【0016】
図1を参照すると、本発明を実施する例としてのシステムは、処理装置21、システム・メモリ22、およびシステム・バス23を備えた従来のサーバ20の形態を備えた汎用コンピュータ装置を含む。システム・バスは、システム・メモリを含む様々なシステム構成要素を処理装置21に結合し、様々なバス・アーキテクチャの任意のものを使用するメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含むいくつかのタイプのバスの任意のものであることが可能である。システム・メモリは、読取り専用メモリ(ROM)24、およびランダム・アクセス・メモリ(RAM)25を含む。始動中などにサーバ20内の要素間で情報の転送するのに役立つ基本ルーチンを含む基本入力/出力システム26(BIOS)が、ROM24の中に格納されている。サーバ20は、ハード・ディスク(図示せず)に対して読取りおよび書込みを行うためのハード・ディスク・ドライブ27、取外し可能磁気ディスク29に対する読取りおよび書込みを行うための磁気ディスク・ドライブ28、およびCD−ROMまたはその他の光媒体などの取外し可能光ディスク31に対して読取りおよび書込みを行うための光ディスク・ドライブ30をさらに含む。ハード・ディスク・ドライブ27、磁気ディスク・ドライブ28、および光ディスク・ドライブ30はそれぞれ、ハード・ディスク・ドライブ・インターフェース32、磁気ディスク・ドライブ・インターフェース33、および光ディスク・ドライブ・インターフェース34でシステム・バス23に接続される。このドライブおよび関連するコンピュータ可読媒体が、サーバ20のためのコンピュータ可読マシン命令、データ構造、プログラム・モジュール、およびその他のデータの不揮発性ストーレッジを提供する。本明細書で説明する例としての環境は、ハード・ディスク、取外し可能な磁気ディスク29、および取外し可能な光ディスク31を使用するが、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク(DVD)、ベルヌーイ・カートリッジ、RAM、ROMなどの、コンピュータによってアクセス可能なデータを格納することができるその他のタイプのコンピュータ可読媒体も、例としての動作環境で使用できることが当分野の技術者には理解されよう。
【0017】
オペレーティング・システム35、1つまたは複数のアプリケーション・プログラム36、その他のプログラム・モジュール37、およびプログラム・データ38を含め、いくつかのプログラム・モジュールをハード・ディスク上、磁気ディスク29上、光ディスク31上、ROM24上、またはRAM25上に格納することができる。ユーザは、キーボード40およびポインティング・デバイス42などの入力装置を介してサーバ20にコマンドおよび情報を入力することができる。その他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナ等が含まれることが可能である。以上およびその他の入力/出力(I/O)装置が、しばしば、システム・バス23に結合されたI/Oインターフェース46を介して処理装置21に接続される。I/Oインターフェースという用語は、シリアル・ポート、パラレル・ポート、ゲーム・ポート、キーボード・ポート、および/またはユニバーサル・シリアル・バス(USB)として具体的に使用される各インターフェースを包含するものとする。また、モニタ47、またはその他のタイプのディスプレイ装置も、ビデオ・アダプタ48などの適切なインターフェースを介してシステム・バス23に結合され、アプリケーション・プログラム、Webページ、および/またはその他の情報をディスプレイするのに使用可能である。モニタに加えて、サーバは、スピーカ(サウンド・カードまたはその他のオーディオ・インターフェース(図示せず)を介して)やプリンタなどのその他の周辺出力装置(図示せず)に結合することも可能である。
【0018】
上記に示したとおり、本発明の多くの態様は、好ましくは、単一のマシン上で実施される。ただし、サーバ20は、遠隔コンピュータ49のような1つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境で動作することも可能である。遠隔コンピュータ49は、別のサーバ、クライアント・パーソナル・コンピュータ、ルータ、ネットワークPC、ピア装置、またはサテライト、あるいは他の共通ネットワーク・ノードであることが可能であり、通常、サーバ20に関連して説明した要素の多く、またはすべてを含む。ただし、外部メモリ格納装置50だけを図1に示している。図1に描いた論理接続は、ローカル・エリア・ネットワーク(LAN)51、およびワイド・エリア・ネットワーク(WAN)52を含む。そのようなネットワーク環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【0019】
LANネットワーキング環境で使用される場合、サーバ20は、ネットワーク・インターフェースまたはアダプタ53を介してLAN51に接続される。WANネットワーキング環境で使用される場合、サーバ20は、通常、インターネットなどのWAN52を介して通信を確立するため、モデム54、またはケーブル・モデム、デジタル加入者回線(DSL)インターフェース、または統合サービスデジタル網(ISDN)インターフェースなどのその他の手段を含む。内部にある、または外部にあることが可能なモデム54が、システム・バス23に接続される、またはI/O装置インターフェース46を介して、つまりシリアル・ポートを介してそのバスに結合される。ネットワーク化された環境では、サーバ20に関連して描いたプログラム・モジュール、またはその部分を遠隔メモリ格納装置の中に格納することが可能である。図示するネットワーク接続は、例としてのものであり、無線通信リンクおよび広帯域網リンクなどのコンピュータ間で通信リンクを確立するその他の手段も使用できることが理解されよう。
【0020】
例としての実施形態
図2は、本発明の好ましい実施形態に関するアーキテクチャを示している。管理アプリケーション60が、サーバ20または別のパーソナル・コンピュータを使用してWebアプリケーションのためのローカライズ要素の定義を作成し、維持することを、ユーザに与えている。管理アプリケーション60は、Webアプリケーション、独立型ソフトウェア・アプリケーション、設計スタジオ内のツール、またはその他の形態のソフトウェア・モジュールであることが可能である。好ましくは、管理アプリケーション60は、構造化照会言語(SQL)データベース62(例えば、Microsoft CorporationのSQL Server(商標)プログラム)とインターフェースを取る。データベース62は、ローカライズ要素、文化情報、Webアプリケーション情報、バージョニング情報、およびリソース定義およびWebアプリケーションを作成して維持することに関係のあるその他のデータ、を格納する。データベース62は、ローカライズされるべきハイパー・テキスト・マークアップ言語(HTML)要素間の関係をさらに格納する。
【0021】
また、管理アプリケーション60は、カスタム形式リソース・ファイル64を生成するのにも使用される。好ましくは、リソース・ファイル64は、Webサーバ上で管理アプリケーションのサブ・ディレクトリの中に格納するために作成される。リソース・ファイル64は、コンパイルされていないファイルであるルース(loose)リソース・ファイルとすることが可能である。あるいはまたは、リソース・ファイル64は、リソースだけを含むコンパイルされたダイナミック・リンク・ライブラリ(DDL)ファイルであるサテライト・アセンブリとすることが可能である。要するに、サテライト・アセンブリは、文化に基づいて別々のDLLに一緒にコンパイルされ、文化名に対応するディレクトリ構造の中に配置されるルース(loose)リソース・ファイルである。好ましくは、ルース・リソース・ファイルは、Microsoft CorporationのRESGEN.EXEなどのモジュールを使用して構築される。サテライト・アセンブリは、好ましくは、Microsoft CorporationのAL.EXEなどのアセンブリ生成ツールを使用して構築される。
【0022】
Microsoft Corporationの現世代のアクティブ・サーバ・ページ(ASP.NET(商標))などのWebサーバ・ランタイム・プログラム66が、リソース・ファイル64を利用してWebアプリケーションのWebページをローカライズする。リソース・リーダ68を使用してリソース・ファイル64の特定の形式が読み取られ、要素リソース・セット72にローカライズ情報が提供される。リソース・リーダ68によって読み取られた各文化ごとに1つの要素リソース・セットが確立される。リソース・マネージャ70が、Webサーバ・ランタイム・プログラム66によって使用されて、要素リソース・セット72からローカライズ情報が獲得される。リソース・マネージャ70および要素リソース・セット72は、好ましくは、ローカライズ情報に対するより高速のアクセスを提供するため、アプリケーション・キャッシュ74の中に格納される。
【0023】
Webアプリケーションは、通常、サーバ・ページ80aおよびサーバ・ページ80bのような複数のサーバ・ページを含む。サーバ・ページは、C#(Cシャープ)、C++などの言語、およびその他の言語からコンパイルされた組み込まれた実行可能なプログラム(embedded executable programs)を含むことが可能である。あるいはまた、サーバ・ページは、コモン・ゲートウェイ・インターフェース(CGI)スクリプト、JAVA(商標)、またはその他のWeb言語を含むことが可能である。サーバ・ページは、ローカライズされるページ・クラスから導出され、このクラスのインスタンスが、サーバ・ページの中のコントロール・プロパティのローカライズを行う。サーバ・ページのレンダリング中、ローカライズされるページ・クラスのインスタンスが、サーバ・ページのコントロール・インスタンス全体を繰り返して、コントロール・インスタンスのローカライズされるプロパティに関連付けられたキー属性を探し出す。ローカライズされるページ・クラスのインスタンスは、リソース・マネージャ70を利用して、要素リソース・セット72からローカライズされるプロパティを獲得し、次に、サーバ・ページのコントロール・インスタンスにローカライズされる値を設定する。このローカライズ・プロセスに関するさらなる詳細を以下に説明する。ローカライズされる値が設定された後、HTMLページ82aおよび82bのようなクライアント・ページがレンダリングされる。
【0024】
図3は、ローカライズ要素の例としてのデータ構造90を示している。ローカライズ要素92および94のような各ローカライズ要素は、単純なキーと値のペアではなく、複数のフィールドを含む。好ましくは、フィールドは、ローカライズ要素キー(ときとして、要素キーと呼ばれる)、コントロール・タイプ、プロパティ、および値を含む。各ローカライズ要素は、コントロール・タイプおよびそのプロパティの混成辞書に関連付けられた要素キーで一意的に識別される。要素キー・フィールドは、サーバ・ページ・コントロール・インスタンスに追加されるキー属性を代表する。キー属性は、そのキー属性を含むサーバ・ページ・コントロール・インスタンスの自動ローカライズを行わせるトリガとして作用する。例えば、以下に説明するとおり、「キー」のキー属性を有するあらゆるサーバ・ページ・コントロール・インスタンスが、自動的にローカライズされる。また、サーバ・ページ・コントロール・インスタンス上のキー属性は、データ構造90のローカライズ要素キーの1つに対応する属性値も含む。したがって、例えば、キー属性「キー」、および「K1」の属性値を含むサーバ・ページ・コントロール・インスタンスは、ローカライズ要素92のローカライズ情報を使用して自動的にローカライズされる。この例では、「キー」というキー属性名を使用したが、キー属性は、web.configファイルを介して他の任意の所望の名前で構成することができる。これとは対照的に、K1やK2のようなローカライズ要素キー名は、管理アプリケーションを使用して定義されてデータベースの中に格納され、後に文化ベースのリソース・ファイルの中に格納される。
【0025】
上記に示したとおり、各ローカライズ要素キーは、コントロール・タイプの混成辞書に関連付けられる。例えば、ローカライズ要素94は、コントロール・タイプ「ラベル」および「リンク」に関連付けられたキー「K2」を含む。混成辞書のキーは、「System.Web.UI.Lable」のようなコントロール・タイプ名である。名前とのペアにおける値は、指定された文化に関する複数のプロパティおよびプロパティの値を含む別の混成辞書を参照する。例えば、ローカライズ要素94は、プロパティ「テキスト」および「フォント」に関連付けられたコントロール・タイプ「ラベル」を含む。プロパティ「テキスト」は、「ローカライズ・ツール・キット」のフランス語訳である「SKD de localisation」の値100に関連付けられている。このラベルのためのフォントは、ストリング「Ariel」に等しい値を有する。同様に、ローカライズ要素94は、プロパティ「テキスト」および「カラー」を含むコントロール・タイプ「リンク」を含む。リンク・コントロール・タイプのテキスト・プロパティは、「設計者」のフランス語訳である「concepteur」に対する値102を有する。
【0026】
図3で見ることができるとおり、データ構造90は、ローカライズ要素全体にわたる複製のコントロール・タイプを含むことが可能である。例えば、ローカライズ要素92も、コントロール・タイプ「ラベル」を含む。ローカライズ要素94と同様に、ローカライズ要素92のラベル・コントロール・タイプは、テキスト・プロパティおよびフォント・プロパティを含む。ただし、テキスト・プロパティおよびフォント・プロパティの値は、ローカライズ要素92と異なっている。例えば、テキスト・プロパティの値104は、「ようこそ」のフランス語訳である「Bienvenue」である。また、コントロール・タイプのプロパティの値が、いくつかのローカライズ要素の間で同一である可能性があることも明白であろう。実際、様々な異なるセットのコントロール・タイプを複数のローカライズ要素キーに関連付けることができる。様々なその他のコントロール・タイプをローカライズ要素キーに関連付けるのが可能であることが、当分野の技術者には認められよう。例えば、ローカライズ要素92は、複数のプロパティおよび、値106に対する「OptionValue0」および値108に対する「OptionValue2」などの関連する値を含む「ドロップダウン」コントロール・タイプを含む。ボタン、およびその他の標準のコントロール・タイプも使用することができる。前述したプロパティは、単純なストリング値、または複雑なデータ・タイプであるのが可能なことが、当分野の技術者には認められよう。さらに、Webアプリケーションを特定のクライアント・ユーザの文化またはその他の特性に合わせるスキン、限定されたセットのユーザ機能、またはその他の変更に合わせて、その他のデータ構造を定義することができる。
【0027】
説明のため、図4に示す例としてのWebページ110は、フランス文化圏内のクライアント・ユーザに合わせてローカライズされている。リンク112は、図3のプロパティの値102によって提供される「Concepteur」のローカライズされたテキスト・プロパティの値でレンダリングされている。同様に、図4のラベル111は、図3のプロパティの値100によって提供される「SDK de Localization」のテキスト・プロパティの値でローカライズされている。図4のラベル114は、図3のプロパティの値104に対応する。ドロップダウン・リスト116は、図3のプロパティの値108に対応する「FR」の現在選択されているプロパティの値を示している。
【0028】
図5は、Webアプリケーションのためのローカライズ要素を定義するための論理を示すフローチャートである。ステップ120で、Web設計者などのユーザが、Webアプリケーションを定義する。Webアプリケーションを定義することは、事実上、前述したようなデータ構造を提案する。Web設計者は、Web設計者がWebアプリケーションの名前、記述、バージョン、リソース・ファイル・ベース名、およびその他の情報を入力できるようにするグラフィカル・ユーザ・インターフェースを使用することができる。好ましくは、Web設計者は、Webアプリケーションを構成するサーバ・ページのためのデザインも考案する(ただし、必ずしもコードは考案しない)。ステップ122で、Web設計者は、Webアプリケーションがサポートする文化を定義する。Webアプリケーションがサポートする文化を定義することは、Web設計者がWebアプリケーションをローカライズすることを望む目標の文化のリストをWeb設計者が入力することができるグラフィカル・ユーザ・インターフェースの別のWebフォームを介して、実行することができる。例えば、Web設計者は、クライアント・ユーザがWebアプリケーションのページを翻訳するのを望む可能性がある目標言語のリストを入力することができる。さらに、Web設計者は、スキン、フィルタリングされたセットのコントロール、またはWebアプリケーションが選択的にサポートするその他のカスタマイズ特性も定義することができる。
【0029】
ステップ124で、Web設計者は、固有要素キーでローカライズ要素を定義する。前述したステップで述べたとおり、Web設計者は、グラフィカル・ユーザ・インターフェースを使用してデータベースに要素キーを入力することができる。各要素キーに関して、ステップ126で、Web設計者は、要素キーに関連付けられるべき1つまたは複数のコントロール・タイプを定義して入力する。同様に、ステップ128で、Web設計者は、クライアントWebページにレンダリングされる際にローカライズされていることをWeb設計者が望む各コントロール・タイプに関して、1つまたは複数のプロパティを定義して入力する。ステップ130で、Web設計者は、各プロパティに対して初期中立言語値(initial neutral language value)を割り当てる。中立言語値は、設計者の母語であること、またはあるプロパティに対するデフォルトの言語またはベース言語であることを設計者が望むその他の言語であることが可能である。他の言語への翻訳などの代替のプロパティの値が、プロセスにおける後の時点で提供される。
【0030】
前述したステップの各ステップで、入力された値が、データベースの中に格納されたデータ構造の中のローカライズ要素に追加される。判定ステップ132で、追加のローカライズ要素が必要かどうかをWeb設計者が判定する。Web設計者は、追加のローカライズ要素を追加することを望む場合、それぞれの追加のローカライズ要素に関してステップ124から130を繰り返す。Webアプリケーションを定義するためのツールを介して前述したローカライズ要素がデータベースの中で自動的に確立され得ることが、当分野の技術者には認められよう。ローカライズ要素のすべてが定義されると、Web設計者(またはその他のオペレータ)は、Webアプリケーションのサーバ・ページのコーディング(coding)に取りかかることができる。
【0031】
図6は、レンダリング時にローカライズされるWebページを作成するための論理ステップを示すフローチャートである。好ましくは、Webページは、サーバからダウンロードされるが、当分野の技術者には、Webページがクライアント・コンピュータ上でアクセスされること、メモリの中のコントロール階層であること、または別の形態のWebページを含むことが可能であることが認められよう。ステップ134で、Web設計者またはWebプログラマが、LocalizedPageと呼ばれるローカライズされるページ・クラスからページを導出する。簡明にするため、サーバ上に格納するために作成されているページを「サーバ・ページ」と呼ぶ。LocalizedPageクラスのインスタンスが、サーバからダウンロードされたページをクライアント・コンピュータのディスプレイにレンダリングする際、コントロール・プロパティの値を設定する。この時点でページは、これより本明細書で「クライアント・ページ」と呼ばれる。この機能を実行するため、LocalizedPageクラスのインスタンスは、標準のASP.NET Pageクラスの標準のRenderメソッドに優先する。標準の.NET Pageクラスの標準Renderメソッドの代わりに、LocalizedPageクラスの固有Renderメソッドを使用するようASP.NETランタイムに命令するため、Web設計者は、次の指示文をページに挿入しなければならない。
<%@Page language="C#" inherits="LocalizationToolkit.LocalizedPage"%>
ステップ136で、Web設計者またはWebプログラマが、Page_Loadイベント時に要求を行うクライアントの文化を設定する指示文を含める。例えば、Web設計者は、クライアントが要求したページのダウンロード中で提供される文化属性から、またはクライアントのプロファイル・データベースから、またはクライアントのコンピュータ上でアクセスされる以前に置かれたクッキーから、またはユニバーサル・アクセス・アカウント(例えば、クライアント用のMicrosoft CorporationのPassport(商標)アカウント・データ)から、または別の所望のソースから、クライアントの文化を獲得するために、サーバ・ページ中に命令を含めることができる。指示文は、クライアントが要求したサーバからのWebページのダウンロードのスレッド上にその文化を設定する。
【0032】
ステップ137で、次に、Web設計者またはWebプログラマは、サーバ・ページ・コードの残りの部分を作成して所望の1つまたは複数の機能を完成させる。サーバ・ページを作成している間、またはサーバ・ページの初期作成後、Web設計者またはWebプログラマは、ステップ138で、ローカライズされるべきサーバ・ページの中の各コントロール・インスタンスに関して、キー属性、およびそのキー属性の値としての所望の要素キーを挿入する。
【0033】
図7は、選択されたWebアプリケーションのために選択された文化を反映するローカライズ要素をカスタマイズするための論理ステップを示すフローチャートである。上記に示したとおり、ローカライズ要素の各プロパティには、中立言語値が割り当てられる。ローカライズ要素をカスタマイズすることには、文化などの選択された基準(criteria)に基づいて各プロパティに対して代替の値を提供することが必然的に含まれる。カスタマイズすることは、代替のカスタム値を手作業で入力すること、中立値を自動的に変換すること、または別の動作にローカライズされた代替の値を提供させること、を含めることができる。グラフィカル・ユーザ・インターフェース(GUI)を介してWebアプリケーションを選択した後、GUIのユーザは、ステップ140で、自身がWebアプリケーションのプロパティの値をカスタマイズする目標の文化を選択する。ステップ142で、ユーザは、カスタマイズを行うためのリンクを選択し、これにより、Webアプリケーションのローカライズ要素がディスプレイされる。次に、ユーザは、ローカライズ要素を検討して、選択された文化のための代替のプロパティの値を有していないプロパティを探し出す。ステップ144で、ユーザは、グラフィカル・ユーザ・インターフェースのリンクを選択して、選択された文化のための代替の値を含まないローカライズ要素を編集する。ステップ146で、ユーザは、グラフィカル・ユーザ・インターフェースのWebフォームを介して代替のプロパティの値を入力する。本例では、代替のプロパティの値は、ステップ140で選択された文化の言語における1つまたは複数の語である。ステップ147で、グラフィカル・ユーザ・インターフェースが、データベース中に代替のプロパティの値を格納する。
【0034】
判定ステップ148で、ユーザは、選択されたWebアプリケーションに代替の値が入力されるべきであることをさらなるローカライズ要素が必要としているかどうかを判定する。別のローカライズ要素が、代替の値を必要としている場合、論理は、ステップ144に戻り、そこで、別のローカライズ要素が入力される。選択された文化に関して入力されるべきさらなる代替の値が存在しない場合、判定ステップ150で、異なる文化に対応するさらなる代替の値を入力するかどうかの判定が行われる。これは、例えば、その使用マルチ・リンガルである場合に可能であり得る。異なる文化のために代替の値を入力することができる場合、論理は、ユーザが別の文化を選択するようにステップ140に戻る。WebアプリケーションによってサポートされるべきであるとWeb設計者が判定した文化のすべてに関してローカライズ要素のための代替の値が入力されると、ローカライズ要素のデータベースは、リソース・ファイルの生成に使用される準備ができている。カスタマイズするステップは、自動化されること、かつ/またはオンラインおよびオフラインの言語辞書および翻訳辞書、および代替の値のその他のソースを使用して支援することが可能であることが、当分野の技術者には認められよう。
【0035】
図8は、Webアプリケーションのすべてのページがコード化され、すべてのローカライズ要素がカスタマイズされた後、Webアプリケーションおよびそれに関連するリソース・ファイルに展開する(deploy;配置する)ための論理を示すフローチャートである。ステップ152で、ユーザは、生成するリソース・ファイルのタイプを選択する。好ましくは、ユーザは、単にグラフィカル・ユーザ・インターフェースを介して2つのボタンのどちらかを押す。一方のボタンは、ルース・リソース・ファイルを生成することに対応し、他方のボタンは、サテライト・アセンブリを生成することに対応する。ルース・リソース・ファイルを生成するボタンを押すことにより、SettingsクラスのGenerateResourceFilesメソッドが活動化される。あるいは、サテライト・アセンブリを生成するボタンを押すことにより、SettingsクラスのGenerateSatellitesメソッドが活動化される。以上のメソッド以外に、Settingsクラスは、構成設定(web.configファイルなどの)にアクセスするためのメソッド、利用可能な文化およびアプリケーションを伴うドロップダウン・リストをロードするためのメソッド、およびその他のヘルパ(helper)機能、を備える。
【0036】
判定ステップ154で、選択された生成メソッドが、各ローカライズ要素の各プロパティを検査して、少なくとも中立言語またはベース言語が各プロパティに定義されているのを確実にする。中立言語が定義されていない場合には、未定義のプロパティに関連付けられたコントロール・インスタンスをレンダリングすることができない。このように、プロパティのどれかに少なくとも中立言語が定義されていない場合、どの種類のリソース・ファイルを生成するのに取りかかることにも意味が無い。この理由は、レンダリング中、誤りが不可避的に生じるからである。したがって、すべてのプロパティが、中立言語またはベース言語を使用して定義されていない場合、ステップ155で誤りが処理され、その誤りがユーザに警報される。リソース・ファイルを生成する前にその他の検査または検証を行うのも可能であることが、当分野の技術者には認められよう。
【0037】
各プロパティに対して中立言語またはベース言語が定義されている場合、上記の選択されたメソッドは、ステップ156で適切なリソース・ファイルを生成する。好ましくは、GenerateResourceFilesメソッドは、.NET(商標)フレームワークからのRESGEN.EXEツールをWriterクラスの固有Writerメソッドとともに利用する。Writerメソッドは、標準の.NET(商標)ResourceWriterメソッドのカスタマイズされた実装形態であり、図3に関連して前述したローカライズ要素の拡張コントロール・タイプ、プロパティ、および値を反映する形式(format)でルース・リソース・ファイルを作成する。同様に、GenerateSatellitesメソッドは、.NET(商標)フレームワークからのAL.EXEツールを利用して、GenerateResourceFilesメソッドによって生成されたルース・リソース・ファイルからコンパイルされたサテライト・アセンブリを生成する。生成中、サーバ上にリソース・ファイルを格納するためにサブ・ディレクトリが作成される。リソース・ファイルが生成され、適切なサブ・ディレクトリの中に格納されると、ユーザは、ステップ158でリソース・ファイルおよびWebアプリケーション・ページに展開して、クライアント・コンピュータが、ネットワークを介してそのWebアプリケーション・ページにアクセスすることができるようにする。
【0038】
図9は、要求されたサーバ・ページをローカライズして、クライアント・コンピュータにレンダリングするための概略の論理を示すフローチャートである。ステップ160で、サーバが、特定のサーバ・ページに対するクライアント要求を受信する。好ましくは、サーバのInternet Information Server(IIS)ソフトウェアが、要求されたサーバ・ページ・ファイル名をASP.NET(商標)ランタイム・プログラム(例えば、.NET(商標)共通言語ランタイム(CLR)モジュール)に渡す。好ましくは、サーバ・ページを探し出すため、またその他の設定のためにweb.configファイルを利用して、ASP.NET(商標)ランタイム・プログラムが、ステップ162で(通常、OnInitイベントの結果として)、サーバ・ページに基づき、メモリの中にサーバ・コントロール階層をロードする。PageLoadイベント時に、ASP.NET(商標)ランタイムが、ステップ164で、サーバ・コントロール階層に、要求を行うクライアントの文化を獲得して設定する。
【0039】
Renderイベント時に、ASP.NETランタイムが、仮想(virtual)テーブルを検査して、標準のPageクラスのインスタンスの代わりにLocalizedPageクラスのインスタンスが呼び出されるべきことを決定する。仮想テーブルは、通常、コンパイル時に設定されるか、または前述した@Page指示文に基づいて初期ランタイム時に設定される。ステップ166で、ASP.NET(商標)ランタイムが、LocalizedPageクラスの固有Renderメソッドを呼び出して、サーバ・コントロール階層の中のコントロール・インスタンスにローカライズされるプロパティの値を設定する。図10に関連して、このステップのさらなる詳細を以下に述べる。サーバ・コントロール階層がローカライズされた後、LocalizedPageクラスの固有Renderメソッドが、ステップ168でPageクラスの標準のRenderメソッドを呼び出す。次に、標準のRenderメソッドは、標準のTextWriterクラスのインスタンスを利用して、HTML、XML、SGML、またはその他の言語などの所望のマークアップ言語にサーバ・コントロール階層をレンダリングする。(このコンテキストで使用される「レンダリングする」という用語は、Webページのディスプレイを作成することではなく、変換することを意味する。) ステップ170で、サーバが、レンダリングされたページをクライアントに送信し、処理を継続する。クライアント・コンピュータにおいて、Microsoft CorporationのInternet Explorer(商標)などのブラウザ・プログラムが、サーバから受信されたページのマークアップ言語を実行して、クライアント・コンピュータにおいてWebページをディスプレイする。したがって、ディスプレイされるWebページは、クライアントに適切なローカライズを含む。
【0040】
上記に示したとおり、本発明全体を単一のマシン上で代わりに実施するのも可能であることに留意されたい。したがって、Webページが、クライアントに送信されるのではなく、サーバ上でローカライズされてレンダリングされ、サーバにおいてディスプレイされることも可能である。特定のデザインテーマおよび/またはカラー・テーマを有するスキンを使用してユーザ・インターフェースの外観をカスタマイズすること、ユーザの経験またはニーズとの関係でユーザに利用可能なコントロールのセットを制限すること、ビジネス規則に従ってユーザに特定のコントロールまたは特定のデータを提供すること、Webフォームに入力されたデータの検証に基づいて文化を提供すること、および特定のユーザにソフトウェアを合わせるその他の変更、にも同じ一般的ステップが適用されることが、当分野の技術者には認められよう。
【0041】
図10は、サーバ・ページをローカライズするための詳細な論理を示すフローチャートである。ステップ172で、LocalizedPageクラスの固有Renderメソッドが、サーバ・コントロール階層のコントロール・インスタンスに対して深さ優先探索(depth-first search)を行って、ローカライズするコントロール・インスタンスを検出する。具体的には、コントロール・インスタンスが、System.Web.UI.WebControlsから導出されているか、またはSystem.Web.UI.HtmlControlsから導出されているかを固有Renderメソッドが判定する。また、このステップは、コントロール・インスタンスのコントロール・タイプも判定する。適格なコントロール・インスタンスが検出されると、固有Renderメソッドは、判定ステップ174で、コントロール・インスタンスのAttributes集合を評価して、コントロール・インスタンスが事前定義されたキー属性(例えば、web.configファイルの中で定義された名前を有する属性)を含むかどうかを判定する。コントロール・インスタンスが、そのキー属性を含まない場合、固有Renderメソッドは、ステップ172に戻って別のコントロール・インスタンスを探索する。サーバ・コントロール階層の中にさらなるコントロール・インスタンスが存在しない場合、固有Renderメソッドは、詳細なローカライズ・プロセスを終了する。
【0042】
固有Renderメソッドは、コントロール・インスタンス上でキー属性を検出したとき、そのコントロール・インスタンス上のそのキー属性に関連付けられた値を決定する。現行のコントロール・インスタンスに関するキー属性は、図3で定義したK1またはK2のようなローカライズ要素キーである。次に、固有Renderメソッドは、そのキー属性値がResourceManagerクラスのインスタンスに利用可能であるようにする。
【0043】
ステップ176で、固有Renderメソッドは、呼び出すべき標準の.NET(商標)ResourceManagerクラスの現行のインスタンスを探す。ResourceManagerクラスのインスタンスは、WebアプリケーションのOnInitイベント中にインスタンス化される。次に、ResourceManagerクラスのそのインスタンスは、web.configファイルを介して構成可能なアプリケーション変数としてキャッシュに入れられる。ResourceManagerクラスのインスタンスをキャッシュに入れることにより、Webアプリケーションの中のサーバ・ページごとにResourceManagerクラスの別個のインスタンスを生成するのではなく、そのインスタンスをWebアプリケーションのすべてのサーバ・ページの間で共用することができる。したがって、固有Renderメソッドは、まず、ResourceManagerクラスの既存のインスタンスを調べる。ResourceManagerクラスのどのインスタンスが、サーバ・コントロール階層に現在、関連付けられているかを固有Renderメソッドが識別しない場合、LocalizedPageクラス(固有Renderメソッドの導出元である)のインスタンスが、大域的に利用可能なメソッド、Settings.CurrentManagerを使用して、ResourceManagerクラスの現行のインスタンスを決定する。Settings.CurrentManagerメソッドは、最初に呼び出されたとき、ResourceManagerクラスの共用インスタンスを生成して、デフォルトの変数名LocalizedToolkitResourceManagerの下でそのインスタンスをASP.NET(商標)キャッシュの中に入れる。変数名はweb.configファイルを介して構成可能である。
【0044】
識別されると、ResourceManagerクラスのインスタンスは、クライアントの文化および要求されたサーバ・ページが属するWebアプリケーションに適切なリソース・ファイル(web.configファイルの中の構成設定に応じて、ルース・ファイルまたはサテライト・アセンブリDLL)を探し出す。適切なリソース・ファイルをロードするため、ResourceManagerクラスのインスタンスは、ElementResourceSetクラスのインスタンスを呼び出す。ElementResourceSetクラスのインスタンスは、標準の.NET(商標)ResourceSetクラスのカスタム実装形態である。ElementResourceSetクラスのインスタンスは、カスタムReaderメソッド(およびカスタムWriterメソッド)を利用して、要求を行うクライアントの文化、および要求されたサーバ・ページが属するWebアプリケーションに関連付けられた特定のフォーマットされたリソース・ファイルにアクセスする。例えば、特定の文化のためのリソース・ファイルを次のC#ステートメントを使用してElementResourceSetとしてメモリの中にロードすることができる。
【0045】
ElementResourceSet rs=
Settings.CurrentManager.GetResourceSet(Thread.CurrentThread.CurrentUICulture,true,true)
as ElementResourceSet;
また、ElementResourceSetクラスのインスタンスは、ハッシュ・テーブルを利用して、ローカライズ要素キー、およびLocalizationElementクラスのインスタンスに対するリファレンスを含むキーと値のペアを保持する。標準のResourceSetクラスの場合とは異なり、ハッシュ・テーブルのキーと値のペアにおける値は、単純なストリングではなく、LocalizationElementクラスに対応するオブジェクトである。コントロール・タイプのHybridDictionaryおよびそのプロパティを構成するのは、LocalizationElementクラスである。クライアントの文化に基づいて取り出されたリソース・ファイルから、LocalizationElementクラスのインスタンスが、ステップ178で、1つまたは複数のプロパティのHybridDictionaryおよび関連する値(ときとして、プロパティ・バッグとも呼ばれる)を獲得する。プロパティ・バッグは、サーバ・コントロール階層の中で識別されたコントロール・インスタンスのキー属性値およびタイプに基づいて獲得される。好ましくは、LocalizationElementクラスのインスタンスは、LocalizationElementクラスのSetPropertiesメソッドのサービスを使用して、識別されたコントロール・インスタンスのコントロール・タイプに関連付けられたプロパティおよび値のプロパティ・バッグ(HybridDictionary)を獲得する。リソース・ファイルの中の正しいコントロール・タイプにアクセスするため、LocalizationElementクラスのインスタンスは、別個のコントロール・キーを使用する。具体的には、コントロール・キーは、サーバ・コントロール階層の中のコントロール・インスタンスのラベル・タイプに対応するSystem.Web.UI.Labelなどのコントロール・タイプ名である。
【0046】
コントロール・キーに対応する値は、別のHybridDictionaryを参照する。この第2のHybridDictionaryは、クライアントの文化に関連付けられ、またコントロールの指定されたタイプに関連付けられたプロパティ名および値を含む。LocalizationElementクラスのインスタンスは、好ましくは、SetPropertiesメソッドを使用して、このコントロール・インスタンスに関して定義されるすべてのローカライズされるプロパティを設定する。例えば、あるコントロールに対するローカライズされるプロパティの値は、次のC#ステートメントを使用して設定することができる。
Figure 0004275379
【0047】
次に、ステップ180で、この値の情報を用いて、LocalizationElementクラスのインスタンスが、好ましくは、SetPropertiesメソッドを使用して、サーバ・コントロール階層の中のコントロール・インスタンスのプロパティを設定する。SetPropertiesメソッドは、.NETリフレクション・サービスを利用してプロパティを定義された値に設定する。リフレクション(反映)は、アセンブリ、モジュール、およびタイプをカプセル化するオブジェクトを提供する。リフレクションを使用して、タイプのインスタンスを生成し、そのタイプを既存のオブジェクトに結び付け、または既存のオブジェクトからそのタイプを獲得するのを動的に行うことが可能である。具体例として、ストリング・ベースのリソースのために次のC#ステートメントを使用してSetPropertiesメソッドを実装することができる(このメソッドを拡張して複雑なデータ・タイプの使用を可能にすることができる)。
【0048】
Figure 0004275379
【0049】
したがって、LocalizationElementクラスのインスタンスは、様々なコントロール・タイプ・プロパティとローカライズ要素キーの間の関係を管理する。LocalizationElementクラスのインスタンスは、特定のローカライズ要素キーに関連付けられたすべてのプロパティを1つのResourceManagerコールにまとめることができ、これにより、1つのローカライズ要素キーを複数のプロパティに関連付けることができるようになる。プロパティは、コントロール・タイプによってさらにまとめられ、異なるコントロール・タイプが、同一のローカライズ要素キーを共用できるようになる。コントロール・インスタンスのプロパティのこの自動設定全体により、そうでなければサーバ・ページに関するPage_Loadイベントを実行するために書かれなければならない初期設定コードを書く必要性が回避される。メモリの中のリソース・ファイルの使用は、より高速なアクセスを提供するが、コントロール・タイプ、プロパティ、および値には、データベースで直接にアクセスすることができる。例えば、ResourceManagerクラスの新しいインスタンスが、リソース・ファイルの代わりに、データベースにアクセスすることが可能である。この機能は、データベースの中のデータが頻繁に変化し、最新のデータが所望される場合、有用である可能性がある。
【0050】
判定ステップ182で、コントロール・タイプに関して設定されるべきさらなるプロパティが存在するかどうかをLocalizationElementクラスのインスタンスが判定する。そのコントロール・タイプに関して設定されるべきさらなるプロパティが存在する場合、LocalizationElementクラスのインスタンスは、ステップ180を繰り返す。そのコントロール・タイプに関してプロパティのすべてが設定された後、判定ステップ184で、サーバ・コントロール階層(SCH)の終わりに到達したかどうかを固有Renderメソッドが判定する。終わりに到達していない場合、固有Renderメソッドは、ステップ172に戻って別のコントロール・インスタンスがないか調べる。サーバ・コントロール階層の終わりに到達すると、サーバ・コントロール階層の詳細なローカライズが完了であり、Webページを要求するクライアントに適切なマークアップ言語にレンダリングするローカライズの準備が整う。
【0051】
本発明は、本発明を実施する好ましい形態、およびその変更形態に関連して説明してきたが、頭記の特許請求の範囲内でその他の多くの変更を加えるのが可能であることが、当分野の技術者には理解されよう。例えば、前述した方法は、オフィス・アプリケーション・ソフトウェアなどのパーソナル・プロダクティビティ・ツールに適用して、パーソナル・プロダクティビティ・ドキュメントのXMLバージョンにおけるコントロールをローカライズすることが可能である。代替のクライアントベースの実施形態は、クライアントの文化に対応するリソース・ファイルが、クライアント装置にダウンロードされるようにし、クライアント・オペレーティング・システムまたはローカル・プログラムが、ローカライズを行って、クライアント・コンピュータ上で実行されるブラウザによるディスプレイのためにWebページをマークアップ言語にレンダリングすることが可能である。モバイル・クライアント装置が、モバイル・コントロール・ソフトウェア開発者キット(SDK)を利用して本発明を実施することが可能である。したがって、本発明の範囲は、前述した説明によって決して限定されず、頭記の特許請求の範囲を参照することによって完全に決定されるものとする。
【図面の簡単な説明】
【図1】従来のサーバ・コンピュータの形態の汎用コンピュータ装置を使用して本発明を実装するための例としてのシステムを示すブロック図である。
【図2】本発明の好ましい実施形態のアーキテクチャを示すブロック図である。
【図3】ローカライズ要素のデータ構造を示すテーブルである。
【図4】フランス文化におけるクライアント・ユーザに対する本発明でローカライズされた例としてのWebページを示す図である。
【図5】Webアプリケーションのためのローカライズ要素を定義するための論理ステップを示すフローチャートである。
【図6】レンダリング時にローカライズされるWebページを作成するための論理ステップを示すフローチャートである。
【図7】選択されたWebアプリケーションのために選択された文化を反映するローカライズ要素をカスタマイズするための論理ステップを示すフローチャートである。
【図8】Webアプリケーションのすべてのページがコード化され、すべてのローカライズ要素が翻訳された後、Webアプリケーションおよび関連するリソース・ファイルに展開するための論理ステップを示すフローチャートである。
【図9】要求されたサーバ・ページをローカライズしてレンダリングするための概略の論理ステップを示すフローチャートである。
【図10】サーバ・ページをローカライズするための詳細な論理ステップを示すフローチャートである。
【符号の説明】
20 サーバ
21 処理装置
22 システム・メモリ
23 システム・バス
24 読取り専用メモリ
25 ランダム・アクセス・メモリ
26 基本入力/出力システム
27 ハード・ディスク・ドライブ
28 磁気ディスク・ドライブ
29 磁気ディスク
30 光ディスク・ドライブ
31 光ディスク
32 ハード・ディスク・ドライブ・インターフェース
33 磁気ディスク・ドライブ・インターフェース
34 光ディスク・ドライブ・インターフェース
35 オペレーティング・システム
36 アプリケーション・プログラム
37 その他のプログラム・モジュール
38 プログラム・データ
40 キーボード
42 ポインティング・デバイス
46 I/Oインターフェース
47 モニタ
48 ビデオ・アダプタ
49 遠隔コンピュータ
50 外部メモリ格納装置
51 ローカル・エリア・ネットワーク
52 ワイド・エリア・ネットワーク
53 ネットワーク・インターフェースまたはアダプタ
54 モデム
60 管理アプリケーション
62 データベース
64 リソース・ファイル
66 Webサーバ・ランタイム・プログラム
68 リソース・リーダ
70 リソース・マネージャ
72 要素リソース・セット
74 アプリケーション・キャッシュ
80a、80b サーバ・ページ
82a、82b HTMLページ

Claims (23)

  1. クライアントによって選択された特性に基づいてWebページを、サーバで、ローカライズする方法であって、前記Webページにおいて、ローカライズ要素を定義するキーが複数のコントロール・タイプに関連付けられ、各コントロール・タイプは少なくとも1つのプロパティに関連付けられ、かつ各プロパティは前記選択された特性に合致する記プロパティを表す、あを取り出すデータに関連付けられ、前記ローカライズ要素は、複数のコントロール・タイプを含む混成辞書を関連付けられ、前記複数のコントロール・タイプは、テキストボックス、ボタン、リンク、ドロップダウン・リスト、および複合コントロールのうちの一つまたは複数を定義することが可能であり、
    前記方法は
    特定のWebページを求める、前記選択された特性を表すデータを含む、クライアントの要求に応じて、前記特定のWebページの中で前記キーが関連付けられた前記コントロール・タイプのすべてのインスタンスを検出するステップと、
    )ステップ()で検出された各コントロール・タイプの各インスタンスのプロパティを、記プロパティに関連付けられた前記値を、前記キーと前記選択された特性とに関連付けられたデータを使用して、獲得するステップと、
    )ステップ()で検出された前記コントロール・タイプの各インスタンスに関して、前記コントロール・タイプの前記インスタンスの各プロパティ上に値を設定するステップであって、前記コントロール・タイプの前記インスタンスの前記プロパティが、ステップ()で獲得された、記プロパティに関する前記値、を有するようにする、ステップと、
    (d)前記特定のWebページを、当該Webページがステップ(c)で設定された各プロパティの値を含むように変換し、前記変換されたWebページを、前記クライアントに配信するステップと
    を備えることを特徴とする方法。
  2. 前記特性は、文化、言語、ロケーション、外観、スキン、ビジネス規則、および検証のうちの少なくとも1つを備えることを特徴とする請求項1に記載の方法。
  3. 前記キーは、
    (a)前記少なくとも1つのコントロール・タイプと、
    (b)各コントロール・タイプに関連付けられた各プロパティと、
    (c)各プロパティに関連付けられた各値と
    を備えるローカライズ要素を識別する構成可能な識別子(configurable identifier)
    を備えることを特徴とする請求項1に記載の方法。
  4. 前記ローカライズ要素は、データベース、ルース・リソース・ファイル(loose resource file)、コンパイルされたデータ・ファイル、XMLファイル、およびテキスト・ベースのファイルのうちの1つの中にデータ構造を備えることを特徴とする請求項3に記載の方法。
  5. 前記キーを関連付ける前記ステップは、
    (a)前記少なくとも1つのプロパティに関連付けられた前記値を、前記選択された特性に適合する代替の値に変換するステップと、
    (b)前記キーに関連付けられた前記代替の値を含むリソース・ファイルを生成するステップと
    を備えることを特徴とする請求項1に記載の方法。
  6. 前記少なくとも1つのコントロール・タイプは、少なくとも1つのマークアップ言語コントロールを備えることを特徴とする請求項1に記載の方法。
  7. 前記Webページがディスプレイのために要求された際、前記Webページをレンダリングするステップをさらに含み、前記キーが適用されているかどうかを検出する前記ステップは、
    (a)前記Webページをレンダリングする前記ステップ中に前記少なくとも1つのコントロール・タイプの前記インスタンスを認識するステップと、
    (b)前記インスタンスが、前記キーを識別する属性を含むと決定するステップと
    を備えることを特徴とする請求項1に記載の方法。
  8. 各プロパティ、および前記プロパティに関連付けられた前記値を獲得する前記ステップは、
    (a)リソース・ファイルの中で前記キーを検出するステップと、
    (b)前記リソース・ファイルの中で、前記キーに関連付けられた各プロパティ、および前記プロパティに関連付けられた前記値を読み取るステップと
    を備えることを特徴とする請求項1に記載の方法。
  9. 前記値を設定する前記ステップは、各プロパティ、および前記プロパティに関連付けられた前記値を前記キーのロケーションにおいて各コントロール・タイプの前記インスタンスに割り当てるステップを備えることを特徴とする請求項1に記載の方法。
  10. 割り当てる前記ステップは、カスタマイズされたPageクラスのRenderメソッドを使用して行われることを特徴とする請求項9に記載の方法。
  11. 前記コントロール・タイプに関連付けられた各プロパティの前記値を用いて、各コントロール・タイプの前記インスタンスをマークアップ言語にレンダリングするステップをさらに備えることを特徴とする請求項1に記載の方法。
  12. レンダリングする前記ステップは、前記所望の特性に応じてローカライズされたマークアップ・データを作成し、前記ローカライズされたマークアップ・データは、Webページ・ブラウザ・プログラムによって可読であることを特徴とする請求項11に記載の方法。
  13. 請求項1に記載の前記複数のステップをプロセッサに実行させるマシン命令を格納することを特徴とするマシン可読媒体。
  14. クライアントによって選択された特性に基づいてWebページをローカライズするシステムであって、前記Webページにおいて、ローカライズ要素を定義するキーが複数のコントロール・タイプに関連付けられ、各コントロール・タイプは少なくとも1つのプロパティに関連付けられ、かつ各プロパティは前記選択された特性に合致する前記プロパティを表す、ある値を取り出すデータに関連付けられ、前記ローカライズ要素は、複数のコントロール・タイプを含む混成辞書を関連付けられ、前記複数のコントロール・タイプは、テキストボックス、ボタン、リンク、ドロップダウン・リスト、および複合コントロールのうちの一つまたは複数を定義することが可能であり、
    前記システムは、
    (a)プロセッサと、
    (b)前記プロセッサに
    特定のWebページを求める、前記選択された特性を表すデータを含む、クライアントの要求に応じて、前記特定のWebページの中で前記キーが関連付けられた前記コントロール・タイプのすべてのインスタンスを検出し、
    ii)前記検出された各コントロール・タイプの各インスタンスの各プロパティと、および前記プロパティに関連付けられた値を、前記キーと前記選択された特性に関連付けられたデータを使用して獲得し、かつ
    iii)検出された前記コントロール・タイプの各インスタンスに関して、前記コントロール・タイプの前記インスタンスの各プロパティ上に値を設定するようにさせ、前記コントロール・タイプの前記インスタンスの前記プロパティ、獲得された前記プロパティに関する値を有するようにし、
    (iv)前記特定のWebページを、当該Webページが(iii)で設定された各プロパティ用の値を含むように変換し、当該変換されたWebページを、前記クライアントに配信する
    ことを行わせる、前記プロセッサによって実行されるマシン命令が格納されている前記プロセッサと通信するメモリと
    を備えることを特徴とするシステム。
  15. 前記キーは、
    (a)前記少なくとも1つのコントロール・タイプと、
    (b)各コントロール・タイプに関連付けられた各プロパティと、
    (c)各プロパティに関連付けられた各値
    を備えるローカライズ要素を識別する構成可能な識別子(configurable identifier)
    を備えることを特徴とする請求項14に記載のシステム。
  16. 前記ローカライズ要素は、データベース、ルース・リソース・ファイル(loose resource file)、およびコンパイルされたデータ・ファイルのうちの1つの中にデータ構造を備えることを特徴とする請求項15に記載のシステム。
  17. 前記キーを関連付けることを前記プロセッサが行うようにさせる前記マシン命令は、前記プロセッサに
    (a)前記少なくとも1つのプロパティに関連付けられた前記値を、前記選択された特性に適合する代替の値に変換すること、および
    (b)前記キーに関連付けられた前記代替の値を含むリソース・ファイルを生成すること
    を実行させることを特徴とする請求項14に記載のシステム。
  18. 前記少なくとも1つのコントロール・タイプは、少なくとも1つのマークアップ言語コントロールを備えることを特徴とする請求項14に記載のシステム。
  19. 前記マシン命令は、前記Webページがディスプレイのために要求された際、前記Webページをレンダリングすることを前記プロセッサがさらに行うようさせ、前記キーを検出することを前記プロセッサが行うようにさせる前記マシン命令は、
    (a)前記Webページをレンダリングする際に前記少なくとも1つのコントロール・タイプの前記インスタンスを認識すること、および
    (b)前記インスタンスが前記キーを識別する属性を含むことを決定すること
    を前記プロセッサが行うようにさせることを特徴とする請求項14に記載のシステム。
  20. 各プロパティ、および前記プロパティに関連付けられた値を獲得することを前記プロセッサが行うようにさせる前記マシン命令は、
    (a)リソース・ファイルの中で前記キーを検出すること、および
    (b)前記リソース・ファイルの中で、前記キーに関連付けられた各プロパティ、および前記プロパティに関連付けられた前記値を、読み取ることを前記プロセッサが行うようにさせること
    を特徴とする請求項14に記載のシステム。
  21. 前記値を設定することを前記プロセッサが行うようにさせる前記マシン命令は、各プロパティ、および前記プロパティに関連付けられた前記値を、前記キーのロケーションにおいて各コントロール・タイプの前記インスタンスに割り当てることを前記プロセッサが行うようにさせることを特徴とする請求項14に記載のシステム。
  22. 各プロパティを割り当てることを前記プロセッサが行うようにさせる前記マシン命令は、カスタマイズされたPageクラスのRenderメソッドの命令であることを特徴とする請求項21に記載のシステム。
  23. 前記マシン命令は、前記コントロール・タイプに関連付けられた各プロパティの前記値を用いて各コントロール・タイプの前記インスタンスをマークアップ言語にレンダリングすることを前記プロセッサが行うようにさせることを特徴とする請求項14に記載のシステム。
JP2002296670A 2001-10-16 2002-10-09 効率的なWebページのローカライズ Expired - Lifetime JP4275379B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/978,749 2001-10-16
US09/978,749 US20030084401A1 (en) 2001-10-16 2001-10-16 Efficient web page localization

Publications (2)

Publication Number Publication Date
JP2003186733A JP2003186733A (ja) 2003-07-04
JP4275379B2 true JP4275379B2 (ja) 2009-06-10

Family

ID=25526360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002296670A Expired - Lifetime JP4275379B2 (ja) 2001-10-16 2002-10-09 効率的なWebページのローカライズ

Country Status (3)

Country Link
US (1) US20030084401A1 (ja)
EP (1) EP1302867A3 (ja)
JP (1) JP4275379B2 (ja)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020174196A1 (en) * 2001-04-30 2002-11-21 Donohoe J. Douglas Methods and systems for creating a multilingual web application
US7784026B1 (en) * 2002-06-05 2010-08-24 Adobe Systems Incorporated Web application internationalization
CA2406025A1 (en) * 2002-09-30 2004-03-30 Ibm Canada Limited-Ibm Canada Limitee Validating content of localization data files
US7627817B2 (en) 2003-02-21 2009-12-01 Motionpoint Corporation Analyzing web site for translation
US7702648B1 (en) * 2003-06-17 2010-04-20 Microsoft Corporation Localization of data represented by business entities
GB2403306A (en) * 2003-06-25 2004-12-29 Canon Europa Nv Website localisation
US7444590B2 (en) * 2003-06-25 2008-10-28 Microsoft Corporation Systems and methods for declarative localization of web services
US7680797B1 (en) 2003-07-25 2010-03-16 Verizon Data Services Llc Methods and systems for providing a data access layer
US8645547B1 (en) 2003-07-25 2014-02-04 Verizon Data Services Llc Methods and systems for providing a messaging service
CA2452077A1 (en) * 2003-12-03 2005-06-03 Daniel A. Rose Verification of stream oriented locale files
CA2453973A1 (en) * 2003-12-23 2005-06-23 Daniel A. Rose On-demand creation of posix locale source
US8386928B1 (en) * 2004-03-18 2013-02-26 Adobe Systems Incorporated Method and system for automatically captioning actions in a recorded electronic demonstration
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US20060015817A1 (en) * 2004-07-15 2006-01-19 Giuseppe Fioretti Method to dynamically customize a web user interface
US8285856B1 (en) 2004-07-23 2012-10-09 Verizon Data Services Llc Methods and systems for integrating a messaging service with an application
US8347203B1 (en) * 2004-07-23 2013-01-01 Verizon Data Services Llc Methods and systems for defining a form navigational structure
US7580951B2 (en) * 2004-09-15 2009-08-25 Microsoft Corporation User-localizable hierarchical lists
US7610297B2 (en) * 2005-01-25 2009-10-27 Honeywell International Inc. Method to automate resource management in computer applications
US8335704B2 (en) 2005-01-28 2012-12-18 Pegasystems Inc. Methods and apparatus for work management and routing
US20060248071A1 (en) * 2005-04-28 2006-11-02 Xerox Corporation Automated document localization and layout method
CN100465882C (zh) * 2005-07-29 2009-03-04 国际商业机器公司 为全球应用创建文化敏感控件的方法和系统
US20070033520A1 (en) * 2005-08-08 2007-02-08 Kimzey Ann M System and method for web page localization
US7921138B2 (en) * 2005-09-12 2011-04-05 Microsoft Corporation Comment processing
US7747588B2 (en) * 2005-09-12 2010-06-29 Microsoft Corporation Extensible XML format and object model for localization data
CN100394428C (zh) * 2005-12-20 2008-06-11 北京亿中邮信息技术有限公司 一种个性化替换网页主题的方法
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20090132232A1 (en) * 2006-03-30 2009-05-21 Pegasystems Inc. Methods and apparatus for implementing multilingual software applications
US20070233456A1 (en) * 2006-03-31 2007-10-04 Microsoft Corporation Document localization
US20080155412A1 (en) * 2006-12-20 2008-06-26 Microsoft Corporation Quick reference card and on-line help for a computing system
US8225227B2 (en) * 2007-01-19 2012-07-17 Microsoft Corporation Managing display of user interfaces
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US20080244397A1 (en) * 2007-04-02 2008-10-02 Sharp Laboratories Of America, Inc. System and method for culture specific handling of imaging jobs
US9201870B2 (en) * 2008-01-25 2015-12-01 First Data Corporation Method and system for providing translated dynamic web page content
US8504909B2 (en) * 2008-04-04 2013-08-06 Microsoft Corporation Load-time memory optimization
US9304785B2 (en) * 2008-06-02 2016-04-05 International Business Machines Corporation Localizing a software product
US8806357B2 (en) 2008-08-29 2014-08-12 Sap Ag Plug-ins for editing templates in a business management system
US9122669B2 (en) 2008-08-29 2015-09-01 Sap Se Flat schema integrated document oriented templates
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US10146514B1 (en) * 2009-09-30 2018-12-04 EMC IP Holding Company LLC Centralized support for application user interface elements
US20110119676A1 (en) * 2009-11-18 2011-05-19 Microsoft Corporation Resource File Localization
US8589740B2 (en) * 2010-03-02 2013-11-19 Salesforce.Com, Inc. System, method and computer program product for testing an aspect of a user interface determined from a database dedicated to the testing
EP2680162A1 (en) 2010-07-13 2014-01-01 Motionpoint Corporation Localisation of website content
CN102467497B (zh) * 2010-10-29 2014-11-05 国际商业机器公司 校对程序中的文本翻译的方法和系统
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US8843360B1 (en) * 2011-03-04 2014-09-23 Amazon Technologies, Inc. Client-side localization of network pages
US9465799B2 (en) * 2011-10-10 2016-10-11 Red Hat, Inc. Server-side internationalization and localization of web applications using a scripting language
US8452814B1 (en) * 2011-10-24 2013-05-28 Google Inc. Gathering context in action to support in-context localization
US9195653B2 (en) * 2011-10-24 2015-11-24 Google Inc. Identification of in-context resources that are not fully localized
JP5911594B2 (ja) * 2011-11-25 2016-04-27 グーグル インコーポレイテッド アプリケーションのローカリゼイションにおける翻訳支援の提供
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US9442744B2 (en) 2012-02-23 2016-09-13 Microsoft Technology Licensing, Llc Multilingual build integration for compiled applications
US8789015B2 (en) 2012-02-23 2014-07-22 Microsoft Corporation Integrated application localization
CN102693322B (zh) 2012-06-01 2014-10-22 杭州海康威视数字技术股份有限公司 支持多国语言的网页处理方法、网页加载方法及其系统
US9778917B2 (en) 2012-09-26 2017-10-03 International Business Machines Corporation Dynamically building subsections of locale objects at run-time
US9116680B2 (en) 2012-09-26 2015-08-25 International Business Machines Corporation Dynamically building locale objects or subsections of locale objects based on historical data
US9141352B2 (en) 2012-09-26 2015-09-22 International Business Machines Corporation Dynamically building locale objects at run-time
US9928085B2 (en) * 2012-11-06 2018-03-27 Intuit Inc. Stack-based adaptive localization and internationalization of applications
US10296968B2 (en) 2012-12-07 2019-05-21 United Parcel Service Of America, Inc. Website augmentation including conversion of regional content
US20140181633A1 (en) * 2012-12-20 2014-06-26 Stanley Mo Method and apparatus for metadata directed dynamic and personal data curation
US11222362B2 (en) * 2013-01-15 2022-01-11 Motionpoint Corporation Dynamic determination of localization source for web site content
US10467331B2 (en) 2013-05-16 2019-11-05 Toshiba Global Commerce Solutions Holdings Corporation Systems and methods for processing modifiable files grouped into themed directories for presentation of web content
CN103440123A (zh) * 2013-07-19 2013-12-11 张佳佩 一种在移动终端上个性化空间的设置方法和装置
US9965466B2 (en) 2014-07-16 2018-05-08 United Parcel Service Of America, Inc. Language content translation
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
EP3321812A4 (en) 2015-07-06 2018-06-13 Ricoh Company, Ltd. Information processing device, information processing method, information processing program, information processing system, and nontemporary computer-readable information recording medium
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
EP3392782A1 (en) 2017-04-18 2018-10-24 Salesforce.com, Inc. Natural language translation and localization
US11379252B1 (en) * 2018-01-31 2022-07-05 Parallels International Gmbh System and method for providing layouts for a remote desktop session
EP3543844B1 (de) * 2018-03-22 2020-04-29 Sick Ag Verfahren zum durchführen von änderungen an einer software-anwendung
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11397600B2 (en) * 2019-05-23 2022-07-26 HCL Technologies Italy S.p.A Dynamic catalog translation system
CN111563223B (zh) * 2020-05-12 2023-09-19 北京飞漫软件技术有限公司 一种网页页面本地化方法及装置
US20210357596A1 (en) * 2020-05-15 2021-11-18 Microsoft Technology Licensing, Llc Intelligent localization of resource data
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
CN112416349A (zh) * 2020-12-08 2021-02-26 携程计算机技术(上海)有限公司 表单页面生成方法、系统、设备及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613122A (en) * 1994-11-14 1997-03-18 Object Technology Licensing Corp. Object-oriented operating system
US5974372A (en) * 1996-02-12 1999-10-26 Dst Systems, Inc. Graphical user interface (GUI) language translator
US6381567B1 (en) * 1997-03-05 2002-04-30 International Business Machines Corporation Method and system for providing real-time personalization for web-browser-based applications
US5900871A (en) * 1997-03-10 1999-05-04 International Business Machines Corporation System and method for managing multiple cultural profiles in an information handling system
US6025836A (en) * 1997-07-23 2000-02-15 Novell, Inc. Method and apparatus for generating object oriented user interfaces
US6349275B1 (en) * 1997-11-24 2002-02-19 International Business Machines Corporation Multiple concurrent language support system for electronic catalogue using a concept based knowledge representation
US6623529B1 (en) * 1998-02-23 2003-09-23 David Lakritz Multilingual electronic document translation, management, and delivery system
US6559861B1 (en) * 1999-03-09 2003-05-06 Nortel Networks Limited Displaying computer interfaces in multiple languages
US6492995B1 (en) * 1999-04-26 2002-12-10 International Business Machines Corporation Method and system for enabling localization support on web applications
US7185333B1 (en) * 1999-10-28 2007-02-27 Yahoo! Inc. Method and system for managing the resources of a toolbar application program
US6311180B1 (en) * 2000-03-28 2001-10-30 Linx Data Terminals, Inc. Method for mapping and formatting information for a display device
US7284199B2 (en) * 2000-03-29 2007-10-16 Microsoft Corporation Process of localizing objects in markup language documents
US7207001B2 (en) * 2000-05-01 2007-04-17 Avery Dennison Corporation System and method for generating customized and/or personalized documents
US6865716B1 (en) * 2000-05-05 2005-03-08 Aspect Communication Corporation Method and apparatus for dynamic localization of documents
US6493661B1 (en) * 2000-05-16 2002-12-10 Scheider Automation, Inc. Reusable multi-language support facility for software
FR2809509B1 (fr) * 2000-05-26 2003-09-12 Bull Sa Systeme et procede d'internationalisation du contenu de documents a balises dans un systeme informatique
US6983238B2 (en) * 2001-02-07 2006-01-03 American International Group, Inc. Methods and apparatus for globalizing software
US6964014B1 (en) * 2001-02-15 2005-11-08 Networks Associates Technology, Inc. Method and system for localizing Web pages
US20020143523A1 (en) * 2001-03-30 2002-10-03 Lakshmi Balaji System and method for providing a file in multiple languages
US20030005159A1 (en) * 2001-06-07 2003-01-02 International Business Machines Corporation Method and system for generating and serving multilingual web pages
US20030009323A1 (en) * 2001-07-06 2003-01-09 Max Adeli Application platform for developing mono-lingual and multi-lingual systems and generating user presentations
US20040205118A1 (en) * 2001-09-13 2004-10-14 Allen Yu Method and system for generalized localization of electronic documents

Also Published As

Publication number Publication date
EP1302867A2 (en) 2003-04-16
JP2003186733A (ja) 2003-07-04
EP1302867A3 (en) 2004-03-03
US20030084401A1 (en) 2003-05-01

Similar Documents

Publication Publication Date Title
JP4275379B2 (ja) 効率的なWebページのローカライズ
US10216554B2 (en) API notebook tool
US7657844B2 (en) Providing accessibility compliance within advanced componentry
US8099664B2 (en) Dynamic help user interface control with secured customization
CA2390440C (en) System and method for multiple level architecture by use of abstract application notation
US7496890B2 (en) Generation of configuration instructions using an abstraction technique
US8078960B2 (en) Rendering an HTML electronic form by applying XSLT to XML using a solution
RU2419838C2 (ru) Расширяемый xml-формат и объектная модель для данных локализации
US7519915B2 (en) System and method for dynamic uploading of user interface generation logic
US6275790B1 (en) Introspective editor system, program, and method for software translation
CN101373431B (zh) 增强型小组件合成平台
US8966465B2 (en) Customization creation and update for multi-layer XML customization
US20070220429A1 (en) Layered customization of a help user interface
US20060020883A1 (en) Web page personalization
US20020116477A1 (en) Technique for configuring network deliverable components
EP1701253A1 (en) Method and system for creating, storing, managing and consuming culture specific data
KR20050039551A (ko) 컴퓨터 플랫폼용 프로그래밍 인터페이스
ZA200601470B (en) Method and system for creating, storing, managing and consuming culture specific data
JP2003099257A (ja) ウェブページ用オーサリングツール
US20080127220A1 (en) Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application
US20080189682A1 (en) In-Line Editor
US20030079051A1 (en) Method and system for the internationalization of computer programs employing graphical user interface
US20230353626A1 (en) System and Method to Standardize and Improve Implementation Efficiency of User Interface Content
JP2013518321A (ja) パターンベースのユーザインターフェース
US9141352B2 (en) Dynamically building locale objects at run-time

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050825

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090304

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4