From 140b37c340aa7d2f27d05b34c820d9c83e335a30 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Sun, 3 Apr 2022 20:39:58 +0200 Subject: [PATCH 01/10] Try to fix randomly failing jenkins --- autotests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 098af33d9..26d3f55a1 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -118,7 +118,7 @@ if(KF5Activities_FOUND AND BUILD_DESKTOP) endif() if(BUILD_DESKTOP) - ecm_add_test(annotationtoolbartest.cpp ../shell/okular_main.cpp ../shell/shellutils.cpp ../shell/shell.cpp ../shell/welcomescreen.cpp ../shell/recentitemsmodel.cpp closedialoghelper.cpp + ecm_add_test(annotationtoolbartest.cpp ../shell/okular_main.cpp ../shell/shellutils.cpp ../shell/shell.cpp ../shell/welcomescreen.cpp ../shell/recentitemsmodel.cpp closedialoghelper.cpp ../shell/welcomescreen.ui TEST_NAME "annotationtoolbartest" LINK_LIBRARIES Qt5::Test okularpart ) From 5339b7eef1826b2eb35f345627a16d03eb65baeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C2=A0=20B=C2=A0?= Date: Sun, 3 Apr 2022 16:02:44 +0000 Subject: [PATCH 02/10] Markdown: Fix images with special chars in URLs not loaded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If an image URL contains a non-ASCII character (e.g. `kartöffelchen.jpg`), the html returned by the markdown parser contains the encoded path `kart%C3%B6ffelchen.jpg`. We must decode the path before checking if the image file exists. (cherry picked from commit 8aa96484da1bf4a2cab87178c00aabd019fa5561) --- autotests/data/imageUrlsWithSpecialChars.md | 3 +++ autotests/data/kartöffelchen.jpg | Bin 0 -> 34999 bytes autotests/markdowntest.cpp | 16 ++++++++++++++++ generators/markdown/converter.cpp | 3 ++- 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 autotests/data/imageUrlsWithSpecialChars.md create mode 100644 autotests/data/kartöffelchen.jpg diff --git a/autotests/data/imageUrlsWithSpecialChars.md b/autotests/data/imageUrlsWithSpecialChars.md new file mode 100644 index 000000000..0d0bd1ff0 --- /dev/null +++ b/autotests/data/imageUrlsWithSpecialChars.md @@ -0,0 +1,3 @@ +# Test for having images with non-ASCII characters in their name + +![Kartöffelchen](kartöffelchen.jpg) diff --git a/autotests/data/kartöffelchen.jpg b/autotests/data/kartöffelchen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7dd4d1887811af29ae05dfec555de042ba55813 GIT binary patch literal 34999 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 Row3mKQ_#vg^V0v{1ON?gNAdsw literal 0 HcmV?d00001 diff --git a/autotests/markdowntest.cpp b/autotests/markdowntest.cpp index c31bc4559..507b50ed0 100644 --- a/autotests/markdowntest.cpp +++ b/autotests/markdowntest.cpp @@ -23,6 +23,7 @@ private slots: void testFancyPantsEnabled(); void testFancyPantsDisabled(); void testImageSizes(); + void testSpecialCharsInImageFileName(); private: void findImages(QTextFrame *parent, QVector &images); @@ -121,5 +122,20 @@ void MarkdownTest::findImages(const QTextBlock &parent, QVectorrootFrame(); + + QVector images; + findImages(parent, images); + + QCOMPARE(images.size(), 1); + QVERIFY(images[0].name().endsWith(QStringLiteral("kartöffelchen.jpg"))); + QVERIFY(!images[0].name().contains(QStringLiteral("kart%C3%B6ffelchen.jpg"))); +} + QTEST_MAIN(MarkdownTest) #include "markdowntest.moc" diff --git a/generators/markdown/converter.cpp b/generators/markdown/converter.cpp index bc901a304..516886580 100644 --- a/generators/markdown/converter.cpp +++ b/generators/markdown/converter.cpp @@ -197,7 +197,8 @@ void Converter::convertImages(const QTextBlock &parent, const QDir &dir, QTextDo cursor.setPosition(textFragment.position(), QTextCursor::MoveAnchor); cursor.setPosition(textFragment.position() + textFragment.length(), QTextCursor::KeepAnchor); - const QString imageFilePath = QDir::cleanPath(dir.absoluteFilePath(textCharFormat.toImageFormat().name())); + const QString imageFilePath = QDir::cleanPath(dir.absoluteFilePath(QUrl::fromPercentEncoding(textCharFormat.toImageFormat().name().toUtf8()))); + if (QFile::exists(imageFilePath)) { cursor.removeSelectedText(); format.setName(imageFilePath); From cb527ec88bd2d89f4652f776ff89af3c1755750c Mon Sep 17 00:00:00 2001 From: Heiko Becker Date: Tue, 5 Apr 2022 21:25:08 +0200 Subject: [PATCH 03/10] GIT_SILENT Upgrade release service version to 22.03.90. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 79bd4667e..721b1d7c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.16) # KDE Application Version, managed by release script set (RELEASE_SERVICE_VERSION_MAJOR "22") set (RELEASE_SERVICE_VERSION_MINOR "03") -set (RELEASE_SERVICE_VERSION_MICRO "80") +set (RELEASE_SERVICE_VERSION_MICRO "90") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") project(okular VERSION ${RELEASE_SERVICE_VERSION}) From 7e248f86beda4d7f82ea1ec032fded77c89d7c58 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Mon, 28 Mar 2022 23:18:27 +0200 Subject: [PATCH 04/10] KCrash is only used on the desktop (cherry picked from commit d8f0baa2b988bbdcff1fc2244d1ef1ee30a3c9af) --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 721b1d7c4..f050d457b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,7 +105,6 @@ find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Config ConfigWidgets CoreAddons - Crash I18n IconThemes KIO @@ -119,7 +118,7 @@ find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS ) if (BUILD_DESKTOP) - find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Parts) + find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Parts Crash) endif() if(KF5Wallet_FOUND) From bc9da3270873c99c673aff68a6a582908e9d90bf Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Tue, 29 Mar 2022 00:05:49 +0200 Subject: [PATCH 05/10] Don't require KF5::IconThemes for Mobile It just gives us a 48px = Large, so not worth to have that extra dependency for that in my opinion (cherry picked from commit ce8401e917b381915f17ef6b165b6e7e854293ef) --- CMakeLists.txt | 3 +-- gui/pagepainter.cpp | 3 +-- mobile/components/CMakeLists.txt | 1 - 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f050d457b..1d61bbf17 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,7 +106,6 @@ find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS ConfigWidgets CoreAddons I18n - IconThemes KIO TextWidgets ThreadWeaver @@ -118,7 +117,7 @@ find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS ) if (BUILD_DESKTOP) - find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Parts Crash) + find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Parts Crash IconThemes) endif() if(KF5Wallet_FOUND) diff --git a/gui/pagepainter.cpp b/gui/pagepainter.cpp index d3fa19601..b12e2706c 100644 --- a/gui/pagepainter.cpp +++ b/gui/pagepainter.cpp @@ -7,7 +7,6 @@ #include "pagepainter.h" // qt / kde includes -#include #include #include #include @@ -33,7 +32,7 @@ #include "settings.h" #include "settings_core.h" -Q_GLOBAL_STATIC_WITH_ARGS(QPixmap, busyPixmap, (QIcon::fromTheme(QLatin1String("okular")).pixmap(KIconLoader::SizeLarge))) +Q_GLOBAL_STATIC_WITH_ARGS(QPixmap, busyPixmap, (QIcon::fromTheme(QLatin1String("okular")).pixmap(48))) #define TEXTANNOTATION_ICONSIZE 24 diff --git a/mobile/components/CMakeLists.txt b/mobile/components/CMakeLists.txt index e4c302812..ad06a2b12 100644 --- a/mobile/components/CMakeLists.txt +++ b/mobile/components/CMakeLists.txt @@ -24,7 +24,6 @@ target_link_libraries(okularplugin Qt5::Xml Qt5::Svg KF5::Bookmarks - KF5::IconThemes KF5::I18n KF5::Service okularcore From 0658e09efc1fcd56a6a6fc408022253f2b562558 Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Tue, 5 Apr 2022 22:14:20 +0200 Subject: [PATCH 06/10] Don't find ktextwidgets for mobile It's only used for the KPart (cherry picked from commit 9eb404c33700fce94203286ffc158bf063b8a11e) --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d61bbf17..a7f35a6d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -107,7 +107,6 @@ find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS CoreAddons I18n KIO - TextWidgets ThreadWeaver WindowSystem ${optionalComponents} @@ -117,7 +116,7 @@ find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS ) if (BUILD_DESKTOP) - find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Parts Crash IconThemes) + find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Parts Crash IconThemes TextWidgets) endif() if(KF5Wallet_FOUND) From 8c97635ca71f510f117c144f67d791b39c6d2753 Mon Sep 17 00:00:00 2001 From: Heiko Becker Date: Tue, 12 Apr 2022 23:09:56 +0200 Subject: [PATCH 07/10] GIT_SILENT Upgrade release service version to 22.04.0. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7f35a6d7..2cfd4a33b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,8 @@ cmake_minimum_required(VERSION 3.16) # KDE Application Version, managed by release script set (RELEASE_SERVICE_VERSION_MAJOR "22") -set (RELEASE_SERVICE_VERSION_MINOR "03") -set (RELEASE_SERVICE_VERSION_MICRO "90") +set (RELEASE_SERVICE_VERSION_MINOR "04") +set (RELEASE_SERVICE_VERSION_MICRO "0") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") project(okular VERSION ${RELEASE_SERVICE_VERSION}) From 172f4edeaef0a8bf9c41e98a74e82aa5061f3834 Mon Sep 17 00:00:00 2001 From: Heiko Becker Date: Tue, 12 Apr 2022 23:27:55 +0200 Subject: [PATCH 08/10] GIT_SILENT Update Appstream for new release --- generators/chm/org.kde.okular-chm.metainfo.xml | 2 +- generators/comicbook/org.kde.okular-comicbook.metainfo.xml | 2 +- generators/djvu/org.kde.okular-djvu.metainfo.xml | 2 +- generators/dvi/org.kde.okular-dvi.metainfo.xml | 2 +- generators/epub/org.kde.okular-epub.metainfo.xml | 2 +- generators/fax/org.kde.okular-fax.metainfo.xml | 2 +- generators/fictionbook/org.kde.okular-fb.metainfo.xml | 2 +- generators/kimgio/org.kde.okular-kimgio.metainfo.xml | 2 +- generators/markdown/org.kde.okular-md.metainfo.xml | 2 +- generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml | 2 +- generators/plucker/org.kde.okular-plucker.metainfo.xml | 2 +- generators/poppler/org.kde.okular-poppler.metainfo.xml | 2 +- generators/spectre/org.kde.okular-spectre.metainfo.xml | 2 +- generators/tiff/org.kde.okular-tiff.metainfo.xml | 2 +- generators/txt/org.kde.okular-txt.metainfo.xml | 2 +- generators/xps/org.kde.okular-xps.metainfo.xml | 2 +- mobile/app/org.kde.okular.kirigami.appdata.xml | 2 +- shell/org.kde.okular.appdata.xml | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/generators/chm/org.kde.okular-chm.metainfo.xml b/generators/chm/org.kde.okular-chm.metainfo.xml index 41fbfc130..a327ba82b 100644 --- a/generators/chm/org.kde.okular-chm.metainfo.xml +++ b/generators/chm/org.kde.okular-chm.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/generators/comicbook/org.kde.okular-comicbook.metainfo.xml b/generators/comicbook/org.kde.okular-comicbook.metainfo.xml index 8b7fe8bb4..0cbb9b901 100644 --- a/generators/comicbook/org.kde.okular-comicbook.metainfo.xml +++ b/generators/comicbook/org.kde.okular-comicbook.metainfo.xml @@ -98,9 +98,9 @@ https://okular.kde.org + - diff --git a/generators/djvu/org.kde.okular-djvu.metainfo.xml b/generators/djvu/org.kde.okular-djvu.metainfo.xml index 1478e3a58..4f216d65e 100644 --- a/generators/djvu/org.kde.okular-djvu.metainfo.xml +++ b/generators/djvu/org.kde.okular-djvu.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/generators/dvi/org.kde.okular-dvi.metainfo.xml b/generators/dvi/org.kde.okular-dvi.metainfo.xml index 992aed2fe..6730adfad 100644 --- a/generators/dvi/org.kde.okular-dvi.metainfo.xml +++ b/generators/dvi/org.kde.okular-dvi.metainfo.xml @@ -97,9 +97,9 @@ https://okular.kde.org + - diff --git a/generators/epub/org.kde.okular-epub.metainfo.xml b/generators/epub/org.kde.okular-epub.metainfo.xml index 11c6675d6..6e9413d11 100644 --- a/generators/epub/org.kde.okular-epub.metainfo.xml +++ b/generators/epub/org.kde.okular-epub.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/generators/fax/org.kde.okular-fax.metainfo.xml b/generators/fax/org.kde.okular-fax.metainfo.xml index b6d2acfaa..f2f3c574c 100644 --- a/generators/fax/org.kde.okular-fax.metainfo.xml +++ b/generators/fax/org.kde.okular-fax.metainfo.xml @@ -96,9 +96,9 @@ https://okular.kde.org + - diff --git a/generators/fictionbook/org.kde.okular-fb.metainfo.xml b/generators/fictionbook/org.kde.okular-fb.metainfo.xml index 6c6c7e0f5..e6aac6661 100644 --- a/generators/fictionbook/org.kde.okular-fb.metainfo.xml +++ b/generators/fictionbook/org.kde.okular-fb.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/generators/kimgio/org.kde.okular-kimgio.metainfo.xml b/generators/kimgio/org.kde.okular-kimgio.metainfo.xml index c0d309cbe..9e4e9b937 100644 --- a/generators/kimgio/org.kde.okular-kimgio.metainfo.xml +++ b/generators/kimgio/org.kde.okular-kimgio.metainfo.xml @@ -118,9 +118,9 @@ https://okular.kde.org + - diff --git a/generators/markdown/org.kde.okular-md.metainfo.xml b/generators/markdown/org.kde.okular-md.metainfo.xml index 6c2b1124a..e8a7030e5 100644 --- a/generators/markdown/org.kde.okular-md.metainfo.xml +++ b/generators/markdown/org.kde.okular-md.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml b/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml index bf31e2892..783a5a81b 100644 --- a/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml +++ b/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml @@ -118,9 +118,9 @@ https://okular.kde.org + - diff --git a/generators/plucker/org.kde.okular-plucker.metainfo.xml b/generators/plucker/org.kde.okular-plucker.metainfo.xml index 9721bceaf..8333c6fa1 100644 --- a/generators/plucker/org.kde.okular-plucker.metainfo.xml +++ b/generators/plucker/org.kde.okular-plucker.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/generators/poppler/org.kde.okular-poppler.metainfo.xml b/generators/poppler/org.kde.okular-poppler.metainfo.xml index af96bf0f0..29175f305 100644 --- a/generators/poppler/org.kde.okular-poppler.metainfo.xml +++ b/generators/poppler/org.kde.okular-poppler.metainfo.xml @@ -98,9 +98,9 @@ https://okular.kde.org + - diff --git a/generators/spectre/org.kde.okular-spectre.metainfo.xml b/generators/spectre/org.kde.okular-spectre.metainfo.xml index b4d1eb635..2232b8117 100644 --- a/generators/spectre/org.kde.okular-spectre.metainfo.xml +++ b/generators/spectre/org.kde.okular-spectre.metainfo.xml @@ -102,9 +102,9 @@ https://okular.kde.org + - diff --git a/generators/tiff/org.kde.okular-tiff.metainfo.xml b/generators/tiff/org.kde.okular-tiff.metainfo.xml index aa7d03fdc..0110d0877 100644 --- a/generators/tiff/org.kde.okular-tiff.metainfo.xml +++ b/generators/tiff/org.kde.okular-tiff.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/generators/txt/org.kde.okular-txt.metainfo.xml b/generators/txt/org.kde.okular-txt.metainfo.xml index 8237e9d33..8b9aa4204 100644 --- a/generators/txt/org.kde.okular-txt.metainfo.xml +++ b/generators/txt/org.kde.okular-txt.metainfo.xml @@ -94,9 +94,9 @@ https://okular.kde.org + - diff --git a/generators/xps/org.kde.okular-xps.metainfo.xml b/generators/xps/org.kde.okular-xps.metainfo.xml index 2fe40a0a3..3178856ad 100644 --- a/generators/xps/org.kde.okular-xps.metainfo.xml +++ b/generators/xps/org.kde.okular-xps.metainfo.xml @@ -95,9 +95,9 @@ https://okular.kde.org + - diff --git a/mobile/app/org.kde.okular.kirigami.appdata.xml b/mobile/app/org.kde.okular.kirigami.appdata.xml index 730f4166e..f33180aae 100644 --- a/mobile/app/org.kde.okular.kirigami.appdata.xml +++ b/mobile/app/org.kde.okular.kirigami.appdata.xml @@ -335,9 +335,9 @@ okularkirigami + - diff --git a/shell/org.kde.okular.appdata.xml b/shell/org.kde.okular.appdata.xml index e9e216634..fe5b3cdf0 100644 --- a/shell/org.kde.okular.appdata.xml +++ b/shell/org.kde.okular.appdata.xml @@ -368,6 +368,7 @@ 251 + @@ -379,6 +380,5 @@ - From f85b42bd76d3b65a587ccc5fe82364f29eef4824 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Fri, 22 Apr 2022 02:14:09 +0000 Subject: [PATCH 09/10] GIT_SILENT made messages (after extraction) --- mobile/app/org.kde.okular.kirigami.appdata.xml | 2 +- shell/org.kde.okular.appdata.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/app/org.kde.okular.kirigami.appdata.xml b/mobile/app/org.kde.okular.kirigami.appdata.xml index f33180aae..3fa0f691d 100644 --- a/mobile/app/org.kde.okular.kirigami.appdata.xml +++ b/mobile/app/org.kde.okular.kirigami.appdata.xml @@ -92,7 +92,7 @@

اوكلار هو عارض مستندات عالمي تم تطويره بواسطة كدي. يعمل اوكلار على أنظمة أساسية متعددة، بما في ذلك على سبيل المثال لا الحصر Linux و Windows و Mac OS X و * BSD وما إلى ذلك.

Okular KDE tərəfindən yaradılan sənədlərə universal baxış vasitəsidir. Okular Linux, Windows, Mac OS X, * BSD və s. digər bir çox platformada işləyir.

L'Okular és un visor universal de documents desenvolupat pel KDE. L'Okular funciona en múltiples plataformes, incloent-hi però sense limitar-se a Linux, Windows, Mac OS X, *BSD, etc.

-

Okular és un visor universal de documents desenvolupat pel KDE. Okular funciona en múltiples plataformes, incloent-hi però sense limitar-se a Linux, Windows, Mac OS X, *BSD, etc.

+

Okular és un visor universal de documents desenvolupat per KDE. Okular funciona en múltiples plataformes, incloent-hi però sense limitar-se a Linux, Windows, Mac OS X, *BSD, etc.

Okular ist ein universeller Dokumentenbetrachter, der von KDE entwickelt wird. Okular ist auf mehreren Plattformen verfügbar, darunter auch Linux, Windows, Mac OS X, *BSD usw.

Το Okular είναι ένα καθολικό πρόγραμμα προβολής εγγράφων που αναπτύχθηκε από το KDE. Το Okular λειτουργεί σε πολλές πλατφόρμες, συμπεριλαμβανομένων αλλά όχι μόνο των Linux, Windows, Mac OS X, *BSD, κλπ.

Okular is a universal document viewer developed by KDE. Okular works on multiple platforms, including but not limited to Linux, Windows, Mac OS X, *BSD, etc.

diff --git a/shell/org.kde.okular.appdata.xml b/shell/org.kde.okular.appdata.xml index fe5b3cdf0..b04ea03bf 100644 --- a/shell/org.kde.okular.appdata.xml +++ b/shell/org.kde.okular.appdata.xml @@ -99,7 +99,7 @@

اوكلار هو عارض مستندات عالمي تم تطويره بواسطة كدي. يعمل اوكلار على أنظمة أساسية متعددة، بما في ذلك على سبيل المثال لا الحصر Linux و Windows و Mac OS X و * BSD وما إلى ذلك.

Okular KDE tərəfindən yaradılan sənədlərə universal baxış vasitəsidir. Okular Linux, Windows, Mac OS X, * BSD və s. digər bir çox platformada işləyir.

L'Okular és un visor universal de documents desenvolupat pel KDE. L'Okular funciona en múltiples plataformes, incloent-hi però sense limitar-se a Linux, Windows, Mac OS X, *BSD, etc.

-

Okular és un visor universal de documents desenvolupat pel KDE. Okular funciona en múltiples plataformes, incloent-hi però sense limitar-se a Linux, Windows, Mac OS X, *BSD, etc.

+

Okular és un visor universal de documents desenvolupat per KDE. Okular funciona en múltiples plataformes, incloent-hi però sense limitar-se a Linux, Windows, Mac OS X, *BSD, etc.

Okular ist ein universeller Dokumentenbetrachter, der von KDE entwickelt wird. Okular ist auf verschiedenen Plattformen verfügbar, darunter auch Linux, Windows, Mac OS X, *BSD usw.

Το Okular είναι ένας καθολικός προβολέας εγγράφων που αναπτύχθηκε από το KDE. Το Okular λειτουργεί σε πολλές πλατφόρμες, όπως σε Linux, Windows, Mac OS X, *BSD, κλπ.

Okular is a universal document viewer developed by KDE. Okular works on multiple platforms, including but not limited to Linux, Windows, Mac OS X, *BSD, etc.

From afc0d8ed07a645f2013ec6f3094e36f70ab5edce Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Tue, 26 Apr 2022 21:46:51 +0200 Subject: [PATCH 10/10] Fix part of the Welcome Screen not being translatable --- Messages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Messages.sh b/Messages.sh index 259a47405..b67126eb9 100644 --- a/Messages.sh +++ b/Messages.sh @@ -1,6 +1,6 @@ #!/bin/sh $EXTRACTRC *.rc */*.rc >> rc.cpp || exit 11 -$EXTRACTRC $(find conf/ -name "*.ui") $(find core/ -name "*.ui") $(find part/ -name "*.ui") $(ls . | grep -E '\.ui') >> rc.cpp || exit 12 +$EXTRACTRC $(find conf/ -name "*.ui") $(find core/ -name "*.ui") $(find shell/ -name "*.ui") $(find part/ -name "*.ui") $(ls . | grep -E '\.ui') >> rc.cpp || exit 12 $EXTRACTATTR --attr=tool,name part/data/drawingtools.xml >> rc.cpp || exit 13 $EXTRACTATTR --attr=tool,name part/data/tools.xml >> rc.cpp || exit 14 $EXTRACTATTR --attr=tool,name part/data/toolsQuick.xml >> rc.cpp || exit 15