Maki
Formally verfied low-code orchestration
Loading...
Searching...
No Matches
language_manager.h
1// language_manager.h
2#pragma once
3
4#include <QObject>
5#include <QStringList>
6#include <QTranslator>
7
19class LanguageManager : public QObject
20{
21 Q_OBJECT
22
23public:
28 explicit LanguageManager(QObject* parent = nullptr);
29
35 {
36 QString code;
37 QString label;
38 };
39
44 QList<LanguageOption> availableLanguages() const;
45
50 QString currentLanguage() const;
51
60 bool setLanguage(const QString& code);
61
62signals:
67 void languageChanged(const QString& code);
68
69private:
74 QString translationDir() const;
75
81 QString qmFileForCode(const QString& code) const;
82
83private:
84 QTranslator mTranslator;
85 QString mCurrentLanguage = "en_US";
86
87 QList<LanguageOption> mAvailableLanguages;
88};
QTranslator mTranslator
Qt translator used to load and apply translations.
Definition language_manager.h:84
LanguageManager(QObject *parent=nullptr)
Constructs a LanguageManager instance.
Definition language_manager.cpp:13
bool setLanguage(const QString &code)
Sets the active language.
Definition language_manager.cpp:60
void languageChanged(const QString &code)
Emitted when the application language changes.
QString currentLanguage() const
Returns the currently active language code.
Definition language_manager.cpp:44
QString translationDir() const
Returns the directory where translation files are stored.
QString qmFileForCode(const QString &code) const
Returns the full path to the .qm file for a given language code.
Definition language_manager.cpp:49
QList< LanguageOption > availableLanguages() const
Returns the list of available languages.
Definition language_manager.cpp:39
QString mCurrentLanguage
Currently active language code.
Definition language_manager.h:85
QList< LanguageOption > mAvailableLanguages
List of supported languages.
Definition language_manager.h:87
Represents a selectable language option.
Definition language_manager.h:35
QString code
Language code (e.g., "en_US", "pt_BR").
Definition language_manager.h:36
QString label
Human-readable label (e.g., "English", "Português (Brasil)").
Definition language_manager.h:37