(57)【要約】  ソース言語の1つまたは複数のテキストテンプレートおよび対応するコンテキストに基づいてターゲット言語の文法的に正しいテキストを生成するシステムおよび方法は、1つまたは複数のソース言語テキストテンプレートおよびソース言語の対応するコンテキストを選択するように構成されたソフトウェアモジュールを含む。このシステムは、選択された1つまたは複数のソース言語テキストテンプレートおよびターゲット言語の対応するコンテキストをメモリから入手し、ターゲット言語コンテキストを1つまたは複数のターゲット言語テキストテンプレートに適用し、ターゲット言語に関する1つまたは複数の文法的規則を適用し、これによってターゲット言語の文法的に正しいテキスト文字列を生成するように構成されたローカライゼーションエンジンをも含む。このシステムは、さらに、ターゲット言語の文法的に正しいテキスト文字列を表示するように構成されたディスプレイを含む。【選択図】図１
2008520043.tif 000002
【特許請求の範囲】
【請求項１】
ソース言語の1つまたは複数のテキストテンプレートおよび対応するコンテキストに基づいてターゲット言語の文法的に正しいテキストを生成するように構成されたシステムであって、
1つまたは複数のソース言語テキストテンプレートおよび前記ソース言語の対応するコンテキストを選択するように構成されたソフトウェアモジュールであって、前記1つまたは複数のソース言語テキストテンプレートおよび1つまたは複数の対応するターゲット言語テキストテンプレートと、前記ソース言語のコンテキストおよび前記ターゲット言語の対応するコンテキストとを保管するように構成されたソフトウェアモジュールと、
前記選択された1つまたは複数のソース言語テキストテンプレートおよび前記ターゲット言語の対応するコンテキストをメモリから入手し、前記ターゲット言語コンテキストを前記1つまたは複数のターゲット言語テキストテンプレートに適用し、前記ターゲット言語に関する1つまたは複数の文法的規則を適用し、これによって前記ターゲット言語の文法的に正しいテキスト文字列を生成するように構成されたローカライゼーションエンジンと、
前記ターゲット言語の前記文法的に正しいテキスト文字列を表示するように構成されたディスプレイと
を含むシステム。
【請求項２】
前記コンテキストは、個数、性別、目的語のタイプ、ランク、年齢、および党派のうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項３】
前記ソフトウェアモジュールおよびローカライゼーションエンジンは、ユーザコンピュータで実施され、前記システムは、さらに、ネットワークを介して前記コンピュータと通信するサーバを含み、前記サーバは、前記ソース言語および前記ターゲット言語の1つまたは複数のテキストテンプレートと、前記ソース言語および前記ターゲット言語のコンテキストと、前記ターゲット言語に関する文法規則とのうちの少なくとも1つを前記コンピュータに送信するように構成される、請求項1に記載のシステム。
【請求項４】
追加ターゲット言語の文法的に正しいテキスト文字列を生成するように構成された追加ローカライゼーションエンジンをさらに含み、前記ソフトウェアモジュールは、さらに、前記追加ローカライゼーションエンジンによる使用のために前記複数のターゲット言語の前記1つまたは複数の対応するテキストテンプレートを保管するように構成される、請求項1に記載のシステム。
【請求項５】
ソース言語のテキストテンプレートおよびコンテキストに基づいてターゲット言語の文法的に正しいテキスト文字列を生成する方法であって、
前記ソース言語の1つまたは複数のテキストテンプレートおよびコンテキストを選択することと、
前記ソース言語の前記1つまたは複数の選択されたテキストテンプレートおよびコンテキストに対応する、前記ターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを入手することと、
前記ターゲット言語の前記コンテキストを前記ターゲット言語の前記1つまたは複数のテキストテンプレートに適用することによって、前記ターゲット言語の文法的に正しいテキスト文字列を生成することと、
前記ターゲット言語の前記文法的に正しいテキスト文字列を表示することと
を含む方法。
【請求項６】
前記文法的に正しいテキスト文字列を生成することは、さらに、前記ターゲット言語に関する1つまたは複数の文法規則に従って前記ターゲット言語の前記1つまたは複数のテキストテンプレートを展開することを含む、請求項5に記載のシステム。
【請求項７】
前記ターゲット言語に関する前記1つまたは複数の文法規則をネットワークを介して入手することをさらに含む、請求項6に記載のシステム。
【請求項８】
前記ターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを入手することは、ネットワークを介して前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよびコンテキストを要求することと、前記ネットワークを介して前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよびコンテキストを受け取ることとを含む、請求項5に記載のシステム。
【請求項９】
前記ターゲット言語の前記コンテキストを前記ターゲット言語の前記1つまたは複数のテキストテンプレートに適用することは、メタデータを使用することを含む、請求項5に記載のシステム。
【請求項１０】
前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよびコンテキストを入手することは、ネットワークを介してデータベースにアクセスすることを含み、前記データベースは、前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよび前記ターゲット言語の前記コンテキストのうちの少なくとも1つを保管するように構成される、請求項5に記載のシステム。
【請求項１１】
ソース言語のテキストテンプレートおよびコンテキストに基づいてターゲット言語の文法的に正しいテキスト文字列を生成する方法を実行するプログラムを保管するように構成されたコンピュータ可読媒体であって、前記方法は、
前記ソース言語のテキストテンプレートおよびコンテキストを受け取ることと、
前記ソース言語のテキストテンプレートおよびコンテキストに対応する、前記ターゲット言語のテキストテンプレートおよびコンテキストを入手することと、
前記ターゲット言語の前記コンテキストを前記ターゲット言語の前記テキストテンプレートに適用することによって、前記ターゲット言語の文法的に正しいテキスト文字列を生成することと
を含む、コンピュータ可読媒体。
【請求項１２】
前記ターゲット言語の文法的に正しいテキストテンプレートを生成することは、さらに、前記ターゲット言語に関する1つまたは複数の文法規則に従って前記ターゲット言語の前記テキストテンプレートを展開することを含む、請求項11に記載のコンピュータ可読媒体。
【請求項１３】
前記ターゲット言語の前記コンテキストを前記ターゲット言語の前記テキストテンプレートに適用することは、メタデータの使用を含む、請求項11に記載のコンピュータ可読媒体。
【請求項１４】
前記コンテキストは、個数、性別タイプ、ランク、年齢、および党派のうちの少なくとも1つを含む、請求項11に記載のコンピュータ可読媒体。
【請求項１５】
ソース言語の1つまたは複数のテキストテンプレートおよび対応するコンテキストに基づいてターゲット言語の文法的に正しいテキストを生成するように構成されたコンピュータゲーミングシステムであって、
前記ソース言語の1つまたは複数のテキストテンプレートおよび対応するコンテキストを選択するように構成されたゲームソフトウェアモジュールであって、前記ソース言語の前記1つまたは複数のテキストテンプレートと、前記ターゲット言語の1つまたは複数の対応するテキストテンプレートと、前記ソース言語のコンテキストと、前記ターゲット言語の対応するコンテキストとを保管するように構成されたゲームソフトウェアモジュールと、
前記選択された1つまたは複数のテキストテンプレートおよび前記ターゲット言語の対応するコンテキストをメモリから入手し、前記ターゲット言語コンテキストを前記ターゲット言語の前記1つまたは複数のテキストテンプレートに適用し、前記ターゲット言語に関する1つまたは複数の文法規則を適用し、これによって前記ターゲット言語の文法的に正しいテキスト文字列を生成するように構成されたローカライゼーションエンジンと、
前記ローカライゼーションエンジンによって生成された前記文法的に正しいテキスト文字列を表示するように構成されたディスプレイと
を含むシステム。
【請求項１６】
前記コンテキストは、個数、性別、目的語のタイプ、ランク、年齢、および党派のうちの少なくとも1つを含む、請求項15に記載のシステム。
【請求項１７】
前記ゲームソフトウェアモジュールおよびローカライゼーションエンジンは、ユーザコンピュータで実施され、前記システムは、さらに、ネットワークを介して前記コンピュータと通信するサーバを含み、前記サーバは、前記ソース言語および前記ターゲット言語の1つまたは複数のテキストテンプレートと、前記ソース言語および前記ターゲット言語のコンテキストと、前記ターゲット言語に関する文法規則とのうちの少なくとも1つを前記コンピュータに送信するように構成される、請求項15に記載のシステム。
【請求項１８】
追加ターゲット言語の文法的に正しいテキスト文字列を生成するように構成された追加ローカライゼーションエンジンをさらに含み、前記ゲームソフトウェアモジュールは、さらに、前記追加ローカライゼーションエンジンによる使用のために前記複数のターゲット言語の前記1つまたは複数の対応するテキストテンプレートを保管するように構成される、請求項15に記載のシステム。
【請求項１９】
ソース言語の1つまたは複数のテキストテンプレートおよび対応するコンテキストに基づいて複数のターゲット言語の文法的に正しいテキストを生成するように構成されたシステムであって、
前記ソース言語の1つまたは複数のテキストテンプレートおよびコンテキストを選択するように構成されたソフトウェアモジュールおよびディスプレイをそれぞれが含む、複数のクライアントコンピュータと、
前記ソース言語の前記1つまたは複数のテキストテンプレートおよび前記ターゲット言語の1つまたは複数の対応するテキストテンプレートと、前記ソース言語のコンテキストおよび前記ターゲット言語の対応するコンテキストとを保管するように構成されたメモリと、
前記ソース言語の前記選択された1つまたは複数のテキストテンプレートおよびコンテキストに対応するめいめいのターゲット言語の前記1つまたは複数のテキストテンプレートおよび対応するコンテキストをメモリから入手し、前記ターゲット言語コンテキストを前記ターゲット言語の前記1つまたは複数のテキストテンプレートに適用し、前記ターゲット言語に関する1つまたは複数の文法規則を適用し、これによって前記クライアントコンピュータのうちの1つまたは複数のディスプレイでの表示のために前記ターゲット言語の文法的に正しいテキスト文字列を生成するようにそれぞれが構成された、複数のローカライゼーションエンジンと
を含むシステム。
【請求項２０】
前記複数のコンピュータのうちの少なくとも1つは、ネットワークを介して前記ローカライゼーションエンジンのうちの少なくとも1つと通信する、請求項19に記載のシステム。
【請求項２１】
ソース言語のテキストテンプレートおよびコンテキストに基づいてターゲット言語の文法的に正しいテキスト文字列を生成するシステムであって、
前記ソース言語の1つまたは複数のテキストテンプレートおよびコンテキストを選択する手段と、
前記ソース言語の前記1つまたは複数の選択されたテキストテンプレートおよびコンテキストに対応する、前記ターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを入手する手段と、
前記ターゲット言語の前記コンテキストを前記ターゲット言語の前記1つまたは複数のテキストテンプレートに適用することによって、前記ターゲット言語の文法的に正しいテキスト文字列を生成する手段と、
前記ターゲット言語の前記文法的に正しいテキスト文字列を表示する手段と
を含むシステム。
【請求項２２】
前記文法的に正しいテキスト文字列を生成する前記手段は、さらに、前記ターゲット言語に関する1つまたは複数の文法規則に従って、前記ターゲット言語の前記1つまたは複数のテキストテンプレートを展開する手段を含む、請求項21に記載のシステム。
【請求項２３】
前記ターゲット言語に関する前記1つまたは複数の文法規則をネットワークを介して入手する手段をさらに含む、請求項22に記載のシステム。
【請求項２４】
前記ターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを入手する前記手段は、ネットワークを介して前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよびコンテキストを要求する手段と、前記ネットワークを介して前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよびコンテキストを受信する手段とを含む、請求項21に記載のシステム。
【請求項２５】
前記ターゲット言語の前記コンテキストを前記ターゲット言語の前記1つまたは複数のテキストテンプレートに適用することは、メタデータを使用することを含む、請求項21に記載のシステム。
【請求項２６】
前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよびコンテキストを入手する前記手段は、ネットワークを介してデータベースにアクセスする手段を含み、前記データベースは、前記ターゲット言語の前記1つまたは複数のテキストテンプレートおよび前記ターゲット言語の前記コンテキストのうちの少なくとも1つを保管するように構成される、請求項21に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト翻訳およびローカライゼーション（場面における最適化）の分野に関する。より具体的には、本発明は、ソース言語のコンテキスト（文脈）およびテキストテンプレートに基づいてターゲット言語の文法的に正しい文字列（ストリング）を生成するシステムおよび方法に関する。
【背景技術】
【０００２】
ユーザにテキストを表示するように構成された多くの製品が、使用される言語が製品の出所の言語と異なる地域別の設定情報（ロケール）で、使用されまたは実施されている。たとえば、ユーザにテキストを表示するコンピュータゲームなどのソフトウェアアプリケーションは、そのゲームがプレイされているロケールでの使用のためにテキストを翻訳することができる。同様に、しばしば、インターネットウェブページをユーザの選り抜きの言語でユーザに提示することが望ましく、このウェブページのテキストは、元々は異なる言語で記述されたものである。
【０００３】
テキストのローカライゼーションは、通常、ソース言語およびターゲット言語に精通した人による単語または句の翻訳を含む。しかし、これらの翻訳者には、しばしば、これらの翻訳者が文法的に正しい翻訳を提供するために必要とするコンテキスト的情報が十分にはない。たとえば、翻訳者は、しばしば、コンテキスト的問題を避けるためにshe/he、his/herの同義語および曖昧な受動態を使用し、ぎこちなくはないとしても包括的な翻訳をもたらす。残念ながら、文法的規則は、完全に自動化されたソフトウェアには複雑すぎ、変動しすぎ、ソフトウェアアプリケーション作成者は、テキストのローカライゼーションに必要なものとは異なる知識および（問題の）焦点を有する。
【０００４】
包括的でぎこちなく翻訳されたローカライズされた製品は、国際的なユーザ経験を劣化させ、その製品の全体的品質を下げる。この低い品質は、国際市場への浸透を妨げ、その製品の収益潜在能力の消失につながる。いくつかの試みが、純機械翻訳において行われてきた。しかし、機械翻訳は、必要な処理能力において高価であり、出力品質において不満足である。さらに、可変コンテンツを全く伴わない純静的テキストは、柔軟ではない。すべての可能な代替物に関する静的テキストは、通常は高価であり、翻訳の品質は、あまりに少数の代替物がある時に、明確でないことによって、悪くなる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、ターゲット言語の文法的に正しいテキストを生成するテキストローカライゼーションツールが、この技術分野において求められている。
【課題を解決するための手段】
【０００６】
ソース言語の1つまたは複数のテキスト文字列および対応するコンテキストに基づいてターゲット言語の文法的に正しいテキストを生成するように構成されたシステムの一実施形態は、1つまたは複数のソース言語テキストテンプレートおよびソース言語の対応するコンテキストを選択するように構成されたソフトウェアモジュールであって、1つまたは複数のソース言語テキストテンプレートおよび1つまたは複数の対応するターゲット言語テキストテンプレートと、ソース言語のコンテキストおよびターゲット言語の対応するコンテキストとを保管するように構成されたソフトウェアモジュールを含む。このシステムは、さらに、選択された1つまたは複数のソース言語テキストテンプレートおよびターゲット言語の対応するコンテキストをメモリから入手し、ターゲット言語コンテキストを1つまたは複数のターゲット言語テキストテンプレートに適用し、ターゲット言語に関する1つまたは複数の文法的規則を適用し、これによってターゲット言語の文法的に正しいテキスト文字列を生成するように構成されたローカライゼーションエンジンを含む。このシステムは、ターゲット言語の文法的に正しいテキスト文字列を表示するように構成されたディスプレイをも含む。
【０００７】
コンテキストには、個数、性別、目的語のタイプ、ランク、年齢、および党派のうちの少なくとも1つを含めることができる。一態様で、ソフトウェアモジュールおよびローカライゼーションエンジンは、ユーザコンピュータで実施され、システムは、さらに、ネットワークを介してコンピュータと通信するサーバを含み、サーバは、ソース言語およびターゲット言語の1つまたは複数のテキストテンプレートと、ソース言語およびターゲット言語のコンテキストと、ターゲット言語に関する文法規則とのうちの少なくとも1つをコンピュータに送信するように構成される。
【０００８】
このシステムは、追加ターゲット言語の文法的に正しいテキスト文字列を生成するように構成された追加ローカライゼーションエンジンをさらに含むことができ、ソフトウェアモジュールは、さらに、追加ローカライゼーションエンジンによる使用のために複数のターゲット言語の1つまたは複数の対応するテキストテンプレートを保管するように構成される。
【０００９】
ソース言語のテキストテンプレートおよびコンテキストに基づいてターゲット言語の文法的に正しいテキスト文字列を生成する方法の一実施形態は、ソース言語の1つまたは複数のテキストテンプレートおよびコンテキストを選択することと、ソース言語の1つまたは複数の選択されたテキストテンプレートおよびコンテキストに対応する、ターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを入手することと、ターゲット言語のコンテキストをターゲット言語の1つまたは複数のテキストテンプレートに適用することによって、ターゲット言語の文法的に正しいテキスト文字列を生成することと、ターゲット言語の文法的に正しいテキスト文字列を表示することとを含む。
【００１０】
文法的に正しいテキスト文字列を生成することは、さらに、ターゲット言語に関する1つまたは複数の文法規則に従ってターゲット言語の1つまたは複数のテキストテンプレートを展開することを含むことができる。この方法は、ターゲット言語に関する1つまたは複数の文法規則をネットワークを介して入手することをさらに含むことができる。ターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを入手することは、ネットワークを介してターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを要求することと、ネットワークを介してターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを受信することとを含むことができる。
【００１１】
ターゲット言語のコンテキストをターゲット言語の1つまたは複数のテキストテンプレートに適用することは、メタデータを使用することを含むことができ、ターゲット言語の1つまたは複数のテキストテンプレートおよびコンテキストを入手することは、ネットワークを介してデータベースにアクセスすることを含むことができ、データベースは、ターゲット言語の1つまたは複数のテキスト文字列およびターゲット言語のコンテキストのうちの少なくとも1つを保管するように構成することができる。
【発明を実施するための最良の形態】
【００１２】
次の詳細な説明は、本発明のある特定の実施形態を対象とする。しかし、本発明は、添付の特許請求の範囲によって定義され、包含される複数の異なる形で実施することができる。この説明では、図面を参照するが、図面では、類似する部分が、複数の図面を通じて類似する符号を用いて指定されている。
【００１３】
このシステムは、下で詳細に述べるように、さまざまなモジュール、ツール、およびアプリケーションからなる。当業者が理解できるとおり、これらのモジュールのそれぞれは、さまざまなサブルーチン、プロシージャ、定義ステートメント、およびマクロを含む。これらのモジュールのそれぞれは、通常は別々にコンパイルされ、単一の実行可能プログラムにリンクされる。したがって、これらのモジュールのそれぞれの次の説明は、好ましいシステムの機能性を説明するための便宜のために使用される。したがって、モジュールのそれぞれによって行われるプロセスは、任意に、他のモジュールの1つに再分配し、単一のモジュール内に一緒に組み合わせ、または、たとえば共有可能ダイナミックリンクライブラリ内で使用可能にすることができる。
【００１４】
これらのシステムモジュール、ツール、およびアプリケーションは、たとえばC、C++、BASIC、Visual Basic、Pascal、Ada、Java(登録商標)、HTML、XML、またはFORTRANなどの任意のプログラミング言語で記述し、オペレーティングシステム上で実行することができる。C、C++、BASIC、Visual Basic、Pascal、Ada、Java(登録商標)、HTML、XML、およびFORTRANは、多数の市販コンパイラを使用して実行可能コードを生成することができる、産業標準のプログラミング言語である。
【００１５】
図1は、テキスト翻訳ツールを実施するシステム10の一実施形態のブロック図である。システム10は、ネットワーク20に結合された、複数のクライアント16A〜Dおよび複数のサーバ18A〜Cを含む。ネットワーク20には、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、または広域ネットワーク(WAN)のうちの1つまたは複数を含めることができる。システム10内では、クライアント16A〜Dのそれぞれが、めいめいのテキスト翻訳ツール24A〜Dを有するソフトウェアアプリケーション22A〜Dを含む。翻訳ツール24A〜Dは、ソフトウェアアプリケーション22A〜Dによって供給されるソース言語のテキストテンプレートおよびコンテキストに基づいてターゲット言語の文法的に正しいテキスト文字列を生成するように構成される。
【００１６】
その代わりにまたはクライアント16A〜Dのテキスト翻訳ツール24A〜Dに加えて、サーバ18A〜Cに、クライアント16A〜Dのテキスト翻訳ツール24A〜Dと同一の形またはこれに類似する形で機能するテキスト翻訳ツール26A〜Cを含めることができる。本明細書で後でさらに詳細に述べるように、文法的に正しいテキスト文字列は、クライアント16A〜Dで翻訳ツール24A〜Dによって、ネットワーク20を介して通信することによってサーバ18A〜Cで翻訳ツール26A〜Cによって、またはこの組合せによって、生成することができる。
【００１７】
図1に示されたシステム10では、サーバの1つが、開発サーバ18Cと指定される。開発サーバ18Cは、開発サーバ18Cで翻訳ツール26Cを開発し、更新するのに使用される複数の構成要素を含む。これらの構成要素には、ソース言語テキスト文字列の可変要素に少なくとも部分的に基づいてソース言語TMLテキストテンプレート32およびソース言語メタデータ34を生成するのに使用されるテキストマークアップ言語(TML)インターフェース30が含まれる。本明細書で言及するように、TMLテキストテンプレートは、テキスト文字列内の単語または句を表す1つまたは複数のトークンを含むテキストテンプレートである。翻訳ツール26C、24A〜Dは、ソフトウェアアプリケーション22A〜Dによって供給されるコンテキストおよびメタデータに従って、TMLテキストテンプレートを解析し、テキスト文字列に展開するように構成される。
【００１８】
開発サーバ18Cについてさらに言及すると、トランスレータ開発ツール36は、対応するターゲット言語TMLテキストテンプレート38、ターゲット言語メタデータ40、および1つまたは複数のターゲット言語文法的規則42を生成するのに、ソース言語TMLテキストテンプレート32と共に使用される。本明細書で後でさらに詳細に述べるように、翻訳ツール26Cは、ソース言語TMLテキストテンプレート32と、ソース言語メタデータ34と、対応するターゲット言語TMLテキストテンプレート38およびターゲット言語メタデータ40とを使用して、ターゲット言語の文法的に正しいテキスト文字列44を生成する。一実施形態では、更新されたまたは新しいターゲット言語TMLテキストテンプレートおよびコンテキストが、サーバ18A〜Bのうちの1つまたは複数からネットワーク20を介してクライアント16A〜Dに周期的に供給される。
【００１９】
図2は、図1のシステム10で実施される、複数の周辺デバイスとネットワークとに結合されたクライアント16の一実施形態の図である。クライアント16は、コンピュータ204に結合されたディスプレイ202を含み、コンピュータ204は、ネットワーク20に結合される。キーボード206およびマウス208など、複数のユーザ入力デバイスを、コンピュータ204に結合することができる。ユーザ入力デバイスには、たとえば、タッチスクリーン、ジョイスティック、トラックボール、およびマイクロホンをも含めることができる。周辺デバイスを、有線接続または無線接続を介してコンピュータ204に結合することができ、コンピュータ204を、有線接続または無線接続を介してネットワークに結合することができる。当業者によって諒解されるとおり、本明細書で説明するクライアント16は、図2に示されたデバイスに限定されるのではなく、たとえば、携帯情報端末(PDA)、セル電話機、ポケットベル、またはユーザにテキストを表示するように構成された任意のコンピューティングデバイスとすることができる。
【００２０】
図3は、ネットワーク20に結合されたクライアント16の一実施形態のブロック図である。クライアント16は、図2に示されたディスプレイ202などのディスプレイでのテキストの表示を容易にするように構成されたディスプレイモジュール302を含む。クライアント16は、さらに、ソースデータベース/メモリ304およびソフトウェアモジュール306を含み、ソフトウェアモジュール306は、ネットワーク20との通信を調整し、制御するように構成される。一実施形態で、ソフトウェアモジュール306およびソースデータベース/メモリ304は、図1に示されたシステム10のソフトウェアアプリケーション22A〜Dを実施する。ソフトウェアモジュール306は、クライアント16ディスプレイでのテキストの表示を調整し、制御するために、ディスプレイモジュール302と通信するようにも構成される。クライアント16は、ソフトウェアモジュール306と通信する翻訳モジュール308をも含み、翻訳モジュール308は、ソース言語でソフトウェアモジュール306によって供給される情報に少なくとも部分的に基づいて、ターゲット言語の文法的に正しいテキストを生成するように構成される。したがって、メモリ304は、翻訳モジュール308と共にソフトウェアモジュール306によって使用されるソース言語の情報を保管するように構成される。クライアント16は、さらに、翻訳モジュール308と通信するターゲットデータベース/メモリ310を含む。ターゲットデータベース/メモリ310は、ターゲット言語の文法的に正しいテキスト文字列を生成する際に翻訳モジュール308によって使用されるターゲット言語の情報を保管するように構成される。一実施形態で、翻訳モジュール308およびターゲットデータベース/メモリ310は、図1に示されたシステム10の翻訳ツール24A〜Dを実施する。
【００２１】
図4は、ネットワーク20に結合されたサーバ18の一実施形態のブロック図である。サーバ18は、ネットワーク20を介して1つまたは複数のクライアント16との通信を調整し、制御するように構成されたクライアント通信モジュール402を含む。クライアント16に似て、サーバ18は、ソフトウェアモジュール404および翻訳モジュール406を含み、このソフトウェアモジュールは、翻訳モジュール406にソース言語の情報を与えるように構成され、翻訳モジュール406は、ソース言語で翻訳モジュール406によって供給される情報に少なくとも部分的に基づいて、ターゲット言語のテキストを生成するように構成される。サーバ18は、さらに、翻訳モジュール406に情報を供給する際にソフトウェアモジュール404によって使用される、およびクライアント通信モジュール402との通信のための、ソース言語の情報および/または関連情報を保管するように構成される、メモリ408またはソースデータベースを含む。サーバ18には、翻訳モジュール406と通信するターゲットデータベース/メモリ410をも含めることができる。ターゲットデータベース/メモリ410は、ターゲット言語の文法的に正しいテキスト文字列を生成する際に翻訳モジュールによって使用されるターゲット言語の情報を保管するように構成される。一実施形態で、翻訳モジュール406およびターゲットデータベース/メモリ410は、図1に示されたシステム10の翻訳ツール26A〜Bを実施する。
【００２２】
当業者によって諒解されるように、クライアント16およびサーバ18の説明および図示は、性質において例示的であり、めいめいの構成要素の網羅的説明ではない。さらに、クライアントのソースデータベース/メモリ304およびターゲットデータベース/メモリ310など、クライアント16またはサーバ18の構成要素を組み合わせることができる。
【００２３】
図5は、クライアントの翻訳モジュール308および/またはサーバ18の翻訳モジュール406として実施することができる、翻訳モジュール500の一実施形態のブロック図である。翻訳モジュール500は、ソース言語のTMLテキストテンプレートおよびソース言語のテキストテンプレートのコンテキストを、ゲームなどのプログラムを実行するソフトウェアモジュールから受け取るように構成された翻訳アプリケーションインターフェース502を含む。翻訳アプリケーションインターフェース502は、さらに、ターゲット言語の文法的に正しいテキスト文字列を出力するように構成される。翻訳モジュール500は、さらに、翻訳マークアップ言語ルックアップモジュール506と通信するローカライゼーションエンジン504を含み、翻訳マークアップ言語ルックアップモジュール506は、メモリキャッシュ508および/またはデータベース510と通信する。データベース510は、ソース言語の複数のTMLテキストテンプレートおよびターゲット言語の対応するTMLテキストテンプレートと、ソース言語のコンテキストおよびターゲット言語の対応するコンテキストとを保管するように構成される。
【００２４】
ローカライゼーションエンジン504およびTMLルックアップモジュール506は、メモリキャッシュ508またはデータベース510内のソース言語のTMLテキストテンプレートおよびコンテキストをルックアップし、ターゲット言語の対応するテキストテンプレートおよびコンテキストを入手するように構成される。ローカライゼーションエンジン504は、さらに、メタデータを使用してTMLテキストテンプレートにターゲット言語コンテキストを適用し、ローカライゼーションエンジン504にコーディングされたターゲット言語の文法規則に従って、ターゲット言語テンプレートを展開するように構成される。展開されたターゲット言語テンプレートは、翻訳モジュール500から翻訳アプリケーションインターフェース502を介してターゲット言語のテキスト文字列として出力される。翻訳モジュール500の動作の方法の一実施形態を、本明細書で下で図10に関してさらに詳細に述べる。
【００２５】
図6は、クライアント16および/またはサーバ18での翻訳モジュール308、406による使用のためにターゲット言語TMLテキストテンプレートを生成する方法600の一実施形態を示す流れ図である。方法600は、手動で実行することができ、または自動化することができ、あるいは、この方法を、手動プロセスと自動化されたプロセスとの組合せを用いて実行することができる。ステップ605で、たとえばTMLインターフェース30(図1を参照されたい)を使用して、ソース言語テキストおよびメタデータを含むソース言語のTMLテキストテンプレートを作成する。一実施形態で、ステップ605は、本明細書で後で図7に関してより詳細に述べる複数の処理ステップを含む。ステップ610で、たとえばトランスレータ開発ツール36を使用して、ソース言語のメタデータをターゲット言語のメタデータに翻訳する。ステップ615で、たとえばトランスレータ開発ツール36を使用して、ソース言語TMLテキストテンプレートをターゲット言語のTMLテキストテンプレートに翻訳する。一実施形態で、ステップ610および615のそれぞれは、本明細書で後で図8に関してより詳細に述べる複数の処理ステップを含む。最後に、ステップ620で、翻訳されたまたはターゲット言語のTMLテキストテンプレートおよびターゲット言語メタデータを、ローカライゼーションエンジン504(図5を参照されたい)などのターゲット言語ローカライゼーションエンジンによる使用のために保管する。
【００２６】
図7は、ソース言語のテキスト文字列に基づく、ソース言語の翻訳マークアップ言語(TML)テキストテンプレートを生成する方法700の一実施形態を示す流れ図である。方法700は、手動で実行することができ、または自動化することができ、あるいは、手動プロセスと自動化されたプロセスとの組合せを含めることができる。一実施形態で、方法700は、方法600のステップ605に対応する。方法700は、ステップ702で開始され、ステップ704に進み、ここで、テキスト文字列内の可変テキスト要素を識別する。次のテキスト文字列を、方法700を例示するための例として使用する。
【００２７】
Emperor Crush pierces you for 23 points of damage.
ターゲット(Emperor Crush)およびダメージのポイント数のすべての可能な組合せのテキスト文字列をメモリに保管するのではなく、テキストテンプレートをTMLで生成し、ターゲットおよびポイント数に従って解析することができる。方法700およびステップ704によれば、この例のテキスト文字列内のターゲット(Emperor Crush)は、可変テキスト要素として識別することができる。ステップ706で、可変テキスト要素の文法規則を識別し、トークン演算子をその可変テキスト要素に割り当てる。一実施形態によれば、複数の記号が、トークン演算子として指定され、各記号は、事前定義の文法規則に対応する。たとえば、次の記号を、可変テキスト要素の指定された文法規則に対応するために事前に定義することができる。
【００２８】
$:名前(Bob)またはベーステキスト
^:固有名詞の所有格(Bob's)
%:主格代名詞(I-you-he/she/it-we-you-they)
#:目的格代名詞(me-you-him/her/it-us-you-them)
&:所有格代名詞(my-your-his/her/its-our-your-their)
=:直接話法(sir/sire/milord-madame/madam/milady)
+:目的語のカウント/個数
<:不定冠詞(a/an/some)
>:定冠詞(the)
*:ソースロケール以外のロケールに使用される
~:ソースロケール以外のロケールに使用される
一実施形態で、上の記号は、対にされた時にその通常の文字表現を与えられる。たとえば、テキスト文字列が記号“$”の表示を必要とする場合に、その記号は、TMLテキストテンプレートでは“$$”と書かれる。
【００２９】
この例のテキスト文字列によれば、識別される可変テキスト要素“Emperor Crush”は、名前であり、したがって、ステップ706でトークン演算子$を割り当てられるはずである。ステップ706でのトークン演算子の割当に続いて、方法700はステップ708に進み、ここで、可変テキスト要素を分析して、可変テキスト要素のコンテキストタイプを識別し、対応するトークンオペランドを割り当てる。たとえば、コンテキストタイプには、動作主、ターゲット、ペット、主君、現在の話す人、現在の聞く人、番号付き引数、またはポインタのうちの1つを含めることができる。各コンテキストタイプに、英数字文字など、対応する記号を割り当てることができる。次は、記号および対応するコンテキストタイプの例示的リストである。
【００３０】
0-9:番号付き引数
A:動作主、thisを呼んでいる主要な実体
T:現在の動作主のターゲット
P:現在の動作主のペット
M:現在の動作主の主君
S:現在の話す人([A, T, P, M, 0-9]をポイントする)
L:現在の聞く人([A, T, P, M, 0-9]をポイントする)
@:thisポインタ(動作主として呼ばれる場合にA、ターゲットとして呼ばれる場合にTなど)
この例のテキスト文字列について、可変テキスト要素“Emperor Crush”のコンテキストタイプは、ターゲットである。したがって、上の例示的な記号の定義によれば、この可変テキスト要素は、トークンオペランド“T”を割り当てられるはずである。したがって、この例のテキスト文字列に関する方法700のステップ708の完了時に、部分的に形成されたTMLテキストテンプレートは、次のようになるはずである。
【００３１】
$T pierces you for 23 points of damage.
一実施形態で、トークンオペランド(A、T、P、M、S、L)が、この例のテキストテンプレートのように大文字にされる場合に、展開されるトークンの最初の文字は、強制的に大文字にされる。トークンオペランドが小文字である(a、t、p、m、s、l)場合には、展開されるトークンの大文字小文字は、変更されない。たとえば、トークン“$a”について、a=“Boomba”である場合に、展開されるトークンは、元の大文字化を保つ。
【００３２】
ステップ708でのトークンオペランドの割当に続いて、ステップ710で、可変テキスト要素を分析して、補足情報を割り当てなければならないかどうかを判定する。一実施形態では、補足情報に、補足詳細および補足ディレクティブ（補足指令）のうちの少なくとも1つを含めることができる。補足詳細は、別のオペランドによって指定される性別またはカウントの情報、一人称、二人称、または三人称などの会話の役割の識別などの詳細を提供し、補足ディレクティブは、ローカライゼーションエンジン504をメモリに保管されたターゲット言語に関する文法的規則を指示する。ディレクティブは、ソース言語が英語である場合にはそれほど適用可能ではないが、ドイツ語などのターゲット言語においてより有用になる。ディレクティブは、可変テキスト要素のカウントまたは性別をオーバーライドすることができ、可変テキスト要素の大文字化を強制することができる。番号付きトークンオペランドに関する強制大文字化は、拡張トークンを形成するのに補足情報を使用することによって達成することができる。補足情報は、“|”などの記号を用いて指定することができ、文字A、T、M、P、S、L、0-9のいずれかが続く補足記号は、そのソース(A、T、M、P、S、L、0-9)に対するローカライゼーションエンジン504が現在のトークンの展開に関するコンテキストを入手するように、指示するものである。一実施形態で、括弧“(“が続く記号“|”は、ディレクティブを導入する。補足情報は、下で、方法700のステップ720に関してより詳細に述べる。
【００３３】
ステップ710で、noすなわち可変テキスト要素が補足情報を必要としないと判定される場合には、この方法はステップ712に進み、その可変テキスト要素を基本トークンとして識別することができる。方法700は、次に、ステップ714に進み、テキスト文字列を分析して、トークンを用いて定義されていない、残りの可変テキスト要素があるかどうかを判定する。ステップ714で、noすなわち残りの可変テキスト要素がないと判定される場合には、方法700はステップ716に進み、完成したTMLテキストテンプレートを、クライアント16のソースデータベース/メモリ304(図3)などのメモリに保管し、この方法は、ステップ718で終了する。
【００３４】
ステップ714で、yesすなわちトークンを用いて定義されていない、テキスト文字列内の残りの可変テキスト要素があると判定される場合には、方法700は、ステップ704に戻り、テキスト文字列内の次の可変テキスト要素を識別する。この例のテキスト文字列について、ステップ714での分析は、yesすなわち未定義の残りの可変テキスト要素があるという判定をもたらすはずである。したがって、方法700は、ステップ704に戻り、次の可変テキスト要素を“23 points”として識別する。数“23”は、ベーステキストの量のカウントであり、このベーステキストは、この例では“point”である。上の例の文法規則記号割当によれば、カウントのトークン演算子は“+”であり、ベーステキストのトークン演算子は“$”である。可変テキスト要素“23 points”は、動作主、ターゲット、ペット、主君、現在の話す人、または現在の聞く人のどれでもないので、ベーステキスト“point”は、ステップ708での上のコンテキストタイプ定義に従って、単一桁の番号付き議論トークンオペランドを割り当てられる。たとえば、この例の“point”には、番号付きオペランド“0”を割り当てることができる。この例のテキスト文字列について、方法700のこの点で、TMLテキストテンプレートは、次のようになるはずである。
【００３５】
$T pierces you for +0 $0 of damage.
所与のコンテキストが、元のテキスト文字列に従って定義される場合、すなわち、“T”が“Emperor Crush”として定義され、“0”が23のカウントを有する“point”として定義される場合に、補足情報は、このテキスト文字列に関してステップ710で不要であり、この方法は、ステップ712に進み、これらのトークンが基本トークンとして識別される。ステップ714では、この例のテキスト文字列に残りのテキスト可変要素がないので、この方法はステップ716に進み、ここで、上のTMLテキストテンプレートを、クライアント16のソースデータベース/メモリ304(図3)などのメモリに保管する。方法700は、ステップ718で終了する。
【００３６】
一実施形態で、各トークンオペランドのベーステキストは単数形であり、ローカライゼーションエンジン504は、必要に応じてテキストの複数形を生成する。一実施形態で、複数形化の標準規則は、単語の最後の文字(1つまたは複数)に基づき、この規則は、ローカライゼーションエンジン504による使用のためにメモリに保管される。英語の複数形化規則は、次のように定義することができる。
【００３７】
最後  複数    例
*fe   *ves    (knife)
*ff   *ffs    (skiff)
*f    *ves    (wolf, calf)
*h    *hs     “*ch”および“*sh”を除く
*ch   *ches   (switch)
*sh   *shes   (bush)
*o    *oes    “kangaroo”、“piano”、“studio”、および“zoo”を除く
*s    *ses    (glass)
*x    *xes    (box)
*y    *ies    “*ay”、“*ey”、“*oy”、および“*uy”を除く
*ay   *ays    (day)
*ey   *eys    (Turkey)
*oy   *oys    (boy)
*uy   *uys    (guy)
*z    *zes    (buzz)
一部の変則的な単語は、生来複数である(scissors、police、people)か、複数形化について変則的な規則に従う(cactus、datum、focus)。そのような不規則な複数形の語は、メタデータを用いて処理することができ、変形テキストに関して本明細書で後でさらに詳細に述べる。
【００３８】
一部のベーステキストは、正しい文法のために不定冠詞(たとえば、a、an、the)を必要とする。次のテキスト文字列を使用して、不定冠詞を使用する1つの方法を例示することができる。
【００３９】
An orc pawn pierces you for 3 points of damage.
方法700によれば、最初の可変テキスト要素は、ステップ704で識別され、この例では、最初の可変テキスト要素は、“orc pawn”になるはずである。この最初の可変テキスト要素は、標準ベーステキストなので、これにステップ706でトークン演算子“$”を割り当てることができる。ステップ708で、可変テキスト要素“orc pawn”に、トークンオペランド“t”を割り当てることができる。というのは、これがターゲットであるからである。一実施形態で、方法700に、テキストテンプレートへの不定冠詞トークンの追加を含めることができる。ターゲットがorc pawnである現在の例では、不定冠詞トークン演算子“<”が割り当てられ、この不定冠詞のトークンオペランドは、ターゲット“T”である。不定冠詞演算子に応答して、ローカライゼーションエンジン504は、オペランド“T”のベーステキスト(この場合には“orc pawn”)を分析し、メモリに保管された規則の組に従って、使用すべき不定冠詞を決定する。現在の例では、ローカライゼーションは、オペランドのベーステキストが母音から始まるので、“an”を用いて不定冠詞トークンを展開する。さらに、オペランドが大文字化されているので、展開されたトークンも大文字化されて、“An”になる。同様に、ターゲット“orc pawn”は、文の先頭ではなく、固有名詞でもないので、このテキストを大文字化してはならない。したがって、ターゲットトークン“$t”内のトークンオペランドは、大文字化されない。
【００４０】
可変テキスト要素“orc pawn”のトークンオペランド“t”の割当に続いて、この方法は、ステップ710に移動し、ここで、可変テキスト要素およびテキスト文字列を分析して、補足情報を割り当てなければならないかどうかを判定する。現在の例では、ターゲットが、固有名詞でないベーステキストを割り当てられないと仮定することができ、したがって、ステップ710で補足情報を割り当ててはならない。したがって、この方法はステップ712に移動し、ここで、トークンを、基本トークンとして定義する。ステップ714で、このテキスト文字列は、未定義の残りの可変テキスト要素を有し、したがって、この方法はステップ704に戻る。ステップ704では、次の可変テキスト要素は、前の例と同様に“point”である。前の例で述べたように、可変テキスト要素“point”には、ベーステキストのカウントおよびベーステキスト自体を誘い出すためにトークン“+0 $0”を割り当てることができる。可変テキスト要素“point”のトークンの割当の後に、TMLテキストテンプレートが、完成し、ステップ716でメモリに保管される。
【００４１】
次のコンテキストおよびテキストテンプレートを与えられれば、ローカライゼーションエンジン504は、このテンプレートを展開し、文法的に正しいテキスト文字列を出力する。
【００４２】
ターゲット  “orc pawn”, 1
0           “point”, 3
テンプレート  “<T $t pierces you for +0 $0 of damage.”
出力          “An orc pawn pierces you for 3 points of damage.”
一実施形態では、ターゲットトークンに、ターゲットベーステキストが固有名詞であってもなくてもよい、冠詞機能を含めることができる。一実施形態で、不定冠詞(<T)およびターゲットベーステキスト($T)の2つのトークンを、冠詞機能を使用して単一のトークンに置換することができる。現在の例での置換トークンは、“<(T)”になるはずであり、ここで、ローカライゼーションエンジン504は、不定冠詞演算子“<”に応答して、括弧でくくられた部分の中のオペランドを分析して、それが固有名詞であるかどうかを判定する。括弧でくくられた部分の中のオペランドが固有名詞ではない場合には、ローカライゼーションエンジン504は、適当な不定冠詞(aまたはan)を挿入し、スペースを挿入し、ターゲットのベーステキスト“orc pawn”を追加する。上で述べたように、オペランドが大文字化されている場合には、ベーステキストの最初の文字が、強制的に大文字化される。トークン“<(T)”について、ローカライゼーションエンジン504は、不定冠詞が割り当てられる場合に、ターゲットのベーステキストではなく不定冠詞を大文字化する。ターゲットベーステキストが、“Emperor Crush”などの固有名詞である場合には、ローカライゼーションエンジン504は、不定冠詞を削除し、スペースを挿入しない。
【００４３】
一実施形態で、ローカライゼーションエンジン504は、コンテキストと共に供給されるメタデータに従って、ベーステキストが固有名詞であるかどうかを判定する。メタデータの使用は、本明細書で後で、たとえば図8に関して下でより詳細に述べる。一実施形態で、固有名詞は、非固有名詞(improper noun)より一般的でない可能性があり、したがって、コンテキストで非固有名詞を指定することは、コンテキストですべての非固有名詞をそれに適当な不定冠詞と共に定義することより効率的である。一実施形態で、固有名詞は、コンテキストで記号“{np}”を用いて識別される。したがって、次のコンテキストおよびテキストテンプレートを与えられれば、ローカライゼーションエンジン504は、このテンプレートを展開し、文法的に正しいテキスト文字列を出力するはずである。
【００４４】
ターゲット  “{np}Emperor Crush”,  1
0           “point”, 1
テンプレート  “<(T) pierces you for +0 $0 of damage.”
出力          “Emperor Crush pierces you for 1 point of damage.”
一実施形態で、ローカライゼーションエンジン504は、不定冠詞の追加に似た形で、定冠詞およびスペースを追加する。上で述べたように、一実施形態で、記号“>”は、定冠詞トークン演算子に対応する。したがって、ローカライゼーションエンジン504は、定冠詞トークン演算子に応答してトークンオペランドを分析し、そのトークンオペランドのベーステキストが固有名詞であるかどうかを判定する。ベーステキストが固有名詞ではない場合には、定冠詞“the”が挿入され、これにスペースが続き、ベーステキストが挿入される。ターゲットが固有名詞ではない、次のコンテキストおよびテンプレートについて、ローカライゼーションエンジン504は、テンプレートを展開し、適当な出力を作る。
【００４５】
ターゲット  “orc pawn”, 1
テンプレート  “>(T) falls silently to the ground, and lies still.”
出力          “The orc pawn falls silently to the ground, and lies still.”
ターゲットが、供給されるコンテキストメタデータ({np})による識別に従って固有名詞である場合に、ローカライゼーションエンジン504は、不定冠詞を削除し、それ相応に出力を生成する。
【００４６】
ターゲット  “{np}Emperor Crush”, 1
テンプレート  “>(T) falls silently to the ground, and lies still.”
出力          “Emperor Crush falls silently to the ground, and lies still.”
一実施形態で、ローカライゼーションエンジン504は、トークンオペランドのベーステキストが複数形である時すなわち、カウントが1より大きい時に、不定冠詞“some”を選択する。たとえば、次のコンテキストおよびテンプレートを与えられれば、ローカライゼーションエンジン504は、このコンテキストを使用してこのテンプレートを展開し、適当な出力テキスト文字列を生成する。
【００４７】
動作主        “Arwen”, 1
ターゲット  “Boomba the Big”, 1
0           “adequate tin breastplate”, 1
テンプレート  “$T says, ‘Greetings $a, you look like you could use <(0).’”
出力          “Boomba the Big says, ‘Greetings Arwen, you look like you could use an adequate tin breastplate.’”
この番号付き引数のベーステキストが1より大きいカウントを有するようにコンテキストが変更される場合に、トークンオペランド“0”の不定冠詞は、“a”または“an”ではなく“some”になる。たとえば、この番号付き引数“0”が、20のカウントを有する“arrow”と定義される場合に、次のテンプレートは、適当な出力テキスト文字列を生成するように展開される。
【００４８】
動作主        “Arwen”, 1
ターゲット    “Boomba the Big”, 1
0             “arrow”, 20
テンプレート    “$T says, ‘Greetings $a, you look like you could use <(0).’”
出力            “Boomba the Big says, ‘Greetings Arwen, you look like you could use some arrows.’”
変更された不定冠詞の使用を、特定のカウントについてさらにカスタマイズすることができ、ここで、挿入される不定冠詞は、たとえば、トークンオペランドのカウントに応じて、“a couple”、“a few”、“several”、または“many”である。
【００４９】
可変テキスト要素に関するさらなる情報が、トークンを正確に展開するために必要である場合には、トークン演算子およびトークンオペランドに加えて補足情報を供給して、方法700のステップ720で拡張トークンを形成することができる。一実施形態では、指定された記号が、補足演算子として定義される。たとえば、記号“|”を、TMLの補足演算子として指定することができる。上で短く述べたように、補足情報は、別の可変テキスト要素から欠けている性別またはカウントの情報、二人称動詞の形態などの会話の役割の識別などの詳細とすることができ、補足情報には、メモリに保管されたターゲット言語の文法的規則に対するディレクティブを含めることができる。
【００５０】
ディレクティブ（指令）は、カウント(ct=)または性別(sx=)をオーバーライド（無視）するか、出力テキストの大文字化を強制する(cap)ことができる。一実施形態で、カウントと性別との両方を、別の目的語(obj=)について一緒にオーバーライドすることができる。一実施形態で、大文字化ディレクティブは、トークンオペランド記号を大文字化する方法がない番号付き引数(0-9)の大文字化だけに必要である。ディレクティブは、英語以外のターゲット言語でより有用である可能性がある。たとえば、ターゲット言語がドイツ語である場合に、ディレクティブリストに、対格および対格語尾の使用を指示するディレクティブ“acc"、与格および与格語尾の使用を指示する“dat”、‘der word’語尾を指示する“der”、属格および属格語尾を指示する“gen”、動詞の不定形を指示する“inf”、不定冠詞またはゼロカウントの否定形“kein”を指示する“neg”、主格および主格語尾を指示する“nom”、動詞の分詞形を要求する“par”、動詞語幹から過去時制を指示する“pas”、動詞語幹から現在時制を指示する“pre”、関係代名詞形を指示する“rel”、動詞の分離可能な前置詞を要求する“sep”、strong adjectival endingを指示する“str”、動詞語幹から仮定法時制を指示する“sub”、weak adjectival endingを指示する“wea”、および小さい数を単語として印刷することを指示する“wor”を含めることができる。
【００５１】
次は、英語がソース言語とターゲット言語との両方であり、大文字化のディレクティブが、補足演算子“|”を伴う番号付きトークンオペランド“0”に必要な場合のディレクティブの適用の例である。
【００５２】
0           “orc pawn”, 1, male, subhuman
1           “point”, 3
テンプレート  “<0|(cap) $0 pierces you for +1 $1 of damage.”
出力          “An orc pawn pierces you for 3 points of damage.”
一実施形態で、補足詳細(“$0|a”)は、欠けている性別およびカウントのコンテキストを与える。いくつかの実施形態で、この補足詳細は、動詞および句に最も有用であるが、冠詞および直接話法にも役立つことができる。動詞について、補足詳細は、文の主語の性別およびカウントを与える。一実施形態で、デフォルトは、男性、単数形、正常状態、および三人称である。句について、補足詳細は、選択されるべき性別およびカウントを示す。一実施形態で、デフォルトは、男性単数形である。形容詞について、いくつかのターゲット言語は、形容詞語尾を決定するために名詞の性別およびカウントを必要とする。補足情報は、視点が話す人の視点でない場合に、直接話法トークン(=)に追加情報を与える。不定冠詞トークン(<)の補足情報は、オペランドが形容詞である場合に情報を提供し、カウントは名詞から与えられ、この名詞は、別の可変テキスト要素である。
【００５３】
たとえば、動詞が、番号付き引数1に割り当てられる場合に、拡張トークン“$1|t”は、ターゲットを調べて、主語が複数であるかどうか(“he buys”対“they buy”)を判定するようにローカライゼーションエンジン504に指示する。拡張トークン“$1|S”は、話す人が一人称で話している(“I buy”または“we buy”)ことを識別する。同様に、拡張トークン“$1|L”は、話す人が聞く人に向かって二人称で話している(“you buy”)ことを識別する。動詞の形態は、英語以外のいくつかのターゲット言語について、より大きく変化する。
【００５４】
話す人と聞く人の指定は、わずかに異なるメタデータであり、このメタデータは、会話の役割と、どのトークンオペランド(ターゲット、主君、ペット、番号付き引数)が話す人であり、どのトークンオペランドが聞く人であるかとを識別する。たとえば、ターゲットが話している場合に、話す人オペランド“S”を含む多数のトークンが、ターゲットオペランド“T”を含むトークンと同一である。たとえば、トークン“$S”が、トークン“$T”と同等であり、トークン“+S”が、トークン“+T”と同等であり、トークン“<S”が、トークン“<T”と同等である、などである。しかし、話す人が、彼自身/彼女自身に関する代名詞を使用する場合に、この指定は、一人称であり、たとえば、カウントに応じて、トークン“%s”を、“I/we”を用いて解析することができ、トークン“#s”を、“me/us”を用いて解析することができ、トークン“&s”を、“my/our”を用いて解析することができる。話す人が、聞く人に関する代名詞を使用する場合に、この指定は、二人称であり、たとえば、カウントに応じて、トークン“%1”および“#1”を、“you”を用いて解析することができ、トークン“&1”を“your/your”を用いて解析することができる。この特徴は、一般に英語以外のターゲット言語についてより有用である。たとえば、日本語などのアジアの言語は、一人称代名詞および二人称代名詞に関して複数のオプションを有することができる。
【００５５】
一実施形態で、話す人および聞く人に関する指定は、一人称および二人称の動詞の形態を選択する際にも使用される。代名詞と同様に、話す人が、その話す人について話している時には、彼女/彼は一人称を使用している。話す人が、聞く人について話している時には、彼女/彼は二人称を使用している。これらの場合を、変形テキストに関してより詳細に述べる。いくつかの実施形態で、話す人および聞く人の指定(“S”および“L”)は、直接話法の形(sir/milady)を指定する時にも使用される。たとえば、トークン“=L”は、話す人から聞く人への直接話法のトークンである。ある種の実施形態で、話しかけられる人と話している人との両方の地位および党派のうちの少なくとも1つが、どの直接話法が使用されるかに関して相違をもたらす。表1は、どの直接話法を使用するかを決定する際にローカライゼーションエンジン504によって使用される例示的なリスティングである。
【表１】
2008520043.tif 000003
【００５６】
表1の項目は、話す人が聞く人より低い地位にあることに基づく。話す人が聞く人より高い地位にある場合に、ローカライゼーションエンジン504は、聞く人の性別に応じて、直接話法に“sir”または“madame”のいずれかを使用する。たとえば、この翻訳ツールがゲームで実施される場合に、直接話法の使用は、プレイヤがゲームの中で昇格する時に、そのプレイヤによりうやうやしく話しかける機会である。
【００５７】
表1と同様に、直接話法のテーブルを、ドイツ語などのターゲット言語について設けることができ、表2は、“=”トークン演算子によって呼び出された時にどの直接話法テキストを使用するかを判定する際にローカライゼーションエンジン504によって使用される例示的な直接話法テーブルである。
【表２】
2008520043.tif 000004
【００５８】
次のテキスト文字列に関するTMLテキストテンプレートの形成を、図7および方法700に関して述べ、補足情報の使用を例示する
“Buy my stuff!”
現在の例では、このテキスト文字列内の最初の可変テキスト要素を、ステップ704で動詞“buy”として識別することができる。この可変テキスト要素は、標準ベーステキストなので、ステップ706でこれにトークン演算子“$”を割り当てることができる。この可変テキスト要素は、動作主、ターゲット、ペット、および主君ではないので、ステップ708でこれに番号付きトークン演算子“0”を割り当てることができる。この方法がステップ710に継続する時に、この可変テキスト要素が分析されて、補足情報を割り当てなければならないかどうかが判定される。現在の例では、この可変テキスト要素は動詞なので、ローカライゼーションエンジン504は、通常は、テキストテンプレートを展開する時に使用すべき動詞の形態を知る必要がある。現在の例の動詞“buy”に関する補足情報は、話す人が聞く人に話しかけていることの補足詳細を含むはずである。したがって、補足情報“|L”が、拡張トークンを形成するためにステップ720でトークン“$0”に割り当てられる。
【００５９】
動詞の形態に関する補足情報に加えて、可変テキスト要素“buy”は、現在の例では、文の先頭にあるので大文字化されなければならない。したがって、補足ディレクティブ“|(cap)”が、この可変テキスト要素のトークンに追加されて、現在の例の可変テキスト要素“buy”の拡張トークン“$0|L|(cap)”が形成される。
【００６０】
ステップ720での拡張トークンを形成するための第1可変テキスト要素への補足情報の割当に続いて、ステップ714で、テキスト文字列を分析して、TMLを用いて定義されていない残りの可変テキスト要素があるかどうかを判定する。現在の例では、残りの未定義の可変テキスト要素があり、所有格代名詞“my”を、この方法がステップ704に戻った時にステップ704で可変テキスト要素として識別することができる。ステップ706で、この可変テキスト要素を、所有格代名詞として識別することができ、したがって、ステップ706で、上の例示的定義に従ってトークン演算子“&”を割り当てることができる。この可変テキスト要素のコンテキストタイプは、現在の話す人であり、この可変テキスト要素は、小文字にされなければならず、したがって、トークンオペランド“s”が、ステップ708で割り当てられる。ステップ710での分析の際に、この可変テキスト要素は、補足情報を割り当てられてはならず、したがって、ステップ712で基本トークンとして識別される。ステップ714での分析の際には、この例示的テキスト文字列に未定義の残りの可変テキスト要素はなく、完成したTMLテキストテンプレートが、ステップ716でメモリに保管される。
【００６１】
このTMLテキストテンプレートを次のコンテキストを用いて展開して、文法的に正しいストリングを出力することができる。動詞の構文法は、本明細書で、後で変形テキストおよびメタデータに関してより詳細に述べる。
【００６２】
聞く人      “Boomba the Big”, 1
1           “{v}buy{ts=buys}”
テンプレート  “$1|L|(cap) &s stuff!”
出力          “Buy my stuff!”
拡張トークンが補足詳細と補足ディレクティブとの両方を含む一実施形態では、上の例で示されているように、補足詳細が、最初であり、これにディレクティブが続く。拡張トークンには、メモリ内の識別または番号付きの位置をルックアップし、定義された可変テキスト要素からのコンテキストを適用するディレクティブを含めることもできる。句を、性別およびカウントに関する補足詳細によって調整することもできる。たとえば、女性の放浪者は、“these stiletto heels are killing my feet”(このスティレットヒールは痛い)と言う可能性があり、男性の放浪者は、“these cowboy boots are killing my feet”(このカウボーイブーツは痛い)と言う可能性がある。性別は、英語では、他のターゲット言語ほど文法的に問題でない。
【００６３】
たとえば、フランス語およびドイツ語では、ローカライゼーションエンジン504が、形容詞が適用される名詞の性別およびカウントに応じてその形容詞を変更する(“$2|3”)。そのような調整は、通常、ソース言語とターゲット言語との両方が英語である場合には要因ではないので、ディレクティブの使用は、図8およびターゲット言語にローカライズされたテンプレートの定義に関してより適切に述べられる。
【００６４】
上で述べたように、ローカライゼーションエンジン504は、ソフトウェアアプリケーションによって供給されるコンテキストを使用して、TMLテキストテンプレートを展開する。このコンテキストには、単一の単語または“Fippy Darkpaw”などの単語の組合せを含めることができ、あるいは、このコンテキストに、“{n}Fippy Darkpaw”など、ベーステキストに関する情報を与えるメタデータを含めることができる。一実施形態で、メタデータは、品詞、性別、党派、ランク、年齢、および目的語のタイプなど、ベーステキストに関するデフォルト情報およびオーバーライド情報を示すのに使用される。ベーステキストのコンテキスト内のメタデータとして供給されるオーバーライドを、静的オーバーライドと呼ぶことができる。一実施形態で、静的オーバーライドは、ローカライゼーションエンジン504が所与のコンテキストをTMLテキストテンプレートに適用する時に適用され、TMLテキストテンプレート内のオーバーライドディレクティブは、静的オーバーライドの後にTMLテキストテンプレートの展開中に適用される。
【００６５】
たとえば、ターゲットが“Fippy Darkpaw”と定義される場合に、ローカライゼーションエンジン504は、TMLテンプレート内のトークン“$t”を“Fippy Darkpaw”に展開する。しかし、ソフトウェアアプリケーションが、ローカライゼーションエンジン504にFippyの性別を与えることができない場合には、デフォルトの性別に、メタデータ“sx=m”によって男性がセットされ、供給されるコンテキストは、“{n, sx=m}Fippy Darkpaw”になるはずである。静的デフォルトで供給されるデフォルトの性別は、ソフトウェアアプリケーションによって供給される性別コンテキストを用いてオーバーライドされる。しかし、コンテキストメタデータによって供給される性別がソフトウェアアプリケーションによって供給される性別をオーバーライドするように、コンテキストをより限定的な“{n, sx!=m}Fippy Darkpaw”に変更することができる。この限定的な静的オーバーライドは、実際の目的語の性別にかかわりなく、目的語に特定の文法的性が必ず与えられるターゲット言語について特に有用である可能性がある。たとえば、ドイツ語の幽霊は、その幽霊が男性または女性のいずれであるかに関わりなく、常に文法的に男性の性別を割り当てられる。
【００６６】
コンテキストを、地域別の設定情報（ロケール）の敏感さに従って調整することもできる。たとえば、イスラム国では、ゲームの十字軍キャラクタに人気がない可能性がある。したがって、十字軍の敬称を、次のように記号“!”を用いてオーバーライドすることができる。
【００６７】
{n, sx=m, hn!=-2}crusader
敬称の定義での“!”記号の使用は、ソフトウェアアプリケーションによって供給されるコンテキストを無視するようにローカライゼーションエンジン504に指示する。Fippy Darkpawの例と同様に、ソフトウェアアプリケーションが、性別を供給しない場合には、デフォルトの男性が使用される。したがって、ローカライゼーションエンジン504は、まず、TMLテキストテンプレートへのコンテキストの適用中に静的デフォルトを適用し、次に、TMLテキストテンプレートが展開され、動的オーバーライドが適用され、最後に、静的オーバーライドが適用される。
【００６８】
デフォルトおよびオーバーライドは、それぞれの地域別の設定情報およびそれぞれのターゲット言語に固有とすることができ、たとえばターゲット/データベースメモリ(310/410)に保管される。一実施形態では、次のデフォルトおよびオーバーライドが使用可能である。
【００６９】
1)  sxまたはsx! - そのコンテキストスロットの性別
・male(男性)
・female(女性)
・neuter(中性。該当なし、またはドイツ語の中性)
・both(両方。男性と女性との両方を含む混合グループ)
2)  ctまたはct! - そのトークンオペランドのカウント(0から始まる数)
3)  beまたはbe! - 生き物のタイプ
・human(人間)
・subhuman(不完全な人間)
・animal(動物)
・monster(モンスター)
・undead(アンデッド)
・object(物体)
4)  hnまたはhn! - 名誉または尊敬のレベル
・-2 極端に低い
・-1 低い
・ 0 通常
・ 1 高い
・ 2 極端に高い
5)  agまたはag! - 年齢(0から始まる数)
一実施形態では、最初の文字が、性別(m、f、n、またはb)または生き物のタイプ(h、s、a、m、u、またはo)に十分である。より多くの文字を供給して、望み通りに信頼性を高めることができる(“sx!=female”)。
【００７０】
一実施形態で、コンテキストは、変形またはオーバーライドを含まず、ターゲット言語の文法的に正しいテキスト文字列を生成する際の速度について最適化される。記号“{”を指定して、上で述べたようにベーステキストに関する追加情報を示すことができる。したがって、ローカライゼーションエンジン504が記号“{”を検出しない場合に、ベーステキストが、変更なしでコンテキスト定義からコピーされる。
【００７１】
bone chip
{n}bone chip
{n}bone chip{pl = “bone chips”}
これらの3つの例のすべてが、ローカライゼーションエンジン504によって同一に出力され、単数形の場合には“bone chip”、複数系の場合には“bone chips”になる。第1のコンテキストブロックは、コンテキストに情報を追加することによってメタデータを追加しまたは拡張する。一実施形態で、第1のコンテキストブロック(現在の例では{n})は、ベーステキストに関する品詞(たとえば、名詞、動詞、形容詞、または句)を識別する。第1のコンテキストブロックに、上で述べた性別および敬称レベルなど、コンテキスト的データに関する静的デフォルトまたはオーバーライドを含めることもできる。普通でない複数形または割り当てられた性別に従う異なる形など、ベーステキストの事前定義の変形を、メタデータを使用して定義することができる。これらの事前定義の変形を、変形テキストと呼ぶことができる。
【００７２】
次は、名詞、動詞、および句の変形識別子の例示的なリストである。
【００７３】
{n}または{np} - 名詞または固有名詞
f=またはfem=は女性名詞
fs=は女性名詞単数形
fp=は女性名詞複数形
f3-6=は女性名詞、範囲付きの複数形(“a few actresses”)
f20=は女性名詞、特定のカウント(“a stack of hit women”)
m=またはmas=は男性名詞
ms=は男性名詞単数形
mp=は男性名詞複数形
m3-6=は男性名詞、範囲付きの複数形(“a few actors”)
m20=は男性名詞、特定のカウント(“a stack of hit men”)
pl=は複数形
si=は単数形
3-6=は範囲付きの複数形(“a few spider silks”)
20=は特定のカウント(“a stack of batwings”)
{v} - 動詞
1s=またはfs=は一人称単数形
2s=またはss=は二人称単数形
3s=またはts=は三人称単数形
1p=またはfp=は一人称複数形
2p=またはsp=は二人称複数形
3p=またはtp=は三人称複数形
{p}または{pl}または{ps} - 句; {ps}は話す人をキーオフ(key off)し、{pl}は聞く人をキーオフする。
【００７４】
f=またはfem=は女性名詞
fs=は女性名詞単数形
fp=は女性名詞複数形
m=またはmas=は男性名詞
ms=は男性名詞単数形
mp=は男性名詞複数形
pl=は複数形
si=は単数形
単数形または“si=”変形は、対称性をもたらし、メタデータを用いて具体的に識別することができる。一実施形態で、デフォルトまたはベーステキストは、そのテキストの単数形版である。
【００７５】
一実施形態で、ローカライゼーションエンジン504は、名詞の{n}など、品詞を識別する第1のコンテキストブロックを、変形テキストを解析する基礎として使用する。第2の“{}”コンテキストブロックまたは変形ブロックは、変形テキストを列挙する。たとえば、ベーステキスト“hit man”に、次のメタデータを割り当てることができる。
【００７６】
{n, sx=male}hit man{fs = “hit woman”, fp = “hit women”, pl = “hit men”}
この第1のコンテキストブロックは、名詞としてベーステキストを識別し、男性のデフォルト性別を割り当てる。第2のテキストブロックは、性別が男性または女性のどちらであるか、およびカウントが単数または複数のどちらであるかに従って、“hit man”の変形形態をリストする。一実施形態で、2文字を使用して、変形テキストが使用されなければならない場合を識別することができる。現在の例では、文字“fs”は、性別が女性であり、カウントが単数すなわち1の場合を識別し、文字“fp”は、性別が女性であり、カウントが複数すなわち1より大きい場合を識別し、文字“pl”は、カウントが複数すなわち1より大きく、性別が供給されない場合を識別する。
【００７７】
デフォルト性別に従って、ベーステキストは、ソフトウェアアプリケーションが反対のコンテキストを供給しない限り、男性であると仮定される。しかし、ソフトウェアアプリケーションが、性別が女性であると指定する場合には、ローカライゼーションエンジン504は、カウントが単数の場合にはテキスト“hit woman”を使用し、カウントが1より大きい場合にはテキスト“hit women”を使用する。同様に、カウントが1より大きく、性別情報が供給されない場合には、一般的な複数形テキスト“hit men”が使用される。一実施形態で、ローカライゼーションエンジン504は、一連の文字の後の最初のスペースまたはカンマ記号が変形テキストの終りを示すと仮定する。変形テキストに単一引用符(’)が含まれる場合には、そのテキストは、二重引用符(”)で囲まれ、テキストに二重引用符(”)が含まれる場合には、そのテキストは単一引用符(’)で囲まれる。
【００７８】
名詞に関するこの単純な変形テキスト形態は、不規則な複数形のテキストをもたらす。たとえば、名詞“platinum”を、次の2つの例に従うメタデータを用いて定義することができ、ここで、記号“-”は、複数形の、“s”などの文字の追加を抑制する指示としてローカライゼーションエンジン504によって認識される。
【００７９】
{n}platinum{pl=platinum}
{n}platinum{pl=-}
この2つのコンテキスト的定義は、同一の効果を有する。カウントに応じて、これらの定義は、“0 platinum”、“1 platinum”、または“10,000 platinum”になり得る。マイナス記号“-”は、ローカライゼーションエンジン504によって「複数形を形成するために何かを追加してはならない」と解釈される。一実施形態で、名詞の複数形のテキストは、複数形を定義する際に“-”記号の後に“s”または“es”を挿入することによって定義することができ、ここで、“-”記号の後に供給される文字は、その名詞の複数形を形成するためにベーステキストに追加される。
【００８０】
変形テキストのもう1つの形は、性別語尾変化を管理し、ここで、1つまたは複数の文字または記号を使用して、変形テキストを使用しなければならない場合を識別することができる。次の例では、文字“f”は、名詞の性別が女性である場合を識別するのに使用され、文字“n”は、名詞の性別が男性である場合を識別するのに使用される。
【００８１】
{n}actor{f=actress}
{n}actress{m=actor}
この2つのメタデータ拡張コンテキストの例は、同一の効果を有し、ローカライゼーションエンジン504は、ソフトウェアアプリケーションによって供給されるコンテキストが、性別が女性であることを示す(この場合にはテキスト“actress”が使用される)場合を除いて、ベーステキスト“actor”を使用する。第2の例では、ローカライゼーションエンジン504は、ソフトウェアアプリケーションによって供給されるコンテキストが、性別が男性であることを示す(この場合にはテキスト“actor”が使用される)場合を除いて、ベーステキスト“actress”を使用する。この両方の例で、ローカライゼーションエンジン504は、性別選択の後に標準複数形化規則を適用し、ここで、1より大きいカウントについて、テキスト“actor”は“actors”になり、テキスト“actress”は“actresses”になる。
【００８２】
代替案では、名詞のすべての形を、性別およびカウントのシナリオの組合せごとに与えることができる。動作主/女優の例について、メタデータを次のように展開することができ、この第2の例は、参照のために提供される。
【００８３】
{n}actor{fs=actress, fp=actresses, ms=actor, mp=actors}
{n}actor{f=actress}
実施される時に、この2つの例は、同一の出力をもたらす。第1の例について、女性名詞単数形コンテキストがソフトウェアアプリケーションによって供給される場合に、ローカライゼーションエンジン504は、“fs=”変形を使用する。第2の例では、女性名詞単数形コンテキストに関する最も正確な変形は、単純な女性名詞“f=”であり、したがって、ローカライゼーションエンジン504は、テキスト“actress”を使用する。その代わりに、ソフトウェアアプリケーションによって供給されるコンテキストが、女性名詞複数形である場合には、ローカライゼーションエンジン504は、第1の例では“fp=”変形を使用する。第2の例では、女性名詞複数形コンテキストに関する最も正確な変形は、“f=”であり、したがって、ローカライゼーションエンジン504は、テキスト“actress”を使用し、標準複数形化規則を使用して複数形を形成する。
【００８４】
一実施形態で、メタデータに、柔軟性を高めるためにポインタを含めることができる。一実施形態で、このポインタを、「thisポインタ」と呼ぶことができる。thisポインタは、そのオペランドとして事前定義の記号を有するトークンであり、このthisポインタのオペランドは、たとえば記号“@”によって表すことができる。次の2つの例では、番号付きオペランドが、ベーステキスト“a snake egg”を用いて定義される。このベーステキストの複数形は、メタデータを用いて“+@ snake eggs”と定義され、ここで、ローカライゼーションエンジン504は、カウントが1より大きい場合に、“+@”トークンに応答して、このベーステキストのカウントコンテキストを調べる。
【００８５】
1           {n}a snake egg{pl = “+@ snake eggs”}, 1
テンプレート  “Bring me $1!”
出力          “Bring me a snake egg!”
1           “{n}a snake egg{pl = “+@ snake eggs”}, 7
テンプレート  “Bring me $1!”
出力          “Bring me 7 snake eggs!”
この第1の例では、番号付きオペランド“1”のカウントが、1であり、したがって、ベーステキストの単数形またはデフォルト版が、TMLテキストテンプレートに適用され、それ相応に出力される。この第2の例では、番号付き引数と共に供給されるコンテキストが、7であり、これは1より大きく、したがって、ローカライゼーションエンジン504は、複数形識別子“pl=”によって定義される、このベーステキストの複数形を使用する。thisポインタに従って、ローカライゼーションエンジン504は、トークン“+@”に応答して番号付き引数のカウントを出力し、所望の文法的に正しいテキスト文字列を出力する。
【００８６】
この翻訳ツールの一実施形態は、範囲付き複数形および番号付き複数形の使用を含み、これは、変形テキストの単数形および複数形に対するより正確な制御をもたらす。次の例に、番号付き引数の異なるカウントについて異なる変形テキストを定義するコンテキストの使用を示す。
【００８７】
1           “{n}snake egg{1=“a snake egg”, 2=“a couple snake eggs”, 3-6=“a few snake eggs”, 7-11=“several snake eggs”, 12=“a dozen snake eggs”, 20=“a stack of snake eggs”, pl=“+@ snake eggs”}, 20
テンプレート  “Bring me $1!”
出力          “Bring me a stack of snake eggs!”
ローカライゼーションエンジン504は、メタデータ内で見つけることのできる最も正確な変形一致を使用し、範囲付き複数形は、より正確に扱われる。この例では、20に関するカウント一致があるので、ローカライゼーションエンジン504は、トークン“$1”についてテキスト“a stack of snake eggs”を出力する。コンテキストが13の場合には、正確な一致はなく、ローカライゼーションエンジン504は、一般的な複数形を使用し、“13 snake eggs”を出力するはずである。
【００８８】
この翻訳ツールの一実施形態で、範囲付き複数形は、性別固有とすることもでき、ここで、複数の文字または記号が、変形テキストがそれについて使用されるべき性別およびカウントを識別する。次の例では、ベーステキストは“actor”であるが、性別が女性であり、カウントが識別されたカウントの1つに対応しない場合に、ローカライゼーションエンジン504は、トークンをテキスト“actress”に置換する。たとえば、性別が女性であり、カウントが2である場合には、変形テキスト“actress twins”が使用され、性別が女性であり、カウントが20である場合には、変形テキスト“stack of actresses”が使用される。次の2つの例では、番号付き引数“1”に関するコンテキスト内の異なるカウントの指定に応答する異なる変形テキストの使用を示す。
【００８９】
1           “{n}actor{fem=actress,f2=“actress twins”, f20=“stack of actresses”, f3+=“bevy of actresses”, m2=“actor buddies”, m20=“beefcake stack”, m3+=“rat pack"}, 19, female
テンプレート  “Beware the evil $1!”
出力          “Beware the evil bevy of actresses!”
1           “{n}actor{fem=actress, f2 = “actress twins”, f20=“stack of actresses”, f3+=“bevy of actresses”, m2=“actor buddies”, m20=“beefcake stack”, m3+=“rat pack”}, 20, female
テンプレート  “Beware the evil $1!”
出力          “Beware the evil stack of actresses!”
一実施形態で、ローカライゼーションエンジン504は、変形テキスト識別子内で最初に見つけた変形テキスト一致を使用する。カウントが19の場合に、上の例の最初の女性名詞変形一致は、“bevy of actresses”であり、ローカライゼーションエンジン504は、このテキストを使用して、トークン“$1”を解析する。カウントが20の場合には、“f20=”識別子が、ローカライゼーションエンジン504がより広義の識別子“f3+=”に達する前の成功の女性名詞一致であり、したがって、ローカライゼーションエンジン504は、“f20=”識別子で停止し、定義された変形テキストを使用した。ソフトウェアアプリケーションによって供給される性別が男性である場合には、ローカライゼーションエンジン504は、各例でそれぞれ“rat pack”および“beefcake stack”を供給したものとなっている。
【００９０】
動詞について、通常は、英語言語では6つの変形があり、他のターゲット言語ではより多数またはより少数の変形がある。一実施形態で、変形動詞の形態に、単数形および複数形のそれぞれの一人称、二人称、および三人称が含まれる。動詞の変形形態のそれぞれを、メタデータを用いて定義することができ、あるいは、最も一般的な動詞の形態を、デフォルトまたはベーステキストとして使用し、一般的でないまたは異なる形態を変形テキストとして具体的に定義することができる。次は、動詞“buy”の適当な形態がTMLテキストテンプレートの解析に使用されるように、この動詞の変形形態を定義する3つの異なる方法の例である。
【００９１】
{v}buy{1s=buy,2s=buy,3s=buys,1p=buy,2p=buy,3p=buy}
{v}buys{1s=buy,2s=buy,1p=buy,2p=buy,3p=buy}
{v}buy{3s=buys}
これらの3つの方法は、ローカライゼーションエンジン504によって実施される時に実質的に同一の効果を有する。特定の形態が変形から欠けている場合に、ローカライゼーションエンジン504は、デフォルトのベーステキストを使用する。この例では、“1s”は、一人称単数形変形テキストを識別し、“2s”は、二人称単数形変形テキストを識別し、“3s”は、三人称単数形変形テキストを識別し、“1p”は、一人称複数形変形テキストを識別し、“2p”は、二人称複数形変形テキストを識別し、“3p”は、三人称複数形変形テキストを識別する。動詞“buy”について、語形変化は、三人称単数形の場合を除いて同一である。したがって、最後の方法に示されているように、三人称単数形変形テキストだけを定義する必要がある。
【００９２】
英語では、たとえば、動詞の諸形態は、三人称単数形と三人称複数形との間で変化する可能性が最も高い。次は、動詞“cost”の三人称単数形がメタデータを用いて定義される例であり、ここで、この動詞のコンテキストは、テンプレートのターゲットに基づき、このターゲットは、単数カウントを有する名詞である。
【００９３】
ターゲット  “{n}a snake egg{pl=“+@snake eggs”}, 1
1           “{v}cost{3s=costs}”
2           “{n}platinum{pl=-}”, 3
テンプレート  “$T $1|t +2 $2.”
出力          “A snake egg costs 3 platinum.”
現在の例では、ローカライゼーションエンジン504は、動詞“cost”の三人称単数形を使用しなければならないと判定し、三人称単数形は、メタデータを用いて”costs”と定義されている。したがって、“$1|t”トークンは、動詞テキスト“costs”を用いて解析される。次の例では、ターゲットのカウントが20に増やされ、したがって、動詞“cost”の三人称複数形が使用されなければならない。
【００９４】
ターゲット  “{n}a snake egg{pl=“+@ snake eggs”}, 20
1           “{v}cost{3s=costs}”
2           “{n}platinum{pl=-}”, 60
テンプレート  “$T $1|t +2 $2
出力          “20 snake eggs cost 60 platinum.”
三人称複数識別子がメタデータに現れていないので、ローカライゼーションエンジン504は、この動詞にデフォルトまたはベーステキストを使用し、このデフォルトは、この場合には三人称複数形の正しい形である。
【００９５】
上で述べたように、この翻訳ツールには、一実施形態でルックアップテーブルを含めることができ、ここで、ベーステキストが、メタデータおよびコンテキストに加えて、ソース/データベースメモリ(304/408)などのメモリ内のテーブルに、番号付きアドレスまたは英数字アドレスと共に保管される。一実施形態で、このルックアップテーブルは、テキスト文字列の番号付きリストであり、テキスト文字列は、この翻訳ツールにコンテキストを提供する際のソフトウェアアプリケーションによる使用に使用可能なテキストの小辞典である。この小辞典の内容を変更することができ、この変更は、ソフトウェアアプリケーションとこの翻訳ツールとの両方でのこの小辞典の使用の全体を介して伝搬される。このルックアップテーブルには、たとえば句を含めることができ、これらの句は、名詞としての同一の性別およびカウントの変形のいくつかを可能にする。さらに、このルックアップテーブル内の句に、ローカライゼーションエンジン504による解析および展開のためのトークンをも含めることができる。
【００９６】
ローカライゼーションエンジン504は、記号“＼”などの事前定義のトークン演算子によってこのルックアップテーブルに向けられ、トークンオペランドは、ベーステキストまたは句が保管されている特定のテーブル位置のアドレスまたは識別である。次の例では、句は、ルックアップテーブル内のアドレス“413”に保管され、変形句は、ポイントされるコンテキストが女性の性別を指定する場合について定義される。ローカライゼーションエンジン504は、ルックアップテーブルからテンプレート句を解析するために追加情報を必要とし、したがって、補足情報“|L”が、ルックアップテーブルからテンプレート句を解析する際に、聞く人について提供されるコンテキストを使用するようにローカライゼーションエンジン504に指示する。
【００９７】
＼413       “{p}Attacking <(t), master.{f=“Attacking<(t), mistress.”}”
ターゲット  “orc pawn”, 1, male, subhuman
聞く人      “Galadriel”, 1, female, human
テンプレート  “＼413|L”
出力          “Attacking an orc pawn, mistress.”
上の例では、聞く人について供給される性別コンテキストが、女性であり、したがって、ローカライゼーションエンジン504は、ルックアップテーブルアドレス“413”の女性の性別について識別された変形句を使用し、ターゲットについて供給されたコンテキストに従って、この変形句についてテンプレートを解析する。
【００９８】
＼413       “{p}Attacking <(t), master.{f=“Attacking<(t), mistress.”}”
ターゲット  “orc pawn”, 1, male, subhuman
聞く人      “Gandalf”, 1, male, human
テンプレート  “＼413|L”
出力          “Attacking an orc pawn, master.”
この例では、聞く人について供給される性別コンテキストが、男性であり、したがって、ローカライゼーションエンジン504は、ルックアップテーブルアドレス“413”のベーステキストまたはデフォルト句を使用し、ターゲットについて供給されたコンテキストを使用して、このデフォルト句テンプレートを解析する。
【００９９】
ルックアップテーブルと共に使用される補足情報は、補足詳細に限定されず、補足ディレクティブを使用することもできる。たとえば、拡張トークン“＼413|(sx=f)”は、ルックアップテーブルアドレス“413”に保管された句の女性性別版を選択するようにローカライゼーションエンジン504に指示する。一般に、“sx=”ディレクティブ、“ct=”ディレクティブ、および“obj=”ディレクティブを名詞および句に適用して、特定の変形の選択を指示することができる。
【０１００】
一実施形態で、2つのタイプの句が一般的に使用されるので、これらの2つのタイプの句が定義される。第1のタイプの句は、メタデータ“{ps}”を用いて識別され、性別およびカウントが話す人のコンテキストから採用される句である。第2のタイプの句は、メタデータ“{pl}”を用いて識別され、性別およびカウントが聞く人のコンテキストから採用される句である。これらの句の呼出し構文は、補足詳細(“|L”)が不要なので、標準的な句({p})より単純である(“＼414|L”ではなく“＼414”)。これらの事前定義の句の副次的利益は、これらが、補足詳細を必要としない他のテキストと共に、より簡単に置換されることである。次は、ルックアップテーブルと組み合わされた聞く人に基づく句({pl})の使用の例である。
【０１０１】
＼414       “{pl}Attacking <(t), master.{f=“Attacking <(t), mistress.”}”
ターゲット  “orc pawn”, 1, male, subhuman
聞く人      “Galadriel”, 1, female, human
テンプレート  “＼414"
出力          “Attacking an orc pawn, mistress.”
この例では、結果は、基本句({p})が補足詳細と組み合わせて使用された場合と同一であるが、TMLテキストテンプレートは、聞く人のコンテキストを使用するようにローカライゼーションエンジン504に指示する補足情報がテンプレートから除去されているので、より短い。
【０１０２】
次は、{ps}メタデータおよび{pl}メタデータの使用の2つの追加の例であり、これらの2つの例では、同一のTMLテキストテンプレートが使用されているが、コンテキストに応じて異なる結果が作られる。
【０１０３】
話す人      “Bob”
聞く人      “Jane”, female
0           “＼414"
＼414       “{ps}I tore my shirt{f=‘I tore my dress’}”
テンプレート  “$S says, ‘$0’.”
出力          “Bob says, 'I tore my shirt.'”
話す人      “Fido"
聞く人      “Jane”, female
0           “＼415"
＼415       “{pl}My master $L loves me{f=‘My mistress loves me’}”
テンプレート  “$S says, ‘$0’.”
出力          “Fido says, ‘My mistress Jane loves me.’”
上の例では、トークン“$0”に使用される性別およびカウントが、聞く人または話す人のいずれかに対して参照され、そのような指定が、TMLテキストテンプレート内に“$0|L”または“$0|S”の形で現れる必要がない場合に、同一のテンプレートを使用することができる。
【０１０４】
図7の方法700に従って生成されるTMLテキストテンプレートおよび上の方法に従って生成されるソース言語のメタデータは、トランスレータによって、ターゲット言語の正確なTMLテキストテンプレートおよびメタデータを生成するのに使用される。図8は、ソース言語のTMLテキストテンプレートおよびメタデータに基づいてターゲット言語の正確なTMLテキストテンプレートおよびメタデータを生成する方法800の一実施形態を示す流れ図である。一実施形態で、方法800は、トランスレータ開発ツール36(図1)を使用して実施され、トランスレータ開発ツール36は、図9に示されたインターフェースなどのトランスレータインターフェースを実現する。一実施形態で、方法800は、図6の方法600の処理ステップ610および615を実施する。方法800は、手動で実行することができ、または自動化することができ、あるいは、手動プロセスと自動化されたプロセスとの組合せを含めることができる。
【０１０５】
図8を参照すると、この方法は、ステップ802で開始され、ステップ804に進み、ここで、トランスレータが、1つまたは複数のソース言語TMLテキストテンプレートと、関連するベーステキストおよびメタデータとを受け取る。次は、ソース言語TMLテキストテンプレートと例示的なベーステキストおよびメタデータとの例である。
【０１０６】
0           “gauntlet”, 2, object, normal
1           “beautiful”, 0
2           “silver”, 0
テンプレート  “You buy <1 $1 $2 $0”
一実施形態で、ソース言語TMLテキストテンプレートおよび関連するメタデータは、それぞれが事前定義のアドレスを有するチャートまたはテーブル内で供給される。ソース言語TMLテキストテンプレートと関連するベーステキストおよびメタデータとのステップ804での受取に続いて、トランスレータは、ベーステキストを翻訳し、ターゲット言語に関する必要に応じてメタデータを追加し、変更する。現在の例では、ターゲット言語はフランス語であり、ソース言語メタデータを、ステップ806でそれ相応に変更することができ、ベーステキストを次のように翻訳して、ベーステキストの変形の諸形態およびデフォルト性別を定義することができる。
【０１０７】
0           “{n, sx=m}gantelet{}”, 2, object, normal
1           “{ap}beau{ma=bel, fs=belle, fp=belles}”, 0
2           “{a}argente{}”, 0
上で述べたように、番号付き引数に割り当てられる単語の品詞は、コンテキスト内でメタデータを用いて指定される。フランス語などの複数の言語で、名詞ともう1つ以上の形容詞の順序は、英語テンプレートからの順序が使用される場合に文法的に正しくない場合がある。したがって、品詞指定{n}、{ap}、{a}は、一部の地域別の設定情報（ロケール）について、文法的に正しいテキストを生成する際に有用である。追加の変形テキスト識別子が、フランス語ターゲット言語に固有の現在の例で番号付き引数“1”に関するコンテキストで使用される。具体的に言うと、識別子“ma”は、形容詞“beau”の男性名詞第二形(masculine aspire form)すなわち、形容詞が母音または無音の“h”から始まる男性名詞の前に置かれる時の形を指定する。ターゲット言語ごとに、そのターゲット言語に独特の追加の変形テキスト識別子を使用することができ、あるいは、いくつかの地域別の設定情報に共通の識別子を使用することもできる。
【０１０８】
ステップ806でのメタデータの追加および変更に続いて、トランスレータは、ステップ808でTMLテキストテンプレート内の単語または句を翻訳する。現在の例では、トランスレータは、ステップ808で、フランス語のターゲット言語について句“You buy”を“Vous achette”に翻訳する。ステップ808でのTMLテキストテンプレート内の単語または句のターゲット言語への翻訳に続いて、トランスレータは、ステップ810で、翻訳されたベーステキストおよび変更されたメタデータを使用して、ソース言語TMLテキストテンプレートに関するターゲット言語にローカライズされたテンプレートを定義する。フランス語では、形容詞は、それが修飾する名詞の性およびカウントと格が一致しなければならず、名詞に関する形容詞の配置は、その形容詞の意味に依存する場合がある。したがって、トランスレータは、この規則を反映する、ターゲット言語にローカライズされたテンプレートを定義する。
【０１０９】
一実施形態で、マクロを使用して、ターゲット言語にローカライズされたテンプレートを定義することができ、ここで、マクロは、記号“＼”などの事前定義のトークン演算子および補足情報を含む拡張トークンである。一実施形態で、マクロは、ローカライゼーションエンジン504によって、ローカライゼーションエンジン504にコーディングされるローカライズされた文法的規則を実施するのに使用される。たとえば、マクロ“＼noun(...)”を使用して、正確なフランス語の文法的規則に従って名詞の前後で形容詞を順序付ける規則を呼び出すことができる。そのような規則は、たとえば、フランス語ターゲット言語用のローカライゼーションエンジンにコーディングすることができる。現在の例では、マクロは、“＼noun($0, $1, $2)と定義され、ここで、括弧でくくられた部分の中の第1引数は、名詞と仮定することができ、残りのすべての引数は、形容詞である。
【０１１０】
ステップ810でのターゲット言語にローカライズされたテンプレートの定義に続いて、ステップ812で、補足情報を伴う1つまたは複数のトークンを、文法的規則を使用して、ターゲット言語にローカライズされたテンプレートに適用する。現在の例について、トランスレータは、ステップ812でマクロ拡張トークンをローカライズされたテンプレートに適用することによって、次のターゲット言語にローカライズされたテンプレートを定義するはずである。
【０１１１】
テンプレート  “Vous achette ＼noun($0, $1, $2)”
現在の例では、マクロトークンは、フランス語の文法的規則に従って、ターゲット言語にローカライズされたテンプレートに適用され、トランスレータ開発ツールは、番号付き引数“1”および“2”の変更されたメタデータを分析して、形容詞のタイプを判定する。この例では、番号付き引数“1”は、接頭形容詞を定義し、番号付き引数“2”は、接尾形容詞を定義する。ローカライゼーションエンジン504でコーディングされたフランス語の文法的規則に従って、ローカライゼーションエンジン504は、マクロを展開し、次のターゲット言語にローカライズされたテンプレートを生成するはずである。
【０１１２】
テンプレート  “Vous achette $1|0 $0 $2|0”
ステップ812でのターゲット言語にローカライズされたテンプレートへの拡張トークン(複数)の適用に続いて、トランスレータは、ステップ814で、ターゲット言語TMLテキストテンプレートおよび関連するメタデータの正確さを検証する。この検証は、たとえばトランスレータ開発ツール36および図9に示されたトランスレータインターフェース900を使用して実行することができる。ターゲット言語TMLテキストテンプレートおよび関連するメタデータが不正確である場合には、トランスレータは、TMLテキストテンプレートおよびメタデータが、ローカライゼーションエンジン504によって展開された時にターゲット言語で文法的に正しいテキスト文字列を作るように、メタデータおよび/またはターゲット言語TMLテキストテンプレートを変更することができる。ステップ814でターゲット言語TMLテキストテンプレートおよび関連するメタデータの正確さが検証された時に、方法800はステップ816で終了する。
【０１１３】
方法800に従って生成されたターゲット言語TMLテキストテンプレートおよび関連するメタデータは、ソース言語のそれらに対応するTMLテキストテンプレートおよびベーステキストに関してデータベース510(図5を参照されたい)に、翻訳マークアップ言語ルックアップモジュール506によるルックアップのために保管される。一実施形態で、ソース言語TMLテキストテンプレートは、テンプレート自体ではなくアドレスを用いて参照され、このアドレスは、データベース510内でアドレッシングされるターゲット言語TMLテキストテンプレートに対応する。
【０１１４】
一実施形態で、上で定義されたトークン演算子記号に関する指定された文法規則は、地域別の設定情報（ロケール）ターゲット言語の必要に従ってカスタマイズされる。たとえば、指定された文法規則の次の組を、ドイツ語地域別の設定情報（ロケール）用の記号の同一の組に適用することができる。
【０１１５】
$:名前(Bob)またはベーステキスト
%:主格代名詞(ich/du/er-sie-esなど)
#:対格代名詞(mich/dich/inh-sie-esなど)
~:与格代名詞(mir/dir/ihm-ihr-ihmなど)
*:再帰代名詞 (mich/dich/sich、mir/dir/sichなど)
&:所有格形容詞(mein/dein/sein-ihr-seinなど)
<:不定冠詞(ein*/kein*/einige/viele)
>:定冠詞(der/die/das、den/die/das、dem/der/dem、des/der/desなど)
+:目的語のカウント/個数
^:名詞の属格形(Kunden)
=:直接話法(コンテキストからの性別および尊敬形、Herr/Dame)
トランスレータは、指定された文法規則のこの組を使用して、ターゲット言語TMLテキストテンプレートを定義することができる。
【０１１６】
上で述べたように、図9のトランスレータインターフェース900を、方法800と共に、具体的にはターゲット言語TMLテキストテンプレートおよび関連するデータの正確さを検証するのに、使用することができる。一実施形態で、トランスレータインターフェース900は、ユーザによって入力されるソース言語のテキスト文字列を表示するように構成されたソース言語テキスト文字列入力セクション902を含む。トランスレータインターフェース900は、さらに、ユーザによって入力されるターゲット言語の可変テキストまたはベーステキストを表示するように構成された可変テキストまたはベーステキスト入力セクション904を含む。これらの可変テキストに、メタデータを含めることができる。
【０１１７】
トランスレータインターフェース900は、たとえば図8に示された方法800に従ってユーザによって定義されるターゲット言語TMLテキスト文字列を表示するように構成されたターゲット言語TMLテキスト文字列入力セクション906をも含む。トランスレータインターフェース900は、さらに、それに関して可変テキストが可変テキスト入力セクション904で表示され、変更される現在の引数を表示するように構成された引数入力セクション908を含み、ここで、現在の引数は、たとえば、ターゲット、動作主、ペット、主君、話す人、聞く人、または番号付き引数0-9のうちの1つとすることができる。トランスレータインターフェース900は、セクション906に表示されたターゲット言語TMLテキストテンプレートを展開する際に使用される、ユーザによって入力される少なくとも1つのコンテキスト要素を表示するように構成された1つまたは複数のコンテキスト入力セクションをも含む。この1つまたは複数のコンテキスト入力セクションに、たとえば、カウント入力セクション910、性別入力セクション912、タイプ入力セクション914、名誉または敬称入力セクション916、および党派入力セクション918を含めることができる。コンテキスト要素の入力は、たとえば、ユーザによって手動で入力するか、ドロップダウンメニューを介して入力の事前定義の組から選択することができる。
【０１１８】
トランスレータインターフェース900は、さらに、展開パターン入力922のユーザ選択に応答してターゲット言語のテキスト文字列を表示するように構成されたターゲット言語テキスト文字列出力セクション920を含む。展開パターン入力922のユーザ選択に応答して、トランスレータ開発ツールは、引数入力セクション908に関連して定義された可変テキストと、コンテキスト要素入力セクション912、914、916、918からの少なくとも1つのコンテキスト要素とを使用するターゲット言語TMLテキストテンプレートの展開に基づいてターゲット言語テキスト文字列を生成する。トランスレータインターフェースには、さらに、ソース言語テキスト入力セクション924を含めることができ、入力924で表示されるテキストは、入力セクション906で表示されるターゲット言語TMLテキスト文字列を定義するのに使用される。
【０１１９】
方法800に従って生成された変更されたメタデータおよび正確なターゲット言語TMLテキストテンプレートは、それらに対応するソース言語のメタデータおよびTMLテキストテンプレートを参照して、データベース510(図5)などのメモリに保管される。
【０１２０】
図10は、ソース言語のコンテキストおよびTMLテキストテンプレートに基づいてターゲット言語の文法的に正しいテキスト文字列を生成し、表示する方法1000の一実施形態を示す流れ図である。方法1000は、ステップ1002で開始され、ステップ1004に進み、ここで、翻訳モジュール500の翻訳アプリケーションインターフェース502が、ソフトウェアモジュール306または404(図3および4を参照されたい)によって供給されるソース言語TMLテキストテンプレートおよびコンテキストを受け取る。一実施形態で、翻訳アプリケーションインターフェース502は、このソース言語のTMLテキストテンプレートおよびコンテキストをローカライゼーションエンジン504に通信する。ステップ1006で、ローカライゼーションエンジン504は、TMLルックアップモジュール506の援助によってソース言語TMLテキストテンプレートおよびソース言語コンテキストをメモリ(キャッシュ508またはデータベース510)内でルックアップし、対応するターゲット言語TMLテキストテンプレートおよびターゲット言語のコンテキストを入手する。さらに、たとえば、ステップ104で受け取られたコンテキストに、アドレスルックアップを伴う1つまたは複数のトークンが含まれる場合には、ステップ1006に、ローカライゼーションエンジン504がアドレスの内容を入手する、アドレスのルックアップが含まれる。
【０１２１】
ステップ1008で、ローカライゼーションエンジン504は、ターゲット言語コンテキストと共に供給されたメタデータを使用して、テキストテンプレートトークンに従ってターゲット言語コンテキストをターゲット言語TMLテキストテンプレートに適用する。一実施形態で、ローカライゼーションエンジン504は、ローカライゼーションエンジン504にコーディングされた規則に従って、ソース言語コンテキストに関してターゲット言語コンテキストを適用する。ステップ1010で、ローカライゼーションエンジン504は、たとえばキャッシュ508またはデータベース510に保管された、ターゲット言語文法規則に従って、ターゲット言語TMLテキストテンプレートを展開する。ステップ1012で、ローカライゼーションエンジン504は、展開されたターゲット言語TMLテキストテンプレートを翻訳アプリケーションインターフェース502に通信し、翻訳アプリケーションインターフェース502は、ステップ1012で、ターゲット言語の文法的に正しいテキスト文字列を、たとえばソフトウェアモジュール306または406に出力する。ステップ1014で、クライアント16のディスプレイモジュール302が、ターゲット言語の文法的に正しいテキスト文字列を表示し、方法1000は、ステップ1016で終了する。
【０１２２】
たとえば、文法的に正しいテキスト文字列がサーバ18の翻訳モジュール406によって生成されるいくつかの実施形態で、ソフトウェアモジュール404は、ターゲット言語の文法的に正しいテキスト文字列をクライアント通信モジュール402に通信し、クライアント通信モジュール402は、この文法的に正しいテキスト文字列をネットワーク20を介してクライアント26に送信する。
【０１２３】
次は、方法1000の例示的実行である。翻訳アプリケーションインターフェース502は、ソース言語(この例では英語)の次のコンテキストおよびテキストテンプレートを、方法1000のステップ1004で受け取ることができる。
【０１２４】
0           “gauntlet”, 2, object, normal
1           “beautiful”, 0
2           “silver”, 0
テンプレート  “You buy <1 $1 $2 $0”
ステップ1006で、ローカライゼーションエンジン504は、TMLルックアップモジュール506の援助によってソース言語TMLテキストテンプレートおよびソース言語コンテキストをメモリ内でルックアップし、次の対応するターゲット言語TMLテキストテンプレートおよびターゲット言語のコンテキストを入手するが、現在の例のターゲット言語は、フランス語である。
【０１２５】
0           “{n, sx=m}gantelet{}”, 2, object, normal
1           “{ap}beau{ma=bel,fs=belle,fp=belles}”, 0
2           “{a}argente{}”, 0
テンプレート  “Vous achette ＼noun($0, $1, $2)”
ステップ1008で、ローカライゼーションエンジン504は、ターゲット言語コンテキストと共に供給されたメタデータを使用して、ターゲット言語コンテキストをターゲット言語TMLテキストテンプレートトークンに適用する。ステップ1010で、ローカライゼーションエンジン504は、現在の例ではターゲット言語のフランス語の規則であるターゲット言語文法規則に従って、ターゲット言語TMLテキストテンプレートを展開する。フランス語の文法規則に従って、ターゲット言語TMLテキストテンプレートが展開され、このテンプレートは、次の展開されたてプレートに置換されるはずである。
【０１２６】
テンプレート  “Vous achette $1|0 $0 $2|0”
ステップ1012で、ローカライゼーションエンジン504は、翻訳アプリケーションインターフェース502を介して、次の文法的に正しいストリングを出力するはずである。
【０１２７】
出力          “Vous achette beaux gantelets argentes”
ステップ1014で、ディスプレイモジュール302が、このターゲット言語の文法的に正しいテキスト文字列を表示し、この方法は、ステップ1016で終了する。
【０１２８】
当業者によって諒解されるとおり、本明細書で説明されたターゲット言語および構文法は、性質において例示的であって、本発明の範囲を限定しない。さらに、当業者は、複数の実施環境で、より複雑なまたはより単純なテキスト文字列および文法的規則を用いて、本明細書に記載の方法およびシステムを実施できるはずである。テキスト文字列および文法的規則のこれらの実施態様および変形形態は、本発明の範囲に含まれる。本明細書で説明された文法的規則およびテキスト文字列は、性質において例示的であり、さらに複雑なテキスト文字列およびさまざまな地域別の設定情報またはターゲット言語が、企図されている。たとえば、本発明は、欧州地域別の設定情報に限定されず、単語の事前定義の組が英語の好ましい単語の代わりに使用されるか地域別の設定情報が好ましい綴りを使用する英国など、使用される言語が英語の変更された形態である場合があるさまざまな地域別の設定情報で、または英語以外の言語で実施することができる。
【０１２９】
上の詳細な説明は、さまざまな実施形態に適用される時の本発明の新規の特徴を図示し、説明し、指摘したが、示されたデバイスまたはプロセスの形態および詳細におけるさまざまな省略、置換、および変更を、本発明の趣旨から逸脱せずに当業者が行えることを理解されたい。本発明の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示される。添付の特許請求の範囲の意味および同統制の範囲に含まれるすべての変更が、添付の特許請求の範囲に含まれなければならない。
【図面の簡単な説明】
【０１３０】
【図１】テキスト翻訳ツールを実施するシステムの一実施形態を示すブロック図である。
【図２】図1のシステムで実施される、複数の周辺デバイスとネットワークとに結合されたクライアントコンピュータの一実施形態を示す図である。
【図３】翻訳モジュールを含む、図1のクライアントコンピュータの一実施形態を示すブロック図である。
【図４】翻訳モジュールを実施する図1のサーバの一実施形態を示すブロック図である。
【図５】図3および4の翻訳モジュールの一実施形態を示すブロック図である。
【図６】テキスト翻訳ツールを生成する方法の一実施形態を示す流れ図である。
【図７】ソース言語のテキスト文字列に基づく、ソース言語の翻訳マークアップ言語(TML)テキストテンプレートを生成する方法の一実施形態を示す流れ図である。
【図８】ソース言語のTMLテキストテンプレートおよびメタデータに基づいてターゲット言語の正確なTMLテキストテンプレートおよびメタデータを生成する方法の一実施形態を示す流れ図である。
【図９】ソース言語のTMLテキスト文字列に基づいてターゲット言語の正確なTMLテキスト文字列を生成するトランスレータインターフェースの一実施形態を示す図である。
【図１０】ソース言語のコンテキストおよびTMLテキストテンプレートに基づいてターゲット言語の文法的に正しいテキスト文字列を生成し、表示する方法の一実施形態を示す流れ図である。
【図１】
2008520043.tif 000005
【図２】
2008520043.tif 000006
【図３】
2008520043.tif 000007
【図４】
2008520043.tif 000008
【図５】
2008520043.tif 000009
【図６】
2008520043.tif 000010
【図７】
2008520043.tif 000011
【図８】
2008520043.tif 000012
【図９】
2008520043.tif 000013
【図１０】
2008520043.tif 000014
【国際調査報告】
2008520043.tif 000015