Перестал работать перевод строк через Google Translate - PullRequest
0 голосов
/ 13 декабря 2018

Некоторое время назад я использовал простой метод перевода словаря с одного языка на другой с помощью 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;
}

В этом примере ключом словаря будет имя строки (здесь не имеет значения), а значением - текст для перевода.Код работал отлично до самого недавнего времени, когда 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 (довольно длинный иплохо отформатирован, но вот как это выглядит, когда я его получаю)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...