diff options
author | Aurélien Gâteau <agateau@kde.org> | 2014-04-16 10:27:45 +0200 |
---|---|---|
committer | Aurélien Gâteau <agateau@kde.org> | 2014-04-16 10:28:18 +0200 |
commit | 071581a3f899c881c9938efd082fd32589822b45 (patch) | |
tree | 314f51d5b7fce80b445f33f694bf570178ca9d5e /modules/ECMQmLoader.cpp.in | |
parent | ecbefa6959452af98485288388a92cbf35a28e99 (diff) | |
download | extra-cmake-modules-071581a3f899c881c9938efd082fd32589822b45.tar.gz extra-cmake-modules-071581a3f899c881c9938efd082fd32589822b45.tar.bz2 |
Make ECMCreateQmFromPoFiles usable from within trunk/l10n-kf5
REVIEW: 117560
Diffstat (limited to 'modules/ECMQmLoader.cpp.in')
-rw-r--r-- | modules/ECMQmLoader.cpp.in | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/modules/ECMQmLoader.cpp.in b/modules/ECMQmLoader.cpp.in index 4fd9c116..fd530602 100644 --- a/modules/ECMQmLoader.cpp.in +++ b/modules/ECMQmLoader.cpp.in @@ -8,25 +8,33 @@ #include <QStandardPaths> #include <QTranslator> -static QTranslator *createTranslator() -{ - QString installSubDir = QStringLiteral("@data_install_sub_dir@"); - QString qmName = QStringLiteral("@qm_name@"); +#include <QDebug> - QString dir = QStandardPaths::locate(QStandardPaths::GenericDataLocation, installSubDir, QStandardPaths::LocateDirectory); +static QTranslator *createTranslator(const QString &localeDirName) +{ + QString subPath = QStringLiteral("locale/") + localeDirName + QStringLiteral("/LC_MESSAGES/@catalog_name@.qm"); + QString fullPath = QStandardPaths::locate(QStandardPaths::GenericDataLocation, subPath); + if (fullPath.isEmpty()) { + return 0; + } QTranslator *translator = new QTranslator(QCoreApplication::instance()); - translator->load(QLocale::system(), qmName, QStringLiteral("-") /* prefix */, dir); + if (!translator->load(fullPath)) { + delete translator; + return 0; + } return translator; } static void load() { - QTranslator *translator = createTranslator(); - if (translator->isEmpty()) { - delete translator; - return; + QLocale locale = QLocale::system(); + QTranslator *translator = createTranslator(locale.name()); + if (!translator) { + translator = createTranslator(locale.bcp47Name()); + if (!translator) { + return; + } } - translator->setParent(QCoreApplication::instance()); QCoreApplication::instance()->installTranslator(translator); } |