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:
Yury Shuvakin
2022-08-28 11:33:56 +03:00
parent 2a960893d0
commit 4a0f78c247
39 changed files with 3365 additions and 357 deletions

53
translator.h Normal file
View 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