Pull to refresh

Google Translate Non Ajax API

Reading time 1 min
Views 1.7K
Все знают сервис Google Translate. Он переводит достаточно неплохо, ну, по крайней мере, так что понять можно.
Так не было ли ни у кого желания использовать возможности переводчика Гугл в своих целях?


Для начала я попробовал решить все это методом adw0rd'а. решил быстро, но много текста не проходило. Все было как он и написал. Не более 2 кб текста за раз. Нет, на самом деле это вполне приемлимо, но хотелось бы больше. Хотя бы раз в 16. И тогда я пошел методом Старого Мавра. Отправка заппроса методом ПОСТ.
Признаюсь, пришлось помучаться… Около минут 2-3.

И вот что получилось:
QString translate( QString text, QString from, QString to )
{
    QString url = QString("/translate_a/t?client=t&sl=" + from + "&tl=" + to);
    QHttpRequestHeader header = QHttpRequestHeader("POST", url, 1, 1);
        header.setValue("Host", "www.google.com");
        header.setValue("User-Agent", "Mozilla/5.0");
        header.setValue("Accept-Encoding", "deflate");
        header.setContentLength(text.length());
        header.setValue("Connection", "Close");

    QByteArray ba("text=");
        ba.append(text);

    QHttp http;
        http.setHost("www.google.com");
        http.request(header,ba);

    return QString(http.readAll());
}


Ну а если, вдруг, хотите скачать в виде проекта, который можно скомпилировать в dll и .framework, то вот ссылка:
ASTranslator (sources)

PS кросспост из моего блога: Google Translate Non Ajax API
Tags:
Hubs:
-2
Comments 5
Comments Comments 5

Articles