1 // This file is part of Qt Bitcoin Trader 2 // https://github.com/JulyIGHOR/QtBitcoinTrader 3 // Copyright (C) 2013-2021 July Ighor <julyighor@gmail.com> 4 // 5 // This program is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // In addition, as a special exception, the copyright holders give 11 // permission to link the code of portions of this program with the 12 // OpenSSL library under certain conditions as described in each 13 // individual source file, and distribute linked combinations including 14 // the two. 15 // 16 // You must obey the GNU General Public License in all respects for all 17 // of the code used other than OpenSSL. If you modify file(s) with this 18 // exception, you may extend this exception to your version of the 19 // file(s), but you are not obligated to do so. If you do not wish to do 20 // so, delete this exception statement from your version. If you delete 21 // this exception statement from all source files in the program, then 22 // also delete it here. 23 // 24 // This program is distributed in the hope that it will be useful, 25 // but WITHOUT ANY WARRANTY; without even the implied warranty of 26 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 // GNU General Public License for more details. 28 // 29 // You should have received a copy of the GNU General Public License 30 // along with this program. If not, see <http://www.gnu.org/licenses/>. 31 32 #ifndef JULYTRANSLATOR_H 33 #define JULYTRANSLATOR_H 34 35 #include <QObject> 36 #include <QMap> 37 #include <QWidget> 38 39 class JulyTranslator : public QObject 40 { 41 Q_OBJECT 42 43 public: 44 QMap<QString, QString>labelMap; 45 QMap<QString, QString>groupBoxMap; 46 QMap<QString, QString>checkBoxMap; 47 QMap<QString, QString>buttonMap; 48 QMap<QString, QString>spinBoxMap; 49 QMap<QString, QString>stringMap; 50 lastFile()51 const QString& lastFile() const 52 { 53 return lastLangFile; 54 } 55 int loadFromFile(const QString& fileName); 56 int saveToFile(const QString& fileName); clearMaps()57 void clearMaps() 58 { 59 labelMap.clear(); 60 lastLangFile.clear(); 61 groupBoxMap.clear(); 62 checkBoxMap.clear(); 63 buttonMap.clear(); 64 } 65 void loadMapFromUi(QWidget* wid); 66 void translateUi(QWidget* wid); 67 68 QString translateButton(const QString& tid, const QString& defaultText) const; 69 QString translateLabel(const QString& tid, const QString& defaultText) const; 70 QString translateCheckBox(const QString& tid, const QString& defaultText) const; 71 QString translateGroupBox(const QString& tid, const QString& defaultText) const; 72 QString translateSpinBox(const QString& tid, const QString& defaultText) const; 73 QString translateString(const QString& tid, const QString& defaultText); 74 private: 75 QString lastLangFile; 76 bool fillMapsFromLine(QMap<QString, QString>* map, QString line, const QString& prefix); 77 void fillMapsFromList(const QStringList& list); 78 QStringList getMapList(QMap<QString, QString>* map, QString prefix); 79 signals: 80 void languageChanged(); 81 }; 82 83 #endif // JULYTRANSLATOR_H 84