Russian Qt Forum

Программирование => Общий => Тема начата: ravbetsky от Апрель 13, 2011, 22:00



Название: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: ravbetsky от Апрель 13, 2011, 22:00
Доброго времени суток!

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

Заранее спасибо=)


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: kibsoft от Апрель 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 мы можешь использовать ее где угодно).


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: kuzulis от Апрель 14, 2011, 07:17
Есть уже готовые Qt приложения с данным функционалом. Поищите в гугле. Также на linux.org.ru было месяца ~3 назад обсуждение одного из таких опенсорц проектов.
Как найдете - посмотрите в исходном коде как там это реализовано.

Вот, кстати и ссылка: http://www.linux.org.ru/forum/talks/5355784


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: lit-uriy от Апрель 14, 2011, 08:27
далеко и ходить не надо:
http://www.prog.org.ru/topic_8742_0.html


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: ravbetsky от Июнь 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);
  }


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: kibsoft от Июнь 09, 2011, 20:25
Так ты в стеке создаешь объект, он же убивается на выходе из фунции, вот и не работает.
>>Translator t;
Сделай его членом класса.

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


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: ravbetsky от Июнь 09, 2011, 20:45
Спасибо=) А как сделать членом класса? логически мне понятно, а как написать в qt не понимаю


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: kibsoft от Июнь 09, 2011, 23:03
в заголовочнике делаешь объявление:
Код:
Translator *m_translator;

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

Ну а дальше на свое усмотрение :)

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


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: ravbetsky от Июнь 09, 2011, 23:22
Спасибо=)Работает=)


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: ravbetsky от Июнь 10, 2011, 14:13
А почему вместо символа ' ( допустим во французком J'aime) пишеться \u0026#39;?

P.S. Ну и еще вместо русского перевода всякая бяка...но как я понял она решается с помощью FromLocal8bit


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: ravbetsky от Июнь 14, 2011, 21:49
Блин ребят помогите, я застрял
Код:
   QString translated = text.toString();
   QString s =  QString::fromLocal8Bit(translated);
QString::fromLocal8bit() - почему работает только если туда самому вбивать строку, а если через translated, то компилятор выдают ошибку: "No matching function for call ...." ?


Название: Re: Отправка и перевод текста на Google Translator и обратно с помощью QT
Отправлено: kibsoft от Июнь 15, 2011, 16:33
fromLocal8Bit статическая функция