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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.