Hello community,

here is the log from the commit of package kcoreaddons for openSUSE:Factory 
checked in at 2018-01-09 14:40:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcoreaddons (Old)
 and      /work/SRC/openSUSE:Factory/.kcoreaddons.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kcoreaddons"

Tue Jan  9 14:40:24 2018 rev:51 rq:559427 version:5.41.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kcoreaddons/kcoreaddons.changes  2017-11-16 
14:36:38.732174960 +0100
+++ /work/SRC/openSUSE:Factory/.kcoreaddons.new/kcoreaddons.changes     
2018-01-09 14:41:29.612717473 +0100
@@ -1,0 +2,18 @@
+Sun Dec 17 09:43:48 CET 2017 - lbeltr...@kde.org
+
+- Update to 5.41.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.41.0.php
+- Changes since 5.40.0:
+  * Autotest: fix for HOME having a trailing slash
+  * Input validation of SubJobs
+  * Warn about errors when parsing json files
+  * Install mimetype definitions for kcfg/kcfgc/ui.rc/knotify & qrc files
+  * Add a new function to measure the length by text.
+  * Keep widgets optional, as it's a test
+  * Look for Qt5 rather than Qt5Widgets
+  * Remove unused code
+  * Fix KAutoSave bug on file with white space in it
+
+-------------------------------------------------------------------

Old:
----
  kcoreaddons-5.40.0.tar.xz

New:
----
  kcoreaddons-5.41.0.tar.xz

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

Other differences:
------------------
++++++ kcoreaddons.spec ++++++
--- /var/tmp/diff_new_pack.sDHYQM/_old  2018-01-09 14:41:30.172691211 +0100
+++ /var/tmp/diff_new_pack.sDHYQM/_new  2018-01-09 14:41:30.172691211 +0100
@@ -18,13 +18,13 @@
 
 %bcond_without lang
 %define lname   libKF5CoreAddons5
-%define _tar_path 5.40
+%define _tar_path 5.41
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %global _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 Name:           kcoreaddons
-Version:        5.40.0
+Version:        5.41.0
 Release:        0
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_tar_path}

++++++ kcoreaddons-5.40.0.tar.xz -> kcoreaddons-5.41.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/CMakeLists.txt 
new/kcoreaddons-5.41.0/CMakeLists.txt
--- old/kcoreaddons-5.40.0/CMakeLists.txt       2017-11-05 09:26:40.000000000 
+0100
+++ new/kcoreaddons-5.41.0/CMakeLists.txt       2017-12-02 21:03:05.000000000 
+0100
@@ -1,10 +1,10 @@
 cmake_minimum_required(VERSION 3.0)
 
-set(KF5_VERSION "5.40.0") # handled by release scripts
+set(KF5_VERSION "5.41.0") # handled by release scripts
 project(KCoreAddons VERSION ${KF5_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 5.40.0  NO_MODULE)
+find_package(ECM 5.41.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)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/autotests/kautosavefiletest.cpp 
new/kcoreaddons-5.41.0/autotests/kautosavefiletest.cpp
--- old/kcoreaddons-5.40.0/autotests/kautosavefiletest.cpp      2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/autotests/kautosavefiletest.cpp      2017-12-02 
21:03:05.000000000 +0100
@@ -80,7 +80,16 @@
 
 void KAutoSaveFileTest::test_fileStaleFiles()
 {
-    // TODO
+    QUrl normalFile = QUrl::fromLocalFile(QDir::temp().absoluteFilePath("test 
directory/tîst me.txt"));
+
+    KAutoSaveFile saveFile(normalFile);
+    QVERIFY(saveFile.open(QIODevice::ReadWrite));
+    saveFile.write("testdata");
+    // Make sure the stale file is found
+    QVERIFY(saveFile.staleFiles(normalFile, QStringLiteral("qttest")).count() 
== 1);
+    saveFile.releaseLock();
+    // Make sure the stale file is deleted
+    QVERIFY(saveFile.staleFiles(normalFile, 
QStringLiteral("qttest")).isEmpty());
 }
 
 void KAutoSaveFileTest::test_applicationStaleFiles()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/autotests/kshelltest.cpp 
new/kcoreaddons-5.41.0/autotests/kshelltest.cpp
--- old/kcoreaddons-5.40.0/autotests/kshelltest.cpp     2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/autotests/kshelltest.cpp     2017-12-02 
21:03:05.000000000 +0100
@@ -41,14 +41,24 @@
     void abortOnMeta();
 };
 
+// The expansion of ~me isn't exactly QDir::homePath(), in case $HOME has a 
trailing slash, it's kept.
+static QString myHomePath()
+{
+#ifdef Q_OS_WIN
+    return QDir::homePath();
+#else
+    return QString::fromLocal8Bit(qgetenv("HOME"));
+#endif
+}
+
 void
 KShellTest::tildeExpand()
 {
     QString me(KUser().loginName());
     QCOMPARE(KShell::tildeExpand("~"), QDir::homePath());
     QCOMPARE(KShell::tildeExpand("~/dir"), QString(QDir::homePath() + "/dir"));
-    QCOMPARE(KShell::tildeExpand('~' + me), QDir::homePath());
-    QCOMPARE(KShell::tildeExpand('~' + me + "/dir"), QString(QDir::homePath() 
+ "/dir"));
+    QCOMPARE(KShell::tildeExpand('~' + me), myHomePath());
+    QCOMPARE(KShell::tildeExpand('~' + me + "/dir"), QString(myHomePath() + 
"/dir"));
 #ifdef Q_OS_WIN
     QCOMPARE(KShell::tildeExpand("^~" + me), QString('~' + me));
 #else
@@ -151,7 +161,7 @@
     QVERIFY(err == KShell::NoError);
 
     QCOMPARE(sj("~qU4rK ~" + KUser().loginName(), KShell::TildeExpand, &err),
-             QString("'~qU4rK' " + QDir::homePath()));
+             QString("'~qU4rK' " + myHomePath()));
     QVERIFY(err == KShell::NoError);
 
     const QString unicodeSpaceFileName = "test テスト.txt"; // #345140
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/autotests/kstringhandlertest.cpp 
new/kcoreaddons-5.41.0/autotests/kstringhandlertest.cpp
--- old/kcoreaddons-5.40.0/autotests/kstringhandlertest.cpp     2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/autotests/kstringhandlertest.cpp     2017-12-02 
21:03:05.000000000 +0100
@@ -153,3 +153,22 @@
              replaceZwsp(expected));
 }
 
+void KStringHandlerTest::logicalLength_data()
+{
+    QTest::addColumn<QString>("string");
+    QTest::addColumn<int>("expected");
+
+    QTest::newRow("Latin") << "foo bar baz" << 11;
+    QTest::newRow("Chinese") << QString::fromUtf8("\xe4\xbd\xa0\xe5\xa5\xbd") 
<< 4;
+    QTest::newRow("Japanese") << 
QString::fromUtf8("\xe9\x9d\x92\xe3\x81\x84\xe7\xa9\xba") << 6;
+    QTest::newRow("Korean") << 
QString::fromUtf8("\xed\x95\x9c\xea\xb5\xad\xec\x96\xb4") << 6;
+    QTest::newRow("Mixed") << QString::fromUtf8("KDE\xe6\xa1\x8c\xe9\x9d\xa2") 
<< 7;
+}
+
+void KStringHandlerTest::logicalLength()
+{
+    QFETCH(QString, string);
+    QFETCH(int, expected);
+    QCOMPARE(KStringHandler::logicalLength(string), expected);
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/autotests/kstringhandlertest.h 
new/kcoreaddons-5.41.0/autotests/kstringhandlertest.h
--- old/kcoreaddons-5.40.0/autotests/kstringhandlertest.h       2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/autotests/kstringhandlertest.h       2017-12-02 
21:03:05.000000000 +0100
@@ -14,6 +14,8 @@
     void obscure();
     void preProcessWrap_data();
     void preProcessWrap();
+    void logicalLength_data();
+    void logicalLength();
 
 private:
     static QString test;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/po/ar/kcoreaddons5_qt.po 
new/kcoreaddons-5.41.0/po/ar/kcoreaddons5_qt.po
--- old/kcoreaddons-5.40.0/po/ar/kcoreaddons5_qt.po     2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/po/ar/kcoreaddons5_qt.po     2017-12-02 
21:03:05.000000000 +0100
@@ -1,10 +1,10 @@
-# Safa Alfulaij <safa1996alful...@gmail.com>, 2014.
+# Safa Alfulaij <safa1996alful...@gmail.com>, 2014, 2017.
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-06-28 15:38+0300\n"
-"PO-Revision-Date: 2014-06-28 08:27+0300\n"
+"PO-Revision-Date: 2017-11-30 12:07+0300\n"
 "Last-Translator: Safa Alfulaij <safa1996alful...@gmail.com>\n"
 "Language-Team: Arabic <d...@arabeyes.org>\n"
 "Language: ar\n"
@@ -13,7 +13,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
 "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Virtaal 0.7.1\n"
+"X-Generator: Lokalize 2.0\n"
 "X-Qt-Contexts: true\n"
 
 #: lib/kaboutdata.cpp:291
@@ -24,97 +24,94 @@
 "licensing terms.\n"
 msgstr ""
 "لمُ تحدَّد شروط ترخيص لهذا البرنامج.\n"
-"فضلًا تحقّق من التوثيق أو أي مصدر\n"
+"رجاءً تحقّق من التّوثيق أو أيّ مصدر\n"
 "لأيّ شروط ترخيص.\n"
 
 #: lib/kaboutdata.cpp:301
 #, qt-format
 msgctxt "KAboutLicense|"
 msgid "This program is distributed under the terms of the %1."
-msgstr "هذا البرنامج مُوزَّع تحت شروط %1."
+msgstr "يُوزّع هذا البرنامج تحت شروط %1."
 
 #: lib/kaboutdata.cpp:347
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "GPL v2"
-msgstr ""
+msgstr "GPL v2"
 
 #: lib/kaboutdata.cpp:348
 msgctxt "KAboutLicense|@item license"
 msgid "GNU General Public License Version 2"
-msgstr "رخصة گنو العمومية الإصدار 2"
+msgstr "رخصة گنو العموميّة إصدارة ٢"
 
 #: lib/kaboutdata.cpp:351
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "LGPL v2"
-msgstr ""
+msgstr "LGPL v2"
 
 #: lib/kaboutdata.cpp:352
 msgctxt "KAboutLicense|@item license"
 msgid "GNU Lesser General Public License Version 2"
-msgstr "رخصة گنو العمومية الصغرى الإصدار 2"
+msgstr "رخصة گنو العموميّة الصّغرى إصدارة ٢"
 
 #: lib/kaboutdata.cpp:355
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "BSD License"
-msgstr ""
+msgstr "رخصة بي‌إس‌دي"
 
 #: lib/kaboutdata.cpp:356
 msgctxt "KAboutLicense|@item license"
 msgid "BSD License"
-msgstr ""
+msgstr "رخصة بي‌إس‌دي"
 
 #: lib/kaboutdata.cpp:359
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "Artistic License"
-msgstr ""
+msgstr "رخصة فنّيّة"
 
 #: lib/kaboutdata.cpp:360
 msgctxt "KAboutLicense|@item license"
 msgid "Artistic License"
-msgstr ""
+msgstr "رخصة فنّيّة"
 
 #: lib/kaboutdata.cpp:363
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "QPL v1.0"
-msgstr ""
+msgstr "QPL v1.0"
 
 #: lib/kaboutdata.cpp:364
 msgctxt "KAboutLicense|@item license"
 msgid "Q Public License"
-msgstr ""
+msgstr "رخصة كيوت العموميّة"
 
 #: lib/kaboutdata.cpp:367
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "GPL v3"
-msgstr ""
+msgstr "GPL v3"
 
 #: lib/kaboutdata.cpp:368
 msgctxt "KAboutLicense|@item license"
 msgid "GNU General Public License Version 3"
-msgstr "رخصة گنو العمومية الإصدار 3"
+msgstr "رخصة گنو العموميّة إصدارة ٣"
 
 #: lib/kaboutdata.cpp:371
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "LGPL v3"
-msgstr ""
+msgstr "LGPL v3"
 
 #: lib/kaboutdata.cpp:372
 msgctxt "KAboutLicense|@item license"
 msgid "GNU Lesser General Public License Version 3"
-msgstr "رخصة گنو العمومية الصغرى الإصدار 3"
+msgstr "رخصة گنو العموميّة الصّغرى إصدارة ٣"
 
 #: lib/kaboutdata.cpp:375
 msgctxt "KAboutLicense|@item license (short name)"
 msgid "LGPL v2.1"
-msgstr ""
+msgstr "LGPL v2.1"
 
 #: lib/kaboutdata.cpp:376
-#, fuzzy
-#| msgctxt "KAboutLicense|@item license"
-#| msgid "GNU Lesser General Public License Version 2"
 msgctxt "KAboutLicense|@item license"
 msgid "GNU Lesser General Public License Version 2.1"
-msgstr "رخصة گنو العمومية الصغرى الإصدار 2"
+msgstr "رخصة گنو العموميّة الصّغرى إصدارة ٢٫١"
 
 #: lib/kaboutdata.cpp:380
 msgctxt "KAboutLicense|@item license"
@@ -127,14 +124,6 @@
 msgstr "لم تُحدَّد"
 
 #: lib/kaboutdata.cpp:918
-#, fuzzy
-#| msgctxt ""
-#| "KAboutData|replace this with information about your translation team"
-#| msgid ""
-#| "<p>KDE is translated into many languages thanks to the work of the "
-#| "translation teams all over the world.</p><p>For more information on KDE "
-#| "internationalization visit <a href=\"http://l10n.kde.org\";>http://l10n.";
-#| "kde.org</a></p>"
 msgctxt "KAboutData|replace this with information about your translation team"
 msgid ""
 "<p>KDE is translated into many languages thanks to the work of the "
@@ -142,60 +131,57 @@
 "internationalization visit <a href=\"https://l10n.kde.org\";>https://l10n.kde.";
 "org</a></p>"
 msgstr ""
-"<p>يقوم طاقم عربآيز بترجمة واجهة كدي إلى اللغة العربية، وهذا بفضل جهود طاقم "
-"مترجمين متطوعين من كافة الدول العربية وغيرها.</p>\n"
-"<p>للمزيد من المعلومات حول ترجمة كدي إلى العربية، زُر <a href=\"http://www.";
-"arabeyes.org\">الموقع الرسمي لعربآيز</a>. فضلًا بلّغ عن أخطاء الترجمة على "
-"العنوان التالي: <a href=\"mailto:cont...@arabeyes.org\";>contact@arabeyes."
-"org</a></p>\n"
-"<p>تُتَرجَم كدي إلى لغات متعدّدة بفضل طواقم الترجمة من العالم بأسره.</p>\n"
-"<p>لمزيد من المعلومات زُر <a  href=\"http://l10n.kde.org \">http://l10n.kde.";
+"<p>يعمل أفراد طاقم عربآيز على ترجمة واجهة كدي إلى اللغة العربيّة، وهذا بفضل "
+"جهود مترجمين متطوّعين من كافّة الدّول العربيّة وغيرها.</p>\n"
+"<p>لمزيد من المعلومات عن ترجمة كدي إلى العربيّة، زُر <a href=\"https://www.";
+"arabeyes.org\">الموقع الرّسميّ للفريق</a>. رجاءً أبلغ عن أخطاء التّرجمة على "
+"العنوان الآتي: <a href=\"mailto:cont...@arabeyes.org\";>cont...@arabeyes.org</"
+"a></p>\n"
+"<p>تُترجم كدي إلى لغات عديدة بفضل طواقم التّرجمة من العالم بأسره.</p>\n"
+"<p>لمزيد من المعلومات زُر <a  href=\"https://l10n.kde.org\";>https://l10n.kde.";
 "org</a>.</p>"
 
 #: lib/kaboutdata.cpp:1145
-#, fuzzy
 msgctxt "KAboutData CLI|"
 msgid "Show author information."
-msgstr "أظهر معلومات المؤلف."
+msgstr "أظهر معلومات المؤلّف."
 
 #: lib/kaboutdata.cpp:1146
 msgctxt "KAboutData CLI|"
 msgid "Show license information."
-msgstr "أظهر معلومات الرخصة."
+msgstr "أظهر معلومات الرّخصة."
 
 #: lib/kaboutdata.cpp:1148
 msgctxt "KAboutData CLI|"
 msgid "The base file name of the desktop entry for this application."
-msgstr ""
+msgstr "اسم ملفّ الأساس لمدخلة سطح المكتب لهذا التّطبيق."
 
 #: lib/kaboutdata.cpp:1149
 msgctxt "KAboutData CLI|"
 msgid "file name"
-msgstr ""
+msgstr "اسم الملفّ"
 
 #: lib/kaboutdata.cpp:1158
 msgctxt "KAboutData CLI|"
 msgid "This application was written by somebody who wants to remain anonymous."
-msgstr "كتب أحد الأشخاص هذا التطبيق، وهو يودّ أن يبقى مجهولًا."
+msgstr "كتب أحد الأشخاص هذا التّطبيق، وهو يودّ أن يبقى مجهولًا."
 
 #: lib/kaboutdata.cpp:1160
-#, fuzzy, qt-format
-#| msgctxt "KAboutData CLI|"
-#| msgid "%s was written by:\n"
+#, qt-format
 msgctxt "KAboutData CLI|"
 msgid "%1 was written by:"
-msgstr "%s كتبه:\n"
+msgstr "‏%1 كتبه:"
 
 #: lib/kaboutdata.cpp:1171
 msgctxt "KAboutData CLI|"
 msgid "Please use https://bugs.kde.org to report bugs."
-msgstr ""
+msgstr "رجاءً استخدم https://bugs.kde.org للإبلاغ عن العلل."
 
 #: lib/kaboutdata.cpp:1173
 #, qt-format
 msgctxt "KAboutData CLI|"
 msgid "Please report bugs to %1."
-msgstr ""
+msgstr "رجاءً أبلغ عن العلل إلى %1."
 
 #: lib/plugin/kpluginloader.cpp:122
 #, qt-format
@@ -491,76 +477,64 @@
 msgctxt "KFormat|"
 msgid "%n millisecond(s)"
 msgid_plural "%n millisecond(s)"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgstr[0] "أقلّ من ملّي‌ثانية"
+msgstr[1] "ملّي‌ثانية واحدة"
+msgstr[2] "ملّي‌ثانيتين"
+msgstr[3] "%n ملّي‌ثوان"
+msgstr[4] "%n ملّي‌ثانية"
+msgstr[5] "%n ملّي‌ثانية"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:306
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n day(s)"
-#| msgid_plural "%n day(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n day(s)"
 msgid_plural "%n day(s)"
-msgstr[0] "لا أيام"
-msgstr[1] "لا أيام"
-msgstr[2] "لا أيام"
-msgstr[3] "لا أيام"
-msgstr[4] "لا أيام"
-msgstr[5] "لا أيام"
+msgstr[0] "أقلّ من يوم"
+msgstr[1] "يوم واحد"
+msgstr[2] "يومان"
+msgstr[3] "%n أيّام"
+msgstr[4] "%n يومًا"
+msgstr[5] "%n يوم"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:311
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n hour(s)"
-#| msgid_plural "%n hour(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n hour(s)"
 msgid_plural "%n hour(s)"
-msgstr[0] "لا ساعات"
-msgstr[1] "لا ساعات"
-msgstr[2] "لا ساعات"
-msgstr[3] "لا ساعات"
-msgstr[4] "لا ساعات"
-msgstr[5] "لا ساعات"
+msgstr[0] "أقلّ من ساعة"
+msgstr[1] "ساعة واحدة"
+msgstr[2] "ساعتان"
+msgstr[3] "%n ساعات"
+msgstr[4] "%n ساعة"
+msgstr[5] "%n ساعة"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:316
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n minute(s)"
-#| msgid_plural "%n minute(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n minute(s)"
 msgid_plural "%n minute(s)"
-msgstr[0] "لا دقائق"
-msgstr[1] "لا دقائق"
-msgstr[2] "لا دقائق"
-msgstr[3] "لا دقائق"
-msgstr[4] "لا دقائق"
-msgstr[5] "لا دقائق"
+msgstr[0] "أقلّ من دقيقة"
+msgstr[1] "دقيقة واحدة"
+msgstr[2] "دقيقتان"
+msgstr[3] "%n دقائق"
+msgstr[4] "%n دقيقة"
+msgstr[5] "%n دقيقة"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:321
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n second(s)"
-#| msgid_plural "%n second(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n second(s)"
 msgid_plural "%n second(s)"
-msgstr[0] "لا ثوان"
-msgstr[1] "لا ثوان"
-msgstr[2] "لا ثوان"
-msgstr[3] "لا ثوان"
-msgstr[4] "لا ثوان"
-msgstr[5] "لا ثوان"
+msgstr[0] "أقلّ من ثانية"
+msgstr[1] "ثانية واحدة"
+msgstr[2] "ثانيتان"
+msgstr[3] "%n ثوان"
+msgstr[4] "%n ثانية"
+msgstr[5] "%n ثانية"
 
 #. @item:intext days and hours. This uses the previous item:intext messages. 
If this does not fit the grammar of your language please contact the i18n team 
to solve the problem
 #. ----------
@@ -579,7 +553,7 @@
 "KFormat|used when a relative date string can't be generated because the date "
 "is invalid"
 msgid "Invalid date"
-msgstr ""
+msgstr "تاريخ غير صالح"
 
 #: lib/util/kformatprivate.cpp:382
 msgctxt "KFormat|"
@@ -599,72 +573,72 @@
 #: lib/util/kformatprivate.cpp:392
 msgctxt "KFormat|most recent such day before today"
 msgid "Last Monday"
-msgstr ""
+msgstr "الإثنين الفائت"
 
 #: lib/util/kformatprivate.cpp:394
 msgctxt "KFormat|most recent such day before today"
 msgid "Last Tuesday"
-msgstr ""
+msgstr "الثّلاثاء الفائت"
 
 #: lib/util/kformatprivate.cpp:396
 msgctxt "KFormat|most recent such day before today"
 msgid "Last Wednesday"
-msgstr ""
+msgstr "الأربعاء الفائت"
 
 #: lib/util/kformatprivate.cpp:398
 msgctxt "KFormat|most recent such day before today"
 msgid "Last Thursday"
-msgstr ""
+msgstr "الخميس الفائت"
 
 #: lib/util/kformatprivate.cpp:400
 msgctxt "KFormat|most recent such day before today"
 msgid "Last Friday"
-msgstr ""
+msgstr "الجمعة الفائتة"
 
 #: lib/util/kformatprivate.cpp:402
 msgctxt "KFormat|most recent such day before today"
 msgid "Last Saturday"
-msgstr ""
+msgstr "السّبت الفائت"
 
 #: lib/util/kformatprivate.cpp:404
 msgctxt "KFormat|most recent such day before today"
 msgid "Last Sunday"
-msgstr ""
+msgstr "الأحد الفائت"
 
 #: lib/util/kformatprivate.cpp:409
 msgctxt "KFormat|the next such day after today"
 msgid "Next Monday"
-msgstr ""
+msgstr "الإثنين القادم"
 
 #: lib/util/kformatprivate.cpp:411
 msgctxt "KFormat|the next such day after today"
 msgid "Next Tuesday"
-msgstr ""
+msgstr "الثّلاثاء القادم"
 
 #: lib/util/kformatprivate.cpp:413
 msgctxt "KFormat|the next such day after today"
 msgid "Next Wednesday"
-msgstr ""
+msgstr "الأربعاء القادم"
 
 #: lib/util/kformatprivate.cpp:415
 msgctxt "KFormat|the next such day after today"
 msgid "Next Thursday"
-msgstr ""
+msgstr "الخميس القادم"
 
 #: lib/util/kformatprivate.cpp:417
 msgctxt "KFormat|the next such day after today"
 msgid "Next Friday"
-msgstr ""
+msgstr "الجمعة القادمة"
 
 #: lib/util/kformatprivate.cpp:419
 msgctxt "KFormat|the next such day after today"
 msgid "Next Saturday"
-msgstr ""
+msgstr "السّبت القادم"
 
 #: lib/util/kformatprivate.cpp:421
 msgctxt "KFormat|the next such day after today"
 msgid "Next Sunday"
-msgstr ""
+msgstr "الأحد القادم"
 
 #. relative datetime with %1 result of formatReleativeDate() and %2 the 
formatted time If this does not fit the grammar of your language please contact 
the i18n team to solve the problem
 #: lib/util/kformatprivate.cpp:436
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/po/cs/kcoreaddons5_qt.po 
new/kcoreaddons-5.41.0/po/cs/kcoreaddons5_qt.po
--- old/kcoreaddons-5.40.0/po/cs/kcoreaddons5_qt.po     2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/po/cs/kcoreaddons5_qt.po     2017-12-02 
21:03:05.000000000 +0100
@@ -9,8 +9,8 @@
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2017-03-08 10:14+0100\n"
-"Last-Translator: Vít Pelčák <v...@pelcak.org>\n"
+"PO-Revision-Date: 2017-11-14 14:18+0100\n"
+"Last-Translator: Vit Pelcak <v...@pelcak.org>\n"
 "Language-Team: Czech <kde-i18n-...@kde.org>\n"
 "Language: en_US\n"
 "MIME-Version: 1.0\n"
@@ -130,14 +130,6 @@
 msgstr "Neurčeno"
 
 #: lib/kaboutdata.cpp:918
-#, fuzzy
-#| msgctxt ""
-#| "KAboutData|replace this with information about your translation team"
-#| msgid ""
-#| "<p>KDE is translated into many languages thanks to the work of the "
-#| "translation teams all over the world.</p><p>For more information on KDE "
-#| "internationalization visit <a href=\"http://l10n.kde.org\";>http://l10n.";
-#| "kde.org</a></p>"
 msgctxt "KAboutData|replace this with information about your translation team"
 msgid ""
 "<p>KDE is translated into many languages thanks to the work of the "
@@ -147,7 +139,7 @@
 msgstr ""
 "<p>KDE je přeloženo do mnoha jazyků díky práci překladatelských týmů po "
 "celém světě.</p><p>Více informací o internacionalizaci KDE najdete na <a "
-"href=\"http://l10n.kde.org\";>http://l10n.kde.org</a>.</p>"
+"href=\"https://l10n.kde.org\";>https://l10n.kde.org</a>.</p>"
 
 #: lib/kaboutdata.cpp:1145
 msgctxt "KAboutData CLI|"
@@ -181,12 +173,9 @@
 msgstr "%1 napsal:"
 
 #: lib/kaboutdata.cpp:1171
-#, fuzzy
-#| msgctxt "KAboutData CLI|"
-#| msgid "Please use http://bugs.kde.org to report bugs."
 msgctxt "KAboutData CLI|"
 msgid "Please use https://bugs.kde.org to report bugs."
-msgstr "Prosím, pro hlášení chyb použijte http://bugs.kde.org.";
+msgstr "Prosím, pro hlášení chyb použijte https://bugs.kde.org.";
 
 #: lib/kaboutdata.cpp:1173
 #, qt-format
@@ -484,63 +473,53 @@
 
 #. @item:intext %1 is a whole number
 #: lib/util/kformatprivate.cpp:288
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n millisecond(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n millisecond(s)"
 msgid_plural "%n millisecond(s)"
-msgstr[0] "%n milisekundy"
+msgstr[0] "%n milisekunda"
 msgstr[1] "%n milisekundy"
-msgstr[2] "%n milisekundy"
+msgstr[2] "%n milisekund"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:306
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n day(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n day(s)"
 msgid_plural "%n day(s)"
-msgstr[0] "%n dny"
+msgstr[0] "%n den"
 msgstr[1] "%n dny"
-msgstr[2] "%n dny"
+msgstr[2] "%n dnů"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:311
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n hour(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n hour(s)"
 msgid_plural "%n hour(s)"
-msgstr[0] "%n hodiny"
+msgstr[0] "%n hodina"
 msgstr[1] "%n hodiny"
-msgstr[2] "%n hodiny"
+msgstr[2] "%n hodin"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:316
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n minute(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n minute(s)"
 msgid_plural "%n minute(s)"
-msgstr[0] "%n minuty"
+msgstr[0] "%n minuta"
 msgstr[1] "%n minuty"
-msgstr[2] "%n minuty"
+msgstr[2] "%n minut"
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:321
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n second(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n second(s)"
 msgid_plural "%n second(s)"
-msgstr[0] "%n sekundy"
+msgstr[0] "%n sekunda"
 msgstr[1] "%n sekundy"
-msgstr[2] "%n sekundy"
+msgstr[2] "%n sekund"
 
 #. @item:intext days and hours. This uses the previous item:intext messages. 
If this does not fit the grammar of your language please contact the i18n team 
to solve the problem
 #. ----------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/po/en_GB/kcoreaddons5_qt.po 
new/kcoreaddons-5.41.0/po/en_GB/kcoreaddons5_qt.po
--- old/kcoreaddons-5.40.0/po/en_GB/kcoreaddons5_qt.po  2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/po/en_GB/kcoreaddons5_qt.po  2017-12-02 
21:03:05.000000000 +0100
@@ -8,9 +8,9 @@
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2017-01-22 11:28+0000\n"
+"PO-Revision-Date: 2017-11-26 15:56+0000\n"
 "Last-Translator: Steve Allewell <steve.allew...@gmail.com>\n"
-"Language-Team: English <kde-l10n-en...@kde.org>\n"
+"Language-Team: British English <kde-i18n-...@kde.org>\n"
 "Language: en_GB\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -127,14 +127,6 @@
 msgstr "Not specified"
 
 #: lib/kaboutdata.cpp:918
-#, fuzzy
-#| msgctxt ""
-#| "KAboutData|replace this with information about your translation team"
-#| msgid ""
-#| "<p>KDE is translated into many languages thanks to the work of the "
-#| "translation teams all over the world.</p><p>For more information on KDE "
-#| "internationalization visit <a href=\"http://l10n.kde.org\";>http://l10n.";
-#| "kde.org</a></p>"
 msgctxt "KAboutData|replace this with information about your translation team"
 msgid ""
 "<p>KDE is translated into many languages thanks to the work of the "
@@ -144,7 +136,7 @@
 msgstr ""
 "<p>KDE is translated into many languages thanks to the work of the "
 "translation teams all over the world.</p><p>For more information on KDE "
-"internationalisation visit <a href=\"http://l10n.kde.org\";>http://l10n.kde.";
+"internationalisation visit <a href=\"https://l10n.kde.org\";>https://l10n.kde.";
 "org</a></p>"
 
 #: lib/kaboutdata.cpp:1145
@@ -180,12 +172,9 @@
 msgstr "%1 was written by:"
 
 #: lib/kaboutdata.cpp:1171
-#, fuzzy
-#| msgctxt "KAboutData CLI|"
-#| msgid "Please use http://bugs.kde.org to report bugs."
 msgctxt "KAboutData CLI|"
 msgid "Please use https://bugs.kde.org to report bugs."
-msgstr "Please use http://bugs.kde.org to report bugs."
+msgstr "Please use https://bugs.kde.org to report bugs."
 
 #: lib/kaboutdata.cpp:1173
 #, qt-format
@@ -483,9 +472,7 @@
 
 #. @item:intext %1 is a whole number
 #: lib/util/kformatprivate.cpp:288
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n millisecond(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n millisecond(s)"
 msgid_plural "%n millisecond(s)"
@@ -494,9 +481,7 @@
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:306
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n day(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n day(s)"
 msgid_plural "%n day(s)"
@@ -505,9 +490,7 @@
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:311
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n hour(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n hour(s)"
 msgid_plural "%n hour(s)"
@@ -516,9 +499,7 @@
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:316
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n minute(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n minute(s)"
 msgid_plural "%n minute(s)"
@@ -527,9 +508,7 @@
 
 #. @item:intext %n is a whole number
 #: lib/util/kformatprivate.cpp:321
-#, fuzzy, qt-format
-#| msgctxt "KFormat|"
-#| msgid "%n second(s)"
+#, qt-format
 msgctxt "KFormat|"
 msgid "%n second(s)"
 msgid_plural "%n second(s)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/po/fr/kcoreaddons5_qt.po 
new/kcoreaddons-5.41.0/po/fr/kcoreaddons5_qt.po
--- old/kcoreaddons-5.40.0/po/fr/kcoreaddons5_qt.po     2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/po/fr/kcoreaddons5_qt.po     2017-12-02 
21:03:05.000000000 +0100
@@ -23,7 +23,7 @@
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2017-09-18 17:38+0100\n"
+"PO-Revision-Date: 2017-11-06 07:29+0100\n"
 "Last-Translator: Vincent Pinon <vpi...@kde.org>\n"
 "Language-Team: French <kde-francoph...@kde.org>\n"
 "Language: fr\n"
@@ -145,14 +145,6 @@
 msgstr "Non spécifié"
 
 #: lib/kaboutdata.cpp:918
-#, fuzzy
-#| msgctxt ""
-#| "KAboutData|replace this with information about your translation team"
-#| msgid ""
-#| "<p>KDE is translated into many languages thanks to the work of the "
-#| "translation teams all over the world.</p><p>For more information on KDE "
-#| "internationalization visit <a href=\"http://l10n.kde.org\";>http://l10n.";
-#| "kde.org</a></p>"
 msgctxt "KAboutData|replace this with information about your translation team"
 msgid ""
 "<p>KDE is translated into many languages thanks to the work of the "
@@ -162,9 +154,10 @@
 msgstr ""
 "<p>KDE est traduit dans de nombreuses langues grâce au travail des équipes "
 "d'internationalisation.</p><p>Pour plus d'informations sur "
-"l'internationalisation de KDE, consultez « http://l10n.kde.org ».</p><p>Le "
-"travail de l'équipe francophone est consultable sur « http://fr.l10n.kde.";
-"org ».</p>"
+"l'internationalisation de KDE, consultez <a href=\"https://l10n.kde.org";
+"\">https://l10n.kde.org</a>.</p><p>Le travail de l'équipe francophone est "
+"consultable sur <a href=\"https://fr.l10n.kde.org\";>https://fr.l10n.kde.org</"
+"a>.</p>"
 
 #: lib/kaboutdata.cpp:1145
 msgctxt "KAboutData CLI|"
@@ -199,12 +192,9 @@
 msgstr "%1 a été écrit par :"
 
 #: lib/kaboutdata.cpp:1171
-#, fuzzy
-#| msgctxt "KAboutData CLI|"
-#| msgid "Please use http://bugs.kde.org to report bugs."
 msgctxt "KAboutData CLI|"
 msgid "Please use https://bugs.kde.org to report bugs."
-msgstr "Veuillez utiliser « http://bugs.kde.org » pour signaler des bogues."
+msgstr "Veuillez utiliser « https://bugs.kde.org » pour signaler des bogues."
 
 #: lib/kaboutdata.cpp:1173
 #, qt-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/po/tr/kcoreaddons5_qt.po 
new/kcoreaddons-5.41.0/po/tr/kcoreaddons5_qt.po
--- old/kcoreaddons-5.40.0/po/tr/kcoreaddons5_qt.po     2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/po/tr/kcoreaddons5_qt.po     2017-12-02 
21:03:05.000000000 +0100
@@ -22,8 +22,8 @@
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2017-10-04 11:29+0000\n"
-"Last-Translator: Kaan <kaanozdin...@gmail.com>\n"
+"PO-Revision-Date: 2017-10-23 09:52+0000\n"
+"Last-Translator: İşbaran <isba...@gmail.com>\n"
 "Language-Team: Turkish <kde-l10n...@kde.org>\n"
 "Language: tr\n"
 "MIME-Version: 1.0\n"
@@ -141,14 +141,6 @@
 msgstr "Belirtilmemiş"
 
 #: lib/kaboutdata.cpp:918
-#, fuzzy
-#| msgctxt ""
-#| "KAboutData|replace this with information about your translation team"
-#| msgid ""
-#| "<p>KDE is translated into many languages thanks to the work of the "
-#| "translation teams all over the world.</p><p>For more information on KDE "
-#| "internationalization visit <a href=\"http://l10n.kde.org\";>http://l10n.";
-#| "kde.org</a></p>"
 msgctxt "KAboutData|replace this with information about your translation team"
 msgid ""
 "<p>KDE is translated into many languages thanks to the work of the "
@@ -193,9 +185,6 @@
 msgstr "%1 programının yazarı:"
 
 #: lib/kaboutdata.cpp:1171
-#, fuzzy
-#| msgctxt "KAboutData CLI|"
-#| msgid "Please use http://bugs.kde.org to report bugs."
 msgctxt "KAboutData CLI|"
 msgid "Please use https://bugs.kde.org to report bugs."
 msgstr "Lütfen hataları bildirmek için http://bugs.kde.org adresini kullanın."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/po/zh_TW/kcoreaddons5_qt.po 
new/kcoreaddons-5.41.0/po/zh_TW/kcoreaddons5_qt.po
--- old/kcoreaddons-5.40.0/po/zh_TW/kcoreaddons5_qt.po  2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/po/zh_TW/kcoreaddons5_qt.po  2017-12-02 
21:03:05.000000000 +0100
@@ -10,16 +10,16 @@
 # Goodhorse <frank...@goodhorse.idv.tw>, 2008.
 # Frank Weng (a.k.a. Franklin) <franklin at goodhorse dot idv dot tw>, 
2006-2009, 2010.
 # Franklin Weng <frank...@mail.everfocus.com.tw>, 2010, 2011, 2012.
-# Franklin Weng <frank...@goodhorse.idv.tw>, 2010, 2011, 2012, 2013, 2014, 
2015.
+# Franklin Weng <frank...@goodhorse.idv.tw>, 2010, 2011, 2012, 2013, 2014, 
2015, 2017.
 # Jeff Huang <s8321...@gmail.com>, 2016, 2017.
 msgid ""
 msgstr ""
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2017-09-27 08:50+0800\n"
-"Last-Translator: Jeff Huang <s8321...@gmail.com>\n"
-"Language-Team: Chinese <kde-i18n-...@kde.org>\n"
+"PO-Revision-Date: 2017-11-11 20:13+0800\n"
+"Last-Translator: Franklin Weng <frank...@goodhorse.idv.tw>\n"
+"Language-Team: Chinese <zh-l...@linux.org.tw>\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -136,14 +136,6 @@
 msgstr "未指定"
 
 #: lib/kaboutdata.cpp:918
-#, fuzzy
-#| msgctxt ""
-#| "KAboutData|replace this with information about your translation team"
-#| msgid ""
-#| "<p>KDE is translated into many languages thanks to the work of the "
-#| "translation teams all over the world.</p><p>For more information on KDE "
-#| "internationalization visit <a href=\"http://l10n.kde.org\";>http://l10n.";
-#| "kde.org</a></p>"
 msgctxt "KAboutData|replace this with information about your translation team"
 msgid ""
 "<p>KDE is translated into many languages thanks to the work of the "
@@ -154,19 +146,16 @@
 "<p>關於 KDE 的中文化</p><blockquote><p>KDE 的正體中文翻譯目前由 <a href="
 "\"http://kde.linux.org.tw/\";>KDE 正體中文翻譯團隊</a>維護。若有任何翻譯上的錯"
 "誤與問題,您可以經由下列管道回報:</p><p><ul><li>向<a href=\"mailto:";
-"coordina...@kde.linux.org.tw\"> KDE 正體中文翻譯團隊協調人</a>回報。</li><li>"
-"到 <a href=\"http://tryneeds.westart.tw\";>Tryneeds-Chinese 線上共筆翻譯平台</"
-"a>上協助修改。</li><li>到 <a href=\"http://bugs.kde.org\";>KDE 的錯誤回報系統"
-"</a>上回報(Product 請選擇 i18n,Component 請選擇 zh_TW)。</li><li>到<a "
-"href=\"http://moto.debian.org.tw/viewforum.php?f=27\";>摩托學園的 KDE 一般討論"
-"版</a>上回報。</li></ul></p><p>KDE 的正體中文翻譯是由許多前輩的努力才有今日的"
-"成就。在此特別感謝過去由李爵樺、薛景中、陳更新、以及黃峻崢等人所領導的 zh-"
-"l10n 中文化計劃,以及來自世界各地的志願工作者所義務參與。過去為了 KDE 翻譯貢"
-"獻的譯者們還包括了Abel Cheung,Joe Man,T.H.Hsieh,Chih-Wei Huang,Chia-Lin "
-"Kao,Yuan-Chen Cheng 等人。因為實在很多,未列出的前輩們敬請見諒。</p><p>此外"
-"我們不要忘了 CLE GNU/Linux 中文計劃協助 Linux 的國際化及中文化基礎架構。</"
-"p><p>若是需要對於 KDE 國際化更進一步的資訊,請參考 <a href=\"http://l10n.kde.";
-"org/\">http://l10n.kde.org/</a></p></blockquote>"
+"frank...@kde.org\"> KDE 正體中文翻譯團隊協調人</a>回報。</li><li>到 <a href="
+"\"http://bugs.kde.org\";>KDE 的錯誤回報系統</a>上回報(Product 請選擇 i18n,"
+"Component 請選擇 zh_TW)。</li></ul></p><p>KDE 的正體中文翻譯是由許多前輩的努"
+"力才有今日的成就。在此特別感謝過去由李爵樺、薛景中、陳更新、以及黃峻崢等人所"
+"領導的 zh-l10n 中文化計劃,以及來自世界各地的志願工作者所義務參與。過去為了 "
+"KDE 翻譯貢獻的譯者們還包括了Abel Cheung,Joe Man,T.H.Hsieh,Chih-Wei Huang,"
+"Chia-Lin Kao,Yuan-Chen Cheng 等人。因為實在很多,未列出的前輩們敬請見諒。</"
+"p><p>此外我們不要忘了 CLE GNU/Linux 中文計劃協助 Linux 的國際化及中文化基礎架"
+"構。</p><p>若是需要對於 KDE 國際化更進一步的資訊,請參考 <a href=\"http://";
+"l10n.kde.org/\">http://l10n.kde.org/</a></p></blockquote>"
 
 #: lib/kaboutdata.cpp:1145
 msgctxt "KAboutData CLI|"
@@ -200,9 +189,6 @@
 msgstr "%1 的作者是:"
 
 #: lib/kaboutdata.cpp:1171
-#, fuzzy
-#| msgctxt "KAboutData CLI|"
-#| msgid "Please use http://bugs.kde.org to report bugs."
 msgctxt "KAboutData CLI|"
 msgid "Please use https://bugs.kde.org to report bugs."
 msgstr "請使用 http://bugs.kde.org 報告問題。"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/src/lib/io/kautosavefile.cpp 
new/kcoreaddons-5.41.0/src/lib/io/kautosavefile.cpp
--- old/kcoreaddons-5.40.0/src/lib/io/kautosavefile.cpp 2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/src/lib/io/kautosavefile.cpp 2017-12-02 
21:03:05.000000000 +0100
@@ -177,7 +177,7 @@
     QUrl managedFileName;
     //name.setScheme(file.mid(sepPos + 3, pathPos - sep.size() - 3));
     QByteArray encodedPath = staleFileName.midRef(pathPos+1, 
staleFileName.length()-pathPos-1-KAutoSaveFilePrivate::NamePadding).toLatin1();
-    managedFileName.setPath(QUrl::fromPercentEncoding(encodedPath) + 
QLatin1Char('/') + QFileInfo(staleFileName.left(sepPos)).fileName());
+    managedFileName.setPath(QUrl::fromPercentEncoding(encodedPath) + 
QLatin1Char('/') + 
QFileInfo(QUrl::fromPercentEncoding(staleFileName.left(sepPos).toLatin1())).fileName());
     return managedFileName;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/src/lib/jobs/kcompositejob.cpp 
new/kcoreaddons-5.41.0/src/lib/jobs/kcompositejob.cpp
--- old/kcoreaddons-5.40.0/src/lib/jobs/kcompositejob.cpp       2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/src/lib/jobs/kcompositejob.cpp       2017-12-02 
21:03:05.000000000 +0100
@@ -62,14 +62,14 @@
 bool KCompositeJob::removeSubjob(KJob *job)
 {
     Q_D(KCompositeJob);
-    if (job == nullptr) {
-        return false;
+    // remove only Subjobs that are on the list
+    if (d->subjobs.removeAll(job) > 0) {
+        job->setParent(nullptr);
+        disconnect(job, &KJob::result, this, &KCompositeJob::slotResult);
+        disconnect(job, &KJob::infoMessage, this, 
&KCompositeJob::slotInfoMessage);
+        return true;
     }
-
-    job->setParent(nullptr);
-    d->subjobs.removeAll(job);
-
-    return true;
+    return false;
 }
 
 bool KCompositeJob::hasSubjobs() const
@@ -87,6 +87,8 @@
     Q_D(KCompositeJob);
     Q_FOREACH (KJob *job, d->subjobs) {
         job->setParent(nullptr);
+        disconnect(job, &KJob::result, this, &KCompositeJob::slotResult);
+        disconnect(job, &KJob::infoMessage, this, 
&KCompositeJob::slotInfoMessage);
     }
     d->subjobs.clear();
 }
@@ -98,9 +100,11 @@
         // Store it in the parent only if first error
         setError(job->error());
         setErrorText(job->errorText());
+        // Finish this job
         emitResult();
     }
-
+    // After a subjob is done, we might want to start another one.
+    // Therefore do not emitResult
     removeSubjob(job);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcoreaddons-5.40.0/src/lib/plugin/kpluginmetadata.cpp 
new/kcoreaddons-5.41.0/src/lib/plugin/kpluginmetadata.cpp
--- old/kcoreaddons-5.40.0/src/lib/plugin/kpluginmetadata.cpp   2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/src/lib/plugin/kpluginmetadata.cpp   2017-12-02 
21:03:05.000000000 +0100
@@ -70,7 +70,12 @@
             qCWarning(KCOREADDONS_DEBUG) << "Couldn't open" << file;
             return;
         }
-        m_metaData = QJsonDocument::fromJson(f.readAll()).object();
+
+        QJsonParseError error;
+        m_metaData = QJsonDocument::fromJson(f.readAll(), &error).object();
+        if (error.error) {
+            qCWarning(KCOREADDONS_DEBUG) << "error parsing" << file << 
error.errorString();
+        }
         m_fileName = file;
         d->metaDataFileName = file;
     } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/src/lib/text/kstringhandler.cpp 
new/kcoreaddons-5.41.0/src/lib/text/kstringhandler.cpp
--- old/kcoreaddons-5.40.0/src/lib/text/kstringhandler.cpp      2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/src/lib/text/kstringhandler.cpp      2017-12-02 
21:03:05.000000000 +0100
@@ -26,6 +26,7 @@
 #include <QtCore/QRegExp>            // for the word ranges
 #include <QtCore/QCharRef>
 #include <QtCore/QMutableStringListIterator>
+#include <QtCore/QVector>
 
 //
 // Capitalization routines
@@ -339,3 +340,22 @@
     return result;
 }
 
+int KStringHandler::logicalLength(const QString& text)
+{
+    int length = 0;
+    auto chrs = text.toUcs4();
+    for (auto chr : chrs) {
+        auto script = QChar::script(chr);
+        if (script == QChar::Script_Han ||
+            script == QChar::Script_Hangul ||
+            script == QChar::Script_Hiragana ||
+            script == QChar::Script_Katakana ||
+            script == QChar::Script_Yi ||
+            QChar::isHighSurrogate(chr)) {
+            length += 2;
+        } else {
+            length += 1;
+        }
+    }
+    return length;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/src/lib/text/kstringhandler.h 
new/kcoreaddons-5.41.0/src/lib/text/kstringhandler.h
--- old/kcoreaddons-5.40.0/src/lib/text/kstringhandler.h        2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/src/lib/text/kstringhandler.h        2017-12-02 
21:03:05.000000000 +0100
@@ -215,5 +215,15 @@
   @since 4.4
 */
 KCOREADDONS_EXPORT QString preProcessWrap(const QString &text);
+
+/**
+  Returns the length that reflects the density of information in the text. In
+  general the character from CJK languages are assigned with weight 2, while
+  other Latin characters are assigned with 1.
+
+  @since 5.41
+*/
+KCOREADDONS_EXPORT int logicalLength(const QString &text);
+
 }
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/src/mimetypes/kde5.xml 
new/kcoreaddons-5.41.0/src/mimetypes/kde5.xml
--- old/kcoreaddons-5.40.0/src/mimetypes/kde5.xml       2017-11-05 
09:26:40.000000000 +0100
+++ new/kcoreaddons-5.41.0/src/mimetypes/kde5.xml       2017-12-02 
21:03:05.000000000 +0100
@@ -3761,4 +3761,73 @@
     </magic>
     <glob pattern="*.webp"/>
   </mime-type>
+  <mime-type type="application/vnd.kde.kcfg">
+    <comment>KConfigXT Configuration Options</comment>
+    <comment xml:lang="ca">Opcions de configuració del KConfigXT</comment>
+    <comment xml:lang="ca@valencia">Opcions de configuració del 
KConfigXT</comment>
+    <comment xml:lang="da">Konfigurationsmuligheder til KConfigXT</comment>
+    <comment xml:lang="en_GB">KConfigXT Configuration Options</comment>
+    <comment xml:lang="es">Opciones de configuración de KConfigXT</comment>
+    <comment xml:lang="nl">Configuratie-opties van KConfigXT</comment>
+    <comment xml:lang="pt">Opções de Configuração do KConfigXT</comment>
+    <comment xml:lang="sv">KConfigXT-inställningsalternativ</comment>
+    <comment xml:lang="uk">параметри налаштування KConfigXT</comment>
+    <generic-icon name="application-xml"/> <!-- placeholder until there is an 
own icon -->
+    <sub-class-of type="application/xml"/>
+    <magic priority="80">
+      <match type="string" value="&lt;!DOCTYPE kcfg" offset="0:256"/>
+    </magic>
+    <root-XML namespaceURI="http://www.kde.org/standards/kcfg/1.0"; 
localName="kcfg"/>
+    <glob pattern="*.kcfg"/>
+  </mime-type>
+  <mime-type type="application/vnd.kde.kcfgc">
+    <comment>KConfigXT Code Generation Options</comment>
+    <comment xml:lang="ca">Opcions de generació de codi del KConfigXT</comment>
+    <comment xml:lang="ca@valencia">Opcions de generació de codi del 
KConfigXT</comment>
+    <comment xml:lang="da">Kodegenereringsmuligheder til KConfigXT</comment>
+    <comment xml:lang="en_GB">KConfigXT Code Generation Options</comment>
+    <comment xml:lang="es">Opciones de generación de código de 
KConfigXT</comment>
+    <comment xml:lang="nl">Codegeneratie-opties van KConfigXT</comment>
+    <comment xml:lang="pt">Opções de Geração de Código do KConfigXT</comment>
+    <comment xml:lang="sv">KConfigXT-kodgenereringsalternativ</comment>
+    <comment xml:lang="uk">параметри створення коду KConfigXT</comment>
+    <generic-icon name="text-plain"/>
+    <sub-class-of type="text/plain"/>
+    <glob pattern="*.kcfgc"/>
+  </mime-type>
+  <mime-type type="application/vnd.kde.kxmlguirc">
+    <comment>KXMLGUI UI Declaration</comment>
+    <comment xml:lang="ca">Declaració IU KXMLGUI</comment>
+    <comment xml:lang="ca@valencia">Declaració IU KXMLGUI</comment>
+    <comment xml:lang="da">KXMLGUI UI-erklæring</comment>
+    <comment xml:lang="en_GB">KXMLGUI UI Declaration</comment>
+    <comment xml:lang="es">Declaración de interfaz de usuario de 
KXMLGUI</comment>
+    <comment xml:lang="nl">Declaratie van KXMLGUI UI</comment>
+    <comment xml:lang="pt">Declaração de UI do KXMLGUI</comment>
+    <comment xml:lang="sv">KXMLGUI-användargränssnittsdeklaration</comment>
+    <comment xml:lang="uk">оголошення інтерфейсу KXMLGUI</comment>
+    <generic-icon name="application-xml"/> <!-- placeholder until there is an 
own icon -->
+    <sub-class-of type="application/xml"/>
+    <magic priority="80">
+      <match type="string" value="&lt;!DOCTYPE gui" offset="0:256"/>
+      <match type="string" value="&lt;!DOCTYPE kpartgui" offset="0:256"/>
+    </magic>
+    <root-XML namespaceURI="https://www.kde.org/standards/kxmlgui/1.0"; 
localName="gui"/>
+    <glob pattern="*.rc"/>
+  </mime-type>
+  <mime-type type="application/vnd.kde.knotificationrc">
+    <comment>KNotification Declaration</comment>
+    <comment xml:lang="ca">Declaració del KNotification</comment>
+    <comment xml:lang="ca@valencia">Declaració del KNotification</comment>
+    <comment xml:lang="da">KNotification-erklæring</comment>
+    <comment xml:lang="en_GB">KNotification Declaration</comment>
+    <comment xml:lang="es">Declaración de KNotification</comment>
+    <comment xml:lang="nl">Declaratie van KNotification</comment>
+    <comment xml:lang="pt">Declaração do KNotification</comment>
+    <comment xml:lang="sv">KNotification-deklaration</comment>
+    <comment xml:lang="uk">оголошення KNotification</comment>
+    <generic-icon name="text-plain"/> <!-- placeholder until there is an own 
icon -->
+    <sub-class-of type="text/plain"/>
+    <glob pattern="*.notifyrc"/>
+  </mime-type>
 </mime-info>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcoreaddons-5.40.0/tests/CMakeLists.txt 
new/kcoreaddons-5.41.0/tests/CMakeLists.txt
--- old/kcoreaddons-5.40.0/tests/CMakeLists.txt 2017-11-05 09:26:40.000000000 
+0100
+++ new/kcoreaddons-5.41.0/tests/CMakeLists.txt 2017-12-02 21:03:05.000000000 
+0100
@@ -1,20 +1,11 @@
 remove_definitions(-DQT_NO_CAST_FROM_ASCII)
 
-find_package(Qt5Widgets ${REQUIRED_QT_VERSION} CONFIG QUIET)
+find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG QUIET OPTIONAL_COMPONENTS 
Widgets)
 if(NOT Qt5Widgets_FOUND)
     message(STATUS "Qt5Widgets not found, examples will not be built.")
     return()
 endif()
 
-macro(KCOREADDONS_EXAMPLES)
-    foreach(_testname ${ARGN})
-        add_executable(${_testname} ${_testname}.cpp) # TODO NOGUI
-        target_link_libraries(${_testname} Qt5::Test KF5::CoreAddons)
-    endforeach()
-endmacro()
-
-########### kdirwatchtest_gui ###############
-
 add_executable(kdirwatchtest_gui kdirwatchtest_gui.cpp)
 target_link_libraries(kdirwatchtest_gui Qt5::Widgets KF5::CoreAddons)
 


Reply via email to