通过Google翻译进行的字符串翻译已停止工作

时间:2018-12-12 21:17:47

标签: c# google-translate system.net

前一段时间,我使用一种简单的方法使用Google Translate(没有云翻译API)将字典从一种语言翻译成另一种语言。它看起来类似于:

private static Dictionary<string, string> StringTranslator(Dictionary<string, string> input)
{
    var output = new Dictionary<string, string>();
    var LanguagePair = "en|fr"; //let's take English to French as an example

    using (var web = new WebClient())
    {
        foreach (var pair in input)
        {
            var url = string.Format(@"http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", pair.Value, LanguagePair);

            var w = web.DownloadString(url);

            w = w.Substring(w.IndexOf(@"<span title="">") + @"<span title="">".Length);
            w = w.Substring(w.IndexOf(">") + 1);
            w = w.Substring(0, w.IndexOf("</span>"));

            output.Add(pair.Key, w.Trim());
        }
    }

    return output;
}

在此示例中,词典的键将是字符串名称(此处不相关),而value是要翻译的文本。 直到最近Google更改了Translator的布局(我认为)后,该代码才能正常工作。现在,输出始终是完整下载的网页,而不仅仅是翻译的文本。调试显示

<span title="">
在下载的页面上找不到

,翻译的文本也找不到。有没有办法解决这个问题,或者有另一种实现这种自动翻译的方法?干杯。

编辑:提供更多上下文 使用有问题的方法:

private static void Main()
{
    var strings = new Dictionary<string, string>()
        {
            {"str1", "one" },
            {"str2", "two" },
            { "strTest", "This is just nothing but a test message that will soon be translated into another language." }
        };

    var test = StringTranslator(strings);
}

字典中的所有输出字符串看起来都与此类似:https://pastebin.com/h4ahMRCb(相当长且格式不正确,但这就是我得到它时的样子)

0 个答案:

没有答案