diff options
Diffstat (limited to 'settings/accounts-translations-plugin')
| -rw-r--r-- | settings/accounts-translations-plugin/accounts-translations-plugin.pro | 17 | ||||
| -rw-r--r-- | settings/accounts-translations-plugin/plugin.cpp | 50 | ||||
| -rw-r--r-- | settings/accounts-translations-plugin/qmldir | 2 |
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 |
