2012-09-21 2 views
10

Google 번역을 구현하려고하는 자연어 처리 프로그램에서 작업 중입니다. 구글이 국회에서 번역 구현하는 방법을 찾고있는 동안 나는 다음과 같은 코드 세그먼트를 건너 왔어요 : 나는 C#을 비교적 새로운 오전Google 번역 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; 
} 

, 나는 주로

public static string Translate(string input, string languagePair, Encoding encoding) 
에 대한 암시 적 매개 변수에 대한 I 불분명 자바를 사용하고있다 (링크 : 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); 

무엇을 내가해야 내가 인코더에 대한 C#을 API에서 볼 때

, 같은 인코딩 클래스를 사용하는 방법에 대한 예는 있었다 "How are you?"와 같은 문구를 Google 번역을 사용하여 스페인어로 번역하려면 내 매개 변수를 입력하십시오. 이 문제에 대한 도움을 주시면 대단히 감사하겠습니다!

+2

시도는 '번역 ("어떻게 당신은", "ENES"System.Text.Encoding.UTF8)'. 그러나 나는 번역을위한 Google의 새로운 UI 이전 버전이라고 생각하기 때문에이 스 니펫으로 결과를 긁을 수 있는지 여부를 알지 못합니다. –

+0

키 쌍은 "|"으로 분리해야합니다. –

+1

@DarrenDavies 더 이상 내 의견을 수정할 수 없지만 괜찮습니다. –

답변

4

이 작동합니다 :

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

고맙습니다. 지금 해보겠습니다. –

+0

두 사람 모두 "en | es"대신 "es | en"이있는 것이 재미있는가요? –