LINUX.ORG.RU

Морда на Qt для google translate


0

0

Подскажите, есть ли в природе хотя-бы скелеты сабжа? Меня интересует наилучний способ получения информации от сервиса. Можно например послать запрос в виде

http://translate.google.com/#ru|en|Проверка совместимости
, но может лучше задействовать Ajax api? Как его можно прикрутить к Qt?

Если кому интересно, то делаю я это в первую очередь для своих потребностей, но делаю под GPL.

>Хочу собрать велосипед. Есть у кого рама, колеса, болтики-винтики и краски немного? Да, цепь тоже нужна

minakov ★★★★★
()
Ответ на: комментарий от minakov

Ну, так я и просил поглядеть на аналоги. Может вовсе не нужно ничего делать.

flareguner ★
() автор топика

эмм. а гугл позволяет пользоваться своими сервисами таким образом? посмотрите ихнее LA на всякий случай, что-то меня терзают сомнения...

isden ★★★★★
()
Ответ на: комментарий от isden

эмм. а гугл позволяет пользоваться своими сервисами таким образом? посмотрите ихнее LA на всякий случай, что-то меня терзают сомнения...

Ну, есть же у них Ajax API, есть ещё плазмоид translatoid. Сейчас кстати поглядим в его сорцы.

flareguner ★
() автор топика
Ответ на: комментарий от Amp

Программ именно на Qt было много. Только зачем еще один велосипед?

Велосипед будет, если не найду программу, которая удовлетворяет меня по качеству.

flareguner ★
() автор топика
Ответ на: комментарий от Amp

Например http://code.google.com/p/qt-translator http://kde-apps.org/content/show.php/google+translate+runner?content=105459

Одна вшита в KDE, да еще и самым не удачным способом, вторую толи запросили, сюдя по всему так и не допилив. Так что я ссылку выше давал, там руководство доходчивое, вменяемую прогу задачка на один вечер наваять на коленке.

erfea ★★★★★
()
Ответ на: комментарий от flareguner

А чего не хватает во второй? Зачем нужны лишние свистелки?

если поразглядывать страничку на гуглокоде, прога глючная и на проект забили с 2009 ни строчки нового кода.

erfea ★★★★★
()
Ответ на: комментарий от erfea

Немножко подкорректировал функцию из примера под себя:

google.language.translate(var text, var from, var to, function(result) {
  if (!result.error) {
    var container = document.getElementById("translation");
//    container.innerHTML = result.translation;
    return result.translation;
  }
});

Как мне через QtScript вызвать эту функцию с аргументами, чтобы получить значение?

flareguner ★
() автор топика
Ответ на: комментарий от erfea

> если поразглядывать страничку на гуглокоде, прога глючная и на проект забили с 2009 ни строчки нового кода.

И неудивительно. Базовый функционал программы простенький - пишется за один-два вечера, не требует каких-то особых навыков. Затем интерес пропадает. У меня и некоторые знакомые писали клиент к этому транслейтору и забрасывали до «лучших времен».

Хотя есть и доведенные до ума программы, вроде http://translateclient.com причем с дополнительными платными «pro» версиями, правда под Windows.

Amp ★★★
()
Ответ на: комментарий от flareguner

Имхо проще по быстрому наваять на базе ajax-api, делов то гуй слепить, посылать запрос через QNetworkAccessManager и собсно распарсивать довольно таки простой ответ. QtScript здесь лишнее. Собственно регулярно пользую самописную тулзу на lsl, работает аналогичным образом, мну доволен.

erfea ★★★★★
()
Ответ на: комментарий от erfea

Не, без QtScript фигня получается. Лучше задействовать сразу API, чем парсить запросы. На то оно и придумано.

flareguner ★
() автор топика
Ответ на: комментарий от Amp

Что там забрасывать то, один раз полюдски написать и пипец я уже год пользуюсь кодом на lsl для тех же целей сделанным, просто написал сразу нормально и делов то.

erfea ★★★★★
()
Ответ на: комментарий от flareguner

Не, без QtScript фигня получается. Лучше задействовать сразу API, чем парсить запросы. На то оно и придумано.

Ну накой же там QtScript прибился?! Я про апи тебе и говорю, у него краткие легко парсимые ответы приходят.

erfea ★★★★★
()
Ответ на: комментарий от flareguner

А как парсить их? Я не нашел в примерах, там только для Java Script.

Вот пример запроса, введи в браузере: http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=hello...

надеюсь тебе ьудет не сложно распарсить ответ

не шифрованная ссылка: "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=hello 20world&langpair=en|ru"

почитай внимательнее тут http://code.google.com/intl/ru/apis/ajaxlanguage/documentation/reference.html

Если можешь - выложи сорцы твоей тулзы.

Выложить то смогу, но вряд ли тебе это поможет, ввиду того что тебе язык наверняка не знаком и кода там куда больше ввиду специфики языка и используемых интерфесов для пользователя.

erfea ★★★★★
()
Ответ на: комментарий от flareguner

думаю с парсингом регескпами разребусь

ну вот другой разговор, надеюсь QtScript прикручивать к такой примитивной тулзе ты передумал... )))

erfea ★★★★★
()
Ответ на: комментарий от erfea

Уже да. Я не знал, что ajax-запросы можно слать как обычные http-запросы. Не силен в этих вебовских делах, чего уж там.

flareguner ★
() автор топика
Ответ на: комментарий от flareguner

Теберь будешь знать, ajax заключается в том, чтобы послать http запрос и получить ответ, обычно это делает пришитый к html странице javascript, ответы как правило идуд html,json,xml-rpc или plain text. В данном случае json.

erfea ★★★★★
()
Jabber roster
 * fr2en@bot.talk.google.com <-> Online    
 * ru2en@bot.talk.google.com <-> Online

Ну ты понел.

mv ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.