File fallbackLang.diff of Package ki18n

diff -urNB a/src/kcatalog.cpp b/src/kcatalog.cpp
--- a/src/kcatalog.cpp	2015-06-06 23:17:35.000000000 +0200
+++ b/src/kcatalog.cpp	2015-06-12 11:18:12.263968360 +0200
@@ -110,26 +110,51 @@
 QString KCatalog::catalogLocaleDir(const QByteArray &domain,
                                    const QString &language)
 {
+    QStringList localeDirs;
+    QString localeDir;
     QString relpath = QString::fromLatin1("%1/LC_MESSAGES/%2.mo")
                       .arg(language, QFile::decodeName(domain));
+
+    // Specific SUSE kf5 location   ; bundle-lang-bla  ; update-translations ; generic
+    localeDirs << "/usr/share/locale/kf5/" << "/usr/share/locale-bundle/kf5/" << "/usr/share/locale-bundle/" << "/usr/share/locale-langpack/";
+
+    foreach (const QString &locDir, localeDirs) {
+        QFile file(locDir + relpath);
+        if (file.exists()) {
+            return locDir;
+        }
+    }
+    // Check the standard locations
     QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
-                                          QString::fromLatin1("locale/") + relpath);
-    QString localeDir;
-    if (file.isEmpty()) {
-        localeDir = QString();
-    } else {
-        // Path of the locale/ directory must be returned.
+                                             QString::fromLatin1("locale/") + relpath);
+    if (!file.isEmpty()) {
         localeDir = QFileInfo(file.left(file.size() - relpath.size())).absolutePath();
+        return localeDir;
     }
+    // No translation around
+    localeDir = QString();
     return localeDir;
 }
 
 QSet<QString> KCatalog::availableCatalogLanguages(const QByteArray &domain_)
 {
     QString domain = QFile::decodeName(domain_);
-    QStringList localeDirPaths = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
-                                 QString::fromLatin1("locale"),
-                                 QStandardPaths::LocateDirectory);
+    QStringList localeDirPaths;
+    QStringList localeDirs;
+
+    // Specific SUSE kf5 location   ; bundle-lang-bla  ; update-translations ; generic
+    localeDirs << "/usr/share/locale/kf5" << "/usr/share/locale-bundle/kf5" << "/usr/share/locale-bundle" << "/usr/share/locale-langpack";
+
+    foreach (const QString &localeDir, localeDirs) {
+        QDir locDir(localeDir);
+        if (locDir.exists()) {
+            localeDirPaths.append(localeDir);
+        }
+    }
+    QStringList localeFallbackDirPaths = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
+                                  QString::fromLatin1("locale"),
+                                  QStandardPaths::LocateDirectory);
+    localeDirPaths.append(localeFallbackDirPaths);
     QSet<QString> availableLanguages;
     foreach (const QString &localDirPath, localeDirPaths) {
         QDir localeDir(localDirPath);
openSUSE Build Service is sponsored by