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, "(?<=
)(.*?)(?=
)"
); 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

Martin H. Normark

Product and UX Hacker. Web and iOS developer.

Subscribe to Martin Normark's Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!