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.
