Hello community,

here is the log from the commit of package ki18n for openSUSE:Factory checked 
in at 2015-12-29 12:52:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ki18n (Old)
 and      /work/SRC/openSUSE:Factory/.ki18n.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ki18n"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ki18n/ki18n.changes      2015-11-24 
22:23:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ki18n.new/ki18n.changes 2015-12-29 
12:52:48.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Dec 10 23:06:26 UTC 2015 - hrvoje.sen...@gmail.com
+
+- Update to 5.17.0
+  * For more details please see:
+    https://www.kde.org/announcements/kde-frameworks-5.17.0.php
+
+-------------------------------------------------------------------

Old:
----
  ki18n-5.16.0.tar.xz

New:
----
  ki18n-5.17.0.tar.xz

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

Other differences:
------------------
++++++ ki18n.spec ++++++
--- /var/tmp/diff_new_pack.Tj81E1/_old  2015-12-29 12:52:49.000000000 +0100
+++ /var/tmp/diff_new_pack.Tj81E1/_new  2015-12-29 12:52:49.000000000 +0100
@@ -18,9 +18,9 @@
 
 %bcond_without lang
 %define lname   libKF5I18n5
-%define _tar_path 5.16
+%define _tar_path 5.17
 Name:           ki18n
-Version:        5.16.0
+Version:        5.17.0
 Release:        0
 BuildRequires:  cmake >= 2.8.12
 BuildRequires:  extra-cmake-modules >= %{_tar_path}
@@ -30,6 +30,7 @@
 BuildRequires:  python
 BuildRequires:  cmake(Qt5Concurrent) >= 5.3.0
 BuildRequires:  cmake(Qt5Core) >= 5.3.0
+BuildRequires:  cmake(Qt5Qml) >= 5.3.0
 BuildRequires:  cmake(Qt5Script) >= 5.3.0
 BuildRequires:  cmake(Qt5Test) >= 5.3.0
 Summary:        KDE Gettext-based UI text internationalization

++++++ ki18n-5.16.0.tar.xz -> ki18n-5.17.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/CMakeLists.txt 
new/ki18n-5.17.0/CMakeLists.txt
--- old/ki18n-5.16.0/CMakeLists.txt     2015-11-08 13:24:31.000000000 +0100
+++ new/ki18n-5.17.0/CMakeLists.txt     2015-12-06 22:27:43.000000000 +0100
@@ -4,7 +4,7 @@
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.16.0  NO_MODULE)
+find_package(ECM 5.17.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)
 
@@ -16,7 +16,7 @@
 include(ECMSetupVersion)
 include(ECMGenerateHeaders)
 
-set(KF5_VERSION "5.16.0") # handled by release scripts
+set(KF5_VERSION "5.17.0") # handled by release scripts
 
 ecm_setup_version(
   ${KF5_VERSION}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/autotests/CMakeLists.txt 
new/ki18n-5.17.0/autotests/CMakeLists.txt
--- old/ki18n-5.16.0/autotests/CMakeLists.txt   2015-11-08 13:24:31.000000000 
+0100
+++ new/ki18n-5.17.0/autotests/CMakeLists.txt   2015-12-06 22:27:43.000000000 
+0100
@@ -2,7 +2,12 @@
 
 include(ECMAddTests)
 
-find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test Concurrent)
+find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test Qml Concurrent)
+
+ecm_add_test(ki18ndeclarativetest.cpp
+    TEST_NAME "ki18n-declarativetest"
+    LINK_LIBRARIES Qt5::Test Qt5::Qml KF5::I18n
+)
 
 ecm_add_test(klocalizedstringtest.cpp
     TEST_NAME "ki18n-klocalizedstringtest"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/autotests/ki18ndeclarativetest.cpp 
new/ki18n-5.17.0/autotests/ki18ndeclarativetest.cpp
--- old/ki18n-5.16.0/autotests/ki18ndeclarativetest.cpp 1970-01-01 
01:00:00.000000000 +0100
+++ new/ki18n-5.17.0/autotests/ki18ndeclarativetest.cpp 2015-12-06 
22:27:43.000000000 +0100
@@ -0,0 +1,49 @@
+/*  This file is part of the KDE libraries
+    Copyright (C) 2006 Chusslove Illich <caslav.i...@gmx.net>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#include <QQmlEngine>
+#include <QQmlComponent>
+#include <QQmlContext>
+#include <QTest>
+
+#include <KLocalizedContext>
+
+class KI18nDeclarativeTest : public QObject
+{
+Q_OBJECT
+
+private Q_SLOTS:
+    void testLocalizedContext() {
+        KLocalizedContext ctx;
+        QUrl input = QUrl::fromLocalFile(QFINDTESTDATA("test.qml"));
+
+        QQmlEngine engine;
+        engine.rootContext()->setContextObject(&ctx);
+        QQmlComponent component(&engine, input, 
QQmlComponent::PreferSynchronous);
+        QObject *object = component.create();
+
+        QVERIFY(object);
+        QVERIFY(!component.isLoading());
+        QCOMPARE(object->property("testString").toString(), 
QStringLiteral("Awesome"));
+    }
+};
+
+QTEST_MAIN(KI18nDeclarativeTest)
+
+#include "ki18ndeclarativetest.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/autotests/test.qml 
new/ki18n-5.17.0/autotests/test.qml
--- old/ki18n-5.16.0/autotests/test.qml 1970-01-01 01:00:00.000000000 +0100
+++ new/ki18n-5.17.0/autotests/test.qml 2015-12-06 22:27:43.000000000 +0100
@@ -0,0 +1,6 @@
+import QtQml 2.1
+
+QtObject
+{
+    readonly property string testString: i18n("Awesome")
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/docs/programmers-guide.md 
new/ki18n-5.17.0/docs/programmers-guide.md
--- old/ki18n-5.16.0/docs/programmers-guide.md  2015-11-08 13:24:31.000000000 
+0100
+++ new/ki18n-5.17.0/docs/programmers-guide.md  2015-12-06 22:27:43.000000000 
+0100
@@ -1229,7 +1229,7 @@
 source to create the catalog template `fooapp.pot`:
 
 ~~~
-find -name \*.cpp -o -name \*.h | sort \
+find -name \*.cpp -o -name \*.h -o -name \*.qml | sort \
 | xargs xgettext $EXTOPTS -o fooapp.pot
 ~~~
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/po/ast/ki18n5.po 
new/ki18n-5.17.0/po/ast/ki18n5.po
--- old/ki18n-5.16.0/po/ast/ki18n5.po   2015-11-08 13:24:31.000000000 +0100
+++ new/ki18n-5.17.0/po/ast/ki18n5.po   2015-12-06 22:27:43.000000000 +0100
@@ -7,9 +7,9 @@
 "Project-Id-Version: kdelibs4-1\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2015-01-26 07:50+0000\n"
-"PO-Revision-Date: 2015-07-11 16:23+0100\n"
+"PO-Revision-Date: 2015-11-11 00:18+0100\n"
 "Last-Translator: enolp <en...@softastur.org>\n"
-"Language-Team: Asturian <alminsitrado...@softastur.org>\n"
+"Language-Team: Asturian <kde-i18n-...@kde.org>\n"
 "Language: ast\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -85,7 +85,6 @@
 msgstr "Supr"
 
 #: kuitmarkup.cpp:331
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Delete"
 msgstr "Desaniciar"
@@ -131,25 +130,21 @@
 msgstr "Hyper"
 
 #: kuitmarkup.cpp:339
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Ins"
 msgstr "Inx"
 
 #: kuitmarkup.cpp:340
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Insert"
 msgstr "Inxertar"
 
 #: kuitmarkup.cpp:341
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Left"
 msgstr "Esquierda"
 
 #: kuitmarkup.cpp:342
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Menu"
 msgstr "Menú"
@@ -214,7 +209,6 @@
 msgstr ""
 
 #: kuitmarkup.cpp:353
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Right"
 msgstr "Drecha"
@@ -237,7 +231,6 @@
 msgstr "Espaciu"
 
 #: kuitmarkup.cpp:357
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Super"
 msgstr "Super"
@@ -249,13 +242,11 @@
 msgstr "PetSis"
 
 #: kuitmarkup.cpp:359
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Tab"
 msgstr "Tabulador"
 
 #: kuitmarkup.cpp:360
-#, fuzzy
 msgctxt "keyboard-key-name"
 msgid "Up"
 msgstr "Arriba"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/po/nb/ki18n5.po 
new/ki18n-5.17.0/po/nb/ki18n5.po
--- old/ki18n-5.16.0/po/nb/ki18n5.po    2015-11-08 13:24:31.000000000 +0100
+++ new/ki18n-5.17.0/po/nb/ki18n5.po    2015-12-06 22:27:43.000000000 +0100
@@ -1,3 +1,5 @@
+# Translation of ki18n5 to Norwegian Bokmål
+#
 # Knut Yrvin <knut.yr...@gmail.com>, 2002, 2003, 2004, 2005.
 # Bjørn Steensrud <bjor...@skogkatt.homelinux.org>, 2002, 2003, 2004, 2005, 
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
 # Eskild Hustvedt <zerod...@skolelinux.no>, 2004, 2005.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/po/se/ki18n5.po 
new/ki18n-5.17.0/po/se/ki18n5.po
--- old/ki18n-5.16.0/po/se/ki18n5.po    2015-11-08 13:24:31.000000000 +0100
+++ new/ki18n-5.17.0/po/se/ki18n5.po    2015-12-06 22:27:43.000000000 +0100
@@ -1,3 +1,5 @@
+# Translation of ki18n5 to Northern Sami
+#
 # Børre Gaup <boe...@skolelinux.no>, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 
2009, 2010, 2011, 2012.
 msgid ""
 msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/src/CMakeLists.txt 
new/ki18n-5.17.0/src/CMakeLists.txt
--- old/ki18n-5.16.0/src/CMakeLists.txt 2015-11-08 13:24:31.000000000 +0100
+++ new/ki18n-5.17.0/src/CMakeLists.txt 2015-12-06 22:27:43.000000000 +0100
@@ -4,6 +4,7 @@
     kcatalog.cpp
     kuitmarkup.cpp
     common_helpers.cpp
+    klocalizedcontext.cpp
     main.cpp
 )
 
@@ -28,6 +29,7 @@
 
 ecm_generate_headers(KI18n_HEADERS
   HEADER_NAMES
+    KLocalizedContext
     KLocalizedString
     KLocalizedTranslator
     KuitMarkup
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/src/kcatalog_p.h 
new/ki18n-5.17.0/src/kcatalog_p.h
--- old/ki18n-5.16.0/src/kcatalog_p.h   2015-11-08 13:24:31.000000000 +0100
+++ new/ki18n-5.17.0/src/kcatalog_p.h   2015-12-06 22:27:43.000000000 +0100
@@ -124,7 +124,7 @@
     static QSet<QString> availableCatalogLanguages(const QByteArray &domain);
 
 private:
-    Q_DISABLE_COPY(KCatalog);
+    Q_DISABLE_COPY(KCatalog)
 
     KCatalogPrivate *const d;
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/src/klocalizedcontext.cpp 
new/ki18n-5.17.0/src/klocalizedcontext.cpp
--- old/ki18n-5.16.0/src/klocalizedcontext.cpp  1970-01-01 01:00:00.000000000 
+0100
+++ new/ki18n-5.17.0/src/klocalizedcontext.cpp  2015-12-06 22:27:43.000000000 
+0100
@@ -0,0 +1,428 @@
+/*
+ *   Copyright 2013 Marco Martin <m...@kde.org>
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU Library General Public License as
+ *   published by the Free Software Foundation; either version 2, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details
+ *
+ *   You should have received a copy of the GNU Library General Public
+ *   License along with this program; if not, write to the
+ *   Free Software Foundation, Inc.,
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+// Undefine this because we don't want our i18n*() method names to be turned 
into i18nd*()
+#undef TRANSLATION_DOMAIN
+
+#include "klocalizedcontext.h"
+
+#include <QDebug>
+
+#include <klocalizedstring.h>
+
+class KLocalizedContextPrivate
+{
+public:
+    QString m_translationDomain;
+};
+
+KLocalizedContext::KLocalizedContext(QObject *parent)
+    : QObject(parent)
+    , d_ptr(new KLocalizedContextPrivate)
+{
+}
+
+KLocalizedContext::~KLocalizedContext()
+{
+    delete d_ptr;
+}
+
+QString KLocalizedContext::translationDomain() const
+{
+    Q_D(const KLocalizedContext);
+    return d->m_translationDomain;
+}
+
+void KLocalizedContext::setTranslationDomain(const QString &domain)
+{
+    Q_D(KLocalizedContext);
+    if (domain != d->m_translationDomain) {
+        d->m_translationDomain = domain;
+        Q_EMIT translationDomainChanged(domain);
+    }
+}
+
+static void subsVariant(KLocalizedString &trMessage, const QVariant &value)
+{
+    switch(value.type()) {
+        case QVariant::String:
+            trMessage = trMessage.subs(value.value<QString>());
+            break;
+        case QVariant::Int:
+            trMessage = trMessage.subs(value.toInt());
+            break;
+        case QVariant::Double:
+            trMessage = trMessage.subs(value.toDouble());
+            break;
+        case QVariant::Char:
+            trMessage = trMessage.subs(value.toChar());
+            break;
+        default:
+            if (value.canConvert(QVariant::String)) {
+                trMessage = trMessage.subs(value.toString());
+            } else {
+                trMessage = trMessage.subs(QStringLiteral("???"));
+                qWarning() << "couldn't convert" << value << "to translate";
+            }
+
+    }
+}
+
+static void resolveMessage(KLocalizedString &trMessage,
+                           const QVariant &param1, const QVariant &param2, 
const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                           const QVariant &param6, const QVariant &param7, 
const QVariant &param8, const QVariant &param9, const QVariant &param10 = 
QString())
+{
+    if (!param1.isNull()) {
+        subsVariant(trMessage, param1);
+    }
+    if (!param2.isNull()) {
+        subsVariant(trMessage, param2);
+    }
+    if (!param3.isNull()) {
+        subsVariant(trMessage, param3);
+    }
+    if (!param4.isNull()) {
+        subsVariant(trMessage, param4);
+    }
+    if (!param5.isNull()) {
+        subsVariant(trMessage, param5);
+    }
+    if (!param6.isNull()) {
+        subsVariant(trMessage, param6);
+    }
+    if (!param7.isNull()) {
+        subsVariant(trMessage, param7);
+    }
+    if (!param8.isNull()) {
+        subsVariant(trMessage, param8);
+    }
+    if (!param9.isNull()) {
+        subsVariant(trMessage, param9);
+    }
+    if (!param10.isNull()) {
+        subsVariant(trMessage, param10);
+    }
+}
+
+QString KLocalizedContext::i18n(const QString &message,
+                                const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (message.isEmpty()) {
+        qWarning() << "i18n() needs at least one parameter";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = ki18nd(d->m_translationDomain.toUtf8().constData(), 
message.toUtf8().constData());
+    } else {
+        trMessage = ki18n(message.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::i18nc(const QString &context, const QString 
&message,
+                                 const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                 const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (context.isEmpty() || message.isEmpty()) {
+        qWarning() << "i18nc() needs at least two arguments";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = ki18ndc(d->m_translationDomain.toUtf8().constData(), 
context.toUtf8().constData(), message.toUtf8().constData());
+    } else {
+        trMessage = ki18nc(context.toUtf8().constData(), 
message.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::i18np(const QString &singular, const QString 
&plural,
+                                 const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                 const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (singular.isEmpty() || plural.isEmpty()) {
+        qWarning() << "i18np() needs at least two arguments";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = ki18ndp(d->m_translationDomain.toUtf8().constData(), 
singular.toUtf8().constData(), plural.toUtf8().constData());
+    } else {
+        trMessage = ki18np(singular.toUtf8().constData(), 
plural.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::i18ncp(const QString &context, const QString 
&singular, const QString &plural,
+                                  const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                  const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (context.isEmpty() || singular.isEmpty() || plural.isEmpty()) {
+        qWarning() << "i18ncp() needs at least three arguments";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = ki18ndcp(d->m_translationDomain.toUtf8().constData(), 
context.toUtf8().constData(), singular.toUtf8().constData(), 
plural.toUtf8().constData());
+    } else {
+        trMessage = ki18ncp(context.toUtf8().constData(), 
singular.toUtf8().constData(), plural.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::i18nd(const QString &domain, const QString &message,
+                                 const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                 const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || message.isEmpty()) {
+        qWarning() << "i18nd() needs at least two parameters";
+        return QString();
+    }
+
+    KLocalizedString trMessage = ki18nd(domain.toUtf8().constData(), 
message.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::i18ndc(const QString &domain, const QString 
&context, const QString &message,
+                                  const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                  const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || context.isEmpty() || message.isEmpty()) {
+        qWarning() << "i18ndc() needs at least three arguments";
+        return QString();
+    }
+
+    KLocalizedString trMessage = ki18ndc(domain.toUtf8().constData(), 
context.toUtf8().constData(), message.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::i18ndp(const QString &domain, const QString 
&singular, const QString &plural,
+                                  const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                  const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || singular.isEmpty() || plural.isEmpty()) {
+        qWarning() << "i18ndp() needs at least three arguments";
+        return QString();
+    }
+
+    KLocalizedString trMessage = ki18ndp(domain.toUtf8().constData(), 
singular.toUtf8().constData(), plural.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::i18ndcp(const QString &domain, const QString 
&context, const QString &singular, const QString &plural,
+                                   const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                   const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || context.isEmpty() || singular.isEmpty() || 
plural.isEmpty()) {
+        qWarning() << "i18ndcp() needs at least four arguments";
+        return QString();
+    }
+
+    KLocalizedString trMessage = ki18ndcp(domain.toUtf8().constData(), 
context.toUtf8().constData(), singular.toUtf8().constData(), 
plural.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+/////////////////////////
+
+QString KLocalizedContext::xi18n(const QString &message,
+                                const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (message.isEmpty()) {
+        qWarning() << "xi18n() needs at least one parameter";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = kxi18nd(d->m_translationDomain.toUtf8().constData(), 
message.toUtf8().constData());
+    } else {
+        trMessage = kxi18n(message.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::xi18nc(const QString &context, const QString 
&message,
+                                 const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                 const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (context.isEmpty() || message.isEmpty()) {
+        qWarning() << "xi18nc() needs at least two arguments";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = kxi18ndc(d->m_translationDomain.toUtf8().constData(), 
context.toUtf8().constData(), message.toUtf8().constData());
+    } else {
+        trMessage = kxi18nc(context.toUtf8().constData(), 
message.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::xi18np(const QString &singular, const QString 
&plural,
+                                 const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                 const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (singular.isEmpty() || plural.isEmpty()) {
+        qWarning() << "xi18np() needs at least two arguments";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = kxi18ndp(d->m_translationDomain.toUtf8().constData(), 
singular.toUtf8().constData(), plural.toUtf8().constData());
+    } else {
+        trMessage = kxi18np(singular.toUtf8().constData(), 
plural.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::xi18ncp(const QString &context, const QString 
&singular, const QString &plural,
+                                  const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                  const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (context.isEmpty() || singular.isEmpty() || plural.isEmpty()) {
+        qWarning() << "xi18ncp() needs at least three arguments";
+        return QString();
+    }
+
+    Q_D(const KLocalizedContext);
+    KLocalizedString trMessage;
+    if (!d->m_translationDomain.isEmpty()) {
+        trMessage = kxi18ndcp(d->m_translationDomain.toUtf8().constData(), 
context.toUtf8().constData(), singular.toUtf8().constData(), 
plural.toUtf8().constData());
+    } else {
+        trMessage = kxi18ncp(context.toUtf8().constData(), 
singular.toUtf8().constData(), plural.toUtf8().constData());
+    }
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::xi18nd(const QString &domain, const QString 
&message,
+                                 const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                 const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || message.isEmpty()) {
+        qWarning() << "xi18nd() needs at least two parameters";
+        return QString();
+    }
+
+    KLocalizedString trMessage = kxi18nd(domain.toUtf8().constData(), 
message.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::xi18ndc(const QString &domain, const QString 
&context, const QString &message,
+                                  const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                  const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || context.isEmpty() || message.isEmpty()) {
+        qWarning() << "x18ndc() needs at least three arguments";
+        return QString();
+    }
+
+    KLocalizedString trMessage = ki18ndc(domain.toUtf8().constData(), 
context.toUtf8().constData(), message.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::xi18ndp(const QString &domain, const QString 
&singular, const QString &plural,
+                                  const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                  const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || singular.isEmpty() || plural.isEmpty()) {
+        qWarning() << "xi18ndp() needs at least three arguments";
+        return QString();
+    }
+
+    KLocalizedString trMessage = ki18ndp(domain.toUtf8().constData(), 
singular.toUtf8().constData(), plural.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
+QString KLocalizedContext::xi18ndcp(const QString &domain, const QString 
&context, const QString &singular, const QString &plural,
+                                   const QVariant &param1, const QVariant 
&param2, const QVariant &param3, const QVariant &param4, const QVariant &param5,
+                                   const QVariant &param6, const QVariant 
&param7, const QVariant &param8, const QVariant &param9, const QVariant 
&param10) const
+{
+    if (domain.isEmpty() || context.isEmpty() || singular.isEmpty() || 
plural.isEmpty()) {
+        qWarning() << "xi18ndcp() needs at least four arguments";
+        return QString();
+    }
+
+    KLocalizedString trMessage = kxi18ndcp(domain.toUtf8().constData(), 
context.toUtf8().constData(), singular.toUtf8().constData(), 
plural.toUtf8().constData());
+
+    resolveMessage(trMessage, param1, param2, param3, param4, param5, param6, 
param7, param8, param9, param10);
+
+    return trMessage.toString();
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.16.0/src/klocalizedcontext.h 
new/ki18n-5.17.0/src/klocalizedcontext.h
--- old/ki18n-5.16.0/src/klocalizedcontext.h    1970-01-01 01:00:00.000000000 
+0100
+++ new/ki18n-5.17.0/src/klocalizedcontext.h    2015-12-06 22:27:43.000000000 
+0100
@@ -0,0 +1,136 @@
+/*
+ *   Copyright 2011 Marco Martin <m...@kde.org>
+ *   Copyright 2015 Aleix Pol Gonzalez <aleix...@kde.org>
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU Library General Public License as
+ *   published by the Free Software Foundation; either version 2, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details
+ *
+ *   You should have received a copy of the GNU Library General Public
+ *   License along with this program; if not, write to the
+ *   Free Software Foundation, Inc.,
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+#ifndef KLOCALIZEDCONTEXT_H
+#define KLOCALIZEDCONTEXT_H
+
+#include <QObject>
+#include <QVariant>
+#include <ki18n_export.h>
+
+/**
+ * This class is meant to be used to simplify integration of the KI18n 
framework
+ * in QML.
+ *
+ * The way to do so, is by creating this object and setting it as a context
+ * object:
+ *
+ * @code
+ * QQuickView* view = new QQuickView;
+ * view.engine()->rootContext()->setContextObject(new KLocalizedContext(view));
+ * @endcode
+ *
+ * Then i18n*() functions should be available for use from the code loaded in
+ * the engine, for the view.
+ *
+ * @since 5.17
+ */
+
+class KI18N_EXPORT KLocalizedContext : public QObject
+{
+    Q_OBJECT
+
+    /**
+     * This property only needs to be specified if the context is being run on 
a library.
+     * in an application there is no need to set the translation domain as the 
application's
+     * domain can be used.
+     */
+    Q_PROPERTY(QString translationDomain READ translationDomain WRITE 
setTranslationDomain NOTIFY translationDomainChanged)
+
+public:
+    explicit KLocalizedContext(QObject *parent = Q_NULLPTR);
+    ~KLocalizedContext() Q_DECL_OVERRIDE;
+
+    QString translationDomain() const;
+    void setTranslationDomain(const QString &domain);
+
+    Q_INVOKABLE QString i18n(const QString &message,
+                             const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                             const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString i18nc(const QString &context, const QString &message,
+                              const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                              const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString i18np(const QString &singular, const QString &plural,
+                              const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                              const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString i18ncp(const QString &context, const QString 
&singular, const QString &plural,
+                               const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                               const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString i18nd(const QString &domain, const QString &message,
+                              const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                              const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString i18ndc(const QString &domain, const QString &context, 
const QString &message,
+                               const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                               const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString i18ndp(const QString &domain, const QString &singular, 
const QString &plural,
+                               const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                               const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString i18ndcp(const QString &domain, const QString &context, 
const QString &singular, const QString &plural,
+                                const QVariant &p1 = QVariant(), const 
QVariant &p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 
= QVariant(), const QVariant &p5 = QVariant(),
+                                const QVariant &p6 = QVariant(), const 
QVariant &p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 
= QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18n(const QString &message,
+                             const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                             const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18nc(const QString &context, const QString &message,
+                              const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                              const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18np(const QString &singular, const QString &plural,
+                              const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                              const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18ncp(const QString &context, const QString 
&singular, const QString &plural,
+                               const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                               const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18nd(const QString &domain, const QString &message,
+                              const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                              const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18ndc(const QString &domain, const QString &context, 
const QString &message,
+                               const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                               const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18ndp(const QString &domain, const QString 
&singular, const QString &plural,
+                               const QVariant &p1 = QVariant(), const QVariant 
&p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 = 
QVariant(), const QVariant &p5 = QVariant(),
+                               const QVariant &p6 = QVariant(), const QVariant 
&p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 = 
QVariant(), const QVariant &p10 = QVariant()) const;
+
+    Q_INVOKABLE QString xi18ndcp(const QString &domain, const QString 
&context, const QString &singular, const QString &plural,
+                                const QVariant &p1 = QVariant(), const 
QVariant &p2 = QVariant(), const QVariant &p3 = QVariant(), const QVariant &p4 
= QVariant(), const QVariant &p5 = QVariant(),
+                                const QVariant &p6 = QVariant(), const 
QVariant &p7 = QVariant(), const QVariant &p8 = QVariant(), const QVariant &p9 
= QVariant(), const QVariant &p10 = QVariant()) const;
+
+Q_SIGNALS:
+    void translationDomainChanged(const QString& translationDomain);
+
+private:
+    class KLocalizedContextPrivate * const d_ptr;
+    Q_DECLARE_PRIVATE(KLocalizedContext)
+};
+
+#endif


Reply via email to