aboutsummaryrefslogtreecommitdiff
path: root/src/localization.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2021-03-17 11:54:43 +0100
committerFelix (xq) Queißner <git@mq32.de>2021-05-08 10:44:03 +0200
commit10684b6d82f1843eff3921da40802d335fb3cf5c (patch)
treea80d403f0668686de90c2cd48786e7b5e5fc2128 /src/localization.cpp
parenta2f36ec4d14ddf1bcee98e52a0f3a924804d06fb (diff)
downloadkristall-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.cpp31
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();
+}