diff options
Diffstat (limited to 'src/localization.cpp')
| -rw-r--r-- | src/localization.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/localization.cpp b/src/localization.cpp new file mode 100644 index 0000000..07b69f5 --- /dev/null +++ b/src/localization.cpp @@ -0,0 +1,31 @@ +#include "kristall.hpp" + +#include <QDebug> +#include <QLibraryInfo> + +#include "localization.hpp" + +Localization::Localization(QObject *parent) : QObject(parent) +{ + +} + +void Localization::setLocale(const std::optional<QLocale> &locale) +{ + this->locale = locale; + + if(this->locale != std::nullopt) + this->translate(*this->locale); + else + this->translate(QLocale()); +} + +void Localization::translate(const QLocale &locale) +{ + this->qt.load(locale, "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + this->kristall.load(locale, "kristall", "_", ":/i18n"); + + emit this->translationChanged(); + + qDebug() << "new locale is" << locale.bcp47Name() << locale.nativeLanguageName(); +} |
