File indexing completed on 2024-05-12 16:16:11

0001 /*
0002   SPDX-FileCopyrightText: 2022-2023 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "translatorengineplugin.h"
0008 #include <KLocalizedString>
0009 using namespace TextTranslator;
0010 
0011 class TextTranslator::TranslatorEnginePluginPrivate
0012 {
0013 public:
0014     QString mText;
0015     QString mFrom;
0016     QString mTo;
0017     QString mResult;
0018     QString mJsonDebug;
0019     bool mHasDebug = false;
0020 };
0021 
0022 TranslatorEnginePlugin::TranslatorEnginePlugin(QObject *parent)
0023     : QObject(parent)
0024     , d(new TextTranslator::TranslatorEnginePluginPrivate)
0025 {
0026     d->mHasDebug = !qEnvironmentVariableIsEmpty("TRANSLATING_DEBUGGING");
0027 }
0028 
0029 QString TranslatorEnginePlugin::resultTranslate() const
0030 {
0031     return result();
0032 }
0033 
0034 TranslatorEnginePlugin::~TranslatorEnginePlugin() = default;
0035 
0036 void TranslatorEnginePlugin::setInputText(const QString &text)
0037 {
0038     d->mText = text;
0039 }
0040 
0041 void TranslatorEnginePlugin::setFrom(const QString &language)
0042 {
0043     if (d->mFrom != language) {
0044         d->mFrom = language;
0045         Q_EMIT languagesChanged();
0046     }
0047 }
0048 
0049 void TranslatorEnginePlugin::setTo(const QString &language)
0050 {
0051     if (d->mTo != language) {
0052         d->mTo = language;
0053         Q_EMIT languagesChanged();
0054     }
0055 }
0056 
0057 void TranslatorEnginePlugin::setResult(const QString &result)
0058 {
0059     d->mResult = result;
0060 }
0061 
0062 void TranslatorEnginePlugin::setJsonDebug(const QString &debug)
0063 {
0064     d->mJsonDebug = debug;
0065 }
0066 
0067 void TranslatorEnginePlugin::clear()
0068 {
0069     d->mResult.clear();
0070 }
0071 
0072 void TranslatorEnginePlugin::appendResult(const QString &result)
0073 {
0074     d->mResult += result;
0075 }
0076 
0077 QString TranslatorEnginePlugin::inputText() const
0078 {
0079     return d->mText;
0080 }
0081 
0082 QString TranslatorEnginePlugin::from() const
0083 {
0084     return d->mFrom;
0085 }
0086 
0087 QString TranslatorEnginePlugin::to() const
0088 {
0089     return d->mTo;
0090 }
0091 
0092 QString TranslatorEnginePlugin::result() const
0093 {
0094     return d->mResult;
0095 }
0096 
0097 QString TranslatorEnginePlugin::jsonDebug() const
0098 {
0099     return d->mJsonDebug;
0100 }
0101 
0102 void TranslatorEnginePlugin::slotError(QNetworkReply::NetworkError error)
0103 {
0104     QString messageError;
0105     if (error == QNetworkReply::ServiceUnavailableError) {
0106         messageError = i18n("Error: Engine systems have detected suspicious traffic from your computer network. Please try your request again later.");
0107     }
0108     Q_EMIT translateFailed(messageError);
0109 }
0110 
0111 bool TranslatorEnginePlugin::verifyFromAndToLanguage()
0112 {
0113     if (d->mTo == d->mFrom) {
0114         Q_EMIT translateFailed(i18n("You used same language for \'from\' and \'to\' language."));
0115         return true;
0116     }
0117     return false;
0118 }
0119 
0120 bool TranslatorEnginePlugin::hasDebug() const
0121 {
0122     return d->mHasDebug;
0123 }
0124 
0125 QString TranslatorEnginePlugin::languageCode(const QString &langStr)
0126 {
0127     return langStr;
0128 }
0129 
0130 #include "moc_translatorengineplugin.cpp"