Hello community,

here is the log from the commit of package ki18n for openSUSE:Factory checked 
in at 2017-08-24 17:56:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ki18n (Old)
 and      /work/SRC/openSUSE:Factory/.ki18n.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ki18n"

Thu Aug 24 17:56:12 2017 rev:47 rq:516679 version:5.37.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ki18n/ki18n.changes      2017-07-17 
10:23:43.630533088 +0200
+++ /work/SRC/openSUSE:Factory/.ki18n.new/ki18n.changes 2017-08-24 
17:56:13.516088465 +0200
@@ -1,0 +2,12 @@
+Sat Aug 12 09:23:27 UTC 2017 - [email protected]
+
+- Update to 5.37.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.37.0.php
+- Changes since 5.36.0 :
+  * Allow loading i18n catalogs from arbitrary locations
+  * Fix build with Qt 5.9.1 and clang
+  * Make sure that the tsfiles target is generated
+
+-------------------------------------------------------------------

Old:
----
  ki18n-5.36.0.tar.xz

New:
----
  ki18n-5.37.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ki18n.spec ++++++
--- /var/tmp/diff_new_pack.w3ndMW/_old  2017-08-24 17:56:14.271981998 +0200
+++ /var/tmp/diff_new_pack.w3ndMW/_new  2017-08-24 17:56:14.279980872 +0200
@@ -18,9 +18,9 @@
 
 %bcond_without lang
 %define lname   libKF5I18n5
-%define _tar_path 5.36
+%define _tar_path 5.37
 Name:           ki18n
-Version:        5.36.0
+Version:        5.37.0
 Release:        0
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_tar_path}

++++++ fallbackLang.diff ++++++
--- /var/tmp/diff_new_pack.w3ndMW/_old  2017-08-24 17:56:14.359969605 +0200
+++ /var/tmp/diff_new_pack.w3ndMW/_new  2017-08-24 17:56:14.367968479 +0200
@@ -1,16 +1,17 @@
-Index: ki18n-5.36.0/src/kcatalog.cpp
+Index: ki18n-5.36.0git.20170711T131800~4c95ac8/src/kcatalog.cpp
 ===================================================================
---- ki18n-5.36.0.orig/src/kcatalog.cpp
-+++ ki18n-5.36.0/src/kcatalog.cpp
-@@ -116,26 +116,51 @@ KCatalog::~KCatalog()
+--- ki18n-5.36.0git.20170711T131800~4c95ac8.orig/src/kcatalog.cpp
++++ ki18n-5.36.0git.20170711T131800~4c95ac8/src/kcatalog.cpp
+@@ -117,9 +117,22 @@ KCatalog::~KCatalog()
  QString KCatalog::catalogLocaleDir(const QByteArray &domain,
                                     const QString &language)
  {
-+    QStringList localeDirs;
-+    QString localeDir;
-     QString relpath = QStringLiteral("%1/LC_MESSAGES/%2.mo")
+-    QString relpath = QStringLiteral("%1/LC_MESSAGES/%2.mo")
++     QStringList localeDirs;
++     QString localeDir;
++     QString relpath = QStringLiteral("%1/LC_MESSAGES/%2.mo")
                        .arg(language, QFile::decodeName(domain));
-+
+ 
 +    // Specific SUSE kf5 location   ; bundle-lang-bla  ; update-translations 
; generic
 +    localeDirs << QStringLiteral("/usr/share/locale/kf5/") << 
QStringLiteral("/usr/share/locale-bundle/kf5/") << 
QStringLiteral("/usr/share/locale-bundle/") << 
QStringLiteral("/usr/share/locale-langpack/");
 +
@@ -21,15 +22,20 @@
 +        }
 +    }
 +    // Check the standard locations
++
+     {
+         QMutexLocker lock(&catalogStaticData->mutex);
+         const QString customLocaleDir = 
catalogStaticData->customCatalogDirs.value(domain);
+@@ -130,22 +143,36 @@ QString KCatalog::catalogLocaleDir(const
+ 
      QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
--                                          QStringLiteral("locale/") + 
relpath);
+                                           QStringLiteral("locale/") + 
relpath);
 -    QString localeDir;
 -    if (file.isEmpty()) {
 -        localeDir = QString();
 -    } else {
--        // Path of the locale/ directory must be returned.
-+                                             QStringLiteral("locale/") + 
relpath);
 +    if (!file.isEmpty()) {
+         // Path of the locale/ directory must be returned.
          localeDir = QFileInfo(file.left(file.size() - 
relpath.size())).absolutePath();
 +        return localeDir;
      }
@@ -44,6 +50,7 @@
 -    QStringList localeDirPaths = 
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
 -                                 QStringLiteral("locale"),
 -                                 QStandardPaths::LocateDirectory);
++
 +    QStringList localeDirPaths;
 +    QStringList localeDirs;
 +
@@ -60,6 +67,6 @@
 +                                  QStringLiteral("locale"),
 +                                  QStandardPaths::LocateDirectory);
 +    localeDirPaths.append(localeFallbackDirPaths);
-     QSet<QString> availableLanguages;
-     foreach (const QString &localDirPath, localeDirPaths) {
-         QDir localeDir(localDirPath);
+ 
+     {
+         QMutexLocker lock(&catalogStaticData->mutex);

++++++ ki18n-5.36.0.tar.xz -> ki18n-5.37.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/CMakeLists.txt 
new/ki18n-5.37.0/CMakeLists.txt
--- old/ki18n-5.36.0/CMakeLists.txt     2017-07-06 21:17:44.000000000 +0200
+++ new/ki18n-5.37.0/CMakeLists.txt     2017-08-06 20:03:41.000000000 +0200
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.0)
 
-set(KF5_VERSION "5.36.0") # handled by release scripts
+set(KF5_VERSION "5.37.0") # handled by release scripts
 project(KI18n VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.36.0  NO_MODULE)
+find_package(ECM 5.37.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -27,7 +27,7 @@
   SOVERSION 5)
 
 # Dependencies
-set(REQUIRED_QT_VERSION 5.6.0)
+set(REQUIRED_QT_VERSION 5.7.0)
 
 find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/autotests/klocalizedstringtest.cpp 
new/ki18n-5.37.0/autotests/klocalizedstringtest.cpp
--- old/ki18n-5.36.0/autotests/klocalizedstringtest.cpp 2017-07-06 
21:17:44.000000000 +0200
+++ new/ki18n-5.37.0/autotests/klocalizedstringtest.cpp 2017-08-06 
20:03:41.000000000 +0200
@@ -56,7 +56,7 @@
     }
     QDir dataDir(m_tempDir.path());
     if (m_hasFrench) {
-        m_hasFrench = compileCatalogs(dataDir);
+        m_hasFrench = compileCatalogs({QFINDTESTDATA("po/fr/ki18n-test.po"), 
QFINDTESTDATA("po/fr/ki18n-test-qt.po")}, dataDir);
     }
     if (m_hasFrench) {
         qputenv("XDG_DATA_DIRS",
@@ -76,7 +76,7 @@
 #endif
 }
 
-bool KLocalizedStringTest::compileCatalogs(const QDir &dataDir)
+bool KLocalizedStringTest::compileCatalogs(const QStringList &testPoPaths, 
const QDir &dataDir)
 {
     if (!dataDir.mkpath("locale/fr/LC_MESSAGES")) {
         qDebug() << "Failed to create locale subdirectory "
@@ -88,9 +88,6 @@
         qDebug() << "msgfmt(1) not found in path.";
         return false;
     }
-    QStringList testPoPaths;
-    testPoPaths << QFINDTESTDATA("po/fr/ki18n-test.po");
-    testPoPaths << QFINDTESTDATA("po/fr/ki18n-test-qt.po");
     foreach (const QString &testPoPath, testPoPaths) {
         int pos_1 = testPoPath.lastIndexOf(QLatin1Char('/'));
         int pos_2 = testPoPath.lastIndexOf(QLatin1Char('.'));
@@ -516,6 +513,20 @@
     QCOMPARE(app->translate("foo", "Job", "bar"), QStringLiteral("Job"));
 }
 
+void KLocalizedStringTest::addCustomDomainPath()
+{
+    if (!m_hasFrench) {
+        QSKIP("French test files not usable.");
+    }
+    QTemporaryDir dir;
+    compileCatalogs({QFINDTESTDATA("po/fr/ki18n-test2.po")}, dir.path());
+    KLocalizedString::addDomainLocaleDir("ki18n-test2", dir.path() + 
"/locale");
+
+    QSet<QString> expectedAvailableTranslations({"en_US", "fr"});
+    QCOMPARE(KLocalizedString::availableDomainTranslations("ki18n-test2"), 
expectedAvailableTranslations);
+    QCOMPARE(i18nd("ki18n-test2", "Cheese"), QString::fromUtf8("Fromage"));
+}
+
 #include <QThreadPool>
 #include <QtConcurrentRun>
 #include <QFutureSynchronizer>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/autotests/klocalizedstringtest.h 
new/ki18n-5.37.0/autotests/klocalizedstringtest.h
--- old/ki18n-5.36.0/autotests/klocalizedstringtest.h   2017-07-06 
21:17:44.000000000 +0200
+++ new/ki18n-5.37.0/autotests/klocalizedstringtest.h   2017-08-06 
20:03:41.000000000 +0200
@@ -35,6 +35,7 @@
     void translateToFrenchLowlevel();
     void translateToFrench();
     void translateQt();
+    void addCustomDomainPath();
 
     void testThreads();
 
@@ -43,7 +44,7 @@
 private:
     bool m_hasFrench;
     QTemporaryDir m_tempDir;
-    bool compileCatalogs(const QDir &dataDir);
+    bool compileCatalogs(const QStringList &catalogs, const QDir &dataDir);
 };
 
 #endif // KLOCALIZEDSTRINGTEST_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/autotests/po/fr/ki18n-test2.po 
new/ki18n-5.37.0/autotests/po/fr/ki18n-test2.po
--- old/ki18n-5.36.0/autotests/po/fr/ki18n-test2.po     1970-01-01 
01:00:00.000000000 +0100
+++ new/ki18n-5.37.0/autotests/po/fr/ki18n-test2.po     2017-08-06 
20:03:41.000000000 +0200
@@ -0,0 +1,15 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: ki18n-test\n"
+"POT-Creation-Date: 2012-01-01 00:00+0100\n"
+"PO-Revision-Date: 2012-01-01 12:00+0100\n"
+"Last-Translator: Jean Dupont <[email protected]>\n"
+"Language-Team: French <[email protected]>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "Cheese"
+msgstr "Fromage"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/po/zh_CN/ki18n5.po 
new/ki18n-5.37.0/po/zh_CN/ki18n5.po
--- old/ki18n-5.36.0/po/zh_CN/ki18n5.po 2017-07-06 21:17:44.000000000 +0200
+++ new/ki18n-5.37.0/po/zh_CN/ki18n5.po 2017-08-06 20:03:41.000000000 +0200
@@ -1,30 +1,20 @@
-# translation of kdelibs4.po to Chinese Simplified
-# Copyright (C) 2007 Free Software Foundation, Inc.
-#
-# Lie Ex <[email protected]> 2007-2011.
-# Wang Jian <[email protected]>, 1998.
-# Sarah Smith <[email protected]>, 2002.
-# Xiong Jiang <[email protected]>, 2002,2003,2004.
-# Funda Wang <[email protected]>, 2002,2003,2004.
-# Liang Qi <[email protected]>, 2007.
-# Feng Chao <[email protected]>, 2010, 2012.
-# Ni Hui <[email protected]>, 2010, 2011, 2012.
-# Weng Xuetian <[email protected]>, 2011, 2012, 2013.
-# Xuetian Weng <[email protected]>, 2014.
 msgid ""
 msgstr ""
-"Project-Id-Version: kdelibs4\n"
+"Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2016-11-19 20:11+0100\n"
-"PO-Revision-Date: 2014-08-14 12:45-0400\n"
-"Last-Translator: Xuetian Weng <[email protected]>\n"
-"Language-Team: Chinese Simplified <[email protected]>\n"
+"PO-Revision-Date: 2017-08-05 09:29-0400\n"
+"Last-Translator: guoyunhebrave <[email protected]>\n"
+"Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: crowdin.com\n"
+"X-Crowdin-Project: kdeorg\n"
+"X-Crowdin-Language: zh-CN\n"
+"X-Crowdin-File: /kf5-trunk/messages/frameworks/ki18n5.pot\n"
 
 #. i18n: Decide which string is used to delimit keys in a keyboard
 #. shortcut (e.g. + in Ctrl+Alt+Tab) in plain text.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/src/kcatalog.cpp 
new/ki18n-5.37.0/src/kcatalog.cpp
--- old/ki18n-5.36.0/src/kcatalog.cpp   2017-07-06 21:17:44.000000000 +0200
+++ new/ki18n-5.37.0/src/kcatalog.cpp   2017-08-06 20:03:41.000000000 +0200
@@ -54,6 +54,7 @@
 public:
     KCatalogStaticData() {}
 
+    QHash<QByteArray /*domain*/, QString /*directory*/> customCatalogDirs;
     QMutex mutex;
 };
 
@@ -118,6 +119,15 @@
 {
     QString relpath = QStringLiteral("%1/LC_MESSAGES/%2.mo")
                       .arg(language, QFile::decodeName(domain));
+
+    {
+        QMutexLocker lock(&catalogStaticData->mutex);
+        const QString customLocaleDir = 
catalogStaticData->customCatalogDirs.value(domain);
+        if (!customLocaleDir.isEmpty() && QFileInfo::exists(customLocaleDir + 
QLatin1Char('/') + relpath)) {
+            return customLocaleDir;
+        }
+    }
+
     QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
                                           QStringLiteral("locale/") + relpath);
     QString localeDir;
@@ -136,6 +146,15 @@
     QStringList localeDirPaths = 
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
                                  QStringLiteral("locale"),
                                  QStandardPaths::LocateDirectory);
+
+    {
+        QMutexLocker lock(&catalogStaticData->mutex);
+        auto it = catalogStaticData->customCatalogDirs.constFind(domain_);
+        if (it != catalogStaticData->customCatalogDirs.constEnd()) {
+            localeDirPaths.prepend(*it);
+        }
+    }
+
     QSet<QString> availableLanguages;
     foreach (const QString &localDirPath, localeDirPaths) {
         QDir localeDir(localDirPath);
@@ -257,3 +276,10 @@
     }
 }
 
+void KCatalog::addDomainLocaleDir(const QByteArray &domain, const QString 
&path)
+{
+    QMutexLocker(&catalogStaticData()->mutex);
+    catalogStaticData()->customCatalogDirs.insert(domain, path);
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/src/kcatalog_p.h 
new/ki18n-5.37.0/src/kcatalog_p.h
--- old/ki18n-5.36.0/src/kcatalog_p.h   2017-07-06 21:17:44.000000000 +0200
+++ new/ki18n-5.37.0/src/kcatalog_p.h   2017-08-06 20:03:41.000000000 +0200
@@ -123,6 +123,8 @@
      */
     static QSet<QString> availableCatalogLanguages(const QByteArray &domain);
 
+    static void addDomainLocaleDir(const QByteArray &domain, const QString 
&path);
+
 private:
     Q_DISABLE_COPY(KCatalog)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/src/klocalizedstring.cpp 
new/ki18n-5.37.0/src/klocalizedstring.cpp
--- old/ki18n-5.36.0/src/klocalizedstring.cpp   2017-07-06 21:17:44.000000000 
+0200
+++ new/ki18n-5.37.0/src/klocalizedstring.cpp   2017-08-06 20:03:41.000000000 
+0200
@@ -1554,6 +1554,10 @@
     }
 }
 
+void KLocalizedString::addDomainLocaleDir(const QByteArray &domain, const 
QString &path) {
+    KCatalog::addDomainLocaleDir(domain, path);
+}
+
 KLocalizedString ki18n(const char *text)
 {
     return KLocalizedString(nullptr, nullptr, text, nullptr, false);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.36.0/src/klocalizedstring.h 
new/ki18n-5.37.0/src/klocalizedstring.h
--- old/ki18n-5.36.0/src/klocalizedstring.h     2017-07-06 21:17:44.000000000 
+0200
+++ new/ki18n-5.37.0/src/klocalizedstring.h     2017-08-06 20:03:41.000000000 
+0200
@@ -163,7 +163,7 @@
      *
      * \return finalized translation
      */
-    QString toString() const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT QString toString() const;
 
     /**
      * Like \c toString, but look for translation only in given languages.
@@ -175,7 +175,7 @@
      * \param languages list of language codes (by decreasing priority)
      * \return finalized translation
      */
-    QString toString(const QStringList &languages) const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT QString toString(const QStringList &languages) const;
 
 #if 0 // until locale system is ready
     /**
@@ -198,7 +198,7 @@
      * \param domain the translation domain
      * \return finalized translation
      */
-    QString toString(const char *domain) const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT QString toString(const char *domain) const;
 
     /**
      * Like \c toString, but resolve KUIT markup into given visual format.
@@ -211,7 +211,7 @@
      * \param format the target visual format
      * \return finalized translation
      */
-    QString toString(Kuit::VisualFormat format) const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT QString toString(Kuit::VisualFormat format) const;
 
     /**
      * Indicate to look for translation only in given languages.
@@ -219,7 +219,7 @@
      * \param languages list of language codes (by decreasing priority)
      * \return updated \c KLocalizedString
      */
-    KLocalizedString withLanguages(const QStringList &languages) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString withLanguages(const QStringList 
&languages) const;
 
 #if 0 // until locale system is ready
     /**
@@ -237,7 +237,7 @@
      * \param domain the translation domain
      * \return updated \c KLocalizedString
      */
-    KLocalizedString withDomain(const char *domain) const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString withDomain(const char *domain) const;
 
     /**
      * Indicate to resolve KUIT markup into given visual format.
@@ -247,7 +247,7 @@
      * \param format the target visual format
      * \return updated \c KLocalizedString
      */
-    KLocalizedString withFormat(Kuit::VisualFormat format) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString withFormat(Kuit::VisualFormat format) 
const;
 
     /**
      * Substitute an int argument into the message.
@@ -261,8 +261,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(int a, int fieldWidth = 0, int base = 10,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(int a, int fieldWidth = 0, int 
base = 10,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute an unsigned int argument into the message.
@@ -276,8 +276,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(uint a, int fieldWidth = 0, int base = 10,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(uint a, int fieldWidth = 0, int 
base = 10,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute a long argument into the message.
@@ -291,8 +291,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(long a, int fieldWidth = 0, int base = 10,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(long a, int fieldWidth = 0, int 
base = 10,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute an unsigned long argument into the message.
@@ -306,8 +306,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(ulong a, int fieldWidth = 0, int base = 10,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(ulong a, int fieldWidth = 0, int 
base = 10,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute a long long argument into the message.
@@ -321,8 +321,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(qlonglong a, int fieldWidth = 0, int base = 10,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(qlonglong a, int fieldWidth = 0, 
int base = 10,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute an unsigned long long argument into the message.
@@ -336,8 +336,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(qulonglong a, int fieldWidth = 0, int base = 10,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(qulonglong a, int fieldWidth = 0, 
int base = 10,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute a double argument into the message.
@@ -351,9 +351,9 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(double a, int fieldWidth = 0,
-                          char format = 'g', int precision = -1,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(double a, int fieldWidth = 0,
+                                            char format = 'g', int precision = 
-1,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute a \c QChar argument into the message.
@@ -365,8 +365,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(QChar a, int fieldWidth = 0,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(QChar a, int fieldWidth = 0,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute a \c QString argument into the message.
@@ -378,8 +378,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(const QString &a, int fieldWidth = 0,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(const QString &a, int fieldWidth = 
0,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Substitute another \c KLocalizedString into the message.
@@ -391,8 +391,8 @@
      *                 field width is greater than argument width
      * \return updated \c KLocalizedString
      */
-    KLocalizedString subs(const KLocalizedString &a, int fieldWidth = 0,
-                          QChar fillChar = QLatin1Char(' ')) const 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString subs(const KLocalizedString &a, int 
fieldWidth = 0,
+                                            QChar fillChar = QLatin1Char(' ')) 
const;
 
     /**
      * Add dynamic context to the message.
@@ -403,8 +403,8 @@
      * \param value context value
      * \return updated \c KLocalizedString
      */
-    KLocalizedString inContext(const QString &key,
-                               const QString &value) const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString inContext(const QString &key,
+                                                 const QString &value) const;
 
     /**
      * Relax matching between placeholders and arguments.
@@ -423,7 +423,7 @@
      *
      * \return updated \c KLocalizedString
      */
-    KLocalizedString relaxSubs() const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString relaxSubs() const;
 
     /**
      * Do not resolve KUIT markup.
@@ -435,7 +435,7 @@
      *
      * \return updated \c KLocalizedString
      */
-    KLocalizedString ignoreMarkup() const Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KLocalizedString ignoreMarkup() const;
 
     /**
      * Set the given domain as application's main domain.
@@ -557,6 +557,16 @@
      */
     static QSet<QString> availableDomainTranslations(const QByteArray &domain);
 
+    /*
+     * Load locales for a domain from a specific location
+     * This is useful for resources which have their translation files
+     * outside of the usual $XDG_DATA_DIRS/locales location
+     *
+     * \param the domain to load resources from
+     * \path the full file path to the locale directory
+     */
+    static void addDomainLocaleDir(const QByteArray &domain, const QString 
&path);
+
     /**
      * Find a path to the localized file for the given original path.
      *
@@ -572,7 +582,7 @@
      *
      * \return path to the localized file if found, original path otherwise
      */
-    static QString localizedFilePath(const QString &filePath) 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT static QString localizedFilePath(const QString 
&filePath);
 
     /**
      * Remove accelerator marker from a UI text label.
@@ -588,7 +598,7 @@
      * \param label UI label which may contain an accelerator marker
      * \return label without the accelerator marker
      */
-    static QString removeAcceleratorMarker(const QString &label) 
Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT static QString removeAcceleratorMarker(const QString 
&label);
 
     /**
      * Translate a message with Qt semantics.
@@ -605,8 +615,8 @@
      *             with roundtrip TS->PO->TS through
      *             Qt's \c lupdate and \c lconvert commands.
      */
-    KI18N_DEPRECATED static QString translateQt(const char *context, const 
char *text,
-                               const char *comment, int n) Q_REQUIRED_RESULT;
+    Q_REQUIRED_RESULT KI18N_DEPRECATED static QString translateQt(const char 
*context, const char *text,
+                               const char *comment, int n);
 
     /**
      * Add another domain to search for Qt translations.


Reply via email to