aboutsummaryrefslogtreecommitdiff
path: root/modules/ECMQmLoader.cpp.in
diff options
context:
space:
mode:
authorAurélien Gâteau <agateau@kde.org>2014-03-28 15:59:04 +0100
committerAurélien Gâteau <agateau@kde.org>2014-03-28 15:59:04 +0100
commitd3d31b88f829c76aaf6a37f6a0a4f1bc97da3356 (patch)
tree449f5f2c0cb3a8077d55500b484a64b310da123e /modules/ECMQmLoader.cpp.in
parent147a501495801282ffc6360b1def34051ddc9a65 (diff)
downloadextra-cmake-modules-d3d31b88f829c76aaf6a37f6a0a4f1bc97da3356.tar.gz
extra-cmake-modules-d3d31b88f829c76aaf6a37f6a0a4f1bc97da3356.tar.bz2
Add ECMCreateQmFromPoFiles.cmake
Simplifies translation handling for frameworks using Qt translation system. REVIEW: 117052
Diffstat (limited to 'modules/ECMQmLoader.cpp.in')
-rw-r--r--modules/ECMQmLoader.cpp.in34
1 files changed, 34 insertions, 0 deletions
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 <QCoreApplication>
+#include <QLocale>
+#include <QStandardPaths>
+#include <QTranslator>
+
+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)