summaryrefslogtreecommitdiff
path: root/settings/accounts-translations-plugin
diff options
context:
space:
mode:
Diffstat (limited to 'settings/accounts-translations-plugin')
-rw-r--r--settings/accounts-translations-plugin/accounts-translations-plugin.pro17
-rw-r--r--settings/accounts-translations-plugin/plugin.cpp50
-rw-r--r--settings/accounts-translations-plugin/qmldir2
3 files changed, 69 insertions, 0 deletions
diff --git a/settings/accounts-translations-plugin/accounts-translations-plugin.pro b/settings/accounts-translations-plugin/accounts-translations-plugin.pro
new file mode 100644
index 0000000..48b5a84
--- /dev/null
+++ b/settings/accounts-translations-plugin/accounts-translations-plugin.pro
@@ -0,0 +1,17 @@
+TEMPLATE = lib
+TARGET = mastodonaccountstranslationsplugin
+TARGET = $$qtLibraryTarget($$TARGET)
+
+MODULENAME = com/jolla/settings/accounts/mastodon
+TARGETPATH = $$[QT_INSTALL_QML]/$$MODULENAME
+
+QT += qml
+CONFIG += plugin
+
+SOURCES += plugin.cpp
+
+target.path = $$TARGETPATH
+qmldir.files = qmldir
+qmldir.path = $$TARGETPATH
+
+INSTALLS += target qmldir
diff --git a/settings/accounts-translations-plugin/plugin.cpp b/settings/accounts-translations-plugin/plugin.cpp
new file mode 100644
index 0000000..2bd504f
--- /dev/null
+++ b/settings/accounts-translations-plugin/plugin.cpp
@@ -0,0 +1,50 @@
+#include <QCoreApplication>
+#include <QLocale>
+#include <QQmlEngine>
+#include <QQmlExtensionPlugin>
+#include <QTranslator>
+#include <QtQml>
+
+class AppTranslator : public QTranslator
+{
+ Q_OBJECT
+public:
+ explicit AppTranslator(QObject *parent)
+ : QTranslator(parent)
+ {
+ qApp->installTranslator(this);
+ }
+
+ ~AppTranslator() override
+ {
+ qApp->removeTranslator(this);
+ }
+};
+
+class MastodonAccountsTranslationsPlugin : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "com.jolla.settings.accounts.mastodon")
+
+public:
+ void initializeEngine(QQmlEngine *engine, const char *uri) override
+ {
+ Q_UNUSED(uri)
+
+ AppTranslator *engineeringEnglish = new AppTranslator(engine);
+ engineeringEnglish->load("settings-accounts-mastodon_eng_en", "/usr/share/translations");
+
+ AppTranslator *translator = new AppTranslator(engine);
+ translator->load(QLocale(), "settings-accounts-mastodon", "-", "/usr/share/translations");
+ }
+
+ void registerTypes(const char *uri) override
+ {
+ Q_ASSERT(QLatin1String(uri) == QLatin1String("com.jolla.settings.accounts.mastodon"));
+ qmlRegisterUncreatableType<MastodonAccountsTranslationsPlugin>(uri, 1, 0,
+ "MastodonTranslationPlugin",
+ QString());
+ }
+};
+
+#include "plugin.moc"
diff --git a/settings/accounts-translations-plugin/qmldir b/settings/accounts-translations-plugin/qmldir
new file mode 100644
index 0000000..9b7a872
--- /dev/null
+++ b/settings/accounts-translations-plugin/qmldir
@@ -0,0 +1,2 @@
+module com.jolla.settings.accounts.mastodon
+plugin mastodonaccountstranslationsplugin