Machine Translation Using The Microsoft Translator

When Live was first released it's true to say that I was disappointed because all other competitive search engines had online translation tools and these were missing from Live. I think it is fair to say that Microsoft has delivered now. The basic online translator, Microsoft Translator, has been available for some time now but at MIX 09 Microsoft announced a widget and various APIs and tools that build on the translation engine and open up machine translation to a much broader range of applications. This post describes what's available and how you can get started.

Microsoft Translator provides the basic online interactive translation facility like Google, Alta Vista and everyone else. Translation is from English to 13 languages and vice versa (there are no language pairs that are not either to or from English). The Microsoft Translator site also accepts URL parameters that allow you to tell it to automatically translate a site:-

The "lp" parameter is the language pair ("en_fr" specifies that the translation is from English to French), the "lo" parameter is the page layout of the translation result ("TP" specifies that the page should be shown as translated with the original language appearing as tooltips) and the "a" parameter is the URL to translate. This facility is very useful for being able to send links of translated pages.

The first major announcement at MIX was the Translator Widget. The translator widget is a snippet of HTML and JavaScript that you add to your page that provides translation facilities for your page. You can try it out on this site (see the blue "Microsoft Translator" box on the top left hand side of this page). You can also see it working on To add one of these to your site you need to request a widget code from (you can't copy the HTML/JavaScript from a site that already has the widget because the code only works for the site it was generated for).

The Translator Widget is certainly a great starting point but you can provide finer control over the translation process using the Translator AJAX API. This allows you to call into the translation API to specify what parts of the page should be translated and how. To use the AJAX API you need to request a (different) code from

The area that is of greatest interest to me, however, is the HTTP REST API. This provides programmatic access to the Microsoft Translator API from any code that can make HTTP calls. As such it is perfect for utilities like the Resource Administrator on that translates resx files. Again you need to request an "app id" to use this API (this is a different code from the widget code and the AJAX API code) and you can request one from Armed with your AppId you can use an HttpWebRequest to execute POST requests like this:-

where the content is the text that you want to translate.

The following resources will help you get up to speed on all of these:-

As always you should read the terms of use (the terms of use for the REST API are here) but in general they say that these are available for non-commercial use. Commercial licences are available by contacting Microsoft.

In addition Microsoft has a growing collection of implementations of this technology:-

Others have said that 2009 will see the coming of age of machine translation. These advances certainly move that goal further forwards.

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: guysmithferrier
Posted on: Saturday, April 18, 2009 at 1:56 PM
Categories: Internationalization | .NET Internationalization Book
Actions: E-mail | Kick it! | DZone it! |
Post Information: Permalink | Comments (9) | Post RSSRSS comment feed

Related posts


Bryan Avery gb

Sunday, April 26, 2009 1:16 AM

Bryan Avery

Nice blog, I still think it is a long way away from true Machine Translation, but it is a good start, and good for people who need a quick fix or provide a technical solution to something only us humans can truly solve

GuySmithFerrier gb

Sunday, April 26, 2009 4:17 AM



Yes, absolutely, but the REST API is a considerably more reliable interface that screen grabbing web pages so I am very pleased.


Jose gb

Monday, April 27, 2009 2:28 PM


Very interesting.

I tried translating your page to Portuguese and it was nearly non-sensical in places but still understandable. The major problems were due to word groups being in the wrong order which will happen if you translate on a word by word basis instead of by sentence.

On the other hand I translated my website's home page also from English to Portuguese and the result was very reasonable. I guess it says something about the structure of my site's English Smile

GuySmithFerrier gb

Monday, April 27, 2009 2:41 PM


Or my poor English grammar...

Chief Jollo de

Monday, May 04, 2009 12:01 AM

Chief Jollo

Our website" rel="nofollow"> compares several machine translators including Google Translate, Yahoo Babelfish and Microsoft. According to community votes on the translation results, Google Translate has the highest accuracy but humans are still the best translators for complex phrases.

To see the results please visit" rel="nofollow">, enter a text to translate and view the engine rankings on the result page.

Kampanye Damai Pemilu Indonesia 2009 us

Wednesday, May 06, 2009 12:12 AM

Kampanye Damai Pemilu Indonesia 2009

thanks for this usefull informations.. now i find what i want to know.. thanks a lot..

kasino in

Tuesday, August 11, 2009 10:23 PM


Nice blog, I still think it is a long way away from true Machine Translation, but it is a good start, and good for people who need a quick fix or provide a technical solution to something only us humans can truly solve

Tuesday, October 06, 2009 1:14 AM


Pingback from

Automatically Translating resx Files Using Microsoft Translator

Tuesday, May 25, 2010 10:14 PM


Pingback from

Lw200 Cheap Illuminator, Lw200 Part 2002 Splash Shield Saturn L300