Microsoft Translator APIは、RESTベースとSOAPベースのエンドポイントを使った翻訳サービスを開発者に提供する。 オープンソースプロジェクトのBing (Microsoft) Translator .NETは、これらのAPIを拡張メソッドを使ってラップしており、.NETアプリケーションで翻訳機能を組み込むのが容易になっている。
Microsoft Translator APIは以下のように多くの機能を提供している。
-
言語の検出
-
ある言語を他の言語へ翻訳
-
選択された言語のテキストをスピーチに変換
-
崩れたテキストを一連のセンテンスにするなどの再整形
これらの機能を.NETアプリケーションから使用するためには、直感的じゃなく、非常に上長なHttpWebRequestオブジェクトを使用して呼び出す必要があった。Bing .NET Extensions library は、これらの呼び出しを大幅に簡単にする.NETオブジェクトに拡張メソッドを提供する。
たとえば、テキスト入力を英語からアラビア語に翻訳する場合、以下のように記述しなくてはならなかった。
string uri = http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=+ appId + "&text=" + tobetranslated + "&from=" + fromLang + "&to=Arabic”;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
WebResponse response = request.GetResponse();
Stream strm = response.GetResponseStream();
StreamReader reader = new System.IO.StreamReader(strm);
translatedText = reader.ReadToEnd();
Translator .NET libraryを使った場合、この代わりに以下のように書くだけである。
translatedtext = tobetranslated.BingTranslate(BingLanguage.English,BingLanguage.Arabic)
実際には、言語検出機能を使って、ソース言語を指定しないこともできる。
translatedText = tobetranslated.BingTranslate(BingLanguage.Arabic);
これは上のリストにあったBing Translation APIの機能を使った他の拡張メソッドである。これらの機能の使い方に関する完全な解説は、Mohammed氏のブログ投稿で言及されている。
Microsoft Translator APIについて、より詳細に知りたい場合は、開発者ドキュメントを参考にして欲しい。
拡張メソッドは、.NET Framework 3.0で追加された、新しい継承型や、元の型を変更して再コンパイルすることなく、既存の型にメソッドを追加することができる.NETの機能である。