Translate text in C#, using Google Translate

*** This post is no longer up-to-date. Take a look at my new post, revisiting how to tranlate text in C# using Google Translate ***

Sometimes, it would be great to be able to translate a text from e.g. English to Danish directly from C#. This could be useful when you want to translate a Resource file into another language.

Google Translate is awesome. There’s also Windows Live Translator, but Microsoft are far behind Google (also) in this game.

Code:

using System; using System.Net; using System.Text; using System.Text.RegularExpressions; namespace Utilities { publicstaticclass Translator { ///

/// Translates the text./// /// The input./// The language pair./// publicstaticstring TranslateText(string input, string languagePair) { return TranslateText(input, languagePair, System.Text.Encoding.UTF7); } /// /// Translate Text using Google Translate/// /// The string you want translated/// 2 letter Language Pair, delimited by "|". /// e.g. "en|da" language pair means to translate from English to Danish/// The encoding./// Translated to Stringpublicstaticstring TranslateText(string input, string languagePair, Encoding encoding) { string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair); string result = String.Empty; using (WebClient webClient = new WebClient()) { webClient.Encoding = encoding; result = webClient.DownloadString(url); } Match m = Regex.Match(result, "(?<=<div id=result_box dir="ltr">)(.*?)(?=
)"); if (m.Success) result = m.Value; return result; } } }

The translated string is fetched by the RegEx close to the bottom. This could of course change, and you have to keep it up to date.

Professional translations – even via API!
translation agency