Russian Qt Forum
Ноябрь 27, 2024, 06:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отправка и перевод текста на Google Translator и обратно с помощью QT  (Прочитано 8467 раз)
ravbetsky
Гость
« : Апрель 13, 2011, 22:00 »

Доброго времени суток!

Вот такая нелёгкая задача у меня, я в QT еще новичок,поэтому сам даже не знаю с чего начать и как реализовать этот алгоритм. Прошу помощи людей знающих

Заранее спасибо=)
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Апрель 14, 2011, 00:07 »

https://gitorious.org/voicetranslator/voicetranslator/blobs/master/translator.h
https://gitorious.org/voicetranslator/voicetranslator/blobs/master/translator.cpp

Вот класс для работы c Google Translate. Немного корявый, но можно доработать. Юзай функцию translate для перевода (fromLanguage и toLanguage в коротком формате, т.е. Ru, En и тд.), сам же перевод можешь получить по сигналу dataReceived.

Ну и раз уж зашла речь об этом, порекламирую Улыбающийся
http://www.youtube.com/watch?v=iJzvzuzbSe8 - как работает сама программа. Писалась для Symbian(ну и естественно блягодаря Qt мы можешь использовать ее где угодно).
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Апрель 14, 2011, 07:17 »

Есть уже готовые Qt приложения с данным функционалом. Поищите в гугле. Также на linux.org.ru было месяца ~3 назад обсуждение одного из таких опенсорц проектов.
Как найдете - посмотрите в исходном коде как там это реализовано.

Вот, кстати и ссылка: http://www.linux.org.ru/forum/talks/5355784
« Последнее редактирование: Апрель 14, 2011, 07:19 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Апрель 14, 2011, 08:27 »

далеко и ходить не надо:
http://www.prog.org.ru/topic_8742_0.html
Записан

Юра.
ravbetsky
Гость
« Ответ #4 : Июнь 06, 2011, 20:11 »

Погомите пожалуйста реализовать получение перевода, написанная мною функция не работает подскажите в чем ошибка
Код:
void MainWindow::on_pushButton_clicked()
{
    Translator t;
    t.translate("Hello, world!","En","Ru");
    connect(&t,SIGNAL(dataReceived(QVariant)),this,SLOT(getTranslated(QVariant)));
    connect(&t,SIGNAL(error(QVariant)),this,SLOT(getTranslated(QVariant)));
}
void MainWindow::getTranslated(const QVariant &text)

{
   QString translated = text.toString();
   ui->lineEdit_2->setText(translated);
  }
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #5 : Июнь 09, 2011, 20:25 »

Так ты в стеке создаешь объект, он же убивается на выходе из фунции, вот и не работает.
>>Translator t;
Сделай его членом класса.

P.S. И лучше все-таки его в куче создавать (через new).
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
ravbetsky
Гость
« Ответ #6 : Июнь 09, 2011, 20:45 »

Спасибо=) А как сделать членом класса? логически мне понятно, а как написать в qt не понимаю
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #7 : Июнь 09, 2011, 23:03 »

в заголовочнике делаешь объявление:
Код:
Translator *m_translator;

в конструкторе класса MainWindow:
Код:
m_translator = new Translator(this);

Ну а дальше на свое усмотрение Улыбающийся

>>а как написать в qt не понимаю
Это никак к Qt не относится - это язык C++.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
ravbetsky
Гость
« Ответ #8 : Июнь 09, 2011, 23:22 »

Спасибо=)Работает=)
Записан
ravbetsky
Гость
« Ответ #9 : Июнь 10, 2011, 14:13 »

А почему вместо символа ' ( допустим во французком J'aime) пишеться \u0026#39;?

P.S. Ну и еще вместо русского перевода всякая бяка...но как я понял она решается с помощью FromLocal8bit
« Последнее редактирование: Июнь 10, 2011, 14:15 от ravbetsky » Записан
ravbetsky
Гость
« Ответ #10 : Июнь 14, 2011, 21:49 »

Блин ребят помогите, я застрял
Код:
   QString translated = text.toString();
   QString s =  QString::fromLocal8Bit(translated);
QString::fromLocal8bit() - почему работает только если туда самому вбивать строку, а если через translated, то компилятор выдают ошибку: "No matching function for call ...." ?
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #11 : Июнь 15, 2011, 16:33 »

fromLocal8Bit статическая функция
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.292 секунд. Запросов: 22.