diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2021-03-17 11:54:43 +0100 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2021-05-08 10:44:03 +0200 |
| commit | 10684b6d82f1843eff3921da40802d335fb3cf5c (patch) | |
| tree | a80d403f0668686de90c2cd48786e7b5e5fc2128 /src/localization.cpp | |
| parent | a2f36ec4d14ddf1bcee98e52a0f3a924804d06fb (diff) | |
| download | kristall-10684b6d82f1843eff3921da40802d335fb3cf5c.tar.gz | |
Further improves localization (#191). Allows switching and setting the chosen localization properly.
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(); +} |
