aboutsummaryrefslogtreecommitdiff
path: root/src/localization.cpp
diff options
context:
space:
mode:
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();
+}