A system of translations into different languages has been implemented. Added translations into Russian. Various UI fixes for valid internationalization
This commit is contained in:
53
translator.h
Normal file
53
translator.h
Normal file
@@ -0,0 +1,53 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user