(57)【要約】  本発明は、データを処理するシステムを提供する。
2008533598.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティング・システムに動作可能に結合されたローカライズ・プラットフォームであって、
１つ又は複数の別々のマーケットに対してローカライズされたローカライズ済みデータを提供する複数のローカライズ構成要素と、
オントロジ情報を格納するオントロジ・ストアと、
ローカライズすべき入力データに対応するローカライズ要求を受信し、前記ローカライズ要求に基づいて前記複数のローカライズ構成要素及び前記オントロジ・ストアにアクセスし、所定の基準に基づいて前記複数のローカライズ構成要素のうちの１つ以上からローカライズ済みデータを選択及び出力するように構成された翻訳マッチング構成要素と、
を備えるローカライズ・プラットフォーム。
【請求項２】
前記翻訳マッチング構成要素が、前記オントロジ・ストアにアクセスし、ローカライズすべき前記入力データを一義化するように構成される、請求項１に記載のローカライズ・プラットフォーム。
【請求項３】
前記翻訳マッチング構成要素が、オーサリング構成要素から前記入力データを受信するように構成される、請求項２に記載のローカライズ・プラットフォーム。
【請求項４】
前記翻訳マッチング構成要素が、アプリケーションに結合されるリソース・マネージャから前記入力データを受信するように構成される、請求項２に記載のローカライズ・プラットフォーム。
【請求項５】
前記ローカライズ構成要素、前記オントロジ・ストア及び前記翻訳マッチング構成要素が、オペレーティング・システムと統合される、請求項１に記載のローカライズ・プラットフォーム。
【請求項６】
前記ローカライズ構成要素が、前記入力データが与えられた場合にローカライズ済みデータに関連する信頼スコアを提供し、前記翻訳マッチング構成要素が、前記信頼スコアに基づいて前記ローカライズ済みデータを選択するように構成される、請求項１に記載のローカライズ・プラットフォーム。
【請求項７】
前記ローカライズ構成要素が、１つ又は複数の別々のマーケットに対してローカライズされたデータを格納する複数のデータ・ストアを備える、請求項１に記載のローカライズ・プラットフォーム。
【請求項８】
前記ローカライズ構成要素が、少なくとも１つの機械翻訳システムを備える、請求項１に記載のローカライズ・プラットフォーム。
【請求項９】
前記ローカライズ・プラットフォームが、別々のオペレーティング・システムに対するサービスとしてローカライズを提供するように構成される、請求項１に記載のローカライズ・プラットフォーム。
【請求項１０】
データをローカライズする方法であって、
ローカライズすべき情報を示す要求を受信するステップと、
前記要求に基づいて、ローカライズ済みデータを提供する複数のローカライズ構成要素にアクセスするステップと、
前記要求に基づいてオントロジ・ストアにアクセスするステップと、
所定の基準に基づいて、前記複数のローカライズ構成要素のうちの１つ以上からローカライズ済みデータを選択するステップと、
を含む方法。
【請求項１１】
選択するステップが、
前記オントロジ・ストアにおけるオントロジデータに基づいて、ローカライズすべき情報を一義化するステップを含む、請求項１０に記載の方法。
【請求項１２】
受信するステップが、オーサリング構成要素から前記要求を受信するステップを含む、請求項１０に記載の方法。
【請求項１３】
受信するステップが、アプリケーションからの要求に基づいて、ローカライズすべき前記情報を受信するように構成されるリソース・マネージャから前記要求を受信するステップを含む、請求項１０に記載の方法。
【請求項１４】
要求を受信し、複数のローカライズ構成要素にアクセスし、オントロジ・ストアにアクセスし、ローカライズ済みデータを選択する前記ステップが、オペレーティング・システムによって実行される、請求項１０に記載の方法。
【請求項１５】
要求を受信し、複数のローカライズ構成要素にアクセスし、オントロジ・ストアにアクセスし、ローカライズ済みデータを選択する前記ステップが、オペレーティング・システムからの呼出しに応答してサービスによって実行される、請求項１０に記載の方法。
【請求項１６】
前記ローカライズ構成要素が、前記入力データが与えられた場合にローカライズ済みデータに関連する信頼スコアを提供し、
選択するステップが、前記信頼スコアに基づいて前記ローカライズ済みデータを選択するステップを含む、請求項１０に記載の方法。
【請求項１７】
前記ローカライズ構成要素が、１つ又は複数の別々のマーケットに対してローカライズされたデータを格納する複数のデータ・ストアと、前記翻訳マッチング構成要素に結合されたデータ・サービス構成要素とを備え、
選択するステップが、前記データ・サービス構成要素を介して前記データ・ストアにアクセスするステップを含む、請求項１０に記載の方法。
【請求項１８】
前記ローカライズ構成要素が少なくとも１つの機械翻訳システムを備え、
選択するステップが、前記少なくとも１つの機械翻訳システムにアクセスするステップを含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理を扱う。
【０００２】
ローカライズは、異なるマーケットの差を調節するように製品又はサービスを修正するプロセスである。ローカライズの非常に一般的な例は、アプリケーションがソース言語でオーサリングされ、元の言語とは異なるターゲット言語を使用するマーケットに導入されるときに生じる。例えば、アプリケーションが英語でオーサリングされ、次いで中国に導入された場合、アプリケーション内の様々な英語文字列及びＵＩ要素（メニュー、アイコンなど）、ソフトウェア・コンポーネント、及びユーザ支援を中国語に翻訳することによってローカライズされることになる。ＵＩレイアウト及びスタイル（フォント・タイプ、サイズ、制御位置などを含む）もターゲット言語に適合するように変更される可能性が高い。もちろん、ローカライズの概念は、単に言語を修正するよりも広い。同一の言語を使用するマーケットが、他の理由で異なることがある。例えば、ソフトウェア・アプリケーションが、様々な年齢グループ向けに「ローカライズ」されることがある。ソフトウェア・アプリケーションは、大人向けの１組の言語及び外観を有し、子供又はティーン向けの別の１組の言語及び外観を有することがある。したがって、ローカライズは例示的に、異なるマーケットの多種多様な違いに対処する。
【０００３】
上述のように、ローカライズは、単に文字列を翻訳よりも多くの事柄を含む。ここでは、文書が読み易いように、そのシナリオに関する説明に専念する。同様に、例の大部分をソフトウェア・ローカライズの分野から取るが、本発明はソフトウェア・ローカライズに限定されない。同様に、この議論の多くを製品のローカライズに焦点を当てるが、本発明はそのように限定されず、サービスにも適用可能であり、したがってこの説明では、「製品」という用語は「サービス」を含む。過去には、ローカライズを実現するためにシステム・レベルの試みが行われず、ローカライズは、個々の問題を解決するために個々の構成要素を使用して実施されていた。例えば、ローカライザをいくつかの機械翻訳技法で強化し、ローカライズ速度、精度、及び整合性を改善することができる。しかし、異なるローカライザは、以前の翻訳を再利用し、したがってツールを使用しない場合よりも高速に一層一貫性のある結果を提供することによってリサイクル速度を増加させるために、単に翻訳メモリを使用することができる。
【０００４】
さらに、このことは従来、オフラインで行われてきた。言い換えれば、作者はアプリケーション全体又は構成要素の大部分を作成し、その構成要素又はアプリケーションはローカライズのためにローカライザに提供される。通常のプロセスは、ローカライザの元の作者との対話が最小となり又は存在しないようなものとなる。これにより、元のコンテンツのローカライズを容易にする元のコンテンツの変更を導入することが難しくなる。実際に、多くの場合、製品全体が開発されたかなり後まで、また、異なる言語を使用し、又は別個の異なるマーケットに製品を拡張するように戦略的マーケティングの判定が行われたかなり後まで、ローカライズは実施されない。こうした場合のすべてにおいて、通常は、ローカライズ、さらにはローカライズのための最適化を念頭に置いてアプリケーションを開発する際に事前の作業が行われることはほとんどない。同様に、開発／オーサリング段階において、容易にローカライズ可能である製品又はサービスのオーサリングは、ローカライズが容易ではないものをオーサリングするよりも難しくはないとしても、ローカライズが比較的容易となるアプリケーション又はその他の製品／サービスを開発するためのサポートはほとんどない。
【０００５】
したがって、製品、サービス、及びアプリケーションは、複雑で手作業の労働集約的プロセスによって様々な言語に翻訳され、又はローカライズされてきた。このソフトウェア製品のローカライズと、製品に関する内容の翻訳に関するコストは、新しいマーケットに入るために克服しなければならない著しい障害を表す。このことは特に、小規模から中規模の独立ソフトウェア・ベンダ又はコンテンツ作者に対して当てはまる。
【０００６】
ローカライズの問題はまた、ソフトウェアが開発される特定の位置に応じてスケールが変化する。大規模マーケットを有する位置でソフトウェアをオーサリングしている開発者にとっては、様々な（かつ小規模である可能性の高い）マーケットに対してソフトウェアをローカライズすることの必要性は低い。しかし、比較的小規模のマーケットを有する位置にある（かつ比較的小規模のマーケットを有する言語を使用する）開発者の場合、製品の全体的存立可能性は、その製品をより大規模なマーケットで使用される言語にローカライズする能力に依存する可能性がある。このことは、製造業者がローカライズに対して過度に多量のリソースを消費することを必要とする。このことはしばしば、開発に使用可能なリソースを損ねる。
【０００７】
従来のローカライズ作業に関連する別の問題は、他の様々なローカライズ・ソースの成果を利用するための良い方法がなかったことである。例えば、多種多様なベンダは、様々なマーケット向けに製品をローカライズする。異なるベンダによって開発された同様のアプリケーションは、同一のマーケット向けに同一の又は非常に類似した文字列又はソフトウェアをローカライズしている可能性が高い。しかし、現在のところ、両者が一方の作者の成果を利用し、又は共用するための適切な方法はない。したがって、製品をローカライズする際に労力が非常に多く重複する。
【０００８】
さらに、異なるタイプのリソース・マネージャ、リソース・フォーマット、及びデータ・ストアを伴う多くの異なるプログラミング・モデル（Ｗｉｎ３２、ＣＬＲ、ＷＥＢスクリプティングなど）が存在する。それらは、ローカライズを処理するために異なるパーサ及びツールセットを必要とし、その結果、プロセスが複雑かつ高コストとなり、ローカライズ品質が不整合となる。
【０００９】
発明の概要
本発明は、データを処理するシステムを提供する。
【００１０】
発明の実施の形態の詳細な説明
本発明は、統合ローカライズ・プラットフォームを備えるオペレーティング・システム、又は完全には統合されないが、オペレーティング・システムと共に緊密に動作可能な構成要素を有するローカライズ・プラットフォームを提供する。このローカライズ・プラットフォームを、オペレーティング・システムによって要求されるサービスとして提供することもできる。本発明は、ローカライズ・プラットフォームを使用してコンテンツ及びソフトウェアをローカライズする。製品又はサービスの開発中に本発明を使用することもでき、製品又はサービスのより迅速かつ効率的なローカライズを可能にする手法が実施される。この議論は主に、ローカライズ・プロセス中の翻訳に関して進めるが、本発明はそのように限定されず、ローカライズは、異なるマーケット向けの多種多様な他の適応も含む。本発明を一層詳細に説明する前に、本発明を使用することのできる環境の一つの実施の形態を説明する。
【００１１】
図１は、本発明を実装することのできる適切なコンピューティング・システム環境１００の一例を示す。コンピューティング・システム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用法又は機能の範囲に関する何らかの制限を示唆するものではない。例示的動作環境１００に示される構成要素のいずれか１つあるいはその組合せに関して、コンピューティング環境１００が何らかの依存関係又は要件を有すると解釈すべきでもない。
【００１２】
本発明は、他の多数の汎用又は特殊目的コンピューティング・システム環境又は構成で動作可能である。本発明と共に使用するのに適した周知のコンピューティング・システム、環境、及び／又は構成の例は、限定はしないが、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド又はラップトップ装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップ・ボックス、プログラム可能消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、電話システム、上記のシステム又は装置のいずれかを含む分散コンピューティング環境などを含む。
【００１３】
本発明は、コンピュータによって実行される、プログラム・モジュールなどのコンピュータ実行可能命令の一般的文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行し又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワーク又はその他のデータ伝送媒体を介してリンクされるリモート処理装置によってタスクが実行される分散コンピューティング環境で実施されるよう設計される。分散コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含む、ローカル・コンピュータ記憶媒体とリモート・コンピュータ記憶媒体のどちらにも位置することができる。
【００１４】
図１を参照すると、本発明を実装する例示的システムは、コンピュータ１１０の形態の汎用コンピューティング装置を含む。コンピュータ１１０の構成要素は、限定はしないが、処理装置１２０と、システム・メモリ１３０と、システム・メモリを含む様々なシステム構成要素を処理装置１２０に結合するシステム・バス１２１とを含むことができる。システム・バス１２１は、メモリバス又はメモリ・コントローラと、周辺バスと、様々なバス・アーキテクチャのうちのいずれかを用いるローカル・バスとを含むいくつかのタイプのバス構造のうちのいずれでもよい。例えば、限定はしないが、そのようなアーキテクチャは、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びメザニン・バスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００１５】
コンピュータ１１０は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセス可能である入手可能な任意の媒体でよく、揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不能媒体のどちらも含む。例えば、限定はしないが、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、又は他のデータなどの情報を格納するための何らかの方法又は技術で実装された、揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不能媒体のどちらも含む。コンピュータ記憶媒体は、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）、又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、又は他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピュータ１１０でアクセスすることのできる他の任意の媒体を含む。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラム・モジュール、又は他のデータを、搬送波や他の移送機構などの被変調データ信号で実施し、任意の情報送達媒体を含む。「被変調データ信号」という用語は、その特性集合のうちの１つ又は複数を有する信号、又は情報を信号として符号化するように変化する信号を意味する。例えば、限定はしないが、通信媒体は、有線ネットワーク又はダイレクト・ワイヤード接続などの有線媒体、ならびに音響媒体、ＲＦ媒体、赤外線媒体、他のワイヤレス媒体などのワイヤレス媒体を含む。上記のいずれの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００１６】
システム・メモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１やランダム・アクセス・メモリ（ＲＡＭ）１３２などの揮発性メモリ及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中などにコンピュータ１１０内の要素間で情報を転送する助けになる基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３が、一般にＲＯＭ１３１内に格納される。ＲＡＭ１３２は一般に、処理装置１２０にとって即座にアクセス可能であり、かつ／又は処理装置１２０によって現在操作中のデータ及び／又はプログラム・モジュールを含む。例えば、限定はしないが、図１は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、及びプログラム・データ１３７を示す。
【００１７】
コンピュータ１１０はまた、他の取外し可能／取外し不能な揮発性／不揮発性コンピュータ記憶媒体も含むことができる。単なる例であるが、図１は、取外し不能不揮発性磁気媒体を読み書きするハードディスク・ドライブ１４１と、取外し可能不揮発性磁気ディスク１５２を読み書きする磁気ディスク・ドライブ１５１と、ＣＤ−ＲＯＭ又は他の光媒体などの取外し可能不揮発性光ディスク１５６を読み書きする光ディスク・ドライブ１５５とを示す。例示的動作環境で使用することのできる他の取外し可能／取外し不能な揮発性／不揮発性コンピュータ記憶媒体は、限定はしないが、磁気テープカセット、フラッシュ・メモリ・カード、デジタル・バーサタイル・ディスク、デジタル・ビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含む。ハードディスク・ドライブ１４１は一般に、インタフェース１４０などの取外し不能メモリ・インタフェースを介してシステム・バス１２１に接続され、磁気ディスク・ドライブ１５１及び光ディスク・ドライブ１５５は一般に、インタフェース１５０などの取外し可能メモリ・インタフェースによってシステム・バス１２１に接続される。
【００１８】
上記で議論し、図１に図示するドライブとその関連するコンピュータ記憶媒体は、コンピュータ１１０に対してコンピュータ可読命令、データ構造、プログラム・モジュール、及び他のデータの記憶を提供する。図１では、例えば、ハードディスク・ドライブ１４１がオペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、及びプログラム・データ１４７を格納するものとして図示されている。これらの構成要素は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、及びプログラム・データ１３７と同じでよく、又は異なるものでよいことに留意されたい。ここでは、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、及びプログラム・データ１４７には、少なくともこれらが相異なるコピーであることを示すために異なる番号が付けられている。
【００１９】
ユーザは、キーボード１６２、マイクロフォン１６３、マウス、トラックボール、タッチパッドなどのポインティング・デバイス１６１などの入力装置を介して、コマンド及び情報をコンピュータ１１０に入力することができる。他の入力装置（図示せず）は、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナなどを含むことができる。上記及び他の入力装置はしばしば、システム・バスに結合されるユーザ入力インタフェース１６０を介して処理装置１２０に接続されるが、パラレル・ポート、ゲーム・ポート、又はユニバーサル・シリアル・バス（ＵＳＢ）などの他のインタフェース及びバス構造によって接続することもできる。モニタ１９１又は他のタイプのディスプレイ装置もまた、ビデオ・インタフェース１９０などのインタフェースを介してシステム・バス１２１に接続される。モニタに加えて、コンピュータはまた、スピーカ１９７やプリンタ１９６などの他の周辺出力装置も含むことができ、それらを出力周辺インタフェース１９５を介して接続することができる。
【００２０】
コンピュータ１１０は、リモート・コンピュータ１８０などの１つ又は複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境で動作する。リモート・コンピュータ１８０は、パーソナル・コンピュータ、ハンドヘルド装置、サーバ、ルータ、ネットワークＰＣ、ピア装置、又は他の共通ネットワークノードでよく、一般に、パーソナル・コンピュータ１１０に関して上記で述べた要素のうちの多数又はすべてを含む。図１に示される論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）１７１及び広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークも含むことができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータ・ネットワーク、イントラネット、及びインターネットで一般的なものである。
【００２１】
ＬＡＮネットワーキング環境で使用される際、コンピュータ１１０は、ネットワーク・インタフェース又はアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される際、コンピュータ１１０は一般に、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２又は他の手段を含む。モデム１７２は内蔵又は外付けでよく、ユーザ入力インタフェース１６０、又は他の適切な機構を介してシステム・バス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示したプログラム・モジュール又はその一部を、リモート・メモリ記憶装置内に格納することができる。例えば、限定はしないが、図１は、リモート・アプリケーション・プログラム１８５がリモート・コンピュータ１８０上に常駐するものとして示す。図示されるネットワーク接続は例示的なものであって、コンピュータ間の通信リンクを確立する他の手段も使用できることを理解されよう。
【００２２】
図２は、図１に示されるオペレーティング・システム１３４に統合されるローカライズ・プラットフォーム（又はシステム）２００を示す。ローカライズ・プラットフォーム２００がいくつかの異なるメモリ・ストアと共に示されており、図１に示される様々な記憶装置のいずれかでこうしたメモリ・ストアを具体化できることを理解されよう。システム２００が、ローカライズを受けるアプリケーション２０２と、データ収集構成要素２０５を介して様々な翻訳をシステム２００内のデータ・ストアに入力する様々な入力ソース２０４と共に対話的に構成されるように示されている。
【００２３】
システム２００自体は、リソース・マネージャ２０６、レイアウト・エンジン２０８、翻訳メモリ（ＴＭ）マッチャ２１０、ダウンロード・マネージャ２１２、翻訳メモリ（ＴＭ）データ・サービス２１４、機械翻訳（ＭＴ）システム２１６、フィルタ２１８、証明書システム２２０、及び複数の異なるデータ・ストアを含む。図２に示されるデータ・ストアは、アプリケーション規則データ・ストア２２２、ローカル・ストア２２４及びプライベート・ストア２２６、用語ベースデータ・ストア２２８及び用語ベース翻訳データ・ストア２３０、オントロジ・ストア２３２、翻訳メモリ２３４、ならびに共通ＵＩ要素データ・ストア２３６を含む。一般には、アプリケーション規則は、アプリケーション関連のリッチ・データを指定するためにリソースで使用され、そのフィルタは、データに寄与するエンティティ（又は入力ソース２０４）はそれが寄与するデータの修正のみが可能であること、及び追加されたすべてのデータが一定の規則に基づいてフィルタリングされることを保証するのに使用される。もちろん、各データ・ストアを別々に所望の方式でグループ化、併合、分割することができる。本明細書の後の部分で図２〜６に関してシステム２００の詳細な動作を説明する。しかし、システム２００及び図２に示される項目の動作の簡潔な議論をこれから行う。
【００２４】
実行期間に、リソース・マネージャ２０６は、アプリケーション２０２に関連するリソースをキャッシュ・メモリ２０７にロードする（コンテンツ及び他のタイプのローカライズ可能データに関して同様のシナリオを見出すことができる）。リソース・マネージャ２０６はまた、アプリケーション２０２からリソースを求める呼出しも受信する。それに応答して、リソース・マネージャ２０６はまず、プラットフォーム２００によって現在選択されているロケールに関連する言語の文字列をロードする。リソース・マネージャ２０６は、可用性、信頼水準、ユーザ設定などの様々な基準に基づいてリソースのどのバージョンをロードするかを決定する。リソース・マネージャ２０６は、ＴＭマッチャ２１０を起動することを決定することができる。そのようにするために、リソース・マネージャ２０６は、ＴＭマッチャ２１０を呼び出して、指定のリソースの翻訳（又はローカライズ）を得る。ＴＭマッチャ２１０は、リソース・ローディングでの実行時遅延を防止するために事前設定済みリソース・データを有することもでき、事前設定済み情報は、ＭＴシステム２１６から来たのか、それともＴＭマッチャ２１０から来たのか、その信頼ソースなどの関連情報でタグ付けされる。このことは以下でより詳細に議論する。ＴＭマッチャ２１０がリソースに対するマッチを返さない場合、リソース・マネージャ２０６は、異なるフォールバック言語で翻訳を与えることができるように、リソース・フォールバックを介して縦続接続する。このことも以下でより詳細に説明する。さらに、一つの実施の形態では、リソース・マネージャ２０６とＴＭマッチャ２１０はどちらもフォールバックを有する。これらは互いに異なるものでよく、ＴＭマッチャ２１０の結果はリソース・マネージャ２０６に影響を及ぼす可能性があるが、リソース・マネージャ２０６は、ＴＭマッチャ２１０を呼び出すことなくフォールバックすることを決定することができる。
【００２５】
ローカライズによって文字列に対して行われる変更が、そうした文字列を含むディスプレイ項目に対する変更を強制することは珍しくない。一般的な例は、より多くのスペースの必要（文字列の延長）、ダイアログの流れに関する変更（左から右に書く言語と左から右に書く言語）などを含む。調節プロセスは、ローカライズ時、レンダリング時、又はその両方で行うことができる。最も一般的なケースは、ダイアログ中の項目の再構成及びサイズ変更が必要であることであり、そのプロセスは自動レイアウトと呼ばれる。オーサリング・プロセス期間に与えられる情報の量及び正確さは、実行時に生成される結果に影響を及ぼす。
【００２６】
ＴＭマッチャ２１０は、様々な翻訳のソースと、コンテンツをマッチングする（又は別の言語に翻訳し、あるいはローカライズする）ことを要求するリソース・マネージャ２０６との間に位置する。ＴＭマッチャ２１０は、利用可能なソース（及びアプリケーション２０２によって信頼されるソース）を探索して、それに関連する最高の信頼スコアを有する翻訳を見つける。
【００２７】
やはり、ＴＭマッチャ２１０の動作のより詳細な議論は、図４に関して以下で行われる。しかし、簡潔には、ＴＭマッチャ２１０は、アプリケーション規則データ・ストア２２２内のアプリケーション又はコンテンツ２０２に関連する規則にアクセスして、リソース・マネージャ２０６に戻されるローカライズが何であっても、アプリケーション２０２に誤作動を引き起こさないことを保証する。ＴＭマッチャ２１０はまず、ローカル・データ・ストア２２４及びプライベート・データ・ストア２２６を探索して、ローカライズが既に存在するかどうかを確認する。リソース・マネージャ２０６によって行われている命令が以前に行われた命令である場合、ローカル・データ・ストア２２４は、既にローカライズされているリソースの翻訳又は他のローカライズを保持する。
【００２８】
ＴＭマッチャ２１０はまた、ＴＭデータ・サービス２１４を起動する。ＴＭデータサービス２１４は、ストア２３６に格納された共通ユーザ・インタフェース（ＵＩ）要素などの多種多様な異なる事柄の翻訳又は他のローカライズを含む翻訳メモリ２３４、並びに用語ベース２２８に格納された定義済み用語にアクセスし、オントロジ・ストア２３２は、アプリケーション２０２及び関連するドメインに関するコンテキスト情報を提供する。
【００２９】
ローカライズがストア２２４又は２２６上にローカルに存在せず、ストア２３４上にリモートに存在しない場合、ローカライズすべきコンテンツに関する機械翻訳を実施するために、ＴＭマッチャ２１０は、任意選択で利用可能な機械翻訳（ＭＴ）システム２１６（又は複数の利用可能なＭＴシステムのうちの１つ）にアクセスすることができる。ＴＭマッチャ２１０によるＭＴシステム２１６を起動する決定は、ユーザ・プリファレンス、翻訳の可用性、利用可能な翻訳及びＭＴ提供の翻訳の品質などに基づくことができる。一つの実施の形態では、機械翻訳システム２１６は任意の市販のＭＴシステムであり、例示的には、他のメモリソース（ＴＭデータサービス２１４、ローカル・データ・ストア２２４、プライベート・データ・ストア２２６など）のいずれからもより高い信頼水準のマッチがなかった場合の翻訳のためにのみ使用される。新しいＭＴシステム又は異なるＭＴシステムをＴＭマッチャ２１０で容易に使用することができるので、ＭＴシステム２１６がほぼ任意のＭＴシステム、又は異なるストア内のデータ（例えば以前の翻訳）を使用して翻訳を生成することのできる任意のシステムでよいことは、システムの拡張性を著しく高める。
【００３０】
もちろん、ＭＴシステムの拡張性は、システムの拡張性だけではなく、一例に過ぎない。システム拡張性のいくつかの他の例は、コンテンツ・オーサリング・エディタ、言語パーサ、サードパーティ翻訳メモリ、コミュニティ・エディタ、開発オーサリング環境、ウェブ・サービスへの接続などを含む。上記又はその他のエリアの拡張性が、プラットフォーム２００内のＡＰＩによってサポートされる。
【００３１】
いずれにしても、ＴＭマッチャ２１０によって呼び出される各翻訳リソースは、例示的には、要求されているローカライズに関連する信頼性又は再利用速度を示す信頼スコア（又は翻訳速度、リサイクル速度、又は他の同様の尺度）をＴＭマッチャ２１０に提供する。次いで、ＴＭマッチャ２１０は、最高のスコアに関連する翻訳を提供する信頼されるソースからのローカライズ又は翻訳を選択することができる。次いで、翻訳がまだローカル・ストア２２４に格納されていない場合、翻訳がダウンロード・マネージャ２１２によってローカル・ストア２２４にダウンロードされる。
【００３２】
１つの例示的な実施の形態では、多種多様な入力ソース２０４が、システム２００内の様々なメモリに翻訳入力を提供することができる。例えば、ローカライズ・プラットフォーム２００を組み込むオペレーティング・システムを開発するベンダ又はソフトウェア製造業者が、例示的には、信頼される用語を様々なメモリに提供する。しかし、一つの実施の形態では、入力ソース２０４は、コミュニティ全体及び開発コミュニティを含むことができる。コミュニティ全体は、システム２００を使用してローカライズ・サービスを実施する任意の人が、データ収集構成要素２０５を介して１つのコンテンツの提案されるローカライズを適切なメモリに提供することを可能にする。入力ソース２０４はまた、開発者と公式に認識される開発者のみによって提供される翻訳を格納する（コミュニティ全体ではなく）開発コミュニティも含むことができる。したがって、プラットフォーム２００は、ローカライズ・プロセスを非常に大規模なコミュニティ参加に対して開放することを可能にし、ユーザの必要及び期待を満たすようにグラニュール・レベルで調節することを可能にする（例えば、ユーザが何を信頼し、何を信頼しないかを決定する）。
【００３３】
さらに、データ収集構成要素は、様々な入力ソース２０４から（セットアップ、実行、構成などの期間に）動的に、断続的に新しいデータを収集することができる。新しいデータはもちろん、新しいリソース・データならびに事前ローカライズ済みデータ又は翻訳メモリデータでよく、新しいアプリケーション、新しいドメインをサポートし、動作中のオペレーティング・システムの自己回転を実施する。これは、システムの適応性及び精度を含む。
【００３４】
しかし、特定のアプリケーション開発者、システム管理者、又はユーザは、あるローカライズ・コンテンツのみを信頼することを望むことがある。例えば、開発者は、コミュニティ全体又は開発コミュニティからのローカライズ・コンテンツを信頼することを望まず、ベンダ及びＯＳ製造業者からのローカライズ・コンテンツのみを信頼することを望むことがある。これは、プラットフォーム２００がローカライズ・タスクを様々なソースに公開する範囲を開発者又はユーザが設定することを可能にする。文字列単位でこれを設定することさえできる。
【００３５】
そのような一つの実施の形態では、システム２００は、あるソースによって提供されるコンテンツに証明書を添付する証明書システム２２０を含む。その場合には、アプリケーション２０２の開発者は、証明書が添付されたローカライズ・コンテンツのみを信頼することを望むことがある。例えば、開発者及び他の貢献者は、その人のアプリケーションに関連して、その人のいる層に対するその人のコンテンツに署名する権利を得ることができることがある。そのことは、アプリケーションの開発者の証明書がその特定のアプリケーションに関する開発者層にその開発者を置き、他のすべての貢献者が「他のＩＳＶ」コミュニティ内の１つ下の層又はユーザ層であることを意味する。貢献者の層に対して証明書は信頼することができる。例えば、所与の製造業者は、最高の層を常に有することがあるが、その層から下では、ユーザは、信頼される層を決定することができ、層内で信頼されるソースを決定することができる。ローカライズ・コンテンツを任意の所与のアプリケーション２０２又は任意のユーザで信頼すべきであることに関する表示をアプリケーション規則データ・ストア２２２に格納することができる。証明書は、翻訳に関する信頼システムを確立する助けとなる。
【００３６】
ユーザ又は開発者は、階層型信頼ソースを選ぶこともできる。例えば、ローカライズ・コンテンツの源に基づいて、ユーザは、ＯＳ製造業者のみを信頼するかどうかを決定することができ、利用可能なものがない場合、独立ソフトウェア・ベンダの翻訳を信頼するかどうかを決定することができ、それらが利用可能でない場合、開発コミュニティのみを信頼するかどうかを決定することができ、以下同様である。例示的な一つの実施の形態では、この階層はデフォルトで確立されるが、ユーザは単にそれを受諾することができ、又はそれを個人設定で上書きすることができる。そのような設定を、各アプリケーション、又はアプリケーションを実行する個々のマシンに関連するアプリケーション規則として実装することができる。
【００３７】
更に、プライベート・ストア２２６は、ユーザのデータ・ストア上に常駐する点でローカル・ストア２２４と同様であることに留意されたい。しかし、ローカル・ストア２２４は例示的にはシステム全体のストアであり、一方プライベート・ストア２２６は、ユーザ自身のプライベートの使用のためにユーザによって入力されたデータを含む、個々のユーザに対応する信頼されるローカライズ・コンテンツを示すのに使用することのできるストアである。したがって、それぞれの個々のユーザは、異なる信頼されるローカライズ・コンテンツを識別することができる。そのコンテンツは、プライベート・ストア２２６内のその特定のユーザに対して識別される。これは、個々のユーザが、個々のアプリケーションに関連するものよりもさらに、ローカライズ・プロセスをカスタマイズすることを可能にする。例えば、ユーザは、アプリケーションによって必要とされ、許可される通りに、ユーザ自身のアプリケーションに対する変更を行うことができる。ユーザはまた、ローカル・ストア又はプライベート・ストアをコミュニティに対して共有することもできる。
【００３８】
更に、いくつかの翻訳が変更されないようにそれをロックすることができる。このことは、潜在的に悪質な翻訳を避けるために決定的に重要である可能性がある。例えば、入力ソースのうちの１つが、「ここでクリックしてあなたのハードドライブをフォーマットします」という用語を「ここでクリックして続行します」と翻訳する悪質な翻訳を提供することがある。
【００３９】
ＴＭマッチャ２１０がリソース・マネージャ２０６からの要求に関する所望のローカライズを得た後、ＴＭマッチャ２１０は、ストア２２２からのフィルタ２１８及びアプリケーション規則を適用する。フィルタ２１８は、例示的には、任意の所与の言語で任意のローカライズ・コンテンツに配置すべきでない用語を定義する。例えば、あるユーザは、猥褻な用語又は任意の他の不快なコンテンツをフィルタリングすることを望むことがある。したがって、リソース・マネージャ２０６によって要求されたローカライズ済みコンテンツを使用する前にフィルタ２１８が適用される。留意されるように、フィルタ（ならびに任意の他のタイプの検証）の適用はローカライズでの１ステップであり、編集、ダウンロード、使用などのプロセスの多くのステップでフィルタを適用できる。
【００４０】
例えば、構成要素が完全に互いを信頼せず、通信するのに使用されるチャネルも（内密の活動などに対して）信頼されないならば、検証は、一般には、２つの構成要素がデータを交換するときにはいつでも行われる。したがって、例えば、リソースが信頼されるソースからダウンロードされ、リソースが有効な署名を含む場合、他の検証（署名の検証以外）を行う必要はない。ソースは信頼されるがファイルが署名されていない場合、情報を移送するのに使用されるチャネルが評価され、それも信頼されるかどうかが決定される。例えば、インターネットからダウンロードされた未署名ファイルは、ユーザが同一のコンピュータ内の別のフォルダからコピーした未署名ファイルよりも改ざんされている可能性が高い。いくつかの因子に応じて、迅速な機能検証に着手することを決定することができ、又は不快な語に関するチェック、又は元のリソース内の用語がターゲット・リソース上に存在することを保証すること（例えば、したがって「メニュー」は「フォルダ」と翻訳されない）などのいくつかの追加のコンテンツ検証を実施することができる。
【００４１】
アプリケーション・セットアップ／構成構成要素２４０は、セットアップ期間に及びセットアップ構成後に使用される。セットアップ期間に、アプリケーション２０２は、そのリソースをローカル・リソース・ストア２２４に登録する。構成要素２４０は、例示的には、アプリケーションがまだローカライズされていない場合にユーザがアプリケーションをプラットフォームでサポートされるターゲット言語にローカライズすることを可能にするユーザ・インタフェースを公開する。ユーザ・インタフェースは、ユーザがターゲット言語を明示的に選択することを可能にすることができる。オンデマンド・ローカライズ構成要素２４１は、こうした用語をリソース・マネージャ２０６、場合によってはさらにＴＭマッチャ２１０に渡す。
【００４２】
レガシー・アプリケーション２４２は、開発されたがプラットフォーム２００を認識しないアプリケーションを表す。互換性層２４３は、アプリケーション２４２によって使用される既存のリソースインタフェースをサポートし、呼出しをリソース・マネージャ２０６にリダイレクトする。
【００４３】
図３は、本発明の一つの実施の形態によるプラットフォーム２００の動作をより詳細に示す流れ図である。実行期間に、ユーザはまずアプリケーション２０２を選択し、又は立ち上げる。このことが図３のブロック３００で示される。次に、この実施の形態では、リソース・マネージャ２０６がアプリケーション２０２に関連する必要なリソースをキャッシュ・メモリ２０７（又は別の記憶装置。本明細書ではこの状況でそれらすべてを「キャッシュ」と呼ぶ）にロードする。このことがブロック３０２で示される。
【００４４】
バックグラウンドでは、オペレーティング・システム（具体的にはローカライズ・プラットフォーム２００）が、キャッシュ２０７内のリソースを所望の言語に翻訳することを開始する。その際に、プラットフォーム２００は、アプリケーション２０２に関連するアプリケーション規則２２２と、アプリケーション２０２又はユーザ（どちらが当てはまるとしても）に関連する信頼モデル（すなわち信頼されるローカライズ・ソース）を実装する。リソース・マネージャ２０６は、キャッシュ２０７に格納されたリソースに関するＴＭマッチャ２１０を起動して、そのローカライズされた値を得る。バックグラウンドでキャッシュ２０７にロードされたリソースのローカライズが、図３のブロック３０４で示される。
【００４５】
アプリケーションに関するローカライズされたリソースを追加することは実行時まで待つ必要がないことにも留意されたい。その代わりに、セットアップ期間に又は別の時間に行うことができる。さらに、ローカライズの一部を実行時に実行することができ、他の部分はセットアップ時又は別の時間に行うことができる。例えば、より計算コストがかかり、時間のかかるタスクの一部をセットアップ期間に又は別の時間にバックグラウンドで実行することができ、より迅速なタスクを実行時に実行することができる。さらに別の実施の形態では、（ユーザが）実行タスクを任意の特定の時間に割り当てることができ、そうしたタスクのステータスを表示することもできる。
【００４６】
リソースがバックグラウンドでローカライズされるので、ローカライズされた値がキャッシュ２０７に格納されるだけではなく、ローカル・ストア２２４にも配置される。したがって、ローカライズされたこうしたリソース値のすべてがローカル・ストア２２４に既に配置されることになるので、次回にアプリケーション２０２が立ち上がる時、ローカライズ・プロセスがずっと迅速になる。したがって、ローカライズがシステムによって記憶されるので、ＴＭマッチャ２１０は、ＴＭデータ・サービス２１４を探索する必要がなく、又は機械翻訳システム２１６を使用して値を変換させる必要がない。その代わりに、それらを単にローカル・ストア２２４から取り出すことができる。翻訳をローカル・ストア２２４に格納することが、図３のブロック３０６で示される。さらに、オンデマンドで、ダウンロード・マネージャ２１２を使用して全翻訳をローカル・ストア２２４にロードすることができる。
【００４７】
もちろん、このシステムは更新をチェックすることもできる。例えば、より良い翻訳の位置を突き止めることができないので、理想的でない翻訳が最初に選ばれることがある。しかし、後で、ソース２０４のうちの１つにより、より良い翻訳をメモリのうちの１つにロードすることができる。次いで、これに対処するためにリソースを周期的に更新することができる。
【００４８】
同様に、コード更新は、以前にローカライズされたリソースを無効にすることができる。したがって、一つの実施の形態では、コード変更は、リソースの一部又はすべての再ローカライズをトリガする。
【００４９】
リソース翻訳が作成されると、レイアウト・エンジン２０８は、アプリケーションに関するディスプレイのレイアウトに対する修正を必要とする一定の翻訳を識別する。さらに、アプリケーションのソース言語で使用されるフォントがターゲット言語のフォントにマッピングされる。このことは、実行時又は前の時間にレイアウト・エンジン２０８又は他の構成要素によって行うことができる。レイアウト及びフォント・マッピングが、図３のブロック３０８で示される。
【００５０】
このようにして、オペレーティング・システム内のローカライズ・プラットフォーム２００は、アプリケーション２０２に関連し、キャッシュ２０７に格納されたリソースを引き続きローカライズする。しかし、バックグラウンドでまだローカライズされていないリソースを求める要求をアプリケーションが行うことが生じる可能性がある。そのような要求が、図３のブロック３１０で示される。リソース・マネージャ２０６はまず、要求されたリソースが既にローカライズされ、キャッシュ２０７に格納されているかどうかを決定する。このことが図３のブロック３１２で示される。格納されている場合、要求されたリソースのローカライズが単にキャッシュ・メモリ２０７からアプリケーション２０２に返される。このことがブロック３１４で示される。
【００５１】
しかし、リソースがバックグラウンドでまだローカライズされておらず、キャッシュ２０７に格納されていない場合、リソース・マネージャ２０６は、リソースのローカライズをＴＭマッチャ２１０に要求する。次いで、ＴＭマッチャ２１０は、リソースのローカライズを、ＴＭマッチャ２１０がアクセスを有する様々なソースに要求し、様々なソースは、要求されたリソースのローカライズを返す。ＴＭマッチャ２１０の起動が、図３のブロック３１６に示される。ＴＭマッチャ２１０のオペレーションを図４に関連してより詳細に説明する。
【００５２】
キャッシュ２０７内のリソースをバックグラウンドでローカライズすることにより、ローカライズ・プラットフォーム２００は従来のシステムから著しく異なっている。従来のシステムは、キャッシュにリソースをロードする。しかし、これにより、ローカライズの著しい欠点が生じる。ＭＴを起動することによってオンザフライでリソースをローカライズするようアプリケーションがリソースを要求するのをローカライズ・プラットフォームが待機する場合、この結果として、アプリケーション２０２の動作の望ましくない遅延が生じる可能性が高く、又は結果がそのような制限された環境で使用することのできるアルゴリズムの組によって制限される（性能要件が精度を制限することができる）。現在の機械翻訳技術は、一つの文を翻訳するのに約０．５秒を必要とする。オンザフライ翻訳及び他のローカライズが確かに本発明によって企図されるが、機械翻訳システム２１６を使用してリソースのすべてをオンザフライで翻訳する結果として、アプリケーションの動作が過度に遅延する可能性が高い。もちろん、かなりの数のリソースが事前にローカライズされており、ローカル・ストア２２４又はプライベート・ストア２２６に格納される場合、又はそれらが翻訳メモリ２３４に格納され、リソースの比較的小部分をＭＴシステム２１６で翻訳する必要がある場合、バックグラウンドでのキャッシュ２０７のローカライズは、アプリケーション２０２の動作を損なうことを回避するのにそれほど重要ではない。
【００５３】
いずれにしても、ＴＭマッチャ２１０は、バックグラウンド及び／又はオンザフライでキャッシュ２０７内の値を引き続きローカライズする。ＴＭマッチャ２１０は、すべてのリソースがローカライズされるまで続行する。
【００５４】
一般には、ＴＭマッチャ２１０は、１つ又は複数のデータ・ストアに対して働くことができる。任意選択で、ＴＭマッチャ２１０は、他のリサイクル・エンジン（ＴＭマッチャやＭＴシステムなど）と統合することができる。任意選択で、ＴＭマッチャ２１０は、用語をその翻訳及び関係（オントロジ）と共に利用することができる。ＴＭマッチャ２１０は、メタデータを使用して、ストア内のどのデータが探索空間（ドメイン・エリア、作者、承認ステータス、又は他のメタデータ）を構成すると考えられるかを判断することができる。ＴＭマッチャ２１０は、文字列自体に関する制限（アプリケーション規則／フィルタ）に注目し、それを利用して、より良いマッチ又はより容易に検証されるマッチを生成する。もちろん、こうした特徴はすべて任意選択であり、要望に応じて、別のものを追加することができ、又はこれらを変更し、又はＴＭマッチャ動作から削除することができる。
【００５５】
図４は、単に例示目的で、ＴＭマッチャ２１０の動作の一つの実施の形態をより詳細に示す流れ図である。リソース・マネージャ２０６はまず、ローカライズを求める要求をＴＭマッチャ２１０に提供する。このことが、図４のブロック３５０で示される。次いで、ＴＭマッチャ２１０は、現コンテキストに関する信頼モデル情報を得る。一つの実施の形態では、信頼モデル情報がデータ自体と共に格納されるが、現コンテキストが与えられた場合に、信頼されるローカライズ・ソースを決定すべきコンテキストの任意の他の項目を識別するプライベート・ストア２２６又は任意の他のソースに格納することもできる。信頼モデル情報は、どのソースが信頼されるかの表示、又は、ローカライズされた項目が有効であって考慮されるために満たさなければならない要件のリストを含むことができる。これは、更新シナリオの助けにもなる。コードに関する更新は、リソースが満たさなければならない制約の組を変更することができる。こうした変更は、以前に仮定した有効なリソースの再検証を必要とする。このことが、図４のブロック３５２で示される。
【００５６】
次いで、ＴＭマッチャ２１０は、例示的には、すべての信頼されるローカライズ・ソースにリソースのローカライズを要求するが、所与の順序でそのように行うことができる。チェックされるソースの順序及び数は、例示的には、環境に応じて変化する（ローカライズが実行時に行われているか、セットアップ時に行われているか、バッチ処理で行われているかなど）。このことが、ブロック３５４で示される。言い換えれば、一つの実施の形態では、ＴＭマッチャ２１０は、信頼されないソースには翻訳を要求することさえしない。その場合、ユーザは入力ソース２０４中のコミュニティ全体又は開発コミュニティからの翻訳を信頼することを望まないと仮定する。ＴＭマッチャ２１０は、信頼されるソースを起源とするローカライズ・コンテンツのみを求め、それによってコミュニティ全体及び開発コミュニティによって与えられたローカライズ・コンテンツのすべてを除外する。もちろん、ＴＭマッチャ２１０は、現コンテキストが与えられた場合に信頼されるソースに基づいて、ローカライズ結果がそこから要求されるソースを修正する。
【００５７】
ＴＭマッチャ２１０からの要求に応答して、ローカライズ・コンテンツを要求された様々なソースが、その関連する信頼スコアを返す。非常に一般的であるが、例えば、翻訳結果は、ソース言語の入力が与えられた場合に翻訳が正しい可能性がどれほどかを示す、関連する信頼水準を有する。翻訳又は他のローカライズに関連する信頼性を示すのにどんな特定の尺度が使用されるかは、本発明の目的にとって重要ではない。例示的な実施の形態では、すべてのソースからのスコアは、同一の尺度、又は互いに相関する尺度を使用し、その結果、ＴＭマッチャ２１０は、スコアの相対的大きさを求めることができる。翻訳（又はローカライズ・コンテンツ）に関連する信頼スコアを返すことが、図４のブロック３５６で示される。
【００５８】
次いで、ＴＭマッチャ２１０は、最高スコアの信頼されるソースからローカライズ済みコンテンツ（例えば翻訳）を得る。このことがブロック３５８で示される。さらに、ＴＭマッチャ２１０は、ローカライズ済みコンテンツを得るのに必要な時間、ローカライズ済みコンテンツがターゲット・マーケットに対してどれほど近いか、検証基準又は他の基準あるいは任意の基準の組合せなどの他の基準又は追加の基準に基づいて、ローカライズ済みコンテンツを選択することもできる。さらに、ＴＭマッチャは、複数のソースからローカライズ・コンテンツを取り出し、それらを組み合わせることができる。
【００５９】
翻訳が受信されると、ＴＭマッチャ２１０は、フィルタ２１８及び他の検証を適用して、アプリケーション及びコンテキスト及びユーザが望む任意のフィルタ又は検証基準が与えられた場合にローカライズ・コンテンツ（又は翻訳）が適切であることを保証する。フィルタ及び他の検証を適用することが、図４のブロック３６０に示される。ＴＭマッチャ２１０はまた、例示的には、所与のリソースに関して取り出されたローカライズ・コンテンツがアプリケーションの動作を禁止しないように、又は不適切な動作を引き起こさないように、あるいはアプリケーションをクラッシュさせないように、アプリケーション規則を適用する。留意されるように、プロセスにおいてこの時点でのすべての必要なステップを実行するのを待機するのではなく、フィルタリング及び検証処理の一部を事前計算できる。
【００６０】
これが行われると、ＴＭマッチャ２１０は、結果をリソース・マネージャ２０６に返す。このことが、ブロック３６２で示される。理解されるように、このプロセスは、ＴＭマッチャ２１０がリソース・マネージャ２０６によって起動されるときはいつでも実行される。したがって、プロセスは、キャッシュ２０７内のリソースがバックグラウンドでローカライズされているときに実行され、アプリケーション２０２が今のところローカライズされていないリソースに対する要求を行うと実行される。
【００６１】
どちらの場合も、ＴＭマッチャ２１０は、所望の言語利用可能な翻訳が存在せず、又は返された信頼スコアが所与の閾値未満であるが、機械翻訳システム２１６を使用して翻訳に着手しなければならないことを発見することができる。この時点で、一つの実施の形態では、リソース・マネージャ２０６は通知を受け、ＴＭマッチャ２１０にフォールバック言語での翻訳を探すように要求することができる。例えば、ターゲット言語がカタロニア語である場合、アプリケーション２０２は、リソースの翻訳を要求することができるが、カタロニア語では利用可能ではないことがある。しかし、スペイン語がカタロニア語に対する第１フォールバック言語となるようにリソース・マネージャ２０６を構成することができる。その場合、ＴＭマッチャ２１０はリソース・マネージャ２０６に返し、カタロニア語では翻訳が利用可能ではなく、機械翻訳システム２１６を起動してそのような翻訳を得なければならないことを示す（あるいは、ＴＭマッチャ２１０による最初の呼出し時にＭＴシステム２１６を呼び出すこともできる）。リソース・マネージャ２０６は、オンザフライ機械翻訳に関連する性能上の不利益を被る代わりに、要求したリソースの翻訳をスペイン語で返すようにＴＭマッチャ２１０に単に要求することができる。それが利用可能である場合、それがＴＭマッチャ２１０によって返される。
【００６２】
もちろん、上に示したように、様々なロケールが様々な他のロケールに関するフォールバックとなるように、フォールバック・ロケール／言語を任意の所望の程度まで階層的に縦続接続することができ、様々なロケールの最終フォールバックはソース言語であり得る。したがって、要求されたリソースの翻訳を提供する代わりに、最終フォールバックに達した場合、リソース・マネージャ２０６は単に、要求されたリソースを最終フォールバックでアプリケーション２０２に返す。これはプラットフォームによって保証されるので、アプリケーションは、プラットフォームのためにユーザとの対話地点とクラッシュし又は対話地点を失うことはない。
【００６３】
ユーザはまた、例示的には、フォールバック階層がどのように機能するかを設定することができる。例えば、ユーザは、１群のリソース（例えば、いくつかの文字列を有するダイアログ）を一緒に表示することが、ダイアログの一部をある言語で示し（又は、あるマーケットにローカライズされ））、一部を別の言語で（例えばフォールバックで）示すことができることを指示することができる。他のユーザは、表示されたグループのリソースがすべて１つの言語となるべきである（又は、同一のマーケットにローカライズされる）ことを指示することができる。
【００６４】
留意されるように、ユーザはアプリケーションをプラットフォーム２００で翻訳させるためにアプリケーションを立ち上げる必要はない。ユーザは、ローカライズのためにアプリケーション又は他のソフトウェア・コンポーネントを単に選択することができ、プラットフォーム２００は、それをバックグラウンドでローカライズすることができる。例えば、一つの実施の形態では、ユーザは、アプリケーション上で右クリックし、メニューから「ローカライズ」を選択する。次いで、プラットフォーム２００は、バックグラウンドでアプリケーションのローカライズを開始し、ローカライズ済みコンテンツをローカル・ストアに格納する。コンテンツもバックグラウンドでローカライズすることができる。一つの実施の形態では、ユーザはファイル・システム内又はサーバ上に格納される文書上で右クリックし、「ローカライズ」を選ぶ。ローカライズ・プラットフォームは、バックグラウンドで文書をローカライズする。同じことが、インターネットからダウンロードされた文書に当てはまる。
【００６５】
さらに、アプリケーションがインストールされるとき（又は後の時間に）、ユーザは、インストールのために複数の異なる言語を選択することができる。次いで、これらの言語がローカル・データ・ストア２２４にロードされる。翻訳を製品コンパクト・ディスク又は他の媒体上に格納することができる。
【００６６】
図５は、開発コンテキストでのプラットフォーム２００の構成要素を示すブロック図である。多数の項目が図２に示される項目と同様であり、それらは同様に番号付けされている。
【００６７】
図５は、支援プラットフォーム３８０及び開発構成要素３８２を示す。開発構成要素３８２は、ワシントン州レドモンドのマイクロソフト社から入手可能なＶｉｓｕａｌ  Ｓｔｕｄｉｏなどの任意の望ましい開発構成要素、又は、ソフトウェアをオーサリングするための任意の他の所望の開発構成要素でよい。支援プラットフォーム３８０は、翻訳プラットフォーム３８１などのプラットフォーム２００の１つ又は複数の構成要素と対話することによってコンテンツをオーサリングする際の助けとなり、開発者が高リサイクル速度を有する製品を開発することを可能にし、したがって異なる言語にローカライズするためのコストを著しく削減する。開発構成要素３８２と支援プラットフォーム３８０は共に、プラットフォーム２００によって提供されるサービスを消費する。その際に、開発構成要素３８２及び支援プラットフォーム３８０は、他の構成要素と共に、ある手法ではフロントエンド開発オーサリング・プロセスを構築し、これにより、製品をローカライズして様々な異なるマーケットに参入する能力を非常に高める可能性が高く、したがって開発投資に対する収益を大きく向上させる。
【００６８】
構築構成要素３８４は、ローカライズ・プラットフォーム及び／又は支援プラットフォーム３８０その他の、ＡＰＩを介してローカライズ・プラットフォームにアクセスすることのできる任意のコンテンツ・オーサリング・ツールによって提供される情報と、データ・ストア２２２内のアプリケーション規則とを使用し、アプリケーション２０２ならびにコンテンツ文書を構築する。
【００６９】
この図５の議論は、一般に、アプリケーションを開発する開発者又はコンテンツをオーサリングする作者に関して進められることにも留意されたい。しかし、開発者が開発中している又は作者がオーサリングしているコンテンツ又はソフトウェアのタイプに拘わらず、様々な事柄に関してシステムを使用することができる。
【００７０】
本発明の一つの実施の形態によれば、開発者又は作者がそれぞれ開発構成要素３８２を使用してソフトウェア又は支援プラットフォーム３８０を開発し、コンテンツを開発するための２つの方式がある。第１の方式は、プラットフォーム・アプリケーション・プログラミング・インタフェース（ＡＰＩ）又は他の類似の機構を介して、何らかの類似のコンテンツ又はソフトウェアが既に開発されているかどうかを決定し、プラットフォーム２００のメモリのいずれかに格納される、開発者又は作者のオーサリング／開発環境における特徴を使用することである。第２の方式は、開発者が単にソフトウェア又はコンテンツ（オリジナル又は非オリジナル）を開発することである。後者の場合、プラットフォーム２００は単に、コンテンツ／ソフトウェアのリサイクル速度（例えば、以前の翻訳が与えられた場合にプラットフォーム２００で異なる言語に翻訳することのできるコンテンツ／ソフトウェアの量）に関するフィードバックを開発者に提供し、リサイクル速度を増加させる可能性の高い手法を提案し、ローカライズ後にアプリケーションが機能不全となることを阻止する手法をも提案するように働く。
【００７１】
第１の実施の形態によれば、コンテンツ作者は、支援プラットフォーム３８０を介して入力を与え、支援プラットフォーム３８０はＡＰＩ又は他の類似の機構を呼び出してリソースをオーサリングする。このことが、図６のブロック５００で示される。次いで、支援プラットフォーム３８０はＴＭマッチャ２１０を起動してローカル・ストア２２４にアクセスし、既に翻訳を有するすべてのタイプのリソースを返す。このことが、図６のブロック５０２で示される。例えば、開発者プラットフォームはＡＰＩを起動して、コンテンツ開発者がリソースをオーサリングしたいことを示すことができる。それに応答して、プラットフォーム３８０は、プラットフォーム２００に含まれ且つ様々な異なる言語への翻訳を既に有する様々なクラスのリソースのすべての表示を返す。例えば、プラットフォームからの、開発者プラットフォームによってユーザに提示される結果が「メニュー」及び「エラー・メッセージ」のクラスであると仮定する。
【００７２】
ＡＰＩ内の公開される機能を介して、開発者は、「エラー・メッセージ」クラスを選ぶことができ、支援プラットフォーム３８０は、プラットフォーム２００のこの情報を要求し（これは任意のメモリ内のストアでよい）、次いで、プラットフォーム２００に含まれるエラー・メッセージの様々なクラスのすべてを返す。次いで、開発者は、エラー・メッセージのクラスの１つを選択し、プラットフォーム３８０は、そのクラスに関連する特定のエラー・メッセージのすべてを返す。次いで、ユーザは、（例えば、既に様々な異なる言語に翻訳され、あるいはローカライズされているので）既にオーサリングされており、ローカライズがそれに関して既に非常に効率的となるエラー・メッセージのうちの１つを単に選択することができる。タイプ、クラス、及び利用可能であれば特定のリソースを選択する開発者が、図６のブロック５０４で示される。
【００７３】
もちろん、理解されるように、開発者がオーサリングすることを望む特定の正確なメッセージが既に利用可能でない可能性がある。その場合、ユーザは非常に近いメッセージを選択し、それを修正することができる。修正済みメッセージは、多くの場合、その大部分は既にローカライズ・プラットフォーム２００に存在していたので、非常に効率的にローカライズすることができる可能性が高い。いずれにしても、類似の同一ではないメッセージを選ぶ結果、信頼性の不利益が生じることになる。選ばれたリソースを修正することが、図６のブロック５０６で示される。
【００７４】
このタイプのリサイクルは、開発後に生じる従来技術のローカライザと比較して高度な柔軟性を作者に提供する。例えば、作者は、ソフトウェア文字列に関する配置可能物の数を変更することができるのに対して、従来のローカライザはずっと制限される。さらに、作者は（キー用語は維持されると仮定して）ソース文を完全に配置することができるのに対して、従来のローカライザはそうすることができない。「ファイル（０）が存在しません」というエラー・メッセージに関する文を考察する。作者は、これを「ドライブ（１）上のファイル（０）が見つかりません」に変更することができるのに対して、従来のローカライザは、最初の文の翻訳を第２の文に関する翻訳として使用することができない。これは、コードへのアクセスがなければ、従来のローカライザは配置可能物の数に関するコード内の基礎となる仮定を変更することができないからである。リサイクルを、メッセージ中に見つかったテキストに関してばかりでなく、データ・ストア２３６内の共通ＵＩ要素に関しても行うことができる。以前のＵＩ要素を再利用することは、製品のリサイクル速度及びローカライズをも高める。
【００７５】
開発期間に、開発者はオントロジ・オントロジ・ストア２３２を提供することを望むこともある。オントロジは概念化の仕様であり、コンテンツ及び文字列の意味符号化を可能にする、用語間の関係を記述する。オントロジの一つの実施の形態は米国特許第６２５３１７０号及び第６０９８０３３号に記載されている。オントロジの別の説明は、Ｇｒｕｂｅｒ著「Ａ  ＴＲＡＮＳＬＡＴＩＯＮ  ＡＰＰＲＯＡＣＨ  ＴＯ  ＰＯＲＴＡＢＬＥ  ＯＮＴＯＬＯＧＩＥＳ」、Ｋｎｏｗｌｅｄｇｅ  Ａｃｑｕｉｓｉｔｉｏｎ、５（２）：１９９〜２２０（１９９３年）に記載されている。
【００７６】
一般に、コンテキストに応じて語は別々に翻訳される。具体的には、ソフトウェア・ローカライズでのアプリケーション・コンテキストに応じて、語又は用語を別々に翻訳することができる。ローカライズ・プラットフォーム２００は、用語間の関係を記述するオントロジ・データ・ストア２８２の形の意味データへのアクセスを有する。オントロジは、語又は用語と共に意味情報を入力することによってマニュアルで生成することができ、あるいは、語又は用語の他の語又は用語に対する近接性によって意味コンテキストを決定することのできるアルゴリズムを適用することによって自動的に生成することができる。データ・ストア２８２は、例示的には、リソース・フォーマットから導出される構造及びアプリケーション・コンテキストによってポピュレートされる。オントロジ・ストア２８２における意味論的符号化のタイプは、プラットフォーム２００が翻訳すべきリソースに関する意味論を一義化することを可能にすると共に、照会一義化も可能にするので、強力な探索機能も提供する。翻訳プラットフォーム３８１は、図６のブロック５０８で、一義化が必要であるかどうかを決定する。必要である場合、オントロジ・ストア２３２がアクセスされて一義化意味情報を取得し、又は、支援プラットフォーム３８０が、開発構成要素３８２が開発者に行うことができるのと同じに、一義化意味情報を作者に要求することができる。このことが、図６のブロック５１０で示される。
【００７７】
開発者が製品を引き続き開発すると、オーサリングされたリソースのそれぞれは、プラットフォーム２００内の翻訳プラットフォーム３８１によるローカライズ速度推定を施される。オーサリングされたリソースのローカライズ速度を推定する際に、翻訳プラットフォーム３８１は、既に翻訳（あるいはローカライズ）されたリソース、及びプラットフォーム２００上のどこかに存在するリソースの割合を識別する。翻訳プラットフォーム３８１はまた、システム２１６によってリソースを機械翻訳にかけるための要件を明らかにし、プラットフォーム２００上に存在する各翻訳に関連する信頼スコアも考慮に入れる。こうした項目が組み合わされ、オーサリングされている製品が様々な言語の下で動作するマーケットにローカライズすることの容易さについての尺度であるリサイクル速度が得られる。動作中の全リサイクル速度を与えることが、図６のブロック５１２に示される。
【００７８】
留意されるように、多種多様な異なる方式でリサイクル速度を使用することができる。例えば、開発者がシステム全体の構成要素を開発しているだけである場合、構成要素は、チェックインされることが許可される前に、あるリサイクル速度閾値を満たすことが必要となることがある。同様に、リサイクル速度は、製品が他のマーケットに導入される可能性がどれほどであるかが与えられた場合に、製品の価値を十分に示すことができる。もちろん、多種多様な他の方式でリサイクル速度を使用することもできる。
【００７９】
システムは、プラットフォーム上で開発されないコードに関するリサイクル速度を計算できることにも留意されたい。コードは単にプラットフォーム２００に提供されるだけであり、ＴＭマッチャ２１０はコードに関するリサイクル速度を全体として計算することができ、要望に応じてそれを返すことができる。これは、新しいマーケットに製品を出すかどうか、さらには製品の権利を購入するかどうかを決定する際に使用され得る。
【００８０】
次に、開発者が既存のリソースを選んでいない実施の形態に関して議論を進める。開発者は、事前オーサリングされたリソースから選択することを望まないと仮定すると、元のリソース又はコンテンツをオーサリングすることができる。このことが、図６のブロック５１４で示される。その場合、開発者はコンテンツの一部を単にオーサリングするだけであり、支援プラットフォーム３８０がＴＭマッチャ２１０を呼び出して、オーサリングされたコンテンツに関するリサイクル速度を決定する。このことが、図６のブロック５１６で示される。次いで、ＴＭマッチャ２１０はそのローカライズ・ソースにアクセスし、新しくオーサリングされたリソース又はコンテンツに関するリサイクル速度を返す。このことが、図６のブロック５１８で示される。
【００８１】
この時点で、プラットフォーム２００を使用して、作者が製品のリサイクル速度を改善する助けとなり得る手法に関して作者に通知し、又はローカライズされた後にアプリケーションに誤作動を引き起こし得るいくつかの手法を作者に警報することもできる。こうしたヒントを返すことが、図６のブロック５２０によって示される。一つの実施の形態では、製品のソースが再利用されている場合であっても、こうしたヒントが提供される。もちろん、ソースが再利用されていることは、チェックの一部が既に実施されたことを意味する。
【００８２】
リサイクル速度又はアプリケーション機能に影響を及ぼす可能性のある手法のいくつかの例は、例えば、長い文字列を書き込むことを含む。長い文字列は理解が難しいだけでなく、翻訳も難しい。さらに、ソフトウェアは、アプリケーションをクラッシュさせることになるバッファ・オーバーランの危険を提示する。リサイクル速度又はアプリケーション機能に影響を及ぼし得る他の手法は、特別な文字の使用、あるいは不適切な又は非公式の文法の使用を含む。適切な文法構成の使用により、テキストを翻訳する能力が非常に向上する。したがって、ＴＭマッチャ２１０は、コードのリサイクル速度及び実施ヒントに関して実時間フィードバックを提供する。
【００８３】
さらに、プラットフォーム２００は、分析を受けるコンテンツ内のこうした問題エリアの負の影響を低減するために適切な措置を講じることができる。こうした措置は、ローカライズが施された後にアプリケーションがクラッシュする可能性を低減する。プラットフォーム２００は、こうした補強措置が行われることをユーザに警報することができる。
【００８４】
本発明に関して、いくつかの他の項目に注目すべきである。まず、本発明は、例示的にはホットキー自動化を提供する。翻訳プラットフォーム３８１は、例示的には、２つの機能が所与のＵＩ上の同一のホットキーに割り当てられることを回避するよう、任意の所与のＵＩ上に表示されるホットキーを追跡する。翻訳プラットフォーム３８１を起動して自動的にホットキーを選択することができ、又は翻訳プラットフォーム３８１を単に起動してチェックを行い、所与のＵＩに対してホットキー重複がないことを保証することができる。ホットキーを選択すること、又はユーザにホットキーを提案することを可能とするために、プラットフォームは、どの項目がユーザにとって同時に利用可能であり、したがって反復を避けることができるかに関する情報を必要とする。その情報は、情報をユーザのコンピュータに与えるのに必要な情報と密接に関係する。
【００８５】
本発明はまた、実行時環境の検証及びシミュレーションを提供することができる。開発者が構成要素をオーサリングすると、開発者は開発プラットフォーム３８２上でＡＰＩを起動することができ、プラットフォーム２００はローカライズが必要な実行時環境をシミュレートする。実行時シミュレーションは、ローカライズされた後のディスプレイ画面上の表示を開発者が物理的に見ることを可能にする。これは、開発者がバグをスキャンし、ディスプレイの美的魅力を評価し、望みに応じて変更を行うことを可能にする。
【００８６】
このように、本発明は、既に開発されたコンテンツを開発者が再利用する能力を高める。これは製品のリサイクル速度及びローカライズを著しく高める。
【００８７】
さらに、本発明は、オペレーティング・システム、アプリケーション、コミュニティ、及びサードパーティからのローカライズ済みコンテンツと、機械翻訳からのローカライズ済みコンテンツを知的に組み合わせるシステムを提供する。リソース・マネージャは、様々なソース又はデータ・ストア（ローカライズ・コンテンツ構成要素とも呼ばれる）からの所要の言語あるいは他の文化的基準又はマーケット基準に従って、要求されたリソースを返すことにより、アプリケーションのリソースをロードする。
【００８８】
さらに、ローカライズ・プラットフォームは、アプリケーション、ブラウザ、検索エンジン、リソース・ローダ、オーサリング・ツールなどの多種多様な要求側エンティティにローカライズ済みデータを提供するために使用することができる。
【００８９】
さらに、コミュニティ及びコミュニティ全体がローカライズ代替を示唆することを可能にすることにより、本発明はコミュニティ標準ローカライズを定義することを可能にし、時には、何らかの非常に小さいマーケットへのローカライズを可能にする。例えば、本発明により、ユーザはスワヒリ語に対して英語アプリケーションをローカライズすることが可能になる。ユーザは、アプリケーションにおける様々なリソースの示唆される翻訳として、このローカライズをプラットフォーム２００に戻すことができる。他の南アフリカのユーザは、このローカライズ済みコンテンツを信頼してそれをスワヒリ語でダウンロードすることを選ぶことができ、あるいは、該コンテンツをユーザ自身でローカライズし、又はローカライズを修正して、ユーザ自身のローカライズをプラットフォーム２００に戻すことを選ぶことができる。このようにして、アプリケーションはローカライズ及び改訂されて、マーケット・サイズが小さいために利用できないマーケットで利用可能にすることができる。
【００９０】
一つの実施の形態では、入力ソース２０４がデータを提供するとき、データ収集構成要素２０５は、源、使用法、コンテキスト情報（リソースのバージョンなど）、信頼水準、属性、機械翻訳ヒントなどのメタデータも記録する。他のデータを収集及びソートすることもできる。さらに、一つの実施の形態では、データを提供した入力ソース２０４のみが該データを変更することができる。
【００９１】
本発明は、コミュニティからの翻訳のダウンロードを提供するだけでなく、翻訳のアップロードをも提供する。さらに、ソース文字列を同様にアップロード／ダウンロードすることができる。
【００９２】
留意されるように、サードパーティの会社及びコミュニティが新しいソース及び翻訳メモリをプラットフォーム２００に追加できる。例示的な一つの実施の形態では、プラットフォーム２００は、新しいソース用語及びそのメタデータの追加を可能にするウェブ・ページ又はウェブ・サービスを提供する。例示的には、プラットフォーム２００が新しく追加された各項目のソースを決定することができるように、ユーザは認証を受ける。
【００９３】
さらに、プラットフォーム２００は、例示的には、ユーザがいくつかの文字列を直ちにアップロードすることを可能にする、発行されたスキーマ（ＸＭＬスキーマなど）に従って機能する。さらに、あらゆる操作は認証を必要とするので、各文字列のソースは既知である。例示的には、そのようなソース文字列を１つ又は複数の翻訳と共に追加することができる。プラットフォーム２００は用語データベースにおける用語に関して同様に動作する。
【００９４】
さらに、一つの実施の形態によれば、コミュニティは、プラットフォーム２００においてソース文字列に対する翻訳を提供することができる。翻訳を編集するとき、例示的には、ソースに存在するメタデータが「翻訳者」にとって利用可能であり、翻訳を受け入れる前にメタデータが実施される。このことを単純なウェブ・インタフェースを介して行うことができる。こうした翻訳は、ユーザがユーザの翻訳をコミュニティと共有することを選ぶ場合、他の人々が使用することができる。
【００９５】
本発明はまた、例示的には、コミュニティがプラットフォーム２００上に既に存在する翻訳を検討することを可能にする。これは、ユーザの翻訳を他のユーザが何回選んだかを翻訳のソースが決定することを可能にする。これは、コミュニティの入力ソースが、作業の品質に基づいてそれ自体の名前を構築することを可能にし、これは、コミュニティ内で一層高く評価されるように入力ソースが一層良い仕事を行うように駆り立てる。
【００９６】
本発明のさらに別の実施の形態によれば、開発者が翻訳のためにアプリケーションをアップロードすると、開発者には、エンド・ユーザが製品のエンド・ユーザ自身のローカライズ・バージョンをダウンロードすることを可能にする機会が与えられる。そのオプションが使用可能とされる場合、ユーザはプラットフォーム２００にログインし、製品の個人バージョンを生成するためにどの言語、エンジン、翻訳を使用するかを選ぶことができる。
【００９７】
例えば、ユーザは、コミュニティ（又は特定のユーザ）が承認した翻訳メモリを使用して翻訳エンジンの厳密なマッチを指定しながら、製品の「ｘｙｚ」バージョンを求めることができる。このプロセスを周期的に反復して、より高い割合のリソース翻訳を得ることができる。また、プラットフォーム２００は、新しい翻訳が利用可能であるとき、メール又は他の警報サービスを介してユーザへ通知を提供することもできる。
【００９８】
別の実施の形態によれば、サードパーティは新しいソース検証（又は翻訳）エンジンをプラットフォーム２００に追加することができる。上記で検討したように、開発者は、アプリケーションをプラットフォーム２００に提出して、アプリケーションをローカライズできる度合いが高いかどうかを決定することができる。サードパーティは新しいエンジンを書き込んでこれをサポートすることができる。サードパーティは、ソース検証を実施するための基準を満たすエンジンを開発したとき（例えば、所望のインタフェースを実装したとき）、該エンジンをプラットフォーム２００にアップロードし、ユーザがエンジンをダウンロードすることに対して課金する。本発明に関して説明したプロセスの他の部分と同じく、例示的には、エンジンのソースが既知であること、及び、ユーザがそのソースを信頼すると判断したことを保証するために、署名及び認証が使用される。
【００９９】
翻訳エンジンを同様に追加することができるが、例示的には、翻訳エンジンは、該翻訳エンジンが既存の任意の翻訳データを破壊しないことを保証するように行われるステップと共に、プラットフォーム２００を実装するサーバ上で動作することができる。さらに、本発明は、作者を支援するためにグローバル化及び言語チェックを実施する。本発明はまた、コミュニティが作者を助けることも可能にする。例えば、ソース文字列を容易にローカライズすることができる場合、コミュニティに対して、あるドメインにおけるダイアログ・ボックス上のソース文字列を求めることができる。これは、ローカライズ可能な度合いの高いコンテンツのオーサリングの着手時に作者を助ける。
【０１００】
記載の実施の形態では或る機能が或る構成要素に割り当てられるが、そうである必要はないことにも留意されたい。異なる構成要素によって機能を実施することができ、したがって、ある構成要素を削除、修正又は追加することができ、それらはすべて本発明の範囲内である。
【０１０１】
したがって、本発明は、多種多様な製品及び多種多様な入力ソースの過去のローカライズからのローカライズのデータを統合する。プラットフォーム２００は、開発者又はユーザの望みに応じて、この情報を、他の製品によってはアクセスできないそれ自体の翻訳メモリを有する各アプリケーション又は製品の代わりに、様々な製品の後続のローカライズに対して利用可能にする。プラットフォーム２００はまた、エンド・ユーザがそのコンピュータ体験をカスタマイズ（ローカライズ）するよう広い範囲のオプションへのアクセスを有するように、ローカライズ・プロセスを変更する。プラットフォーム２００はまた、プロセスへのコミュニティ参加を可能にする。その結果、ローカライズ・タスク自体は製品独立となり、アプリケーション・コンテキストを介して製品にリンクされるだけである。他のアプリケーションは、信頼モデル及びアプリケーション・コンテキストが許容する場合に、ローカライズされた文字列にいつでもアクセスすることができる。
【０１０２】
特定の実施の形態を参照しながら本発明を説明したが、当業者は理解するように、本発明の精神及び範囲から逸脱することなく形態及び詳細の変更を行うことができる。
【図面の簡単な説明】
【０１０３】
【図１】本発明を使用することのできる環境の例示的な一つの実施の形態である。
【図２】本発明の諸態様を配置する実行時環境のより詳細なブロック図である。
【図３】翻訳が利用不能である図２に示されるプラットフォーム（又はシステム）の動作全体を示す流れ図である。
【図４】図２に示されるマッチング構成要素の動作を示す流れ図である。
【図５】アプリケーション又は他のコンテンツの開発中に使用されるときの、図２に示されるローカライズ・プラットフォーム（又はシステム）の一層詳細なブロック図である。
【図６】本発明の一つの実施の形態による後のローカライズでの助けとなる技法を実装する、製品をどのように開発するかを示す流れ図である。
【図１】
2008533598.tif 000003
【図２】
2008533598.tif 000004
【図３】
2008533598.tif 000005
【図４】
2008533598.tif 000006
【図５】
2008533598.tif 000007
【図６】
2008533598.tif 000008