diff options
author | Aurélien Gâteau <agateau@kde.org> | 2014-03-28 15:59:04 +0100 |
---|---|---|
committer | Aurélien Gâteau <agateau@kde.org> | 2014-03-28 15:59:04 +0100 |
commit | d3d31b88f829c76aaf6a37f6a0a4f1bc97da3356 (patch) | |
tree | 449f5f2c0cb3a8077d55500b484a64b310da123e /modules/ECMQmLoader.cpp.in | |
parent | 147a501495801282ffc6360b1def34051ddc9a65 (diff) | |
download | extra-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.in | 34 |
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) |