В ответ 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)





Tild
22 Фев, 2009
Вопрос, как решается проблема того, что в блоках из 2кб текста будет разрезано слово на двое?
Alex Snet
22 Фев, 2009
@Tild, с использованием данного метода эта проблема отсутствует. Тут обрабатывается блок до 32 килобайт разом.
А проблема 2кб блоков может быть решена лишь одним способом. Приходится в теле своей прогрммы резать текст по редложению и следить что бы оно не было больше 2кб. И так, по кусочкм, слать это дело Гугло Транслятору.
CTAPbIu_MABP
22 Фев, 2009
на много красивее чем на php…
adw0rd
22 Фев, 2009
Добавил в Линки
Ivan Lytkin
13 Мар, 2009
Только вот тёрмсы гугла это нарушает вроде как.
Alex Snet
13 Мар, 2009
@Ivan Lytkin, Google предоставляет открытое API для разработчиков. Какие тогда “термсы” мы нарушаем? Мы же не скрываем, что переводим гуглом. Код открытый. Ничего не нарушили.
Ivan Lytkin
16 Мар, 2009
есть ограничения на размер реквеста
Lupascu Ion
19 Мар, 2009
Как насчет кодировки utf-8? правильно переводит? на пример с русского на французского!
к стати… не нашел как отправить правильные перевод к google suggestion?
Alex Snet
19 Мар, 2009
@Lupascu Ion, да, UTF-8 работает хорошо. По поводу сагеста пока нет такой возможности, но в новой версии она должна появится.
Alex Snet
19 Мар, 2009
@Ivan Lytkin , да, до 32 килобайт текста за раз. Это 32 тысячи символов.
Lupascu Ion
21 Мар, 2009
@Alex Snet
Думаю что проблема не в сокет а в урл адрес!
смотри коменты откуда увидел php скрипт! http://mabp.kiev.ua/2008/08/28/google_translate/
Alex Snet
22 Мар, 2009
@Lupascu Ion, а какая именно у Вас проблема-то?
CTAPbIu_MABP
24 Мар, 2009
у него навалом проблем можешь почитать у меня в тойже теме))) я вот думал куда он делся, а он к тебе пошел
Alex Snet
24 Мар, 2009
@CTAPbIu_MABP, видать, не решил он своих проблем… Но если бы он их толком и по пунктам описал.. Я думаю, я бы на них ответил
CTAPbIu_MABP
26 Мар, 2009
ты сам то работал с http://translate.google.com/translate_suggestion
а то он все время отвечает 200 ОК что бы я туда не отправил
есть какие-то данные об этом интерфейсе?
Lupascu Ion
19 мая, 2009
Не решил я свои проблемы…!
Спасибо вам за помощь!
Хотел вернуться на старую тему… как можно отправить исправленный переведенный текст к гугл?
Кто то работал с http://translate.google.com/translate_suggestion ?
Lupascu Ion
19 мая, 2009
@CTAPbIu_MABP
После тестов http://translate.google.com/translate_suggestion в резугьтат ничего не получаю. Это правильно?
Ion Lupascu
18 Ноя, 2009
Привет,
Вот на днях перестал работать метод get по адресу
http://www.google.com/translate_a/t?client=t
Может только для меня не работает?
Знает ктонибудь какой новый адрес?
Заранее спасибо!
mihdan
25 Ноя, 2009
Написал я себе плагин под wordpress’овскую админку для перевода названия статьи через Google Translate. Так вот – на днях он меня стал банить, выдавая в ответ предупреждения. Реализация была на php+cURL+POST.
Что можете посоветовать? Есть одна только идея – через проксю скрипт гонять.
Ion Lupascu
25 Ноя, 2009
Сматри твой алгоритм парсинга проведенного текста. Google менял формат ответа постинга. Остольное все нормально!