Add support for translating overlays

This commit is contained in:
Michael Zanetti 2021-08-17 13:18:25 +02:00
parent bc2b603d3d
commit 53f41065eb
3 changed files with 16 additions and 1 deletions

View File

@ -105,6 +105,9 @@ INSTALLS += ubuntu_files
# Translations support # Translations support
TRANSLATIONS += $$files($$absolute_path(nymea-app)/translations/*.ts, true) TRANSLATIONS += $$files($$absolute_path(nymea-app)/translations/*.ts, true)
!equals(OVERLAY_PATH, "") {
TRANSLATIONS += $$files($${OVERLAY_PATH}/translations/*ts, true)
}
system("lrelease $$TRANSLATIONS") system("lrelease $$TRANSLATIONS")
lrelease.commands = lrelease $$TRANSLATIONS lrelease.commands = lrelease $$TRANSLATIONS
QMAKE_EXTRA_TARGETS += lrelease QMAKE_EXTRA_TARGETS += lrelease

View File

@ -120,6 +120,17 @@ int main(int argc, char *argv[])
} }
application.installTranslator(&appTranslator); application.installTranslator(&appTranslator);
#ifdef OVERLAY_PATH
QTranslator overlayTranslator;
translationResult = overlayTranslator.load(QString("%1-%2").arg(APPLICATION_NAME).arg(QLocale().name()), ":/translations");
if (translationResult) {
qCDebug(dcApplication()) << "Loaded overlay translation for locale" << QString("%1-%2").arg(APPLICATION_NAME).arg(QLocale().name());
} else {
qCInfo(dcApplication()) << "Failed to load overlay translations for locale" << QString("%1-%2").arg(APPLICATION_NAME).arg(QLocale().name());
}
application.installTranslator(&overlayTranslator);
#endif
registerQmlTypes(); registerQmlTypes();
QQmlApplicationEngine *engine = new QQmlApplicationEngine(); QQmlApplicationEngine *engine = new QQmlApplicationEngine();
@ -175,7 +186,7 @@ int main(int argc, char *argv[])
qmlRegisterType<ConfiguredHostsProxyModel>("Nymea", 1, 0, "ConfiguredHostsProxyModel"); qmlRegisterType<ConfiguredHostsProxyModel>("Nymea", 1, 0, "ConfiguredHostsProxyModel");
qmlRegisterUncreatableType<ConfiguredHost>("Nymea", 1, 0, "ConfiguredHost", "Get them from ConfiguredHostsModel"); qmlRegisterUncreatableType<ConfiguredHost>("Nymea", 1, 0, "ConfiguredHost", "Get them from ConfiguredHostsModel");
#ifdef OVERLAY_QMLTYPES #ifdef OVERLAY_PATH
registerOverlayTypes("Nymea", 1, 0); registerOverlayTypes("Nymea", 1, 0);
#endif #endif

View File

@ -62,6 +62,7 @@ linux:!android:!ubports: {
exists($${OVERLAY_PATH}/src/src.pri) { exists($${OVERLAY_PATH}/src/src.pri) {
message("Including sources from overlay") message("Including sources from overlay")
include($${OVERLAY_PATH}/src/src.pri) include($${OVERLAY_PATH}/src/src.pri)
DEFINES += OVERLAY_PATH=\\\"$${OVERLAY_PATH}\\\"
DEFINES += OVERLAY_QMLTYPES=\\\"$${OVERLAY_PATH}/src/qmltypes.h\\\" DEFINES += OVERLAY_QMLTYPES=\\\"$${OVERLAY_PATH}/src/qmltypes.h\\\"
} }
} else { } else {