(57)【要約】【課題】  テーブルを用いて言語ローカライゼーションを提供すること。【解決手段】  関連する翻訳テーブルを備えることも備えないこともある、アプリケーションの翻訳を提供するためのシステムおよびプロセスについて記載されている。コア翻訳テーブルは、アプリケーション翻訳テーブルおよびコミュニティ翻訳テーブルと併用してもよいし、併用しなくてもよい。【選択図】  図１
2005310163.tif 000002
【特許請求の範囲】
【請求項１】
情報をソース言語からターゲット言語に変更するためのプロセスであって、
システムリソースまたはＧＤＩの１つに向けられたデータをインターセプトするステップと、
前記インターセプトされたデータをコア翻訳テーブルのデータと比較するステップと、
前記比較するステップに基づいて前記インターセプトされたデータを前記コア翻訳テーブルからの前記データで置き換えるステップと
を備えることを特徴とするプロセス。
【請求項２】
前記比較するステップに基づいて前記インターセプトされたデータを前記システムリソースまたは前記ＧＤＩの１つに宛先変更するステップ
をさらに備えることを特徴とする請求項１に記載のプロセス。
【請求項３】
前記インターセプトされたデータをアプリケーション翻訳テーブルのデータと比較するステップと、
前記インターセプトされたデータを前記アプリケーション翻訳テーブルからの前記データで置き換えるステップと
をさらに備えることを特徴とする請求項１に記載のプロセス。
【請求項４】
前記インターセプトされたデータを単純化し、正規化するステップ
をさらに備えることを特徴とする請求項１に記載のプロセス。
【請求項５】
前記単純化し、正規化するステップは、
前記インターセプトされたデータの文字を統一するステップ
をさらに備えることを特徴とする請求項４に記載のプロセス。
【請求項６】
前記単純化し、正規化するステップは、
制御文字を除去するステップ
をさらに備えることを特徴とする請求項４に記載のプロセス。
【請求項７】
前記単純化し、正規化するステップは、
前記インターセプトされたデータをリソースローダとＧＤＩの間で相互参照するステップ
をさらに備えることを特徴とする請求項４に記載のプロセス。
【請求項８】
翻訳されたデータを前記インターセプトされたデータのフォーマットにリストアするステップ
をさらに備えることを特徴とする請求項１に記載のプロセス。
【請求項９】
前記翻訳されたデータを示すために表示項目をサイズ変更するステップ
をさらに備えることを特徴とする請求項１に記載のプロセス。
【請求項１０】
前記インターセプトされたデータをコミュニティ作成翻訳テーブルのデータと比較するステップと、
前記インターセプトされたデータを前記コミュニティ作成翻訳テーブルからの前記データで置き換えるステップと
をさらに備えることを特徴とする請求項１に記載のプロセス。
【請求項１１】
機械翻訳を用いて前記インターセプトされたデータを処理するステップ
をさらに備えることを特徴とする請求項１に記載のプロセス。
【請求項１２】
情報をソース言語からターゲット言語に変更するためのシステムであって、
システムリソースまたはＧＤＩの１つに向けられたデータをインターセプトする手段と、
前記インターセプトされたデータをコア翻訳テーブルのデータと比較する手段と、
前記比較する手段からの結果に基づいて前記インターセプトされたデータを前記コア翻訳テーブルからの前記データで置き換える手段と
を備えたことを特徴とするシステム。
【請求項１３】
前記比較する手段からの結果に基づいて前記インターセプトされたデータを前記システムリソースまたは前記ＧＤＩの１つに宛先変更する手段
をさらに備えたことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記インターセプトされたデータをアプリケーション翻訳テーブルのデータと比較する手段と、
前記インターセプトされたデータを前記アプリケーション翻訳テーブルからの前記データで置き換える手段と
をさらに備えたことを特徴とする請求項１２に記載のシステム。
【請求項１５】
前記インターセプトされたデータを単純化し、正規化する手段
をさらに備えたことを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記単純化し、正規化する手段は、
前記インターセプトされたデータの文字を統一する手段
をさらに備えたことを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記単純化し、正規化する手段は、
制御文字を除去する手段
をさらに備えたことを特徴とする請求項１５に記載のシステム。
【請求項１８】
前記単純化し、正規化する手段は、
前記インターセプトされたデータを前記リソースローダと前記ＧＤＩの間で相互参照する手段
をさらに備えたことを特徴とする請求項１５に記載のシステム。
【請求項１９】
翻訳されたデータを前記インターセプトされたデータのフォーマットにリストアする手段
をさらに備えたことを特徴とする請求項１２に記載のシステム。
【請求項２０】
前記翻訳されたデータを示すために表示項目をサイズ変更する手段
をさらに備えたことを特徴とする請求項１２に記載のシステム。
【請求項２１】
前記インターセプトされたデータをコミュニティ作成翻訳テーブルのデータと比較する手段と、
前記インターセプトされたデータを前記コミュニティ作成翻訳テーブルからの前記データで置き換える手段と
をさらに備えたことを特徴とする請求項１２に記載のシステム。
【請求項２２】
機械翻訳を用いて前記インターセプトされたデータを処理する手段
をさらに備えたことを特徴とする請求項１２に記載のシステム。
【請求項２３】
翻訳を提供するためのシステムであって、
少なくとも１つのコア翻訳テーブルと関連付けられているオペレーティングシステムを実行するプロセッサであって、
システムリソースローダまたはＧＤＩに向けられたデータをインターセプトし、
前記インターセプトされたデータを前記コア翻訳テーブルの翻訳されたデータと比較し、
前記比較に基づいて前記翻訳されたデータを出力するプロセッサと、
前記翻訳されたデータを受け取り、前記翻訳されたデータを出力する出力デバイスと
を備えたことを特徴とするシステム。
【請求項２４】
前記少なくとも１つのコア翻訳テーブルを格納するストレージであって、前記翻訳されたデータを取得するために前記プロセッサによってアクセスされるストレージ
をさらに備えたことを特徴とする請求項２３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の諸態様は、ソフトウェア製品に関する。より詳細には、本発明の諸態様は、ユーザにローカル言語でアプリケーションコンテンツを提供することに関する。
【背景技術】
【０００２】
コンピューティングシステムは数多くの言語で存在している。多数のソフトウェアアプリケーションおよびオペレーティングシステムは、第１の言語で作成され、次いで、他の言語に移植される。これを、アプリケーションおよびオペレーティングシステムのローカライゼーションと呼ぶことがある。しかしながら、多数のソフトウェアアプリケーションが他の言語に翻訳されていない。これらのアプリケーションは、様々な理由でそのソース言語だけで利用可能なままとされている。ある場合には、ローカライゼーションの高コストにより、他の言語でのアプリケーションの売り上げに見合うと期待されないことがある。他の場合には、ソフトウェア開発者が、アプリケーションのニュアンスを他の言語に有効に翻訳するか、または翻訳を完了するのに必要とされる技能を欠いていることがある。上記およびその他の理由により、異なる言語のユーザは、そのユーザの特定の言語に翻訳されていないアプリケーションの使用を妨げられる。
【０００３】
複数の言語でアプリケーションを作成する従来のプロセスを図３Ａに示す。ステップ３０１でアプリケーションが第１の言語で作成される。次に、ステップ３０２で、開発者は、そのアプリケーションを第２の言語に翻訳することができる。複数の言語でアプリケーションを作成する従来のプロセスは、ローカライゼーションツールの使用によるものである。リソースファイルがローカライズされ、製品が再コンパイルされるか、アプリケーションの再コンパイルを必要としないツールが使用されるかのどちらかである。
【０００４】
他の言語のユーザのためにアプリケーションをより容易に翻訳できるようにするいくつかの技法が存在する。第１に、いくつかのシステムは、ユーザに表示されるテキストをそのユーザのローカル言語に翻訳するためにリアルタイムでアクセスされる自動化された機械翻訳辞書へのリンクを提供する。ここで、自動化された機械翻訳辞書は、アプリケーションで使用される用語の知識を有していない。選択される翻訳は、通常、前に翻訳された言葉との共通点を持たない。このアプローチの問題は、単なる機械的辞書翻訳が一般に品質の劣るものだということである。ソース言語のファイル（ドキュメントの場所にアクセスする行為に関連する）を、単なる辞書翻訳を用いて金属研磨器と翻訳することがある。
【０００５】
第２に、図３Ｂに示すように、アプリケーション３０４は、それと共にアプリケーション翻訳リソース３０５を含むことがある。アプリケーション３０４のコアは、第１の言語で書くことができる。しかしながら、テキストがディスプレイやプリンタや他の装置または媒体に出力されるとき、アプリケーション３０４は、アプリケーション翻訳リソース３０５中のアプリケーション翻訳テキストにアクセスする。アプリケーション３０４は、期待されるテキストメッセージおよびそれと同等の翻訳に関連する翻訳リソース３０５のテキスト中の対応するエントリを取得する。同等の翻訳は、グラフィックデバイスインターフェース（ＧＤＩ）３０８に送られ、レンダリングされ、ディスプレイ３０９に出力される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図３Ｂのシステムには３つの問題が存在する。第１に、アプリケーション翻訳リソース３０５が提供されない限り、アプリケーション３０４の堅固な翻訳は存在しないことになる。第２に、アプリケーション３０４によって提供される情報の一部は、アプリケーション３０４から直接ではなく、オペレーティングシステムから生成されることがある。アプリケーション３０４をサポートするオペレーティングシステムが第１の言語にローカライズされ、アプリケーション３０４が第２の言語にローカライズされている場合、ユーザは第１と第２の両方の言語でメッセージを受け取ることを強いられることがある。第３に、アプリケーションがすでに翻訳リソース３０５なしで存在する場合、潜在的ユーザは、翻訳テーブル３０５が作成され、アプリケーション３０４に統合されるまで、ユーザの言語でアプリケーション３０４を使用することができない。
【課題を解決するための手段】
【０００７】
本発明の諸態様は、前述の問題の１つまたは複数に対処し、それによって異なる言語のユーザにアプリケーションを提供する。本発明の諸態様は、単独で、または他の翻訳テーブルと共に用いてメッセージの翻訳を提供することができるオペレーティングシステムレベルの翻訳テーブルの使用を含む。
【０００８】
以下で上記およびその他の態様を、図面および関連する説明との関連で検討する。
【発明を実施するための最良の形態】
【０００９】
本発明の様々な態様を添付の図面に示す。
【００１０】
本発明の諸態様は、アプリケーションおよびオペレーティングシステムを翻訳できるようにすることに関する。オペレーティングシステムレベルの翻訳テーブルを単独で、または他の翻訳テーブル（アプリケーション固有の翻訳テーブルおよびコミュニティ翻訳テーブルを含む）と組み合わせて使用することによって、アプリケーションを他の言語で使用することができる。
【００１１】
以下は、読者の助けとするために様々なセクションに分けている。その見出しは、汎用コンピューティング環境、テーブルベースのローカライゼーション、翻訳テーブルの場所、オペレーティングシステム統合、翻訳テーブル利用法の例が含まれる。
【００１２】
（汎用コンピューティング環境）
図１および２に、本発明を実施することのできる適当な動作環境１００および２０１の例を示す。動作環境１００および２０１は、適当な動作環境の少数の例にすぎず、本発明の使用および機能の範囲に関するどんな限定を示唆するものではない。本発明と共に使用するのに適した他の周知のコンピューティングシステム、環境および／または構成には、これらに限られないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、前述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００１３】
本発明の諸態様は、１つまたは複数のコンピュータまたは他の装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで説明することができる。一般に、プログラムモジュールには、個々のタスクを実行したり、個々の抽象データ型を実装したりするルーチン、アルゴリズム、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュールの機能は、様々な実施形態において必要に応じて組み合わせたり、分散させたりすることができる。
【００１４】
コンピューティングデバイスシステム１００および２０１は、通常、少なくとも何らかの形のコンピュータ可読媒体を含む。コンピュータ可読媒体は、サーバ１０３またはシステム２０１によってアクセスできる任意の利用可能な媒体とすることができる。例をあげると、限定ではないが、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれ得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を記憶するための任意の方法または技術で実施された揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体が含まれ得る。コンピュータ記憶媒体には、これらに限られないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどのメモリ技術、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）などの光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージなどの磁気ストレージデバイス、または所望の情報を格納するのに使用することができ、サーバ１０３またはシステム２０１によってアクセスされ得る他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波やその他のトランスポート機構などの変調データ信号に具現化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号に情報を符号化するようなにその特性の１つまたは複数を設定または変更した信号を意味する。例をあげると、限定ではないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００１５】
図２を参照すると、本発明の諸態様を実施する例示的なシステムは、デバイス２０１などのコンピューティングデバイスを含む。その最も基本的な構成では、デバイス２０１は、通常、処理ユニット２０４およびメモリ２０３を含む。コンピューティングデバイスの厳密な構成および種類に応じて、メモリ２０３は、揮発性（ＲＡＭなど）とすることも、不揮発性（ＲＯＭ、フラッシュメモリなど）とすることも、両者の何らかの組み合わせとすることもできる。また、デバイス２０１は、磁気または光のディスクやテープ２０５〜２０６といった大容量ストレージ（リムーバブルおよび／または非リムーバブル）を備えることもできる。同様に、デバイス２０１は、入力デバイス２０８（マウス、スタイラス、キーボード、トラックボールなどを含む）および／またはディスプレイなどの出力デバイス２０７を備えることもできる。デバイス２０１の他の態様には、有線または無線媒体２１０を用いた他のデバイス、コンピュータ、ネットワーク、サーバなどへのネットワーク接続２０９が含まれ得る。これらのデバイスはすべて、当技術分野では周知であり、ここで詳細に論じる必要はない。
【００１６】
（テーブルベースのローカライゼーション）
アプリケーションは、本発明の諸態様を用いてユーザに翻訳を提供することができる。本アプリケーションのいくつかの態様では、本アプリケーションの動作を、１つまたは複数のレベル、すなわちアプリケーションレベルおよび／またはオペレーティングシステムレベルで行われるものとして説明することができる。
【００１７】
オペレーティングシステムは、システムリソースローダまたはＧＤＩ向けのインターセプトされたテキストを、格納された翻訳テキストのテーブルと比較することによって高速の翻訳を可能にするエンジンを提供することができる。格納されたテーブルは、各用語の翻訳を個別に持つこともでき、そして／またはテキストのストリングだけを含むこともできる。ストリングは、メニュー／ボタン／ダイアログボックスなどでユーザに表示される全コンテンツまたはセンテンスとすることができる。テキストのストリングの対応する翻訳を持つことの１つの利点は、ストリング中の用語の意味が維持されることである。これにより、結果として得られる翻訳は常にソーステキストに対応することになる。
【００１８】
このエンジンは、オペレーティングシステムまたは他の場所に存在してもよい。指定された翻訳テーブルがない場合、エンジンは、インターセプトされたシステムリソースローダまたはＧＤＩコールをその目的の宛先に渡すことができる。エンジンをオペレーティングシステムレベルで配置することの１つの利点は、アプリケーション開発者がそのアプリケーションの翻訳を提供するために、そのコードを変更する必要が、たとえあったとしても、より少なくてすむということである。ある状況では、アプリケーション開発者は、オペレーティングシステムによってアクセスされる翻訳テーブルだけを使用したいと欲することがある。別の状況では、アプリケーション開発者は、次のことを達成するために、追加または代替の翻訳テーブルを提供したいと欲することがある。  
ａ．追加の言語または方言をカバーすること
ｂ．いくつかの用語法の代替の翻訳を提供すること
ｃ．オペレーティングシステムに関連付けられた翻訳テーブルによって扱われていないアプリケーション固有の用語法のための翻訳を提供すること
【００１９】
図４に、両方ともアプリケーション４０２と情報を交換する、システムリソースローダ４０１およびシステムＧＤＩ４０３を示す。アプリケーション４０２のリソースロードプロセスは、システムリソースローダモジュールによって処理される。リソースロードアプリケーションプログラミングインターフェースへのコール（例えば、ｌｏａｄ  ｒｅｓｏｕｒｃｅ  ＡＰＩやｆｉｎｄ  ｒｅｓｏｕｒｃｅ（外部または内部の）など）は、そのアプリケーションが直接的に行うことも、アプリケーションに代わってシステムが間接的に行うこともでき、それらはシステムリソースローダ４０１によって処理され、その最終結果がアプリケーション４０２に返される。
【００２０】
宛先変更エンジンは、アプリケーション４０２とシステムリソースローダ４０１およびシステムＧＤＩ４０３の間のユーザインターフェースのリソース要素のデータ交換の内容のインターセプトおよび最終的な宛先変更を可能にする。
【００２１】
翻訳テーブル（オペレーティングシステムの翻訳テーブルおよびアプリケーションの翻訳テーブルを含む）は、このエンジンの機能を利用して、所望のターゲット言語でのＵＩ要素を含むデータの代替ソースを提供する。オペレーティングシステムの翻訳テーブルは、汎用オペレーティングシステムからの項目を含むことができる。また、それは、一般向けのアプリケーションからの用語法を含んでもよいし、含まなくてもよい。簡潔性のために、オペレーティングシステムの翻訳テーブルを、一般向けのアプリケーションからの用語法を含むか否かにかかわらず、「コア翻訳テーブル」と呼ぶことにする。アプリケーション開発者は、アプリケーション固有の翻訳テーブルを含めることによって、オペレーティングシステムの翻訳テーブルを補足することができる。
【００２２】
翻訳テーブルの性質は、単一のソース言語から単一のターゲット言語への一方向マッピングとすることができる。あるいは、翻訳テーブルは、ソース言語とターゲット言語の間の双方向マッピングとすることもできる。さらに、翻訳テーブルは、単一のソース言語と複数のターゲット言語の間の（一方向または双方向の）マッピングとすることもできる。ターゲット言語の指定は、ターゲット言語のうちのどれを使用すべきか決定するのに役立つ。
【００２３】
図５Ａおよび５Ｂに、本発明の諸態様による翻訳テーブルの用法を示す。図５Ａにおいて、アプリケーションは、ステップ５０１で、システムリソースローダまたはＧＤＩとデータを交換し始める。ステップ５０１からのデータはステップ５０２でエンジンによってインターセプトされる。データはステップ５０３で単純化され、正規化される。ステップ５０４で、データがターゲット言語でのアプリケーションの翻訳テーブルに対して検索される。ステップ５０３からのデータと翻訳テーブル中の情報５０４の間に一致が存在する（ステップ５０５）場合、ステップ５０６でデータの元のフォーマットがリストアされる。元のフォーマットをリストアするための情報はその後の使用のために格納することができる。ステップ５０７で、翻訳されたコンテンツを収容するためにウィンドウおよびダイアログをサイズ変更することができる。ステップ５０１でプロセスはアプリケーションに戻る。
【００２４】
ステップ５０５で（一致またはアプリケーション翻訳テーブルが存在しないために）一致が見つからなかった場合、システムは、ステップ５０８で、ターゲット言語でのコア翻訳テーブルに対してデータを検索する。ステップ５０９で一致が見つかった場合、システムはステップ５０６を実行し、そこから続行する。ステップ５０９で一致が見つからなかった場合、アプリケーションは、通常の処理のためにリソースローダまたはＧＤＩに宛先変更される。
【００２５】
図５Ｂに、コミュニティ翻訳テーブルが存在する場合の図５Ａへの変更を示す。ステップ５０９で一致が見つからなかった場合、ステップ５１１で、データは、コミュニティ作成翻訳テーブルに対して検索される。ステップ５１２で一致が見つかった場合、ステップ５０６が実行され、プロセスは図５Ａと同様に続行する。ステップ５１２で一致が見つからなかった場合、プロセスは機械翻訳（例えば、リアルタイム辞書翻訳）５１３を使用する。ステップ５１４で翻訳が成功した場合、プロセスはステップ５０６に戻り、続行する。ステップ５１４で一致が見つからなかった場合、プロセスはステップ５１０でデータを宛先変更する。
【００２６】
図６でステップ５０３をより詳細に示す。単純化および正規化プロセスは、以下のうちの１つまたは複数を含むことができる。
ａ．文字を統一する（６０２）−データのすべての文字を大文字または小文字に変更する。
ｂ．制御文字を除去する（６０３）−例えば、「＆ｏｐｅｎ．．．＼ｔＣｒｔｌ＋Ｏ」は「ｏｐｅｎ」で置き換えることができる。
ｃ．置換を伴うストリングを相互参照する（６０４）−置換引数を伴うストリングリソースを、リソースローダのデータ交換とディスプレイのＧＤＩの間で相互参照することができる。
【００２７】
図６に示すように単純化および正規化ステップ５０３でデータになされた結果、変更または変更の記述は、ストレージ６０５に格納することができる。例えば、「Ｏｐｅｎ」から「ｏｐｅｎ」への変更は、「Ｏｐｅｎ」および「ｏｐｅｎ」、「Ｏ」および「ｏ」、または最初の文字が小文字に変更される何らかの表現のいずれかとして格納することができる。同様に、制御文字の除去および相互参照も、将来の使用のために格納することができる。
【００２８】
図５Ｂに戻ると、ステップ５１１のコミュニティ作成翻訳テーブルは、開発者がアプリケーション翻訳テーブルを作成していないときに、使用のためにエンティティによって生成することができる。あるいは、コミュニティが既存の翻訳テーブルを補足し、または増強するために翻訳テーブルを開発することもできる。例えば、ユーザが、提供された翻訳テーブルが場合によっては不十分であると判断することもある。コミュニティは、そのアプリケーションと共に使用するための翻訳テーブルを作成することができる。ユーザは、翻訳テーブルが使用される順序を指定することができる。この翻訳テーブルを作成するコミュニティの例では、ユーザは、アプリケーション固有の翻訳テーブルの前にコミュニティ翻訳テーブルが使用され、次いでコア翻訳テーブルを指定することができる。
【００２９】
コミュニティは、例えば、コミュニティ用語集によるコミュニティ作業を介して、明らかにされた用語法の新しい翻訳または新しい言語での翻訳を扱うために、コミュニティ作成翻訳テーブルを提供することができる。前述のように、図５Ｂは、アプリケーションが、図５Ａのプロセスを用いて別の言語に適格にローカライズされることもあるという点で任意選択である。
【００３０】
機械翻訳５１３は、オプションとしてもよいし、しなくてもよい。場合によっては、ソース言語とターゲット言語を橋渡しする機械翻訳辞書が存在しないこともある。
【００３１】
ステップ５０６は、ソース言語またはターゲット言語を用いたホットキーのリストアを含んでもよい。ソース言語を用いてホットキーを再生成することの１つの利点は、アプリケーションまたはオペレーティングシステムにおける関連がそのまま残り得ることである。
【００３２】
ステップ５０２でデータ交換をインターセプトするエンジンは、ダイナミックリンクライブラリとデータベースの組み合わせを含むいくつかの方法で実施することができる。例えば、ダイナミックリンクライブラリは、以下のタスクの１つまたは複数を実行することができる。
【００３３】
ａ．承認／登録されたアプリケーションの識別
ｂ．アプリケーションとシステムのリソースローダおよび／またはＧＤＩの間のデータ交換のインターセプト
ｃ．リソース単純化：ヒット率を改善し、翻訳テーブルサイズを小規模に維持するために、エンジンは単純化および正規化ステップ５０３を実行することができる。ステップ５０３の例には、ストリングからの空白、改行、楕円、コロン、セミコロン、アクセラレータなどの除去をさらに含んでもよい。また、「＆Ｏｐｅｎ．．．＼ｔＣｒｔｌ＋Ｏ」の代わりに、ストリングを「Ｏｐｅｎ」または「ｏｐｅｎ」に変更してもよい。
ｄ．自動サイズ変更：翻訳によってもたらされるテキストと制御の切断を防ぐために、ターゲットアプリケーションのダイアログボックスおよびウィンドウのサイズを自動的に調整する。サイズ変更は、実行時に、ウィンドウ寸法に縦および横のパディングを加えることによって行うことができる。そのために、言語ごとに、パーセント増大値、フォント書体名、フォントサイズを定義することができる。これらの値はハードコーディングすることも、変更可能とすることもできる。デフォルト値の一例は以下を含むことができる。
ｉ．サイズ増大：３０％
ｉｉ．フォント書体名：Ｍｉｃｒｏｓｏｆｔ  Ｓａｎｓ  Ｓｅｒｉｆ
ｉｉｉ．フォントサイズ：８
【００３４】
Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムを使用する場合、例えば、以下の値の１つまたは複数を格納するために、ＨＫＥＹ＿ＣＵＲＲＥＮＴ＿ＵＳＥＲ＼Ｓｏｆｔｗａｒｅ＼ＭＡＴ＼の下にレジストリキーを作成することができる。
ａ．ユーザがアプリケーションを起動しようとするソース言語の指定
ｂ．ユーザがアプリケーションを起動しようとするターゲット言語の指定
ｃ．サイズ変更：所与のアプリケーションでの自動サイズ変更のパーセント
ｄ．フォントサイズ：アプリケーションに使用される実際のフォントサイズ、および
ｅ．図５Ａおよび５Ｂとの使用のためのアプリケーションリソース検索
【００３５】
他の実装形態では、異なるストレージ場所を使用することもできる。
いくつかのケースでは、例えば、非ユニコードアプリケーションを用いた場合には、ユーザが求める言語でユーザインターフェース要素を適正に表示するために、一致するシステムロケールが必要とされることがある。この場合、ターゲット言語が現在設定されているシステムロケールによって処理されないと、システムは、一致するシステムロケールをシミュレートしようとすることがある。これらのプロセスは、ターゲットアプリケーションのリストが事前定義され、非ユニコードアプリケーションが識別されるときに、ユーザのバックグラウンドで行われることがある。
【００３６】
エンジンのデータベースコンポーネントは、アプリケーションのリストを含み、非ユニコードアプリケーションをタグ付けするファイルを含むことができる。
【００３７】
システムは、翻訳されるデータがどのように扱われるかを変更するためにユーザにユーザインターフェースを提供することができる。図１２に、アプリケーションを翻訳すべきか否か、ソース言語およびターゲット言語、ウィンドウを拡大するためのサイズを含むオプションを提供するユーザインターフェースを示す。さらに、デフォルトのプロセスは、承認されたアプリケーションを実行中のオペレーティングシステムと同じ言語で起動することもできる。
【００３８】
ここで、エンドユーザは、ターゲット言語をローカライズしないようにすることも、そのアプリケーションを別の言語で起動しようとすることもできる。また、前述のように、翻訳によってもたらされるテキストサイズ増大を補償するためにウィンドウおよびダイアログボックスのサイズ変更値を指定することもできる。開発者に、自社のアプリケーションのＵＩ要素を抽出し、その新規／代替翻訳を提供することができるようにする別のエディタを提供することもできる。このエディタにより、開発者が、自社のアプリケーションと共に出荷される翻訳テーブルバイナリファイルを作成できるようになる。
【００３９】
（翻訳テーブルの場所）
翻訳テーブルの場所は様々である。図７に、翻訳テーブルが位置し得る場所の様々な例を示す。アプリケーション翻訳テーブル７０１、コア翻訳テーブル７０２、およびコミュニティ翻訳テーブル７０３は、境界線７０８で示すように、ローカルにもリモートにも位置することができる。リモートには、インターネットを介した場所や他のリモートの場所が含まれ得る。
【００４０】
プロセッサ７０６を備えるユーザのシステム７０４は、翻訳テーブル７０１〜７１３を様々な仕方で使用することができる。第１に、ユーザのシステムは、（翻訳テーブル７０１〜７１３とシステム７０４の間の矢印で示すように）アプリケーションを実行している間に、翻訳テーブルに直接アクセスし、それらを使用することができる。第２に、翻訳テーブルは、７０５としてシステム７０４にローカルでインストールし、そこに直接アクセスすることができる。第３に、翻訳テーブルは、ローカル翻訳テーブル７０７で表すローカルの場所に配置することもできる。これら３つのアプローチを、様々な組み合わせで使用することができる。
【００４１】
（オペレーティングシステム統合）
図８に、オペレーティングシステムのエンジンが翻訳の提供にどのように役立つかを示す。アプリケーション翻訳テーブル８０２を備えるか、または備えないアプリケーション８０１は、情報をダウンストリームに送る。この情報は、オペレーティングシステム８０３の一部として実行されるデータインターセプトエンジン８０４によってインターセプトされる。データインターセプトエンジン８０４は、コア翻訳テーブル８０５使用することによってアプリケーション８０１からのデータを処理し、翻訳された情報をダウンストリームのＧＤＩ８０６（またはシステムリソースローダ、図示せず）に送る。結果として得られる翻訳情報は、出力８０７（例えば、ディスプレイ、プリンタ、プリンタドライバなど）に送ることができる。
【００４２】
（翻訳テーブル利用法の例）
図９〜１１に、翻訳されるアプリケーションの様々な例を示す。図９では、言語Ｌ１のアプリケーション９０１を言語Ｌ１で使用する９０２ことができる。また、これはコア翻訳テーブル９０３を用いて言語ＬＮ９０４に翻訳することもできる。コミュニティテーブル９０５およびリアルタイム翻訳９０６を使用することもできる。
【００４３】
図１０では、図９の例にアプリケーション翻訳テーブル１００１が付加されている。
【００４４】
図１１では、システムは、コミュニティテーブル９０５およびリアルタイム翻訳９０６だけを用いてアプリケーション９０１を翻訳する。
【００４５】
以上、本発明の諸態様について、その例示的な実施形態に関して説明してきた。本開示を検討すれば、当分野の技術者には、添付の請求項の範囲および趣旨に含まれる他の数多くの実施形態、変更形態および変形形態が想起されるであろう。
【図面の簡単な説明】
【００４６】
【図１】本発明の１つまたは複数の態様をサポートする汎用コンピューティング環境を示す図である。
【図２】本発明の１つまたは複数の態様をサポートする汎用コンピューティング環境を示す図である。
【図３Ａ】従来のアプリケーションのローカライゼーション技法を示す図である。
【図３Ｂ】従来のアプリケーションのローカライゼーション技法を示す図である。
【図４】アプリケーションとシステムリソースとＧＤＩの間のインタラクションを示す図である。
【図５Ａ】本発明の諸態様に従って、ローカライズされたアプリケーションをユーザに提供する様々なプロセスを示す図である。
【図５Ｂ】本発明の諸態様に従って、ローカライズされたアプリケーションをユーザに提供する様々なプロセスを示す図である。
【図６】本発明の諸態様に従って、正規化の間に行われ得る様々なプロセスを示す図である。
【図７】本発明の諸態様に従って、様々なテーブルおよびそのユーザのシステムに対する関係を示す図である。
【図８】本発明の諸態様に従って、様々なテーブルのインタラクションを示す図である。
【図９】本発明の諸態様に従って、１つまたは複数のテーブルを用いて翻訳されているアプリケーションの出力を示す図である。
【図１０】本発明の諸態様に従って、１つまたは複数のテーブルを用いて翻訳されているアプリケーションの出力を示す図である。
【図１１】本発明の諸態様に従って、１つまたは複数のテーブルを用いて翻訳されているアプリケーションの出力を示す図である。
【図１２】本発明の諸態様に従ってユーザインターフェースを示す図である。
【符号の説明】
【００４７】
１００  コンピューティングデバイスシステム
１０１，１０２  クライアント
１０３  サーバ
１０４  データベース
２０１  コンピューティングデバイスシステム
２０３  システムメモリ  揮発性  不揮発性
２０４  処理ユニット
２０５  リムーバブルストレージ
２０６  非リムーバブルストレージ
２０７  出力デバイス
２０８  入力デバイス
２０９  通信接続
２１０  有線または無線媒体
３０４  アプリケーション
３０５  アプリケーション翻訳リソース
３０８  ＧＤＩ
３０９  ディスプレイ
４０１  システムリソースローダ
４０２  アプリケーション
４０３  システムＧＤＩ
７０１  アプリケーション翻訳テーブル
７０２  コア翻訳テーブル
７０３  コミュニティ翻訳テーブル
７０４  ユーザのシステム
７０５  ローカル翻訳テーブル
７０６  プロセッサ
７０７  ローカル翻訳テーブル
７０８  境界線
８０１  アプリケーション
８０２  アプリケーション翻訳テーブル
８０３  オペレーティングシステム
８０４  データインターセプト
８０５  コア翻訳テーブル
８０６  ＧＤＩ
８０７  出力
【図１】
2005310163.tif 000003
【図２】
2005310163.tif 000004
【図３Ａ】
2005310163.tif 000005
【図３Ｂ】
2005310163.tif 000006
【図４】
2005310163.tif 000007
【図５Ａ】
2005310163.tif 000008
【図５Ｂ】
2005310163.tif 000009
【図６】
2005310163.tif 000010
【図７】
2005310163.tif 000011
【図８】
2005310163.tif 000012
【図９】
2005310163.tif 000013
【図１０】
2005310163.tif 000014
【図１１】
2005310163.tif 000015
【図１２】
2005310163.tif 000016
【外国語明細書】
2005310163000001.pdf