(57)【要約】  インスタントメッセージングの翻訳プラグインは、インスタントメッセージングプログラムとやりとりをして、着信メッセージを傍受し、これらのメッセージを言語翻訳サービスに転送する。該プラグインは次いで、該サービスから受信した翻訳を元のメッセージとともに表示する。これにより、ローカルで翻訳せず、または使用した翻訳サービスの内部動作を知ることなく、言語障壁を越えて通信するのにインスタントメッセージングのユーザが使用できる翻訳が提供される。さらに、翻訳プラグインは、異なる言語を使用するが翻訳プラグインを使用しないユーザとの通信を可能にする、メッセージの手動翻訳も提供する。スペルを訂正し、特定の単語またはフレーズが翻訳されることを防止し、インスタントメッセージング言語を標準言語形式に変更するために、メッセージは翻訳前に修正される。本技術を、コンピュータまたはモバイル装置におけるインスタントメッセージング、およびＳＭＳを含め、様々なメッセージングサービスで実施することができる。
2009527811.tif 000002
【特許請求の範囲】
【請求項１】
インスタントメッセージングにおいてテキストを翻訳する方法であって、
インスタントメッセージングプログラム（２００）の制御下で、
着信メッセージを傍受すること（７２０）と、
前記メッセージを翻訳サービスに送信すること（７３０）と、
前記メッセージの翻訳を表示すること（７５０）と
を含むことを特徴とする方法。
【請求項２】
前記方法は、前記インスタントメッセージングプログラムに対する翻訳プラグインによって実行され、
前記翻訳プラグインは、前記インスタントメッセージングプログラムのウィンドウ内に別個の翻訳ペインを表示する
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記インスタントメッセージングプログラムにおいて、
ユーザから翻訳サービスを開始する表示を受信することと、
サーバからの翻訳プラグインコードを要求することと、
受信した翻訳プラグインコードを表示するために前記翻訳プラグインを実行することと
をさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記インスタントメッセージングプログラムにおいて、サーバからの翻訳サービスのリストを要求することと、
前記翻訳サービスのリストを受信することと、
前記翻訳サービスのリスト内に列挙されたサービスの翻訳能力に基づいて、翻訳のオプションをユーザに提供することと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
翻訳ボックスを前記翻訳ペイン内に表示することと、
前記翻訳ボックスにおいて、翻訳されるべきテキストをユーザから受信することと、
前記翻訳ボックスにおいて、前記テキストを翻訳すべきであるという表示を受信することと、
翻訳されたテキストを前記翻訳ボックス内に表示することと
をさらに含むことを特徴とする請求項２に記載の方法。
【請求項６】
前記翻訳ボックスにおいて、前記翻訳されたテキストをインスタントメッセージとして送信すべきであるという表示を受信することと、
前記翻訳されたテキストをインスタントメッセージとして送信することと
をさらに含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記翻訳されたテキストが誤って翻訳されたという表示を受信することと、
代替の翻訳を前記ユーザから受信することと、
前記代替の翻訳をインスタントメッセージとして送信することと
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記テキストにおいてスペルミスをした単語を翻訳前に自動的に訂正すること
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記テキストがインスタントメッセージング言語を含む場合、前記テキストを翻訳前に標準の言語形式に自動的に訂正すること
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項１０】
受信側のユーザから、前記ユーザが前記メッセージの前記翻訳を理解しないという表示を受信することと、
前記表示に基づいて、前記着信メッセージを送信した接続相手に対し、前記メッセージが理解されなかったことを示すエラーメッセージを送信することと
をさらに含み、
前記ユーザは、前記ユーザが前記翻訳を理解できなかったことを示すために前記接続相手が使用する言語で通信できる必要はないこと
を特徴とする請求項１に記載の方法。
【請求項１１】
前記表示に基づいて、前記翻訳が前記ユーザにより理解されなかったことを前記翻訳サービスが記録することができるように、前記翻訳サービスにメッセージを送信すること
をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記方法は、モバイル装置において実行されることを特徴とする請求項１に記載の方法。
【請求項１３】
インスタントメッセージングテキストの翻訳を表示するシステムであって、
翻訳モジュール（２６０）と、
メッセージを受信するよう構成されたインスタントメッセージングモジュール（２００）と
を備え、
前記翻訳モジュールは、
前記メッセージを翻訳するべきであるという表示を受信し（７２０）、
翻訳を促進するように前記メッセージをユーザの好みに従って自動的に修正することを可能にし（７２５）、
前記メッセージを翻訳する（７３０）
ように構成され、
前記インスタントメッセージングモジュールは、翻訳されたメッセージを表示する（７５０）ように構成されることを特徴とするシステム。
【請求項１４】
前記翻訳モジュールは、さらに、テキスト入力フィールドおよび翻訳ボタンを備える翻訳ボックスを表示するように構成され、
ユーザがテキストを入力して手動で翻訳することを可能にし、
前記ユーザが前記翻訳ボタンを押すと、
前記テキストを前記翻訳サービスに送信し、
入力された前記テキストの翻訳を表示する
ように構成されることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記翻訳モジュールは、
メッセージのスペルを翻訳前に自動的に訂正し、
インスタントメッセージの辞書を利用してインスタントメッセージング言語を標準の言語形式に訂正し、
特定の単語を翻訳しないという表示を受信した後、これらの単語が前記翻訳サービスにより翻訳されることを防止する
ように構成されることを特徴とする請求項１３に記載のシステム。
【請求項１６】
異なる言語で通信する２人のユーザ間のメッセージングを促進する方法を記述するマシン実行可能な命令を含む１つまたは複数のコンピュータ読み取り可能な媒体であって、前記方法は、
ユーザから、前記ユーザにより使用される第１の言語および前記ユーザが通信している人により使用される第２の言語の表示を受信すること（６４０）と、
メッセージがメッセージングサービスにより受信されたという表示を受信すること（７２０）と、
前記メッセージを翻訳用に準備するために前記メッセージに修正を実行すること（７２５）と、
前記メッセージを、前記第２の言語から前記第１のメッセージにテキストを翻訳するように構成されたトランスレータに送信すること（７３０）と、
前記メッセージの翻訳を前記トランスレータから受信すること（７４０）と、
前記翻訳を前記ユーザに表示すること（７５０）と
を含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１７】
前記方法は、
前記メッセージの１つまたは複数の部分を翻訳すべきではないという表示を認識することと、
前記メッセージが翻訳されるときに前記１つまたは複数の部分が翻訳されないように、前記１つまたは複数の部分を修正することと
をさらに含むことを特徴とする請求項１６に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
翻訳ボックスを前記ユーザに表示することと、
前記翻訳ボックスにおいて、翻訳すべきテキストを受信することと、
前記テキストを前記第１の言語から前記第２の言語に翻訳することと
をさらに含むことを特徴とする請求項１６に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
前記メッセージを翻訳用に準備するために前記メッセージに修正を実行することは、
前記メッセージ内の１つまたは複数の単語のスペルを自動的に訂正することと、
修正されたインスタントメッセージング言語を標準の言語に自動的に訂正することと
を含むことを特徴とする請求項１６に記載のコンピュータ読み取り可能な媒体。
【請求項２０】
前記メッセージングサービスは、ＳＭＳであることを特徴とする請求項１６に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インスタントメッセージングアプリケーションにおける機械翻訳に関する。
【背景技術】
【０００２】
インスタントメッセージング（ｉｎｓｔａｎｔ  ｍｅｓｓａｇｉｎｇ）は、インターネット上でリアルタイムに通信するための広く使用されるツールとなっている。何百万のインターネットユーザは、インスタントメッセージングアプリケーション（ｉｎｓｔａｎｔ  ｍｅｓｓａｇｉｎｇ  ａｐｐｌｉｃａｔｉｏｎ）を使用して友達および家族とチャットし、チャットルームで通信し、画像または文書の交換さえもしている。さらに、幾つかの組織および企業は、インスタントメッセージングアプリケーションを標準的なネットワークツールのレパートリーに組み込んでビジネスの通信を強化し、コストがかかる電気通信サービス（例えば、電話およびビデオ会議）を置き換えている。インターネットの人気が世界中で高まり続けるにつれて、国際通信がますます一般的となる。しかしながらこれは、ユーザがインスタントメッセージングを使用するときに言語の障壁に遭遇することを意味する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このような言語の障壁を解決するのに現在利用可能な幾つかの技術がある。１つには、インスタントメッセージングツールのユーザは、自分の、または好ましい言語でメッセージを別個の翻訳プログラムまたはウェブサイトにタイプする。ユーザは次いで、翻訳ツールを起動してメッセージを目的の言語に翻訳して、翻訳されたテキストを元のインスタントメッセージングツールのテキスト領域にカットアンドペーストなければならない。これが完了すると、ユーザはメッセージを送信することができる。この方法は効果的であるが、継続的にカット、ペーストおよびアプリケーション間の切り替えを行うプロセスは大幅に通信プロセスを妨げることは明らかである。良い翻訳ツールを探すことは、ユーザにとって困難で注意をそらすものである可能性もある。さらに、どの翻訳ツールも特定のユーザが有しうる全ての言語ニーズをサポートすることができないため、ユーザは世界中の異なる接続相手（ｃｏｎｔａｃｔ）とチャットするためにユーザ自身が多数の異なるツールを利用することとなり、それによりメッセージングサービスの実用性も低くなる。
【０００４】
他の技術では、専用の翻訳ツールがインスタントメッセージングプログラムに組み込まれている。しかしながら、これらの技術は柔軟性に欠けるが、これは、これらの技術はメッセージングプログラムを単一の翻訳ツールに結合し、一部が頻繁に更新されて高品質な、多くはオンラインの利用可能な既存の翻訳ツールを利用しないためである。他の技術では、或る種の翻訳「ｍｉｄｄｌｅ  ｍａｎ」を使用して、メッセージを或るユーザから別のユーザに送信するときにそのメッセージを翻訳する。これらの技術ではユーザ側での追加的な作業は殆ど必要ないが、一部のユーザは、制御の大部分をトランスレータ（ｔｒａｎｓｌａｔｏｒ）に任せる必要があり、ユーザが自分のメッセージがどのように翻訳されるかを制御すること、および翻訳されたメッセージを洗練させることができないことが分かるかもしれない。既存の自動翻訳技術に関する最後の問題は、その多くはそれぞれのユーザが、両者が言語の隔たりを越えて通信することができるように同じ翻訳技術を利用することを必要とすることである。
【課題を解決するための手段】
【０００５】
メッセージングアプリケーションにおける翻訳に関する技術およびツールを説明する。特に、インスタントメッセージングアプリケーションに対するプラグインは、メッセージを、そのメッセージをユーザに表示する前に第三者（ｔｈｉｒｄ−ｐａｒｔｙ）翻訳サービスに転送する。これによりユーザは、そのユーザの言語を必ずしも話さないかまたは書かない接続相手と通信することができる。さらに、翻訳サービスを用いたより柔軟性の高い言語の使用、ならびに翻訳を訂正する能力および翻訳の実行方法をカスタマイズする能力を可能にする、ユーザインタフェースの特徴を説明する。
【０００６】
従って、一例では、インスタントメッセージング内のテキストを翻訳する方法を説明する。該方法は、インスタントメッセージングプログラムの制御下で、着信メッセージ（ｉｎｃｏｍｉｎｇ  ｍｅｓｓａｇｅ）を傍受（ｉｎｔｅｒｃｅｐｔ）すること、該メッセージを翻訳サービスに送信すること、および該メッセージの翻訳を表示することを含む。
【０００７】
別の例では、インスタントメッセージングのテキストの翻訳を表示するシステムを説明する。その例示的なシステムは、翻訳モジュール、およびメッセージを受信するよう構成されたインスタントメッセージングモジュールを備える。翻訳モジュールは、メッセージを翻訳するという表示（ｉｎｄｉｃａｔｉｏｎ）を受信するように構成され、ユーザの好みに従って自動的にメッセージを修正して翻訳を促進することを可能にし、そのメッセージを翻訳する。インスタントメッセージングモジュールは、翻訳されたメッセージを表示するように構成される。
【０００８】
別の例では、異なる言語で通信している２人のユーザ間のメッセージングを促進する方法を記述するマシン実行可能な命令を含む、１つまたは複数のコンピュータ読み取り可能な媒体を説明する。該方法は、ユーザから、該ユーザによって使用される第１の言語、および該ユーザが通信している人によって使用される第２の言語の表示を受信すること、メッセージがメッセージングサービスにより受信されたという表示を受信すること、そのメッセージに対して修正を実行してそのメッセージを翻訳用に準備すること、そのメッセージを、第２の言語から第１のメッセージにテキストを翻訳するよう構成されたトランスレータに送信すること、そのメッセージの翻訳をそのトランスレータから受信すること、およびその翻訳を上記ユーザに表示することを含む。
【０００９】
この「課題を解決するための手段」の記載は、以下の「発明を実施するための最良な形態」でさらに説明される概念の選択を、簡略化した形式で紹介するために提供される。この「課題を解決するための手段」の記載は、特許請求される対象の主要な特徴または本質的な特徴を特定するようには意図されておらず、特許請求される対象の範囲を定める助けとして使用されることも意図されていない。
【００１０】
さらなる特徴および利点は、添付の図面を参照して進める実施形態の以下の詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【００１１】
以下の説明は、外部翻訳サービスと通信して翻訳作業を実行する、インスタントメッセージングプログラムに対する翻訳プラグイン（ｔｒａｎｓｌａｔｉｏｎ  ｐｌｕｇ−ｉｎ）によって、インスタントメッセージングのメッセージを翻訳することに関する。軽量なプラグインを利用することにより、ユーザに翻訳における強い柔軟性を提供し、一方で、ユーザのコンピュータの計算負荷を軽減させるために、実際の翻訳を別個のサービスにオフロードする。さらに、第三者の翻訳サービスを使用することにより、翻訳プラグインは、ユーザに多数の異なるサービスから選択させ、それによりユーザはそのユーザに対して良く動作するサービスを選択することができる。
【００１２】
特に、翻訳プラグインは、インスタントメッセージングプログラムにより受信されたメッセージを傍受し、次いでそれらのメッセージを予め選択された翻訳サービスに送信することにより動作する。メッセージの翻訳とともに応答をサービスから受信すると、翻訳プラグインは次いでその翻訳を表示する。このように、翻訳プラグインによるサービスのプロセスを知る必要なしに、提供された翻訳を使用してメッセージを翻訳することができる。さらに翻訳プラグインは、ユーザがデータを入力すると、該データがすぐに翻訳サービスに送信され、翻訳され、そしてユーザの接続相手に送信される、翻訳ボックス（ｔｒａｎｓｌａｔｉｏｎ  ｂｏｘ）を提供する。翻訳は完璧であるとは保証されないが、その翻訳を通して提供される追加の文脈情報（ｃｏｎｔｅｘｔｕａｌ  ｉｎｆｏｒｍａｔｉｏｎ）は、翻訳プラグインにアクセスしていない人とでも言語の隔たりを越えてユーザが通信することを促進するのに十分であるべきである。本明細書で説明されるインスタントメッセージングの特徴の一部を、特定のインスタントメッセージングアプリケーションに関連して説明するが、本明細書で説明される技術および特徴を様々な代替的なメッセージングアプリケーションおよび状況で使用することができる。該アプリケーションおよび状況には、携帯電話（または他のモバイル装置）上で動作するインスタントメッセージングデバイスおよびＳＭＳメッセージングが含まれるがこれらに限らない。
【００１３】
１．ネットワークのやりとり
図１は、本明細書で説明されるインスタントメッセージングの翻訳技術のコンポーネントを、それらがネットワーク１００経由で通信するように図示する図である。一実装において、異なる国のユーザが本明細書で説明される技術を使用して通信するように、ネットワーク１００はインターネットを含む。代替的な実装において、ネットワーク１００は、例えば、イントラネット、ローカルエリアネットワーク、広域ネットワーク、およびＥｉｔｈｅｒｎｅｔ（登録商標）、ならびに全体または部分的に無線ネットワークプロトコル（例えば、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇなど）を備えるネットワークなどの、他のネットワーク実装を備えることができる。
【００１４】
図１は、各々がユーザにより使用されインスタントメッセージングプログラム経由で通信する、２つのコンピュータ１１０および１２０も図示している。図１に示される例では、コンピュータ１１０は英語で通信するユーザＡによって使用され、コンピュータ１２０はドイツ語で通信するユーザＢによって使用される。図１は、ネットワーク１００に接続され、或る言語から別の言語にテキストを翻訳することができる、様々な翻訳サービス１３０、１４０および１５０も図示する。図１に示されるように、翻訳サービス１３０、１４０、および１５０はそれぞれ、一方向（例えば、ドイツ語から英語）の翻訳を提供する。
【００１５】
一部の代替的な実装において、１つまたは複数の翻訳サービスは、双方向（例えば、ドイツ語から英語、およびドイツ語から英語）の翻訳を提供する。一実装において、翻訳サービスは、標準的なウェブサービスプロトコルを通した通信を可能にし、代替的な実装においては専用の翻訳プロトコルを使用する。一実装において、公知の通信方法を使用して翻訳を要求および受信することにより、翻訳プラグインは、サービスの内部操作について何も知ることなくテキストを翻訳サービスに送信して、翻訳を翻訳サービスから受信することができる。別の実装では、１つまたは複数の翻訳サービスが、インスタントメッセージングプログラムを（例えば、ダイナミックリンクされたライブラリまたはコンパイルされたプログラムとして）実行しているコンピュータ上に配置され、翻訳プラグインはサービスと通信するのにネットワークを使用する必要がない。しかしながら、これらの実装では、サービスは、プラグインに対してなお不透明である可能性があり、従ってその内部の動作に関係なく依存される可能性がある。
【００１６】
図１は、一実装において翻訳プラグインに関するコードを含みインスタントメッセージングプログラムからの要求に応じて該コードを提供する、翻訳プラグインサーバ１６０も図示する。翻訳プラグインサーバは、様々な翻訳サービスにネットワークアドレスまたはロケーションを提供することもできる。一実装において、このことは、既知の翻訳サービスのリストおよびそのネットワークアドレスを保持する翻訳プラグインサーバ１６０によって行われる。
【００１７】
図２は、本明細書で説明される技術に従ってネットワーク１００上でやりとりをしてインスタントメッセージングの翻訳を提供する、例示的なインスタントメッセージングプログラム２００、例示的な翻訳サーバ２１０、および例示的な翻訳サービス２３０のコンポーネントを示すブロック図である。様々な実装において、インスタントメッセージングプログラム２００を、これらには限られないがＷｉｎｄｏｗｓ（登録商標）  Ｍｅｓｓｅｎｇｅｒ、ＭＳＮ  Ｍｅｓｓｅｎｇｅｒ、ＡＯＬ  Ｉｎｓｔａｎｔ  Ｍｅｓｓｅｎｇｅｒ、Ｙａｈｏｏ  Ｍｅｓｓｅｎｇｅｒ、Ｇｏｏｇｌｅ  Ｔａｌｋ、ＩＣＱ、およびＪａｂｂｅｒプロトコルを用いる実装などを含む、様々な公知の独自またはオープンソースのインスタントメッセージングプラットフォームとして実装することができる。好適な実装では、インスタントメッセージングプログラム２００は、インスタントメッセージングプログラムの機能を拡張するプラグインまたは他のモジュール形式のプログラムの使用をサポートする。代替的な実装では、本明細書で説明される様々な翻訳技術は、インスタントメッセージングプログラムの統合部分として実装される。
【００１８】
図２は、本明細書で説明される翻訳技術を実装する翻訳プラグイン２６０の一例を図示する。翻訳プラグインを様々な方法で実装することができる。一実装では、プラグインは、例えばＪａｖａ（登録商標）Ｓｃｒｉｐｔなどのスクリプト言語を使用して実装される。代替的な実装では、翻訳プラグインをコンパイル言語またはインタプリタ言語を使用して実装することができる。
【００１９】
図示される実装では、翻訳プラグイン２６０は、翻訳プラグインスクリプト２４０を保持しており要求されるとスクリプトをインスタントメッセージングプログラムに提供する翻訳サーバ２１０から、ネットワーク１００上でダウンロードされる。図示される実装では、インスタントメッセージングプログラムは、ネットワーク１００上でスクリプト要求を送信するときに使用するサーバのアドレス２５０を保持しているため、インスタントメッセージングプログラムは翻訳サーバ２１０と通信することができる。上述のように、一部の実装では、翻訳プラグイン２６０をプラグインとして実装せずに、インスタントメッセージングプログラム２００の統合部分として実装することがあり、この場合はプラグイン２６０に関するスクリプトをサーバ上に保持する必要がない。
【００２０】
図２に図示されるように、翻訳サーバは、インスタントメッセージングプログラム２００または翻訳プラグイン２６０によるネットワーク１００上でのダウンロードに利用可能な翻訳サービスのリスト２２０を保持する。一実装では、このリストは翻訳サービスのネットワークアドレス、およびリストアップされたサービスにより翻訳される言語の表示を備える。このリストを翻訳サーバ上で提供する１つの理由は、ユーザが使用したい翻訳サービスを探すように翻訳プラグインのユーザに要求するのではなく、集約したサービスのリストを保持および更新できるようにするためである。代替的な実装では、このリストを中央サーバ上に保持しないが、その代わりにユーザが翻訳プラグインで使用したいサービスを入力する。さらに別の実装では、集約したリストを保持するが、ユーザはリストアップされていないサービスを入力して翻訳プラグインで使用することができ、またはリスト２２０に含めるサービスを提示することができる。
【００２１】
図２に図示されるように、リスト２２０からの情報は、一旦翻訳サーバ２１０からダウンロードされると、利用可能な翻訳サービスのリスト２７０としてインスタントメッセージングプログラム内に保持される。様々な実装において、リスト２７０はリスト２２０内の情報の全部または一部、ならびにユーザによって入力された追加の翻訳サービス情報を表すことができる。インスタントメッセージングプログラムは、翻訳プラグインスクリプト２４０および利用可能な翻訳サービスのリスト２２０を翻訳サーバ２１０からダウンロードする機能を提供するプラグイン初期化コード２８０も備える。
【００２２】
図２に図示されるように、翻訳プラグイン２６０はまた、翻訳プラグイン２６０と翻訳サービス２３０などの様々な翻訳サービスとの間のネットワーク１００上の通信を促進する翻訳プロトコル２６５に関連付けられている。この通信を促進するため、例示的な翻訳サービス２３０は翻訳プロトコル２６５も実装し、その結果、翻訳の要求および結果をネットワーク１００上で送信することが可能になる。代替的な実装では、翻訳サービスとインスタントメッセージングプログラムとの間の通信は、専用の翻訳プロトコルを必要とせず、代わりに他の相互理解通信プロトコル（ｍｕｔｕａｌｌｙ−ｕｎｄｅｒｓｔｏｏｄ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｐｒｏｔｏｃｏｌ）を利用する。
【００２３】
翻訳サービスの他の内部コンポーネントを図示していないことに留意されたい。このことは、本明細書で説明される翻訳技術の柔軟性を表すが、これは、この技術がいかなる特定の翻訳サービスの実装にも拘束されないためである。翻訳プラグインが翻訳サービスと通信することができる限り、翻訳サービス２３０の内部メカニズムに関係なく翻訳を取得することができる。
【００２４】
２．翻訳プラグインの動作例
図３は、翻訳プラグインを用いたインスタントメッセージの翻訳の起動に使用されているインスタントメッセージングプログラム２００のウィンドウ３００の図を示す。図示される実装では、（ユーザによって予めに起動された）インスタントメッセージングプログラムは、メニュー項目３２０を表示するように構成されており、ユーザがメニュー項目３２０を選択することで翻訳を開始する。別の実装では、翻訳技術は、インスタントメッセージングプログラムが開始されるときに開始され、翻訳を別々に開始する必要はなく、従ってメニュー選択３２０を有する必要はない。
【００２５】
図４は、翻訳プラグイン２６０を開始および初期化する、インスタントメッセージングプログラム２００によって実行される例示的なプロセス４００を図示する。プロセス４００の様々な実装では、図示されるプロセスのブロックを分割、マージまたは省略することができる。一実装では、プロセス４００は、翻訳プラグイン初期化コード２８０を実行するインスタントメッセージングプログラム２００によって実行される。プロセスはブロック４２０で開始し、ブロック４２０では、インスタントメッセージングプログラムがユーザからインスタントメッセージの翻訳を開始する表示を受信する。図３に図示されるように、この表示はメニュー選択の形式をとることができる。プロセス４００の他の実装は異なる表示を使用することができ、またはインスタントメッセージングプログラムを開始するときに自動的に翻訳を開始してブロック４２０を省略することができる。
【００２６】
次にブロック４４０で、インスタントメッセージングプログラムは、翻訳サーバからのプラグインスクリプトおよび利用可能な翻訳サービスのリストを要求する。ブロック４６０で、インスタントメッセージングプログラムは、翻訳プラグインを初期化して翻訳が行われることを可能にするプラグインスクリプトを実行する（またはそのスクリプトを、プログラムが実行されているコンピュータ上で実行させる）。最後にブロック４８０で、メッセージングプログラムは、現在実行中の翻訳プラグインに翻訳の任務を実施させたまま、ブロック４８０で実行を継続する。
【００２７】
図５は、翻訳プラグイン２６０が実行中で翻訳ペイン５００を表示している間のインスタントメッセージングプログラム２００の図を示す。図５に図示されるように、翻訳ペイン５００は翻訳プラグインに対するフロントエンドであり、翻訳が行われると翻訳の表示を見て翻訳プラグインとやりとりをするためのインタフェースを提供する。例えば、図５には、翻訳を実施可能な言語の選択をユーザに提供するドロップダウンメニュー５１０および５２０が示されている。従って、図５の翻訳プラグインのユーザは、自分の接続相手がフランス語で通信するであろうことを知り、そのユーザは、接続相手がフランス語でタイプするであろうことを示すオプションをドロップダウンメニュー５１０から選択する。同様に、そのユーザは、自身が通信する言語、本例では英語を示す言語をドロップダウンメニュー５２０から選択する。後述するように、一実装では、ドロップダウンメニューは、翻訳サーバからダウンロードした利用可能な翻訳サービスリストからの情報によって追加（ｐｏｐｕｌａｔｅ）される。さらに、一部の実装では、ドロップダウンメニューを対話式にすることができ、あるメニューはそのエントリを、どの翻訳サービスが利用可能かに基づいて他のメニュー内で選ばれた選択に応じて変更する。従って、例えば、第１のメニュー５１０でフランス語が選択されると、メニュー５２０は、フランス語から翻訳するのに利用可能な翻訳サービスがある言語のみを含むことになる。別の実装では、或るペアの言語間で翻訳する、２つ以上の利用可能な翻訳サービスが存在すると、ドロップダウンメニューは、ユーザが好みの翻訳サービスを選択できるように、選択可能な言語に加え、どの翻訳サービスが選択されているかを示すことができる。
【００２８】
図５は、翻訳の実施に使用されている翻訳プラグインの例も示す。図５は、ローカルユーザ「Ｇｅｏｒｇｅ」と該ユーザのリモート接続相手「Ｊｅａｎ  Ｄｏ」との間の、メッセージングウィンドウ５０５内で行われる会話の例を図示する。本例では、Ｊｅａｎは、Ｇｅｏｒｇｅの最初の挨拶に対し、フランス語のメッセージ「Ｓａｌｕｔ，Ｇｅｏｒｇｅ！Ｃｏｍｍｅｎｔ  ｃａ  ｖａ？」（５３０）で応答している。Ｇｅｏｒｇｅはフランス語が分からず、Ｊｅａｎがフランス語でタイプするであろうことを知っているので、Ｇｅｏｒｇｅは、メッセージをフランス語から英語に翻訳すべきことをドロップダウンメニュー５１０および５２０で予め選択している。従って、Ｊｅａｎからのメッセージ５３０は、翻訳「Ｈｅｌｌｏ，Ｇｅｏｒｇｅ！Ｈｏｗ  ｉｓ  ｔｈａｔ？」（５４０）とともに翻訳ペインに繰り返されている。従ってＧｅｏｒｇｅは、翻訳５４０を使用してＪｅａｎからの応答をより良く理解することができる。翻訳ペインに表示される翻訳は、（使用される翻訳サービスの能力に応じて）完璧でない可能性があることは理解されるが、該翻訳は、そのユーザ（ここでは、Ｇｅｏｒｇｅ）が、自分の接続相手から受信したメッセージの趣旨を理解することができる十分な情報を提供する役割を果たすべきである。翻訳ペイン５００は、後の図面に関連して説明される例に従って手動で要求される翻訳に使用することができる翻訳ボックス５５０を含む。
【００２９】
図６は、インスタントメッセージの翻訳の準備をするために翻訳プラグイン２６０により実施される例示的なプロセス６００を示す。プロセス６００の様々な実装では、図示されるプロセスのブロックを分割、マージまたは省略することができる。該プロセスは、ブロック６１０で開始し、ブロック６１０では、翻訳プラグイン２６０が翻訳ペイン５００を表示する。次に、ブロック６２０で翻訳ボックス５５０をペイン内部に表示する。プロセス６００の別の実装では、翻訳ボックスは、翻訳ペイン５００が表示されるときに即座に表示されず、代わりに、ボックスを表示するようにユーザから表示を受信するまで隠される。
【００３０】
次に、ブロック６３０で、翻訳プラグインは、プロセス４００でダウンロードされた利用可能な翻訳サービスのリストに基づいて、言語選択メニュー５１０および５２０を追加する。別の実装では、ブロック６３０のプロセスは、そのリストに、ユーザによって示した翻訳サービスを追加する。ブロック６４０で、プロセスは、ユーザの言語およびユーザの接続相手の言語に関する表示をユーザから受信する。最後にブロック６５０で、翻訳プラグインは、メッセージを、そのメッセージがインスタントメッセージプログラム２００に到着したときに翻訳する。図７を参照してブロック６５０のプロセスをさらに詳細に説明する。
【００３１】
図７は、インスタントメッセージを翻訳するために翻訳プラグイン２６０によって実施される、例示的なプロセス７００を図示する。プロセス７００の様々な実装では、図示されるプロセスのブロックを分割、マージまたは省略することができる。一実装では、ブロック６５０のプロセスはプロセス７００を備える。プロセスはブロック７１０で開始し、ブロック７１０では、翻訳プラグイン２６０は、インスタントメッセージがインスタントメッセージングプログラム２００により受信されるのを待つ。次に、ブロック７２０で、翻訳プラグイン２６０は着信メッセージを傍受する。一実装では、この傍受は、新規メッセージを受信したときにインスタントメッセージプログラムに警告するイベントハンドラを（ｅｖｅｎｔ  ｈａｎｄｌｅｒ）通して行われる。別の実装では、翻訳プラグインは、インスタントメッセージングプログラムを定期的にポーリングして、新規メッセージを受信したかどうかを判定することができる。ブロック７２０に続いてブロック７２５では、翻訳プラグインは、メッセージに対する修正を実施して、該メッセージを翻訳サービスによる翻訳用に準備する。上記修正の例には、スペルエラーの自動訂正、およびインスタントメッセージング言語構造の標準言語への訂正が含まれるが、これらに限定されるものではない。
【００３２】
次に、ブロック７３０で、翻訳プラグイン２６０は、接続相手の言語からユーザの言語に翻訳されるようにメッセージを適切な翻訳サービスに送信する。一実装では、メッセージを送信する翻訳サービスは、ドロップダウンメニュー５１０および５２０からの言語の選択により選ばれたものである。さらに、上述のように様々な実装では、ブロック５３０で送信されたメッセージは、公知の翻訳メッセージプロトコルで、あるいは翻訳サービスおよび翻訳プラグインに対して相互に公知の他のプロトコルで送信することができる。
【００３３】
次に、ブロック７４０で、メッセージの翻訳を翻訳サービスから受信し、ブロック７５０で、該翻訳を表示する。様々な実装では、該翻訳を、元の外国語のテキストとともに、または元の外国語のテキストなしに表示することができる。元のメッセージを表示するかしないかの選択はオプションとしてユーザに残すことができる。
【００３４】
３．インスタントメッセージング翻訳の特徴の例
本明細書では様々なツールおよび特徴を翻訳プラグインの文脈で説明しているが、様々な実装では、特徴を他のインスタントメッセージングの翻訳の実装で使用することもできることは認識されるであろう。様々なこれらの特徴を、上述の機械翻訳の実装に使用すること、あるいは、これらに限定されないが携帯電話もしくは他のモバイル装置で実行するインスタントメッセージングプログラム、および翻訳を用いるＳＭＳメッセージングなどを含め、翻訳を伴う他のメッセージングアプリケーションに使用することができる。図８は、翻訳ボックス５５０の使用例の図を示す。図８の例では、最初に図５で開始された会話を続けている。ユーザであるＧｅｏｒｇｅは、接続相手のＪｅａｎが送信したメッセージに「Ｉ‘ｍ  ｇｒｅａｔ．Ｈｏｗ  ａｒｅ  ｙｏｕ？」という返事で応答している。しかしながらＪｅａｎは、恐らくＪｅａｎ側で翻訳能力を有さないので、この返事を理解せず、メッセージ「Ｑｕｏｉ？」（８１０）で答えて前のメッセージが何を意味するか質問する。本例のこの時点で、Ｇｅｏｒｇｅは、自分の前の文章のフランス語の翻訳を送信してＪｅａｎが該翻訳を理解するかどうかを見ることが最良であろうと決定する。
【００３５】
Ｇｅｏｒｇｅはこのことを、翻訳ボックス５５０を使用してメッセージの手動翻訳を生成および送信することで行うことができる。そうするために、Ｇｅｏｒｇｅは、メッセージを翻訳ボックス５５０のテキストボックス８２０にタイプして、「送信（Ｓｅｎｄ）」ボタン８３０を押す。テキストは送信され、翻訳サービスによって翻訳され、次いでその翻訳が接続相手に送信される。各翻訳サービスは双方向の翻訳を提供することを想定されておらず、図８の例で必要とされる手動翻訳は、前の（フランス語から英語の）自動翻訳と異なる方向（例えば、英語からフランス語）であるため、翻訳ボックス５５０を使用して実施される翻訳は、プロセス７００で使用されたサービスと異なる翻訳サービスを利用することができる。別の実装では、追加の「翻訳（Ｔｒａｎｓｌａｔｅ）」ボタンが翻訳ボックス５５０に統合され、これにより、翻訳をユーザの接続相手に即座に送信せずに、テキストを翻訳サービスに送信して翻訳することが可能となる。
【００３６】
図９は、翻訳ボックス５５０の使用により手動で翻訳され送信されたメッセージの例を示す。本例では、英語のメッセージ「Ｉ‘ｍ  ｇｒｅａｔ．Ｈｏｗ  ａｒｅ  ｙｏｕ？」は、翻訳サービスに送信され、フランス語のメッセージ「Ｊｅ  ｓｕｉｓ  ｇｒａｎｄ．Ｃｏｍｍｅｎｔ  ａｌｌｅｚ−ｖｏｕｓ？」に翻訳されて、両方のメッセージのテキストが、結合メッセージ９１０としてＧｅｏｒｇｅの接続相手であるＪｅａｎに送信された。さらに、翻訳はまた、翻訳ペイン５００の翻訳ボックス５５０内の「最後の翻訳（ｌａｓｔ  ｔｒａｎｓｌａｔｉｏｎ）」９２０として表示され、その結果、ユーザＧｅｏｒｇｅは最後の手動翻訳が何であったかをビューすることができる。
【００３７】
翻訳が完璧であるとは常には仮定できないため、最後の翻訳をレビューする能力は本技術で特に有用である。内部動作を知らずに異なる（および恐らくテストされていない）翻訳サービスを使用する、本明細書で説明される技術の柔軟性のため、このことはさらに重要である。翻訳メッセージ９１０がＪｅａｎに「Ｉ'ｍ  ｇｒｅａｔ．」よりも「Ｉ'ｍ  ｂｉｇ．」に沿っているといくらか暗示するので、このことは図示される事例に当てはまる。
【００３８】
起こり得る翻訳ミスに対処するため、図示される翻訳ボックスは、様々なツールを利用してユーザ間のさらなる翻訳通信を提供する。このようなツールの１つは、翻訳ボックスの「混同（Ｉ'ｍ  ｃｏｎｆｕｓｅｄ）」ボタン９３０である。この機能性によりユーザは、送信された最後のメッセージを理解しなかったことを示し新規メッセージまたはさらなる説明を求めるメッセージを、自分の接続相手に送信することができる。一実装では、該メッセージは、さらに翻訳する必要がないように、可能性のある各言語に関して予め設定されたメッセージ（ｐｒｅ−ｓｅｔ  ｍｅｓｓａｇｅ）とすることができる。別の実装では、標準的な汎用メッセージを翻訳サービスに送信して、接続相手の言語に翻訳することができる。さらに別の実装では、テキストメッセージではなく理解不足を示す予め設定されたコード（ｐｒｅ−ｓｅｔ  ｃｏｄｅ）をユーザに送信することができる。本実装ではプラグインがメッセージウィンドウの外で該コードを受信して理解不足を示す可能性があるため、これは、２人のユーザが両方とも翻訳プラグインを使用しているときに特に有用であろう。
【００３９】
理解を深めるための別のツールは、「提案（Ｓｕｇｇｅｓｔ）」ボタン９４０であり、このボタンも翻訳ボックス５５０内に表示される。「提案」ボックスによりユーザは、自分がそうあるべきと思っているほど翻訳が良くないことに気づいたときに、差し替え翻訳の提案を提示することができる。従って、ユーザは、そのボックスをクリックして、新規の提案した翻訳をタイプし、そのメッセージをその自分の接続相手に送信することができる。一実装では、この提案をローカルに保存して将来の会話に使用することもできる。別の実装では、そのサービスの将来の性能を改善するために、その提案を現在使用している翻訳サービスに送信することができる。さらに別の実装では、「提案」の機能性を、異なるインスタントメッセージングの実装で使用することができる。
【００４０】
図１０は、翻訳ボックスを通してインスタントメッセージを手動翻訳するために翻訳プラグイン２６０によって実施される例示的なプロセス１０００を図示する。プロセス１０００の様々な実装では、図示されるプロセスのブロックを分割、マージまたは省略することができる。プロセスはブロック１０１０で開始し、ブロック１０１０では、翻訳されるべきメッセージを翻訳ボックス内で受信する。一実装では、これを、ユーザが手動でそのメッセージをそのボックスにタイプすることによって行なわれる。別の実装では、翻訳ボックスは自動的に、現在のメッセージ、またはユーザによりその入力ボックス内で送信された最後のメッセージを保持することができる。次にブロック１０２０で、通常「送信」ボタン８３０がクリックされるため、翻訳は入力メッセージの翻訳の送信表示を受信する。上述のように、一実装において、ブロック１０２０は代わりに、「翻訳」ボタンが表示されてクリックされた場合のように、メッセージを翻訳するが送信はしないという表示を受信することを含むことがある。
【００４１】
プロセスは次いでブロック１０３０に続き、ブロック１０３０では、メッセージを翻訳サービスに送信し、ユーザの言語からそのユーザの接続相手の言語に翻訳する。上述のように、全てのサービスが双方向であると想定されるとは限らないため、このメッセージが送信される翻訳サービスは必ずしもプロセス７００で使用される翻訳サービスと同じではない。次に、ブロック１０４０で、メッセージの翻訳を翻訳サービスから受信する。ブロック１０５０で翻訳を（例えば、翻訳ボックス内で「最後の翻訳」９２０として）表示し、次いで、ブロック１０６０でメッセージを接続相手に送信する。一実装では、「送信」ボタンではなく「翻訳」ボタンがクリックされたために手動翻訳が実施される場合、ブロック１０６０のプロセスは実施されず、ユーザは、自分が翻訳を送信したいかどうかを決定することができる。
【００４２】
上述のツールは、メッセージの直接的な翻訳を必要とするユーザに機能性を提供するが、翻訳プラグインの他の実装は、ユーザに、翻訳を自分で実施することを選択する能力を提供する。従って、ユーザが出来の良くない翻訳を受信した場合、そのユーザはその翻訳内の特定の単語またはフレーズを自己翻訳することを選択することができる。
【００４３】
一実装では、自己翻訳を、翻訳ボックス５５０を用いて翻訳すべき単語またはフレーズを入力することで実施する。この自己翻訳に便利なインタフェースを提示することに加えて、翻訳ボックス５５０は、ユーザに翻訳サービスの選択を提供することにより、ユーザに、大部分の着信メッセージに使用されている翻訳サービスと異なる翻訳サービスを選択することによって翻訳ミスを訂正する機会を認める。一実装では、翻訳プラグインは、着信メッセージに使用されているサービスを表示することがあり、その結果、ユーザは悪い翻訳の場合に異なるサービスを選択することができる。別の実装では、翻訳プラグインによりユーザは、単語またはフレーズを強調し、「翻訳」ボタンまたはコンテキストメニューを通してそのフレーズを翻訳するよう選択することができる。
【００４４】
様々な実装では、本明細書で説明される翻訳技術およびツールを拡張して、標準の語彙の略語または置換（ｓｕｂｓｔｉｔｕｔｉｏｎｓ）を使用する修正インスタントメッセージング言語のコンテキストで翻訳を提供する。例えば、「Ａｒｅ  ｙｏｕ  ｇｏｉｎｇ  ｏｕｔ  ｔｏｎｉｇｈｔ？」のような文は、「Ｒ  Ｕ  ｇｏｉｎｇ  ｏｕｔ  ２ｎｉｔｅ？」と書くことができ、フレーズ「Ｂｅ  ｒｉｇｈｔ  ｂａｃｋ」は「ｂｒｂ」と書く。ユーザはこの修正言語を使用するメッセージングに慣れているが、大部分の翻訳サービスは、入力として標準言語を想定している。従って、実際に、この修正言語を標準言語に訂正して、それにより翻訳用にメッセージを準備することは有用である。
【００４５】
一実装では、訂正には、語彙および／または文字の置換を含むインスタントメッセージング言語の特徴を保持するローカル辞書（ｌｏｃａｌ  ｄｉｃｔｉｏｎａｒｙ）が提供される。これを、ユーザがこれらの言語の特徴を該辞書に入力できるようにすることにより、または予め設定された辞書を使用することにより行うことができる。この実装では、メッセージを接続相手に送信するときに、翻訳プラグインまたは他のインスタントメッセージング翻訳ツールにより、メッセージのテキストをローカル辞書と比較する。メッセージからのテキストが該辞書内の言語構造に対応することが分かると、置換を行ってメッセージを標準言語に準拠させる。次いで該メッセージを、翻訳サービスに転送することができる。
【００４６】
代替的な実装では、ローカルのインスタントメッセージング言語の辞書を保持するのではなく、メッセージを標準言語に準拠させる翻訳サービスを識別することができる。従って、メッセージを翻訳サービスに送信して該メッセージを異なる言語に翻訳する前に、上記のツールは、最初にメッセージを識別されたサービスに送信して該メッセージを標準言語に準拠させ、次いで該メッセージを外国語に翻訳するサービスに送信する。任意のこれらの実装では、ユーザが翻訳前にメッセージを標準言語に準拠させたいときを決定する能力を、そのユーザに提供することができる。
【００４７】
本明細書で説明される翻訳技術およびツールによって提供される別のツールは、スペルミスをした単語を対処することである。現在、機械翻訳は、スペルミスをした単語を、翻訳前に検出できる段階にはまだ到達していない。例えばスペルミスのためサービスが翻訳を決定できない単語は、通常翻訳されずに単にパススルーされる。このパススルーはインスタントメッセージングの翻訳では望ましくないため、本明細書で説明される技術の様々な実装は、メッセージを翻訳用に送信する時点で自動的にスペルの訂正を実施することにより、メッセージを翻訳用に準備する。一実装では、全てのスペルミスを自動的に訂正するわけではく、ツールは、よくスペルミスをされる単語、または或る訂正が他の訂正よりも非常に可能性の高い単語のみを訂正することができる。さらに別の実装では、ユーザに推奨スペルを提供することができ、ユーザはメッセージを翻訳サービスに送信する前にその１つを選択することができる。
【００４８】
スペル訂正ツールは可能な限り完全な翻訳を提供するが、一部の状況では、ユーザは特定の単語またはフレーズが翻訳されないことを望むことがある。これは、ユーザが接続相手に単語またはフレーズをその元の言語で見てほしい場合、ユーザが特定の特殊用語（ｊａｒｇｏｎ）または翻訳されない正確な名前を使用している場合、あるいは、ユーザが、或る単語がそのユーザの言語で相互に理解され、該単語を翻訳することが混同を引き起こす可能性があることを知っている場合に、望ましい可能性がある。一実装では、上記の技術およびツールによりユーザは、例えばクエスチョンマークなどの、その単語またはフレーズが翻訳されるべきでないことを示す特定の記号を有する単語またはフレーズを区別することができる。別の実装では、ユーザは単語またはフレーズを選択して、次いでコンテキストメニューまたはボタンベースのツールを使用して、その単語またはフレーズが翻訳されないことを示すことができる。
【００４９】
翻訳技術は、多数の方法を利用して特定の単語またはフレーズの翻訳を防止することができる。一実装では、本明細書で説明される翻訳技術は、メッセージから特定の単語またはフレーズを、そのメッセージが翻訳サービスに送信される前に除去することができる。単語またはフレーズを、次いで接続相手のインスタントメッセージングプログラムに直接送信し、そこで該単語またはフレーズを、翻訳したメッセージと再結合して接続相手に提示することができる。別の実装では、単語またはフレーズを除去した後、メッセージ内の残りの単語を送信して翻訳し、次いで元のユーザのインスタントメッセージングプログラムに送信して、そこでそのメッセージを再結合して接続相手に送信する。さらに別の実装では、特定の単語またはフレーズを、翻訳サービスがそれらを翻訳できないように修正する。この実装では、翻訳サービスは翻訳できない単語をパススルーする可能性が高いため、これらの単語およびフレーズを無視し、次いで接続相手のインスタントメッセージングプログラムによりその元の形に修正し直すことができる。本実装は、ある程度単語の意味を保存し、ユーザ側で翻訳を提供するスキームおよび接続相手側で翻訳を提供するスキームの両方で使用可能である観点から望ましい。
【００５０】
４．コンピューティング環境
上述のインスタントメッセージング翻訳技術を、少数の一般的な例として、様々なフォームファクタ（パーソナル、ワークステーション、サーバ、ハンドヘルド、ラップトップ、タブレット、または他のモバイル）のコンピュータ、分散コンピューティングネットワーク、およびウェブサービスを含む、任意の様々なコンピューティング装置および環境で実施することができる。該翻訳技術を、図１１に示されるようなハードウェア回路、ならびにコンピュータまたは他のコンピューティング環境内で実行されるソフトウェアで実装することができる。
【００５１】
図１１は、説明した実施形態の実装に適したコンピューティング環境（１１００）の一般的な例を図示する。本発明を多様な汎用または専用のコンピューティング環境で実装することができるため、コンピューティング環境（１１００）は、本発明の使用または機能の範囲に関するいかなる限定を提示するようにも意図されていない。
【００５２】
図１１を参照すると、コンピューティング環境（１１００）には、少なくとも１つの処理ユニット（１１１０）、およびメモリ（１１２０）が含まれる。図１１では、この最も基本的な構成（１１３０）が点線内に含まれる。処理ユニット（１１１０）は、コンピュータ実行可能な命令を実行し、実プロセッサまたは仮想プロセッサとすることができる。マルチ処理システムでは、複数の処理ユニットがコンピュータ実行可能命令を実行して処理能力を高める。メモリ（１１２０）は、揮発性メモリ（例えばレジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなど）、またはこの２つの何らかの組合せとすることができる。メモリ（１１２０）は、説明した翻訳技術を実装するソフトウェア（１１８０）を格納する。ＧＰＵ（１１１５）を、単一ボード上で処理ユニット１１１０と統合することができ、または別個に備えることができる。
【００５３】
コンピューティング環境は追加の特徴を有することがある。例えば、コンピューティング環境（１１００）は、記憶装置（１１４０）、１つまたは複数の入力装置（１１５０）、１つまたは複数の出力装置（１１６０）、および１つまたは複数の通信接続（１１７０）を含む。バス、コントローラ、またはネットワークのような相互接続メカニズム（図示せず）は、コンピューティング環境（１１００）のコンポーネントを相互接続する。典型的に、オペレーティングシステムソフトウェア（図示せず）は、コンピューティング環境（１１００）内で実行される他のソフトウェアに動作環境を提供し、コンピューティング環境（１１００）のコンポーネントのアクティビティを調整する。
【００５４】
記憶装置（１１４０）は取り外し可能または取り外し不能とすることができ、磁気ディスク、磁気テープまたはカセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、あるいは情報の格納に使用可能でありコンピューティング環境（１１００）内でアクセス可能な任意の他の媒体を含む。記憶装置（１１４０）は、説明した翻訳技術を実装するソフトウエア（１１８０）に関する命令を格納する。
【００５５】
入力装置（１１５０）は、キーボード、マウス、ペン、またはトラックボールなどのタッチ入力装置、音声入力装置、スキャン装置、または入力をコンピューティング環境（１１００）に提供する別の装置とすることができる。オーディオに関して、入力装置（１１５０）は、オーディオ入力をアナログもしくはデジタル形式で受け入れるサウンドカードまたは同様の装置、あるいはオーディオサンプルをコンピューティング環境に提供するＣＤ−ＲＯＭリーダとすることができる。出力装置（１１６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、またはコンピューティング環境（１１００）からの出力を提供する別の装置とすることができる。
【００５６】
通信接続（１０７０）は、通信媒体上で別のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮されたオーディオまたはビデオ情報、または他のデータなどの情報を変調データ信号で伝達する。変調データ信号は、１つまたは複数のその特性の集合を有するかまたは信号内の情報をエンコードする方法で変更された信号である。限定ではなく例として、通信媒体は、電気、光、ＲＦ、赤外線、音、または他のキャリアで実装された有線または無線技術を含む。
【００５７】
本明細書の翻訳技術を、コンピュータ読み取り可能な媒体の一般的な文脈で説明することができる。コンピュータ読み取り可能な媒体は、コンピューティング環境内でアクセス可能な任意の利用可能な媒体である。限定ではなく例として、コンピューティング環境（１１００）では、コンピュータ読み取り可能な媒体は、メモリ（１１２０）、記憶装置（１１４０）、通信媒体、および上記のいずれかの組合せを含む。
【００５８】
本明細書の翻訳技術を、プログラムモジュールに含まれるコンピュータ実行可能命令などの、対象の実プロセッサまたは仮想プロセッサにおいてコンピューティング環境内で実行されているコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実施するかまたは特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などが含まれる。プログラムモジュールの機能性を、様々な実施形態で望ましいようにプログラムモジュール間で結合または分離することができる。プログラムモジュールのコンピュータ実行可能命令を、ローカルまたは分散コンピューティング環境内で実行することができる。
【００５９】
提示のために、詳細な説明では「決定する（ｄｅｔｅｒｍｉｎｅ）」、「生成する（ｃｒｅａｔｅ）」、「挿入する（ｉｎｔｅｒｐｏｌａｔｅ）」、および「計算する（ｃｏｍｐｕｔｅ）」などの用語を使用して、コンピューティング環境内のコンピュータオペレーションを説明している。これらの用語は、コンピュータによって実行されるオペレーションの高レベルな抽象化であって、人間によって実行されるアクトと混同されるべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実装に応じて変化する。
【００６０】
本明細書で説明される主題の多くのあり得る変形を考慮して、我々は添付の特許請求の範囲およびその等価物の範囲内にある上記実施形態の全てを本発明として特許請求する。
【図面の簡単な説明】
【００６１】
【図１】インスタントメッセージングコンピュータと翻訳ツールとの間のネットワーク上での例示的なやりとりの図である。
【図２】翻訳プラグインを有する例示のインスタントメッセージングプログラムと、例示の翻訳サーバと、例示の翻訳サービスとの例示的なコンポーネント、およびそれらの間のやりとりを示すブロック図である。
【図３】図２の翻訳プラグインを起動する前の例示的なインスタントメッセージングウィンドウの図である。
【図４】図２の翻訳プラグインを起動するためのインスタントメッセージングプログラムの例示的なプロセスを示すフローチャートである。
【図５】図２の翻訳プラグインを使用する例示的なインスタントメッセージングウィンドウの図である。
【図６】メッセージを翻訳する準備をするための翻訳プラグインの例示的なプロセスを示すフローチャートである。
【図７】図２のインスタントメッセージングプログラムによって受信されるメッセージを翻訳するための翻訳プラグインの例示的なプロセスを示すフローチャートである。
【図８】図２の翻訳プラグイン内の翻訳ボックスを使用する例示的なインスタントメッセージングウィンドウの図である。
【図９】メッセージの手動翻訳に使用されている図８の翻訳ボックスを示す例示的なインスタントメッセージングウィンドウの図である。
【図１０】翻訳ボックスを通してメッセージを翻訳するための翻訳プラグインの例示的なプロセスを示すフローチャートである。
【図１１】図２の翻訳プラグインの実装に適した例示的なコンピューティング環境のブロック図である。
【図１】
2009527811.tif 000003
【図２】
2009527811.tif 000004
【図３】
2009527811.tif 000005
【図４】
2009527811.tif 000006
【図５】
2009527811.tif 000007
【図６】
2009527811.tif 000008
【図７】
2009527811.tif 000009
【図８】
2009527811.tif 000010
【図９】
2009527811.tif 000011
【図１０】
2009527811.tif 000012
【図１１】
2009527811.tif 000013
【国際調査報告】
2009527811.tif 000014
2009527811.tif 000015