From 03407d0f704bb8c02c79bab47722aaa60e24f726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Vr=C3=A1til?= Date: Tue, 24 Mar 2015 18:29:13 +0100 Subject: [PATCH] Add upstream patch to load Qt catalogs --- ...he-global-qt-catalog-when-using-i18n.patch | 80 +++++++++++++++++++ kf5-ki18n.spec | 11 ++- 2 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 0001-preload-the-global-qt-catalog-when-using-i18n.patch diff --git a/0001-preload-the-global-qt-catalog-when-using-i18n.patch b/0001-preload-the-global-qt-catalog-when-using-i18n.patch new file mode 100644 index 0000000..19727f4 --- /dev/null +++ b/0001-preload-the-global-qt-catalog-when-using-i18n.patch @@ -0,0 +1,80 @@ +commit fded87b06de0c956131b0763716b1100e46e1408 +Author: Lukáš Tinkl +Date: Thu Mar 19 16:35:07 2015 +0100 + + preload the global Qt catalog when using i18n() + + tested with eg. systemsettings; without the patch, the fonts kcm dialogs + (QFontDialog) are in English + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 8c206f9..818595e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -4,6 +4,7 @@ set(libki18n_SRCS + kcatalog.cpp + kuitmarkup.cpp + common_helpers.cpp ++ main.cpp + ) + + add_library(KF5I18n ${libki18n_SRCS}) +diff --git a/src/main.cpp b/src/main.cpp +new file mode 100644 +index 0000000..6b46f41 +--- /dev/null ++++ b/src/main.cpp +@@ -0,0 +1,53 @@ ++/* This file is part of the KDE libraries ++ Copyright (C) 2015 Lukáš Tinkl ++ ++ 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 ++#include ++#include ++#include ++ ++// load global Qt translation, needed in KDE e.g. by lots of builtin dialogs (QColorDialog, QFontDialog) that we use ++static bool loadTranslation(const QString &localeName) ++{ ++ QTranslator *translator = new QTranslator(QCoreApplication::instance()); ++ if (!translator->load(QLocale(localeName), QStringLiteral("qt_"), QString(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { ++ delete translator; ++ return false; ++ } ++ QCoreApplication::instance()->installTranslator(translator); ++ return true; ++} ++ ++static void load() ++{ ++ // The way Qt translation system handles plural forms makes it necessary to ++ // have a translation file which contains only plural forms for `en`. That's ++ // why we load the `en` translation unconditionally, then load the ++ // translation for the current locale to overload it. ++ loadTranslation(QStringLiteral("en")); ++ ++ QLocale locale = QLocale::system(); ++ if (locale.name() != QStringLiteral("en")) { ++ if (!loadTranslation(locale.name())) { ++ loadTranslation(locale.bcp47Name()); ++ } ++ } ++} ++ ++Q_COREAPP_STARTUP_FUNCTION(load) diff --git a/kf5-ki18n.spec b/kf5-ki18n.spec index 8dacd47..b62ea64 100644 --- a/kf5-ki18n.spec +++ b/kf5-ki18n.spec @@ -2,7 +2,7 @@ Name: kf5-%{framework} Version: 5.8.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: KDE Frameworks 5 Tier 1 addon for localization License: LGPLv2+ @@ -17,6 +17,10 @@ URL: http://www.kde.org %endif Source0: http://download.kde.org/%{stable}/frameworks/%{versiondir}/%{framework}-%{version}.tar.xz +# upstream patches +Patch1: 0001-preload-the-global-qt-catalog-when-using-i18n.patch + + BuildRequires: perl BuildRequires: kf5-rpm-macros @@ -40,7 +44,7 @@ The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %prep -%setup -q -n %{framework}-%{version} +%autosetup -n %{framework}-%{version} -p1 %build mkdir -p %{_target_platform} @@ -84,6 +88,9 @@ make %{?_smp_mflags} -C %{_target_platform} %changelog +* Tue Mar 24 2015 Daniel Vrátil - 5.8.0-2 +- add upstream patch to fix to load Qt catalogs too + * Mon Mar 16 2015 Daniel Vrátil - 5.8.0-1 - KDE Frameworks 5.8.0