21#ifndef QONLINETRANSLATOR_H
22#define QONLINETRANSLATOR_H
27#include <QCoreApplication>
30#include <QJsonDocument>
32#include <QMediaPlayer>
33#include <QNetworkReply>
34#include <QStateMachine>
35#include <QMediaContent>
39#include <QtNetwork/QNetworkSession>
46class QNetworkAccessManager;
219 QJsonDocument
toJson()
const;
232 QMap<QString, QVector<QExample>>
examples()
const;
263 void skipGarbageText();
265 void requestGoogleTranslate();
266 void parseGoogleTranslate();
268 void requestYandexKey();
269 void parseYandexKey();
271 void requestYandexTranslate();
272 void parseYandexTranslate();
274 void requestYandexSourceTranslit();
275 void parseYandexSourceTranslit();
277 void requestYandexTranslationTranslit();
278 void parseYandexTranslationTranslit();
280 void requestYandexDictionary();
281 void parseYandexDictionary();
283 void requestBingCredentials();
284 void parseBingCredentials();
286 void requestBingTranslate();
287 void parseBingTranslate();
289 void requestBingDictionary();
290 void parseBingDictionary();
298 void buildGoogleStateMachine();
299 void buildGoogleDetectStateMachine();
301 void buildYandexStateMachine();
302 void buildYandexDetectStateMachine();
304 void buildBingStateMachine();
305 void buildBingDetectStateMachine();
308 void buildSplitNetworkRequest(QState *parent,
void (
QOnlineTranslator::*requestMethod)(),
void (
QOnlineTranslator::*parseMethod)(),
const QString &text,
int textLimit);
313 void parseYandexTranslit(QString &text);
324 static int getSplitIndex(
const QString &untranslatedText,
int limit);
325 static bool isContainsSpace(
const QString &text);
326 static void addSpaceBetweenParts(QString &text);
328 static const QMap<Language, QString> s_genericLanguageCodes;
331 static const QMap<Language, QString> s_googleLanguageCodes;
332 static const QMap<Language, QString> s_yandexLanguageCodes;
333 static const QMap<Language, QString> s_bingLanguageCodes;
336 static inline QString s_yandexKey;
337 static inline QByteArray s_bingKey;
338 static inline QByteArray s_bingToken;
341 static constexpr char s_textProperty[] =
"Text";
345 static constexpr int s_googleTranslateLimit = 5000;
346 static constexpr int s_yandexTranslateLimit = 150;
347 static constexpr int s_yandexTranslitLimit = 180;
348 static constexpr int s_bingTranslateLimit = 5001;
350 QStateMachine *m_stateMachine;
351 QNetworkAccessManager *m_networkManager;
352 QPointer<QNetworkReply> m_currentReply;
360 QString m_sourceTranslit;
361 QString m_sourceTranscription;
362 QString m_translation;
363 QString m_translationTranslit;
364 QString m_errorString;
366 QMap<QString, QVector<QOption>> m_translationOptions;
367 QMap<QString, QVector<QExample>> m_examples;
369 bool m_sourceTranslitEnabled =
true;
370 bool m_translationTranslitEnabled =
true;
371 bool m_sourceTranscriptionEnabled =
true;
372 bool m_translationOptionsEnabled =
true;
373 bool m_examplesEnabled =
true;
374 bool m_onlyDetectLanguage =
false;
bool isSourceTranslitEnabled() const
is Source Translit Enabled
static QString languageCode(Language lang)
language Code
bool isTranslationTranslitEnabled() const
is Translation Translit Enabled
static bool isSupportTranslation(Engine engine, Language lang)
is Support Translation
void setTranslationTranslitEnabled(bool enable)
set Translation Translit Enabled
QString errorString() const
error String
void detectLanguage(const QString &text, Engine engine=Google)
detect Language
bool isTranslationOptionsEnabled() const
is Translation Options Enabled
void setSourceTranscriptionEnabled(bool enable)
set Source Transcription Enabled
Language sourceLanguage() const
source Language
QJsonDocument toJson() const
to Json
void setExamplesEnabled(bool enable)
set Examples Enabled
static QString languageName(Language lang)
language Name
QString sourceTranslit() const
source Translit
Language translationLanguage() const
translation Language
bool isExamplesEnabled() const
is Examples Enabled
static Language language(const QLocale &locale)
language
bool isSourceTranscriptionEnabled() const
is Source Transcription Enabled
QString translation() const
translation
@ ParsingError
ParsingError
@ NetworkError
NetworkError
@ ParametersError
ParametersError
@ ServiceError
ServiceError
bool isRunning() const
is Running
QString translationLanguageName() const
translation Language Name
QMap< QString, QVector< QExample > > examples() const
examples
QOnlineTranslator(QObject *parent=nullptr)
QOnlineTranslator.
QString sourceLanguageName() const
source Language Name
QString source() const
source
QString languageName(const QString &lang)
language Name
void setTranslationOptionsEnabled(bool enable)
set Translation Options Enabled
void translate(const QString &text, Engine engine=Google, Language translationLang=Auto, Language sourceLang=Auto, Language uiLang=Auto)
translate
void setSourceTranslitEnabled(bool enable)
set Source Translit Enabled
QMap< QString, QVector< QOption > > translationOptions() const
translation Options
QString sourceTranscription() const
source Transcription
QString translationTranslit() const
translation Translit
@ TraditionalChinese
TraditionalChinese
@ HaitianCreole
HaitianCreole
@ KlingonPlqaD
KlingonPlqaD
@ SerbianLatin
SerbianLatin
@ SerbianCyrillic
SerbianCyrillic
@ LevantineArabic
LevantineArabic
@ SimplifiedChinese
SimplifiedChinese
@ QueretaroOtomi
QueretaroOtomi
@ Luxembourgish
Luxembourgish
TranslationError error() const
error