language_manager.h 839 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef LANGUAGE_MANAGER_H
  2. #define LANGUAGE_MANAGER_H
  3. #include <QObject>
  4. #include <QTranslator>
  5. class LanguageManager : public QObject {
  6. Q_OBJECT
  7. Q_PROPERTY(QString currentLanguage READ currentLanguage WRITE setLanguage
  8. NOTIFY languageChanged)
  9. Q_PROPERTY(QStringList availableLanguages READ availableLanguages CONSTANT)
  10. public:
  11. explicit LanguageManager(QObject *parent = nullptr);
  12. ~LanguageManager();
  13. QString currentLanguage() const;
  14. QStringList availableLanguages() const;
  15. Q_INVOKABLE void setLanguage(const QString &language);
  16. Q_INVOKABLE QString languageDisplayName(const QString &language) const;
  17. signals:
  18. void languageChanged();
  19. private:
  20. QString m_currentLanguage;
  21. QTranslator *m_translator;
  22. QStringList m_availableLanguages;
  23. void loadLanguage(const QString &language);
  24. };
  25. #endif