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"