quickstart how google chrome c# google-translate

how - Usar Google Translate en C#



translate c# (6)

Tengo que traducir algunos textos con el servicio de traducción de Google. Todo el código que he encontrado no funciona. Creo que porque han cambiado su servicio. Si alguien tiene código de trabajo, estaría muy contento.


Cuando utilicé el código anterior. Me muestra el texto traducido como un signo de interrogación como (???????). Luego convierto de WebClient a HttpClient y luego obtuve un resultado preciso. Así puede usar código como este.

public static string TranslateText( string input, string languagePair) { string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair); HttpClient httpClient = new HttpClient(); string result = httpClient.GetStringAsync(url).Result; result = result.Substring(result.IndexOf("<span title=/"") + "<span title=/"".Length); result = result.Substring(result.IndexOf(">") + 1); result = result.Substring(0, result.IndexOf("</span>")); return result.Trim(); }

Luego llamas a una función como. Pones las primeras dos letras de cualquier par de idiomas.

Del inglés (en) al urdu (ur).

TranslateText(line, "en|ur")


El motivo por el que la primera muestra de código no funciona es porque el diseño de la página ha cambiado. Según la advertencia en esa página: "La cadena traducida es captada por el RegEx cerca de la parte inferior. Esto, por supuesto, podría cambiar, y debes mantenerlo actualizado". Creo que esto debería funcionar por ahora, al menos hasta que cambien la página nuevamente.

public string TranslateText(string input, string languagePair) { string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair); WebClient webClient = new WebClient(); webClient.Encoding = System.Text.Encoding.UTF8; string result = webClient.DownloadString(url); result = result.Substring(result.IndexOf("<span title=/"") + "<span title=/"".Length); result = result.Substring(result.IndexOf(">") + 1); result = result.Substring(0, result.IndexOf("</span>")); return result.Trim(); }


Google Translate Kit, una biblioteca de código abierto http://ggltranslate.codeplex.com/

Translator gt = new Translator(); /*using cache*/ DemoWriter dw = new DemoWriter(); gt.KeyGen = new SimpleKeyGen(); gt.CacheManager = new SimleCacheManager(); gt.Writer = dw; Translator.TranslatedPost post = gt.GetTranslatedPost("Hello world", LanguageConst.ENGLISH, LanguageConst.CHINESE); Translator.TranslatedPost post2 = gt.GetTranslatedPost("I''m Jeff", LanguageConst.ENGLISH, LanguageConst.CHINESE); this.result.InnerHtml = "<p>" + post.text +post2.text+ "</p>"; dw.WriteToFile();


Google cerrará la API de traducción para fines de 2011, por lo que debería considerar las alternativas.