diff options
22 files changed, 229 insertions, 112 deletions
diff --git a/.qmake.conf b/.qmake.conf index 8b71acb75..37d46dd43 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,2 +1,2 @@ -VERSION=4.8.0 +VERSION=5.0.0 CONFIG=prepare_docs qt_docs_targets $$CONFIG diff --git a/coin/instructions/make_instructions.yaml b/coin/instructions/make_instructions.yaml index aa9216ce5..dc29df9c4 100644 --- a/coin/instructions/make_instructions.yaml +++ b/coin/instructions/make_instructions.yaml @@ -77,13 +77,13 @@ instructions: - type: ChangeDirectory directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" - type: ExecuteCommand - command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}}/IfwInstaller --target-name QtInstallerFramework-linux-x64-4.8.0.run" + command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}}/IfwInstaller --target-name QtInstallerFramework-linux-x64-5.0.0.run" maxTimeInSeconds: 36000 maxTimeBetweenOutput: 3600 userMessageOnFailure: "Failed to create ifw installer." - type: Rename - sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-linux-x64-4.8.0.run" - targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-linux-x64-4.8.0.run" + sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-linux-x64-5.0.0.run" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-linux-x64-5.0.0.run" userMessageOnFailure: "Failed to copy installer." enable_if: condition: and @@ -100,13 +100,13 @@ instructions: - type: ChangeDirectory directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" - type: ExecuteCommand - command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}}/IfwInstaller --target-name QtInstallerFramework-linux-aarch64-4.8.0.run" + command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}}/IfwInstaller --target-name QtInstallerFramework-linux-aarch64-5.0.0.run" maxTimeInSeconds: 36000 maxTimeBetweenOutput: 3600 userMessageOnFailure: "Failed to create ifw installer." - type: Rename - sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-linux-aarch64-4.8.0.run" - targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-linux-aarch64-4.8.0.run" + sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-linux-aarch64-5.0.0.run" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-linux-aarch64-5.0.0.run" userMessageOnFailure: "Failed to copy installer." enable_if: condition: and @@ -123,7 +123,7 @@ instructions: - type: ChangeDirectory directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" - type: ExecuteCommand - command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}}/IfwInstaller --target-name QtInstallerFramework-macOS-x64-4.8.0.app" + command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}}/IfwInstaller --target-name QtInstallerFramework-macOS-x64-5.0.0.app" maxTimeInSeconds: 36000 maxTimeBetweenOutput: 3600 userMessageOnFailure: "Failed to create ifw installer." @@ -140,18 +140,18 @@ instructions: - type: ChangeDirectory directory: "{{.AgentWorkingDir}}/qtsdk/tqtc-qtsdk/packaging_tools" - type: ExecuteCommand - command: "python3 -m pipenv run python sign_installer.py mac --file={{.SourceDir}}/IfwInstaller/QtInstallerFramework-macOS-x64-4.8.0.app" + command: "python3 -m pipenv run python sign_installer.py mac --file={{.SourceDir}}/IfwInstaller/QtInstallerFramework-macOS-x64-5.0.0.app" maxTimeInSeconds: 36000 maxTimeBetweenOutput: 3600 userMessageOnFailure: "Failed to sign the ifw installer" - type: ExecuteCommand - command: "python3 -m pipenv run python notarize.py --path={{.SourceDir}}/IfwInstaller/QtInstallerFramework-macOS-x64-4.8.0.dmg" + command: "python3 -m pipenv run python notarize.py --path={{.SourceDir}}/IfwInstaller/QtInstallerFramework-macOS-x64-5.0.0.dmg" maxTimeInSeconds: 36000 maxTimeBetweenOutput: 3600 userMessageOnFailure: "Failed to notarize the ifw installer" - type: Rename - sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-macOS-x64-4.8.0.dmg" - targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-macOS-x64-4.8.0.dmg" + sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-macOS-x64-5.0.0.dmg" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-macOS-x64-5.0.0.dmg" userMessageOnFailure: "Failed to copy installer." enable_if: condition: and @@ -165,7 +165,7 @@ instructions: - type: ChangeDirectory directory: "{{.SourceDir}}" - type: ExecuteCommand - command: "{{.Env.PYTHON3_PATH}}\\python {{.SourceDir}}\\coin\\create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir C:\\{{.SourceDir}}\\IfwInstaller --target-name QtInstallerFramework-windows-x64-4.8.0" + command: "{{.Env.PYTHON3_PATH}}\\python {{.SourceDir}}\\coin\\create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir C:\\{{.SourceDir}}\\IfwInstaller --target-name QtInstallerFramework-windows-x64-5.0.0" maxTimeInSeconds: 1200 maxTimeBetweenOutput: 1200 userMessageOnFailure: "Failed to create ifw installer." @@ -186,8 +186,8 @@ instructions: equals_value: Windows - type: Rename - sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-windows-x64-4.8.0.exe" - targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-windows-x64-4.8.0.exe" + sourcePath: "{{.SourceDir}}/IfwInstaller/QtInstallerFramework-windows-x64-5.0.0.exe" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-windows-x64-5.0.0.exe" userMessageOnFailure: "Failed to copy installer." enable_if: condition: property diff --git a/coin/instructions/qmake_module_build.yaml b/coin/instructions/qmake_module_build.yaml index 6eac528df..3a7801b20 100644 --- a/coin/instructions/qmake_module_build.yaml +++ b/coin/instructions/qmake_module_build.yaml @@ -9,7 +9,7 @@ instructions: maxTimeInSeconds: 600 maxTimeBetweenOutput: 600 project: qtsdk/tqtc-qtsdk - ref: master + ref: production directory: qtsdk/tqtc-qtsdk userMessageOnFailure: "Could not install qtsdk/tqtc-qtsdk source archive. Please investigate why." diff --git a/dist/packages/org.qtproject.ifw.binaries/meta/package.xml b/dist/packages/org.qtproject.ifw.binaries/meta/package.xml index 82eed4eb2..c11d5c9c2 100644 --- a/dist/packages/org.qtproject.ifw.binaries/meta/package.xml +++ b/dist/packages/org.qtproject.ifw.binaries/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>Qt Installer Framework Binaries</DisplayName> <Description>Installs the binaries, examples and help files.</Description> - <Version>4.8.0</Version> - <ReleaseDate>2024-02-05</ReleaseDate> + <Version>5.0.0</Version> + <ReleaseDate>2024-05-07</ReleaseDate> <Default>True</Default> </Package> diff --git a/dist/packages/org.qtproject.ifw/meta/package.xml b/dist/packages/org.qtproject.ifw/meta/package.xml index a5c9a2d7a..b6ae9298c 100644 --- a/dist/packages/org.qtproject.ifw/meta/package.xml +++ b/dist/packages/org.qtproject.ifw/meta/package.xml @@ -2,8 +2,8 @@ <Package> <DisplayName>Qt Installer Framework</DisplayName> <Description>Installs the Qt Installer Framework.</Description> - <Version>4.8.0</Version> - <ReleaseDate>2024-02-05</ReleaseDate> + <Version>5.0.0</Version> + <ReleaseDate>2024-05-07</ReleaseDate> <Licenses> <License name="The Qt Company GPL Exception 1.0" file="LICENSE.GPL3-EXCEPT" /> <License name="Third Party Code Licenses" file="3RDPARTY" /> diff --git a/installerfw.pri b/installerfw.pri index 9b969e4ee..e2ae12f11 100644 --- a/installerfw.pri +++ b/installerfw.pri @@ -3,9 +3,9 @@ } IFW_PRI_INCLUDED = 1 -IFW_VERSION_STR = 4.8.0 -IFW_VERSION = 0x040800 -IFW_VERSION_WIN32 = 4,8,0,0 +IFW_VERSION_STR = 5.0.0 +IFW_VERSION = 0x050000 +IFW_VERSION_WIN32 = 5,0,0,0 IFW_VERSION_STR_WIN32 = $$IFW_VERSION_STR\0 diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp index dd222dd92..1bed304c6 100644 --- a/src/libs/installer/metadatajob.cpp +++ b/src/libs/installer/metadatajob.cpp @@ -142,9 +142,6 @@ QList<Metadata *> MetadataJob::metadata() const QHash<RepositoryCategory, QSet<Repository>>::const_iterator it; for (it = repositoryHash.constBegin(); it != repositoryHash.constEnd(); ++it) { - if (m_core->isUpdater()) - return true; - if (!it.key().isEnabled()) continue; // Let's try the next one @@ -1024,9 +1021,8 @@ QSet<Repository> MetadataJob::getRepositories() // Fetch repositories under archive which are selected in UI. // If repository is already fetched, do not fetch it again. - // In updater mode, fetch always all archive repositories to get updates for (const RepositoryCategory &repositoryCategory : m_core->settings().repositoryCategories()) { - if (!m_core->isUpdater() && !repositoryCategory.isEnabled()) + if (!repositoryCategory.isEnabled()) continue; for (const Repository &repository : repositoryCategory.repositories()) { diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 66220bd1d..5c6f481f9 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1701,7 +1701,7 @@ bool PackageManagerCore::fetchPackagesWithFallbackRepositories(const QStringList return false; qCDebug(QInstaller::lcInstallerInstallLog).noquote() - << "Components not found for installation with the current selection." + << "Components not found with the current selection." << "Searching from additional repositories"; if (!ProductKeyCheck::instance()->securityWarning().isEmpty()) { qCWarning(QInstaller::lcInstallerInstallLog) << ProductKeyCheck::instance()->securityWarning(); @@ -2681,6 +2681,7 @@ ComponentSortFilterProxyModel *PackageManagerCore::componentSortFilterProxyModel bool PackageManagerCore::listAvailablePackages(const QString ®exp, const QHash<QString, QString> &filters) { setPackageViewer(); + d->enableAllCategories(); qCDebug(QInstaller::lcInstallerInstallLog) << "Searching packages with regular expression:" << regexp; @@ -2748,6 +2749,7 @@ bool PackageManagerCore::listAvailablePackages(const QString ®exp, const QHas bool PackageManagerCore::listAvailableAliases(const QString ®exp) { setPackageViewer(); + d->enableAllCategories(); qCDebug(QInstaller::lcInstallerInstallLog) << "Searching aliases with regular expression:" << regexp; @@ -2934,6 +2936,25 @@ void PackageManagerCore::listInstalledPackages(const QString ®exp) LoggingHandler::instance().printLocalPackageInformation(packages); } +PackageManagerCore::Status PackageManagerCore::searchAvailableUpdates() +{ + setUpdater(); + d->enableAllCategories(); + if (!fetchRemotePackagesTree()) { + qCWarning(QInstaller::lcInstallerInstallLog) << error(); + return status(); + } + + const QList<QInstaller::Component *> availableUpdates = + components(QInstaller::PackageManagerCore::ComponentType::Root); + if (availableUpdates.isEmpty()) { + qCWarning(QInstaller::lcInstallerInstallLog) << "There are currently no updates available."; + return status(); + } + QInstaller::LoggingHandler::instance().printUpdateInformation(availableUpdates); + return status(); +} + /*! Updates the selected components \a componentsToUpdate without GUI. If essential components are found, then only those will be updated. @@ -2945,14 +2966,19 @@ PackageManagerCore::Status PackageManagerCore::updateComponentsSilently(const QS ComponentModel *model = updaterComponentModel(); - bool fallbackReposFetched = false; - bool packagesFound = fetchPackagesWithFallbackRepositories(componentsToUpdate, fallbackReposFetched); + if (componentsToUpdate.isEmpty()) { + d->enableAllCategories(); + fetchRemotePackagesTree(); + } else { + bool fallbackReposFetched = false; + bool packagesFound = fetchPackagesWithFallbackRepositories(componentsToUpdate, fallbackReposFetched); - if (!packagesFound) { - qCDebug(QInstaller::lcInstallerInstallLog).noquote().nospace() - << "No components available for update with the current selection."; - d->setStatus(Canceled); - return status(); + if (!packagesFound) { + qCDebug(QInstaller::lcInstallerInstallLog).noquote().nospace() + << "No components available for update with the current selection."; + d->setStatus(Canceled); + return status(); + } } // List contains components containing update, if essential found contains only essential component diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 97f80416a..170ddf557 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -293,6 +293,7 @@ public: const QHash<QString, QString> &filters = QHash<QString, QString>()); bool listAvailableAliases(const QString ®exp = QString()); + PackageManagerCore::Status searchAvailableUpdates(); PackageManagerCore::Status updateComponentsSilently(const QStringList &componentsToUpdate); PackageManagerCore::Status installSelectedComponentsSilently(const QStringList& components); PackageManagerCore::Status installDefaultComponentsSilently(); diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 858698a7a..10ca27d00 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -3157,7 +3157,7 @@ bool PackageManagerCorePrivate::installablePackagesFound(const QStringList& comp ); if (aliasesNotFoundForInstall.count() > 0) { - qCDebug(QInstaller::lcInstallerInstallLog).noquote().nospace() << "Cannot install " << aliasesNotFoundForInstall.join(QLatin1String(", ")) << ". Component(s) not found."; + qCDebug(QInstaller::lcInstallerInstallLog).noquote().nospace() << "Cannot select " << aliasesNotFoundForInstall.join(QLatin1String(", ")) << ". Component(s) not found."; setStatus(PackageManagerCore::NoPackagesFound); return false; } diff --git a/src/libs/installer/remotefileengine.cpp b/src/libs/installer/remotefileengine.cpp index 7a5e91682..2ead83861 100644 --- a/src/libs/installer/remotefileengine.cpp +++ b/src/libs/installer/remotefileengine.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2023 The Qt Company Ltd. +** Copyright (C) 2024 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -554,7 +554,11 @@ bool RemoteFileEngine::renameOverwrite(const QString &newName) return m_fileEngine.renameOverwrite(newName); } +#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) QDateTime RemoteFileEngine::fileTime(FileTime time) const +#else +QDateTime RemoteFileEngine::fileTime(QFile::FileTime time) const +#endif { if ((const_cast<RemoteFileEngine *>(this))->connectToServer()) { return callRemoteMethod<QDateTime> diff --git a/src/libs/installer/remotefileengine.h b/src/libs/installer/remotefileengine.h index 31ae67d77..c46e861ca 100644 --- a/src/libs/installer/remotefileengine.h +++ b/src/libs/installer/remotefileengine.h @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2022 The Qt Company Ltd. +** Copyright (C) 2024 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -87,7 +87,11 @@ public: QString fileName(FileName file = DefaultName) const override; uint ownerId(FileOwner owner) const override; QString owner(FileOwner owner) const override; +#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) QDateTime fileTime(FileTime time) const override; +#else + QDateTime fileTime(QFile::FileTime time) const override; +#endif void setFileName(const QString &fileName) override; int handle() const override; bool atEnd() const; diff --git a/src/libs/installer/remoteserverconnection.cpp b/src/libs/installer/remoteserverconnection.cpp index 51619983e..55c4f48d9 100644 --- a/src/libs/installer/remoteserverconnection.cpp +++ b/src/libs/installer/remoteserverconnection.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2023 The Qt Company Ltd. +** Copyright (C) 2024 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -580,7 +580,11 @@ void RemoteServerConnection::handleQFSFileEngine(RemoteServerReply *reply, const } else if (command == QLatin1String(Protocol::QAbstractFileEngineFileTime)) { qint32 filetime; data >> filetime; +#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) reply->send(m_engine->fileTime(static_cast<QAbstractFileEngine::FileTime> (filetime))); +#else + reply->send(m_engine->fileTime(static_cast<QFile::FileTime> (filetime))); +#endif } else if (!command.isEmpty()) { qCDebug(QInstaller::lcServer) << "Unknown QAbstractFileEngine command:" << command; } diff --git a/src/sdk/commandlineinterface.cpp b/src/sdk/commandlineinterface.cpp index f575a8bbe..44f028fd5 100644 --- a/src/sdk/commandlineinterface.cpp +++ b/src/sdk/commandlineinterface.cpp @@ -98,20 +98,15 @@ int CommandLineInterface::checkUpdates() qCWarning(QInstaller::lcInstallerInstallLog) << "Cannot check updates with installer."; return EXIT_FAILURE; } - m_core->setUpdater(); - if (!m_core->fetchRemotePackagesTree()) { - qCWarning(QInstaller::lcInstallerInstallLog) << m_core->error(); - return EXIT_FAILURE; - } - - const QList<QInstaller::Component *> components = - m_core->components(QInstaller::PackageManagerCore::ComponentType::Root); - if (components.isEmpty()) { - qCWarning(QInstaller::lcInstallerInstallLog) << "There are currently no updates available."; + try { + if (m_core->searchAvailableUpdates() != QInstaller::PackageManagerCore::Success) { + return EXIT_FAILURE; + } return EXIT_SUCCESS; + } catch (const QInstaller::Error &err) { + qCCritical(QInstaller::lcInstallerInstallLog) << err.message(); + return EXIT_FAILURE; } - QInstaller::LoggingHandler::instance().printUpdateInformation(components); - return EXIT_SUCCESS; } int CommandLineInterface::listInstalledPackages() diff --git a/src/sdk/translations/ifw_ar.ts b/src/sdk/translations/ifw_ar.ts index e10f790d6..ee995f3d5 100644 --- a/src/sdk/translations/ifw_ar.ts +++ b/src/sdk/translations/ifw_ar.ts @@ -871,14 +871,6 @@ <translation>خطأ في التنزيل</translation> </message> <message> - <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> - <translation>فشل التحقق من التجزئة أثناء التنزيل. هذا خطأ مؤقت، يرجى إعادة المحاولة.</translation> - </message> - <message> - <source>Cannot verify Hash</source> - <translation>لا يمكن التحقق من التحزئة</translation> - </message> - <message> <source>Cannot download archive %1: %2</source> <translation>لا يمكن تنزيل الأرشيف %1: %2</translation> </message> @@ -973,6 +965,24 @@ Error while loading %2</source> <translation>تم تجاوز عدد مرات إعادة المحاولة (%1). </translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>فشل التحقق من التجزئة أثناء التنزيل. هذا خطأ مؤقت، يرجى إعادة المحاولة. + +المتوقع: %1 +تم التنزيل: %2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>لا يمكن التحقق من التجزئة +المتوقع: %1 +تم التنزيل: %2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> diff --git a/src/sdk/translations/ifw_de.ts b/src/sdk/translations/ifw_de.ts index f1929572d..ad80c6624 100644 --- a/src/sdk/translations/ifw_de.ts +++ b/src/sdk/translations/ifw_de.ts @@ -926,10 +926,6 @@ <translation>Bitte wählen Sie die Komponenten aus, die Sie entfernen möchten.</translation> </message> <message> - <source>Select the components to install. Deselect installed components to uninstall them. Any components already installed will not be updated.</source> - <translation>Bitte wählen Sie die Komponenten aus, die Sie installieren möchten. Wählen Sie die Komponenten ab, die Sie entfernen möchten.</translation> - </message> - <message> <source>Mandatory components need to be updated first before you can select other components to update.</source> <translation>Obligatorische Komponenten müssen zuerst aktualisiert werden, bevor andere Komponenten zur Aktualisierung ausgewählt werden können.</translation> </message> @@ -953,6 +949,10 @@ <source>Create offline installer from selected components, instead of installing now.</source> <translation>Erstellt einen Offline-Installer von den ausgewählten Komponenten anstatt zu installieren</translation> </message> + <message> + <source>Select the components to install. Deselect installed components to uninstall them.<br>Any components already installed will not be updated.</source> + <translation>Bitte wählen Sie die Komponenten aus, die Sie installieren möchten. Wählen Sie die Komponenten ab, die Sie entfernen möchten.</translation> + </message> </context> <context> <name>QInstaller::ComponentSelectionPagePrivate</name> @@ -1165,14 +1165,6 @@ <translation>Fehler beim Herunterladen</translation> </message> <message> - <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> - <translation>Prüfsumme ungültig beim Herunterladen. Dies ist ein kurzzeitiger Fehler, bitte erneut versuchen.</translation> - </message> - <message> - <source>Cannot verify Hash</source> - <translation>Prüfsumme konnte nicht geprüft werden</translation> - </message> - <message> <source>Cannot download archive %1: %2</source> <translation>Konnte Archiv %1 nicht herunterladen: %2</translation> </message> @@ -1250,6 +1242,24 @@ Fehler beim Laden von %2</translation> <source>Retry count (%1) exceeded</source> <translation>Anzahl der Wiederholungen (%1) überschritten</translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>Prüfsumme ungültig beim Herunterladen. Dies ist ein kurzzeitiger Fehler, bitte erneut versuchen. + +Erwartet: %1 +Heruntergeladen: %2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>Prüfsumme konnte nicht geprüft werden +Erwartet: %1 +Heruntergeladen: %2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> diff --git a/src/sdk/translations/ifw_es.ts b/src/sdk/translations/ifw_es.ts index a0dad98f9..69369064f 100644 --- a/src/sdk/translations/ifw_es.ts +++ b/src/sdk/translations/ifw_es.ts @@ -1150,14 +1150,6 @@ <translation>Error de descarga</translation> </message> <message> - <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> - <translation>Error de verificación del hash durante la descarga. Es un error temporal, vuelva a intentarlo.</translation> - </message> - <message> - <source>Cannot verify Hash</source> - <translation>No se puede verificar el hash</translation> - </message> - <message> <source>Cannot download archive %1: %2</source> <translation>No se puede descargar el archivo %1: %2</translation> </message> @@ -1235,6 +1227,24 @@ Error al descargar %2</translation> <source>Retry count (%1) exceeded</source> <translation>Se superó el recuento de reintentos (%1)</translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>Error de verificación del hash durante la descarga. Es un error temporal, vuelva a intentarlo. + +Esperados: %1 +Descargado: %2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>No se puede verificar el hash +Esperados: %1 +Descargado: %2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> diff --git a/src/sdk/translations/ifw_fr.ts b/src/sdk/translations/ifw_fr.ts index 92d479e04..2f2bd5bf5 100644 --- a/src/sdk/translations/ifw_fr.ts +++ b/src/sdk/translations/ifw_fr.ts @@ -1150,14 +1150,6 @@ <translation>Erreur de téléchargement</translation> </message> <message> - <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> - <translation>La vérification du hachage lors du téléchargement a échoué. Cette erreur est temporaire, réessayez.</translation> - </message> - <message> - <source>Cannot verify Hash</source> - <translation>Impossible de vérifier le hachage</translation> - </message> - <message> <source>Cannot download archive %1: %2</source> <translation>Impossible de télécharger l’archive %1 : %2</translation> </message> @@ -1235,6 +1227,24 @@ Erreur lors du chargement de %2</translation> <source>Retry count (%1) exceeded</source> <translation>Nombre de tentatives (%1) dépassé</translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>La vérification du hachage lors du téléchargement a échoué. Cette erreur est temporaire, réessayez. + +Attendu: %1 +Téléchargé: %2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>Impossible de vérifier le hachage +Attendu: %1 +Téléchargé: %2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> diff --git a/src/sdk/translations/ifw_ko.ts b/src/sdk/translations/ifw_ko.ts index 2fc5cce29..39bd1ff85 100644 --- a/src/sdk/translations/ifw_ko.ts +++ b/src/sdk/translations/ifw_ko.ts @@ -875,14 +875,6 @@ <translation>다운로드 오류</translation> </message> <message> - <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> - <translation>다운로드 중에 해시를 검증하지 못했습니다. 일시적인 오류이니 다시 시도하십시오.</translation> - </message> - <message> - <source>Cannot verify Hash</source> - <translation>해시를 검증할 수 없음</translation> - </message> - <message> <source>Cannot download archive %1: %2</source> <translation>%1 아카이브를 다운로드할 수 없음: %2</translation> </message> @@ -956,6 +948,24 @@ Error while loading %2</source> <source>Retry count (%1) exceeded</source> <translation>재시도 회수(%1) 초과</translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>다운로드 중에 해시를 검증하지 못했습니다. 일시적인 오류이니 다시 시도하십시오. + +예상 해시값: %1 +다운로드 해시값: %2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>해시를 검증할 수 없음 +예상 해시값: %1 +다운로드 해시값: %2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> diff --git a/src/sdk/translations/ifw_pt.ts b/src/sdk/translations/ifw_pt_PT.ts index 13b491af8..3d4cf7c50 100644 --- a/src/sdk/translations/ifw_pt.ts +++ b/src/sdk/translations/ifw_pt_PT.ts @@ -846,6 +846,24 @@ Erro ao carregar %2</translation> <source>Retry count (%1) exceeded</source> <translation>Excedeu o número máximo de tentativas (%1).</translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>Falhou a verificação do código hash durante o download. Este é um erro temporário. Por favor, tente novamente. + +Previsto: %1 +Descarregado: %2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>Não é possível verificar o código hash +Previsto: %1 +Descarregado: %2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> diff --git a/src/sdk/translations/ifw_ru.ts b/src/sdk/translations/ifw_ru.ts index 33d4c4c37..830c2bc82 100644 --- a/src/sdk/translations/ifw_ru.ts +++ b/src/sdk/translations/ifw_ru.ts @@ -1170,14 +1170,6 @@ <translation>Ошибка загрузки</translation> </message> <message> - <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> - <translation>Не удалось проверить целостность хеша в процессе загрузки. Пожалуйста, повторите операцию.</translation> - </message> - <message> - <source>Cannot verify Hash</source> - <translation>Невозможно проверить хеш</translation> - </message> - <message> <source>Cannot fetch archives: %1 Error while loading %2</source> <translation>Невозможно получить архивы :%1 @@ -1259,6 +1251,24 @@ Error while loading %2</source> <source>Retry count (%1) exceeded</source> <translation>Превышено количество (%1) повторов</translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>Не удалось проверить целостность хеша в процессе загрузки. Пожалуйста, повторите операцию. + +ожидалось: %1 +загружено: %2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>Невозможно проверить хеш +ожидалось: %1 +загружено: %2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> diff --git a/src/sdk/translations/ifw_zh_CN.ts b/src/sdk/translations/ifw_zh_CN.ts index a86711492..7246914a1 100644 --- a/src/sdk/translations/ifw_zh_CN.ts +++ b/src/sdk/translations/ifw_zh_CN.ts @@ -1145,14 +1145,6 @@ <translation>下载错误</translation> </message> <message> - <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> - <translation>下载时的哈希验证失败。 此错误为临时错误,请重试。</translation> - </message> - <message> - <source>Cannot verify Hash</source> - <translation>无法验证哈希</translation> - </message> - <message> <source>Cannot download archive %1: %2</source> <translation>无法下载存档 %1:%2</translation> </message> @@ -1226,6 +1218,23 @@ Error while loading %2</source> <source>Retry count (%1) exceeded</source> <translation>超过重试次数(%1)</translation> </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry. + +Expected: %1 +Downloaded: %2</source> + <translation>下载时的哈希验证失败。 此错误为临时错误,请重试。 +预期的:%1 +已下载:%2</translation> + </message> + <message> + <source>Cannot verify Hash +Expected: %1 +Downloaded: %2</source> + <translation>无法验证哈希 +预期的:%1 +已下载:%2</translation> + </message> </context> <context> <name>QInstaller::Downloader</name> |