Приколы анекдоты

Google Translate Non Ajax API

февраля 22, 2009 · 11:43 дп @ Alex Snet  -  20 комментариев

В ответ adw0rd‘у и Мавру. Хоть и с сильным запазданием, но все же.

Все знают сервис 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)

Progg it

Тэги: , , , ,

А еще я писал про:
Протокол Google Translate (Qt C++)
Google Translate (Нужна помощь)
Простая работа с HTTP на PHP
Кратенько о том, как узнавать PR и CY

20 комментариев → “Google Translate Non Ajax API”


  1. Tild

    22 Фев, 2009

    Вопрос, как решается проблема того, что в блоках из 2кб текста будет разрезано слово на двое?

    Ответить

  2. Alex Snet

    22 Фев, 2009

    @Tild, с использованием данного метода эта проблема отсутствует. Тут обрабатывается блок до 32 килобайт разом.
    А проблема 2кб блоков может быть решена лишь одним способом. Приходится в теле своей прогрммы резать текст по редложению и следить что бы оно не было больше 2кб. И так, по кусочкм, слать это дело Гугло Транслятору.

    Ответить

  3. CTAPbIu_MABP

    22 Фев, 2009

    на много красивее чем на php…

    Ответить

  4. adw0rd

    22 Фев, 2009

    Добавил в Линки :)

    Ответить

  5. Ivan Lytkin

    13 Мар, 2009

    Только вот тёрмсы гугла это нарушает вроде как.

    Ответить

  6. Alex Snet

    13 Мар, 2009

    @Ivan Lytkin, Google предоставляет открытое API для разработчиков. Какие тогда “термсы” мы нарушаем? Мы же не скрываем, что переводим гуглом. Код открытый. Ничего не нарушили.

    Ответить

  7. Ivan Lytkin

    16 Мар, 2009

    есть ограничения на размер реквеста

    Ответить

  8. Lupascu Ion

    19 Мар, 2009

    Как насчет кодировки utf-8? правильно переводит? на пример с русского на французского!
    к стати… не нашел как отправить правильные перевод к google suggestion?

    Ответить

  9. Alex Snet

    19 Мар, 2009

    @Lupascu Ion, да, UTF-8 работает хорошо. По поводу сагеста пока нет такой возможности, но в новой версии она должна появится.

    Ответить

  10. Alex Snet

    19 Мар, 2009

    @Ivan Lytkin , да, до 32 килобайт текста за раз. Это 32 тысячи символов.

    Ответить

  11. Lupascu Ion

    21 Мар, 2009

    @Alex Snet
    Думаю что проблема не в сокет а в урл адрес!
    смотри коменты откуда увидел php скрипт! http://mabp.kiev.ua/2008/08/28/google_translate/

    Ответить

  12. Alex Snet

    22 Мар, 2009

    @Lupascu Ion, а какая именно у Вас проблема-то?

    Ответить

  13. CTAPbIu_MABP

    24 Мар, 2009

    у него навалом проблем можешь почитать у меня в тойже теме))) я вот думал куда он делся, а он к тебе пошел :)

    Ответить

  14. Alex Snet

    24 Мар, 2009

    @CTAPbIu_MABP, видать, не решил он своих проблем… Но если бы он их толком и по пунктам описал.. Я думаю, я бы на них ответил ;)

    Ответить

  15. CTAPbIu_MABP

    26 Мар, 2009

    ты сам то работал с http://translate.google.com/translate_suggestion
    а то он все время отвечает 200 ОК что бы я туда не отправил
    есть какие-то данные об этом интерфейсе?

    Ответить

  16. Lupascu Ion

    19 мая, 2009

    Не решил я свои проблемы…!
    Спасибо вам за помощь!
    Хотел вернуться на старую тему… как можно отправить исправленный переведенный текст к гугл?

    Кто то работал с http://translate.google.com/translate_suggestion ?

    Ответить

  17. Lupascu Ion

    19 мая, 2009

    @CTAPbIu_MABP
    После тестов http://translate.google.com/translate_suggestion в резугьтат ничего не получаю. Это правильно?

    Ответить

  18. Ion Lupascu

    18 Ноя, 2009

    Привет,

    Вот на днях перестал работать метод get по адресу

    http://www.google.com/translate_a/t?client=t

    Может только для меня не работает?

    Знает ктонибудь какой новый адрес?

    Заранее спасибо!

    Ответить

  19. mihdan

    25 Ноя, 2009

    Написал я себе плагин под wordpress’овскую админку для перевода названия статьи через Google Translate. Так вот – на днях он меня стал банить, выдавая в ответ предупреждения. Реализация была на php+cURL+POST.

    Что можете посоветовать? Есть одна только идея – через проксю скрипт гонять.

    Ответить

  20. Ion Lupascu

    25 Ноя, 2009

    Сматри твой алгоритм парсинга проведенного текста. Google менял формат ответа постинга. Остольное все нормально!

    Ответить

Оставить свой след.

1 2 3 4 5 6 7 8 9 10