2012-09-21 21 views
10

Estoy trabajando en un programa de procesamiento de lenguaje natural en el que estoy tratando de implementar Google Translate. Si bien en busca de maneras de implementar Google traduce en la Asamblea me encontré con el siguiente segmento de código:Google Translate C#

public static string Translate(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); 
    } 

    HtmlDocument doc = new HtmlDocument(); 
    doc.LoadHtml(result); 
    return doc.DocumentNode.SelectSingleNode("//textarea[@name='utrans']").InnerText; 
} 

Soy relativamente nuevo en C#, he utilizado principalmente en Java, y poco clara de los parámetros implícitos para

public static string Translate(string input, string languagePair, Encoding encoding) 

Cuando miro en el C# API para Encoder, hay ejemplos en cuanto a cómo utilizar la clase de codificación: (enlace: http://msdn.microsoft.com/en-us/library/h5y3703w(v=vs.71).aspx)

Byte[] thirdcharNoFlush = new Byte[encoder.GetByteCount(chars, 2, 1, bFlushState)]; 
    encoder.GetBytes(chars, 2, 1, thirdcharNoFlush, 0, bFlushState); 

¿Qué debo entrada en mis parámetros para traducir una frase, como "¿Cómo estás?" al español usando Google Translate. ¡Cualquier ayuda en este asunto sería muy apreciada!

+2

intento 'Traducir ("cómo estás", "enes", System.Text.Encoding.UTF8)'. Sin embargo, no sé si podrá raspar el resultado con este fragmento, ya que creo que es anterior a la nueva interfaz de usuario de Google para traducir. –

+0

El par de llaves debe dividirse con un "|". –

+1

@DarrenDavies No puedo editar más mi comentario, pero tiene razón –

Respuesta

4

Esto debería funcionar:

var result = Translate("How are you?", "es|en", Encoding.UTF8); 
+0

¡Gracias, lo intentaré ahora! –

+0

¿Alguien más encuentra interesante que ambas respuestas tengan "es | en" en lugar de "en | es"? –

Cuestiones relacionadas