forked from yasirtug/ni-translate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtranslator.cpp
29 lines (24 loc) · 886 Bytes
/
translator.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "translator.h"
#define TRANSLATE_DOMAIN "https://translate.google.com"
Translator::Translator(QObject *parent) : QObject(parent)
{
manager = new QNetworkAccessManager();
}
void Translator::getResult()
{
QString result = QString(reply->readAll());
int begin = result.indexOf("class=\"t0\">") + 11;
int end = result.indexOf('<', begin);
result = result.mid(begin, end - begin);
translationCompleted(result);
}
void Translator::translate(QString text, QString src, QString dest)
{
disconnect(connection);
text = QUrl::toPercentEncoding(text);
QString urlString = QString("%1%2%3%4%6%7%8").arg(TRANSLATE_DOMAIN, "/m?tl=", dest, "&sl=", src, "&q=", text);
QUrl url(urlString);
QNetworkRequest request(url);
reply = manager->get(request);
connection = connect(reply, &QNetworkReply::finished, this, &Translator::getResult);
}