summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2022-11-03 14:06:36 +0200
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2022-11-03 14:06:36 +0200
commitf0a4a3ef6a1b4bfd596f079e1dd1d219bcc9d8a6 (patch)
tree831a830dd856a6035a77a6b77c2a4bd7effc534c
parentc4c211c73c987dc267899a2084da98b87ff45340 (diff)
parent83b669586bd24fab082720876ff8aea75264ec36 (diff)
Merge remote-tracking branch 'origin/4.5'
-rw-r--r--Changelog22
-rw-r--r--src/libs/installer/commandlineparser.cpp4
-rw-r--r--src/libs/installer/component.cpp10
-rw-r--r--src/libs/installer/directoryguard.cpp4
-rw-r--r--src/libs/installer/extractarchiveoperation.cpp15
-rw-r--r--src/libs/installer/fileutils.cpp46
-rw-r--r--src/libs/installer/fileutils.h1
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp3
-rw-r--r--src/libs/installer/uninstallercalculator.cpp3
-rw-r--r--src/sdk/installerbase.cpp20
-rw-r--r--src/sdk/translations/ifw_ar.ts149
-rw-r--r--src/sdk/translations/ifw_ca.ts145
-rw-r--r--src/sdk/translations/ifw_da.ts145
-rw-r--r--src/sdk/translations/ifw_de.ts145
-rw-r--r--src/sdk/translations/ifw_es.ts145
-rw-r--r--src/sdk/translations/ifw_fr.ts145
-rw-r--r--src/sdk/translations/ifw_hr.ts154
-rw-r--r--src/sdk/translations/ifw_hu.ts144
-rw-r--r--src/sdk/translations/ifw_it.ts145
-rw-r--r--src/sdk/translations/ifw_ja.ts144
-rw-r--r--src/sdk/translations/ifw_ko.ts144
-rw-r--r--src/sdk/translations/ifw_pl.ts146
-rw-r--r--src/sdk/translations/ifw_pt.ts146
-rw-r--r--src/sdk/translations/ifw_pt_BR.ts145
-rw-r--r--src/sdk/translations/ifw_ru.ts146
-rw-r--r--src/sdk/translations/ifw_zh_CN.ts144
-rw-r--r--tests/auto/installer/extractarchiveoperationtest/data.qrc1
-rw-r--r--tests/auto/installer/extractarchiveoperationtest/data/subdirs.7zbin0 -> 18715 bytes
-rw-r--r--tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp52
29 files changed, 2346 insertions, 167 deletions
diff --git a/Changelog b/Changelog
index adaa00a8a..554f84c5e 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,25 @@
+4.5.0
+- Update translations (QTIFW-2814)
+- macOS: support updating maintenance tool with an app bundle (QTIFW-2750)
+- Fix possible uncaught exceptions while loading package data
+- libarchive: support linking with zlib compiled into QtCore (QTIFW-2803)
+- Add new '--cache-path' and 'clear-cache' options for CLI (QTIFW-2810)
+- Add persistent metadata file cache (QTIFW-2621)
+- Metadata evaluation optimizations (QTIFW-2790)
+- Windows: fix placeholder version in "Apps & features" (QTIFW-2267)
+- Fix installer stalling when there's only one CPU core (QTIFW-2786)
+- Adjust the 'ready to install' message to avoid repeating the app name (SQUISH-9672)
+- CLI: add support for hiding values of printed options (QTIFW-2756)
+
+4.4.2
+- Fix uninstallation of needed virtual components
+- Attach to squish only when the port is separately given (QTIFW-2746)
+- Windows: fix installation error with concurrent Extract operations (QTIFW-2752)
+- Uninstaller remove target directory if it is empty (QTIFW-884)
+- Uninstaller remove maintenancetool's data files (QTIFW-884)
+- Do not convert newline characters in license files (QTIFW-903)
+- Set encoding to UTF-8 when writing license file (QTIFW-1436)
+
4.4.1
- Fix bug when all requested packages are not installed (QTIFW-2708)
diff --git a/src/libs/installer/commandlineparser.cpp b/src/libs/installer/commandlineparser.cpp
index 3b5b46e0e..937c966ba 100644
--- a/src/libs/installer/commandlineparser.cpp
+++ b/src/libs/installer/commandlineparser.cpp
@@ -226,8 +226,8 @@ CommandLineParser::CommandLineParser()
QLatin1String("socketname, key")));
addOption(QCommandLineOption(QStringList()
<< CommandLineOptions::scSquishPortShort << CommandLineOptions::scSquishPortLong,
- QLatin1String("Give a port where Squish can connect to. If no port is given, default port 11233 is "
- "used. Note: To enable Squish support you first need to build IFW with SQUISH_PATH "
+ QLatin1String("Give a port where Squish can connect to. If no port is given, attach to squish "
+ "not done. Note: To enable Squish support you first need to build IFW with SQUISH_PATH "
"parameter where SQUISH_PATH is pointing to your Squish installation folder: "
"<path_to_qt>/bin/qmake -r SQUISH_PATH=<pat_to_squish>"),
QLatin1String("port number")));
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp
index 5d21cd1da..e6c8eac34 100644
--- a/src/libs/installer/component.cpp
+++ b/src/libs/installer/component.cpp
@@ -1081,10 +1081,12 @@ OperationList Component::operations(const Operation::OperationGroups &mask) cons
d->m_operations.append(d->m_licenseOperation);
}
}
- OperationList operations = d->m_operations;
- QtConcurrent::blockingFilter(operations, [&](const Operation *op) {
- return mask.testFlag(op->group());
- });
+ OperationList operations;
+ std::copy_if(d->m_operations.begin(), d->m_operations.end(), std::back_inserter(operations),
+ [&](const Operation *op) {
+ return mask.testFlag(op->group());
+ }
+ );
return operations;
}
diff --git a/src/libs/installer/directoryguard.cpp b/src/libs/installer/directoryguard.cpp
index 9c97130a4..014d213d7 100644
--- a/src/libs/installer/directoryguard.cpp
+++ b/src/libs/installer/directoryguard.cpp
@@ -28,6 +28,7 @@
#include "directoryguard.h"
+#include "fileutils.h"
#include "globals.h"
#include "errors.h"
@@ -92,8 +93,7 @@ QStringList DirectoryGuard::tryCreate()
toCreate = QDir(p);
}
- QDir dir(m_path);
- m_created = dir.mkpath(m_path);
+ m_created = QInstaller::createDirectoryWithParents(m_path);
if (!m_created) {
throw Error(QCoreApplication::translate("DirectoryGuard",
"Cannot create directory \"%1\".").arg(QDir::toNativeSeparators(m_path)));
diff --git a/src/libs/installer/extractarchiveoperation.cpp b/src/libs/installer/extractarchiveoperation.cpp
index 6b9ecb687..986b9d8c8 100644
--- a/src/libs/installer/extractarchiveoperation.cpp
+++ b/src/libs/installer/extractarchiveoperation.cpp
@@ -193,20 +193,7 @@ bool ExtractArchiveOperation::performOperation()
QFileInfo targetDirectoryInfo(fileDirectory);
- // We need to create the directory structure step-by-step to avoid a rare race condition
- // on Windows. QDir::mkpath() doesn't check if the leading directories were created elsewhere
- // (like from within another thread) after the initial check that the given path requires
- // creating also parent directories.
- //
- // On Unix patforms this case is handled by QFileSystemEngine though.
- QDir resourcesDir(resourcesPath);
- if (!resourcesDir.exists())
- resourcesDir.mkdir(resourcesPath);
-
- QDir resourceFileDir(targetDirectoryInfo.absolutePath());
- if (!resourceFileDir.exists())
- resourceFileDir.mkdir(targetDirectoryInfo.absolutePath());
-
+ QInstaller::createDirectoryWithParents(targetDirectoryInfo.absolutePath());
setDefaultFilePermissions(resourcesPath, DefaultFilePermissions::Executable);
setDefaultFilePermissions(targetDirectoryInfo.absolutePath(), DefaultFilePermissions::Executable);
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp
index dac1c62f6..ebef3495d 100644
--- a/src/libs/installer/fileutils.cpp
+++ b/src/libs/installer/fileutils.cpp
@@ -457,6 +457,52 @@ void QInstaller::mkpath(const QString &path)
/*!
\internal
+ Creates directory \a path including all parent directories. Return \c true on
+ success, \c false otherwise.
+
+ On Windows \c QDir::mkpath() doesn't check if the leading directories were created
+ elsewhere (i.e. in another thread) after the initial check that the given path
+ requires creating also parent directories, and returns \c false.
+
+ On Unix platforms this case is handled different by QFileSystemEngine though,
+ which checks for \c EEXIST error code in case any of the recursive directories
+ could not be created.
+
+ Compared to \c QInstaller::mkpath() and \c QDir::mkpath() this function checks if
+ each parent directory to-be-created were created elsewhere.
+*/
+bool QInstaller::createDirectoryWithParents(const QString &path)
+{
+ if (path.isEmpty())
+ return false;
+
+ QFileInfo dirInfo(path);
+ if (dirInfo.exists() && dirInfo.isDir())
+ return true;
+
+ // bail out if we are at the root directory
+ if (dirInfo.isRoot())
+ return false;
+
+ QDir dir(path);
+ if (dir.mkdir(path))
+ return true;
+
+ // mkdir failed, try to create the parent directory
+ if (!createDirectoryWithParents(dirInfo.absolutePath()))
+ return false;
+
+ // now try again
+ if (dir.mkdir(path))
+ return true;
+
+ // directory may be have also been created elsewhere
+ return (dirInfo.exists() && dirInfo.isDir());
+}
+
+/*!
+ \internal
+
Generates and returns a temporary file name. The name can start with
a template \a templ.
*/
diff --git a/src/libs/installer/fileutils.h b/src/libs/installer/fileutils.h
index 304569ec5..3c995937c 100644
--- a/src/libs/installer/fileutils.h
+++ b/src/libs/installer/fileutils.h
@@ -89,6 +89,7 @@ private:
void INSTALLER_EXPORT mkdir(const QString &path);
void INSTALLER_EXPORT mkpath(const QString &path);
+ bool INSTALLER_EXPORT createDirectoryWithParents(const QString &path);
#ifdef Q_OS_MACOS
void INSTALLER_EXPORT mkalias(const QString &path, const QString &alias);
#endif
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 64af77a98..6eb589086 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -1431,6 +1431,7 @@ void PackageManagerCorePrivate::writeMaintenanceTool(OperationList performedOper
<< error.message();
}
} else {
+ writeMaintenanceToolAppBundle(performedOperations);
QFile replacementBinary(installerBaseBinary);
try {
QInstaller::openForRead(&replacementBinary);
@@ -2354,7 +2355,7 @@ void PackageManagerCorePrivate::unpackComponents(const QList<Component *> &compo
runner.setType(Operation::Perform);
const QHash<Operation *, bool> results = runner.run();
- const OperationList performedOperations = backupResults.keys();
+ const OperationList performedOperations = results.keys();
QString error;
for (auto &operation : performedOperations) {
diff --git a/src/libs/installer/uninstallercalculator.cpp b/src/libs/installer/uninstallercalculator.cpp
index 3de9f5b60..d54b5c2ab 100644
--- a/src/libs/installer/uninstallercalculator.cpp
+++ b/src/libs/installer/uninstallercalculator.cpp
@@ -205,7 +205,8 @@ void UninstallerCalculator::appendVirtualComponentsToUninstall(const bool revers
// Check if installed or about to be updated -packages are dependant on the package
const QList<Component*> installDependants = m_core->installDependants(virtualComponent);
for (Component *dependant : installDependants) {
- if (dependant->isInstalled() && !m_componentsToUninstall.contains(dependant)) {
+ if ((dependant->isInstalled() && !m_componentsToUninstall.contains(dependant))
+ || m_core->orderedComponentsToInstall().contains(dependant)) {
required = true;
break;
}
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp
index 32df0b550..dcbf15228 100644
--- a/src/sdk/installerbase.cpp
+++ b/src/sdk/installerbase.cpp
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
@@ -98,17 +98,15 @@ int InstallerBase::run()
return status;
#ifdef ENABLE_SQUISH
- int squishPort = 11233;
if (m_parser.isSet(CommandLineOptions::scSquishPortLong)) {
- squishPort = m_parser.value(CommandLineOptions::scSquishPortLong).toInt();
- }
- if (squishPort != 0) {
- if (Squish::allowAttaching(squishPort))
- qCDebug(QInstaller::lcDeveloperBuild) << "Attaching to squish port " << squishPort << " succeeded";
- else
- qCDebug(QInstaller::lcDeveloperBuild) << "Attaching to squish failed.";
- } else {
- qCWarning(QInstaller::lcDeveloperBuild) << "Invalid squish port number: " << squishPort;
+ const int maxSquishPortNumber = 65535;
+ int squishPort = m_parser.value(CommandLineOptions::scSquishPortLong).toInt();
+ if (squishPort <= 0 || squishPort > maxSquishPortNumber) {
+ qWarning().noquote() << "Invalid Squish port:" << squishPort;
+ } else {
+ Squish::allowAttaching(squishPort);
+ qCDebug(QInstaller::lcDeveloperBuild) << "Attaching to squish port" << squishPort << "succeeded";
+ }
}
#endif
const int result = QCoreApplication::instance()->exec();
diff --git a/src/sdk/translations/ifw_ar.ts b/src/sdk/translations/ifw_ar.ts
index 94b5e319d..94cde4954 100644
--- a/src/sdk/translations/ifw_ar.ts
+++ b/src/sdk/translations/ifw_ar.ts
@@ -212,6 +212,26 @@
<source>User defined repositories</source>
<translation>المستودعات المعرفة من قبل المستخدم</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>ذاكرة التخزين المؤقت المحلية</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>يتم تخزين معلومات التعريف من المستودعات البعيدة مؤقتًا على القرص لتحسين أوقات التحميل. يمكنك تحديد دليل آخر لتخزين ذاكرة التخزين المؤقت أو مسح محتويات ذاكرة التخزين المؤقت الحالية.</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>مسار ذاكرة التخزين المؤقت:</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>حذف محتويات دليل ذاكرة التخزين المؤقت</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>مسح ذاكرة التخزين المؤقت</translation>
+ </message>
</context>
<context>
<name>QObject</name>
@@ -275,6 +295,10 @@
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>قيمة غير صالحة لـ &apos;max-concurrent-operations&apos;</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>قيمة فارغة للخيار &apos;cache-path&apos;.</translation>
+ </message>
</context>
<context>
<name>QInstaller</name>
@@ -1329,10 +1353,6 @@ Error while loading %2</source>
<translation>محرك نواة مدير الحزم مفقود.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>جارٍ تحضير تنزيل ملفات التعريف...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>جارٍ فك ضغط المستودعات المضغوطة. قد يستغرق هذا بعص الوقت...</translation>
</message>
@@ -1388,6 +1408,25 @@ Error while loading %2</source>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>أرشيف غير مدعوم &quot;%1&quot;: لم يتم تسجيل أي معالج للاحقة الملف &quot;%2&quot;.</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>جاري إحضار معلومات التحديث الأخيرة...</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>جاري تحديث ذاكرة التخزين المؤقت المحلية بـ%n من العناصر الجديدة...</numerusform>
+ <numerusform>جاري تحديث ذاكرة التخزين المؤقت المحلية بـ%n من العناصر الجديدة...</numerusform>
+ <numerusform>جاري تحديث ذاكرة التخزين المؤقت المحلية بـ%n من العناصر الجديدة...</numerusform>
+ <numerusform>جاري تحديث ذاكرة التخزين المؤقت المحلية بـ%n من العناصر الجديدة...</numerusform>
+ <numerusform>جاري تحديث ذاكرة التخزين المؤقت المحلية بـ%n من العناصر الجديدة...</numerusform>
+ <numerusform>جاري تحديث ذاكرة التخزين المؤقت المحلية بـ%n من العناصر الجديدة...</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>قد يؤدي مسح دليل ذاكرة التخزين المؤقت وإعادة تشغيل التطبيق إلى حل هذه المشكلة.</translation>
+ </message>
</context>
<context>
<name>QInstaller::FileTaskObserver</name>
@@ -1621,10 +1660,6 @@ Do you want to continue?</source>
<translation>لا توجد مساحة كافية لتخزين جميع المكونات المحددة! بينما المساحة المطلوبة هي %2 على الأقل، المساحة المتاحة هي %1.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>لا توجد مساحة كافية لتخزين الملفات المؤقتة!. بينما المساحة المطلوبة هي %2 على الأقل، المساحة المتاحة هي %1.</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>يبدو أن وحدة التخزين التي حددتها للتثبيت بها مساحة كافية للتثبيت، ولكن سيكون هناك أقل من 1% من مساحة وحدة التخزين المتاحة بعد ذلك.</translation>
</message>
@@ -1656,6 +1691,10 @@ Do you want to continue?</source>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>لا يمكن تثبيت المكون%1. حدثت مشكلة أثناء تحميل هذا المكون، لذلك تم وضع علامة &quot;غير مستقر&quot; عليه ولا يمكن اختياره.</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>لا توجد مساحة كافية على القرص لتخزين الملفات المؤقتة! يتوفر%1 ، بينما الحد الأدنى المطلوب هو%2. يمكنك تحديد موقع آخر للملفات المؤقتة عن طريق تعديل مسار ذاكرة التخزين المؤقت المحلية من إعدادات المثبت.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -1921,6 +1960,10 @@ Do you want to continue?</source>
<source>All components installed.</source>
<translation>تم تثبيت جميع المكونات.</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>جاري تحميل البرامج النصية للمكونات...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2940,4 +2983,94 @@ or accept the elevation of access rights if being asked.</source>
<translation>حول أداة الصيانة %1</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>لا يمكن تهيئة ذاكرة التخزين المؤقت بمسار فارغ.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>لا يمكن إنشاء دليل &quot;%1&quot; لذاكرة التخزين المؤقت.</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>لا يمكن تهيئة ذاكرة التخزين المؤقت: %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>لا يمكن مسح ذاكرة التخزين المؤقت غير الصالحة.</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>لا يمكن إزالة ملف البيان: %1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>خطأ أثناء مسح ذاكرة التخزين المؤقت: %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>لا يمكن استرداد العناصر من ذاكرة التخزين المؤقت غير الصالحة.</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>لا يمكن استرداد العنصر من ذاكرة التخزين المؤقت غير الصالحة.</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>لا يمكن تسجيل العنصر في ذاكرة التخزين المؤقت غير الصالحة.</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>لا يمكن تسجيل عنصر فارغ.</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>لا يمكن تسجيل عنصر غير صالح مع المجموع الاختباري %1</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>لا يمكن تسجيل العنصر بالمجموع الاختباري %1. عنصر بنفس المجموع الاختباري موجود بالفعل في ذاكرة التخزين المؤقت.</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>خطأ أثناء نسخ العنصر إلى المسار &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>لا يمكن إزالة العنصر من ذاكرة التخزين المؤقت غير الصالحة.</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>لا يمكن إزالة العنصر المحدد بواسطة المجموع الاختباري %1: لا يوجد مثل هذا العنصر.</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>خطأ أثناء إزالة الدليل &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>خطأ أثناء إبطال ذاكرة التخزين المؤقت: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>لا يمكن فتح ملف البيان: %1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>لا يمكن كتابة محتويات لملف البيان: %1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>لا يمكن مزامنة ذاكرة التخزين المؤقت غير الصالحة.</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>تم مسح ذاكرة التخزين المؤقت بنجاح!</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_ca.ts b/src/sdk/translations/ifw_ca.ts
index 15f7adeff..20853e60f 100644
--- a/src/sdk/translations/ifw_ca.ts
+++ b/src/sdk/translations/ifw_ca.ts
@@ -1564,10 +1564,6 @@ Error en descarregar %2</translation>
<translation>Manca el motor del nucli del gestor de paquets.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>S&apos;està preparant la descàrrega de la informació de les metadades...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>S&apos;estan desempaquetant els repositoris comprimits. Aquesta operació pot trigar una estona...</translation>
</message>
@@ -1623,6 +1619,21 @@ Error en descarregar %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1809,10 +1820,6 @@ Voleu continuar?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Invalid</source>
<translation type="unfinished"></translation>
</message>
@@ -1824,6 +1831,10 @@ Voleu continuar?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2090,6 +2101,10 @@ Voleu continuar?</translation>
<source>All components installed.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2550,6 +2565,10 @@ Copieu l&apos;instal·lador en una unitat local</translation>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2732,6 +2751,26 @@ or accept the elevation of access rights if being asked.</source>
<source>The server&apos;s URL that contains a valid repository.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2880,4 +2919,94 @@ or accept the elevation of access rights if being asked.</source>
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_da.ts b/src/sdk/translations/ifw_da.ts
index 2ee9fb723..6b2f6ce1a 100644
--- a/src/sdk/translations/ifw_da.ts
+++ b/src/sdk/translations/ifw_da.ts
@@ -1526,10 +1526,6 @@ Fejl under indlæsning af %2</translation>
<translation>Manglende pakkehåndterings-kernemotor.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Forbedreder download af metainformation...</translation>
- </message>
- <message>
<source>Unknown exception during extracting.</source>
<translation>Ukendt undtagelse under udpakning.</translation>
</message>
@@ -1585,6 +1581,21 @@ Fejl under indlæsning af %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1771,10 +1782,6 @@ Vil du fortsætte?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Invalid</source>
<translation type="unfinished"></translation>
</message>
@@ -1786,6 +1793,10 @@ Vil du fortsætte?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2052,6 +2063,10 @@ Vil du fortsætte?</translation>
<source>All components installed.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2512,6 +2527,10 @@ Kopiér venligst installeren til et lokalt drev</translation>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2693,6 +2712,26 @@ or accept the elevation of access rights if being asked.</source>
<source>The server&apos;s URL that contains a valid repository.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2879,4 +2918,94 @@ or accept the elevation of access rights if being asked.</source>
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_de.ts b/src/sdk/translations/ifw_de.ts
index b7c70a6fc..2ef0f358e 100644
--- a/src/sdk/translations/ifw_de.ts
+++ b/src/sdk/translations/ifw_de.ts
@@ -1565,10 +1565,6 @@ Fehler beim Laden von %2</translation>
<translation>Fehlende Paketmanager-Kernkomponente.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Herunterladen der Metainformationen wird vorbereitet ...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Entpacken des komprimierten Repository, Das könnte eine Weile dauern...</translation>
</message>
@@ -1624,6 +1620,21 @@ Fehler beim Laden von %2</translation>
<source>Cannot open file &quot;%1&quot; for reading: %2</source>
<translation>Kann die Datei &quot;%1&quot; nicht zum Lesen öffnen: %2</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>Hole neue Update-Information...</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>%n Element im lokalen Cache erneuert...</numerusform>
+ <numerusform>%n Elemente im lokalen Cache erneuert...</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>Das Löschen des Cache-Verzeichnisses and Neustarten der Anwendung kann das beheben.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1790,10 +1801,6 @@ Möchten Sie trotzdem fortsetzen?</translation>
<translation>Nicht genügend Festplattenplatz für alle ausgewählten Komponenten! Verfügbarer Platz: %1, mindestens benötigt: %2.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>Nicht genügend Festplattenplatz für temporäre Dateien! Verfügbarer Platz: %1, mindestens benötigt: %2.</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>Das für die Installation ausgewählte Laufwerk scheint über genügend Speicherplatz für die Installation zu verfügen, aber anschließend ist weniger als 1% des Speicherplatzes verfügbar.</translation>
</message>
@@ -1825,6 +1832,10 @@ Möchten Sie trotzdem fortsetzen?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>Komponente %1 kann nicht installiert werden. Es gab ein Problem beim Laden, daher wird sie als instabil gekennzeichnet und kann nicht ausgewählt werden.</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>Es gibt nicht ausreichend Plattenplatz, um die temporären Dateien zu speichern! %1 sind verfügbar, aber das erforderliche Minimum ist %2. Sie können einen anderen Speicherort für die temporären Dateien auswählen, indem Sie den lokalen Cache-Pfad in den Installationseinstellungen ändern.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2092,6 +2103,10 @@ Möchten Sie trotzdem fortsetzen?</translation>
<source>All components installed.</source>
<translation>Alle Komponenten installiert.</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>Lade Komponenten-Skripte...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2560,6 +2575,10 @@ Bitte kopieren Sie den Installer auf ein lokales Laufwerk</translation>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>Ungültiger Wert für &apos;max-concurrent-operations&apos;.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>Leerer Wert für Option &apos;Cache-Pfad&apos;.</translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2741,6 +2760,26 @@ or accept the elevation of access rights if being asked.</source>
<source>Deselect All</source>
<translation>Alle abwählen</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>Lokaler Cache</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>Die Meta-Information der entfernten Repositories wird auf der Festplatte zwischengespeichert, um die Ladezeiten zu verbessern. Sie können ein anderes Verzeichnis für diesen Cache festlegen oder den Inhalt des aktuellen Caches löschen.</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>Pfad für Cache:</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>Löscht den Inhalt des Cache-Verzeichnisses</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>Cache löschen</translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2882,4 +2921,94 @@ or accept the elevation of access rights if being asked.</source>
<translation>Über %1 Verwaltungswerkzeug</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>Der Cache kann nicht mit einem leeren Pfad initialisiert werden.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>Das Verzeichnis %1 für den Cache konnte nicht angelegt werden.</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>Cache kann nicht initialisiert werden: %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>Ungültiger Cache kann nicht gelöscht werden.</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>Manifest-Datei kann nicht gelöscht werden: %1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>Fehler beim Löschen des Caches: %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>Es können keine Elemente vom ungültigem Cache geholt werden.</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>Es kann kein Element vom ungültigem Cache geholt werden.</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>Es kann kein Element im ungültigem Cache registriert werden.</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>Leeres Element kann nicht registriert werden.</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>Ungültiges Element mit Prüfsumme %1 kann nicht registriert werden.</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>Das Element mit der Prüfsumme %1 kann nicht registriert werden. Es existiert bereits ein Element mit der gleichen Prüfsumme im Cache.</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>Fehler beim Kopieren eines Elements in das Verzeichnis &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>Es kann kein Element aus dem ungültigem Cache entfernt werden.</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>Das Element mit der Prüfsumme %1 kann nicht gelöscht werden: Das Element existiert nicht.</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>Fehler beim Löschen des Verzeichnisses &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>Fehler beim Markieren des Caches als ungültig: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>Manifest-Datei kann nicht geöffnet werden: %1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>Der Inhalt der Manifest-Datei konnte nicht geschrieben werden: %1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>Ungültiger Cache kann nicht synchronisiert werden.</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>Cache wurde erfolgreich gelöscht!</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_es.ts b/src/sdk/translations/ifw_es.ts
index 75aeeebd3..f85347718 100644
--- a/src/sdk/translations/ifw_es.ts
+++ b/src/sdk/translations/ifw_es.ts
@@ -1526,10 +1526,6 @@ Error al descargar %2</translation>
<translation>Falta el motor de componente básico del administrador de paquetes.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Preparando la descarga de la información de metadatos...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Desempaquetando los repositorios comprimidos. Esta operación puede tardar...</translation>
</message>
@@ -1585,6 +1581,21 @@ Error al descargar %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>Archivo &quot;%1&quot; no soportado: ningún controlador registrado para el sufijo de archivo &quot;%2&quot;.</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>Obteniendo la información de la última actualización...</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>Actualizando caché local con %n elemento nuevo...</numerusform>
+ <numerusform>Actualizando caché local con %n elementos nuevos...</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>Borrando el directorio de caché y reiniciando la aplicación puede resolver esto.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1747,10 +1758,6 @@ No es recomendable instalar en este directorio, ya que la instalación podría g
<translation>No hay suficiente espacio en disco para almacenar todos los componentes seleccionados. Se dispone de %1 y se requiere al menos un espacio de %2.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>No hay suficiente espacio en disco para almacenar los archivos temporales. Se dispone de %1 y se requiere al menos un espacio de %2.</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>El volumen seleccionado para la instalación parece tener espacio suficiente para la instalación, pero después habrá menos del 1% del espacio del volumen disponible.</translation>
</message>
@@ -1786,6 +1793,10 @@ No es recomendable instalar en este directorio, ya que la instalación podría g
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>No se puede instalar el componente %1. Hubo un problema al cargar este componente, por lo que está marcado como inestable y no se puede seleccionar.</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>¡No hay suficiente espacio en disco para almacenar archivos temporales! %1 están disponibles, mientras que el mínimo requerido es %2. Puede seleccionar otra ubicación para los archivos temporales modificando la ruta de caché local desde la configuración del instalador.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2053,6 +2064,10 @@ No es recomendable instalar en este directorio, ya que la instalación podría g
<source>All components installed.</source>
<translation>Todos los componentes fueron instalados.</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>Cargando scripts de componentes...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2513,6 +2528,10 @@ Copie el instalador en una unidad local</translation>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>Valor inválido para &apos;max-concurrent-operations&apos;.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>Valor vacío para la opción &apos;cache-path&apos;.</translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2697,6 +2716,26 @@ O bien acepte la elevación de los derechos de acceso si se le pide.</translatio
<source>Deselect All</source>
<translation>Anular seleccionar todo</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>Caché local</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>La metainformación de los repositorios remotos se almacena en caché en el disco para mejorar los tiempos de carga. Puede seleccionar otro directorio para almacenar el caché o borrar el contenido del caché actual.</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>Ruta para el caché:</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>Elimina el contenido del directorio de caché</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>Limpiar cache</translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2883,4 +2922,94 @@ O bien acepte la elevación de los derechos de acceso si se le pide.</translatio
<translation>Acerca herramienta de mantención %1</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>No se puede inicializar el caché con la ruta vacía.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>No se puede crear el directorio &quot;%1&quot; para la memoria caché.</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>No se puede inicializar el caché: %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>No se puede borrar el caché invalidado.</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>No se puede eliminar el archivo de manifiesto: %1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>Error al borrar el caché: %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>No se pueden recuperar elementos de la memoria caché invalidada.</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>No se puede recuperar el elemento de la memoria caché invalidada.</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>No se puede registrar el elemento en la memoria caché invalidada.</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>No se puede registrar un artículo nulo.</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>No se puede registrar un artículo no válido con la suma de verificación %1</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>No se puede registrar el elemento con la suma de verificación %1. Ya existe un elemento con la misma suma de comprobación en la memoria caché.</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>Error al copiar el elemento a la ruta &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>No se puede eliminar el elemento de la memoria caché invalidada.</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>No se puede eliminar el elemento especificado por la suma de comprobación %1: no existe tal elemento.</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>Error al eliminar el directorio &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>Error al invalidar caché: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>No se puede abrir el archivo de manifiesto: %1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>No se puede escribir el contenido del archivo de manifiesto: %1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>No se puede sincronizar el caché invalidado.</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>¡Caché borrada con éxito!</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_fr.ts b/src/sdk/translations/ifw_fr.ts
index ec1302711..30093be81 100644
--- a/src/sdk/translations/ifw_fr.ts
+++ b/src/sdk/translations/ifw_fr.ts
@@ -1526,10 +1526,6 @@ Erreur lors du chargement de %2</translation>
<translation>Moteur principal du gestionnaire de paquetages manquant.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Préparation du téléchargement des métadonnées...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Décompression des référentiels compressés. Cette opération peut prendre du temps...</translation>
</message>
@@ -1585,6 +1581,21 @@ Erreur lors du chargement de %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>Archive non prise en charge &quot;%1&quot;: pas de gestionnaire enregistré pour les fichiers avec suffixe &quot;%2&quot;.</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>Récuperation des dernières informations de mise a jour...</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>Mise à jour du cache local avec %n nouvel élément...</numerusform>
+ <numerusform>Mise à jour du cache local avec %n nouveaux éléments</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>Effacer le répertoire de cache et redémarrer l&apos;application peut résoudre ce problème.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1747,10 +1758,6 @@ Souhaitez-vous continuer ?</translation>
<translation>L’espace disque est insuffisant pour stocker tous les composants sélectionnés ! %1 sont disponibles, alors qu’au moins %2 sont nécessaires.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>L’espace disque est insuffisant pour stocker les fichiers temporaires ! %1 sont disponibles, alors qu’au moins %2 sont nécessaires.</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>Le volume que vous avez sélectionné pour l&apos;installation semble avoir suffisamment d&apos;espace pour l&apos;installation, mais il restera moins de 1% de l&apos;espace du volume disponible par la suite.</translation>
</message>
@@ -1786,6 +1793,10 @@ Souhaitez-vous continuer ?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>Impossible d&apos;installer le composant %1. Un problème est survenu lors du chargement de ce composant, il est donc marqué comme instable et ne peut pas être sélectionné.</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>L’espace disque est insuffisant pour stocker les fichiers temporaires ! %1 sont disponibles, alors qu’au moins %2 sont nécessaires. Vous pouvez sélectionner un autre emplacement pour les fichiers temporaires en modifiant le chemin du cache local à partir des paramètres du programme d&apos;installation.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2053,6 +2064,10 @@ Souhaitez-vous continuer ?</translation>
<source>All components installed.</source>
<translation>Tous les composants sont installés.</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>Chargement des scripts du composant...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2513,6 +2528,10 @@ Copiez le programme d’installation sur un disque local</translation>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>Valeur non valide pour &apos;max-concurrent-operations&apos;.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>Valeur vide pour l&apos;option &apos;cache-path&apos;.</translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2699,6 +2718,26 @@ Ou acceptez l’élévation des droits d’accès si un message vous y invite.</
<source>Deselect All</source>
<translation>Tout désélectionner</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>Cache local</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>Les méta-informations des référentiels distants sont mises en cache sur le disque pour améliorer les temps de chargement. Vous pouvez sélectionner un autre répertoire pour stocker le cache ou effacer le contenu du cache actuel.</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>Chemin d&apos;accès au cache :</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>Supprime le contenu du répertoire cache</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>Vider le cache</translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2885,4 +2924,94 @@ Ou acceptez l’élévation des droits d’accès si un message vous y invite.</
<translation>À propos de l&apos;outil de maintenance %1</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>Impossible d&apos;initialiser le cache avec un chemin vide.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>Impossible de créer le répertoire &quot;%1&quot; pour le cache.</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>Impossible d&apos;initialiser le cache : %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>Impossible d&apos;effacer le cache invalidé.</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>Impossible de supprimer le fichier manifeste : %1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>Erreur lors de la suppression du cache : %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>Impossible de récupérer les éléments du cache invalidé.</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>Impossible de récupérer l&apos;élément du cache invalidé.</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>Impossible d&apos;enregistrer l&apos;élément dans le cache invalidé.</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>Impossible d&apos;enregistrer un élément nul.</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>Impossible d&apos;enregistrer un élément non valide avec la somme de contrôle %1</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>Impossible d&apos;enregistrer l&apos;élément avec la somme de contrôle %1. Un élément avec la même somme de contrôle existe déjà dans le cache.</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>Erreur lors de la copie de l&apos;élément vers le chemin &quot;%1&quot; : %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>Impossible de supprimer l&apos;élément du cache invalidé.</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>Impossible de supprimer l&apos;élément spécifié par la somme de contrôle %1 : aucun élément de ce type n&apos;existe.</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>Erreur lors de la suppression du répertoire &quot;%1&quot; : %2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>Erreur lors de l&apos;invalidation du cache : %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>Impossible d&apos;ouvrir le fichier manifeste : %1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>Impossible d&apos;écrire le contenu du fichier manifeste : %1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>Impossible de synchroniser le cache invalidé.</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>Cache vidé avec succès !</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_hr.ts b/src/sdk/translations/ifw_hr.ts
index 1445c2706..2f00004a5 100644
--- a/src/sdk/translations/ifw_hr.ts
+++ b/src/sdk/translations/ifw_hr.ts
@@ -212,6 +212,26 @@
<source>The server&apos;s URL that contains a valid repository.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QObject</name>
@@ -275,6 +295,10 @@
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller</name>
@@ -1193,10 +1217,6 @@ Greška prilikom učitavanja %2</translation>
<translation>Nedostaje osnovni uređaj upravljača paketa.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Pripremanje preuzimanja meta informacija …</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Raspakiravanje komprimiranih spremišta. Može ponešto potrajati …</translation>
</message>
@@ -1252,6 +1272,22 @@ Greška prilikom učitavanja %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::FileTaskObserver</name>
@@ -1493,10 +1529,6 @@ Ne preporučujemo instalirati u ovu mapu, jer instaliranje možda neće uspjeti.
<translation type="unfinished"></translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Invalid</source>
<translation type="unfinished"></translation>
</message>
@@ -1508,6 +1540,10 @@ Ne preporučujemo instalirati u ovu mapu, jer instaliranje možda neće uspjeti.
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -1774,6 +1810,10 @@ Ne preporučujemo instalirati u ovu mapu, jer instaliranje možda neće uspjeti.
<source>All components installed.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2068,10 +2108,6 @@ Kopiraj program za instaliranje na računalo</translation>
<translation>Spremno za aktualiziranje paketa</translation>
</message>
<message>
- <source>All required information is now available to begin updating your installation..</source>
- <translation>Postavljanje je sad spremno za aktualiziranje tvoje instalacije.</translation>
- </message>
- <message>
<source>&amp;Install</source>
<translation>&amp;Instaliraj</translation>
</message>
@@ -2087,6 +2123,10 @@ Kopiraj program za instaliranje na računalo</translation>
<source>Ready to Update</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>All required information is now available to begin updating your installation.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PerformInstallationPage</name>
@@ -2894,4 +2934,94 @@ or accept the elevation of access rights if being asked.</source>
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_hu.ts b/src/sdk/translations/ifw_hu.ts
index ec32e4940..7a181fb19 100644
--- a/src/sdk/translations/ifw_hu.ts
+++ b/src/sdk/translations/ifw_hu.ts
@@ -1566,10 +1566,6 @@ Hiba %2 betöltése közben</translation>
<translation>Hiányzik a csomagkezelő alapmotorja.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Metainformációk letöltésének előkészítése...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>A tömörített tárolók kicsomagolása. Ez eltarthat egy ideig...</translation>
</message>
@@ -1625,6 +1621,20 @@ Hiba %2 betöltése közben</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1795,10 +1805,6 @@ Kívánja folytatni?</translation>
<translation>Nincs elég lemezterület az összes kiválasztott komponens tárolásához! %1 elérhető, miközben minimum %2 szükséges.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>Nincs elég lemezterület az ideiglenes fájlok tárolására! %1 elérhető, míközben minimum %2 szükséges.</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>Úgy tűnik, hogy a telepítéshez kiválasztott kötet elegendő helyet biztosít a telepítéshez, de a kötet helyének kevesebb mint 1%-a áll majd rendelkezésre a telepítés befejeztével.</translation>
</message>
@@ -1826,6 +1832,10 @@ Kívánja folytatni?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2091,6 +2101,10 @@ Kívánja folytatni?</translation>
<source>All components installed.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2558,6 +2572,10 @@ Másolja a telepítőt egy helyi meghajtóra</translation>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2742,6 +2760,26 @@ a megfelelő jogokkal rendelkező felhasználóként, majd kattintson az OK gomb
<source>User defined repositories</source>
<translation>Felhasználó által megadott tárolók</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2866,4 +2904,94 @@ a megfelelő jogokkal rendelkező felhasználóként, majd kattintson az OK gomb
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_it.ts b/src/sdk/translations/ifw_it.ts
index 8136f9116..0221b41bc 100644
--- a/src/sdk/translations/ifw_it.ts
+++ b/src/sdk/translations/ifw_it.ts
@@ -1526,10 +1526,6 @@ Errore durante il caricamento di %2</translation>
<translation>Motore core di gestione pacchetti mancante.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Preparazione del download delle informazioni sui metadati...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Decompressione repository compressi. Potrebbe volerci qualche momento...</translation>
</message>
@@ -1585,6 +1581,21 @@ Errore durante il caricamento di %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1771,10 +1782,6 @@ Continuare?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Invalid</source>
<translation type="unfinished"></translation>
</message>
@@ -1786,6 +1793,10 @@ Continuare?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2052,6 +2063,10 @@ Continuare?</translation>
<source>All components installed.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2512,6 +2527,10 @@ Copiare il programma di installazione in un&apos;unità locale</translation>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2693,6 +2712,26 @@ or accept the elevation of access rights if being asked.</source>
<source>The server&apos;s URL that contains a valid repository.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2879,4 +2918,94 @@ or accept the elevation of access rights if being asked.</source>
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_ja.ts b/src/sdk/translations/ifw_ja.ts
index af71120f2..65dc1198d 100644
--- a/src/sdk/translations/ifw_ja.ts
+++ b/src/sdk/translations/ifw_ja.ts
@@ -1513,10 +1513,6 @@ Error while loading %2</source>
<translation>パッケージ マネージャー コア エンジンが見つかりません。</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>メタ情報のダウンロードを準備しています...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>圧縮されたリポジトリを解凍しています。 しばらくお待ちください...</translation>
</message>
@@ -1572,6 +1568,20 @@ Error while loading %2</source>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>&quot;%1&quot; は非サポートのアーカイブです。拡張子 &quot;%2&quot; ファイルのハンドラが登録されていません</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>最新の更新情報を取得しています...</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>%n 個の新しいアイテムでローカル キャッシュを更新しています...</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>キャッシュディレクトリを空にしてアプリケーションを再起動すると、この問題が解決する場合があります。</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1734,10 +1744,6 @@ Do you want to continue?</source>
<translation>十分なディスク空き容量がないため、選択された一部のコンポーネントを格納できません。 %2 が最低限必要な場合は、%1 を利用できます。</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>十分なディスク空き容量がないため、一時ファイルを格納できません。 %2 が最低限必要な場合は、%1 を利用できます。</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>インストール用に選択されたボリュームにはインストールに十分な空き容量があるようですが、後から使用可能な空き容量はボリュームの 1% 未満です。</translation>
</message>
@@ -1773,6 +1779,10 @@ Do you want to continue?</source>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>コンポーネント %1をインストールできません。このコンポーネントのロードに問題があったため、不安定と記され、選択できません。</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>時ファイルを保存するのに十分なディスク容量がありません!&#x3000;%1 が利用可能ですが、必要な最小値は %2 です。 インストーラー設定からローカル キャッシュ パスを変更することにより、一時ファイルの別の場所を選択できます。</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2040,6 +2050,10 @@ Do you want to continue?</source>
<source>All components installed.</source>
<translation>すべてのコンポーネントがインストールされました。</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>コンポーネント スクリプトを読み込んでいます...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2500,6 +2514,10 @@ Please copy the installer to a local drive</source>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>&apos;max-concurrent-operations&apos;の値が無効です。</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>オプション &apos;cache-path&apos; の値が空です。</translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2684,6 +2702,26 @@ or accept the elevation of access rights if being asked.</source>
<source>Deselect All</source>
<translation>すべての選択を解除</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>ローカル キャッシュ</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>読み込み時間を改善するために、リモートリポジトリからのメタ情報がディスクにキャッシュされます。別のディレクトリを選択してキャッシュを保存する、または現在のキャッシュの内容を消去することができます。</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>キャッシュのパス:</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>キャッシュ ディレクトリの内容を削除します</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>キャッシュの消去</translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2868,4 +2906,94 @@ or accept the elevation of access rights if being asked.</source>
<translation>%1メンテナンスツールについて</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>空のパスでキャッシュを初期化できません。</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>キャッシュ用のディレクトリ &quot;%1&quot; を作成できません。</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>キャッシュを初期化できません: %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>無効化されたキャッシュを消去できません。</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>マニフェストファイルを削除できません: %1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>キャッシュを空にしている際にエラーが発生しました: %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>無効化されたキャッシュからアイテムを取得できません。</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>無効化されたキャッシュからアイテムを取得できません。</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>無効化されたキャッシュにアイテムを登録できません。</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>空のアイテムは登録できません。</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>チェックサム %1 で無効なアイテムを登録できません</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>チェックサム %1 でアイテムを登録できません。同じチェックサムを持つアイテムが既にキャッシュに存在します。</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>アイテムをパス &quot;%1&quot; にコピー中にエラーが発生しました: %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>無効化されたキャッシュからアイテムを削除できません。</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>チェックサム %1 で指定されたアイテムを削除できません: そのようなアイテムは存在しません。</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>ディレクトリ &quot;%1&quot; の削除中にエラーが発生しました: %2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>キャッシュの無効化中にエラーが発生しました: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>マニフェストファイルを開けません: %1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>マニフェストファイルの内容を書き込めません: %1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>無効化されたキャッシュを同期できません。</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>キャッシュが正常に消去されました!</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_ko.ts b/src/sdk/translations/ifw_ko.ts
index fa3ffcf06..3db69c42b 100644
--- a/src/sdk/translations/ifw_ko.ts
+++ b/src/sdk/translations/ifw_ko.ts
@@ -212,6 +212,26 @@
<source>User defined repositories</source>
<translation>사용자 정의 저장소</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>로컬 캐시</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>로딩 시간을 줄이기 위해 원격 저장소 메타 정보가 디스크에 캐시(임시 저장)됩니다. 캐시를 저장하기 위해 다른 디렉터리를 선택하거나 현재 캐시를 지울 수 있습니다.</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>캐시를 위한 경로</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>캐시 디렉터리 내용 삭제</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>캐시 모두 삭제</translation>
+ </message>
</context>
<context>
<name>QInstaller</name>
@@ -386,6 +406,10 @@
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>&apos;최대 동시 작업&apos;값이 올바르지 않습니다.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>&apos;cache-path&apos; 옵션의 값이 비어 있습니다.</translation>
+ </message>
</context>
<context>
<name>BinaryLayout</name>
@@ -1299,10 +1323,6 @@ Error while loading %2</source>
<translation>패키지 관리자 코어 엔진이 누락되었습니다.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>메타 정보 다운로드 준비 중...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>압축된 저장소의 압축을 해제합니다. 약간의 시간이 걸릴 수 있습니다...</translation>
</message>
@@ -1358,6 +1378,20 @@ Error while loading %2</source>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>지원되지 않는 &quot;%1&quot; 아카이브: &quot;%2&quot; 파일 접미사를 위해 등록된 핸들러가 없습니다.</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>최신 업데이트 정보를 가져오는 중...</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>로컬캐시에 새 항목 %n개를 업데이트하는 중...</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>캐시 디렉터리를 모두 삭제하고 애플리케이션을 다시 시작하면 문제를 해결할 수 있습니다.</translation>
+ </message>
</context>
<context>
<name>QInstaller::FileTaskObserver</name>
@@ -1575,10 +1609,6 @@ Do you want to continue?</source>
<translation>디스크 공간이 부족하여 선택한 구성요소를 모두 저장할 수 없습니다! %1은(는) 사용 가능하지만 최소한 %2이(가) 필요합니다.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>디스크 공간이 부족하여 임시 파일을 저장할 수 없습니다! %1은(는) 사용 가능하지만 최소한 %2이(가) 필요합니다.</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>설치를 위해 선택한 볼륨은 설치 공간이 충분한 것으로 보이지만, 설치 후에 남은 공간이 볼륨 공간의 %1 미만일 것으로 예상됩니다.</translation>
</message>
@@ -1606,6 +1636,10 @@ Do you want to continue?</source>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>%1 구성요소를 설치할 수 없습니다. 해당 구성요소를 불러오는 중 문제가 발생했으므로 불안정한 것으로 표시되었으며 선택할 수 없습니다.</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>디스크 공간이 부족하여 임시 파일을 저장할 수 없습니다. %1은(는) 사용 가능하지만 최소한 %2이(가) 필요합니다. 설치 프로그램 설정에서 로컬 캐시 경로를 수정하여 임시 파일의 다른 위치를 선택할 수 있습니다.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -1873,6 +1907,10 @@ Do you want to continue?</source>
<source>All components installed.</source>
<translation>모든 구성요소들을 설치했습니다.</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>구성요소 스크립트를 불러오는 중...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2868,4 +2906,94 @@ or accept the elevation of access rights if being asked.</source>
<translation>%1 유지 보수 도구에 대하여</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>빈 경로에 캐시를 초기화할 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>캐시 디렉터리 &quot;%1&quot;를 만들 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>캐시를 초기화할 수 없음: %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>무효화한 캐시를 삭제할 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>매니페스트 파일을 삭제할 수 없음: %1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>캐시를 모두 삭제하는 중 오류 발생: %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>무효화한 캐시에서 아이템들을 가져올 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>무효화한 캐시에서 아이템을 가져올 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>무효화한 캐시에 아이템을 등록할 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>빈 아이템을 등록할 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>체크섬 %1 무효한 아이템을 등록할 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>체크섬 %1 무효한 아이템을 등록할 수 없음. 같은 체크섬을 가진 아이템이 캐시에 있습니다.</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>아이템을 &quot;%1&quot;경로에 복사하는 중 오류 발생: %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>무효화한 캐시에서 아이템을 지울 수 없음.</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>체크섬 %1 아이템을 지울 수 없음: 해당 아이템이 없음.</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>&quot;%1&quot; 디렉터리를 지우는 중 오류 발생: %2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>캐시를 무효화하는 중 오류 발생: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>매니페스트 파일을 열 수 없음: %1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>매니페스트 파일 내용을 쓸 수 없음: %1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>무효화된 캐시를 동기화할 수 없습니다.</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>캐시 삭제를 성공했습니다!</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_pl.ts b/src/sdk/translations/ifw_pl.ts
index e73012131..427878716 100644
--- a/src/sdk/translations/ifw_pl.ts
+++ b/src/sdk/translations/ifw_pl.ts
@@ -1539,10 +1539,6 @@ Błąd podczas wczytywania %2</translation>
<translation>Brak podstawowego mechanizmu menedżera pakietów.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Przygotowanie metainformacji do pobrania...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Rozpakowywanie skompresowanych repozytoriów. Może to chwilę potrwać...</translation>
</message>
@@ -1598,6 +1594,22 @@ Błąd podczas wczytywania %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>Nieznane archiwum &quot;%1&quot;: brak zarejestrowanego uchwytu dla pliku z rozszerzeniem &quot;%2&quot;.</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1784,10 +1796,6 @@ Czy chcesz kontynuować?</translation>
<translation>Za mało miejsca na dysku do zapisu wszystkich wybranych komponentów! %1 jest dostępnych, podczas gdy wymagane minimum to %2.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>Za mało miejsca na dysku do zapisu plików tymczasowych! %1 jest dostępnych, podczas gdy wymagane minimum to %2.</translation>
- </message>
- <message>
<source>Invalid</source>
<translation>Nieprawidłowy</translation>
</message>
@@ -1799,6 +1807,10 @@ Czy chcesz kontynuować?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>Nie można zainstalować komponentu %1. Wystąpił problem z jego załadowaniem, został oznaczony jako niestabilny i nie można go wybrać</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2066,6 +2078,10 @@ Czy chcesz kontynuować?</translation>
<source>All components installed.</source>
<translation>Wszystkie komponenty zostały zainstalowane</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2526,6 +2542,10 @@ Please copy the installer to a local drive</source>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>Nieprawidłowa wartość dla &apos;max-concurrent-operations&apos;.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2710,6 +2730,26 @@ or accept the elevation of access rights if being asked.</source>
<source>The server&apos;s URL that contains a valid repository.</source>
<translation>Adres URL serwera, który zawiera prawidłowe repozytorium.</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2898,4 +2938,94 @@ or accept the elevation of access rights if being asked.</source>
<translation>Usunięte automatyczne zależności komponentu &quot;%1&quot;:</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_pt.ts b/src/sdk/translations/ifw_pt.ts
index c2e581bf2..8c01d5075 100644
--- a/src/sdk/translations/ifw_pt.ts
+++ b/src/sdk/translations/ifw_pt.ts
@@ -212,6 +212,26 @@
<source>Deselect All</source>
<translation>Deselecionar Todos</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>Cache local</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>As informações meta de repositórios remotos são armazenadas em cache no disco para melhorar os tempos de carregamento. Você pode selecionar outro diretório para armazenar o cache ou limpar o conteúdo do cache atual.</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>Caminho para o cache:</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>Exclui o conteúdo do diretório de cache</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>Limpar cache</translation>
+ </message>
</context>
<context>
<name>QObject</name>
@@ -275,6 +295,10 @@
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>O valor de &apos;max-concurrent-operations&apos; não é válido.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>Valor vazio para a opção &apos;cache-path&apos;.</translation>
+ </message>
</context>
<context>
<name>QInstaller</name>
@@ -1164,10 +1188,6 @@ Erro ao carregar %2</translation>
<translation>O motor principal do gestor de pacotes não está disponível.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>A preparar o descarregamento de metadados...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>A descompactar repositórios. Por favor espere...</translation>
</message>
@@ -1223,6 +1243,21 @@ Erro ao carregar %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>O ficheiro &quot;%1&quot; não é suportado. Não está registado um programa para a extensão &quot;%2&quot;.</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>Buscando informações de atualização mais recentes...</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>Atualizando o cache local com %n novo item...</numerusform>
+ <numerusform>Atualizando o cache local com %s novos itens...</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>Limpar o diretório de cache e reiniciar o aplicativo pode resolver isso.</translation>
+ </message>
</context>
<context>
<name>QInstaller::FileTaskObserver</name>
@@ -1436,10 +1471,6 @@ De certeza que deseja continuar?</translation>
<translation>Não há espaço em disco suficiente para armazenar todos os componentes selecionados! Estão disponíveis %1, mas é necessário no mínimo %2.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>Não há espaço em disco suficiente para armazenar ficheiros temporários! Estão disponíveis %1, mas é necessário no mínimo %2.</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>O volume que selecionou para instalação tem espaço suficiente para instalação, mas posteriormente terá menos de 1% do espaço disponível.</translation>
</message>
@@ -1475,6 +1506,10 @@ De certeza que deseja continuar?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>Não é possível instalar o componente %1. Ocorreu um problema ao carregar o componente, este foi sinalizado como instável e não pode ser selecionado.</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>Não há espaço em disco suficiente para armazenar arquivos temporários! %1 estão disponíveis, enquanto o mínimo necessário é %2. Você pode selecionar outro local para os arquivos temporários modificando o caminho do cache local nas configurações do instalador.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -1742,6 +1777,10 @@ De certeza que deseja continuar?</translation>
<source>All components installed.</source>
<translation>Todos os componentes foram instalados.</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>Carregando scripts de componentes...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2883,4 +2922,95 @@ Em alternativa, pode aceitar a alteração de permissões de acesso caso seja so
<translation>Acerca da ferramenta de manutenção %1 </translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>Não é possível inicializar o cache com caminho vazio.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>Não é possível criar o diretório &quot;%1&quot; para cache.</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>Não é possível inicializar o cache: %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>Não é possível limpar o cache invalidado.</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>Não é possível remover o arquivo de manifesto: % 1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>Erro ao limpar o cache: %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>Não é possível recuperar itens do cache invalidado.</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>Não é possível recuperar o item do cache invalidado.</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>Não é possível registrar o item no cache invalidado.</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>Não é possível registrar item nulo.</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>Não é possível registar um item inválido com a soma de verificação % 1</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>Não é possível registrar o item com a soma de verificação %1. Já existe um item com a mesma soma de verificação no cache.</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>Erro ao copiar o item para o caminho &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>Não é possível remover o item do cache invalidado.</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>Não é possível remover o item especificado pela soma de verificação %1: esse item não existe.</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>Erro ao remover o diretório &quot;%1&quot;: %2
+</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>Erro ao invalidar o cache: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>Não é possível abrir o arquivo de manifesto: % 1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>Não é possível gravar o conteúdo do arquivo de manifesto: % 1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>Não é possível sincronizar o cache invalidado.</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>Cache limpo com sucesso!</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_pt_BR.ts b/src/sdk/translations/ifw_pt_BR.ts
index 9e2059085..6d7b2f15e 100644
--- a/src/sdk/translations/ifw_pt_BR.ts
+++ b/src/sdk/translations/ifw_pt_BR.ts
@@ -212,6 +212,26 @@
<source>The server&apos;s URL that contains a valid repository.</source>
<translation>URL do servidor que contém um repositório válido.</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QObject</name>
@@ -275,6 +295,10 @@
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>Valor inválido para &apos;max-concurrent-operations&apos;.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller</name>
@@ -1164,10 +1188,6 @@ Erro ao carregar %2</translation>
<translation>Faltando o mecanismo principal do gerenciador de pacotes.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Preparando o download de metadados...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Descompactando repositórios compactados. Isso pode demorar um pouco...</translation>
</message>
@@ -1223,6 +1243,21 @@ Erro ao carregar %2</translation>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::FileTaskObserver</name>
@@ -1436,10 +1471,6 @@ Você quer continuar?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation type="unfinished"></translation>
</message>
@@ -1475,6 +1506,10 @@ Você quer continuar?</translation>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -1741,6 +1776,10 @@ Você quer continuar?</translation>
<source>All components installed.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2882,4 +2921,94 @@ or accept the elevation of access rights if being asked.</source>
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_ru.ts b/src/sdk/translations/ifw_ru.ts
index 7e71b105b..b47cf9661 100644
--- a/src/sdk/translations/ifw_ru.ts
+++ b/src/sdk/translations/ifw_ru.ts
@@ -1577,10 +1577,6 @@ Error while loading %2</source>
<translation>Отсутствует менеджер пакетов.</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>Подготовка к загрузке метаданных...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>Распаковка сжатых хранилищ. Это может занять некоторое время...</translation>
</message>
@@ -1636,6 +1632,22 @@ Error while loading %2</source>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>Неподдерживаемый архив &quot;%1&quot;: нет зарегестрированного обработчика для файла с расширением &quot;%2&quot;.</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>Получение информации о последнем обновлении</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>Обновление локального кэша с добавлением %n нового файла</numerusform>
+ <numerusform>Обновление локального кэша с добавлением %n новых файлов</numerusform>
+ <numerusform>Обновление локального кэша с добавлением %n новых файлов</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>Очистка кэш-директории и перезапуск приложения может исправить это.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1818,10 +1830,6 @@ Do you want to continue?</source>
<translation>Недостаточно места на диске для сохранения всех выбранных компонентов. Доступно %1, а требуется минимум: %2.</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>Недостаточно места на диске для временных файлов. Доступно %1, а требуется минимум %2.</translation>
- </message>
- <message>
<source>The estimated installer size %1 would exceed the supported executable size limit of %2. The application may not be able to run.</source>
<translation>Приблизительный размер установочника %1 превысит поддерживаемый предел размера исполняемого файла %2. Возможно, приложение не сможет быть запущено. </translation>
</message>
@@ -1837,6 +1845,10 @@ Do you want to continue?</source>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>Невозможно установить компонент %1. Произошла ошибка загрузки этого компонента, он был помечен нестабильным и не может быть выбран.</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation>Недостаточно места на диске для хранения временных файлов! %1 доступно, минимально необходимо %2. Вы можете выбрать другое место для временных файлов, изменив путь к локальному кэшу в настройках установщика.</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2103,6 +2115,10 @@ Do you want to continue?</source>
<source>All components installed.</source>
<translation>Все компоненты установлены.</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>Загрузка скриптов компонента...</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2563,6 +2579,10 @@ Please copy the installer to a local drive</source>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>Неверное значение for &apos;max-concurrent-operations&apos;.</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>Пустое значение параметра &apos;cache-path&apos;.</translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2747,6 +2767,26 @@ or accept the elevation of access rights if being asked.</source>
<source>The server&apos;s URL that contains a valid repository.</source>
<translation>Адреса серверов, которые содержат рабочие хранилища.</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>Локальный кэш</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>Мета информация с удаленных репозиториев кэшируется на диске для ускорения загрузочного процесса. Вы можете выбрать другую папку для хранения кэша или удалить содержимое существующего кэша.</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>Путь для кэша:</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>Удаление содержимого существующей кэш-директории.</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>Очистить кэш</translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2897,4 +2937,94 @@ or accept the elevation of access rights if being asked.</source>
<translation>Об %1 Maintenance Tool</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>Невозможно инициализировать кэш с пустым путем.</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>Невозможно создать директорию &quot;%1&quot; для кэша.</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>Невозможно инициализировать кэш: %1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>Невозможно очистить недействительный кэш. </translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>Невозможно удалить файл-манифест: %1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>Ошибка во время очистки кэша: %1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>Невозможно получить файлы из недействительного кэша.</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>Невозможно получить файл из недействительного кэша.</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>Невозможно зарегестрировать файл для недействительного кэша.</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>Невозможно зарегестрировать недействительный файл.</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>Невозможно зарегестрировать файл с контрольной суммой %1. Файл с идентичной контрольной суммой уже существует в кэше.</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>Ошибка при копировании файла в &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>Невозможно удалить файл из недействительного кэша.</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>Невозможно удалить файл с контрольной суммой %1: файла не существует.</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>Ошибка при удалении директории &quot;%1&quot;: %2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>Ошибка при аннулировании кэша: %1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>Невозможно открыть файл-манифест: %1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>Невозможно записать содержимое для файл-манифеста: %1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>Не удается синхронизировать недействительный кеш.</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>Кэш успешно очищен!</translation>
+ </message>
+</context>
</TS>
diff --git a/src/sdk/translations/ifw_zh_CN.ts b/src/sdk/translations/ifw_zh_CN.ts
index 37fcc7c58..7b715f2e3 100644
--- a/src/sdk/translations/ifw_zh_CN.ts
+++ b/src/sdk/translations/ifw_zh_CN.ts
@@ -1518,10 +1518,6 @@ Error while loading %2</source>
<translation>缺少包管理器核心引擎。</translation>
</message>
<message>
- <source>Preparing meta information download...</source>
- <translation>正在准备下载元信息...</translation>
- </message>
- <message>
<source>Unpacking compressed repositories. This may take a while...</source>
<translation>解压压缩资料档案库。 这可能需要一些时间...</translation>
</message>
@@ -1577,6 +1573,20 @@ Error while loading %2</source>
<source>Unsupported archive &quot;%1&quot;: no handler registered for file suffix &quot;%2&quot;.</source>
<translation>不支持的存档“%1”:没有处理程序注册在文件后缀“%2”名下。</translation>
</message>
+ <message>
+ <source>Fetching latest update information...</source>
+ <translation>正在获取最新更新信息……</translation>
+ </message>
+ <message numerus="yes">
+ <source>Updating local cache with %n new items...</source>
+ <translation>
+ <numerusform>正在更新本地缓存中的%n个新项目……</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Clearing the cache directory and restarting the application may solve this.</source>
+ <translation>正在清空缓存目录并且重启应用程序也许可以解决这个问题。</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCore</name>
@@ -1739,10 +1749,6 @@ Do you want to continue?</source>
<translation>没有足够的磁盘空间来存储所有选定的组件! %1 可用,但至少需要 %2。</translation>
</message>
<message>
- <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2.</source>
- <translation>没有足够的磁盘空间来存储临时文件! %1 可用,但至少需要 %2。</translation>
- </message>
- <message>
<source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume&apos;s space available afterwards.</source>
<translation>您选择安装的容量似乎有足够的安装空间,但之后的可用空间将不到该容量的 1%。</translation>
</message>
@@ -1778,6 +1784,10 @@ Do you want to continue?</source>
<source>Cannot install component %1. There was a problem loading this component, so it is marked unstable and cannot be selected.</source>
<translation>无法安装组件 %1。加载这个组件时发生错误,所以它被标记为不稳定并且不能被选择。</translation>
</message>
+ <message>
+ <source>Not enough disk space to store temporary files! %1 are available, while the minimum required is %2. You may select another location for the temporary files by modifying the local cache path from the installer settings.</source>
+ <translation type="unfinished">没有足够的硬盘空间存储临时文件!有%1可用,但是最少需要%2。您可以通过修改安装程序设置中的本地缓存路径来为这些临时文件指定另外一个存储位置。</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerCorePrivate</name>
@@ -2045,6 +2055,10 @@ Do you want to continue?</source>
<source>All components installed.</source>
<translation>所有组件已安装。</translation>
</message>
+ <message>
+ <source>Loading component scripts...</source>
+ <translation>正在加载组件脚本……</translation>
+ </message>
</context>
<context>
<name>QInstaller::PackageManagerGui</name>
@@ -2505,6 +2519,10 @@ Please copy the installer to a local drive</source>
<source>Invalid value for &apos;max-concurrent-operations&apos;.</source>
<translation>“max-concurrent-operations”的值无效。</translation>
</message>
+ <message>
+ <source>Empty value for option &apos;cache-path&apos;.</source>
+ <translation>“cache-path”选项的值为空。</translation>
+ </message>
</context>
<context>
<name>RemoteClient</name>
@@ -2689,6 +2707,26 @@ or accept the elevation of access rights if being asked.</source>
<source>Deselect All</source>
<translation>取消全选</translation>
</message>
+ <message>
+ <source>Local cache</source>
+ <translation>本地缓存</translation>
+ </message>
+ <message>
+ <source>The meta information from remote repositories is cached to disk to improve loading times. You may select another directory to store the cache or clear the contents of the current cache.</source>
+ <translation>为了缩短加载时间,远程仓库的元信息被缓存到硬盘。您可以选择另外一个目录来存储缓存,或者清空当前缓存的内容。</translation>
+ </message>
+ <message>
+ <source>Path for cache:</source>
+ <translation>缓存的路径:</translation>
+ </message>
+ <message>
+ <source>Deletes the contents of the cache directory</source>
+ <translation>删除缓存目录中的内容</translation>
+ </message>
+ <message>
+ <source>Clear cache</source>
+ <translation>清空缓存</translation>
+ </message>
</context>
<context>
<name>UpdateOperation</name>
@@ -2873,4 +2911,94 @@ or accept the elevation of access rights if being asked.</source>
<translation>组件自动依赖“%1”已移除:</translation>
</message>
</context>
+<context>
+ <name>GenericDataCache</name>
+ <message>
+ <source>Cannot initialize cache with empty path.</source>
+ <translation>无法使用空白路径初始化缓存。</translation>
+ </message>
+ <message>
+ <source>Cannot create directory &quot;%1&quot; for cache.</source>
+ <translation>无法为缓存创建“%1”目录。</translation>
+ </message>
+ <message>
+ <source>Cannot initialize cache: %1</source>
+ <translation>无法初始化缓存:%1</translation>
+ </message>
+ <message>
+ <source>Cannot clear invalidated cache.</source>
+ <translation>无法清空失效的缓存。</translation>
+ </message>
+ <message>
+ <source>Cannot remove manifest file: %1</source>
+ <translation>无法移除清单(manifest)文件:%1</translation>
+ </message>
+ <message>
+ <source>Error while clearing cache: %1</source>
+ <translation>清空缓存时发生错误:%1</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve items from invalidated cache.</source>
+ <translation>无法从失效的缓存中获取项目。</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve item from invalidated cache.</source>
+ <translation>无法从失效的缓存中获取项目。</translation>
+ </message>
+ <message>
+ <source>Cannot register item to invalidated cache.</source>
+ <translation>无法向失效的缓存中注册项目。</translation>
+ </message>
+ <message>
+ <source>Cannot register null item.</source>
+ <translation>无法注册空项目。</translation>
+ </message>
+ <message>
+ <source>Cannot register invalid item with checksum %1</source>
+ <translation>无法注册校验和为%1的无效项目</translation>
+ </message>
+ <message>
+ <source>Cannot register item with checksum %1. An item with the same checksum already exists in cache.</source>
+ <translation>无法注册校验和为%1的项目。缓存中已经存在一个相同校验和的项目。</translation>
+ </message>
+ <message>
+ <source>Error while copying item to path &quot;%1&quot;: %2</source>
+ <translation>复制项目到“%1”路径时发生错误:%2</translation>
+ </message>
+ <message>
+ <source>Cannot remove item from invalidated cache.</source>
+ <translation>无法从失效缓存中移除项目。</translation>
+ </message>
+ <message>
+ <source>Cannot remove item specified by checksum %1: no such item exists.</source>
+ <translation>无法移除通过校验和%1指定的项目:查无此项。</translation>
+ </message>
+ <message>
+ <source>Error while removing directory &quot;%1&quot;: %2</source>
+ <translation>移除“%1”目录时发生错误:%2</translation>
+ </message>
+ <message>
+ <source>Error while invalidating cache: %1</source>
+ <translation>使缓存失效时发生错误:%1</translation>
+ </message>
+ <message>
+ <source>Cannot open manifest file: %1</source>
+ <translation>无法打开清单(manifest)文件:%1</translation>
+ </message>
+ <message>
+ <source>Cannot write contents for manifest file: %1</source>
+ <translation>无法写入清单(manifest)文件的内容:%1</translation>
+ </message>
+ <message>
+ <source>Cannot synchronize invalidated cache.</source>
+ <translation>无法同步失效的缓存。</translation>
+ </message>
+</context>
+<context>
+ <name>TabController</name>
+ <message>
+ <source>Cache cleared successfully!</source>
+ <translation>缓存清空成功!</translation>
+ </message>
+</context>
</TS>
diff --git a/tests/auto/installer/extractarchiveoperationtest/data.qrc b/tests/auto/installer/extractarchiveoperationtest/data.qrc
index 974c0c6f7..a8cc1a892 100644
--- a/tests/auto/installer/extractarchiveoperationtest/data.qrc
+++ b/tests/auto/installer/extractarchiveoperationtest/data.qrc
@@ -2,6 +2,7 @@
<qresource prefix="/">
<file>data/valid.7z</file>
<file>data/invalid.7z</file>
+ <file>data/subdirs.7z</file>
<file>data/xmloperationrepository/Updates.xml</file>
<file>data/xmloperationrepository/A/1.0.0content.7z</file>
<file>data/xmloperationrepository/A/1.0.0content1.tar.gz</file>
diff --git a/tests/auto/installer/extractarchiveoperationtest/data/subdirs.7z b/tests/auto/installer/extractarchiveoperationtest/data/subdirs.7z
new file mode 100644
index 000000000..7f93fe106
--- /dev/null
+++ b/tests/auto/installer/extractarchiveoperationtest/data/subdirs.7z
Binary files differ
diff --git a/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp b/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp
index 8ceaa76c7..89492bd94 100644
--- a/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp
+++ b/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp
@@ -28,6 +28,7 @@
#include "../shared/packagemanager.h"
+#include "concurrentoperationrunner.h"
#include "init.h"
#include "extractarchiveoperation.h"
@@ -86,6 +87,57 @@ private slots:
QCOMPARE(UpdateOperation::Error(op.error()), UpdateOperation::UserDefinedError);
}
+ void testConcurrentExtractWithCompetingData()
+ {
+ // Suppress warnings about already deleted installerResources file
+ qInstallMessageHandler(silentTestMessageHandler);
+
+ const QString testDirectory = generateTemporaryFileName()
+ + "/subdir1/subdir2/subdir3/subdir4/subdir5/";
+
+ QStringList created7zList;
+
+ OperationList operations;
+ for (int i = 0; i < 100; ++i) {
+ ExtractArchiveOperation *op = new ExtractArchiveOperation(nullptr);
+ // We add the same data multiple times, and extract to same directory.
+ // Can't open the same archive multiple times however so it needs to
+ // be copied to unique files.
+ const QString new7zPath = generateTemporaryFileName() + ".7z";
+ QFile old7z(":///data/subdirs.7z");
+ QVERIFY(old7z.copy(new7zPath));
+
+ op->setArguments(QStringList() << new7zPath << testDirectory);
+ operations.append(op);
+ }
+ ConcurrentOperationRunner runner(&operations, Operation::Backup);
+
+ const QHash<Operation *, bool> backupResults = runner.run();
+ const OperationList backupOperations = backupResults.keys();
+
+ for (auto *operation : backupOperations)
+ QVERIFY2((backupResults.value(operation) && operation->error() == Operation::NoError),
+ operation->errorString().toLatin1());
+
+ runner.setType(Operation::Perform);
+ const QHash<Operation *, bool> results = runner.run();
+ const OperationList performedOperations = results.keys();
+
+ for (auto *operation : performedOperations)
+ QVERIFY2((results.value(operation) && operation->error() == Operation::NoError),
+ operation->errorString().toLatin1());
+
+ for (auto *operation : operations)
+ QVERIFY(operation->undoOperation());
+
+ qDeleteAll(operations);
+
+ for (const QString &archive : created7zList)
+ QFile::remove(archive);
+
+ QDir().rmdir(testDirectory);
+ }
+
void testExtractArchiveFromXML()
{
m_testDirectory = QInstaller::generateTemporaryFileName();