Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kfilemetadata5 for openSUSE:Factory checked in at 2022-12-12 17:38:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kfilemetadata5 (Old) and /work/SRC/openSUSE:Factory/.kfilemetadata5.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kfilemetadata5" Mon Dec 12 17:38:12 2022 rev:116 rq:1042122 version:5.101.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kfilemetadata5/kfilemetadata5.changes 2022-11-15 13:19:23.212320914 +0100 +++ /work/SRC/openSUSE:Factory/.kfilemetadata5.new.1835/kfilemetadata5.changes 2022-12-12 17:39:50.525223160 +0100 @@ -1,0 +2,13 @@ +Tue Dec 6 20:10:39 UTC 2022 - Christophe Marin <[email protected]> + +- Update to 5.101.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.101.0 +- Changes since 5.100.0: + * FFmpegExtrator: Try stream metadata if no global metadata is available + * office2007extractor: Extract text document line count + * office2007extractor: Update docx to include more properties + * Add FictionBook2 extractor + +------------------------------------------------------------------- Old: ---- kfilemetadata-5.100.0.tar.xz kfilemetadata-5.100.0.tar.xz.sig New: ---- kfilemetadata-5.101.0.tar.xz kfilemetadata-5.101.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kfilemetadata5.spec ++++++ --- /var/tmp/diff_new_pack.aO0Vjm/_old 2022-12-12 17:39:51.133226227 +0100 +++ /var/tmp/diff_new_pack.aO0Vjm/_new 2022-12-12 17:39:51.137226247 +0100 @@ -16,7 +16,7 @@ # -%define _tar_path 5.100 +%define _tar_path 5.101 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) @@ -24,11 +24,10 @@ %bcond_without ffmpeg %bcond_without released Name: kfilemetadata5 -Version: 5.100.0 +Version: 5.101.0 Release: 0 Summary: Library for extracting Metadata License: GPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-3.0-only -Group: Development/Libraries/KDE URL: https://www.kde.org Source: kfilemetadata-%{version}.tar.xz %if %{with released} @@ -61,7 +60,6 @@ %package devel Summary: Development package for kfilemetadata -Group: Development/Libraries/KDE Requires: %{name} = %{version} Requires: extra-cmake-modules >= %{_kf5_bugfix_version} Requires: cmake(Qt5Core) >= 5.15.0 ++++++ kfilemetadata-5.100.0.tar.xz -> kfilemetadata-5.101.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/CMakeLists.txt new/kfilemetadata-5.101.0/CMakeLists.txt --- old/kfilemetadata-5.100.0/CMakeLists.txt 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/CMakeLists.txt 2022-12-03 10:46:22.000000000 +0100 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "5.100.0") # handled by release scripts -set(KF_DEP_VERSION "5.100.0") # handled by release scripts +set(KF_VERSION "5.101.0") # handled by release scripts +set(KF_DEP_VERSION "5.101.0") # handled by release scripts project(KFileMetaData VERSION ${KF_VERSION}) include(FeatureSummary) -find_package(ECM 5.100.0 NO_MODULE) +find_package(ECM 5.101.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/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/kfilemetadata-5.100.0/autotests/CMakeLists.txt new/kfilemetadata-5.101.0/autotests/CMakeLists.txt --- old/kfilemetadata-5.100.0/autotests/CMakeLists.txt 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/autotests/CMakeLists.txt 2022-12-03 10:46:22.000000000 +0100 @@ -101,6 +101,17 @@ endif() # +# FictionBook2 +# +ecm_add_test( + fb2extractortest.cpp + ../src/extractors/fb2extractor.cpp + ../src/kfilemetadata_debug.cpp + TEST_NAME "fb2extractortest" + LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::Archive KF5::FileMetaData +) + +# # Property Info # add_executable(propertyinfotest_bin propertyinfotest.cpp) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/autotests/extractorcoveragetest.cpp new/kfilemetadata-5.101.0/autotests/extractorcoveragetest.cpp --- old/kfilemetadata-5.100.0/autotests/extractorcoveragetest.cpp 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/autotests/extractorcoveragetest.cpp 2022-12-03 10:46:22.000000000 +0100 @@ -42,6 +42,8 @@ { "test.dot", "text/vnd.graphviz"}, { "test.eps", "image/x-eps"}, { "test.epub", "application/epub+zip"}, + { "test.fb2", "application/x-fictionbook+xml"}, + { "test.fb2.zip", "application/x-zip-compressed-fb2"}, { "test.flac", "audio/flac"}, { "test.heif", "image/heif"}, // alias for image/heic { "test.jpg", "image/jpeg"}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/autotests/fb2extractortest.cpp new/kfilemetadata-5.101.0/autotests/fb2extractortest.cpp --- old/kfilemetadata-5.100.0/autotests/fb2extractortest.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/kfilemetadata-5.101.0/autotests/fb2extractortest.cpp 2022-12-03 10:46:22.000000000 +0100 @@ -0,0 +1,116 @@ +/* + SPDX-FileCopyrightText: 2022 Kai Uwe Broulik <[email protected]> + + SPDX-License-Identifier: LGPL-2.1-or-later +*/ + +#include "fb2extractortest.h" +#include "extractors/fb2extractor.h" +#include "indexerextractortestsconfig.h" +#include "mimeutils.h" +#include "simpleextractionresult.h" + +#include <QMimeDatabase> +#include <QTest> + +using namespace KFileMetaData; + +QString Fb2ExtractorTest::testFilePath(const QString &fileName) const +{ + return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QLatin1Char('/') + fileName; +} + +void Fb2ExtractorTest::testNoExtraction_data() +{ + QTest::addColumn<QString>("fileName"); + + QTest::addRow("uncompressed") << QStringLiteral("test.fb2"); + QTest::addRow("compressed") << QStringLiteral("test.fb2.zip"); +} + +void Fb2ExtractorTest::testNoExtraction() +{ + QFETCH(QString, fileName); + + Fb2Extractor plugin{this}; + + const QString path = testFilePath(fileName); + QMimeDatabase mimeDb; + QString mimeType = MimeUtils::strictMimeType(path, mimeDb).name(); + QVERIFY(plugin.mimetypes().contains(mimeType)); + + SimpleExtractionResult result(path, mimeType, ExtractionResult::ExtractNothing); + plugin.extract(&result); + + QCOMPARE(result.types().size(), 1); + QCOMPARE(result.types().constFirst(), Type::Document); + QCOMPARE(result.properties().size(), 0); +} + +void Fb2ExtractorTest::test_data() +{ + QTest::addColumn<QString>("fileName"); + + QTest::addRow("uncompressed") << QStringLiteral("test.fb2"); + QTest::addRow("compressed") << QStringLiteral("test.fb2.zip"); +} + +void Fb2ExtractorTest::test() +{ + QFETCH(QString, fileName); + + Fb2Extractor plugin{this}; + + const QString path = testFilePath(fileName); + QMimeDatabase mimeDb; + QString mimeType = MimeUtils::strictMimeType(path, mimeDb).name(); + QVERIFY(plugin.mimetypes().contains(mimeType)); + + SimpleExtractionResult result(path, mimeType); + plugin.extract(&result); + + QCOMPARE(result.types().size(), 1); + QCOMPARE(result.types().constFirst(), Type::Document); + + QCOMPARE(result.text(), QStringLiteral("This is a sample PDF file for KFileMetaData. ")); + QCOMPARE(result.properties().value(Property::Author), QVariant(QStringLiteral("Happy Man"))); + QCOMPARE(result.properties().value(Property::Publisher), QVariant(QStringLiteral("Happy Publisher"))); + QCOMPARE(result.properties().value(Property::Title), QVariant(QStringLiteral("The Big Brown Bear"))); + QCOMPARE(result.properties().value(Property::Description), QVariant(QStringLiteral("Honey"))); + QCOMPARE(result.properties().value(Property::Language), QVariant(QStringLiteral("en"))); + QCOMPARE(result.properties().value(Property::Genre), QVariant(QStringLiteral("antique"))); + QCOMPARE(result.properties().value(Property::Generator), QVariant(QStringLiteral("calibre 4.99.4"))); + + QDateTime dt(QDate(2014, 1, 1), QTime(0, 0, 0)); + dt.setTimeSpec(Qt::UTC); + QCOMPARE(result.properties().value(Property::CreationDate), QVariant(dt)); + QCOMPARE(result.properties().value(Property::ReleaseYear), QVariant(2014)); + + QCOMPARE(result.properties().size(), 9); +} + +void Fb2ExtractorTest::testMetaDataOnly_data() +{ + QTest::addColumn<QString>("fileName"); + QTest::addColumn<QString>("mimeType"); + + QTest::addRow("uncompressed") << QStringLiteral("test.fb2") << QStringLiteral("application/x-fictionbook+xml"); + QTest::addRow("compressed") << QStringLiteral("test.fb2.zip") << QStringLiteral("application/x-zip-compressed-fb2"); +} + +void Fb2ExtractorTest::testMetaDataOnly() +{ + QFETCH(QString, fileName); + QFETCH(QString, mimeType); + + Fb2Extractor plugin{this}; + + SimpleExtractionResult result(testFilePath(fileName), mimeType, ExtractionResult::ExtractMetaData); + plugin.extract(&result); + + QVERIFY(!result.types().isEmpty()); + QVERIFY(!result.properties().isEmpty()); + QVERIFY(result.text().isEmpty()); +} + +QTEST_GUILESS_MAIN(Fb2ExtractorTest) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/autotests/fb2extractortest.h new/kfilemetadata-5.101.0/autotests/fb2extractortest.h --- old/kfilemetadata-5.100.0/autotests/fb2extractortest.h 1970-01-01 01:00:00.000000000 +0100 +++ new/kfilemetadata-5.101.0/autotests/fb2extractortest.h 2022-12-03 10:46:22.000000000 +0100 @@ -0,0 +1,29 @@ +/* + SPDX-FileCopyrightText: 2022 Kai Uwe Broulik <[email protected]> + + SPDX-License-Identifier: LGPL-2.1-or-later +*/ + +#ifndef FB2EXTRACTORTEST_H +#define FB2EXTRACTORTEST_H + +#include <QObject> + +class Fb2ExtractorTest : public QObject +{ + Q_OBJECT +private: + QString testFilePath(const QString &fileName) const; + +private Q_SLOTS: + void testNoExtraction_data(); + void testNoExtraction(); + + void test_data(); + void test(); + + void testMetaDataOnly_data(); + void testMetaDataOnly(); +}; + +#endif // FB2EXTRACTORTEST_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/autotests/ffmpegextractortest.cpp new/kfilemetadata-5.101.0/autotests/ffmpegextractortest.cpp --- old/kfilemetadata-5.100.0/autotests/ffmpegextractortest.cpp 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/autotests/ffmpegextractortest.cpp 2022-12-03 10:46:22.000000000 +0100 @@ -109,7 +109,6 @@ SimpleExtractionResult result(fileName, mimeType); plugin.extract(&result); - QEXPECT_FAIL("Vorbis Video", "Not yet supported", Abort); QCOMPARE(result.properties().value(Property::Title).toString(), QStringLiteral("Title")); QCOMPARE(result.properties().value(Property::Copyright).toString(), QStringLiteral("Copyright")); QCOMPARE(result.properties().value(Property::Author).toString(), QStringLiteral("Author")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/autotests/office2007extractortest.cpp new/kfilemetadata-5.101.0/autotests/office2007extractortest.cpp --- old/kfilemetadata-5.100.0/autotests/office2007extractortest.cpp 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/autotests/office2007extractortest.cpp 2022-12-03 10:46:22.000000000 +0100 @@ -58,12 +58,15 @@ QCOMPARE(result.properties().value(Property::Description), QVariant(QStringLiteral("KFileMetaData comment"))); QCOMPARE(result.properties().value(Property::Language), QVariant(QStringLiteral("en-US"))); QVERIFY(result.properties().value(Property::Generator).toString().contains(QStringLiteral("LibreOffice"))); + QCOMPARE(result.properties().value(Property::PageCount), QVariant(1)); + QCOMPARE(result.properties().value(Property::WordCount), QVariant(4)); + QCOMPARE(result.properties().value(Property::LineCount), QVariant(1)); QDateTime dt(QDate(2014, 07, 01), QTime(17, 37, 40)); dt.setTimeSpec(Qt::UTC); QCOMPARE(result.properties().value(Property::CreationDate), QVariant(dt)); - QCOMPARE(result.properties().size(), 7); + QCOMPARE(result.properties().size(), 10); QCOMPARE(result.text(), QStringLiteral("Test file for KFileMetaData. ")); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/autotests/samplefiles/test.fb2 new/kfilemetadata-5.101.0/autotests/samplefiles/test.fb2 --- old/kfilemetadata-5.100.0/autotests/samplefiles/test.fb2 1970-01-01 01:00:00.000000000 +0100 +++ new/kfilemetadata-5.101.0/autotests/samplefiles/test.fb2 2022-12-03 10:46:22.000000000 +0100 @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"> +<description> + <title-info> + <genre match="80">antique</genre> + <author><first-name>Happy</first-name><last-name>Man</last-name></author> + <book-title>The Big Brown Bear</book-title> + <coverpage><image l:href="#img_0"/></coverpage> + <lang>en</lang> + <keywords>Baloo KFileMetaData</keywords> + <annotation><p>Honey</p></annotation> + </title-info> + <document-info> + <author><first-name>Happy</first-name><last-name>Man</last-name></author> + <program-used>calibre 4.99.4</program-used> + <date>01.01.2014</date> + <id>c27999e8-05e8-434e-b235-f124bfd58022</id> + <version>1.0</version> + </document-info> + <publish-info> + <publisher>Happy Publisher</publisher> + <year>2014</year> + </publish-info> +</description> +<body> +<section> +<p>This is a sample PDF file for KFileMetaData.</p> +<empty-line/> +</section> +</body> +<binary id="img_0" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRof +Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCALeAjYBAREA/8QAGwAB +AAMAAwEAAAAAAAAAAAAAAAMEBQECBgf/xAAtEAEAAgICAQMDAwQDAQEAAAAAAQIDBAUREgYT +IRQiMUFRgTJhcZEVI0IWsf/aAAgBAQAAPwD7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjyfM8dwuCufktzFq4rW8YvknqO+u/8A8hHx +3qDieWtWuhv4NibRaaxjt33FfHuY/wAeVf8AcLuLYw5smbHjyVtfDaKZKx+azMRPU/xMT/Jl +2cOC+KmXJWlst/bxxP8A6t1M9R/ET/pKAIcm1gw7GHBky0rmz+XtUmfm/Udz1/iEzH1PVfA7 +239Lq8tq5c8+URSuSO58e++v366n8fs54/1TwXLZva0OV1djJ4TeKUyR3NY/MxH6x/hzx3qf +hOX2IwcdyWvs5ZrN4rjt33Efq75vUPEa+1n1c3IYKZtevlmpa39EePl8/t9sd/4aVbRasWrP +cTHcSrX5LTpyVOOtsUjcvjnLXD3900j47/wtK2TkdPDlz4smzipfBijNli1oj28c99Wn9o+2 +3z/aWbl9X+nsGamHLy2tXJelLxSbfPjaO6z/ADH4aODktLZ2JwYNnHkzVi0zSs/MRFprM9f2 +tEx/mDY5HS1NrV1djZxYtjbtauvjvbq2WYjuYrH69R8ucPIaefd2NLDs477WtFZzYq27tji0 +d17j9O4hNObFGeMM5K+7NZvFO/max1Ez1+3zH+1Tk+Z47hsOPLyW5i1ceS/hSck9eVupnqP4 +iZ/hLocjp8pq12tDZxbOC0zEZMVotHcfmPj9f7JozYpzWwxkrOWtYtNIn7oie4iev2+J/wBO +4AAAAAAAAAAAAAAzfUOHJsemuVw4aWvlyaeWlKVjubWmkxER/Ly/I8Fsb+fhYyYtyka/C56W +tgy3xTXNMYfGszWYnvuszEfvDH29f1Fl0fc2v+U9z3MdvCtMtq3t9JiiYn2rRev/AGRfqY7i +Ld9x+HqeUryufiOBnDi3MOz7lZ2qYskWvjj6fJ3E2+Inq81+Z+O+lb0LTkcGLdxbeHbnHWuK +cebZjLScl+p8o8MtrTW0dR3NZ8Zmfj8SzvSNeaj1NjzbWvyGHWzaeX6imf3pimbzpNYta9ur +W68vmla16/Hf6Q7ded1ef5bLq6vK7nnXZ8Y8smGaR4fZFLd2xXjvqK9RF47+e/lBxnHc1s79 +dTLHKU4y+7r3tNZ2MUTT2c3uR3e83ivlGPv5juep6+e1bd1OZ4j059TfNzFL30c1dm87OSbx +aNnHGKI7n7be3NoiY67j8re1oc7l2cubhtffx4cf1X/H/V+fnivOt1398+UROT8eX69/o3fR +GHkMOXdnYvufSzXF7dNnDlx9ZOp85j3clrT/AOe/xXuPjv5UvT3pXkMnBcdblN3PFNPLk2MO +hOCtPDJ3eK+Vv6p+Ld9fHfcK3F49zkOH9J8dXid/X2OKrjybOfZ15xVxxXDalqVmfm02mYj4 ++Ou5lveh+J5HjPTfGV3uQ272rpY6Tp58eOsYLREfEeNYt8fj5mXmea4Lk6zzv0Wru2rube3a +1a3vauWs6URWepnrqcncR/eIj9IWtTV9QR6wrfNk3adb3dfHDknF9L4fFZtOSMcR/bx8/L/a +f1DxW7/9PvcjrYN+cOTBp49i2tkvFsmKMuT3a0iJ/Pj499fPUz18z88cRxvI7XPac5/+Vx8P +iybWXWpmzZKTFYnD7cZPnyn592a1t+n5/Zx6m9O8pynqnd3dXytgwaWrkpq5Kx7G9kx5Mtva +vP7dT+Px3asz310ucToclvep+T5auxyPF62xXUvGC2DHHudY/urbyrMxMT9s9TDB3tD1JbLt +58GLcraZvS+Txva84Prr2mtepi0/9UxMRExPj+P0dM3C81tYuO2IxbmfJo5tva05y4b0mk1j +FbHTq9rXiLTW8R5T31brrp0zcTz9drb5HHrbWvHI21djfiuO9rxSZzzOPqlotPhE4a2is99R ++rvfQ5jXrr71tXltvZnjtrBhtX3MV6ROes1rb7rWjqnlMd/dMREf1dJOPpyulvau1taXJ59L +V5ecuKKa2a0xitqWrM1re1r+PuT18z+Z/EJ9zX5PNsbm7j4ze19LkuQjJ7fjki1K1wRXzyY8 +Uxf77R8R3H4ibM/V0+a1tX6ra4/lsm/scZqYMuSL5YmPDPeMnl4zM9xWaTMR91o76n5mXrfR +WTkNbSzavI4d3u+7m+ntlxXiK4vGtq/12tatZmZ68pmf0+Pw9aAAAAAAAAAAAAAAAACPPgw7 +OG2LPiplx267pesWievn8SkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//2Q==</binary> +</FictionBook> Binary files old/kfilemetadata-5.100.0/autotests/samplefiles/test.fb2.zip and new/kfilemetadata-5.101.0/autotests/samplefiles/test.fb2.zip differ Binary files old/kfilemetadata-5.100.0/autotests/samplefiles/test_libreoffice.docx and new/kfilemetadata-5.101.0/autotests/samplefiles/test_libreoffice.docx differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/po/ca/kfilemetadata5.po new/kfilemetadata-5.101.0/po/ca/kfilemetadata5.po --- old/kfilemetadata-5.100.0/po/ca/kfilemetadata5.po 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/po/ca/kfilemetadata5.po 2022-12-03 10:46:22.000000000 +0100 @@ -10,7 +10,7 @@ "Project-Id-Version: kfilemetadata\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-06-09 02:02+0200\n" -"PO-Revision-Date: 2022-08-31 11:13+0200\n" +"PO-Revision-Date: 2022-11-06 11:27+0100\n" "Last-Translator: Josep M. Ferrer <[email protected]>\n" "Language-Team: Catalan <[email protected]>\n" "Language: ca\n" @@ -664,7 +664,7 @@ #, kde-format msgctxt "@label" msgid "Lyrics" -msgstr "Lletres" +msgstr "Lletra" #: src/propertyinfo.cpp:442 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/po/ca@valencia/kfilemetadata5.po new/kfilemetadata-5.101.0/po/ca@valencia/kfilemetadata5.po --- old/kfilemetadata-5.100.0/po/ca@valencia/kfilemetadata5.po 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/po/ca@valencia/kfilemetadata5.po 2022-12-03 10:46:22.000000000 +0100 @@ -10,7 +10,7 @@ "Project-Id-Version: kfilemetadata\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-06-09 02:02+0200\n" -"PO-Revision-Date: 2022-08-31 11:13+0200\n" +"PO-Revision-Date: 2022-11-06 11:27+0100\n" "Last-Translator: Josep M. Ferrer <[email protected]>\n" "Language-Team: Catalan <[email protected]>\n" "Language: ca@valencia\n" @@ -662,7 +662,7 @@ #, kde-format msgctxt "@label" msgid "Lyrics" -msgstr "Lletres" +msgstr "Lletra" #: src/propertyinfo.cpp:442 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/po/ie/kfilemetadata5.po new/kfilemetadata-5.101.0/po/ie/kfilemetadata5.po --- old/kfilemetadata-5.100.0/po/ie/kfilemetadata5.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kfilemetadata-5.101.0/po/ie/kfilemetadata5.po 2022-12-03 10:46:22.000000000 +0100 @@ -0,0 +1,823 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kfilemetadata package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kfilemetadata\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-09 02:02+0200\n" +"PO-Revision-Date: 2022-11-09 16:42+0700\n" +"Last-Translator: OIS <[email protected]>\n" +"Language-Team: Interlingue <[email protected]>\n" +"Language: ie\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.12\n" + +#: src/formatstrings.cpp:64 +#, kde-format +msgctxt "@label bitrate (per second)" +msgid "%1/s" +msgstr "%1/s" + +#: src/formatstrings.cpp:78 +#, kde-format +msgctxt "Description of image orientation" +msgid "Unchanged" +msgstr "Ãnalterat" + +#: src/formatstrings.cpp:79 +#, kde-format +msgctxt "Description of image orientation" +msgid "Horizontally flipped" +msgstr "Reflectet horisontalmen" + +#: src/formatstrings.cpp:80 +#, kde-format +msgctxt "Description of image orientation" +msgid "180° rotated" +msgstr "Rotat per 180°" + +#: src/formatstrings.cpp:81 +#, kde-format +msgctxt "Description of image orientation" +msgid "Vertically flipped" +msgstr "Reflectet verticalmen" + +#: src/formatstrings.cpp:82 +#, kde-format +msgctxt "Description of image orientation" +msgid "Transposed" +msgstr "" + +#: src/formatstrings.cpp:83 +#, kde-format +msgctxt "Description of image orientation, counter clock-wise rotated" +msgid "90° rotated CCW " +msgstr "Rotat 90° a levul " + +#: src/formatstrings.cpp:84 +#, kde-format +msgctxt "Description of image orientation" +msgid "Transversed" +msgstr "" + +#: src/formatstrings.cpp:85 +#, kde-format +msgctxt "Description of image orientation, counter clock-wise rotated" +msgid "270° rotated CCW" +msgstr "Rotat 270° a levul" + +#: src/formatstrings.cpp:96 +#, kde-format +msgctxt "Description of photo flash" +msgid "No flash" +msgstr "Sin flash" + +#: src/formatstrings.cpp:97 +#, kde-format +msgctxt "Description of photo flash" +msgid "Fired" +msgstr "Flash tirat" + +#: src/formatstrings.cpp:98 +#, kde-format +msgctxt "Description of photo flash" +msgid "Fired, return light not detected" +msgstr "" + +#: src/formatstrings.cpp:99 +#, kde-format +msgctxt "Description of photo flash" +msgid "Fired, return light detected" +msgstr "" + +#: src/formatstrings.cpp:100 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, did not fire" +msgstr "Yes, ne tirat" + +#: src/formatstrings.cpp:101 +#, fuzzy, kde-format +msgctxt "Description of photo flash" +msgid "Yes, compulsory" +msgstr " (yes o no)" + +#: src/formatstrings.cpp:102 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, compulsory, return light not detected" +msgstr "" + +#: src/formatstrings.cpp:103 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, compulsory, return light detected" +msgstr "" + +#: src/formatstrings.cpp:104 +#, kde-format +msgctxt "Description of photo flash" +msgid "No, compulsory" +msgstr "" + +#: src/formatstrings.cpp:105 +#, kde-format +msgctxt "Description of photo flash" +msgid "No, did not fire, return light not detected" +msgstr "" + +#: src/formatstrings.cpp:106 +#, kde-format +msgctxt "Description of photo flash" +msgid "No, auto" +msgstr "No, automatic" + +#: src/formatstrings.cpp:107 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, auto" +msgstr "Yes, automatic" + +#: src/formatstrings.cpp:108 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, auto, return light not detected" +msgstr "" + +#: src/formatstrings.cpp:109 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, auto, return light detected" +msgstr "" + +#: src/formatstrings.cpp:110 +#, fuzzy, kde-format +msgctxt "Description of photo flash" +msgid "No flash function" +msgstr "function" + +#: src/formatstrings.cpp:111 +#, fuzzy, kde-format +msgctxt "Description of photo flash" +msgid "No, no flash function" +msgstr "function" + +#: src/formatstrings.cpp:112 +#, fuzzy, kde-format +msgctxt "Description of photo flash" +msgid "Yes, red-eye reduction" +msgstr "Reducter li rubi ocules" + +#: src/formatstrings.cpp:113 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, red-eye reduction, return light not detected" +msgstr "" + +#: src/formatstrings.cpp:114 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, red-eye reduction, return light detected" +msgstr "" + +#: src/formatstrings.cpp:115 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, compulsory, red-eye reduction" +msgstr "" + +#: src/formatstrings.cpp:116 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, compulsory, red-eye reduction, return light not detected" +msgstr "" + +#: src/formatstrings.cpp:117 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, compulsory, red-eye reduction, return light detected" +msgstr "" + +#: src/formatstrings.cpp:118 +#, kde-format +msgctxt "Description of photo flash" +msgid "No, red-eye reduction" +msgstr "No, reduction del rubi ocules" + +#: src/formatstrings.cpp:119 +#, kde-format +msgctxt "Description of photo flash" +msgid "No, auto, red-eye reduction" +msgstr "No, automatic, reduction del rubi ocules" + +#: src/formatstrings.cpp:120 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, auto, red-eye reduction" +msgstr "" + +#: src/formatstrings.cpp:121 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, auto, red-eye reduction, return light not detected" +msgstr "" + +#: src/formatstrings.cpp:122 +#, kde-format +msgctxt "Description of photo flash" +msgid "Yes, auto, red-eye reduction, return light detected" +msgstr "" + +#: src/formatstrings.cpp:127 +#, kde-format +msgid "Unknown" +msgstr "Ãnconosset" + +#: src/formatstrings.cpp:134 +#, kde-format +msgctxt "Symbol of degree, no space" +msgid "%1°" +msgstr "%1°" + +#: src/formatstrings.cpp:145 +#, kde-format +msgctxt "Focal length given in mm" +msgid "%1 mm" +msgstr "%1 mm" + +#: src/formatstrings.cpp:150 +#, kde-format +msgctxt "Symbol of frames per second, with space" +msgid "%1 fps" +msgstr "%1 cps" + +#: src/formatstrings.cpp:160 +#, kde-format +msgctxt "Time period given in seconds as rational number, denominator is given" +msgid "1/%1 s" +msgstr "1/%1 s" + +#: src/formatstrings.cpp:163 +#, kde-format +msgctxt "Time period given in seconds" +msgid "%1 s" +msgstr "%1 s" + +#: src/formatstrings.cpp:179 +#, kde-format +msgctxt "Exposure bias/compensation in exposure value (EV)" +msgid "%1 EV" +msgstr "" + +#: src/formatstrings.cpp:193 +#, fuzzy, kde-format +msgctxt "" +"Exposure compensation given as integral with fraction, in exposure value (EV)" +msgid "%1 %2/%3 EV" +msgstr "%1 %2 (%3)" + +#: src/formatstrings.cpp:196 +#, fuzzy, kde-format +msgctxt "Exposure compensation given as rational, in exposure value (EV)" +msgid "%1/%2 EV" +msgstr "%1 %2" + +#: src/formatstrings.cpp:201 +#, kde-format +msgctxt "Aspect ratio, normalized to one" +msgid "%1:1" +msgstr "%1:1" + +#: src/formatstrings.cpp:206 +#, kde-format +msgctxt "F number for photographs" +msgid "f/%1" +msgstr "f/%1" + +#: src/propertyinfo.cpp:49 +#, kde-format +msgctxt "@label music album" +msgid "Album" +msgstr "Album" + +#: src/propertyinfo.cpp:55 +#, kde-format +msgctxt "@label" +msgid "Album Artist" +msgstr "Artist del album" + +#: src/propertyinfo.cpp:61 +#, kde-format +msgctxt "@label" +msgid "Artist" +msgstr "Artist" + +#: src/propertyinfo.cpp:67 +#, kde-format +msgctxt "@label" +msgid "Aspect Ratio" +msgstr "Aspecte" + +#: src/propertyinfo.cpp:74 +#, kde-format +msgctxt "@label" +msgid "Author" +msgstr "Autor" + +#: src/propertyinfo.cpp:80 +#, kde-format +msgctxt "@label" +msgid "Bitrate" +msgstr "Bitrate" + +#: src/propertyinfo.cpp:87 +#, kde-format +msgctxt "@label" +msgid "Channels" +msgstr "Canales" + +#: src/propertyinfo.cpp:93 +#, kde-format +msgctxt "@label" +msgid "Comment" +msgstr "Comenta" + +#: src/propertyinfo.cpp:100 +#, kde-format +msgctxt "@label" +msgid "Description" +msgstr "Descrition" + +#: src/propertyinfo.cpp:107 +#, kde-format +msgctxt "@label" +msgid "Composer" +msgstr "Compositor" + +#: src/propertyinfo.cpp:113 +#, kde-format +msgctxt "@label" +msgid "Copyright" +msgstr "Jure editorial" + +#: src/propertyinfo.cpp:120 +#, kde-format +msgctxt "@label" +msgid "Creation Date" +msgstr "Date de creation" + +#: src/propertyinfo.cpp:127 +#, kde-format +msgctxt "@label" +msgid "Duration" +msgstr "Duration" + +#: src/propertyinfo.cpp:139 +#, kde-format +msgctxt "@label" +msgid "Frame Rate" +msgstr "Rapiditá de cadres" + +#: src/propertyinfo.cpp:146 +#, kde-format +msgctxt "@label" +msgid "Document Generated By" +msgstr "Generator" + +#: src/propertyinfo.cpp:153 +#, kde-format +msgctxt "@label music genre" +msgid "Genre" +msgstr "Genre" + +#: src/propertyinfo.cpp:159 +#, kde-format +msgctxt "@label" +msgid "Height" +msgstr "Altore" + +#: src/propertyinfo.cpp:165 +#, fuzzy, kde-format +msgctxt "@label EXIF" +msgid "Image Date Time" +msgstr "Li Date e posque li hora" + +#: src/propertyinfo.cpp:172 +#, kde-format +msgctxt "@label EXIF" +msgid "Manufacturer" +msgstr "Fabricator" + +#: src/propertyinfo.cpp:179 +#, kde-format +msgctxt "@label EXIF" +msgid "Model" +msgstr "Modelle" + +#: src/propertyinfo.cpp:186 +#, kde-format +msgctxt "@label EXIF" +msgid "Image Orientation" +msgstr "Orientation de image" + +#: src/propertyinfo.cpp:193 +#, kde-format +msgctxt "@label" +msgid "Keywords" +msgstr "Clav-paroles" + +#: src/propertyinfo.cpp:200 +#, kde-format +msgctxt "@label" +msgid "Language" +msgstr "Lingue" + +#: src/propertyinfo.cpp:207 +#, kde-format +msgctxt "@label number of lines" +msgid "Line Count" +msgstr "Númere de lineas" + +#: src/propertyinfo.cpp:213 +#, kde-format +msgctxt "@label" +msgid "Lyricist" +msgstr "Autor del textu" + +#: src/propertyinfo.cpp:219 +#, kde-format +msgctxt "@label" +msgid "Page Count" +msgstr "Númere de págines" + +#: src/propertyinfo.cpp:225 +#, kde-format +msgctxt "@label EXIF" +msgid "Aperture Value" +msgstr "Valore de apertura" + +#: src/propertyinfo.cpp:232 +#, fuzzy, kde-format +msgctxt "@label EXIF" +msgid "Original Date Time" +msgstr "Date de original" + +#: src/propertyinfo.cpp:239 +#, fuzzy, kde-format +msgctxt "@label EXIF" +msgid "Exposure Bias" +msgstr "_Exposition:" + +#: src/propertyinfo.cpp:246 +#, kde-format +msgctxt "@label EXIF" +msgid "Exposure Time" +msgstr "Exposition" + +#: src/propertyinfo.cpp:253 +#, kde-format +msgctxt "@label EXIF" +msgid "Flash" +msgstr "Flash" + +#: src/propertyinfo.cpp:260 +#, kde-format +msgctxt "@label EXIF" +msgid "F Number" +msgstr "Numeró F" + +#: src/propertyinfo.cpp:267 +#, kde-format +msgctxt "@label EXIF" +msgid "Focal Length" +msgstr "Dist. focal" + +#: src/propertyinfo.cpp:274 +#, fuzzy, kde-format +msgctxt "@label EXIF" +msgid "Focal Length 35mm" +msgstr "Dist. focal:" + +#: src/propertyinfo.cpp:281 +#, kde-format +msgctxt "@label EXIF" +msgid "GPS Latitude" +msgstr "Latitúdine GPS" + +#: src/propertyinfo.cpp:288 +#, kde-format +msgctxt "@label EXIF" +msgid "GPS Longitude" +msgstr "Longitúdine GPS" + +#: src/propertyinfo.cpp:295 +#, kde-format +msgctxt "@label EXIF" +msgid "GPS Altitude" +msgstr "Altitúdine GPS" + +#: src/propertyinfo.cpp:302 +#, fuzzy, kde-format +msgctxt "@label EXIF" +msgid "ISO Speed Rating" +msgstr "Velocitá ISO" + +#: src/propertyinfo.cpp:308 +#, kde-format +msgctxt "@label EXIF" +msgid "Metering Mode" +msgstr "Mode de mesura" + +#: src/propertyinfo.cpp:314 +#, kde-format +msgctxt "@label EXIF" +msgid "X Dimension" +msgstr "Dimension X" + +#: src/propertyinfo.cpp:320 +#, kde-format +msgctxt "@label EXIF" +msgid "Y Dimension" +msgstr "Dimension Y" + +#: src/propertyinfo.cpp:326 +#, kde-format +msgctxt "@label EXIF" +msgid "Saturation" +msgstr "Saturation" + +#: src/propertyinfo.cpp:332 +#, kde-format +msgctxt "@label EXIF" +msgid "Sharpness" +msgstr "" + +#: src/propertyinfo.cpp:338 +#, kde-format +msgctxt "@label EXIF" +msgid "White Balance" +msgstr "Balancie del blanc" + +#: src/propertyinfo.cpp:344 +#, kde-format +msgctxt "@label" +msgid "Publisher" +msgstr "Publicator" + +#: src/propertyinfo.cpp:350 +#, kde-format +msgctxt "@label" +msgid "Label" +msgstr "Label" + +#: src/propertyinfo.cpp:356 +#, kde-format +msgctxt "@label" +msgid "Release Year" +msgstr "Annu de publication" + +#: src/propertyinfo.cpp:362 +#, fuzzy, kde-format +msgctxt "@label" +msgid "Sample Rate" +msgstr "Percentage" + +#: src/propertyinfo.cpp:369 +#, kde-format +msgctxt "@label" +msgid "Subject" +msgstr "Tema" + +#: src/propertyinfo.cpp:376 +#, kde-format +msgctxt "@label" +msgid "Title" +msgstr "Titul" + +#: src/propertyinfo.cpp:382 +#, kde-format +msgctxt "@label music track number" +msgid "Track Number" +msgstr "Nró del track" + +#: src/propertyinfo.cpp:388 +#, kde-format +msgctxt "@label music disc number" +msgid "Disc Number" +msgstr "Nró de disco" + +#: src/propertyinfo.cpp:394 +#, kde-format +msgctxt "@label" +msgid "Location" +msgstr "Localisation" + +#: src/propertyinfo.cpp:400 +#, kde-format +msgctxt "@label" +msgid "Performer" +msgstr "Performant" + +#: src/propertyinfo.cpp:406 +#, kde-format +msgctxt "@label" +msgid "Ensemble" +msgstr "Orchestre" + +#: src/propertyinfo.cpp:412 +#, kde-format +msgctxt "@label" +msgid "Arranger" +msgstr "Arangeator" + +#: src/propertyinfo.cpp:418 +#, kde-format +msgctxt "@label" +msgid "Conductor" +msgstr "Dirigente" + +#: src/propertyinfo.cpp:424 +#, kde-format +msgctxt "@label" +msgid "Compilation" +msgstr "Compilation" + +#: src/propertyinfo.cpp:430 +#, kde-format +msgctxt "@label" +msgid "License" +msgstr "Licentie" + +#: src/propertyinfo.cpp:436 +#, kde-format +msgctxt "@label" +msgid "Lyrics" +msgstr "Textu" + +#: src/propertyinfo.cpp:442 +#, kde-format +msgctxt "@label" +msgid "Opus" +msgstr "Opus" + +#: src/propertyinfo.cpp:448 +#, kde-format +msgctxt "@label" +msgid "Rating" +msgstr "Evaluation" + +#: src/propertyinfo.cpp:454 +#, fuzzy, kde-format +msgctxt "@label" +msgid "Replay Gain Album Peak" +msgstr "Gania de album" + +#: src/propertyinfo.cpp:461 +#, fuzzy, kde-format +msgctxt "@label" +msgid "Replay Gain Album Gain" +msgstr "Gania de album" + +#: src/propertyinfo.cpp:468 +#, fuzzy, kde-format +msgctxt "@label" +msgid "Replay Gain Track Peak" +msgstr "Gania de track" + +#: src/propertyinfo.cpp:475 +#, fuzzy, kde-format +msgctxt "@label" +msgid "Replay Gain Track Gain" +msgstr "Gania de track" + +#: src/propertyinfo.cpp:482 +#, kde-format +msgctxt "@label" +msgid "Width" +msgstr "Largore" + +#: src/propertyinfo.cpp:488 +#, kde-format +msgctxt "@label number of words" +msgid "Word Count" +msgstr "Númere de paroles" + +#: src/propertyinfo.cpp:495 +#, kde-format +msgctxt "@label number of translatable strings" +msgid "Translatable Units" +msgstr "Traductibil unités" + +#: src/propertyinfo.cpp:502 +#, kde-format +msgctxt "@label number of translated strings" +msgid "Translations" +msgstr "Traductiones" + +#: src/propertyinfo.cpp:510 +#, kde-format +msgctxt "@label number of fuzzy translated strings" +msgid "Draft Translations" +msgstr "Ãnprecis traductiones" + +#: src/propertyinfo.cpp:517 +#, kde-format +msgctxt "@label translation author" +msgid "Author" +msgstr "Autor" + +#: src/propertyinfo.cpp:524 +#, kde-format +msgctxt "@label translations last update" +msgid "Last Update" +msgstr "Actualisat" + +#: src/propertyinfo.cpp:532 +#, kde-format +msgctxt "@label date of template creation8" +msgid "Template Creation" +msgstr "Creation de modelle" + +#: src/propertyinfo.cpp:540 +#, kde-format +msgctxt "@label the URL a file was originally downloaded from" +msgid "Downloaded From" +msgstr "Descargat de" + +#: src/propertyinfo.cpp:547 +#, kde-format +msgctxt "@label the subject of an email this file was attached to" +msgid "E-Mail Attachment Subject" +msgstr "Tema del atachament" + +#: src/propertyinfo.cpp:554 +#, kde-format +msgctxt "@label the sender of an email this file was attached to" +msgid "E-Mail Attachment Sender" +msgstr "Inviator del atachament" + +#: src/propertyinfo.cpp:561 +#, kde-format +msgctxt "@label the message ID of an email this file was attached to" +msgid "E-Mail Attachment Message ID" +msgstr "ID de missage del atachament" + +#: src/typeinfo.cpp:34 +#, kde-format +msgctxt "@label" +msgid "Archive" +msgstr "Archive" + +#: src/typeinfo.cpp:39 +#, kde-format +msgctxt "@label" +msgid "Audio" +msgstr "Audio" + +#: src/typeinfo.cpp:44 +#, kde-format +msgctxt "@label" +msgid "Document" +msgstr "Document" + +#: src/typeinfo.cpp:49 +#, kde-format +msgctxt "@label" +msgid "Image" +msgstr "Image" + +#: src/typeinfo.cpp:54 +#, kde-format +msgctxt "@label" +msgid "Presentation" +msgstr "Presentation" + +#: src/typeinfo.cpp:59 +#, kde-format +msgctxt "@label" +msgid "Spreadsheet" +msgstr "Folie de calcules" + +#: src/typeinfo.cpp:64 +#, kde-format +msgctxt "@label" +msgid "Text" +msgstr "Textu" + +#: src/typeinfo.cpp:69 +#, kde-format +msgctxt "@label" +msgid "Video" +msgstr "Video" + +#: src/typeinfo.cpp:74 +#, kde-format +msgctxt "@label" +msgid "Folder" +msgstr "Fólder" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/po/zh_CN/kfilemetadata5.po new/kfilemetadata-5.101.0/po/zh_CN/kfilemetadata5.po --- old/kfilemetadata-5.100.0/po/zh_CN/kfilemetadata5.po 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/po/zh_CN/kfilemetadata5.po 2022-12-03 10:46:22.000000000 +0100 @@ -3,7 +3,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-06-09 02:02+0200\n" -"PO-Revision-Date: 2022-10-30 07:48\n" +"PO-Revision-Date: 2022-12-01 06:52\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/src/extractors/CMakeLists.txt new/kfilemetadata-5.101.0/src/extractors/CMakeLists.txt --- old/kfilemetadata-5.100.0/src/extractors/CMakeLists.txt 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/src/extractors/CMakeLists.txt 2022-12-03 10:46:22.000000000 +0100 @@ -266,3 +266,18 @@ install( TARGETS kfilemetadata_pngextractor DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf${QT_MAJOR_VERSION}/kfilemetadata) + +# +# FictionBook2 +# +add_library(kfilemetadata_fb2extractor MODULE fb2extractor.cpp ) +target_link_libraries(kfilemetadata_fb2extractor + KF5::Archive + KF5::FileMetaData + Qt${QT_MAJOR_VERSION}::Core +) + +set_target_properties(kfilemetadata_fb2extractor PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf${QT_MAJOR_VERSION}/kfilemetadata") +install( +TARGETS kfilemetadata_fb2extractor +DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf${QT_MAJOR_VERSION}/kfilemetadata) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/src/extractors/fb2extractor.cpp new/kfilemetadata-5.101.0/src/extractors/fb2extractor.cpp --- old/kfilemetadata-5.100.0/src/extractors/fb2extractor.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/kfilemetadata-5.101.0/src/extractors/fb2extractor.cpp 2022-12-03 10:46:22.000000000 +0100 @@ -0,0 +1,218 @@ +/* + SPDX-FileCopyrightText: 2022 Kai Uwe Broulik <[email protected]> + + SPDX-License-Identifier: LGPL-2.1-or-later +*/ + +#include "fb2extractor.h" +#include "kfilemetadata_debug.h" + +#include <QDateTime> +#include <QFile> +#include <QXmlStreamReader> + +#include <KZip> + +#include <memory> + +using namespace KFileMetaData; + +Fb2Extractor::Fb2Extractor(QObject *parent) + : ExtractorPlugin(parent) +{ +} + +namespace +{ +static const QString regularMimeType() +{ + return QStringLiteral("application/x-fictionbook+xml"); +} + +static const QString compressedMimeType() +{ + return QStringLiteral("application/x-zip-compressed-fb2"); +} + +static const QStringList supportedMimeTypes = {regularMimeType(), compressedMimeType()}; + +} + +QStringList Fb2Extractor::mimetypes() const +{ + return supportedMimeTypes; +} + +void Fb2Extractor::extract(ExtractionResult *result) +{ + std::unique_ptr<QIODevice> device; + std::unique_ptr<KZip> zip; + + if (result->inputMimetype() == regularMimeType()) { + device.reset(new QFile(result->inputUrl())); + if (!device->open(QIODevice::ReadOnly | QIODevice::Text)) { + return; + } + + } else if (result->inputMimetype() == compressedMimeType()) { + zip.reset(new KZip(result->inputUrl())); + if (!zip->open(QIODevice::ReadOnly)) { + return; + } + + const auto entries = zip->directory()->entries(); + if (entries.count() != 1) { + return; + } + + const QString entryPath = entries.first(); + if (!entryPath.endsWith(QLatin1String(".fb2"))) { + return; + } + + const auto *entry = zip->directory()->file(entryPath); + if (!entry) { + return; + } + + device.reset(entry->createDevice()); + } + + result->addType(Type::Document); + + QXmlStreamReader xml(device.get()); + + bool inFictionBook = false; + bool inDescription = false; + bool inTitleInfo = false; + bool inAuthor = false; + bool inDocumentInfo = false; + bool inPublishInfo = false; + bool inBody = false; + + QString authorFirstName; + QString authorMiddleName; + QString authorLastName; + QString authorNickName; + + while (!xml.atEnd() && !xml.hasError()) { + xml.readNext(); + + if (xml.name() == QLatin1String("FictionBook")) { + if (xml.isStartElement()) { + inFictionBook = true; + } else if (xml.isEndElement()) { + break; + } + } else if (xml.name() == QLatin1String("description")) { + if (xml.isStartElement()) { + inDescription = true; + } else if (xml.isEndElement()) { + inDescription = false; + } + } else if (xml.name() == QLatin1String("title-info")) { + if (xml.isStartElement()) { + inTitleInfo = true; + } else if (xml.isEndElement()) { + inTitleInfo = false; + } + } else if (xml.name() == QLatin1String("document-info")) { + if (xml.isStartElement()) { + inDocumentInfo = true; + } else if (xml.isEndElement()) { + inDocumentInfo = false; + } + } else if (xml.name() == QLatin1String("publish-info")) { + if (xml.isStartElement()) { + inPublishInfo = true; + } else if (xml.isEndElement()) { + inPublishInfo = false; + } + } else if (xml.name() == QLatin1String("body")) { + if (xml.isStartElement()) { + inBody = true; + } else if (xml.isEndElement()) { + inBody = false; + } + } + + if (!inFictionBook) { + continue; + } + + if (inDescription && result->inputFlags() & ExtractionResult::ExtractMetaData) { + if (inTitleInfo) { + if (xml.isStartElement()) { + if (xml.name() == QLatin1String("author")) { + inAuthor = true; + } else if (inAuthor) { + if (xml.name() == QLatin1String("first-name")) { + authorFirstName = xml.readElementText(); + } else if (xml.name() == QLatin1String("middle-name")) { + authorMiddleName = xml.readElementText(); + } else if (xml.name() == QLatin1String("last-name")) { + authorLastName = xml.readElementText(); + } else if (xml.name() == QLatin1String("nickname")) { + authorNickName = xml.readElementText(); + } + } else if (xml.name() == QLatin1String("book-title")) { + result->add(Property::Title, xml.readElementText()); + } else if (xml.name() == QLatin1String("annotation")) { + result->add(Property::Description, xml.readElementText(QXmlStreamReader::IncludeChildElements).trimmed()); + } else if (xml.name() == QLatin1String("lang")) { + result->add(Property::Language, xml.readElementText()); + } else if (xml.name() == QLatin1String("genre")) { + result->add(Property::Genre, xml.readElementText()); + } + } else if (xml.isEndElement()) { + inAuthor = false; + + QStringList nameParts = {authorFirstName, authorMiddleName, authorLastName}; + nameParts.removeAll(QString()); + + if (!nameParts.isEmpty()) { + result->add(Property::Author, nameParts.join(QLatin1Char(' '))); + } else if (!authorNickName.isEmpty()) { + result->add(Property::Author, authorNickName); + } + + authorFirstName.clear(); + authorMiddleName.clear(); + authorLastName.clear(); + authorNickName.clear(); + } + } else if (inDocumentInfo) { + if (xml.name() == QLatin1String("date")) { + // Date can be "not exact" but date "value", if present, is an xs:date + const auto dateValue = xml.attributes().value(QLatin1String("value")); + QDateTime dt = QDateTime::fromString(dateValue.toString()); + + if (!dt.isValid()) { + dt = ExtractorPlugin::dateTimeFromString(xml.readElementText()); + } + + if (dt.isValid()) { + result->add(Property::CreationDate, dt); + } + } else if (xml.name() == QLatin1String("program-used")) { + result->add(Property::Generator, xml.readElementText()); + // "Owner of the fb2 document copyrights" + } else if (xml.name() == QLatin1String("publisher")) { + result->add(Property::Copyright, xml.readElementText()); + } + } else if (inPublishInfo) { + if (xml.name() == QLatin1String("publisher")) { + result->add(Property::Publisher, xml.readElementText()); + } else if (xml.name() == QLatin1String("year")) { + bool ok; + const int releaseYear = xml.readElementText().toInt(&ok); + if (ok) { + result->add(Property::ReleaseYear, releaseYear); + } + } + } + } else if (inBody && result->inputFlags() & ExtractionResult::ExtractPlainText && xml.isCharacters() && !xml.isWhitespace()) { + result->append(xml.text().toString()); + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/src/extractors/fb2extractor.h new/kfilemetadata-5.101.0/src/extractors/fb2extractor.h --- old/kfilemetadata-5.100.0/src/extractors/fb2extractor.h 1970-01-01 01:00:00.000000000 +0100 +++ new/kfilemetadata-5.101.0/src/extractors/fb2extractor.h 2022-12-03 10:46:22.000000000 +0100 @@ -0,0 +1,29 @@ +/* + SPDX-FileCopyrightText: 2022 Kai Uwe Broulik <[email protected]> + + SPDX-License-Identifier: LGPL-2.1-or-later +*/ + +#ifndef FB2EXTRACTOR_H +#define FB2EXTRACTOR_H + +#include "extractorplugin.h" + +namespace KFileMetaData +{ +class Fb2Extractor : public ExtractorPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.kde.kf5.kfilemetadata.ExtractorPlugin" FILE "fb2extractor.json") + Q_INTERFACES(KFileMetaData::ExtractorPlugin) + +public: + explicit Fb2Extractor(QObject *parent = nullptr); + + void extract(ExtractionResult *result) override; + QStringList mimetypes() const override; +}; + +} + +#endif // FB2EXTRACTOR_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/src/extractors/fb2extractor.json new/kfilemetadata-5.101.0/src/extractors/fb2extractor.json --- old/kfilemetadata-5.100.0/src/extractors/fb2extractor.json 1970-01-01 01:00:00.000000000 +0100 +++ new/kfilemetadata-5.101.0/src/extractors/fb2extractor.json 2022-12-03 10:46:22.000000000 +0100 @@ -0,0 +1,9 @@ +{ + "Name" : "Fb2Extractor", + "Id" : "org.kde.epubextractor", + "MimeTypes" : { + "application/x-fictionbook+xml" : { "Version" : "0.0" }, + "application/x-zip-compressed-fb2" : { "Version" : "0.0" } + } +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/src/extractors/ffmpegextractor.cpp new/kfilemetadata-5.101.0/src/extractors/ffmpegextractor.cpp --- old/kfilemetadata-5.100.0/src/extractors/ffmpegextractor.cpp 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/src/extractors/ffmpegextractor.cpp 2022-12-03 10:46:22.000000000 +0100 @@ -121,6 +121,12 @@ } AVDictionary* dict = fmt_ctx->metadata; + // In Ogg, the internal comment metadata headers are attached to a single content stream. + // By convention, it's the first logical bitstream occuring. + if (!dict && fmt_ctx->nb_streams > 0) { + dict = fmt_ctx->streams[0]->metadata; + } + AVDictionaryEntry* entry; entry = av_dict_get(dict, "title", nullptr, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.100.0/src/extractors/office2007extractor.cpp new/kfilemetadata-5.101.0/src/extractors/office2007extractor.cpp --- old/kfilemetadata-5.100.0/src/extractors/office2007extractor.cpp 2022-11-05 13:26:53.000000000 +0100 +++ new/kfilemetadata-5.101.0/src/extractors/office2007extractor.cpp 2022-12-03 10:46:22.000000000 +0100 @@ -140,7 +140,6 @@ QDomElement docElem = appDoc.documentElement(); - // According to the ontologies only Documents can have a wordCount and pageCount const QString mimeType = result->inputMimetype(); if (mimeType == QLatin1String("application/vnd.openxmlformats-officedocument.wordprocessingml.document")) { QDomElement elem = docElem.firstChildElement(QStringLiteral("Pages")); @@ -160,6 +159,15 @@ result->add(Property::WordCount, wordCount); } } + + elem = docElem.firstChildElement(QStringLiteral("Lines")); + if (!elem.isNull()) { + bool ok = false; + int lineCount = elem.text().toInt(&ok); + if (ok) { + result->add(Property::LineCount, lineCount); + } + } } QDomElement elem = docElem.firstChildElement(QStringLiteral("Application"));
