Pull to refresh

Google Translate Non Ajax API

Reading time1 min
Views1.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:
Total votes 6: ↑2 and ↓4-2
Comments5

Articles