Files
CuboBmsTool/translator.h

54 lines
1.4 KiB
C++

#ifndef TRANSLATOR_H
#define TRANSLATOR_H
#include <QObject>
#include <QMap>
class QQmlEngine;
class QTranslator;
class Translator : public QObject
{
Q_OBJECT
Q_PROPERTY(Language currentLanguage READ currentLanguage WRITE setCurrentLanguage NOTIFY currentLanguageChanged)
Q_PROPERTY(QString currentLanguageName READ currentLanguageName NOTIFY currentLanguageNameChanged)
Q_PROPERTY(QString currentLanguageIcon READ currentLanguageIcon NOTIFY currentLanguageNameChanged)
public:
enum class Language {
English,
Russian,
Italian
};
Q_ENUM(Language)
explicit Translator(QQmlEngine* engine, QObject *parent = nullptr);
public slots:
QString languageName(Language language) const;
QString languageIcon(Language language) const;
public:
Language currentLanguage() const;
void setCurrentLanguage(Language language);
QString currentLanguageName() const;
QString currentLanguageIcon() const;
signals:
void currentLanguageChanged();
void currentLanguageNameChanged();
void currentLanguageIconChanged();
private:
Language mCurrentLanguage = Language::English;
QQmlEngine* mQmlEngine = nullptr;
QTranslator* mCurrentTranslator = nullptr;
QMap<Language, QString> mNamesMap;
QMap<Language, QString> mIconsMap;
QMap<Language, QString> mTranslationsMap;
};
#endif // TRANSLATOR_H