From d3d31b88f829c76aaf6a37f6a0a4f1bc97da3356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20G=C3=A2teau?= Date: Fri, 28 Mar 2014 15:59:04 +0100 Subject: Add ECMCreateQmFromPoFiles.cmake Simplifies translation handling for frameworks using Qt translation system. REVIEW: 117052 --- modules/ECMQmLoader.cpp.in | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 modules/ECMQmLoader.cpp.in (limited to 'modules/ECMQmLoader.cpp.in') diff --git a/modules/ECMQmLoader.cpp.in b/modules/ECMQmLoader.cpp.in new file mode 100644 index 00000000..92c0d07a --- /dev/null +++ b/modules/ECMQmLoader.cpp.in @@ -0,0 +1,34 @@ +/* This file is generated by ECM_CREATE_QM_FROM_PO_FILES. Do not modify! + * + * Building this file in a library ensures translations are automatically loaded + * when an application makes use of the library. + */ +#include +#include +#include +#include + +static QTranslator *createTranslator() +{ + QString installSubDir = QStringLiteral("@data_install_sub_dir@"); + QString qmName = QStringLiteral("@qm_name@"); + + QString lang = QLocale::system().name(); + QString dir = QStandardPaths::locate(QStandardPaths::GenericDataLocation, installSubDir, QStandardPaths::LocateDirectory); + QTranslator *translator = new QTranslator(QCoreApplication::instance()); + translator->load(qmName + QStringLiteral("_") + lang, dir); + return translator; +} + +static void load() +{ + QTranslator *translator = createTranslator(); + if (translator->isEmpty()) { + delete translator; + return; + } + translator->setParent(QCoreApplication::instance()); + QCoreApplication::instance()->installTranslator(translator); +} + +Q_COREAPP_STARTUP_FUNCTION(load) -- cgit v1.2.1