在C#中使用Google翻译

Max*_*rai 54 c# google-translate

我必须使用Google的翻译服务翻译一些文字.我发现的所有代码都不起作用.我想因为他们改变了他们的服务.如果有人有工作代码,我会很高兴.

Sha*_*mer 22

第一个代码示例不起作用的原因是因为页面布局发生了变化.根据该页面上的警告:"翻译的字符串由靠近底部的RegEx提取.这当然可以改变,你必须保持最新状态." 我认为这应该适用于现在,至少在他们再次更改页面之前.


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();
}

  • @Naresh:将其传递为:en | hi .en(对于英语)和hi(对于印地语)。 (2认同)
  • 更新:这个技巧不再起作用了 (2认同)

Yas*_*asi 7

我发现此代码对我有用:

public String Translate(String word)
{
    var toLanguage = "en";//English
    var fromLanguage = "de";//Deutsch
    var url = $"https://translate.googleapis.com/translate_a/single?client=gtx&sl={fromLanguage}&tl={toLanguage}&dt=t&q={HttpUtility.UrlEncode(word)}";
    var webClient = new WebClient
    {
        Encoding = System.Text.Encoding.UTF8
    };
    var result = webClient.DownloadString(url);
    try
    {
        result = result.Substring(4, result.IndexOf("\"", 4, StringComparison.Ordinal) - 4);
        return result;
    }
    catch
    {
        return "Error";
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然并不完全完美,但该 API 在大量使用后会带来 503 错误。 (2认同)