summaryrefslogtreecommitdiffstats
path: root/src/sdk
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2012-03-15 14:53:47 +0100
committerKarsten Heimrich <karsten.heimrich@nokia.com>2012-03-19 16:14:04 +0100
commitbe3b47d0d504a3409ce66bd77bb8c0acff87c4f5 (patch)
tree09dfb02d484a4f395991972b828da71400fb761a /src/sdk
parent9fd62353cf7f973d78cd2093328ac15b5c4980b6 (diff)
Reorganize the tree, have better ifw.pri. Shadow build support.
Change-Id: I01fb12537f863ed0744979973c7e4153889cc5cb Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'src/sdk')
-rw-r--r--src/sdk/installerbase.cpp396
-rw-r--r--src/sdk/installerbase.exe.manifest14
-rw-r--r--src/sdk/installerbase.icobin0 -> 25214 bytes
-rw-r--r--src/sdk/installerbase.qrc7
-rw-r--r--src/sdk/installerbase.rc7
-rw-r--r--src/sdk/installerbase_p.cpp428
-rw-r--r--src/sdk/installerbase_p.h101
-rw-r--r--src/sdk/installerbasecommons.cpp549
-rw-r--r--src/sdk/installerbasecommons.h147
-rw-r--r--src/sdk/sdk.pro51
-rw-r--r--src/sdk/settingsdialog.cpp535
-rw-r--r--src/sdk/settingsdialog.h172
-rw-r--r--src/sdk/settingsdialog.ui767
-rw-r--r--src/sdk/tabcontroller.cpp203
-rw-r--r--src/sdk/tabcontroller.h76
-rw-r--r--src/sdk/translations/de_de.ts3681
-rw-r--r--src/sdk/translations/en_us.ts3331
-rw-r--r--src/sdk/translations/sv_se.ts3384
18 files changed, 13849 insertions, 0 deletions
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp
new file mode 100644
index 000000000..bee26e329
--- /dev/null
+++ b/src/sdk/installerbase.cpp
@@ -0,0 +1,396 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2010-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+#include "installerbase_p.h"
+
+#include "installerbasecommons.h"
+#include "tabcontroller.h"
+
+#include <binaryformat.h>
+#include <errors.h>
+#include <fileutils.h>
+#include <fsengineserver.h>
+#include <init.h>
+#include <lib7z_facade.h>
+#include <operationrunner.h>
+#include <packagemanagercore.h>
+#include <packagemanagergui.h>
+#include <qinstallerglobal.h>
+#include <settings.h>
+#include <utils.h>
+#include <updater.h>
+
+#include <kdselfrestarter.h>
+#include <kdrunoncechecker.h>
+#include <kdupdaterfiledownloaderfactory.h>
+
+#include <QtCore/QTranslator>
+#include <QtGui/QMessageBox>
+
+#include <QtNetwork/QNetworkProxyFactory>
+
+#include <iostream>
+#include <fstream>
+
+#include <string>
+
+#define QUOTE_(x) #x
+#define QUOTE(x) QUOTE_(x)
+#define VERSION "IFW Version: \"" IFW_VERSION_STRING "\", Installer base SHA1: \"" QUOTE(_GIT_SHA1_) \
+ "\", Build date: " QUOTE(__DATE__) "."
+
+using namespace QInstaller;
+using namespace QInstallerCreator;
+
+static QSet<Repository> repositories(const QStringList &arguments, const int index)
+{
+ QSet<Repository> set;
+ if (index < arguments.size()) {
+ QStringList items = arguments.at(index).split(QLatin1Char(','));
+ foreach (const QString &item, items) {
+ set.insert(Repository(item, false));
+ qDebug() << "Adding custom repository:" << item;
+ }
+ } else {
+ std::cerr << "No repository specified" << std::endl;
+ }
+ return set;
+}
+
+static bool allowMaintenanceTool()
+{
+ try {
+ Settings m_settings = Settings(Settings::fromFileAndPrefix(QLatin1String(":/metadata/installer-config/config.xml"),
+ QLatin1String(":/metadata/installer-config/")));
+
+ if (m_settings.value(QLatin1String("AllowExecuteMaintenanceTool"), QLatin1String("true")).toString().toLower()
+ == QLatin1String("true"))
+ {
+ return true;
+ }
+ } catch (const Error &e) {
+ qWarning("Could not parse Config: %s", qPrintable(e.message()));
+ return true;
+ }
+ return false;
+}
+
+// -- main
+
+int main(int argc, char *argv[])
+{
+ QStringList args = QInstaller::parseCommandLineArgs(argc, argv);
+
+// hack to use cleanlooks if it is under Ubuntu 11.10
+#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+ std::string standardString;
+ std::string cleanLooks ="-style=cleanlooks";
+ std::ifstream input("/etc/lsb-release");
+ bool isUbuntu = false;
+ bool is11_10 = false;
+ while (std::getline(input, standardString)) {
+ if (standardString == "DISTRIB_ID=Ubuntu")
+ isUbuntu = true;
+ else if (standardString == "DISTRIB_RELEASE=11.10")
+ is11_10 = true;
+ }
+
+ if (isUbuntu && is11_10) {
+ argc++;
+ char **newArgv = new char* [argc];
+ newArgv[0] = argv[0];
+ newArgv[1] = const_cast<char*>(cleanLooks.data());
+ for (int i = 1; i < argc-1; ++i) {
+ newArgv[i+1] = argv[i];
+ }
+ argv = newArgv;
+ }
+#endif
+
+ qsrand(QDateTime::currentDateTime().toTime_t());
+ const KDSelfRestarter restarter(argc, argv);
+ KDRunOnceChecker runCheck(QLatin1String("lockmyApp1234865.lock"));
+
+ try {
+ if (args.contains(QLatin1String("--version"))) {
+ InstallerBase::showVersion(QLatin1String(VERSION));
+ return 0;
+ }
+
+ // this is the FSEngineServer as an admin rights process upon request:
+ if (args.count() >= 3 && args[1] == QLatin1String("--startserver")) {
+ MyCoreApplication app(argc, argv);
+ FSEngineServer* const server = new FSEngineServer(args[2].toInt());
+ if (args.count() >= 4)
+ server->setAuthorizationKey(args[3]);
+ QObject::connect(server, SIGNAL(destroyed()), &app, SLOT(quit()));
+ return app.exec();
+ }
+
+ // Make sure we honor the system's proxy settings
+#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+ QUrl proxyUrl(QString::fromLatin1(qgetenv("http_proxy")));
+ if (proxyUrl.isValid()) {
+ QNetworkProxy proxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyUrl.port(),
+ proxyUrl.userName(), proxyUrl.password());
+ QNetworkProxy::setApplicationProxy(proxy);
+ }
+#else
+ if (args.contains(QLatin1String("--proxy")))
+ QNetworkProxyFactory::setUseSystemConfiguration(true);
+#endif
+
+ if (args.contains(QLatin1String("--checkupdates"))) {
+ MyCoreApplication app(argc, argv);
+ if (runCheck.isRunning(KDRunOnceChecker::ProcessList))
+ return 0;
+
+ Updater u;
+ u.setVerbose(args.contains(QLatin1String("--verbose")) || args.contains(QLatin1String("-v")));
+ return u.checkForUpdates() ? 0 : 1;
+ }
+
+ if (args.contains(QLatin1String("--runoperation"))
+ || args.contains(QLatin1String("--undooperation"))) {
+ MyCoreApplication app(argc, argv);
+ OperationRunner o;
+ o.setVerbose(args.contains(QLatin1String("--verbose"))
+ || args.contains(QLatin1String("-v")));
+ return o.runOperation(args);
+ }
+
+ if (args.contains(QLatin1String("--update-installerbase"))) {
+ MyCoreApplication app(argc, argv);
+ if (runCheck.isRunning(KDRunOnceChecker::ProcessList))
+ return 0;
+
+ return InstallerBase().replaceMaintenanceToolBinary(args);
+ }
+
+ // from here, the "normal" installer binary is running
+ MyApplication app(argc, argv);
+ args = app.arguments();
+
+ if (runCheck.isRunning(KDRunOnceChecker::ProcessList)) {
+ if (runCheck.isRunning(KDRunOnceChecker::Lockfile))
+ return 0;
+
+ while (runCheck.isRunning(KDRunOnceChecker::ProcessList))
+ Sleep::sleep(1);
+ }
+
+ if (args.contains(QLatin1String("--verbose")) || args.contains(QLatin1String("-v"))) {
+ app.setVerbose();
+ QInstaller::setVerbose(true);
+ }
+
+ // install the default translator
+ const QString localeFile =
+ QString::fromLatin1(":/translations/qt_%1").arg(QLocale::system().name());
+ {
+ QTranslator* const translator = new QTranslator(&app);
+ translator->load(localeFile);
+ app.installTranslator(translator);
+ }
+
+ // install English translation as fallback so that correct license button text is used
+ const QString enLocaleFile = QString::fromLatin1(":/translations/en_us.qm");
+ if (QFile::exists(enLocaleFile)) {
+ QTranslator* const translator = new QTranslator(&app);
+ translator->load(enLocaleFile);
+ app.installTranslator(translator);
+ }
+
+ // install "our" default translator
+ const QString ourLocaleFile =
+ QString::fromLatin1(":/translations/%1.qm").arg(QLocale().name().toLower());
+ if (QFile::exists(ourLocaleFile)) {
+ QTranslator* const translator = new QTranslator(&app);
+ translator->load(ourLocaleFile);
+ app.installTranslator(translator);
+ }
+
+ if (QInstaller::isVerbose()) {
+ qDebug() << VERSION;
+ qDebug() << "Arguments:" << args;
+ qDebug() << "Language: " << QLocale().name().toLower();
+ qDebug() << "Resource tree before loading the in-binary resource:";
+
+ QDir dir(QLatin1String(":/"));
+ foreach (const QString &i, dir.entryList()) {
+ const QByteArray ba = i.toUtf8();
+ qDebug().nospace() << " :/" << ba.constData();
+ }
+ }
+
+ // register custom operations before reading the binary content cause they may used in
+ // the uninstaller for the recorded list of during the installation performed operations
+ QInstaller::init();
+
+ // load and map the embedded binary resource, registers operations
+ BinaryContent content = BinaryContent::readAndRegisterFromApplicationFile();
+
+ // instantiate the installer we are actually going to use
+ QInstaller::PackageManagerCore core(content.magicMarker(), content.performedOperations());
+ Settings m_settings =
+ Settings(Settings::fromFileAndPrefix(QLatin1String(":/metadata/installer-config/config.xml"),
+ QLatin1String(":/metadata/installer-config/")));
+
+ // check execution rights for the maintenance tool
+ if (!core.isInstaller() && !allowMaintenanceTool() && !args.contains(QLatin1String("--script"))) {
+ QString reason = m_settings.value(QLatin1String("DisallowExecuteReason"),
+ QString::fromLatin1("You are not allowed to run %1.").arg(qAppName())).toString();
+ QMessageBox::information(0, QLatin1String("Update notification"), reason);
+ return 0;
+ }
+
+ if (QInstaller::isVerbose()) {
+ qDebug() << "Resource tree after loading the in-binary resource:";
+
+ QDir dir = QDir(QLatin1String(":/"));
+ foreach (const QString &i, dir.entryList())
+ qDebug() << QString::fromLatin1(" :/%1").arg(i);
+
+ dir = QDir(QLatin1String(":/metadata/"));
+ foreach (const QString &i, dir.entryList())
+ qDebug() << QString::fromLatin1(" :/metadata/%1").arg(i);
+ }
+
+ QString controlScript;
+ QHash<QString, QString> params;
+ for (int i = 1; i < args.size(); ++i) {
+ const QString &argument = args.at(i);
+ if (argument.isEmpty())
+ continue;
+
+ if (argument.contains(QLatin1Char('='))) {
+ const QString name = argument.section(QLatin1Char('='), 0, 0);
+ const QString value = argument.section(QLatin1Char('='), 1, 1);
+ params.insert(name, value);
+ core.setValue(name, value);
+ } else if (argument == QLatin1String("--script") || argument == QLatin1String("Script")) {
+ ++i;
+ if (i < args.size()) {
+ controlScript = args.at(i);
+ if (!QFileInfo(controlScript).exists())
+ return PackageManagerCore::Failure;
+ } else {
+ return PackageManagerCore::Failure;
+ }
+ } else if (argument == QLatin1String("--verbose") || argument == QLatin1String("-v")) {
+ core.setVerbose(true);
+ } else if (argument == QLatin1String("--proxy")) {
+ core.settings().setProxyType(QInstaller::Settings::SystemProxy);
+ KDUpdater::FileDownloaderFactory::instance().setProxyFactory(core.proxyFactory());
+ } else if (argument == QLatin1String("--show-virtual-components")
+ || argument == QLatin1String("ShowVirtualComponents")) {
+ QFont f;
+ f.setItalic(true);
+ PackageManagerCore::setVirtualComponentsFont(f);
+ PackageManagerCore::setVirtualComponentsVisible(true);
+ } else if ((argument == QLatin1String("--updater")
+ || argument == QLatin1String("Updater")) && core.isUninstaller()) {
+ core.setUpdater();
+ } else if ((argument == QLatin1String("--manage-packages")
+ || argument == QLatin1String("ManagePackages")) && core.isUninstaller()) {
+ core.setPackageManager();
+ } else if (argument == QLatin1String("--help") || argument == QLatin1String("-h")) {
+ InstallerBase::showUsage();
+ return PackageManagerCore::Success;
+ } else if (argument == QLatin1String("--addTempRepository")
+ || argument == QLatin1String("--setTempRepository")) {
+ ++i;
+ QSet<Repository> repoList = repositories(args, i);
+ if (repoList.isEmpty())
+ return PackageManagerCore::Failure;
+
+ // We cannot use setRemoteRepositories as that is a synchronous call which "
+ // tries to get the data from server and this isn't what we want at this point
+ const bool replace = (argument == QLatin1String("--setTempRepository"));
+ core.setTemporaryRepositories(repoList, replace);
+ } else if (argument == QLatin1String("--addRepository")) {
+ ++i;
+ QSet<Repository> repoList = repositories(args, i);
+ if (repoList.isEmpty())
+ return PackageManagerCore::Failure;
+ core.addUserRepositories(repoList);
+ } else if (argument == QLatin1String("--no-force-installations")) {
+ PackageManagerCore::setNoForceInstallation(true);
+ } else {
+ std::cerr << "Unknown option: " << argument << std::endl;
+ }
+ }
+
+ // Create the wizard gui
+ TabController controller(0);
+ controller.setManager(&core);
+ controller.setManagerParams(params);
+ controller.setControlScript(controlScript);
+
+ if (core.isInstaller()) {
+ controller.setGui(new InstallerGui(&core));
+ } else {
+ controller.setGui(new MaintenanceGui(&core));
+ }
+
+ PackageManagerCore::Status status = PackageManagerCore::Status(controller.init());
+ if (status != PackageManagerCore::Success)
+ return status;
+
+ const int result = app.exec();
+ if (result != 0)
+ return result;
+
+ if (core.finishedWithSuccess())
+ return PackageManagerCore::Success;
+
+ status = core.status();
+ switch (status) {
+ case PackageManagerCore::Success:
+ return status;
+
+ case PackageManagerCore::Canceled:
+ return status;
+
+ default:
+ break;
+ }
+ return PackageManagerCore::Failure;
+ } catch(const Error &e) {
+ std::cerr << qPrintable(e.message()) << std::endl;
+ } catch (const std::exception &e) {
+ std::cerr << e.what() << std::endl;
+ } catch(...) {
+ std::cerr << "Unknown error, aborting." << std::endl;
+ }
+
+ return PackageManagerCore::Failure;
+}
diff --git a/src/sdk/installerbase.exe.manifest b/src/sdk/installerbase.exe.manifest
new file mode 100644
index 000000000..f90824fd0
--- /dev/null
+++ b/src/sdk/installerbase.exe.manifest
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
+ manifestVersion="1.0">
+ <!-- Make sure Vista UAC does not believe installerbase is an installer -->
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel
+ level="asInvoker"
+ uiAccess="false"/>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly>
diff --git a/src/sdk/installerbase.ico b/src/sdk/installerbase.ico
new file mode 100644
index 000000000..79bd163de
--- /dev/null
+++ b/src/sdk/installerbase.ico
Binary files differ
diff --git a/src/sdk/installerbase.qrc b/src/sdk/installerbase.qrc
new file mode 100644
index 000000000..61889717d
--- /dev/null
+++ b/src/sdk/installerbase.qrc
@@ -0,0 +1,7 @@
+<RCC>
+ <qresource prefix="/">
+ <file>translations/de_de.qm</file>
+ <file>translations/qt_de.qm</file>
+ <file>translations/en_us.qm</file>
+ </qresource>
+</RCC>
diff --git a/src/sdk/installerbase.rc b/src/sdk/installerbase.rc
new file mode 100644
index 000000000..c423d3360
--- /dev/null
+++ b/src/sdk/installerbase.rc
@@ -0,0 +1,7 @@
+IDI_ICON1 ICON DISCARDABLE
+"installerbase.ico"
+
+#define RT_MANIFEST 24
+#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
+
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "installerbase.exe.manifest"
diff --git a/src/sdk/installerbase_p.cpp b/src/sdk/installerbase_p.cpp
new file mode 100644
index 000000000..611e491bf
--- /dev/null
+++ b/src/sdk/installerbase_p.cpp
@@ -0,0 +1,428 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2011-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+#include "installerbase_p.h"
+
+#include <binaryformat.h>
+#include <errors.h>
+#include <fileutils.h>
+#include <lib7z_facade.h>
+#include <qprocesswrapper.h>
+#include <utils.h>
+
+#include <kdsavefile.h>
+#include <kdupdaterfiledownloader.h>
+#include <kdupdaterfiledownloaderfactory.h>
+
+#include <QtCore/QDir>
+#include <QtCore/QDebug>
+#include <QtCore/QTemporaryFile>
+#include <QtCore/QUrl>
+
+#include <QtGui/QMessageBox>
+
+#include <fstream>
+#include <iomanip>
+#include <iostream>
+
+#ifdef Q_OS_WIN
+# include <wincon.h>
+
+# ifndef ENABLE_INSERT_MODE
+# define ENABLE_INSERT_MODE 0x0020
+# endif
+
+# ifndef ENABLE_QUICK_EDIT_MODE
+# define ENABLE_QUICK_EDIT_MODE 0x0040
+# endif
+
+# ifndef ENABLE_EXTENDED_FLAGS
+# define ENABLE_EXTENDED_FLAGS 0x0080
+# endif
+#endif
+
+using namespace KDUpdater;
+using namespace QInstaller;
+using namespace QInstallerCreator;
+
+
+// -- MyCoreApplication
+
+MyCoreApplication::MyCoreApplication(int &argc, char **argv)
+ : QCoreApplication(argc, argv)
+{
+}
+
+// re-implemented from QCoreApplication so we can throw exceptions in scripts and slots
+bool MyCoreApplication::notify(QObject *receiver, QEvent *event)
+{
+ try {
+ return QCoreApplication::notify(receiver, event);
+ } catch(std::exception &e) {
+ qFatal("Exception thrown: %s", e.what());
+ }
+ return false;
+}
+
+
+// -- MyApplicationConsole
+
+class MyApplicationConsole
+{
+public:
+ MyApplicationConsole()
+ {
+#ifdef Q_OS_WIN
+ AllocConsole();
+
+ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
+ if (handle != INVALID_HANDLE_VALUE) {
+ COORD largestConsoleWindowSize = GetLargestConsoleWindowSize(handle);
+ largestConsoleWindowSize.X -= 3;
+ largestConsoleWindowSize.Y = 5000;
+ SetConsoleScreenBufferSize(handle, largestConsoleWindowSize);
+ }
+
+ handle = GetStdHandle(STD_INPUT_HANDLE);
+ if (handle != INVALID_HANDLE_VALUE)
+ SetConsoleMode(handle, ENABLE_INSERT_MODE | ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS);
+
+ m_oldCin = std::cin.rdbuf();
+ m_newCin.open("CONIN$");
+ std::cin.rdbuf(m_newCin.rdbuf());
+
+ m_oldCout = std::cout.rdbuf();
+ m_newCout.open("CONOUT$");
+ std::cout.rdbuf(m_newCout.rdbuf());
+
+ m_oldCerr = std::cerr.rdbuf();
+ m_newCerr.open("CONOUT$");
+ std::cerr.rdbuf(m_newCerr.rdbuf());
+#endif
+ }
+ ~MyApplicationConsole()
+ {
+#ifdef Q_OS_WIN
+ system("PAUSE");
+
+ std::cin.rdbuf(m_oldCin);
+ std::cerr.rdbuf(m_oldCerr);
+ std::cout.rdbuf(m_oldCout);
+
+ FreeConsole();
+#endif
+ }
+
+private:
+ std::ifstream m_newCin;
+ std::ofstream m_newCout;
+ std::ofstream m_newCerr;
+
+ std::streambuf* m_oldCin;
+ std::streambuf* m_oldCout;
+ std::streambuf* m_oldCerr;
+};
+
+
+// -- MyApplication
+
+MyApplication::MyApplication(int &argc, char **argv)
+ : QApplication(argc, argv)
+ , m_console(0)
+{
+}
+
+MyApplication::~MyApplication()
+{
+ delete m_console;
+}
+
+void MyApplication::setVerbose()
+{
+ if (!m_console)
+ m_console = new MyApplicationConsole;
+}
+
+// re-implemented from QApplication so we can throw exceptions in scripts and slots
+bool MyApplication::notify(QObject *receiver, QEvent *event)
+{
+ try {
+ return QApplication::notify(receiver, event);
+ } catch(std::exception &e) {
+ qFatal("Exception thrown: %s", e.what());
+ }
+ return false;
+}
+
+
+// -- InstallerBase
+
+InstallerBase::InstallerBase(QObject *parent)
+ : QObject(parent)
+ , m_downloadFinished(false)
+{
+}
+
+InstallerBase::~InstallerBase()
+{
+}
+
+static bool supportedScheme(const QString &scheme)
+{
+ if (scheme == QLatin1String("http") || scheme == QLatin1String("ftp") || scheme == QLatin1String("file"))
+ return true;
+ return false;
+}
+
+int InstallerBase::replaceMaintenanceToolBinary(QStringList arguments)
+{
+ QInstaller::setVerbose(arguments.contains(QLatin1String("--verbose"))
+ || arguments.contains(QLatin1String("-v")));
+
+ arguments.removeAll(QLatin1String("--verbose"));
+ arguments.removeAll(QLatin1String("-v"));
+ arguments.removeAll(QLatin1String("--update-installerbase"));
+
+ QUrl url = arguments.value(1);
+ if (!supportedScheme(url.scheme()) && QFileInfo(url.toString()).exists())
+ url = QLatin1String("file:///") + url.toString();
+ m_downloader.reset(FileDownloaderFactory::instance().create(url.scheme(), 0));
+ if (m_downloader.isNull()) {
+ qDebug() << QString::fromLatin1("Scheme not supported: %1 (%2)").arg(url.scheme(), url.toString());
+ return EXIT_FAILURE;
+ }
+ m_downloader->setUrl(url);
+ m_downloader->setAutoRemoveDownloadedFile(true);
+
+ QString target = QDir::tempPath() + QLatin1String("/") + QFileInfo(arguments.at(1)).fileName();
+ if (supportedScheme(url.scheme()))
+ m_downloader->setDownloadedFileName(target);
+
+ connect(m_downloader.data(), SIGNAL(downloadStarted()), this, SLOT(downloadStarted()));
+ connect(m_downloader.data(), SIGNAL(downloadCanceled()), this, SLOT(downloadFinished()));
+ connect(m_downloader.data(), SIGNAL(downloadCompleted()), this, SLOT(downloadFinished()));
+ connect(m_downloader.data(), SIGNAL(downloadAborted(QString)), this, SLOT(downloadAborted(QString)));
+
+ m_downloader->download();
+
+ while (true) {
+ QCoreApplication::processEvents();
+ if (m_downloadFinished)
+ break;
+ }
+
+ if (!m_downloader->isDownloaded()) {
+ qDebug() << QString::fromLatin1("Could not download file %1: . Error: %2.").arg(
+ m_downloader->url().toString(), m_downloader->errorString());
+ return EXIT_FAILURE;
+ }
+
+ if (Lib7z::isSupportedArchive(target)) {
+ QFile archive(target);
+ if (archive.open(QIODevice::ReadOnly)) {
+ try {
+ Lib7z::extractArchive(&archive, QDir::tempPath());
+ if (!archive.remove()) {
+ qDebug() << QString::fromLatin1("Could not delete file %1: %2.").arg(
+ target, archive.errorString());
+ }
+ } catch (const Lib7z::SevenZipException& e) {
+ qDebug() << QString::fromLatin1("Error while extracting %1: %2.").arg(target, e.message());
+ return EXIT_FAILURE;
+ } catch (...) {
+ qDebug() << QString::fromLatin1("Unknown exception caught while extracting %1.").arg(target);
+ return EXIT_FAILURE;
+ }
+ } else {
+ qDebug() << QString::fromLatin1("Could not open %1 for reading: %2.").arg(
+ target, archive.errorString());
+ return EXIT_FAILURE;
+ }
+#ifndef Q_OS_WIN
+ target = QDir::tempPath() + QLatin1String("/.tempSDKMaintenanceTool");
+#else
+ target = QDir::tempPath() + QLatin1String("/temp/SDKMaintenanceToolBase.exe");
+#endif
+ }
+
+ try {
+ QFile installerBase(target);
+ QInstaller::openForRead(&installerBase, installerBase.fileName());
+ writeMaintenanceBinary(arguments.value(0), &installerBase, installerBase.size());
+ deferredRename(arguments.value(0) + QLatin1String(".new"), arguments.value(0));
+ } catch (const QInstaller::Error &error) {
+ qDebug() << error.message();
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}
+
+/* static*/
+void InstallerBase::showUsage()
+{
+ MyApplicationConsole c;
+ std::cout << "Usage: SDKMaintenanceTool [OPTIONS]" << std::endl << std::endl;
+
+ std::cout << "User:"<<std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --help" << std::setw(40)
+ << "Show commandline usage" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --version" << std::setw(40)
+ << "Show current version" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --checkupdates" << std::setw(40)
+ << "Check for updates and return an XML file of the available updates" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --proxy" << std::setw(40)
+ << "Set system proxy on Win and Mac. This option has no effect on Linux." << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --verbose" << std::setw(40)
+ << "Show debug output on the console" << std::endl;
+
+ std::cout << "\nDeveloper:"<< std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left)
+ << " --runoperation [operationName] [arguments...]" << std::setw(40)
+ << "Perform an operation with a list of arguments" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left)
+ << " --undooperation [operationName] [arguments...]" << std::setw(40)
+ << "Undo an operation with a list of arguments" <<std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left)
+ << " --script [scriptName]" << std::setw(40) << "Execute a script" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --no-force-installations"
+ << std::setw(40) << "Enable deselection of forced components" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --addRepository [URI]"
+ << std::setw(40) << "Add a local or remote repo to the list of user defined repos." << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --addTempRepository [URI]"
+ << std::setw(40) << "Add a local or remote repo to the list of temporary available repos."
+ << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --setTempRepository [URI]"
+ << std::setw(40) << "Set a local or remote repo as tmp repo, it is the only one used during fetch."
+ << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " " << std::setw(40) << "Note: URI "
+ "must be prefixed with the protocol, i.e. file:/// , http:// or ftp://" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --show-virtual-components"
+ << std::setw(40) << "Show virtual components in package manager and updater" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left)
+ << " --update-installerbase [path/to/new/installerbase]" << std::setw(40)
+ << "Patch a full installer with a new installer base" << std::endl;
+}
+
+/* static*/
+void InstallerBase::showVersion(const QString &version)
+{
+ MyApplicationConsole c;
+ std::cout << qPrintable(version) << std::endl;
+}
+
+
+// -- private slots
+
+void InstallerBase::downloadStarted()
+{
+ m_downloadFinished = false;
+ qDebug() << QString::fromLatin1("Download started! Source: %1, Target: %2").arg(
+ m_downloader->url().toString(), m_downloader->downloadedFileName());
+}
+
+void InstallerBase::downloadFinished()
+{
+ m_downloadFinished = true;
+ qDebug() << QString::fromLatin1("Download finished! Source: %1, Target: %2").arg(
+ m_downloader->url().toString(), m_downloader->downloadedFileName());
+}
+
+void InstallerBase::downloadProgress(double progress)
+{
+ qDebug() << "Progress: " << progress;
+}
+
+void InstallerBase::downloadAborted(const QString &error)
+{
+ m_downloadFinished = true;
+ qDebug() << QString::fromLatin1("Download aborted! Source: %1, Target: %2, Error: %3").arg(
+ m_downloader->url().toString(), m_downloader->downloadedFileName(), error);
+}
+
+
+// -- private
+
+void InstallerBase::deferredRename(const QString &oldName, const QString &newName)
+{
+#ifdef Q_OS_WIN
+ QTemporaryFile vbScript(QDir::temp().absoluteFilePath(QLatin1String("deferredrenameXXXXXX.vbs")));
+ {
+ openForWrite(&vbScript, vbScript.fileName());
+ vbScript.setAutoRemove(false);
+
+ QTextStream batch(&vbScript);
+ batch << "Set fso = WScript.CreateObject(\"Scripting.FileSystemObject\")\n";
+ batch << "Set tmp = WScript.CreateObject(\"WScript.Shell\")\n";
+ batch << QString::fromLatin1("file = \"%1\"\n").arg(QDir::toNativeSeparators(newName));
+ batch << QString::fromLatin1("backup = \"%1.bak\"\n").arg(QDir::toNativeSeparators(newName));
+ batch << "on error resume next\n";
+
+ batch << "while fso.FileExists(file)\n";
+ batch << " fso.MoveFile file, backup\n";
+ batch << " WScript.Sleep(1000)\n";
+ batch << "wend\n";
+ batch << QString::fromLatin1("fso.MoveFile \"%1\", file\n").arg(QDir::toNativeSeparators(oldName));
+ batch << "fso.DeleteFile(WScript.ScriptFullName)\n";
+ }
+
+ QProcessWrapper::startDetached(QLatin1String("cscript"), QStringList() << QLatin1String("//Nologo")
+ << QDir::toNativeSeparators(vbScript.fileName()));
+#else
+ QFile::rename(newName, newName + QLatin1String(".bak"));
+ QFile::rename(oldName, newName);
+#endif
+}
+
+void InstallerBase::writeMaintenanceBinary(const QString &target, QFile *const source, qint64 size)
+{
+ KDSaveFile out(target + QLatin1String(".new"));
+ QInstaller::openForWrite(&out, out.fileName()); // throws an exception in case of error
+
+ if (!source->seek(0)) {
+ throw QInstaller::Error(QObject::tr("Failed to seek in file %1. Reason: %2.").arg(source->fileName(),
+ source->errorString()));
+ }
+
+ QInstaller::appendData(&out, source, size);
+ QInstaller::appendInt64(&out, 0); // resource count
+ QInstaller::appendInt64(&out, 4 * sizeof(qint64)); // data block size
+ QInstaller::appendInt64(&out, QInstaller::MagicUninstallerMarker);
+ QInstaller::appendInt64(&out, QInstaller::MagicCookie);
+
+ out.setPermissions(out.permissions() | QFile::WriteUser | QFile::ReadGroup | QFile::ReadOther
+ | QFile::ExeOther | QFile::ExeGroup | QFile::ExeUser);
+
+ if (!out.commit(KDSaveFile::OverwriteExistingFile)) {
+ throw QInstaller::Error(QString::fromLatin1("Could not write new maintenance-tool to %1. Reason: %2.")
+ .arg(out.fileName(), out.errorString()));
+ }
+}
diff --git a/src/sdk/installerbase_p.h b/src/sdk/installerbase_p.h
new file mode 100644
index 000000000..5071d6c05
--- /dev/null
+++ b/src/sdk/installerbase_p.h
@@ -0,0 +1,101 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2011-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+
+#include <QtCore/QThread>
+#include <QtGui/QApplication>
+
+namespace KDUpdater {
+ class FileDownloader;
+}
+
+QT_BEGIN_NAMESPACE
+class QFile;
+QT_END_NAMESPACE
+
+class MyApplicationConsole;
+
+class Sleep : public QThread
+{
+public:
+ static void sleep(unsigned long ms)
+ {
+ QThread::usleep(ms);
+ }
+};
+
+class InstallerBase : public QObject
+{
+ Q_OBJECT
+
+public:
+ InstallerBase(QObject *parent = 0);
+ ~InstallerBase();
+
+ int replaceMaintenanceToolBinary(QStringList arguments);
+
+ static void showUsage();
+ static void showVersion(const QString &version);
+
+private slots:
+ void downloadStarted();
+ void downloadFinished();
+ void downloadProgress(double progress);
+ void downloadAborted(const QString &error);
+
+private:
+ void deferredRename(const QString &source, const QString &target);
+ void writeMaintenanceBinary(const QString &target, QFile *source, qint64 size);
+
+private:
+ volatile bool m_downloadFinished;
+ QScopedPointer<KDUpdater::FileDownloader> m_downloader;
+};
+
+class MyCoreApplication : public QCoreApplication
+{
+public:
+ MyCoreApplication(int &argc, char **argv);
+ virtual bool notify(QObject *receiver, QEvent *event);
+};
+
+class MyApplication : public QApplication
+{
+public:
+ MyApplication(int &argc, char **argv);
+ ~MyApplication();
+
+ void setVerbose();
+ virtual bool notify(QObject *receiver, QEvent *event);
+
+private:
+ MyApplicationConsole *m_console;
+};
diff --git a/src/sdk/installerbasecommons.cpp b/src/sdk/installerbasecommons.cpp
new file mode 100644
index 000000000..5c22d9926
--- /dev/null
+++ b/src/sdk/installerbasecommons.cpp
@@ -0,0 +1,549 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2010-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+#include "installerbasecommons.h"
+
+#include <component.h>
+#include <messageboxhandler.h>
+#include <packagemanagercore.h>
+#include <settings.h>
+
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
+#include <QtCore/QTimer>
+
+#include <QtGui/QLabel>
+#include <QtGui/QProgressBar>
+#include <QtGui/QRadioButton>
+#include <QtGui/QStackedWidget>
+#include <QtGui/QVBoxLayout>
+
+using namespace QInstaller;
+
+
+// -- IntroductionPageImpl
+
+IntroductionPageImpl::IntroductionPageImpl(QInstaller::PackageManagerCore *core)
+ : QInstaller::IntroductionPage(core)
+ , m_updatesFetched(false)
+ , m_allPackagesFetched(false)
+{
+ QWidget *widget = new QWidget(this);
+ QVBoxLayout *layout = new QVBoxLayout(widget);
+
+ m_packageManager = new QRadioButton(tr("Package manager"), this);
+ layout->addWidget(m_packageManager);
+ m_packageManager->setChecked(core->isPackageManager());
+ connect(m_packageManager, SIGNAL(toggled(bool)), this, SLOT(setPackageManager(bool)));
+
+ m_updateComponents = new QRadioButton(tr("Update components"), this);
+ layout->addWidget(m_updateComponents);
+ m_updateComponents->setChecked(core->isUpdater());
+ connect(m_updateComponents, SIGNAL(toggled(bool)), this, SLOT(setUpdater(bool)));
+
+ m_removeAllComponents = new QRadioButton(tr("Remove all components"), this);
+ layout->addWidget(m_removeAllComponents);
+ m_removeAllComponents->setChecked(core->isUninstaller());
+ connect(m_removeAllComponents, SIGNAL(toggled(bool)), this, SLOT(setUninstaller(bool)));
+ connect(m_removeAllComponents, SIGNAL(toggled(bool)), core, SLOT(setCompleteUninstallation(bool)));
+
+ layout->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding));
+
+ m_label = new QLabel(this);
+ m_label->setWordWrap(true);
+ m_label->setText(tr("Retrieving information from remote installation sources..."));
+ layout->addWidget(m_label);
+
+ m_progressBar = new QProgressBar(this);
+ m_progressBar->setRange(0, 0);
+ layout->addWidget(m_progressBar);
+
+ layout->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding));
+
+ m_errorLabel = new QLabel(this);
+ m_errorLabel->setWordWrap(true);
+ layout->addWidget(m_errorLabel);
+
+ widget->setLayout(layout);
+ setWidget(widget);
+
+ core->setCompleteUninstallation(core->isUninstaller());
+
+ connect(core, SIGNAL(metaJobInfoMessage(QString)), this, SLOT(setMessage(QString)));
+ connect(core, SIGNAL(coreNetworkSettingsChanged()), this, SLOT(onCoreNetworkSettingsChanged()));
+}
+
+int IntroductionPageImpl::nextId() const
+{
+ if (packageManagerCore()->isUninstaller())
+ return PackageManagerCore::ReadyForInstallation;
+
+ if (packageManagerCore()->isUpdater() || packageManagerCore()->isPackageManager())
+ return PackageManagerCore::ComponentSelection;
+
+ return QInstaller::IntroductionPage::nextId();
+}
+
+bool IntroductionPageImpl::validatePage()
+{
+ PackageManagerCore *core = packageManagerCore();
+ if (core->isUninstaller())
+ return true;
+
+ setComplete(false);
+ gui()->setSettingsButtonEnabled(false);
+
+ const bool maintanence = core->isUpdater() || core->isPackageManager();
+ if (maintanence) {
+ showAll();
+ setMaintenanceToolsEnabled(false);
+ } else {
+ showMetaInfoUdate();
+ }
+
+ // fetch updater packages
+ if (core->isUpdater()) {
+ if (!m_updatesFetched) {
+ m_updatesFetched = core->fetchRemotePackagesTree();
+ if (!m_updatesFetched)
+ setErrorMessage(core->error());
+ }
+
+ callControlScript(QLatin1String("UpdaterSelectedCallback"));
+
+ if (m_updatesFetched) {
+ if (core->updaterComponents().count() <= 0)
+ setErrorMessage(QLatin1String("<b>") + tr("No updates available.") + QLatin1String("</b>"));
+ else
+ setComplete(true);
+ }
+ }
+
+ // fetch common packages
+ if (core->isInstaller() || core->isPackageManager()) {
+ bool localPackagesTreeFetched = false;
+ if (!m_allPackagesFetched) {
+ // first try to fetch the server side packages tree
+ m_allPackagesFetched = core->fetchRemotePackagesTree();
+ if (!m_allPackagesFetched) {
+ QString error = core->error();
+ if (core->isPackageManager()) {
+ // if that fails and we're in maintenance mode, try to fetch local installed tree
+ localPackagesTreeFetched = core->fetchLocalPackagesTree();
+ if (localPackagesTreeFetched) {
+ // if that succeeded, adjust error message
+ error = QLatin1String("<font color=\"red\">") + error + tr(" Only local package "
+ "management available.") + QLatin1String("</font>");
+ }
+ }
+ setErrorMessage(error);
+ }
+ }
+
+ callControlScript(QLatin1String("PackageManagerSelectedCallback"));
+
+ if (m_allPackagesFetched | localPackagesTreeFetched)
+ setComplete(true);
+ }
+
+ if (maintanence) {
+ showMaintenanceTools();
+ setMaintenanceToolsEnabled(true);
+ } else {
+ hideAll();
+ }
+ gui()->setSettingsButtonEnabled(true);
+
+ return isComplete();
+}
+
+void IntroductionPageImpl::showAll()
+{
+ showWidgets(true);
+}
+
+void IntroductionPageImpl::hideAll()
+{
+ showWidgets(false);
+}
+
+void IntroductionPageImpl::showMetaInfoUdate()
+{
+ showWidgets(false);
+ m_label->setVisible(true);
+ m_progressBar->setVisible(true);
+}
+
+void IntroductionPageImpl::showMaintenanceTools()
+{
+ showWidgets(true);
+ m_label->setVisible(false);
+ m_progressBar->setVisible(false);
+}
+
+void IntroductionPageImpl::setMaintenanceToolsEnabled(bool enable)
+{
+ m_packageManager->setEnabled(enable);
+ m_updateComponents->setEnabled(enable);
+ m_removeAllComponents->setEnabled(enable);
+}
+
+// -- public slots
+
+void IntroductionPageImpl::setMessage(const QString &msg)
+{
+ m_label->setText(msg);
+}
+
+void IntroductionPageImpl::setErrorMessage(const QString &error)
+{
+ QPalette palette;
+ const PackageManagerCore::Status s = packageManagerCore()->status();
+ if (s == PackageManagerCore::Failure || s == PackageManagerCore::Failure) {
+ palette.setColor(QPalette::WindowText, Qt::red);
+ } else {
+ palette.setColor(QPalette::WindowText, palette.color(QPalette::WindowText));
+ }
+
+ m_errorLabel->setText(error);
+ m_errorLabel->setPalette(palette);
+}
+
+void IntroductionPageImpl::callControlScript(const QString &callback)
+{
+ // Initialize the gui. Needs to be done after check repositories as only then the ui can handle
+ // hide of pages depending on the components.
+ gui()->init();
+ gui()->callControlScriptMethod(callback);
+}
+
+// -- private slots
+
+void IntroductionPageImpl::setUpdater(bool value)
+{
+ if (value) {
+ entering();
+ gui()->showSettingsButton(true);
+ packageManagerCore()->setUpdater();
+ emit packageManagerCoreTypeChanged();
+ }
+}
+
+void IntroductionPageImpl::setUninstaller(bool value)
+{
+ if (value) {
+ entering();
+ gui()->showSettingsButton(false);
+ packageManagerCore()->setUninstaller();
+ emit packageManagerCoreTypeChanged();
+ }
+}
+
+void IntroductionPageImpl::setPackageManager(bool value)
+{
+ if (value) {
+ entering();
+ gui()->showSettingsButton(true);
+ packageManagerCore()->setPackageManager();
+ emit packageManagerCoreTypeChanged();
+ }
+}
+
+void IntroductionPageImpl::onCoreNetworkSettingsChanged()
+{
+ // force a repaint of the ui as after the settings dialog has been closed and the wizard has been
+ // restarted, the "Next" button looks still disabled. TODO: figure out why this happens at all!
+ gui()->repaint();
+
+ m_updatesFetched = false;
+ m_allPackagesFetched = false;
+}
+
+// -- private
+
+void IntroductionPageImpl::entering()
+{
+ setComplete(true);
+ showWidgets(false);
+ setMessage(QString());
+ setErrorMessage(QString());
+ setButtonText(QWizard::CancelButton, tr("Quit"));
+
+ PackageManagerCore *core = packageManagerCore();
+ if (core->isUninstaller() ||core->isUpdater() || core->isPackageManager()) {
+ showMaintenanceTools();
+ setMaintenanceToolsEnabled(true);
+ }
+}
+
+void IntroductionPageImpl::leaving()
+{
+ // TODO: force repaint on next page, keeps unpainted after fetch
+ QTimer::singleShot(100, gui()->page(nextId()), SLOT(repaint()));
+ setButtonText(QWizard::CancelButton, gui()->defaultButtonText(QWizard::CancelButton));
+}
+
+void IntroductionPageImpl::showWidgets(bool show)
+{
+ m_label->setVisible(show);
+ m_progressBar->setVisible(show);
+ m_packageManager->setVisible(show);
+ m_updateComponents->setVisible(show);
+ m_removeAllComponents->setVisible(show);
+}
+
+
+// -- TargetDirectoryPageImpl
+
+/*!
+ A custom target directory selection based due to the no-space restriction...
+*/
+TargetDirectoryPageImpl::TargetDirectoryPageImpl(PackageManagerCore *core)
+ : TargetDirectoryPage(core)
+{
+ QPalette palette;
+ palette.setColor(QPalette::WindowText, Qt::red);
+
+ m_warningLabel = new QLabel(this);
+ m_warningLabel->setPalette(palette);
+
+ insertWidget(m_warningLabel, QLatin1String("MessageLabel"), 2);
+}
+
+QString TargetDirectoryPageImpl::targetDirWarning() const
+{
+ if (targetDir().isEmpty()) {
+ return TargetDirectoryPageImpl::tr("The installation path cannot be empty, please specify a valid "
+ "folder.");
+ }
+
+ if (QDir(targetDir()).isRelative()) {
+ return TargetDirectoryPageImpl::tr("The installation path cannot be relative, please specify an "
+ "absolute path.");
+ }
+
+ QString dir = targetDir();
+#ifdef Q_OS_WIN
+ // remove e.g. "c:"
+ dir = dir.mid(2);
+#endif
+ // check if there are not allowed characters in the target path
+ if (dir.contains(QRegExp(QLatin1String("[!@#$%^&*: ,;]")))) {
+ return TargetDirectoryPageImpl::tr("The installation path must not contain !@#$%^&*:,; or spaces, "
+ "please specify a valid folder.");
+ }
+
+ return QString();
+}
+
+bool TargetDirectoryPageImpl::isComplete() const
+{
+ m_warningLabel->setText(targetDirWarning());
+ return m_warningLabel->text().isEmpty();
+}
+
+bool TargetDirectoryPageImpl::askQuestion(const QString &identifier, const QString &message)
+{
+ QMessageBox::StandardButton bt =
+ MessageBoxHandler::warning(MessageBoxHandler::currentBestSuitParent(), identifier,
+ TargetDirectoryPageImpl::tr("Warning"), message, QMessageBox::Yes | QMessageBox::No);
+ QTimer::singleShot(100, wizard()->page(nextId()), SLOT(repaint()));
+
+ return bt == QMessageBox::Yes;
+}
+
+bool TargetDirectoryPageImpl::failWithError(const QString &identifier, const QString &message)
+{
+ MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), identifier,
+ TargetDirectoryPageImpl::tr("Error"), message);
+ QTimer::singleShot(100, wizard()->page(nextId()), SLOT(repaint()));
+
+ return false;
+}
+
+bool TargetDirectoryPageImpl::validatePage()
+{
+ if (!isVisible())
+ return true;
+
+ const QString remove = packageManagerCore()->value(QLatin1String("RemoveTargetDir"));
+ if (!QVariant(remove).toBool())
+ return true;
+
+ const QString targetDir = this->targetDir();
+ if (!packageManagerCore()->settings().allowNoneAsciiCharacters()) {
+ for (int i = 0; i < targetDir.length(); ++i) {
+ if (targetDir.at(i).unicode() & 0xff80) {
+ return failWithError(QLatin1String("NonAsciiTarget"), tr("The path or installation directory "
+ "contains non ASCII characters. This is currently not supported! Please choose a different "
+ "path or installation directory."));
+ }
+ }
+ }
+
+ const QDir dir(targetDir);
+ // the directory exists and is empty...
+ if (dir.exists() && dir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot).isEmpty())
+ return true;
+
+ const QFileInfo fi(targetDir);
+ if (fi.isDir()) {
+ if (dir == QDir::root() || dir == QDir::home()) {
+ return failWithError(QLatin1String("ForbiddenTargetDirectory"), tr("As the install directory "
+ "is completely deleted installing in %1 is forbidden.").arg(QDir::rootPath()));
+ }
+
+ QString fileName = packageManagerCore()->settings().uninstallerName();
+#if defined(Q_WS_MAC)
+ if (QFileInfo(QCoreApplication::applicationDirPath() + QLatin1String("/../..")).isBundle())
+ fileName += QLatin1String(".app/Contents/MacOS/") + fileName;
+#elif defined(Q_OS_WIN)
+ fileName += QLatin1String(".exe");
+#endif
+
+ QFileInfo fi2(targetDir + QDir::separator() + fileName);
+ if (fi2.exists()) {
+ return askQuestion(QLatin1String("OverwriteTargetDirectory"),
+ TargetDirectoryPageImpl::tr("The folder you selected exists already and contains an "
+ "installation.\nDo you want to overwrite it?"));
+ }
+
+ return askQuestion(QLatin1String("OverwriteTargetDirectory"),
+ tr("You have selected an existing, non-empty folder for installation.\nNote that it will be "
+ "completely wiped on uninstallation of this application.\nIt is not advisable to install into "
+ "this folder as installation might fail.\nDo you want to continue?"));
+ } else if (fi.isFile() || fi.isSymLink()) {
+ return failWithError(QLatin1String("WrongTargetDirectory"), tr("You have selected an existing file "
+ "or symlink, please choose a different target for installation."));
+ }
+ return true;
+}
+
+
+// -- InstallerGui
+
+InstallerGui::InstallerGui(PackageManagerCore *core)
+ : PackageManagerGui(core, 0)
+{
+ setPage(PackageManagerCore::Introduction, new IntroductionPageImpl(core));
+ setPage(PackageManagerCore::TargetDirectory, new TargetDirectoryPageImpl(core));
+ setPage(PackageManagerCore::ComponentSelection, new ComponentSelectionPage(core));
+ setPage(PackageManagerCore::LicenseCheck, new LicenseAgreementPage(core));
+#ifdef Q_OS_WIN
+ setPage(PackageManagerCore::StartMenuSelection, new StartMenuDirectoryPage(core));
+#endif
+ setPage(PackageManagerCore::ReadyForInstallation, new ReadyForInstallationPage(core));
+ setPage(PackageManagerCore::PerformInstallation, new PerformInstallationPage(core));
+ setPage(PackageManagerCore::InstallationFinished, new FinishedPage(core));
+
+ bool ok = false;
+ const int startPage = core->value(QLatin1String("GuiStartPage")).toInt(&ok);
+ if(ok)
+ setStartId(startPage);
+}
+
+void InstallerGui::init()
+{
+}
+
+int InstallerGui::nextId() const
+{
+ const int next = QWizard::nextId();
+ if (next == PackageManagerCore::LicenseCheck) {
+ PackageManagerCore *const core = packageManagerCore();
+ const int nextNextId = pageIds().value(pageIds().indexOf(next)+ 1, -1);
+ if (!core->isInstaller())
+ return nextNextId;
+
+ core->calculateComponentsToInstall();
+ foreach (Component* component, core->orderedComponentsToInstall()) {
+ if (!component->licenses().isEmpty())
+ return next;
+ }
+ return nextNextId;
+ }
+ return next;
+}
+
+
+// -- MaintenanceGui
+
+MaintenanceGui::MaintenanceGui(PackageManagerCore *core)
+ : PackageManagerGui(core, 0)
+{
+ IntroductionPageImpl *intro = new IntroductionPageImpl(core);
+ connect(intro, SIGNAL(packageManagerCoreTypeChanged()), this, SLOT(updateRestartPage()));
+
+ setPage(PackageManagerCore::Introduction, intro);
+ setPage(PackageManagerCore::ComponentSelection, new ComponentSelectionPage(core));
+ setPage(PackageManagerCore::LicenseCheck, new LicenseAgreementPage(core));
+ setPage(PackageManagerCore::ReadyForInstallation, new ReadyForInstallationPage(core));
+ setPage(PackageManagerCore::PerformInstallation, new PerformInstallationPage(core));
+ setPage(PackageManagerCore::InstallationFinished, new FinishedPage(core));
+
+ RestartPage *p = new RestartPage(core);
+ connect(p, SIGNAL(restart()), this, SIGNAL(gotRestarted()));
+ setPage(PackageManagerCore::InstallationFinished + 1, p);
+
+ if (core->isUninstaller())
+ wizardPageVisibilityChangeRequested(false, PackageManagerCore::InstallationFinished + 1);
+}
+
+void MaintenanceGui::init()
+{
+}
+
+int MaintenanceGui::nextId() const
+{
+ const int next = QWizard::nextId();
+ if (next == PackageManagerCore::LicenseCheck) {
+ PackageManagerCore *const core = packageManagerCore();
+ const int nextNextId = pageIds().value(pageIds().indexOf(next)+ 1, -1);
+ if (!core->isPackageManager() && !core->isUpdater())
+ return nextNextId;
+
+ core->calculateComponentsToInstall();
+ foreach (Component* component, core->orderedComponentsToInstall()) {
+ if (component->isInstalled())
+ continue;
+ if (!component->licenses().isEmpty())
+ return next;
+ }
+ return nextNextId;
+ }
+ return next;
+}
+
+void MaintenanceGui::updateRestartPage()
+{
+ wizardPageVisibilityChangeRequested((packageManagerCore()->isUninstaller() ? false : true),
+ PackageManagerCore::InstallationFinished + 1);
+}
diff --git a/src/sdk/installerbasecommons.h b/src/sdk/installerbasecommons.h
new file mode 100644
index 000000000..f0f0c3d95
--- /dev/null
+++ b/src/sdk/installerbasecommons.h
@@ -0,0 +1,147 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2010-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+
+#ifndef INSTALLERBASECOMMONS_H
+#define INSTALLERBASECOMMONS_H
+
+#include <packagemanagergui.h>
+
+QT_BEGIN_NAMESPACE
+class QLabel;
+class QString;
+class QProgressBar;
+QT_END_NAMESPACE
+
+
+// -- IntroductionPageImpl
+
+class IntroductionPageImpl : public QInstaller::IntroductionPage
+{
+ Q_OBJECT
+
+public:
+ explicit IntroductionPageImpl(QInstaller::PackageManagerCore *core);
+
+ int nextId() const;
+ bool validatePage();
+
+ void showAll();
+ void hideAll();
+ void showMetaInfoUdate();
+ void showMaintenanceTools();
+ void setMaintenanceToolsEnabled(bool enable);
+
+public Q_SLOTS:
+ void onCoreNetworkSettingsChanged();
+ void setMessage(const QString &msg);
+ void setErrorMessage(const QString &error);
+
+Q_SIGNALS:
+ void packageManagerCoreTypeChanged();
+
+private Q_SLOTS:
+ void setUpdater(bool value);
+ void setUninstaller(bool value);
+ void setPackageManager(bool value);
+
+private:
+ void entering();
+ void leaving();
+
+ void showWidgets(bool show);
+ void callControlScript(const QString &callback);
+
+private:
+ bool m_updatesFetched;
+ bool m_updatesCompleted;
+ bool m_allPackagesFetched;
+
+ QLabel *m_label;
+ QLabel *m_errorLabel;
+ QProgressBar *m_progressBar;
+ QRadioButton *m_packageManager;
+ QRadioButton *m_updateComponents;
+ QRadioButton *m_removeAllComponents;
+};
+
+
+// --TargetDirectoryPageImpl
+
+class TargetDirectoryPageImpl : public QInstaller::TargetDirectoryPage
+{
+ Q_OBJECT
+
+public:
+ explicit TargetDirectoryPageImpl(QInstaller::PackageManagerCore *core);
+
+ QString targetDirWarning() const;
+ bool isComplete() const;
+ bool askQuestion(const QString &identifier, const QString &message);
+ bool failWithError(const QString &identifier, const QString &message);
+ bool validatePage();
+
+private:
+ QLabel *m_warningLabel;
+};
+
+
+// -- InstallerGui
+
+class InstallerGui : public QInstaller::PackageManagerGui
+{
+ Q_OBJECT
+
+public:
+ explicit InstallerGui(QInstaller::PackageManagerCore *core);
+
+ virtual void init();
+ virtual int nextId() const;
+};
+
+
+// -- MaintenanceGui
+
+class MaintenanceGui : public QInstaller::PackageManagerGui
+{
+ Q_OBJECT
+
+public:
+ explicit MaintenanceGui(QInstaller::PackageManagerCore *core);
+
+ virtual void init();
+ virtual int nextId() const;
+
+private Q_SLOTS:
+ void updateRestartPage();
+};
+
+#endif // INSTALLERBASECOMMONS_H
diff --git a/src/sdk/sdk.pro b/src/sdk/sdk.pro
new file mode 100644
index 000000000..44930f7a0
--- /dev/null
+++ b/src/sdk/sdk.pro
@@ -0,0 +1,51 @@
+TEMPLATE = app
+DEPENDPATH += . ..
+INCLUDEPATH += . ..
+TARGET = installerbase
+
+include(../../installerfw.pri)
+
+LIBS += -linstaller
+QT += network script
+
+CONFIG -= app_bundle
+DESTDIR = $$IFW_APP_PATH
+
+QM_FILES = qt_de.qm de_de.qm en_us.qm
+defineTest(testQmFiles) {
+ for(file, QM_FILES) {
+ !exists($$PWD/translations/$$file) {
+ message("File $$PWD/translations/$$file not found!")
+ return(false)
+ }
+ }
+ return(true)
+}
+
+if (testQmFiles()) {
+ RESOURCES += installerbase.qrc
+}
+
+FORMS += settingsdialog.ui
+
+HEADERS += installerbase_p.h \
+ tabcontroller.h \
+ installerbasecommons.h \
+ settingsdialog.h
+
+SOURCES = installerbase.cpp \
+ installerbase_p.cpp \
+ tabcontroller.cpp \
+ installerbasecommons.cpp \
+ settingsdialog.cpp
+
+win32:RC_FILE = installerbase.rc
+win32-msvc2005 {
+ CONFIG += embed_manifest_exe #msvc2008 is doing this automaticaly
+}
+
+embed_manifest_exe:win32-msvc2005 {
+ # The default configuration embed_manifest_exe overrides the manifest file
+ # already embedded via RC_FILE. Vs2008 already have the necessary manifest entry
+ QMAKE_POST_LINK += $$quote(mt.exe -updateresource:$$IFW_APP_PATH/$${TARGET}.exe -manifest \"$${IFW_SOURCE_TREE}\\src\\sdk\\$${TARGET}.exe.manifest\")
+}
diff --git a/src/sdk/settingsdialog.cpp b/src/sdk/settingsdialog.cpp
new file mode 100644
index 000000000..b3508e169
--- /dev/null
+++ b/src/sdk/settingsdialog.cpp
@@ -0,0 +1,535 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2011-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+
+#include "settingsdialog.h"
+#include "ui_settingsdialog.h"
+
+#include <kdupdaterfiledownloader.h>
+#include <kdupdaterfiledownloaderfactory.h>
+#include <packagemanagercore.h>
+
+#include <QtCore/QFile>
+
+#include <QtGui/QItemSelectionModel>
+#include <QtGui/QMessageBox>
+#include <QtGui/QTreeWidget>
+
+#include <QtXml/QDomDocument>
+
+
+// -- TestRepositoryJob
+
+TestRepository::TestRepository(QObject *parent)
+ : KDJob(parent)
+ , m_downloader(0)
+{
+ setTimeout(10000);
+ setAutoDelete(false);
+ setCapabilities(Cancelable);
+}
+
+TestRepository::~TestRepository()
+{
+ if (m_downloader)
+ m_downloader->deleteLater();
+}
+
+void TestRepository::setRepository(const QInstaller::Repository &repository)
+{
+ cancel();
+
+ setError(NoError);
+ setErrorString(QString());
+ m_repository = repository;
+}
+
+void TestRepository::doStart()
+{
+ if (m_downloader)
+ m_downloader->deleteLater();
+
+ const QUrl url = m_repository.url();
+ if (url.isEmpty()) {
+ emitFinishedWithError(QInstaller::InvalidUrl, tr("Empty repository URL."));
+ return;
+ }
+
+ m_downloader = KDUpdater::FileDownloaderFactory::instance().create(url.scheme(), this);
+ if (!m_downloader) {
+ emitFinishedWithError(QInstaller::InvalidUrl, tr("URL scheme not supported: %1 (%2).")
+ .arg(url.scheme(), url.toString()));
+ return;
+ }
+
+ QAuthenticator auth;
+ auth.setUser(m_repository.username());
+ auth.setPassword(m_repository.password());
+ m_downloader->setAuthenticator(auth);
+
+ connect(m_downloader, SIGNAL(downloadCompleted()), this, SLOT(downloadCompleted()));
+ connect(m_downloader, SIGNAL(downloadAborted(QString)), this, SLOT(downloadAborted(QString)),
+ Qt::QueuedConnection);
+
+ m_downloader->setAutoRemoveDownloadedFile(true);
+ m_downloader->setUrl(QUrl(url.toString() + QString::fromLatin1("/Updates.xml")));
+
+ m_downloader->download();
+}
+
+void TestRepository::doCancel()
+{
+ if (m_downloader) {
+ m_downloader->cancelDownload();
+ emitFinishedWithError(KDJob::Canceled, m_downloader->errorString());
+ }
+}
+
+void TestRepository::downloadCompleted()
+{
+ QString errorMsg;
+ int error = QInstaller::DownloadError;
+
+ if (m_downloader->isDownloaded()) {
+ QFile file(m_downloader->downloadedFileName());
+ if (file.exists() && file.open(QIODevice::ReadOnly)) {
+ QDomDocument doc;
+ QString errorMsg;
+ if (!doc.setContent(&file, &errorMsg)) {
+ error = QInstaller::InvalidUpdatesXml;
+ errorMsg = tr("Could not parse Updates.xml! Error: %1.");
+ } else {
+ error = NoError;
+ }
+ } else {
+ errorMsg = tr("Updates.xml could not be opened for reading!");
+ }
+ } else {
+ errorMsg = tr("Updates.xml could not be found on server!");
+ }
+
+ if (error > NoError)
+ emitFinishedWithError(error, errorMsg);
+ else
+ emitFinished();
+
+ m_downloader->deleteLater();
+ m_downloader = 0;
+}
+
+void TestRepository::downloadAborted(const QString &reason)
+{
+ emitFinishedWithError(QInstaller::DownloadError, reason);
+}
+
+
+// -- PasswordDelegate
+
+void PasswordDelegate::showPasswords(bool show)
+{
+ m_showPasswords = show;
+}
+
+void PasswordDelegate::disableEditing(bool disable)
+{
+ m_disabledEditor = disable;
+}
+
+QString PasswordDelegate::displayText(const QVariant &value, const QLocale &locale) const
+{
+ const QString tmp = QStyledItemDelegate::displayText(value, locale);
+ if (m_showPasswords)
+ return tmp;
+ return QString(tmp.length(), QChar(0x25CF));
+}
+
+QWidget *PasswordDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &)
+ const
+{
+ if (m_disabledEditor)
+ return 0;
+
+ QLineEdit *lineEdit = new QLineEdit(parent);
+ lineEdit->setEchoMode(m_showPasswords ? QLineEdit::Normal : QLineEdit::Password);
+ return lineEdit;
+}
+
+
+// -- RepositoryItem
+
+RepositoryItem::RepositoryItem(const QString &label)
+ : QTreeWidgetItem(QTreeWidgetItem::UserType)
+{
+ setText(0, label);
+ m_repo = QInstaller::Repository(QUrl(), true);
+}
+
+RepositoryItem::RepositoryItem(const QInstaller::Repository &repo)
+ : QTreeWidgetItem(QTreeWidgetItem::UserType)
+ , m_repo(repo)
+{
+ if (!repo.isDefault())
+ setFlags(flags() | Qt::ItemIsEditable);
+}
+
+QVariant RepositoryItem::data(int column, int role) const
+{
+ const QVariant &data = QTreeWidgetItem::data(column, role);
+
+ switch (role) {
+ case Qt::UserRole: {
+ if (column == 0)
+ return m_repo.isDefault();
+ } break;
+
+ case Qt::CheckStateRole: {
+ if (column == 1)
+ return (m_repo.isEnabled() ? Qt::Checked : Qt::Unchecked);
+ } break;
+
+ case Qt::EditRole:
+ case Qt::DisplayRole:{
+ switch (column) {
+ case 0:
+ return data.toString().isEmpty() ? QLatin1String(" ") : data;
+ case 2:
+ return m_repo.username();
+ case 3:
+ return m_repo.password();
+ case 4:
+ return m_repo.url().toString();
+ default:
+ break;
+ };
+ } break;
+
+ case Qt::ToolTipRole:
+ switch (column) {
+ case 1:
+ return SettingsDialog::tr("Check this to use repository during fetch.");
+ case 2:
+ return SettingsDialog::tr("Add the username to authenticate on the server.");
+ case 3:
+ return SettingsDialog::tr("Add the password to authenticate on the server.");
+ case 4:
+ return SettingsDialog::tr("The servers URL that contains a valid repository.");
+ default:
+ return QVariant();
+ } break;
+ break;
+ };
+
+ return data;
+}
+
+void RepositoryItem::setData(int column, int role, const QVariant &value)
+{
+ switch (role) {
+ case Qt::EditRole: {
+ switch (column) {
+ case 2:
+ m_repo.setUsername(value.toString());
+ break;
+ case 3:
+ m_repo.setPassword(value.toString());
+ break;
+ case 4:
+ m_repo.setUrl(QUrl::fromUserInput(value.toString()));
+ break;
+ default:
+ break;
+ };
+ } break;
+
+ case Qt::CheckStateRole: {
+ if (column == 1)
+ m_repo.setEnabled(Qt::CheckState(value.toInt()) == Qt::Checked);
+ } break;
+
+ default:
+ break;
+ }
+ QTreeWidgetItem::setData(column, role, value);
+}
+
+QSet<QInstaller::Repository> RepositoryItem::repositories() const
+{
+ QSet<QInstaller::Repository> set;
+ for (int i = 0; i < childCount(); ++i) {
+ if (QTreeWidgetItem *item = child(i)) {
+ if (item->type() == QTreeWidgetItem::UserType) {
+ if (RepositoryItem *repoItem = static_cast<RepositoryItem*> (item))
+ set.insert(repoItem->repository());
+ }
+ }
+ }
+ return set;
+}
+
+
+// -- SettingsDialog
+
+SettingsDialog::SettingsDialog(QInstaller::PackageManagerCore *core, QWidget *parent)
+ : QDialog(parent)
+ , m_ui(new Ui::SettingsDialog)
+ , m_core(core)
+ , m_showPasswords(false)
+{
+ m_ui->setupUi(this);
+ setupRepositoriesTreeWidget();
+
+ const QInstaller::Settings &settings = m_core->settings();
+ switch (settings.proxyType()) {
+ case QInstaller::Settings::NoProxy:
+ m_ui->m_noProxySettings->setChecked(true);
+ break;
+ case QInstaller::Settings::SystemProxy:
+ m_ui->m_systemProxySettings->setChecked(true);
+ break;
+ case QInstaller::Settings::UserDefinedProxy:
+ m_ui->m_manualProxySettings->setChecked(true);
+ break;
+ default:
+ m_ui->m_noProxySettings->setChecked(true);
+ Q_ASSERT_X(false, Q_FUNC_INFO, "Unknown proxy type given!");
+ }
+
+ const QNetworkProxy &ftpProxy = settings.ftpProxy();
+ m_ui->m_ftpProxy->setText(ftpProxy.hostName());
+ m_ui->m_ftpProxyPort->setValue(ftpProxy.port());
+ m_ui->m_ftpProxyUser->setText(ftpProxy.user());
+ m_ui->m_ftpProxyPass->setText(ftpProxy.password());
+ m_ui->m_ftpProxyNeedsAuth->setChecked(!ftpProxy.user().isEmpty() | !ftpProxy.password().isEmpty());
+
+ const QNetworkProxy &httpProxy = settings.httpProxy();
+ m_ui->m_httpProxy->setText(httpProxy.hostName());
+ m_ui->m_httpProxyPort->setValue(httpProxy.port());
+ m_ui->m_httpProxyUser->setText(httpProxy.user());
+ m_ui->m_httpProxyPass->setText(httpProxy.password());
+ m_ui->m_httpProxyNeedsAuth->setChecked(!httpProxy.user().isEmpty() | !httpProxy.password().isEmpty());
+
+ connect(m_ui->m_addRepository, SIGNAL(clicked()), this, SLOT(addRepository()));
+ connect(m_ui->m_showPasswords, SIGNAL(clicked()), this, SLOT(updatePasswords()));
+ connect(m_ui->m_removeRepository, SIGNAL(clicked()), this, SLOT(removeRepository()));
+ connect(m_ui->m_useTmpRepositories, SIGNAL(clicked(bool)), this, SLOT(useTmpRepositoriesOnly(bool)));
+ connect(m_ui->m_repositoriesView, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ this, SLOT(currentRepositoryChanged(QTreeWidgetItem*, QTreeWidgetItem*)));
+ connect(m_ui->m_testRepository, SIGNAL(clicked()), this, SLOT(testRepository()));
+
+ useTmpRepositoriesOnly(settings.hasReplacementRepos());
+ m_ui->m_useTmpRepositories->setChecked(settings.hasReplacementRepos());
+ m_ui->m_useTmpRepositories->setEnabled(settings.hasReplacementRepos());
+ m_ui->m_repositoriesView->setCurrentItem(m_rootItems.at(settings.hasReplacementRepos()));
+}
+
+void SettingsDialog::accept()
+{
+ bool settingsChanged = false;
+ QInstaller::Settings newSettings;
+ const QInstaller::Settings &settings = m_core->settings();
+
+ // set possible updated default repositories
+ newSettings.setDefaultRepositories((dynamic_cast<RepositoryItem*> (m_rootItems.at(0)))->repositories());
+ settingsChanged |= (settings.defaultRepositories() != newSettings.defaultRepositories());
+
+ // set possible new temporary repositories
+ newSettings.setTemporaryRepositories((dynamic_cast<RepositoryItem*> (m_rootItems.at(1)))->repositories(),
+ m_ui->m_useTmpRepositories->isChecked());
+ settingsChanged |= (settings.temporaryRepositories() != newSettings.temporaryRepositories());
+ settingsChanged |= (settings.hasReplacementRepos() != newSettings.hasReplacementRepos());
+
+ // set possible new user repositories
+ newSettings.setUserRepositories((dynamic_cast<RepositoryItem*> (m_rootItems.at(2)))->repositories());
+ settingsChanged |= (settings.userRepositories() != newSettings.userRepositories());
+
+ // update proxy type
+ newSettings.setProxyType(QInstaller::Settings::NoProxy);
+ if (m_ui->m_systemProxySettings->isChecked())
+ newSettings.setProxyType(QInstaller::Settings::SystemProxy);
+ else if (m_ui->m_manualProxySettings->isChecked())
+ newSettings.setProxyType(QInstaller::Settings::UserDefinedProxy);
+ settingsChanged |= settings.proxyType() != newSettings.proxyType();
+
+ if (newSettings.proxyType() == QInstaller::Settings::UserDefinedProxy) {
+ // update ftp proxy settings
+ newSettings.setFtpProxy(QNetworkProxy(QNetworkProxy::HttpProxy, m_ui->m_ftpProxy->text(),
+ m_ui->m_ftpProxyPort->value(), m_ui->m_ftpProxyUser->text(), m_ui->m_ftpProxyPass->text()));
+ settingsChanged |= (settings.ftpProxy() != newSettings.ftpProxy());
+
+ // update http proxy settings
+ newSettings.setHttpProxy(QNetworkProxy(QNetworkProxy::HttpProxy, m_ui->m_httpProxy->text(),
+ m_ui->m_httpProxyPort->value(), m_ui->m_httpProxyUser->text(), m_ui->m_httpProxyPass->text()));
+ settingsChanged |= (settings.httpProxy() != newSettings.httpProxy());
+ }
+
+ if (settingsChanged)
+ emit networkSettingsChanged(newSettings);
+
+ QDialog::accept();
+}
+
+// -- private slots
+
+void SettingsDialog::addRepository()
+{
+ int index = 0;
+ QTreeWidgetItem *parent = m_ui->m_repositoriesView->currentItem();
+ if (parent && !m_rootItems.contains(parent)) {
+ parent = parent->parent();
+ index = parent->indexOfChild(m_ui->m_repositoriesView->currentItem());
+ }
+
+ if (parent) {
+ QInstaller::Repository repository;
+ repository.setEnabled(true);
+ RepositoryItem *item = new RepositoryItem(repository);
+ parent->insertChild(index, item);
+ m_ui->m_repositoriesView->editItem(item, 4);
+ m_ui->m_repositoriesView->scrollToItem(item);
+ m_ui->m_repositoriesView->setCurrentItem(item);
+
+ if (parent == m_rootItems.value(1))
+ m_ui->m_useTmpRepositories->setEnabled(parent->childCount() > 0);
+ }
+}
+
+void SettingsDialog::testRepository()
+{
+ RepositoryItem *current = dynamic_cast<RepositoryItem*> (m_ui->m_repositoriesView->currentItem());
+ if (current && !m_rootItems.contains(current)) {
+ m_ui->tabWidget->setEnabled(false);
+ m_ui->buttonBox->setEnabled(false);
+
+ m_testRepository.setRepository(current->repository());
+ m_testRepository.start();
+ m_testRepository.waitForFinished();
+
+ if (m_testRepository.error() > KDJob::NoError) {
+ QMessageBox msgBox(this);
+ msgBox.setIcon(QMessageBox::Question);
+ msgBox.setWindowModality(Qt::WindowModal);
+ msgBox.setDetailedText(m_testRepository.errorString());
+ msgBox.setText(tr("There was an error testing this repository."));
+ msgBox.setInformativeText(tr("Do you want to disable the tested repository?"));
+
+ msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
+ msgBox.setDefaultButton(QMessageBox::Yes);
+
+ if (msgBox.exec() == QMessageBox::Yes)
+ current->setData(1, Qt::CheckStateRole, Qt::Unchecked);
+ }
+
+ m_ui->tabWidget->setEnabled(true);
+ m_ui->buttonBox->setEnabled(true);
+ }
+}
+
+void SettingsDialog::updatePasswords()
+{
+ m_showPasswords = !m_showPasswords;
+ m_delegate->showPasswords(m_showPasswords);
+ m_ui->m_showPasswords->setText(m_showPasswords ? tr("Hide Passwords") : tr("Show Passwords"));
+
+ // force an tree view update so the delegate has to repaint
+ m_ui->m_repositoriesView->viewport()->update();
+}
+
+void SettingsDialog::removeRepository()
+{
+ QTreeWidgetItem *item = m_ui->m_repositoriesView->currentItem();
+ if (item && !m_rootItems.contains(item)) {
+ QTreeWidgetItem *parent = item->parent();
+ if (parent) {
+ delete parent->takeChild(parent->indexOfChild(item));
+ if (parent == m_rootItems.value(1) && parent->childCount() <= 0) {
+ useTmpRepositoriesOnly(false);
+ m_ui->m_useTmpRepositories->setChecked(false);
+ m_ui->m_useTmpRepositories->setEnabled(false);
+ }
+ }
+ }
+}
+
+void SettingsDialog::useTmpRepositoriesOnly(bool use)
+{
+ m_rootItems.at(0)->setDisabled(use);
+ m_rootItems.at(2)->setDisabled(use);
+}
+
+void SettingsDialog::currentRepositoryChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
+{
+ Q_UNUSED(previous)
+ if (current) {
+ const int index = m_rootItems.at(0)->indexOfChild(current);
+ m_ui->m_testRepository->setEnabled(!m_rootItems.contains(current));
+ m_ui->m_removeRepository->setEnabled(!current->data(0, Qt::UserRole).toBool());
+ m_ui->m_addRepository->setEnabled((current != m_rootItems.at(0)) & (index == -1));
+ }
+}
+
+// -- private
+
+void SettingsDialog::setupRepositoriesTreeWidget()
+{
+ QTreeWidget *treeWidget = m_ui->m_repositoriesView;
+ treeWidget->header()->setVisible(true);
+ treeWidget->setHeaderLabels(QStringList() << QString() << tr("Use") << tr("Username") << tr("Password")
+ << tr("Repository"));
+ m_rootItems.append(new RepositoryItem(tr("Default repositories")));
+ m_rootItems.append(new RepositoryItem(tr("Temporary repositories")));
+ m_rootItems.append(new RepositoryItem(tr("User defined repositories")));
+ treeWidget->addTopLevelItems(m_rootItems);
+
+ const QInstaller::Settings &settings = m_core->settings();
+ insertRepositories(settings.userRepositories(), m_rootItems.at(2));
+ insertRepositories(settings.defaultRepositories(), m_rootItems.at(0));
+ insertRepositories(settings.temporaryRepositories(), m_rootItems.at(1));
+
+ treeWidget->expandAll();
+ for (int i = 0; i < treeWidget->model()->columnCount(); ++i)
+ treeWidget->resizeColumnToContents(i);
+
+ treeWidget->header()->setResizeMode(0, QHeaderView::Fixed);
+ treeWidget->header()->setResizeMode(1, QHeaderView::Fixed);
+ treeWidget->header()->setMinimumSectionSize(treeWidget->columnWidth(1));
+ treeWidget->setItemDelegateForColumn(0, new PasswordDelegate(treeWidget));
+ treeWidget->setItemDelegateForColumn(1, new PasswordDelegate(treeWidget));
+ treeWidget->setItemDelegateForColumn(3, m_delegate = new PasswordDelegate(treeWidget));
+ m_delegate->showPasswords(false);
+ m_delegate->disableEditing(false);
+}
+
+void SettingsDialog::insertRepositories(const QSet<QInstaller::Repository> repos, QTreeWidgetItem *rootItem)
+{
+ rootItem->setFirstColumnSpanned(true);
+ foreach (const QInstaller::Repository &repo, repos)
+ rootItem->addChild(new RepositoryItem(repo));
+}
diff --git a/src/sdk/settingsdialog.h b/src/sdk/settingsdialog.h
new file mode 100644
index 000000000..a222ecf87
--- /dev/null
+++ b/src/sdk/settingsdialog.h
@@ -0,0 +1,172 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2011-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+#ifndef SETTINGSDIALOG_H
+#define SETTINGSDIALOG_H
+
+#include <repository.h>
+#include <settings.h>
+
+#include <kdjob.h>
+
+#include <QtGui/QDialog>
+#include <QtGui/QStyledItemDelegate>
+#include <QtGui/QTreeWidgetItem>
+
+QT_BEGIN_NAMESPACE
+class QLocale;
+class QVariant;
+QT_END_NAMESPACE
+
+namespace KDUpdater {
+ class FileDownloader;
+}
+
+namespace QInstaller {
+ class PackageManagerCore;
+}
+
+namespace Ui {
+ class SettingsDialog;
+}
+
+
+// -- TestRepositoryJob
+
+class TestRepository : public KDJob
+{
+ Q_OBJECT
+
+public:
+
+ TestRepository(QObject *parent = 0);
+ ~TestRepository();
+
+ void setRepository(const QInstaller::Repository &repository);
+
+private:
+ void doStart();
+ void doCancel();
+
+private Q_SLOTS:
+ void downloadCompleted();
+ void downloadAborted(const QString &reason);
+
+private:
+ QInstaller::Repository m_repository;
+ KDUpdater::FileDownloader *m_downloader;
+};
+
+
+// -- PasswordDelegate
+
+class PasswordDelegate : public QStyledItemDelegate
+{
+ Q_OBJECT
+
+public:
+ PasswordDelegate(QWidget *parent = 0)
+ : QStyledItemDelegate(parent)
+ , m_showPasswords(true)
+ , m_disabledEditor(true)
+ {}
+
+ void showPasswords(bool show);
+ void disableEditing(bool disable);
+
+protected:
+ QString displayText(const QVariant &value, const QLocale &locale) const;
+ QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &) const;
+
+private:
+ bool m_showPasswords;
+ bool m_disabledEditor;
+};
+
+
+// -- RepositoryItem
+
+class RepositoryItem : public QTreeWidgetItem
+{
+public:
+ RepositoryItem(const QString &label);
+ RepositoryItem(const QInstaller::Repository &repo);
+
+ QVariant data(int column, int role) const;
+ void setData(int column, int role, const QVariant &value);
+
+ QSet<QInstaller::Repository> repositories() const;
+ QInstaller::Repository repository() const { return m_repo; }
+ void setRepository(const QInstaller::Repository &repo) { m_repo = repo; }
+
+private:
+ QInstaller::Repository m_repo;
+};
+
+
+// -- SettingsDialog
+
+class SettingsDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ SettingsDialog(QInstaller::PackageManagerCore *core, QWidget *parent = 0);
+
+public slots:
+ void accept();
+
+signals:
+ void networkSettingsChanged(const QInstaller::Settings &settings);
+
+private slots:
+ void addRepository();
+ void testRepository();
+ void updatePasswords();
+ void removeRepository();
+ void useTmpRepositoriesOnly(bool use);
+ void currentRepositoryChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
+
+private:
+ void setupRepositoriesTreeWidget();
+ void insertRepositories(const QSet<QInstaller::Repository> repos, QTreeWidgetItem *rootItem);
+
+private:
+ Ui::SettingsDialog *m_ui;
+ PasswordDelegate *m_delegate;
+ QInstaller::PackageManagerCore *m_core;
+
+ bool m_showPasswords;
+ TestRepository m_testRepository;
+ QList<QTreeWidgetItem*> m_rootItems;
+};
+
+#endif // SETTINGSDIALOG_H
diff --git a/src/sdk/settingsdialog.ui b/src/sdk/settingsdialog.ui
new file mode 100644
index 000000000..d3ca959a6
--- /dev/null
+++ b/src/sdk/settingsdialog.ui
@@ -0,0 +1,767 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SettingsDialog</class>
+ <widget class="QDialog" name="SettingsDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>491</width>
+ <height>443</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Settings</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="m_network">
+ <attribute name="title">
+ <string>Network</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QRadioButton" name="m_noProxySettings">
+ <property name="text">
+ <string>No proxy</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_systemProxySettings">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>System proxy settings</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_manualProxySettings">
+ <property name="text">
+ <string>Manual proxy configuration</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="m_rootWidget" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout_6">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" name="m_httpRootLayout">
+ <item>
+ <layout class="QHBoxLayout" name="m_httpProxyLayout">
+ <item>
+ <widget class="QLabel" name="m_httpProxyLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>HTTP proxy:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="m_httpProxy">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_httpProxyPortLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Port:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="m_httpProxyPort">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="m_httpProxyNeedsAuth">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>HTTP proxy requires authentication</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="m_httpAuthWidget" native="true">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_httpProxyUserLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Username:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="m_httpProxyUser">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="m_httpProxyPassLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="m_httpProxyPass">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>10</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="m_ftpRootLayout">
+ <item>
+ <layout class="QHBoxLayout" name="m_ftpProxyLayout">
+ <item>
+ <widget class="QLabel" name="m_ftpProxyLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>FTP proxy:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="m_ftpProxy">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_ftpProxyPortLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Port:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="m_ftpProxyPort">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="m_ftpProxyNeedsAuth">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>FTP proxy requires authentication</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="m_ftpAuthWidget" native="true">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_ftpProxyUserLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Username:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="m_ftpProxyUser">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="m_ftpProxyPassLabel">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Password:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="m_ftpProxyPass">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="m_repositories">
+ <attribute name="title">
+ <string>Repositories</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="m_httpAuthLabel">
+ <property name="text">
+ <string>Add Username and Password for authentication if needed.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="m_repositoriesView">
+ <column>
+ <property name="text">
+ <string notr="true">1</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="m_useTmpRepositories">
+ <property name="text">
+ <string>Use temporary repositories only</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="m_addRepository">
+ <property name="text">
+ <string>Add</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_removeRepository">
+ <property name="text">
+ <string>Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_testRepository">
+ <property name="text">
+ <string>Test</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_showPasswords">
+ <property name="text">
+ <string>Show Passwords</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>269</x>
+ <y>422</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>337</x>
+ <y>422</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>104</x>
+ <y>74</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>121</x>
+ <y>97</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxy</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>232</x>
+ <y>77</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>232</x>
+ <y>97</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyPortLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>349</x>
+ <y>78</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>347</x>
+ <y>96</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyPort</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>392</x>
+ <y>74</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>392</x>
+ <y>96</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>61</x>
+ <y>76</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>109</x>
+ <y>243</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxy</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>204</x>
+ <y>78</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>203</x>
+ <y>248</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyPortLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>336</x>
+ <y>77</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>336</x>
+ <y>241</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyPort</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>406</x>
+ <y>78</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>380</x>
+ <y>252</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyNeedsAuth</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>53</x>
+ <y>75</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>100</x>
+ <y>129</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyNeedsAuth</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>88</x>
+ <y>74</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>95</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpAuthWidget</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>54</x>
+ <y>79</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>53</x>
+ <y>179</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_manualProxySettings</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpAuthWidget</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>73</x>
+ <y>76</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>56</x>
+ <y>298</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_ftpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyUserLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>82</x>
+ <y>283</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>77</x>
+ <y>303</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_ftpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyUser</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>180</x>
+ <y>284</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>170</x>
+ <y>304</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_ftpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyPass</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>224</x>
+ <y>283</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>223</x>
+ <y>330</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_ftpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_ftpProxyPassLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>317</x>
+ <y>282</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>122</x>
+ <y>335</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_httpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyUserLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>81</x>
+ <y>134</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>70</x>
+ <y>154</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_httpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyPassLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>87</x>
+ <y>137</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>84</x>
+ <y>186</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_httpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyUser</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>183</x>
+ <y>135</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>182</x>
+ <y>154</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_httpProxyNeedsAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_httpProxyPass</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>287</x>
+ <y>134</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>285</x>
+ <y>182</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/sdk/tabcontroller.cpp b/src/sdk/tabcontroller.cpp
new file mode 100644
index 000000000..200de2359
--- /dev/null
+++ b/src/sdk/tabcontroller.cpp
@@ -0,0 +1,203 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2010-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+#include "tabcontroller.h"
+
+#include "installerbasecommons.h"
+#include "settingsdialog.h"
+
+#include <packagemanagercore.h>
+
+#include <QtCore/QTimer>
+#include <QtScript/QScriptEngine>
+
+using namespace QInstaller;
+
+
+// -- TabController::Private
+
+class TabController::Private
+{
+public:
+ Private();
+ ~Private();
+
+ bool m_init;
+ QString m_controlScript;
+ QHash<QString, QString> m_params;
+
+ Settings m_settings;
+ bool m_networkSettingsChanged;
+
+ QInstaller::PackageManagerGui *m_gui;
+ QInstaller::PackageManagerCore *m_core;
+};
+
+TabController::Private::Private()
+ : m_init(false)
+ , m_networkSettingsChanged(false)
+ , m_gui(0)
+ , m_core(0)
+{
+}
+
+TabController::Private::~Private()
+{
+ delete m_gui;
+}
+
+
+// -- TabController
+
+TabController::TabController(QObject *parent)
+ : QObject(parent)
+ , d(new Private)
+{
+}
+
+TabController::~TabController()
+{
+ d->m_core->writeUninstaller();
+ delete d;
+}
+
+void TabController::setGui(QInstaller::PackageManagerGui *gui)
+{
+ d->m_gui = gui;
+ connect(d->m_gui, SIGNAL(gotRestarted()), this, SLOT(restartWizard()));
+}
+
+void TabController::setControlScript (const QString &script)
+{
+ d->m_controlScript = script;
+}
+
+void TabController::setManager(QInstaller::PackageManagerCore *core)
+{
+ d->m_core = core;
+}
+
+void TabController::setManagerParams(const QHash<QString, QString> &params)
+{
+ d->m_params = params;
+}
+
+// -- public slots
+
+int TabController::init()
+{
+ if (!d->m_init) {
+ d->m_init = true;
+ // this should called as early as possible, to handle error message boxes for example
+ if (!d->m_controlScript.isEmpty()) {
+ qDebug() << "Non-interactive installation using script:" << d->m_controlScript;
+
+ d->m_gui->loadControlScript(d->m_controlScript);
+ QScriptEngine *engine = d->m_gui->controlScriptEngine();
+ engine->globalObject().setProperty(QLatin1String("tabController"),
+ engine->newQObject(this));
+ }
+
+ connect(d->m_gui, SIGNAL(currentIdChanged(int)), this, SLOT(onCurrentIdChanged(int)));
+ connect(d->m_gui, SIGNAL(settingsButtonClicked()), this, SLOT(onSettingsButtonClicked()));
+ }
+
+ IntroductionPageImpl *page =
+ qobject_cast<IntroductionPageImpl*> (d->m_gui->page(PackageManagerCore::Introduction));
+ if (page) {
+ page->setMessage(QString());
+ page->setErrorMessage(QString());
+ page->onCoreNetworkSettingsChanged();
+ }
+
+ d->m_gui->restart();
+ d->m_gui->setWindowModality(Qt::WindowModal);
+ d->m_gui->show();
+
+ onCurrentIdChanged(d->m_gui->currentId());
+ return PackageManagerCore::Success;
+}
+
+// -- private slots
+
+void TabController::restartWizard()
+{
+ d->m_core->reset(d->m_params);
+ if (d->m_networkSettingsChanged) {
+ d->m_networkSettingsChanged = false;
+
+ d->m_core->settings().setFtpProxy(d->m_settings.ftpProxy());
+ d->m_core->settings().setHttpProxy(d->m_settings.httpProxy());
+ d->m_core->settings().setProxyType(d->m_settings.proxyType());
+
+ d->m_core->settings().setUserRepositories(d->m_settings.userRepositories());
+ d->m_core->settings().setDefaultRepositories(d->m_settings.defaultRepositories());
+ d->m_core->settings().setTemporaryRepositories(d->m_settings.temporaryRepositories(),
+ d->m_settings.hasReplacementRepos());
+ d->m_core->networkSettingsChanged();
+ }
+
+ // restart and switch back to intro page
+ QTimer::singleShot(0, this, SLOT(init()));
+}
+
+void TabController::onSettingsButtonClicked()
+{
+ SettingsDialog dialog(d->m_core);
+ connect (&dialog, SIGNAL(networkSettingsChanged(QInstaller::Settings)), this,
+ SLOT(onNetworkSettingsChanged(QInstaller::Settings)));
+ dialog.exec();
+
+ if (d->m_networkSettingsChanged) {
+ d->m_core->setCanceled();
+ IntroductionPageImpl *page =
+ qobject_cast<IntroductionPageImpl*> (d->m_gui->page(PackageManagerCore::Introduction));
+ if (page) {
+ page->setMessage(QString());
+ page->setErrorMessage(QString());
+ }
+ restartWizard();
+ }
+}
+
+void TabController::onCurrentIdChanged(int newId)
+{
+ if (d->m_gui && d->m_core) {
+ d->m_gui->showSettingsButton((newId == PackageManagerCore::Introduction) &
+ (!d->m_core->isOfflineOnly()) & (!d->m_core->isUninstaller()));
+ }
+}
+
+void TabController::onNetworkSettingsChanged(const QInstaller::Settings &settings)
+{
+ d->m_settings = settings;
+ d->m_networkSettingsChanged = true;
+}
diff --git a/src/sdk/tabcontroller.h b/src/sdk/tabcontroller.h
new file mode 100644
index 000000000..1ef779f8e
--- /dev/null
+++ b/src/sdk/tabcontroller.h
@@ -0,0 +1,76 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2010-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+
+#ifndef TABCONTROLLER_H
+#define TABCONTROLLER_H
+
+#include <QtCore/QHash>
+#include <QtCore/QObject>
+
+namespace QInstaller {
+ class PackageManagerGui;
+ class PackageManagerCore;
+ class Settings;
+}
+
+class IntroductionPageImpl;
+
+class TabController : public QObject
+{
+ Q_OBJECT
+ Q_DISABLE_COPY(TabController)
+
+public:
+ explicit TabController(QObject *parent = 0);
+ ~TabController();
+
+ void setGui(QInstaller::PackageManagerGui *gui);
+ void setManager(QInstaller::PackageManagerCore *core);
+ void setManagerParams(const QHash<QString, QString> &params);
+
+ void setControlScript(const QString &script);
+
+public Q_SLOTS:
+ int init();
+
+private Q_SLOTS:
+ void restartWizard();
+ void onSettingsButtonClicked();
+ void onCurrentIdChanged(int newId);
+ void onNetworkSettingsChanged(const QInstaller::Settings &settings);
+
+private:
+ class Private;
+ Private *const d;
+};
+
+#endif // TABCONTROLLER_H
diff --git a/src/sdk/translations/de_de.ts b/src/sdk/translations/de_de.ts
new file mode 100644
index 000000000..64bc29afc
--- /dev/null
+++ b/src/sdk/translations/de_de.ts
@@ -0,0 +1,3681 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de_DE">
+<context>
+ <name>Component</name>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="578"/>
+ <source>Could not open archive %1: %2</source>
+ <translation>Konnte Archiv %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>IntroductionPageImpl</name>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="63"/>
+ <source>Package manager</source>
+ <translation>Paketverwaltung</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="68"/>
+ <source>Update components</source>
+ <translation>Komponenten aktualisieren</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="73"/>
+ <source>Remove all components</source>
+ <translation>Alle Komponenten entfernen</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="83"/>
+ <source>Retrieving information from remote installation sources...</source>
+ <translation>Empfange Daten vom Installationsserver...</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="145"/>
+ <source>No updates available.</source>
+ <translation>Keine Aktualisierungen verfügbar.</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;No updates available.&lt;/b&gt;</source>
+ <translation type="obsolete">&lt;b&gt;Keine Aktualisierungen verfügbar.&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="164"/>
+ <source> Only local package management available.</source>
+ <translation>Nur lokale Paketverwaltung verfügbar.</translation>
+ </message>
+</context>
+<context>
+ <name>KDJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdjob.cpp" line="176"/>
+ <source>Canceled</source>
+ <translation>Abgebrochen</translation>
+ </message>
+</context>
+<context>
+ <name>KDSaveFile</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="251"/>
+ <source>Append mode not supported.</source>
+ <translation>Anhängen nicht unterstützt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="256"/>
+ <source>Read-only access not supported.</source>
+ <translation>Nur-Lese-Modus nicht unterstützt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="344"/>
+ <source>Could not backup existing file %1: %2</source>
+ <translation>Konnte existierende Datei %1 nicht sichern. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="385"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="396"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="407"/>
+ <source>TODO</source>
+ <translation>!!TODO</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::AppendFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="597"/>
+ <source>Cannot backup file %1: %2</source>
+ <translation>Konnte Datei %1 nicht sichern. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="610"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="624"/>
+ <source>Could not open file %1 for writing: %2</source>
+ <translation>Konnte Datei %1 nicht zum Schreiben öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="643"/>
+ <source>Cannot find backup file for %1.</source>
+ <translation>Konnte Sicherungsdatei für %1 nicht finden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="649"/>
+ <source>Could not restore backup file for %1.</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="660"/>
+ <source>Could not restore backup file for %1: %2</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::CopyOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="123"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="112"/>
+ <source>Could not backup file %1.</source>
+ <translation>Konnte Datei %1 nicht sichern.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="136"/>
+ <source>Could not remove destination file %1: %2</source>
+ <translation>Konnte Zieldatei %1 nicht entfernen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="145"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation>Konnte Datei %1 nicht nach %2 kopieren. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="157"/>
+ <source>Could not delete file %1: %2</source>
+ <translation>Konnte Datei %1 nicht löschen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="170"/>
+ <source>Could not restore backup file into %1: %2</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::DeleteOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="341"/>
+ <source>Cannot create backup of %1: %2</source>
+ <translation>Konnte Datei %1 nicht sichern. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="351"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 1 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="368"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::ExecuteOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="848"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="906"/>
+ <source>Execution failed: %1</source>
+ <translation>Ausführung fehlgeschlagen: %1</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::FileDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="51"/>
+ <source>%L1 B</source>
+ <translation>%L1 B</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="54"/>
+ <source>%L1 KB</source>
+ <translation>%L1 KB</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="57"/>
+ <source>%L1 MB</source>
+ <translation>%L1 MB</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="59"/>
+ <source>%L1 GB</source>
+ <translation>%L1 GB</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="298"/>
+ <source>Could not reopen downloaded file %1 for reading: %2</source>
+ <translation>Konnte heruntergeladene Datei %1 nicht zum Lesen öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="314"/>
+ <source>Download canceled.</source>
+ <translation>Herunterladen abgebrochen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="321"/>
+ <source>Cryptographic hashes do not match.</source>
+ <translation>Prüfsummen stimmen nicht überein.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="325"/>
+ <source>Download finished.</source>
+ <translation>Heruntergeladen abgeschlossen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="427"/>
+ <source> of </source>
+ <translation> von </translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="430"/>
+ <source> downloaded.</source>
+ <translation> heruntergeladen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="433"/>
+ <source>/sec</source>
+ <translation>/s</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="444"/>
+ <source> day</source>
+ <translation> Tag</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="444"/>
+ <source> days</source>
+ <translation> Tage</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="448"/>
+ <source> hour</source>
+ <translation> Stunde</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="448"/>
+ <source> hours</source>
+ <translation> Stunden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="452"/>
+ <source> minute</source>
+ <translation> Minute</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="452"/>
+ <source> minutes</source>
+ <translation> Minuten</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="457"/>
+ <source> second</source>
+ <translation> Sekunde</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="457"/>
+ <source> seconds</source>
+ <translation> Sekunden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="459"/>
+ <source> - </source>
+ <translation> - </translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="459"/>
+ <source> remaining.</source>
+ <translation> verbleibend.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="461"/>
+ <source> - unknown time remaining.</source>
+ <translation> - verbleibende Zeit unbekannt.</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::FtpDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1013"/>
+ <source>Download was aborted due to network errors.</source>
+ <translation>Herunterladen wegen Netzwerkfehlern abgebrochen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1034"/>
+ <source>Cannot download %1: Writing to temporary file failed: %2</source>
+ <translation>Konnte URL %1 nicht herunterladen. Schreiben in temporäre Datei fehlgeschlagen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::HttpDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1154"/>
+ <source>Cannot download %1: Writing to temporary file failed: %2</source>
+ <translation>Konnte URL %1 nicht herunterladen. Schreiben in temporäre Datei fehlgeschlagen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1281"/>
+ <source>Cannot download %1: Could not create temporary file: %2</source>
+ <translation>Konnte URL %1 nicht herunterladen. Schreiben in temporäre Datei fehlgeschlagen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::LocalFileDownloader</name>
+ <message>
+ <source>Cannot open source file for reading.</source>
+ <translation type="obsolete">Konnte Ausgangsdatei nicht zum Lesen öffnen.</translation>
+ </message>
+ <message>
+ <source>Cannot open destination file for writing.</source>
+ <translation type="obsolete">Konnte Zielatei nicht zum Schreiben öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="595"/>
+ <source>Cannot open source file &apos;%1&apos; for reading.</source>
+ <translation>Konnte Ausgangsdatei &apos;%1&apos; nicht zum Lesen öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="611"/>
+ <source>Cannot open destination file &apos;%1&apos; for writing.</source>
+ <translation>Konnte Zieldatei &apos;%1&apos; nicht zum Schreiben öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="668"/>
+ <source>Writing to %1 failed: %2</source>
+ <translation>Konnte Datei %1 nicht zum Schreiben öffnen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::MkdirOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="445"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 1 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="452"/>
+ <source>Could not create folder %1: Unknown error.</source>
+ <translation>Konnte Ordner %1 nicht anlegen. Unbekannter Fehler.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="490"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="492"/>
+ <source>Cannot remove directory %1: %2</source>
+ <translation>Konnte Ordner %1 nicht löschen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::MoveOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="233"/>
+ <source>Could not backup file %1.</source>
+ <translation>Konnte Datei %1 nicht sichern.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="244"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="258"/>
+ <source>Could not remove destination file %1: %2</source>
+ <translation>Konnte Zieldatei %1 nicht entfernen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="268"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation>Konnte Datei %1 nicht nach %2 kopieren. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="290"/>
+ <source>Cannot remove file %1.</source>
+ <translation>Konnte Datei %1 nicht löschen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="284"/>
+ <source>Cannot copy %1 to %2: %3</source>
+ <translation>Konnte Datei %1 nicht nach %2 kopieren. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="303"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::PackagesInfo</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="102"/>
+ <source>%1 contains invalid content: %2</source>
+ <translation>Inhalt von Datei %1 ungültig: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="284"/>
+ <source>The file %1 does not exist.</source>
+ <translation>Datei %1 existiert nicht.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="292"/>
+ <source>Could not open %1.</source>
+ <translation>Konnte Datei %1 nicht öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="317"/>
+ <source>Root element %1 unexpected, should be &apos;Packages&apos;.</source>
+ <translation>Unerwartetes Wurzelelement %1, erwartet wird &apos;Packages&apos;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="304"/>
+ <source>Parse error in %1 at %2, %3: %4</source>
+ <translation>Ungültiges XML in Datei %1, Zeile %2, Spalte %3. Fehlermeldung: %4</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::PrependFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="695"/>
+ <source>Cannot backup file %1: %2</source>
+ <translation>Konnte Datei %1 nicht sichern. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="708"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="719"/>
+ <source>Could not open file %1 for reading: %2</source>
+ <translation>Konnte Datei %1 nicht zum Lesen öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="735"/>
+ <source>Could not open file %1 for writing: %2</source>
+ <translation>Konnte Datei %1 nicht zum Schreiben öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="753"/>
+ <source>Cannot find backup file for %1.</source>
+ <translation>Konnte Sicherungsdatei für %1 nicht finden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="758"/>
+ <source>Cannot restore backup file for %1.</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="769"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::RmdirOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="530"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 1 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="538"/>
+ <source>Could not remove folder %1: The folder does not exist.</source>
+ <translation>Konnte Ordner %1 nicht entfernen. Der Ordner existiert nicht.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="547"/>
+ <source>Could not remove folder %1: %2</source>
+ <translation>Konnte Ordner %1 nicht löschen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="561"/>
+ <source>Cannot recreate directory %1: %2</source>
+ <translation>Konnte Ordner %1 nicht wiederherstellen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::SignatureVerificationDownloader</name>
+ <message>
+ <source>Could not download signature: scheme %1 not supported.</source>
+ <translation type="obsolete">Konnte Signatur nicht herunterladen: Schema %1 nicht unterstützt.</translation>
+ </message>
+ <message>
+ <source>Downloading signature: %1</source>
+ <translation type="obsolete">Herunterladen der Unterschrift abgebrochen: %1</translation>
+ </message>
+ <message>
+ <source>Could not open signature file: %1</source>
+ <translation type="obsolete">Konnte Unterschriftdatei nicht öffnen: %1</translation>
+ </message>
+ <message>
+ <source>Could not open file for verification: %1</source>
+ <translation type="obsolete">Konnte Datei nicht zur Überprüfung öffnen: %1</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::Task</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="179"/>
+ <source>%1 started</source>
+ <translation>%1 gestartet</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="192"/>
+ <source>%1 cannot be stopped</source>
+ <translation>%1 kann nicht angehalten werden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="210"/>
+ <source>Cannot stop task %1</source>
+ <translation>%1 kann nicht angehalten werden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="229"/>
+ <source>%1 cannot be paused</source>
+ <translation>%1 kann nicht pausiert werden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="247"/>
+ <source>Cannot pause task %1</source>
+ <translation>%1 kann nicht pausiert werden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="275"/>
+ <source>Cannot resume task %1</source>
+ <translation>%1 kann nicht wiederaufgenommen werden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="331"/>
+ <source>%1 done</source>
+ <translation>%1 abgeschlossen</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UFUncompressor</name>
+ <message>
+ <source>Couldn&apos;t open file for reading: %1</source>
+ <translation type="obsolete">Konnte Datei nicht zum Lesen öffnen. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t read the file header.</source>
+ <translation type="obsolete">Konnte den Dateikopf nicht lesen.</translation>
+ </message>
+ <message>
+ <source>Wrong file format (magic number not found)</source>
+ <translation type="obsolete">Falsches Dateiformat (magische Zahl nicht gefunden).</translation>
+ </message>
+ <message>
+ <source>Could not create folder: %1/%2</source>
+ <translation type="obsolete">Konnte Ordner %1/%2 nicht anlegen.</translation>
+ </message>
+ <message>
+ <source>Could not read information for entry %1.</source>
+ <translation type="obsolete">Konnte die Informationen für Eintrag %1 nicht lesen.</translation>
+ </message>
+ <message>
+ <source>Could not uncompress entry %1, corrupt data</source>
+ <translation type="obsolete">Konnte Eintrag %1 nicht entpacken, Daten ungültig.</translation>
+ </message>
+ <message>
+ <source>Could not open file %1 for writing: %2</source>
+ <translation type="obsolete">Konnte Datei %1 nicht zum Schreiben öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <source>Failed writing uncompressed data to %1: %2</source>
+ <translation type="obsolete">Konnte ausgepackte Daten nicht nach %1 schreiben. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <source>Corrupt file (wrong number of files)</source>
+ <translation type="obsolete">Ungültige Datei (falsche Dateianzahl).</translation>
+ </message>
+ <message>
+ <source>Corrupt file (wrong hash)</source>
+ <translation type="obsolete">Ungültige Datei (falsche Prüfsumme).</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::Update</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdate.cpp" line="233"/>
+ <source>Downloading update...</source>
+ <translation>Lade Aktualisierung herunter...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdate.cpp" line="241"/>
+ <source>Update downloaded</source>
+ <translation>Aktualisierung heruntergeladen.</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateCompatOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="1029"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 1 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="1041"/>
+ <source>Cannot restore previous compat-level</source>
+ <translation>Kann ursprüngliches compat-level nicht wiederherstellen.</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateFinder</name>
+ <message>
+ <source>Could not access the package information of this application</source>
+ <translation type="obsolete">Konnte nicht auf die Paketinformationen dieser Anwendung zugreifen.</translation>
+ </message>
+ <message>
+ <source>Could not access the update sources information of this application</source>
+ <translation type="obsolete">Konnte nicht auf die Aktualisierungsinformationen dieser Anwendung zugreifen.</translation>
+ </message>
+ <message>
+ <source>%1 updates found</source>
+ <translation type="obsolete">%1 Aktualisierungen gefunden.</translation>
+ </message>
+ <message>
+ <source>Downloading Updates.xml from update-sources</source>
+ <translation type="obsolete">Lade Updates.xml von der Aktualisierungsquelle herunter.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="313"/>
+ <source>Could not download updates from %1 (&apos;%2&apos;)</source>
+ <translation>Konnte Aktualisierungen nicht von %1 (&apos;%2&apos;) herunterladen.</translation>
+ </message>
+ <message>
+ <source>Updates.xml file(s) downloaded from update sources</source>
+ <translation type="obsolete">Datei Updates.xml von der Aktualisierungsquelle heruntergeladen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="184"/>
+ <source>Could not access the package information of this application.</source>
+ <translation>Konnte nicht auf die Paketinformationen dieser Anwendung zugreifen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="195"/>
+ <source>Could not access the update sources information of this application.</source>
+ <translation>Konnte nicht auf die Aktualisierungsinformationen dieser Anwendung zugreifen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="218"/>
+ <source>%1 updates found.</source>
+ <translation>%1 Aktualisierungen gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="300"/>
+ <source>Downloading Updates.xml from update sources.</source>
+ <translation>Lade Updates.xml von der Aktualisierungsquelle herunter.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="351"/>
+ <source>Updates.xml file(s) downloaded from update sources.</source>
+ <translation>Datei Updates.xml von der Aktualisierungsquelle heruntergeladen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="372"/>
+ <source>Looking for compatibility update...</source>
+ <translation>Suche nach einer Kompatibilitätsaktualisierung...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="397"/>
+ <source>Found compatibility update..</source>
+ <translation>Kompatibilitätsaktualisierung gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="400"/>
+ <source>Compatibility level %1 update</source>
+ <translation>Kompatibilitätsaktualisierung auf Ebene %1.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="406"/>
+ <source>Compatibility update for the required architecture and hardware configuration was not found.</source>
+ <translation>Kompatibilitätsaktualisierung für die benötigte Architektur und Hardware nicht gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="407"/>
+ <source>Compatibility update not found.</source>
+ <translation>Kompatibilitätsaktualisierung nicht gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="423"/>
+ <source>Compatibility update found.</source>
+ <translation>Kompatibilitätsaktualisierung gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="425"/>
+ <source>No compatibility updates found.</source>
+ <translation>Kompatibilitätsaktualisierung nicht gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="450"/>
+ <source>Computing applicable updates.</source>
+ <translation>Berechne anwendbare Aktualisierungen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="454"/>
+ <source>Application updates computed.</source>
+ <translation>Anwendbare Aktualisierungen berechnet.</translation>
+ </message>
+ <message>
+ <source>Compatibility update for the required architecture and hardware configuration was not found</source>
+ <translation type="obsolete">Kompatibilitätsaktualisierung für die benötigte Architektur und Hardware nicht gefunden.</translation>
+ </message>
+ <message>
+ <source>Compatibility update not found</source>
+ <translation type="obsolete">Kompatibilitätsaktualisierung nicht gefunden.</translation>
+ </message>
+ <message>
+ <source>Compatibility update found</source>
+ <translation type="obsolete">Kompatibilitätsaktualisierung gefunden.</translation>
+ </message>
+ <message>
+ <source>No compatibility updates found</source>
+ <translation type="obsolete">Kompatibilitätsaktualisierung nicht gefunden.</translation>
+ </message>
+ <message>
+ <source>Computing applicable updates</source>
+ <translation type="obsolete">Berechne anwendbare Aktualisierungen.</translation>
+ </message>
+ <message>
+ <source>Application updates computed</source>
+ <translation type="obsolete">Anwendbare Aktualisierungen berechnet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="742"/>
+ <source>Downloading Updates.xml from update sources</source>
+ <translation>Lade Updates.xml von der Aktualisierungsquelle herunter.</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateInstaller</name>
+ <message>
+ <source>Downloading updates...</source>
+ <translation type="obsolete">Lade Aktualisierungen herunter...</translation>
+ </message>
+ <message>
+ <source>Updates downloaded...</source>
+ <translation type="obsolete">Aktualisierungen heruntergeladen.</translation>
+ </message>
+ <message>
+ <source>Installing %1..</source>
+ <translation type="obsolete">Installiere %1...</translation>
+ </message>
+ <message>
+ <source>Finished installing updates. Now removing temporary files and directories..</source>
+ <translation type="obsolete">Aktualisierungen installaiert. Temporäre Dateien und Ordner werden entfernt.</translation>
+ </message>
+ <message>
+ <source>Removed temporary files and directories</source>
+ <translation type="obsolete">Temporäre Dateien und Ordner wurden entfernt.</translation>
+ </message>
+ <message>
+ <source>Could not download update &apos;%1&apos;</source>
+ <translation type="obsolete">Konnte Aktualisierungen &apos;%1&apos; nicht herunterladen.</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t uncompress update: %1</source>
+ <translation type="obsolete">Konnte Aktualisierung nicht auspacken. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <source>Could not find UpdateInstructions.xml for %1</source>
+ <translation type="obsolete">Konnte UpdateInstructions.xml für Aktualisierung %1 nicht finden.</translation>
+ </message>
+ <message>
+ <source>Could not read UpdateInstructions.xml of %1</source>
+ <translation type="obsolete">Konnte UpdateInstructions.xml für Aktualisierung %1 nicht lesen.</translation>
+ </message>
+ <message>
+ <source>Installing %1</source>
+ <translation type="obsolete">Installiere %1...</translation>
+ </message>
+ <message>
+ <source>Update operation %1 not supported</source>
+ <translation type="obsolete">Aktualisierungsanweisung %1 nicht unterstützt.</translation>
+ </message>
+ <message>
+ <source>Cannot execute &apos;%1&apos;</source>
+ <translation type="obsolete">Konnte Aktualisierungsanweisung %1 nicht ausführen.</translation>
+ </message>
+ <message>
+ <source>Finished installing update %1</source>
+ <translation type="obsolete">Installieren von Aktualisierung %1 abgeschlossen.</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdatePackageOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="971"/>
+ <source>Invalid arguments: %1 arguments given, 3 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 3 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="980"/>
+ <source>Cannot update %1-%2</source>
+ <translation>Aktualisierung von %1-%2 nicht möglich.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="993"/>
+ <source>Cannot restore %1-%2</source>
+ <translation>Wiederherstelung von %1-%2 nicht möglich.</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateSourcesInfo</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="126"/>
+ <source>%1 contains invalid content: %2</source>
+ <translation>Datei %1 enthält ungültige Inhalte: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="326"/>
+ <source>Could not read &quot;%1&quot;</source>
+ <translation>Konnte Datei &quot;%1&quot; nicht lesen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="338"/>
+ <source>XML Parse error in %1 at %2, %3: %4</source>
+ <translation>Ungültiges XML in Datei %1, Zeile %2, Spalte %3. Fehlermeldung: %4</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="350"/>
+ <source>Root element %1 unexpected, should be &quot;UpdateSources&quot;</source>
+ <translation>Unerwartetes Wurzelelement %1, erwartet wird &quot;UpdateSources&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="397"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="408"/>
+ <source>Could not save changes to &quot;%1&quot;: %2</source>
+ <translation>Konnte Änderungen nicht in Datei %1 speichern. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdatesInfoData</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="61"/>
+ <source>Updates.Xml contains invalid content: %1</source>
+ <translation>Inhalt von Datei Updates.xml ungültig: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="69"/>
+ <source>Could not read &quot;%1&quot;</source>
+ <translation>Konnte Datei &quot;%1&quot; nicht lesen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="79"/>
+ <source>Parse error in %1 at %2, %3: %4</source>
+ <translation>Ungültiges XML in Datei %1, Zeile %2, Spalte %3. Fehlermeldung: %4</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="89"/>
+ <source>root element %1 unexpected, should be &quot;Updates&quot;</source>
+ <translation>Unerwartetes Wurzelelement %1, erwartet wird &quot;Updates&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="122"/>
+ <source>ApplicationName element is missing</source>
+ <translation>Element &quot;ApplicationName&quot; fehlt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="127"/>
+ <source>ApplicationVersion element is missing</source>
+ <translation>Element &quot;ApplicationVersion&quot; fehlt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="183"/>
+ <source>PackageUpdate element without Name</source>
+ <translation>Element &quot;PackageUpdate&quot; braucht ein Feld &quot;Name&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="187"/>
+ <source>PackageUpdate element without Version</source>
+ <translation>Element &quot;PackageUpdate&quot; braucht ein Feld &quot;Version&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="191"/>
+ <source>PackageUpdate element without ReleaseDate</source>
+ <translation>Element &quot;PackageUpdate&quot; braucht ein Feld &quot;ReleaseDate&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="195"/>
+ <source>PackageUpdate element without UpdateFile</source>
+ <translation>Element &quot;PackageUpdate&quot; braucht ein Feld &quot;UpdateFile&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="232"/>
+ <source>CompatUpdate element without CompatLevel</source>
+ <translation>Element &quot;CompatUpdate&quot; braucht ein Feld &quot;CompatLevel&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="237"/>
+ <source>CompatUpdate element without ReleaseDate</source>
+ <translation>Element &quot;CompatUpdate&quot; braucht ein Feld &quot;ReleaseDate&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="242"/>
+ <source>CompatUpdate element without UpdateFile</source>
+ <translation>Element &quot;CompatUpdate&quot; braucht ein Feld &quot;UpdateFile&quot;.</translation>
+ </message>
+</context>
+<context>
+ <name>Lib7z::ExtractItemJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1355"/>
+ <source>Could not list archive: QIODevice not set or already destroyed.</source>
+ <translation>Kann Archiv nicht anzeigen: QIODevice ist nicht gesetzt oder bereits zerstört.</translation>
+ </message>
+</context>
+<context>
+ <name>Lib7z::ListArchiveJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="679"/>
+ <source>Could not list archive: QIODevice already destroyed.</source>
+ <translation>Kann Archiv nicht anzeigen: QIODevice ist bereits zerstört.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller</name>
+ <message>
+ <source>Cannot map file %1.</source>
+ <translation type="obsolete">Kann Datei %1. nicht mappen.</translation>
+ </message>
+ <message>
+ <source>Cannot unmap file %1.</source>
+ <translation type="obsolete">Kann Datei %1. nicht unmappen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::AddQtCreatorArrayValueOperation</name>
+ <message>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="64"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 4 expected (group, arrayname, key, value).</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 4 erwartet (group, arrayname, key, value).</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="73"/>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="125"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation>Das für die Anweisung %1 benötigte Installerobjekt ist leer.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::Component</name>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="212"/>
+ <source>%L1 Bytes</source>
+ <translation>%L1 Bytes</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="215"/>
+ <source>%L1 kBytes</source>
+ <translation>%L1 kBytes</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="218"/>
+ <source>%L1 MBytes</source>
+ <translation>%L1 MBytes</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="221"/>
+ <source>%L1 GBytes</source>
+ <translation>%L1 GBytes</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="383"/>
+ <source>Could not open the requested script file at %1: %2.</source>
+ <translation>Konnte angeforderte Skriptdatei %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="388"/>
+ <location filename="../../libinstaller/component.cpp" line="408"/>
+ <source>Exception while loading the component script: %1</source>
+ <translation>Ausnahme beim Laden des Komponentenskripts: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="477"/>
+ <source>Could not open the requested translation file at %1</source>
+ <translation>Konnte angeforderte Übersetzungsdatei %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="496"/>
+ <source>Could not open the requested UI file at %1: %2</source>
+ <translation>Konnte angeforderte UI-Datei %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="525"/>
+ <source>Could not open the requested license file at %1: %2</source>
+ <translation>Konnte angeforderte Lizenzdatei %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="836"/>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="836"/>
+ <source>Error: Operation %1 does not exist</source>
+ <translation>Fehler: Anweisung %1 existiert nicht.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="1010"/>
+ <source>Can&apos;t resolve isAutoDependOn in %1</source>
+ <translation>Kann isAutoDependOn in %1 nicht auflösen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="1050"/>
+ <source>Can&apos;t resolve isDefault in %1</source>
+ <translation>Kann isDefault in %1 nicht auflösen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ComponentSelectionPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="995"/>
+ <source>Component Name</source>
+ <translation>Komponentenname</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="997"/>
+ <source>Installed Version</source>
+ <translation>Installierte Version</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="998"/>
+ <source>New Version</source>
+ <translation>Neue Version</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="999"/>
+ <source>Size</source>
+ <translation>Grösse</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1030"/>
+ <source>Alt+A</source>
+ <comment>select default components</comment>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1031"/>
+ <source>Def&amp;ault</source>
+ <translation>St&amp;andard</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1036"/>
+ <source>Alt+R</source>
+ <comment>reset to already installed components</comment>
+ <translation>Alt+Z</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1037"/>
+ <source>&amp;Reset</source>
+ <translation>&amp;Zurücksetzen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1046"/>
+ <source>Alt+S</source>
+ <comment>select all components</comment>
+ <translation>Alt+S</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1047"/>
+ <source>&amp;Select All</source>
+ <translation>Alle au&amp;swählen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1053"/>
+ <source>Alt+D</source>
+ <comment>deselect all components</comment>
+ <translation>Alt+B</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1054"/>
+ <source>&amp;Deselect All</source>
+ <translation>Alle a&amp;bwählen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1120"/>
+ <source>%1</source>
+ <translation>!!%1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1121"/>
+ <source>This component will occupy approximately %1 on your hard disk drive.</source>
+ <translation>Diese Komponente wird ungefähr %1 auf ihrer Festplatte belegen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1194"/>
+ <source>Select Components</source>
+ <translation>Komponenten auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1205"/>
+ <source>Please select the components you want to update.</source>
+ <translation>Bitte wählen sie die Komponenten aus, die sie aktualisieren möchten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1206"/>
+ <source>Please select the components you want to install.</source>
+ <translation>Bitte wählen sie die Komponenten aus, die sie installieren möchten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1207"/>
+ <source>Please select the components you want to uninstall.</source>
+ <translation>Bitte wählen sie die Komponenten aus, die sie entfernen möchten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1208"/>
+ <source>Select the components to install. Deselect installed components to uninstall them.</source>
+ <translation>Bitte wählen sie die Komponenten aus, die sie installieren möchten. Wählen sie die Komponenten ab, die sie entfernen möchten.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ComponentSelectionPage::Private</name>
+ <message>
+ <source>Component Name</source>
+ <translation type="obsolete">Komponentenname</translation>
+ </message>
+ <message>
+ <source>Installed Version</source>
+ <translation type="obsolete">Installierte Version</translation>
+ </message>
+ <message>
+ <source>New Version</source>
+ <translation type="obsolete">Neue Version</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation type="obsolete">Grösse</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <comment>select default components</comment>
+ <translatorcomment>Standardkomponenten auswählen</translatorcomment>
+ <translation type="obsolete">Alt+A</translation>
+ </message>
+ <message>
+ <source>Def&amp;ault</source>
+ <translation type="obsolete">St&amp;andard</translation>
+ </message>
+ <message>
+ <source>Alt+R</source>
+ <comment>reset to already installed components</comment>
+ <translatorcomment>Auf die bereits installierten Komponenten zurücksetzen</translatorcomment>
+ <translation type="obsolete">Alt+R</translation>
+ </message>
+ <message>
+ <source>&amp;Reset</source>
+ <translation type="obsolete">Zu&amp;rücksetzen</translation>
+ </message>
+ <message>
+ <source>Alt+S</source>
+ <comment>select all components</comment>
+ <translatorcomment>Alle Komponenten auswählen</translatorcomment>
+ <translation type="obsolete">Alt+S</translation>
+ </message>
+ <message>
+ <source>&amp;Select All</source>
+ <translation type="obsolete">Alle au&amp;swählen</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <comment>deselect all components</comment>
+ <translatorcomment>Alle Komponenten abwählen</translatorcomment>
+ <translation type="obsolete">Alt+B</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation type="obsolete">Alle a&amp;bwählen</translation>
+ </message>
+ <message>
+ <source>%1</source>
+ <translation type="obsolete">!!%1</translation>
+ </message>
+ <message>
+ <source>This component will occupy approximately %1 on your hard disk drive.</source>
+ <translation type="obsolete">Diese Komponente wird ungefähr %1 auf ihrer Festplatte belegen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CopyDirectoryOperation</name>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="70"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="81"/>
+ <source>Invalid arguments in %0: Directories are invalid: %1 %2</source>
+ <translation>Ungültige Argumentein %0: Ordner %1 und %2 ungültig.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="114"/>
+ <source>Could not create %0</source>
+ <translation>Konnte Ordner &quot;%1&quot; nicht anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="120"/>
+ <source>Could not copy %0 to %1</source>
+ <translation>Konnte Ordner %0 nicht nach %1 kopieren.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="140"/>
+ <source>Could not remove %0</source>
+ <translation>Konnte Datei %0 nicht löschen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CreateDesktopEntryOperation</name>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="137"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="147"/>
+ <source>Failed to overwrite %1</source>
+ <translation>Konnte Datei %1 nicht überschreiben.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="154"/>
+ <source>Could not write Desktop Entry at %1</source>
+ <translation>Konnte keinen Eintrag %1 auf dem Arbeitsplatz anlegen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CreateShortcutOperation</name>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="161"/>
+ <source>Could not create folder %1: %2.</source>
+ <translation>Konnte Ordner %1 nicht anlegen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="179"/>
+ <source>Could not create link %1: %2</source>
+ <translation>Konnte Verweis %1 nicht anlegen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::DownloadArchivesJob</name>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="115"/>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="164"/>
+ <source>Canceled</source>
+ <translation>Abgebrochen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="151"/>
+ <source>Downloading hash signature failed.</source>
+ <translation>Herunterladen der Prüfsumme fehlgeschlagen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="245"/>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="281"/>
+ <source>Download Error</source>
+ <translation>Fehler beim Herunterladen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="245"/>
+ <source>Hash verification while downloading failed. This is a temporary error, please retry.</source>
+ <translation>Prüfsumme ungültig beim Herunterladen. Dies ist ein kurzzeitiger Fehler, bitte erneut versuchen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="250"/>
+ <source>Could not verify Hash</source>
+ <translation>Prüfsumme konnte nicht geprüft werden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="258"/>
+ <source>Could not open %1</source>
+ <translation>Konnte Datei &quot;%1&quot; nicht öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="281"/>
+ <source>Could not download archive: %1 : %2</source>
+ <translation>Konnte Archiv %1 nicht herunterladen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="293"/>
+ <source>Could not fetch archives: %1
+Error while loading %2</source>
+ <translation>Konnte Archiv nicht laden. Fehler: %1
+Fehler beim Laden von %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="330"/>
+ <source>Downloading archive hash for component: %1</source>
+ <translation>Prüfsumme für Komponente %1 wird heruntergeladen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="332"/>
+ <source>Downloading archive for component: %1</source>
+ <translation>Archiv für Komponente %1 wird heruntergeladen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="335"/>
+ <source>Scheme not supported: %1 (%2)</source>
+ <translation>Schema &quot;%1&quot; nicht unterstützt in &quot;%2&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="338"/>
+ <source>Could not find component for: %1.</source>
+ <translation>Konnte keine Komponente für Datei %1 finden.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ElevatedExecuteOperation</name>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="81"/>
+ <source>Invalid arguments in %1: %2 arguments given, at least 1 expected.</source>
+ <translation>Ungültige Argumente in %1: %2 Argumente erhalten, mindestens 1 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="135"/>
+ <source>Execution failed: Could not start detached: &quot;%1&quot;</source>
+ <translation>Ausführung fehlgeschlagen: Konnte %1 nicht detached starten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="187"/>
+ <source>Execution failed: Could not start: &quot;%1&quot;</source>
+ <translation>Ausführung fehlgeschlagen: Konnte %1 nicht starten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="202"/>
+ <source>Execution failed(Crash): &quot;%1&quot;</source>
+ <translation>Ausführung fehlgeschlagen (Absturz): &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="208"/>
+ <source>Execution failed(Unexpected exit code: %1): &quot;%2&quot;</source>
+ <translation>Ausführung fehlgeschlagen (Unerwarteter Fehlercode %1): &quot;%2&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::EnvironmentVariableOperation</name>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="132"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2-3 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, 2-3 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ExtractArchiveOperation</name>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ExtractArchiveOperation::Runnable</name>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="177"/>
+ <source>Could not open %1 for reading: %2.</source>
+ <translation>Konnte Datei %1 nicht zum Lesen öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="186"/>
+ <source>Error while extracting %1: %2. (Maybe the target dir(%3) is blocked by another process.)</source>
+ <translation>Fehler beim Auspacken von %1. Fehlermeldung: %2 (Eventuell ist das Zielverzeichnis &quot;%3&quot; durch einen anderen Prozess blockiert.)</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="189"/>
+ <source>Error while extracting %1: %2.</source>
+ <translation>Fehler beim Auspacken von %1. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="192"/>
+ <source>Unknown exception caught while extracting %1.</source>
+ <translation>Beim Auspacken von %1 trat eine unbekannte Ausnahmebedingung auf.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::FakeStopProcessForUpdateOperation</name>
+ <message>
+ <location filename="../../libinstaller/fakestopprocessforupdateoperation.cpp" line="113"/>
+ <source>These processes should be stopped to continue:
+
+%1</source>
+ <translation>Diese Prozesse sollten beendet werden, um fortsetzen zu können:
+
+%1</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::FinishedPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1836"/>
+ <source>Completing the %1 Wizard</source>
+ <translation>Beende den %1 Assistenten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1844"/>
+ <source>Click Done to exit the %1 Wizard.</source>
+ <translation>Klicken sie &quot;Fertig&quot;, um den %1 Assistenten zu beenden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1844"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1847"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1899"/>
+ <source>%1</source>
+ <translation>!!%1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1847"/>
+ <source>Click Finish to exit the %1 Wizard.</source>
+ <translation>Klicken sie &quot;Fertig&quot;, um den %1 Assistenten zu beenden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1878"/>
+ <source>Restart</source>
+ <translation>Neu starten</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1903"/>
+ <source>Run %1 now.</source>
+ <translation>Starte jetzt %1.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1909"/>
+ <source>The %1 Wizard failed.</source>
+ <translation>Der %1 Assistent ist fehlgeschlagen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GetRepositoryMetaInfoJob</name>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="196"/>
+ <source>Empty repository URL.</source>
+ <translation>Leere Quelladresse.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="201"/>
+ <source>Invalid repository URL: %1.</source>
+ <translation>Ungültige Quelladresse: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="207"/>
+ <source>URL scheme not supported: %1 (%2).</source>
+ <translation>Adressschema &quot;%1&quot; nicht unterstützt in Adresse &quot;%2&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="236"/>
+ <source>Retrieving component meta information...</source>
+ <translation>Empfange Komponentenmetainformationen...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="252"/>
+ <source>Could not move Updates.xml to target location: %1.</source>
+ <translation>Konnte Updates.xml nicht an die Zieladresse verschieben. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="258"/>
+ <source>Could not open Updates.xml for reading: %1.</source>
+ <translation>Konnte Updates.xml nicht zum Lesen öffnen. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="266"/>
+ <source>Could not fetch a valid version of Updates.xml from repository: %1. Error: %2.</source>
+ <translation>Konnte keine gültige Version der Updates.xml aus der Quelle %1 herunterladen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="271"/>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="371"/>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="494"/>
+ <source>Download Error</source>
+ <translation>Fehler beim Herunterladen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="279"/>
+ <source>Parsing component meta information...</source>
+ <translation>Einlesen der Metainformationen...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="328"/>
+ <source>Repository updates received.</source>
+ <translation>Quellenaktualisierung erhalten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="354"/>
+ <source>Finished updating component meta information...</source>
+ <translation>Aktualisierung der Metainfoarmationen beendet...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="365"/>
+ <source>Could not fetch Updates.xml from repository: %1. Error: %2</source>
+ <translation>Konnte keine Updates.xml aus der Quelle %1 herunterladen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="488"/>
+ <source>Could not download meta information for component: %1. Error: %2</source>
+ <translation>Konnte Metainformationen der Komponente %1 nicht herunterladen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <source>Could not fetch Updates.xml from repository: %1. Error: %2.</source>
+ <translation type="obsolete">Konnte keine Updates.xml aus der Quelle %1 herunterladen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="387"/>
+ <source>Retrieving component information from remote repository...</source>
+ <translation>Empfange Komponenten Informationen aus der Quelle...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="456"/>
+ <source>Could not open meta info archive: %1. Error: %2.</source>
+ <translation>Konnte Archiv mit Metainformationen %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="469"/>
+ <source>Bad hash.</source>
+ <translation>Ungültige Prüfsumme.</translation>
+ </message>
+ <message>
+ <source>The RSA signature of one component could not be verified.</source>
+ <translation type="obsolete">Die Prüfsumme einer Komponente konnte nicht überprüft werden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="468"/>
+ <source>The hash of one component does not match the expected one.</source>
+ <translation>Die Prüfsumme einer Komponente entsprach nicht der erwateten.</translation>
+ </message>
+ <message>
+ <source>Could not download meta information for component: %1. Error: %2.</source>
+ <translation type="obsolete">Konnte Metainformationen der Komponente %1 nicht herunterladen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GetRepositoryMetaInfoJob::ZipRunnable</name>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="93"/>
+ <source>Error while extracting %1: %2.</source>
+ <translation>Fehler beim Auspacken von %1. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="95"/>
+ <source>Unknown exception caught while extracting %1.</source>
+ <translation>Beim Auspacken von %1 trat eine unbekannte Ausnahmebedingung auf.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="98"/>
+ <source>Could not open %1 for reading: %2.</source>
+ <translation>Konnte Datei %1 nicht zum Lesen öffnen. Fehlermeldung: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GlobalSettingsOperation</name>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="56"/>
+ <source>Settings are not writable</source>
+ <translation>Einstellungen konnten nicht geschrieben werden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="66"/>
+ <source>Failed to write settings</source>
+ <translation>Einstellungen konnten nicht geschrieben werden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="120"/>
+ <source>Invalid arguments in 0%: %1 arguments given, at least 3 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, mindestens 3 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::InstallIconsOperation</name>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="132"/>
+ <source>Invalid arguments in %0: %1 arguments given, 1 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 1 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::IntroductionPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="788"/>
+ <source>Setup - %1</source>
+ <translation>Einrichten - %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="794"/>
+ <source>Welcome to the %1 Setup Wizard.</source>
+ <translation>Willkomen zum %1 Einrichtungsassistenten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="794"/>
+ <source>%1</source>
+ <translation>!!%1</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LicenseAgreementPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="854"/>
+ <source>License Agreement</source>
+ <translation>Lizenzabkommen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="855"/>
+ <source>Please read the following license agreement(s). You must accept the terms contained in these agreement(s) before continuing with the installation.</source>
+ <translation>Bitte lesen sie die folgenden Lizanzabkommen. Sie müssen die Bedingungen in diesen Abkommen akzeptieren, um die Installation fortsetzen zu können.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="881"/>
+ <source>Alt+A</source>
+ <comment>agree license</comment>
+ <translatorcomment>Lizenz akzeptieren</translatorcomment>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="903"/>
+ <source>I do not accept the licenses.</source>
+ <translation>Ich akzeptiere die Bedingungen der obigen Lizenzvereinbarungen &amp;nicht. Bitte beachten sie, dass diese Auswahl bedeutet, dass sie die Installation und das Herunterladen des Qt SDK abbrechen und dass sie alle Kopien des Qt SDK und alle Teile davon, die sich in ihrem Besitz befinden, löschen müssen.</translation>
+ </message>
+ <message>
+ <source>I h&lt;u&gt;a&lt;/u&gt;ve read and agree to the following terms contained in the license agreements accompanying the Qt SDK and additional items. I agree that my use of the Qt SDK is governed by the terms and conditions contained in these license agreements.</source>
+ <translation type="obsolete">Ich habe die Bedingungen der folgenden Lizenzvereinbarungen zum Qt SDK und dazugehörigen Bestandteilen gelesen und &amp;akzeptiert. Ich bin damit einverstanden, dass meine Benutzung des Qt SDK durch die Bedingungen in diesen Lizenzvereinbarungen bestimmt wird.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="891"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="903"/>
+ <source>%1</source>
+ <translation>!!%1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="891"/>
+ <source>I accept the licenses.</source>
+ <translation>Ich habe die Bedingungen der folgenden Lizenzvereinbarungen zum Qt SDK und dazugehörigen Bestandteilen gelesen und &amp;akzeptiert. Ich bin damit einverstanden, dass meine Benutzung des Qt SDK durch die Bedingungen in diesen Lizenzvereinbarungen bestimmt wird.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="896"/>
+ <source>Alt+D</source>
+ <comment>do not agree license</comment>
+ <translatorcomment>Der Lizenz nicht zustimmen</translatorcomment>
+ <translation>Alt+N</translation>
+ </message>
+ <message>
+ <source>I &lt;u&gt;d&lt;/u&gt;o not accept the terms and conditions of the above listed license agreements. Please note by checking the box, you must cancel the installation or downloading the Qt SDK and must destroy all copies, or portions thereof, of the Qt SDK in your possessions.</source>
+ <translation type="obsolete">Ich akzeptiere die Bedingungen der obigen Lizenzvereinbarungen &amp;nicht. Bitte beachten sie, dass diese Auswahl bedeutet, dass sie die Installation und das Herunterladen des Qt SDK abbrechen und dass sie alle Kopien des Qt SDK und alle Teile davon, die sich in ihrem Besitz befinden, löschen müssen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LicenseOperation</name>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="58"/>
+ <source>No license files found to copy.</source>
+ <translation>Keine Lizenzdateien zum Kopieren gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="65"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation>Das für die Anweisung %1 benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="80"/>
+ <source>Can not write license file: %1.</source>
+ <translation>Konnte Lizenzdatei %1 nicht schreiben.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="97"/>
+ <source>No license files found to delete.</source>
+ <translation>Keine Lizenzdateien zum Löschen gefunden.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LineReplaceOperation</name>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="60"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 3 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 3 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::MacReplaceInstallNamesOperation</name>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="66"/>
+ <source>Invalid arguments in %0: %1 arguments given, 3 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 3 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="144"/>
+ <source>Can&apos;t invoke otool. Is Xcode installed?</source>
+ <translation>Konnte otool nicht aufrufen. Ist Xcode installiert?</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="262"/>
+ <source>Can&apos;t start process %0.</source>
+ <translation>Konnte Prozess %0 nicht starten.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerCore</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="262"/>
+ <source>Error writing Uninstaller</source>
+ <translation>Fehler beim Schreiben des Deinstallers</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="364"/>
+ <source>
+Downloading packages...</source>
+ <translation>
+Lade Pakete herunter...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="388"/>
+ <source>Installation canceled by user</source>
+ <translation>Installation durch den Nutzer abgebrochen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="389"/>
+ <source>All downloads finished.</source>
+ <translation>Alle Herunterladeprozesse abgeschlossen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="406"/>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1781"/>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="422"/>
+ <source>Cancelling the Installer</source>
+ <translation>Breche den Installationsvorgang ab</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="465"/>
+ <source>Authentication Error</source>
+ <translation>Autentifizierungsfehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="465"/>
+ <source>Some components could not be removed completely because admin rights could not be acquired: %1.</source>
+ <translation>Einige Komponenten konnten nicht vollständig entfernt werden, weil die nötigen Systemverwalterrechte nicht erlangt werden konnten. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="470"/>
+ <source>Unknown error.</source>
+ <translation>Unbekannter Fehler.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="470"/>
+ <source>Some components could not be removed completely because an unknown error happened.</source>
+ <translation>Einige Komponenten konnten nicht vollständig entfernt werden, weil ein unbekannter Fehler auftrat.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="561"/>
+ <source>Application not running in Package Manager mode!</source>
+ <translation>Die Anwendung ist nicht im Paketverwaltermodus!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="568"/>
+ <source>No installed packages found.</source>
+ <translation>Keine installierten Pakete gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="645"/>
+ <source>Application running in Uninstaller mode!</source>
+ <translation>Die Anwendung befindet sich im Deinstallierermodus!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1812"/>
+ <source>invalid</source>
+ <translation>ungültig</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerCorePrivate</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="327"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1458"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1621"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1712"/>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="439"/>
+ <source>Component(s) added as automatic dependencies</source>
+ <translation>Komponenten, die als automatische Abhängigkeiten zugefügt wurden</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="481"/>
+ <source>Added as dependency for %1.</source>
+ <translation>Als Abhängigkeit für %1 zugefügt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="490"/>
+ <source>Component(s) that have resolved Dependencies</source>
+ <translation>Komponenten, die aufgelöste Abhängigkeiten besitzen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="499"/>
+ <source>Selected Component(s) without Dependencies</source>
+ <translation>Ausgewählte Komponenten ohne Abhängigkeiten</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="807"/>
+ <source>Access error</source>
+ <translation>Zugriffsfehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="808"/>
+ <source>Format error</source>
+ <translation>Formatfehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="809"/>
+ <source>Could not write installer configuration to %1: %2</source>
+ <translation>Konnte Einstellungen des Installers nicht nach %1 schreiben. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="926"/>
+ <source>Stop Processes</source>
+ <translation>Prozesse anhalten</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="926"/>
+ <source>These processes should be stopped to continue:
+
+%1</source>
+ <translation>Diese Prozesse sollten beendet werden, um fortsetzen zu können:
+
+%1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="934"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1740"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1918"/>
+ <source>Installation canceled by user</source>
+ <translation>Installation durch den Nutzer abgebrochen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1052"/>
+ <source>Could not write uninstaller to %1: %2</source>
+ <translation>Konnte Deinstaller nicht nach %1 schreiben. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1262"/>
+ <source>Found a binary data file, but we are the installer and we should read the binary resource from our very own binary!</source>
+ <translation>Binäre Quelldatei gefunden, aber als Installer sollten wir die binären Quellen aus unserer eigenen Binärdatei lesen!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1286"/>
+ <source>Could not write uninstaller binary data to %1: %2</source>
+ <translation>Konnte Binäre Datei des Deinstallers nicht nach %1 schreiben. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1333"/>
+ <source>ProductName should be set</source>
+ <translation>ProductName muss gesetzt sein</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1358"/>
+ <source>Variable &apos;TargetDir&apos; not set.</source>
+ <translation>TargetDir muss gesetzt sein.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1396"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1582"/>
+ <source>Preparing the installation...</source>
+ <translation>Bereite Installation vor...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1439"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1602"/>
+ <source>Creating Uninstaller</source>
+ <translation>Erstelle Deinstallierer</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1448"/>
+ <source>
+Installation finished!</source>
+ <translation>
+Installation abgeschlossen!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1464"/>
+ <source>
+Installation aborted!</source>
+ <translation>
+Installation abgebrochen!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1588"/>
+ <source>Removing deselected components...</source>
+ <translation>Entferne abgewählte Komponenten...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1611"/>
+ <source>
+Update finished!</source>
+ <translation>
+Aktualisierung beendet!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1627"/>
+ <source>
+Update aborted!</source>
+ <translation>
+Aktualisierung abgebrochen!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1704"/>
+ <source>
+Deinstallation finished!</source>
+ <translation>
+Deinstallation abgeschlossen!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1715"/>
+ <source>
+Deinstallation aborted!</source>
+ <translation>
+Deinstallation abgebrochen!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1734"/>
+ <source>
+Installing component %1</source>
+ <translation>
+Installiere Komponente %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1763"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1935"/>
+ <source>Installer Error</source>
+ <translation>Installationsfehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1764"/>
+ <source>Error during installation process (%1):
+%2</source>
+ <translation>Fehler beim Installieren von Komponente %1:
+%2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1830"/>
+ <source>Cannot prepare uninstall</source>
+ <translation>Kann Deinstallation nicht vorbereiten</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1861"/>
+ <source>Cannot start uninstall</source>
+ <translation>Kann Deinstallation nicht starten</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1936"/>
+ <source>Error during uninstallation process:
+%1</source>
+ <translation>Fehler bei der Deinstallation:
+%1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1971"/>
+ <source>Unknown error</source>
+ <translation>Unbekannter Fehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1990"/>
+ <source>Could not retrieve remote tree: %1.</source>
+ <translation>Kann entfernten Baum nicht empfangen: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2019"/>
+ <source>Failure to read packages from: %1.</source>
+ <translation>Fehler beim Lesen der Pakete von %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2045"/>
+ <source>Could not retrieve meta information: %1</source>
+ <translation>Konnte die Metainformationen nicht empfangen: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2100"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2111"/>
+ <source>Could not add temporary update source information.</source>
+ <translation>Konnte Informationen zu temporären Aktualisierungsquellen nicht hinzufügen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2124"/>
+ <source>Could not find any update source information.</source>
+ <translation>Konnte keine Informationen zu Aktualisierungsquellen finden.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerGui</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="238"/>
+ <source>%1 Setup</source>
+ <translation>%1 Einrichtung</translation>
+ </message>
+ <message>
+ <source>%1</source>
+ <translation type="obsolete">!!%1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="240"/>
+ <source>Maintain %1</source>
+ <translation>%1 verwalten</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="540"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="554"/>
+ <source>Question</source>
+ <translation>Frage</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="541"/>
+ <source>Do you want to abort the %1 process?</source>
+ <translation>Möchten sie den %1 Vorgang abbrechen?</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="541"/>
+ <source>uninstallation</source>
+ <translation>Deinstallation</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="542"/>
+ <source>installation</source>
+ <translation>Installation</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="546"/>
+ <source>installer</source>
+ <translation>Installer</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="548"/>
+ <source>uninstaller</source>
+ <translation>Deinstaller</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="550"/>
+ <source>maintenance</source>
+ <translation>Wartung</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="555"/>
+ <source>Do you want to abort the %1 application?</source>
+ <translation>Möchten sie die %1 Anwendung abbrechen?</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="596"/>
+ <source>Settings</source>
+ <translation>Einstellungen</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="675"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="680"/>
+ <source>%1</source>
+ <translation>!!%1</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PerformInstallationForm</name>
+ <message>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="86"/>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="136"/>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="153"/>
+ <source>&amp;Show Details</source>
+ <translation>&amp;Zeige Details</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="136"/>
+ <source>&amp;Hide Details</source>
+ <translation>&amp;Verstecke Details</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PerformInstallationPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1770"/>
+ <source>&amp;Uninstall</source>
+ <translation>&amp;Deinstallieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1771"/>
+ <source>Uninstalling %1</source>
+ <translation>Deinstalliere %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1775"/>
+ <source>&amp;Update</source>
+ <translation>&amp;Aktualisieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1776"/>
+ <source>Updating components of %1</source>
+ <translation>Aktualisiere Komponenten des %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1780"/>
+ <source>&amp;Install</source>
+ <translation>&amp;Installieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1781"/>
+ <source>Installing %1</source>
+ <translation>Installiere %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1799"/>
+ <source>%1</source>
+ <translation>!!%1</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::QtPatchOperation</name>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="129"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="140"/>
+ <source>First argument should be &apos;linux&apos;, &apos;mac&apos; or &apos;windows&apos;. No other type is supported at this time.</source>
+ <translation>Das erste Argument muss entweder &apos;linux&apos;, &apos;mac&apos; oder &apos;windows&apos; lauten. Keine anderen Typen werden zur Zeit unterstützt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="155"/>
+ <source>QMake from the current Qt version
+(%1)is not existing. Please file a bugreport with this dialog at https://bugreports.qt-project.org.</source>
+ <translation>Das QMake der aktuell verwendeten Qt Version
+(%1) kann nicht gefunden werden. Bitte erstellen sie einen Bugreport unter https://bugreports.qt-project.org.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="165"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: &quot;%2&quot;</source>
+ <translation>Die Ausgabe von
+%1 -query
+ist ungültig. Bitte erstellen sie einen Bugreport unter https://bugreports.qt-project.org.
+Ausgabe: &quot;%2&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="177"/>
+ <source>Qt patch error: new Qt dir(%1)
+needs to be less than 255 characters.</source>
+ <translation>Qt patch Fehler: neuer Qt Ordnername (%1)
+darf nicht mehr als 255 Zeichen lang sein.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="194"/>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="244"/>
+ <source>Qt patch error: Can not open %1.(%2)</source>
+ <translation>Qt patch Fehler: Kann %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="306"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation>Das für die Anweisung &quot;%1&quot; benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="313"/>
+ <source>Error while relocating Qt: %1</source>
+ <translation>Fehler beim Relocaten von Qt: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="319"/>
+ <source>The installer was not able to get the unpatched path from
+%1.(maybe it is broken or removed)
+It tried to patch the Qt binaries, but all other files in Qt are unpatched.
+This could result in a broken Qt version.
+Sometimes it helps to restart the installer with a switched off antivirus software.</source>
+ <translation>Der Installer konnte den ursprünglichen Pfad aus %1
+nicht lesen (möglicherweise ist es beschädigt oder entfernt).
+Er hat versucht, die Qt Binärdateien trotzdem zu patchen, aber alle anderen
+Dateien im Qt sind ungepatcht. Das kann zu einer beschädigten Qt Version führen.
+Eventuell hilft es, einen laufenden Virenscanner auszuschalten und den Installer erneut zu starten.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ReadyForInstallationPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1521"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1700"/>
+ <source>&amp;Show Details</source>
+ <translation>&amp;Zeige Details</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1554"/>
+ <source>U&amp;ninstall</source>
+ <translation>&amp;Deinstallieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1555"/>
+ <source>Ready to Uninstall</source>
+ <translation>Bereit zum Deinstallieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1556"/>
+ <source>Setup is now ready to begin removing %1 from your computer.&lt;br&gt;&lt;font color=&quot;red&quot;&gt;The program dir %2 will be deleted completely&lt;/font&gt;, including all content in that directory!</source>
+ <translation>Das Einrichtungsprogramm ist jetzt bereit, %1 von ihrem Computer zu entfernen. &lt;br&gt;&lt;font color=&quot;red&quot;&gt;Das Programmverzeichnis %2 wird vollständig gelöscht&lt;/font&gt;, inklusive allen Inhalten in diesem Ordner!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1564"/>
+ <source>U&amp;pdate</source>
+ <translation>&amp;Aktualisieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1565"/>
+ <source>Ready to Update Packages</source>
+ <translation>Bereit zum Aktualisieren der Pakete</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1566"/>
+ <source>Setup is now ready to begin updating your installation.</source>
+ <translation>Das Einrichtungsprogramm ist jetzt bereit, ihre Installation zu aktualisieren.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1569"/>
+ <source>&amp;Install</source>
+ <translation>&amp;Installieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1570"/>
+ <source>Ready to Install</source>
+ <translation>Bereit zum Installieren</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1571"/>
+ <source>Setup is now ready to begin installing %1 on your computer.</source>
+ <translation>Das Einrichtungsprogramm ist jetzt bereit, %1 auf ihrem Computer einzurichten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1617"/>
+ <source>Not enough disk space to store temporary files and the installation! Available space: %1, at least required %2.</source>
+ <translation>Nicht genügend Plattenplatz für temporäre Dateien und die Installation! Verfügbarer Platz: %1, mindestens benötigt: %2.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1624"/>
+ <source>Not enough disk space to store all selected components! Available space: %1, at least required: %2.</source>
+ <translation>Nicht genügend Plattenplatz für alle ausgewählten Komponenten! Verfügbarer Platz: %1, mindestens benötigt: %2.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1631"/>
+ <source>Not enough disk space to store temporary files! Available space: %1, at least required: %2.</source>
+ <translation>Nicht genügend Plattenplatz für temporäre Dateien! Verfügbarer Platz: %1, mindestens benötigt: %2.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1639"/>
+ <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. %1</source>
+ <translation>Die für die Installation ausgewählte Partition scheint genügend Platz zu bieten, aber es werden anschließend weniger als 1% der Partitionsgröße verfügbar sein. %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1644"/>
+ <source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 100 MB available afterwards. %1</source>
+ <translation>Die für die Installation ausgewählte Partition scheint genügend Platz zu bieten, aber es werden anschließend weniger als 100 MiB verfügbar sein. %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1658"/>
+ <source>Can not resolve all dependencies!</source>
+ <translation>Konnte nicht alle Abhängigkeiten auflösen!</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1676"/>
+ <source>Components about to be removed.</source>
+ <translation>Komponenten, die entfernt werden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1700"/>
+ <source>&amp;Hide Details</source>
+ <translation>&amp;Verstecke Details</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterDefaultDebuggerOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="85"/>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="124"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="95"/>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="134"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation>Das für die Anweisung &quot;%1&quot; benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="109"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation>Kann nicht aus der Toolchains XML Datei (%1) lesen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterDocumentationOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="89"/>
+ <source>Invalid arguments in %0: %1 arguments given, 1 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 1 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="104"/>
+ <source>Could not register help file %1: File not found.</source>
+ <translation>Konnte Hilfedatei %1 nicht registrieren: Datei nicht gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="135"/>
+ <source>Could not unregister help file %1: File not found.</source>
+ <translation>Konnte Hilfedatei %1 nicht unregistrieren: Datei nicht gefunden.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterFileTypeOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="59"/>
+ <source>Invalid arguments in %0</source>
+ <translation>Ungültige Argumente in %0.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="120"/>
+ <source>Register File Type: Invalid arguments</source>
+ <translation>Register File Type: Ungültige Argumente</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="65"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 3 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, mindestens 3 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="84"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation>Das für die Anweisung &quot;%1&quot; benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="102"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation>Kann nicht aus der Toolchains XML Datei (%1) lesen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorV23Operation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="96"/>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="175"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 4 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, mindestens 4 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="104"/>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="183"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation>Das für die Anweisung &quot;%1&quot; benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="110"/>
+ <source>The given TargetDir %1 is not a valid/existing dir.</source>
+ <translation>Das übergebene TargetDir %1 ist kein gültiger Ordner oder existiert nicht.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorV2Operation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="63"/>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="139"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 2 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, mindestens 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="71"/>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="147"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation>Das für die Anweisung &quot;%1&quot; benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="77"/>
+ <source>The given TargetDir %1 is not a valid/existing dir.</source>
+ <translation>Das übergebene TargetDir %1 ist kein gültiger Ordner oder existiert nicht.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterToolChainOperation</name>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="66"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="121"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 4 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, mindestens 4 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="76"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="131"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation>Das für die Anweisung &quot;%1&quot; benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="101"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="156"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation>Kann nicht aus der Toolchains XML Datei (%1) lesen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="108"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="163"/>
+ <source>Some arguments are not right in %1 operation.</source>
+ <translation>Einige Argumente sind in der %1 Anweisung nicht erlaubt.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ReplaceOperation</name>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="60"/>
+ <source>Invalid arguments in %0: %1 arguments given, 3 expected.</source>
+ <translation>Ungültige Argumentein %0: %1 Argumente erhalten, 3 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RestartPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1949"/>
+ <source>Completing the %1 Setup Wizard</source>
+ <translation>Vervollständige den %1 Assistenten</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SelfRestartOperation</name>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="55"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation>Das für die Anweisung &quot;%1&quot; benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="61"/>
+ <source>Self Restart: Only valid within updater or packagemanager mode.</source>
+ <translation>Self Restart: Nur im updater oder packagemanager Modus erlaubt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="67"/>
+ <source>Self Restart: Invalid arguments</source>
+ <translation>Self Restart: Ungültige Argumente</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetDemosPathOnQtOperation</name>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="76"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: %2</source>
+ <translation>Die Ausgabe von
+%1 -query
+ist ungültig. Bitte erstellen sie einen Bugreport unter https://bugreports.qt-project.org.
+Ausgabe: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="90"/>
+ <source>Qt patch error: new Qt demo path (%1)
+needs to be less than 255 characters.</source>
+ <translation>Qt patch Fehler: neuer Qt-Demos Ordnername (%1)
+darf nicht mehr als 255 Zeichen lang sein.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetExamplesPathOnQtOperation</name>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="76"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: %2</source>
+ <translation>Die Ausgabe von
+%1 -query
+ist ungültig. Bitte erstellen sie einen Bugreport unter https://bugreports.qt-project.org.
+Ausgabe: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="90"/>
+ <source>Qt patch error: new Qt example path (%1)
+needs to be less than 255 characters.</source>
+ <translation>Qt patch Fehler: neuer Qt-Examples Ordnername (%1)
+darf nicht mehr als 255 Zeichen lang sein.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetImportsPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setimportspathonqtcoreoperation.cpp" line="101"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 2 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setpathonqtcoreoperation.cpp" line="103"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 3 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 3 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setpathonqtcoreoperation.cpp" line="127"/>
+ <source>The second type/value needs to be one of: %1</source>
+ <translation>Der zweite Typ muss einen der folgenden Werte haben: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetPluginPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setpluginpathonqtcoreoperation.cpp" line="100"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 2 erwartet.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetQtCreatorValueOperation</name>
+ <message>
+ <location filename="../../libinstaller/setqtcreatorvalueoperation.cpp" line="63"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 4 expected (rootInstallPath, group, key, value).</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 4 erwartet (rootInstallPath, group, key, value).</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setqtcreatorvalueoperation.cpp" line="93"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation>Das für die Anweisung %1 benötigte Installerobjekt ist leer.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SimpleMoveFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="53"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="63"/>
+ <source>None of the arguments can be empty: source(%1), target(%2).</source>
+ <translation>Keins dieser Argumente darf leer sein: Quelle (%1), Ziel (%2).</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="74"/>
+ <source>Can not copy source(%1) to target(%2), because target exists and is not removable.</source>
+ <translation>Kann %1 nicht nach %2 kopieren, weil das Ziel bereits existiert und nicht entfernt werden kann.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="83"/>
+ <source>Can not move source(%1) to target(%2): %3</source>
+ <translation>Kann %1 nicht nach %2 verschieben. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="88"/>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="98"/>
+ <source>Move %1 to %2.</source>
+ <translation>Verschiebe %1 nach %2.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::StartMenuDirectoryPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1417"/>
+ <source>Start Menu shortcuts</source>
+ <translation>Verknüpfungen im Startmenü</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1418"/>
+ <source>Select the Start Menu in which you would like to create the program&apos;s shortcuts. You can also enter a name to create a new folder.</source>
+ <translation>Wählen sie den Ordner im Startmenü, in dem die Verknüpfungen zur Anwendung erstellt werden sollen. Sie können einen Namen angeben, um einen neuen Ordner anzulegen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::TargetDirectoryPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1288"/>
+ <source>Installation Folder</source>
+ <translation>Installationsverzeichnis</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1296"/>
+ <source>Please specify the folder where %1 will be installed.</source>
+ <translation>Bitte geben sie den Ordner an, in dem %1 installiert werden soll.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1296"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1311"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1349"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1364"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1375"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1400"/>
+ <source>%1</source>
+ <translation>!!%1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1310"/>
+ <source>Alt+R</source>
+ <comment>browse file system to choose a file</comment>
+ <translatorcomment>Dateisystem durchsuchen, um eine Datei auszuwählen</translatorcomment>
+ <translation>Alt+D</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1311"/>
+ <source>B&amp;rowse...</source>
+ <translation>&amp;Durchsuchen...</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1349"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1364"/>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1350"/>
+ <source>The install directory cannot be empty, please specify a valid folder.</source>
+ <translation>Der Name des Installationsverzeichnisses darf nicht leer sein, bitte einen gültigen Ordner angeben.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1365"/>
+ <source>As the install directory is completely deleted, installing in %1 is forbidden.</source>
+ <translation>Da das Installationsverzeichnis komplett gelöscht wird, ist eine Installation nach %1 nicht zulässig.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1375"/>
+ <source>Warning</source>
+ <translation>Warnung</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1376"/>
+ <source>You have selected an existing, non-empty folder for installation. Note that it will be completely wiped on uninstallation of this application. It is not advisable to install into this folder as installation might fail. Do you want to continue?</source>
+ <translation>Sie haben einen existierenden, nicht leeren Ordner für die Installation ausgewählt. Dieser wird bei der Deinstallation dieser Anwendung komplett gelöscht werden. Es wird nicht empfohlen, in diesen Ordner zu installaieren. Möchten sie trotzdem fortsetzen?</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1401"/>
+ <source>Select Installation Folder</source>
+ <translation>Installationsverzeichnis auswählen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::UpdateCreatorSettingsFrom21To22Operation</name>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="278"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 0 expected.</source>
+ <translation>Ungültige Argumente in %0: %1 Argumente erhalten, genau 0 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="286"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation>Das für die Anweisung %1 benötigte Installerobjekt ist leer.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="304"/>
+ <source>Can not remove previous registered Qt Versions in %1 operation.</source>
+ <translation>Kann die bereits registrierte Qt Version in der %1 Anweisung nicht entfernen.</translation>
+ </message>
+</context>
+<context>
+ <name>QInstallerCreator::Archive</name>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="303"/>
+ <source>Could not create %1: %2</source>
+ <translation>Konnte Ordner %1 nicht anlegen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="412"/>
+ <source>Could not open archive file %1 for reading.</source>
+ <translation>Konnte Archivdatei %1 nicht zum Lesen öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="431"/>
+ <source>Could not create archive from %1: Not a file.</source>
+ <translation>Kann kein Archib aus %1 erstellen: Es ist keine Datei.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="455"/>
+ <source>Error while packing directory at %1</source>
+ <translation>Fehler beim Einpacken des Ordners %1.</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="182"/>
+ <location filename="../../binarycreator/binarycreator.cpp" line="192"/>
+ <location filename="../../common/repositorygen.cpp" line="743"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation>Konnte Datei %1 nicht nach %2 kopieren. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="350"/>
+ <source>Could not create temporary file for generated rcc project file</source>
+ <translation>Konnte keine temporäre Datei für die erzeugte rcc Projektdatei anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="455"/>
+ <location filename="../../binarycreator/binarycreator.cpp" line="494"/>
+ <source>Could not copy %1.</source>
+ <translation>Konnte %1 nicht kopieren.</translation>
+ </message>
+ <message>
+ <source>Could not remove the private key from config.xml</source>
+ <translation type="obsolete">Konnte den privaten Schlüssel nicht aus der config.xml entfernen.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="552"/>
+ <source>Error: Packages parameter missing argument.</source>
+ <translation>Fehler: Dem Packages Parameter fehlt ein Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="555"/>
+ <source>Error: Package directory not found at the specified location.</source>
+ <translation>Fehler: Paketordner konnte an der angegebenen Stelle nicht gefunden werden.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="562"/>
+ <source>Error: Package to exclude missing.</source>
+ <translation>Fehler: Die --exclude Option braucht die auszuschliessenden Komponenten als Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="573"/>
+ <source>Error: Template parameter missing argument.</source>
+ <translation>Fehler: Dem Template Parameter fehlt ein Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="576"/>
+ <source>Error: Template not found at the specified location.</source>
+ <translation>Fehler: Template konnte an der angegebenen Stelle nicht gefunden werden.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="583"/>
+ <source>Error: Config parameter missing argument.</source>
+ <translation>Fehler: Dem Config Parameter fehlt ein Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="586"/>
+ <source>Error: Config directory %1 not found at the specified location.</source>
+ <translation>Fehler: Konfigurationsordner konnte an der angegebenen Stelle nicht gefunden werden.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="590"/>
+ <source>Error: Configuration %1 is not a directory.</source>
+ <translation>Fehler: Konfiguration %1 ist kein Ordner.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="594"/>
+ <source>Error: Config directory %1 is not readable.</source>
+ <translation>Fehler: Konfigurationsordner %1 ist nicht lesbar.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="601"/>
+ <source>Error: Resource files to include missing.</source>
+ <translation>Fehler: Die --resources Option braucht die einzuschliessenden Resourcen als Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="612"/>
+ <source>Error: Target parameter missing.</source>
+ <translation>Fehler: Der Target Parameter fehlt.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="615"/>
+ <source>Error: No components selected.</source>
+ <translation>Fehler: Keine Komponenten ausgewählt.</translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="618"/>
+ <source>Error: No configuration directory selected.</source>
+ <translation>Fehler: Keine Konfigurationsordner ausgewählt.</translation>
+ </message>
+ <message>
+ <source>Could not create a RSA signature</source>
+ <translation type="obsolete">Konnte keine RSA Unterschrift erstellen.</translation>
+ </message>
+ <message>
+ <source>Created RSA signature could not be verified. Is the given public key wrong?</source>
+ <translation type="obsolete">Die erstellte RSA Unterschrift konnte nicht überprüft werden. Ist der übergebene öffentliche Schlüssel korrekt?</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="68"/>
+ <source>Component %1 can&apos;t contain &apos;-&apos;.</source>
+ <translation>Komponentenname %1 enthält ein &apos;-&apos;, was nicht erlaubt ist.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="74"/>
+ <source>Component %1 does not contain a package description.</source>
+ <translation>Komponente %1 enthält keine Paketbeschreibung.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="87"/>
+ <source>Component package description for %1 is invalid. Error at line: %2, column: %3 -&gt; %4</source>
+ <translation>Paketbeschreibung für Komponente %1 ist ungültig. Fehler in Zeile %2, Spalte %3. Fehlermeldung: %4</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="95"/>
+ <source>Component folder name must match component name: %1 in %2/</source>
+ <translation>Der Komponentenordner muss den selben Namen haben wie die Komponente: %1 in %2/</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="201"/>
+ <source>Circular dependencies detected.</source>
+ <translation>Zyklische Abhängigkeiten gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="211"/>
+ <source>Couldn&apos;t find package for component %1.</source>
+ <translation>Konnte kein Paket zur Komponente %1 finden.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="257"/>
+ <source>Folder %1 does not exist.</source>
+ <translation>Odner %1 existiert nicht.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="104"/>
+ <source>Component version for %1 is invalid! &lt;Version&gt;%2&lt;/version&gt;</source>
+ <translation>Versionsnummer (%2) der Komponente %1 ist ungültig.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="279"/>
+ <location filename="../../common/repositorygen.cpp" line="712"/>
+ <source>Could not move %1 to %2</source>
+ <translation>Konnte Datei %1 nicht nach %2 verschieben.</translation>
+ </message>
+ <message>
+ <source>Could not open %1 for writing.</source>
+ <translation type="obsolete">Konnte Datei %1 nicht zum Schreiben öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="341"/>
+ <source>Could not parse %1: line: %2, column: %3: %4 (%5)</source>
+ <translation>Konnte Datei %1 nicht auswerten. Zeile: %2, Spalte: %3 - %4 (%5)</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="425"/>
+ <source>Could not create directory %1.</source>
+ <translation>Konnte Ordner %1. nicht anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="449"/>
+ <source>Could not copy the script %1 to its target location %2.</source>
+ <translation>Konnte das Skript %1 nicht nach %2 kopieren.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="467"/>
+ <source>Couldn&apos;t find any user interface matching %1 while copying user interfaces of %2.</source>
+ <translation>Konnte keine mit %1 übereinstimmende Nutzungsschnittstelle beim Kopieren von %2 finden.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="478"/>
+ <source>Could not copy the UI file %1 to its target location %2.</source>
+ <translation>Konnte die Nutzungsschnittstellendatei %1 nicht nach %2 kopieren.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="502"/>
+ <source>Could not find any translation file matching %1 while copying translations of %2.</source>
+ <translation>Konnte keine mit %1 übereinstimmende Übersetzungsdatei beim Kopieren von %2 finden.</translation>
+ </message>
+ <message>
+ <source>Could not find any user interface matching %1 while copying user interfaces of %2.</source>
+ <translation type="obsolete">Konnte keine mit %1 übereinstimmende Nutzungsschnittstelle beim Kopieren von %2 finden.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="513"/>
+ <source>Could not copy the translation %1 to its target location %2.</source>
+ <translation>Konnte die Ãœbersetzung %1 nicht nach %2 kopieren.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="536"/>
+ <source>Could not find any license matching %1 while copying license files of %2.</source>
+ <translation>Konnte keine mit %1 übereinstimmende Lizenz beim Kopieren von %2 finden.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="545"/>
+ <source>Could not copy the license file %1 to its target location %2.</source>
+ <translation>Konnte die Lizenzdatei %1 nicht nach %2 kopieren.</translation>
+ </message>
+ <message>
+ <source>Could not open %1 for writing</source>
+ <translation type="obsolete">Konnte Datei %1 nicht zum Schreiben öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="729"/>
+ <source>Could not create repository folder for component %1</source>
+ <translation>Konnte Quellenordner für Komponente %1 nicht anlegen.</translation>
+ </message>
+ <message>
+ <source>Could not open %1 for writing: %2</source>
+ <translation type="obsolete">Konnte Datei %1 nicht zum Schreiben öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="110"/>
+ <source>Error: Package to exclude missing</source>
+ <translation>Fehler: Die --exclude Option braucht die auszuschliessenden Komponenten als Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="119"/>
+ <source>Error: Packages parameter missing argument</source>
+ <translation>Fehler: Dem Packages Parameter fehlt ein Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="123"/>
+ <source>Error: Package directory not found at the specified location</source>
+ <translation>Fehler: Paketordner konnte an der angegebenen Stelle nicht gefunden werden.</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="131"/>
+ <location filename="../../repogen/repogen.cpp" line="150"/>
+ <source>Error: Config parameter missing argument</source>
+ <translation>Fehler: Dem Config Parameter fehlt ein Argument.</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="134"/>
+ <source>Error: Config directory %1 not found at the specified location</source>
+ <translation>Fehler: Konfigurationsordner %1 konnte an der angegebenen Stelle nicht gefunden werden.</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="138"/>
+ <source>Error: Configuration %1 is not a directory</source>
+ <translation>Fehler: Konfiguration %1 ist kein Ordner.</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="142"/>
+ <source>Error: Config directory %1 is not readable</source>
+ <translation>Fehler: Konfigurationsordner %1 ist nicht lesbar.</translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="192"/>
+ <source>Repository target folder %1 already exists!</source>
+ <translation>Quellenordner %1 existiert bereits!</translation>
+ </message>
+ <message>
+ <location filename="../../tests/extractarchiveoperationtest/extractarchiveoperationtest.cpp" line="93"/>
+ <source>Could not remove folder %1</source>
+ <translation>Konnte Ordner %1 nicht löschen.</translation>
+ </message>
+ <message>
+ <location filename="../../tests/extractarchiveoperationtest/extractarchiveoperationtest.cpp" line="100"/>
+ <source>Could not remove folder %1: Unknown error</source>
+ <translation>Konnte Ordner %1 nicht löschen. Unbekannter Fehler.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="219"/>
+ <source>Searched whole file, no marker found</source>
+ <translation>Gesamte Datei durchsucht, kein Zauberkeks gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="221"/>
+ <source>Could not seek to %1 in file %2: %3</source>
+ <translation>Konnte nicht bis zur Position %1 in Datei %2 suchen. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="231"/>
+ <source>No marker found, stopped after %1 bytes.</source>
+ <translation>Kein Zauberkeks gefunden, nach %1 Bytes abgebrochen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="237"/>
+ <source>No marker found, unknown exception caught.</source>
+ <translation>Keinen Zauberkeks gefunden, unbekannte Ausnahmebedingung.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="479"/>
+ <source>Cannot create zipped file for path %1: %2</source>
+ <translation>Konnte keine gepackte Datei aus Pfad %1 erstellen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="741"/>
+ <source>Could not seek to in-binary resource. (offset: %1, length: %2)</source>
+ <translation>Konnte nicht bis zur in der Binärdatei enthaltene Ressource suchen. (Offset: %1, Länge: %2)</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="748"/>
+ <source>Could not register in-binary resource.</source>
+ <translation>Konnte in der Binärdatei enthaltene Ressource nicht registrieren.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="908"/>
+ <location filename="../../common/binaryformat.cpp" line="1095"/>
+ <source>Could not open binary %1: %2</source>
+ <translation>Konnte Binärdatei %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="953"/>
+ <source>Could not seek to binary layout section.</source>
+ <translation>Konnte nicht bis zum Abschnitt mit dem Layout der Binärdatei suchen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="978"/>
+ <source>Could not seek to metadata index.</source>
+ <translation>Konnte nicht bis zum Index der Metadaten suchen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="999"/>
+ <source>Could not seek to operation list.</source>
+ <translation>Konnte nicht bis zur Anweisungsliste suchen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="1014"/>
+ <source>Could not seek to component index information.</source>
+ <translation>Konnte nicht bis zur Komponentenindexinformation suchen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="1018"/>
+ <source>Could not seek to component index.</source>
+ <translation>Konnte nicht bis zum Komponentenindex suchen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="146"/>
+ <source>Cannot open file %1 for reading: %2</source>
+ <translation>Konnte Datei %1 nicht zum Lesen öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="153"/>
+ <location filename="../../common/fileutils.cpp" line="160"/>
+ <source>Cannot open file %1 for writing: %2</source>
+ <translation>Konnte Datei %1 nicht zum Schreiben öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="169"/>
+ <source>Write failed after %1 bytes: %2</source>
+ <translation>Das Schreiben ist nach %1 Bytes fehlgeschlagen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="190"/>
+ <source>Read failed after %1 bytes: %2</source>
+ <translation>Das Lesen ist nach %1 Bytes fehlgeschlagen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="219"/>
+ <source>Could not remove file %1: %2</source>
+ <translation>Konnte Datei %1 nicht löschen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="244"/>
+ <source>Could not remove folder %1: %2</source>
+ <translation>Konnte Ordner %1 nicht löschen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="313"/>
+ <location filename="../../common/fileutils.cpp" line="338"/>
+ <source>Could not create folder %1</source>
+ <translation>Konnte Ordner %1 nicht anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="325"/>
+ <source>Could not copy file from %1 to %2: %3</source>
+ <translation>Konnte Datei %1 nicht nach %2 kopieren. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="350"/>
+ <source>Could not move file from %1 to %2: %3</source>
+ <translation>Konnte Datei %1 nicht nach %2 verschieben. Fehlermeldung: %3</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="361"/>
+ <location filename="../../common/fileutils.cpp" line="370"/>
+ <source>Could not create folder %1: %2</source>
+ <translation>Konnte Ordner %1 nicht anlegen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="380"/>
+ <source>Could not open temporary file: %1</source>
+ <translation>Konnte temporäre Datei nicht öffnen. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="397"/>
+ <source>Could not open temporary file for template %1: %2</source>
+ <translation>Konnte keine temporäre Datei für die Vorlage %1 öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="407"/>
+ <source>Could not create temporary folder for template %1: %2</source>
+ <translation>Konnte keine temporäre Datei für die Vorlage %1 anlegen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="45"/>
+ <source>Could not create lock file %1: %2</source>
+ <translation>Konnte keine Sperrdatei %1 anlegen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="55"/>
+ <source>Could not write PID to lock file %1: %2</source>
+ <translation>Konnte PID nicht in die Sperrdatei %1 schreiben. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="63"/>
+ <source>Could not lock lock file %1: %2</source>
+ <translation>Konnte keinen Exklusivzugriff auf Sperrdatei %1 erhalten. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="75"/>
+ <source>Could not unlock lock file %1: %2</source>
+ <translation>Konnte Exklusivzugriff auf Sperrdatei %1 nicht abgeben. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="137"/>
+ <source>Path exists but is not a folder: %1</source>
+ <translation>Pfad %1 exisitiert, aber ist kein Ordner.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="153"/>
+ <source>Could not create folder: %1</source>
+ <translation>Konnte Ordner %1 nicht anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="188"/>
+ <source>Could not create temporary file</source>
+ <translation>Konnte temporäre Datei nicht anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="205"/>
+ <source>Could not retrieve property %1 for item %2</source>
+ <translation>Konnte Eigenschaft %2 von %2 nicht erhalten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="228"/>
+ <source>Property %1 for item %2 not of type VT_FILETIME but %3</source>
+ <translation>Eigenschaft %1 von %2 ist nicht vom Typ VT_FILETIME, sondern vom Typ %3.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="236"/>
+ <source>Could not convert file time to local time</source>
+ <translation>Konnte die Dateizeit nicht in die lokale Zeit umwandeln.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="240"/>
+ <source>Could not convert local file time to system time</source>
+ <translation>Konnte die lokale Dateizeit nicht in die Systemzeit umwandeln.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="569"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1148"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1321"/>
+ <source>Could not load codecs</source>
+ <translation>Konnte Codecs nicht laden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="572"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1153"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1326"/>
+ <source>Could not retrieve default format</source>
+ <translation>Konnte Standardformat nicht finden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="576"/>
+ <source>Could not open archive</source>
+ <translation>Konnte Archiv nicht öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="578"/>
+ <source>No CArc found</source>
+ <translation>Keine CArc gefunden.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="642"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1228"/>
+ <source>Could not retrieve number of items in archive</source>
+ <translation>Konnte Anzahl Dateien im Archiv nicht feststellen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="648"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="731"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="781"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1236"/>
+ <source>Could not retrieve path of archive item %1</source>
+ <translation>Konnte Pfad des Archivs %1 nicht feststellen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="669"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="686"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1201"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1247"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1345"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1367"/>
+ <source>Unknown exception caught (%1)</source>
+ <translation>Unbekannte Ausnahmebedingung (%1).</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="686"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1367"/>
+ <source>Failed</source>
+ <translation>Fehlgeschlagen</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="799"/>
+ <source>Could not create file system link at %1</source>
+ <translation>Konnte keine Dateisystemverknüpfung (Hardlink) %1 anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="804"/>
+ <source>Could not create softlink at %1</source>
+ <translation>Konnte keine Dateisystemverknüpfung (Softlink) %1 anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1183"/>
+ <source>Could not create archive %1</source>
+ <translation>Konnte kein Archiv %1 anlegen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1220"/>
+ <source>CArc index %1 out of bounds [0, %2]</source>
+ <translation>CArc Index %1 ausserhalb der Grenzen [0, %2].</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1231"/>
+ <source>Item index %1 out of bounds [0, %2]</source>
+ <translation>Itemindex %1 ausserhalb der Grenzen [0, %2].</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1243"/>
+ <source>Extracting %1 failed.</source>
+ <translation>Entpacken von %1 fehlgeschlagen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1266"/>
+ <source>Could not create output file for writing: %1</source>
+ <translation>Konnte Ausgabedatei nicht zum Schreiben öffnen. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1299"/>
+ <source>Extraction failed.</source>
+ <translation>Entpacken fehlgeschlagen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="74"/>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="77"/>
+ <source>Authorization required</source>
+ <translation>Autorisierung benötigt.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="74"/>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="78"/>
+ <source>Enter your password to authorize for sudo:</source>
+ <translation>Geben sie ihr Passwort ein, um sich für sudo zu autentifizieren:</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="88"/>
+ <source>Error acquiring admin rights</source>
+ <translation>Fehler beim Erlangen von Administratorrechten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="129"/>
+ <source>Could not backup file %1</source>
+ <translation>Konnte Datei %1 nicht sichern.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="180"/>
+ <source>Could not delete file %1</source>
+ <translation>Konnte Datei %1 nicht löschen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="191"/>
+ <source>Could not restore backup file into %1</source>
+ <translation>Konnte Datei %1 nicht wiederherstellen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="145"/>
+ <source>Invalid arguments: %1 arguments given, 2 or 3 expected (optional: &quot;workingDirectory=...&quot;).</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, 2 oder 3 erwartet (optional: &quot;workingDirectory=...&quot;).</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="171"/>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="189"/>
+ <source>Failed to overwrite %1: %2</source>
+ <translation>Konnte Datei %1 nicht überschreiben. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="89"/>
+ <source>Registry path %1 is not writable</source>
+ <translation>Registrierungspfad %1 ist nicht beschreibbar.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="101"/>
+ <source>Could not write to registry path %1</source>
+ <translation>Registrierungspfad %1 ist nicht beschreibbar.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/fakestopprocessforupdateoperation.cpp" line="102"/>
+ <source>Number of arguments does not match : one is required</source>
+ <translation>Ungültige Anzahl Argumente: genau 1 erwartet.</translation>
+ </message>
+ <message>
+ <source>Bad signature</source>
+ <translation type="obsolete">Ungültige Unterschrift</translation>
+ </message>
+ <message>
+ <source>Bad hash</source>
+ <translation type="obsolete">Ungültige Prüfsumme.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="140"/>
+ <source>Invalid Argument: source folder must not be empty.</source>
+ <translation>Ungültiges Argument: Quellordner darf nicht leer sein.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="176"/>
+ <source>Could not backup file %1: %2</source>
+ <translation>Konnte Datei %1 nicht sichern. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="200"/>
+ <source>Failed to copy file %1: %2</source>
+ <translation>Konnte Datei nicht nach %1 kopieren. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="210"/>
+ <source>Could not create folder at %1: %2</source>
+ <translation>Konnte Ordner %1 nicht anlegen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="71"/>
+ <source>Failed to open %1 for reading</source>
+ <translation>Konnte Datei nicht zum Lesen öffnen. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="81"/>
+ <source>Failed to open %1 for writing</source>
+ <translation>Konnte Datei %1 nicht zum Schreiben öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="77"/>
+ <source>Invalid arguments: %1 arguments given, %2 to %3 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, %2 bis %3 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="81"/>
+ <source>Invalid arguments: %1 arguments given, %2 expected.</source>
+ <translation>Ungültige Argumente: %1 Argumente erhalten, %2 erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1027"/>
+ <source>Error while elevating access rights.</source>
+ <translation>Fehler beim Erlangen von Administratorrechten.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1039"/>
+ <source>Failed to seek in file %1: %2</source>
+ <translation>Suchen in Datei %1 fehlgeschlagen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="128"/>
+ <source>kB</source>
+ <translation>kB</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="131"/>
+ <source>MB</source>
+ <translation>MB</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="134"/>
+ <source>GB</source>
+ <translation>GB</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="330"/>
+ <source>Could not open the requested script file at %1: %2</source>
+ <translation>Konnte angeforderte Skriptdatei %1 nicht öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="367"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="373"/>
+ <source>Exception while loading the control script %1</source>
+ <translation>Ausnahme beim Laden des Kontrollskripts: %1</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="105"/>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="194"/>
+ <source>Registering file types in only supported on Windows.</source>
+ <translation>Registrierung von Dateitypen wird nur unter Windows unterstützt.</translation>
+ </message>
+ <message>
+ <location filename="../installerbase_p.cpp" line="413"/>
+ <source>Failed to seek in file %1. Reason: %2.</source>
+ <translation>Suchen in Datei %1 fehlgeschlagen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="71"/>
+ <source>Failed to open %1 for reading.</source>
+ <translation>Konnte Datei %1 nicht zum Lesen öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="88"/>
+ <source>Failed to open %1 for writing.</source>
+ <translation>Konnte Datei %1 nicht zum Schreiben öffnen.</translation>
+ </message>
+</context>
+<context>
+ <name>Settings</name>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="185"/>
+ <source>Could not open settings file %1 for reading: %2</source>
+ <translation>Konnte Einstellungsdatei %1 nicht zum Lesen öffnen. Fehlermeldung: %2</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="190"/>
+ <source>%1 is not valid: Installer root node expected.</source>
+ <translation>%1 ist ungültig: &apos;Installer&apos; wird als Wurzelknoten erwartet.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="215"/>
+ <source>Multiple %1 elements found, but only one allowed.</source>
+ <translation>Mehrere %1 Elemente gefunden, aber nur eins ist erlaubt.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Settings</source>
+ <translation>Einstellungen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="24"/>
+ <source>Network</source>
+ <translation>Netzwerk</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="30"/>
+ <source>No proxy</source>
+ <translation>Kein Proxy</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>System proxy settings</source>
+ <translation>Systemeinstellungen für Proxy</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="53"/>
+ <source>Manual proxy configuration</source>
+ <translation>Manuelle Konfiguration des Proxy</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="79"/>
+ <source>HTTP proxy:</source>
+ <translation>HTTP Proxy:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="96"/>
+ <location filename="../settingsdialog.ui" line="222"/>
+ <source>Port:</source>
+ <translation>Port:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="118"/>
+ <source>HTTP proxy requires authentication</source>
+ <translation>HTTP Proxy verlangt Autentifizierung</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="143"/>
+ <location filename="../settingsdialog.ui" line="269"/>
+ <source>Username:</source>
+ <translation>Nutzername:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="160"/>
+ <location filename="../settingsdialog.ui" line="286"/>
+ <source>Password:</source>
+ <translation>Passwort:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="205"/>
+ <source>FTP proxy:</source>
+ <translation>FTP Proxy:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="244"/>
+ <source>FTP proxy requires authentication</source>
+ <translation>FTP Proxy verlangt Autentifizierung</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="325"/>
+ <source>Repositories</source>
+ <translation>Quellen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="331"/>
+ <source>Add Username and Password for authentication if needed.</source>
+ <translation>Nutzername und Passwort für die Autentifizierung hinzufügen, falls benötigt.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="347"/>
+ <source>Use temporary repositories only</source>
+ <translation>Verwende ausschließlich temporäre Quellen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="356"/>
+ <source>Add</source>
+ <translation>Hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="363"/>
+ <source>Remove</source>
+ <translation>Entfernen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="370"/>
+ <source>Test</source>
+ <translation>Testen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="390"/>
+ <location filename="../settingsdialog.cpp" line="459"/>
+ <source>Show Passwords</source>
+ <translation>Zeige Passwörter</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="237"/>
+ <source>Check this to use repository during fetch.</source>
+ <translation>Auswählen, um die Quelle zu verwenden.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="239"/>
+ <source>Add the username to authenticate on the server.</source>
+ <translation>Nutzernamen eintragen, um sich gegenüber der Quelle zu autentifizieren.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="241"/>
+ <source>Add the password to authenticate on the server.</source>
+ <translation>Passwort eintragen, um sich gegenüber der Quelle zu autentifizieren.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="243"/>
+ <source>The servers URL that contains a valid repository.</source>
+ <translation>Adresse angeben, die auf eine gültige Quelle zeigt.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="440"/>
+ <source>There was an error testing this repository.</source>
+ <translation>Beim testen des Repositories ist ein Fehler aufgetreten.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="441"/>
+ <source>Do you want to disable the tested repository?</source>
+ <translation>Soll das getestete Repository ausgeschaltet werden?</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="459"/>
+ <source>Hide Passwords</source>
+ <translation>Verstecke Passwörter</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="504"/>
+ <source>Use</source>
+ <translation>Nutze</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="504"/>
+ <source>Username</source>
+ <translation>Nutzername</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="504"/>
+ <source>Password</source>
+ <translation>Passwort</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="505"/>
+ <source>Repository</source>
+ <translation>Quelle</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="506"/>
+ <source>Default repositories</source>
+ <translation>Standardquellen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="507"/>
+ <source>Temporary repositories</source>
+ <translation>Temporäre Quellen</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="508"/>
+ <source>User defined repositories</source>
+ <translation>Benutzerdefinierte Quellen</translation>
+ </message>
+</context>
+<context>
+ <name>TargetDirectoryPageImpl</name>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="343"/>
+ <source>The installation path cannot be empty, please specify a valid folder.</source>
+ <translation>Der Installationspfad darf nicht leer sein. Bitte einen gültigen Ordner angeben.</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="348"/>
+ <source>The installation path cannot be relative, please specify an absolute path.</source>
+ <translation>Der Installationspfad darf nicht relativ sein. Bitte einen absoluten Pfad angeben.</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="359"/>
+ <source>The installation path must not contain !@#$%^&amp;*:,; or spaces, please specify a valid folder.</source>
+ <translation>Der Installationspfad darf nicht die Zeichen !@#$%^&amp;*:,; oder Leerzeichen enthalten. Bitte einen gültigen Ordner angeben.</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="376"/>
+ <source>Warning</source>
+ <translation>Warnung</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="385"/>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="404"/>
+ <source>The path or installation directory contains non ASCII characters. This is currently not supported! Please choose a different path or installation directory.</source>
+ <translation>Der Pfad zum Installationsverzeichnis enthält Zeichen ausserhalb des ASCII Zeichensatzes. Dies ist zur Zeit nicht unterstützt. Bitte wählen sie einen anderen Pfad für das Installationsverzeichnis.</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="419"/>
+ <source>As the install directory is completely deleted installing in %1 is forbidden.</source>
+ <translation>Da das Installationsverzeichnis komplett gelöscht wird, ist eine Installation nach %1 nicht zulässig.</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="434"/>
+ <source>The folder you selected exists already and contains an installation.
+Do you want to overwrite it?</source>
+ <translation>Der ausgewählte Ordner existiert bereits und enthält eine Installation.
+Möchten sie diese überschreiben?</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="439"/>
+ <source>You have selected an existing, non-empty folder for installation.
+Note that it will be completely wiped on uninstallation of this application.
+It is not advisable to install into this folder as installation might fail.
+Do you want to continue?</source>
+ <translation>Sie haben einen existierenden, nicht leeren Ordner für die Installation ausgewählt.
+Dieser wird bei der Deinstallation dieser Anwendung komplett gelöscht werden.
+Es wird nicht empfohlen, in diesen Ordner zu installaieren.
+Möchten sie trotzdem fortsetzen?</translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="443"/>
+ <source>You have selected an existing file or symlink, please choose a different target for installation.</source>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>TestRepository</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="82"/>
+ <source>Empty repository URL.</source>
+ <translation>Leere Quelladresse.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="88"/>
+ <source>URL scheme not supported: %1 (%2).</source>
+ <translation>Adressschema &quot;%1&quot; nicht unterstützt in Adresse &quot;%2&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="128"/>
+ <source>Could not parse Updates.xml! Error: %1.</source>
+ <translation>Ungültiges Format der Updates.xml. Fehlermeldung: %1</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="133"/>
+ <source>Updates.xml could not be opened for reading!</source>
+ <translation>Konnte Updates.xml nicht zum Lesen öffnen.</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="136"/>
+ <source>Updates.xml could not be found on server!</source>
+ <translation>Updates.xml konnte auf dem Server nicht gefunden werden.</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/sdk/translations/en_us.ts b/src/sdk/translations/en_us.ts
new file mode 100644
index 000000000..2a2bd413d
--- /dev/null
+++ b/src/sdk/translations/en_us.ts
@@ -0,0 +1,3331 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
+<context>
+ <name>Component</name>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="578"/>
+ <source>Could not open archive %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>IntroductionPageImpl</name>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="63"/>
+ <source>Package manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="68"/>
+ <source>Update components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="73"/>
+ <source>Remove all components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="83"/>
+ <source>Retrieving information from remote installation sources...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="145"/>
+ <source>No updates available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="164"/>
+ <source> Only local package management available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdjob.cpp" line="176"/>
+ <source>Canceled</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDSaveFile</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="251"/>
+ <source>Append mode not supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="256"/>
+ <source>Read-only access not supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="344"/>
+ <source>Could not backup existing file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="385"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="396"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="407"/>
+ <source>TODO</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::AppendFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="597"/>
+ <source>Cannot backup file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="610"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="624"/>
+ <source>Could not open file %1 for writing: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="643"/>
+ <source>Cannot find backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="649"/>
+ <source>Could not restore backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="660"/>
+ <source>Could not restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::CopyOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="112"/>
+ <source>Could not backup file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="123"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="136"/>
+ <source>Could not remove destination file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="145"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="157"/>
+ <source>Could not delete file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="170"/>
+ <source>Could not restore backup file into %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::DeleteOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="341"/>
+ <source>Cannot create backup of %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="351"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="368"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::ExecuteOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="848"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="906"/>
+ <source>Execution failed: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::FileDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="51"/>
+ <source>%L1 B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="54"/>
+ <source>%L1 KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="57"/>
+ <source>%L1 MB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="59"/>
+ <source>%L1 GB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="298"/>
+ <source>Could not reopen downloaded file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="314"/>
+ <source>Download canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="321"/>
+ <source>Cryptographic hashes do not match.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="325"/>
+ <source>Download finished.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="427"/>
+ <source> of </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="430"/>
+ <source> downloaded.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="433"/>
+ <source>/sec</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="444"/>
+ <source> day</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="444"/>
+ <source> days</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="448"/>
+ <source> hour</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="448"/>
+ <source> hours</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="452"/>
+ <source> minute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="452"/>
+ <source> minutes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="457"/>
+ <source> second</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="457"/>
+ <source> seconds</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="459"/>
+ <source> - </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="459"/>
+ <source> remaining.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="461"/>
+ <source> - unknown time remaining.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::FtpDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1013"/>
+ <source>Download was aborted due to network errors.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1034"/>
+ <source>Cannot download %1: Writing to temporary file failed: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::HttpDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1154"/>
+ <source>Cannot download %1: Writing to temporary file failed: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1281"/>
+ <source>Cannot download %1: Could not create temporary file: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::LocalFileDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="595"/>
+ <source>Cannot open source file &apos;%1&apos; for reading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="611"/>
+ <source>Cannot open destination file &apos;%1&apos; for writing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="668"/>
+ <source>Writing to %1 failed: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::MkdirOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="445"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="452"/>
+ <source>Could not create folder %1: Unknown error.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="490"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="492"/>
+ <source>Cannot remove directory %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::MoveOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="233"/>
+ <source>Could not backup file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="244"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="258"/>
+ <source>Could not remove destination file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="268"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="284"/>
+ <source>Cannot copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="290"/>
+ <source>Cannot remove file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="303"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::PackagesInfo</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="102"/>
+ <source>%1 contains invalid content: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="284"/>
+ <source>The file %1 does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="292"/>
+ <source>Could not open %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="304"/>
+ <source>Parse error in %1 at %2, %3: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="317"/>
+ <source>Root element %1 unexpected, should be &apos;Packages&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::PrependFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="695"/>
+ <source>Cannot backup file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="708"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="719"/>
+ <source>Could not open file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="735"/>
+ <source>Could not open file %1 for writing: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="753"/>
+ <source>Cannot find backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="758"/>
+ <source>Cannot restore backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="769"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::RmdirOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="530"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="538"/>
+ <source>Could not remove folder %1: The folder does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="547"/>
+ <source>Could not remove folder %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="561"/>
+ <source>Cannot recreate directory %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::Task</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="179"/>
+ <source>%1 started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="192"/>
+ <source>%1 cannot be stopped</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="210"/>
+ <source>Cannot stop task %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="229"/>
+ <source>%1 cannot be paused</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="247"/>
+ <source>Cannot pause task %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="275"/>
+ <source>Cannot resume task %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="331"/>
+ <source>%1 done</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::Update</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdate.cpp" line="233"/>
+ <source>Downloading update...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdate.cpp" line="241"/>
+ <source>Update downloaded</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateCompatOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="1029"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="1041"/>
+ <source>Cannot restore previous compat-level</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateFinder</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="184"/>
+ <source>Could not access the package information of this application.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="195"/>
+ <source>Could not access the update sources information of this application.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="218"/>
+ <source>%1 updates found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="300"/>
+ <source>Downloading Updates.xml from update sources.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="313"/>
+ <source>Could not download updates from %1 (&apos;%2&apos;)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="351"/>
+ <source>Updates.xml file(s) downloaded from update sources.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="372"/>
+ <source>Looking for compatibility update...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="397"/>
+ <source>Found compatibility update..</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="400"/>
+ <source>Compatibility level %1 update</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="406"/>
+ <source>Compatibility update for the required architecture and hardware configuration was not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="407"/>
+ <source>Compatibility update not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="423"/>
+ <source>Compatibility update found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="425"/>
+ <source>No compatibility updates found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="450"/>
+ <source>Computing applicable updates.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="454"/>
+ <source>Application updates computed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="742"/>
+ <source>Downloading Updates.xml from update sources</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdatePackageOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="971"/>
+ <source>Invalid arguments: %1 arguments given, 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="980"/>
+ <source>Cannot update %1-%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="993"/>
+ <source>Cannot restore %1-%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateSourcesInfo</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="126"/>
+ <source>%1 contains invalid content: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="326"/>
+ <source>Could not read &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="338"/>
+ <source>XML Parse error in %1 at %2, %3: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="350"/>
+ <source>Root element %1 unexpected, should be &quot;UpdateSources&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="397"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="408"/>
+ <source>Could not save changes to &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdatesInfoData</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="61"/>
+ <source>Updates.Xml contains invalid content: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="69"/>
+ <source>Could not read &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="79"/>
+ <source>Parse error in %1 at %2, %3: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="89"/>
+ <source>root element %1 unexpected, should be &quot;Updates&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="122"/>
+ <source>ApplicationName element is missing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="127"/>
+ <source>ApplicationVersion element is missing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="183"/>
+ <source>PackageUpdate element without Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="187"/>
+ <source>PackageUpdate element without Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="191"/>
+ <source>PackageUpdate element without ReleaseDate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="195"/>
+ <source>PackageUpdate element without UpdateFile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="232"/>
+ <source>CompatUpdate element without CompatLevel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="237"/>
+ <source>CompatUpdate element without ReleaseDate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="242"/>
+ <source>CompatUpdate element without UpdateFile</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Lib7z::ExtractItemJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1355"/>
+ <source>Could not list archive: QIODevice not set or already destroyed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Lib7z::ListArchiveJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="679"/>
+ <source>Could not list archive: QIODevice already destroyed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::AddQtCreatorArrayValueOperation</name>
+ <message>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="64"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 4 expected (group, arrayname, key, value).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="73"/>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="125"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::Component</name>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="212"/>
+ <source>%L1 Bytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="215"/>
+ <source>%L1 kBytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="218"/>
+ <source>%L1 MBytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="221"/>
+ <source>%L1 GBytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="383"/>
+ <source>Could not open the requested script file at %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="388"/>
+ <location filename="../../libinstaller/component.cpp" line="408"/>
+ <source>Exception while loading the component script: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="477"/>
+ <source>Could not open the requested translation file at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="496"/>
+ <source>Could not open the requested UI file at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="525"/>
+ <source>Could not open the requested license file at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="836"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="836"/>
+ <source>Error: Operation %1 does not exist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="1010"/>
+ <source>Can&apos;t resolve isAutoDependOn in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="1050"/>
+ <source>Can&apos;t resolve isDefault in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ComponentSelectionPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="995"/>
+ <source>Component Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="997"/>
+ <source>Installed Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="998"/>
+ <source>New Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="999"/>
+ <source>Size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1030"/>
+ <source>Alt+A</source>
+ <comment>select default components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1031"/>
+ <source>Def&amp;ault</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1036"/>
+ <source>Alt+R</source>
+ <comment>reset to already installed components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1037"/>
+ <source>&amp;Reset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1046"/>
+ <source>Alt+S</source>
+ <comment>select all components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1047"/>
+ <source>&amp;Select All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1053"/>
+ <source>Alt+D</source>
+ <comment>deselect all components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1054"/>
+ <source>&amp;Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1120"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1121"/>
+ <source>This component will occupy approximately %1 on your hard disk drive.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1194"/>
+ <source>Select Components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1205"/>
+ <source>Please select the components you want to update.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1206"/>
+ <source>Please select the components you want to install.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1207"/>
+ <source>Please select the components you want to uninstall.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1208"/>
+ <source>Select the components to install. Deselect installed components to uninstall them.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CopyDirectoryOperation</name>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="70"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="81"/>
+ <source>Invalid arguments in %0: Directories are invalid: %1 %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="114"/>
+ <source>Could not create %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="120"/>
+ <source>Could not copy %0 to %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="140"/>
+ <source>Could not remove %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CreateDesktopEntryOperation</name>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="137"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="147"/>
+ <source>Failed to overwrite %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="154"/>
+ <source>Could not write Desktop Entry at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CreateShortcutOperation</name>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="161"/>
+ <source>Could not create folder %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="179"/>
+ <source>Could not create link %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::DownloadArchivesJob</name>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="115"/>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="164"/>
+ <source>Canceled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="151"/>
+ <source>Downloading hash signature failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="245"/>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="281"/>
+ <source>Download Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="245"/>
+ <source>Hash verification while downloading failed. This is a temporary error, please retry.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="250"/>
+ <source>Could not verify Hash</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="258"/>
+ <source>Could not open %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="281"/>
+ <source>Could not download archive: %1 : %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="293"/>
+ <source>Could not fetch archives: %1
+Error while loading %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="330"/>
+ <source>Downloading archive hash for component: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="332"/>
+ <source>Downloading archive for component: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="335"/>
+ <source>Scheme not supported: %1 (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="338"/>
+ <source>Could not find component for: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ElevatedExecuteOperation</name>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="81"/>
+ <source>Invalid arguments in %1: %2 arguments given, at least 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="135"/>
+ <source>Execution failed: Could not start detached: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="187"/>
+ <source>Execution failed: Could not start: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="202"/>
+ <source>Execution failed(Crash): &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="208"/>
+ <source>Execution failed(Unexpected exit code: %1): &quot;%2&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::EnvironmentVariableOperation</name>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="132"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2-3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ExtractArchiveOperation</name>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ExtractArchiveOperation::Runnable</name>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="177"/>
+ <source>Could not open %1 for reading: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="186"/>
+ <source>Error while extracting %1: %2. (Maybe the target dir(%3) is blocked by another process.)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="189"/>
+ <source>Error while extracting %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="192"/>
+ <source>Unknown exception caught while extracting %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::FakeStopProcessForUpdateOperation</name>
+ <message>
+ <location filename="../../libinstaller/fakestopprocessforupdateoperation.cpp" line="113"/>
+ <source>These processes should be stopped to continue:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::FinishedPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1836"/>
+ <source>Completing the %1 Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1844"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1847"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1899"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1844"/>
+ <source>Click Done to exit the %1 Wizard.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1847"/>
+ <source>Click Finish to exit the %1 Wizard.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1878"/>
+ <source>Restart</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1903"/>
+ <source>Run %1 now.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1909"/>
+ <source>The %1 Wizard failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GetRepositoryMetaInfoJob</name>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="196"/>
+ <source>Empty repository URL.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="201"/>
+ <source>Invalid repository URL: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="207"/>
+ <source>URL scheme not supported: %1 (%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="236"/>
+ <source>Retrieving component meta information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="252"/>
+ <source>Could not move Updates.xml to target location: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="258"/>
+ <source>Could not open Updates.xml for reading: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="266"/>
+ <source>Could not fetch a valid version of Updates.xml from repository: %1. Error: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="271"/>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="371"/>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="494"/>
+ <source>Download Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="279"/>
+ <source>Parsing component meta information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="328"/>
+ <source>Repository updates received.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="354"/>
+ <source>Finished updating component meta information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="365"/>
+ <source>Could not fetch Updates.xml from repository: %1. Error: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="387"/>
+ <source>Retrieving component information from remote repository...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="456"/>
+ <source>Could not open meta info archive: %1. Error: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="468"/>
+ <source>The hash of one component does not match the expected one.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="469"/>
+ <source>Bad hash.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="488"/>
+ <source>Could not download meta information for component: %1. Error: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GetRepositoryMetaInfoJob::ZipRunnable</name>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="93"/>
+ <source>Error while extracting %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="95"/>
+ <source>Unknown exception caught while extracting %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="98"/>
+ <source>Could not open %1 for reading: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GlobalSettingsOperation</name>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="56"/>
+ <source>Settings are not writable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="66"/>
+ <source>Failed to write settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="120"/>
+ <source>Invalid arguments in 0%: %1 arguments given, at least 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::InstallIconsOperation</name>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="132"/>
+ <source>Invalid arguments in %0: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::IntroductionPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="788"/>
+ <source>Setup - %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="794"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="794"/>
+ <source>Welcome to the %1 Setup Wizard.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LicenseAgreementPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="854"/>
+ <source>License Agreement</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="855"/>
+ <source>Please read the following license agreement(s). You must accept the terms contained in these agreement(s) before continuing with the installation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="881"/>
+ <source>Alt+A</source>
+ <comment>agree license</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="891"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="903"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="891"/>
+ <source>I accept the licenses.</source>
+ <translation>I h&lt;u&gt;a&lt;/u&gt;ve read and agree to the following terms contained in the license agreements accompanying the Qt SDK and additional items. I agree that my use of the Qt SDK is governed by the terms and conditions contained in these license agreements.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="903"/>
+ <source>I do not accept the licenses.</source>
+ <translation>I &lt;u&gt;d&lt;/u&gt;o not accept the terms and conditions of the above listed license agreements. Please note by checking the box, you must cancel the installation or downloading the Qt SDK and must destroy all copies, or portions thereof, of the Qt SDK in your possessions.</translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="896"/>
+ <source>Alt+D</source>
+ <comment>do not agree license</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LicenseOperation</name>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="58"/>
+ <source>No license files found to copy.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="65"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="80"/>
+ <source>Can not write license file: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="97"/>
+ <source>No license files found to delete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LineReplaceOperation</name>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="60"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::MacReplaceInstallNamesOperation</name>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="66"/>
+ <source>Invalid arguments in %0: %1 arguments given, 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="144"/>
+ <source>Can&apos;t invoke otool. Is Xcode installed?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="262"/>
+ <source>Can&apos;t start process %0.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerCore</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="262"/>
+ <source>Error writing Uninstaller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="364"/>
+ <source>
+Downloading packages...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="388"/>
+ <source>Installation canceled by user</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="389"/>
+ <source>All downloads finished.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="406"/>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1781"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="422"/>
+ <source>Cancelling the Installer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="465"/>
+ <source>Authentication Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="465"/>
+ <source>Some components could not be removed completely because admin rights could not be acquired: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="470"/>
+ <source>Unknown error.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="470"/>
+ <source>Some components could not be removed completely because an unknown error happened.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="561"/>
+ <source>Application not running in Package Manager mode!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="568"/>
+ <source>No installed packages found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="645"/>
+ <source>Application running in Uninstaller mode!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1812"/>
+ <source>invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerCorePrivate</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="327"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1458"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1621"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1712"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="439"/>
+ <source>Component(s) added as automatic dependencies</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="481"/>
+ <source>Added as dependency for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="490"/>
+ <source>Component(s) that have resolved Dependencies</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="499"/>
+ <source>Selected Component(s) without Dependencies</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="807"/>
+ <source>Access error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="808"/>
+ <source>Format error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="809"/>
+ <source>Could not write installer configuration to %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="926"/>
+ <source>Stop Processes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="926"/>
+ <source>These processes should be stopped to continue:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="934"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1740"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1918"/>
+ <source>Installation canceled by user</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1052"/>
+ <source>Could not write uninstaller to %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1262"/>
+ <source>Found a binary data file, but we are the installer and we should read the binary resource from our very own binary!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1286"/>
+ <source>Could not write uninstaller binary data to %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1333"/>
+ <source>ProductName should be set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1358"/>
+ <source>Variable &apos;TargetDir&apos; not set.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1396"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1582"/>
+ <source>Preparing the installation...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1439"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1602"/>
+ <source>Creating Uninstaller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1448"/>
+ <source>
+Installation finished!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1464"/>
+ <source>
+Installation aborted!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1588"/>
+ <source>Removing deselected components...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1611"/>
+ <source>
+Update finished!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1627"/>
+ <source>
+Update aborted!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1704"/>
+ <source>
+Deinstallation finished!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1715"/>
+ <source>
+Deinstallation aborted!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1734"/>
+ <source>
+Installing component %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1763"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1935"/>
+ <source>Installer Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1764"/>
+ <source>Error during installation process (%1):
+%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1830"/>
+ <source>Cannot prepare uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1861"/>
+ <source>Cannot start uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1936"/>
+ <source>Error during uninstallation process:
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1971"/>
+ <source>Unknown error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1990"/>
+ <source>Could not retrieve remote tree: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2019"/>
+ <source>Failure to read packages from: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2045"/>
+ <source>Could not retrieve meta information: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2100"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2111"/>
+ <source>Could not add temporary update source information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2124"/>
+ <source>Could not find any update source information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerGui</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="238"/>
+ <source>%1 Setup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="240"/>
+ <source>Maintain %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="540"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="554"/>
+ <source>Question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="541"/>
+ <source>Do you want to abort the %1 process?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="541"/>
+ <source>uninstallation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="542"/>
+ <source>installation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="546"/>
+ <source>installer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="548"/>
+ <source>uninstaller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="550"/>
+ <source>maintenance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="555"/>
+ <source>Do you want to abort the %1 application?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="596"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="675"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="680"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PerformInstallationForm</name>
+ <message>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="86"/>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="136"/>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="153"/>
+ <source>&amp;Show Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="136"/>
+ <source>&amp;Hide Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PerformInstallationPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1770"/>
+ <source>&amp;Uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1771"/>
+ <source>Uninstalling %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1775"/>
+ <source>&amp;Update</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1776"/>
+ <source>Updating components of %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1780"/>
+ <source>&amp;Install</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1781"/>
+ <source>Installing %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1799"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::QtPatchOperation</name>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="129"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="140"/>
+ <source>First argument should be &apos;linux&apos;, &apos;mac&apos; or &apos;windows&apos;. No other type is supported at this time.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="155"/>
+ <source>QMake from the current Qt version
+(%1)is not existing. Please file a bugreport with this dialog at https://bugreports.qt-project.org.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="165"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: &quot;%2&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="177"/>
+ <source>Qt patch error: new Qt dir(%1)
+needs to be less than 255 characters.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="194"/>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="244"/>
+ <source>Qt patch error: Can not open %1.(%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="306"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="313"/>
+ <source>Error while relocating Qt: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="319"/>
+ <source>The installer was not able to get the unpatched path from
+%1.(maybe it is broken or removed)
+It tried to patch the Qt binaries, but all other files in Qt are unpatched.
+This could result in a broken Qt version.
+Sometimes it helps to restart the installer with a switched off antivirus software.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ReadyForInstallationPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1521"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1700"/>
+ <source>&amp;Show Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1554"/>
+ <source>U&amp;ninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1555"/>
+ <source>Ready to Uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1556"/>
+ <source>Setup is now ready to begin removing %1 from your computer.&lt;br&gt;&lt;font color=&quot;red&quot;&gt;The program dir %2 will be deleted completely&lt;/font&gt;, including all content in that directory!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1564"/>
+ <source>U&amp;pdate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1565"/>
+ <source>Ready to Update Packages</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1566"/>
+ <source>Setup is now ready to begin updating your installation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1569"/>
+ <source>&amp;Install</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1570"/>
+ <source>Ready to Install</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1571"/>
+ <source>Setup is now ready to begin installing %1 on your computer.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1617"/>
+ <source>Not enough disk space to store temporary files and the installation! Available space: %1, at least required %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1624"/>
+ <source>Not enough disk space to store all selected components! Available space: %1, at least required: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1631"/>
+ <source>Not enough disk space to store temporary files! Available space: %1, at least required: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1639"/>
+ <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. %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1644"/>
+ <source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 100 MB available afterwards. %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1658"/>
+ <source>Can not resolve all dependencies!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1676"/>
+ <source>Components about to be removed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1700"/>
+ <source>&amp;Hide Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterDefaultDebuggerOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="85"/>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="124"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="95"/>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="134"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="109"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterDocumentationOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="89"/>
+ <source>Invalid arguments in %0: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="104"/>
+ <source>Could not register help file %1: File not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="135"/>
+ <source>Could not unregister help file %1: File not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterFileTypeOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="59"/>
+ <source>Invalid arguments in %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="120"/>
+ <source>Register File Type: Invalid arguments</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="65"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="84"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="102"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorV23Operation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="96"/>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="175"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 4 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="104"/>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="183"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="110"/>
+ <source>The given TargetDir %1 is not a valid/existing dir.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorV2Operation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="63"/>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="139"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="71"/>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="147"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="77"/>
+ <source>The given TargetDir %1 is not a valid/existing dir.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterToolChainOperation</name>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="66"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="121"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 4 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="76"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="131"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="101"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="156"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="108"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="163"/>
+ <source>Some arguments are not right in %1 operation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ReplaceOperation</name>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="60"/>
+ <source>Invalid arguments in %0: %1 arguments given, 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RestartPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1949"/>
+ <source>Completing the %1 Setup Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SelfRestartOperation</name>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="55"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="61"/>
+ <source>Self Restart: Only valid within updater or packagemanager mode.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="67"/>
+ <source>Self Restart: Invalid arguments</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetDemosPathOnQtOperation</name>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="76"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="90"/>
+ <source>Qt patch error: new Qt demo path (%1)
+needs to be less than 255 characters.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetExamplesPathOnQtOperation</name>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="76"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="90"/>
+ <source>Qt patch error: new Qt example path (%1)
+needs to be less than 255 characters.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetImportsPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setimportspathonqtcoreoperation.cpp" line="101"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setpathonqtcoreoperation.cpp" line="103"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setpathonqtcoreoperation.cpp" line="127"/>
+ <source>The second type/value needs to be one of: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetPluginPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setpluginpathonqtcoreoperation.cpp" line="100"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetQtCreatorValueOperation</name>
+ <message>
+ <location filename="../../libinstaller/setqtcreatorvalueoperation.cpp" line="63"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 4 expected (rootInstallPath, group, key, value).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setqtcreatorvalueoperation.cpp" line="93"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SimpleMoveFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="53"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="63"/>
+ <source>None of the arguments can be empty: source(%1), target(%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="74"/>
+ <source>Can not copy source(%1) to target(%2), because target exists and is not removable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="83"/>
+ <source>Can not move source(%1) to target(%2): %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="88"/>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="98"/>
+ <source>Move %1 to %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::StartMenuDirectoryPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1417"/>
+ <source>Start Menu shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1418"/>
+ <source>Select the Start Menu in which you would like to create the program&apos;s shortcuts. You can also enter a name to create a new folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::TargetDirectoryPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1288"/>
+ <source>Installation Folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1296"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1311"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1349"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1364"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1375"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1400"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1296"/>
+ <source>Please specify the folder where %1 will be installed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1310"/>
+ <source>Alt+R</source>
+ <comment>browse file system to choose a file</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1311"/>
+ <source>B&amp;rowse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1349"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1364"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1350"/>
+ <source>The install directory cannot be empty, please specify a valid folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1365"/>
+ <source>As the install directory is completely deleted, installing in %1 is forbidden.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1375"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1376"/>
+ <source>You have selected an existing, non-empty folder for installation. Note that it will be completely wiped on uninstallation of this application. It is not advisable to install into this folder as installation might fail. Do you want to continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1401"/>
+ <source>Select Installation Folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::UpdateCreatorSettingsFrom21To22Operation</name>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="278"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 0 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="286"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="304"/>
+ <source>Can not remove previous registered Qt Versions in %1 operation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstallerCreator::Archive</name>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="303"/>
+ <source>Could not create %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="412"/>
+ <source>Could not open archive file %1 for reading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="431"/>
+ <source>Could not create archive from %1: Not a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="455"/>
+ <source>Error while packing directory at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="219"/>
+ <source>Searched whole file, no marker found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="221"/>
+ <source>Could not seek to %1 in file %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="231"/>
+ <source>No marker found, stopped after %1 bytes.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="237"/>
+ <source>No marker found, unknown exception caught.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="479"/>
+ <source>Cannot create zipped file for path %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="741"/>
+ <source>Could not seek to in-binary resource. (offset: %1, length: %2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="748"/>
+ <source>Could not register in-binary resource.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="908"/>
+ <location filename="../../common/binaryformat.cpp" line="1095"/>
+ <source>Could not open binary %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="953"/>
+ <source>Could not seek to binary layout section.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="978"/>
+ <source>Could not seek to metadata index.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="999"/>
+ <source>Could not seek to operation list.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="1014"/>
+ <source>Could not seek to component index information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="1018"/>
+ <source>Could not seek to component index.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="146"/>
+ <source>Cannot open file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="153"/>
+ <location filename="../../common/fileutils.cpp" line="160"/>
+ <source>Cannot open file %1 for writing: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="169"/>
+ <source>Write failed after %1 bytes: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="190"/>
+ <source>Read failed after %1 bytes: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="219"/>
+ <source>Could not remove file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="244"/>
+ <source>Could not remove folder %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="313"/>
+ <location filename="../../common/fileutils.cpp" line="338"/>
+ <source>Could not create folder %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="325"/>
+ <source>Could not copy file from %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="350"/>
+ <source>Could not move file from %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="361"/>
+ <location filename="../../common/fileutils.cpp" line="370"/>
+ <source>Could not create folder %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="380"/>
+ <source>Could not open temporary file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="397"/>
+ <source>Could not open temporary file for template %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="407"/>
+ <source>Could not create temporary folder for template %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="45"/>
+ <source>Could not create lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="55"/>
+ <source>Could not write PID to lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="63"/>
+ <source>Could not lock lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="75"/>
+ <source>Could not unlock lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="137"/>
+ <source>Path exists but is not a folder: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="153"/>
+ <source>Could not create folder: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="188"/>
+ <source>Could not create temporary file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="205"/>
+ <source>Could not retrieve property %1 for item %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="228"/>
+ <source>Property %1 for item %2 not of type VT_FILETIME but %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="236"/>
+ <source>Could not convert file time to local time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="240"/>
+ <source>Could not convert local file time to system time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="569"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1148"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1321"/>
+ <source>Could not load codecs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="572"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1153"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1326"/>
+ <source>Could not retrieve default format</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="576"/>
+ <source>Could not open archive</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="578"/>
+ <source>No CArc found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="642"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1228"/>
+ <source>Could not retrieve number of items in archive</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="648"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="731"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="781"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1236"/>
+ <source>Could not retrieve path of archive item %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="669"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="686"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1201"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1247"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1345"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1367"/>
+ <source>Unknown exception caught (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="686"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1367"/>
+ <source>Failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="799"/>
+ <source>Could not create file system link at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="804"/>
+ <source>Could not create softlink at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1183"/>
+ <source>Could not create archive %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1220"/>
+ <source>CArc index %1 out of bounds [0, %2]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1231"/>
+ <source>Item index %1 out of bounds [0, %2]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1243"/>
+ <source>Extracting %1 failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1266"/>
+ <source>Could not create output file for writing: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1299"/>
+ <source>Extraction failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="74"/>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="77"/>
+ <source>Authorization required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="74"/>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="78"/>
+ <source>Enter your password to authorize for sudo:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="88"/>
+ <source>Error acquiring admin rights</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="129"/>
+ <source>Could not backup file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="180"/>
+ <source>Could not delete file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="191"/>
+ <source>Could not restore backup file into %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="145"/>
+ <source>Invalid arguments: %1 arguments given, 2 or 3 expected (optional: &quot;workingDirectory=...&quot;).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="171"/>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="189"/>
+ <source>Failed to overwrite %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="89"/>
+ <source>Registry path %1 is not writable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="101"/>
+ <source>Could not write to registry path %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/fakestopprocessforupdateoperation.cpp" line="102"/>
+ <source>Number of arguments does not match : one is required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="140"/>
+ <source>Invalid Argument: source folder must not be empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="176"/>
+ <source>Could not backup file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="200"/>
+ <source>Failed to copy file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="210"/>
+ <source>Could not create folder at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="71"/>
+ <source>Failed to open %1 for reading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="88"/>
+ <source>Failed to open %1 for writing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="77"/>
+ <source>Invalid arguments: %1 arguments given, %2 to %3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="81"/>
+ <source>Invalid arguments: %1 arguments given, %2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1027"/>
+ <source>Error while elevating access rights.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1039"/>
+ <source>Failed to seek in file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="128"/>
+ <source>kB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="131"/>
+ <source>MB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="134"/>
+ <source>GB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="330"/>
+ <source>Could not open the requested script file at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="367"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="373"/>
+ <source>Exception while loading the control script %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="105"/>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="194"/>
+ <source>Registering file types in only supported on Windows.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="71"/>
+ <source>Failed to open %1 for reading</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="81"/>
+ <source>Failed to open %1 for writing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbase_p.cpp" line="413"/>
+ <source>Failed to seek in file %1. Reason: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="182"/>
+ <location filename="../../binarycreator/binarycreator.cpp" line="192"/>
+ <location filename="../../common/repositorygen.cpp" line="743"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="350"/>
+ <source>Could not create temporary file for generated rcc project file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="455"/>
+ <location filename="../../binarycreator/binarycreator.cpp" line="494"/>
+ <source>Could not copy %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="552"/>
+ <source>Error: Packages parameter missing argument.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="555"/>
+ <source>Error: Package directory not found at the specified location.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="562"/>
+ <source>Error: Package to exclude missing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="573"/>
+ <source>Error: Template parameter missing argument.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="576"/>
+ <source>Error: Template not found at the specified location.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="583"/>
+ <source>Error: Config parameter missing argument.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="586"/>
+ <source>Error: Config directory %1 not found at the specified location.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="590"/>
+ <source>Error: Configuration %1 is not a directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="594"/>
+ <source>Error: Config directory %1 is not readable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="601"/>
+ <source>Error: Resource files to include missing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="612"/>
+ <source>Error: Target parameter missing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="615"/>
+ <source>Error: No components selected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="618"/>
+ <source>Error: No configuration directory selected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="68"/>
+ <source>Component %1 can&apos;t contain &apos;-&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="74"/>
+ <source>Component %1 does not contain a package description.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="87"/>
+ <source>Component package description for %1 is invalid. Error at line: %2, column: %3 -&gt; %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="95"/>
+ <source>Component folder name must match component name: %1 in %2/</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="104"/>
+ <source>Component version for %1 is invalid! &lt;Version&gt;%2&lt;/version&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="201"/>
+ <source>Circular dependencies detected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="211"/>
+ <source>Couldn&apos;t find package for component %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="257"/>
+ <source>Folder %1 does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="279"/>
+ <location filename="../../common/repositorygen.cpp" line="712"/>
+ <source>Could not move %1 to %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="341"/>
+ <source>Could not parse %1: line: %2, column: %3: %4 (%5)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="425"/>
+ <source>Could not create directory %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="449"/>
+ <source>Could not copy the script %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="467"/>
+ <source>Couldn&apos;t find any user interface matching %1 while copying user interfaces of %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="478"/>
+ <source>Could not copy the UI file %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="502"/>
+ <source>Could not find any translation file matching %1 while copying translations of %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="513"/>
+ <source>Could not copy the translation %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="536"/>
+ <source>Could not find any license matching %1 while copying license files of %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="545"/>
+ <source>Could not copy the license file %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="729"/>
+ <source>Could not create repository folder for component %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="110"/>
+ <source>Error: Package to exclude missing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="119"/>
+ <source>Error: Packages parameter missing argument</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="123"/>
+ <source>Error: Package directory not found at the specified location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="131"/>
+ <location filename="../../repogen/repogen.cpp" line="150"/>
+ <source>Error: Config parameter missing argument</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="134"/>
+ <source>Error: Config directory %1 not found at the specified location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="138"/>
+ <source>Error: Configuration %1 is not a directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="142"/>
+ <source>Error: Config directory %1 is not readable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="192"/>
+ <source>Repository target folder %1 already exists!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../tests/extractarchiveoperationtest/extractarchiveoperationtest.cpp" line="93"/>
+ <source>Could not remove folder %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../tests/extractarchiveoperationtest/extractarchiveoperationtest.cpp" line="100"/>
+ <source>Could not remove folder %1: Unknown error</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Settings</name>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="185"/>
+ <source>Could not open settings file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="190"/>
+ <source>%1 is not valid: Installer root node expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="215"/>
+ <source>Multiple %1 elements found, but only one allowed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="24"/>
+ <source>Network</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="30"/>
+ <source>No proxy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>System proxy settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="53"/>
+ <source>Manual proxy configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="79"/>
+ <source>HTTP proxy:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="96"/>
+ <location filename="../settingsdialog.ui" line="222"/>
+ <source>Port:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="118"/>
+ <source>HTTP proxy requires authentication</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="143"/>
+ <location filename="../settingsdialog.ui" line="269"/>
+ <source>Username:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="160"/>
+ <location filename="../settingsdialog.ui" line="286"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="205"/>
+ <source>FTP proxy:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="244"/>
+ <source>FTP proxy requires authentication</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="325"/>
+ <source>Repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="331"/>
+ <source>Add Username and Password for authentication if needed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="347"/>
+ <source>Use temporary repositories only</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="356"/>
+ <source>Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="363"/>
+ <source>Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="370"/>
+ <source>Test</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="390"/>
+ <location filename="../settingsdialog.cpp" line="459"/>
+ <source>Show Passwords</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="237"/>
+ <source>Check this to use repository during fetch.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="239"/>
+ <source>Add the username to authenticate on the server.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="241"/>
+ <source>Add the password to authenticate on the server.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="243"/>
+ <source>The servers URL that contains a valid repository.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="440"/>
+ <source>There was an error testing this repository.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="441"/>
+ <source>Do you want to disable the tested repository?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="459"/>
+ <source>Hide Passwords</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="504"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="504"/>
+ <source>Username</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="504"/>
+ <source>Password</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="505"/>
+ <source>Repository</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="506"/>
+ <source>Default repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="507"/>
+ <source>Temporary repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="508"/>
+ <source>User defined repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TargetDirectoryPageImpl</name>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="343"/>
+ <source>The installation path cannot be empty, please specify a valid folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="348"/>
+ <source>The installation path cannot be relative, please specify an absolute path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="359"/>
+ <source>The installation path must not contain !@#$%^&amp;*:,; or spaces, please specify a valid folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="376"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="385"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="404"/>
+ <source>The path or installation directory contains non ASCII characters. This is currently not supported! Please choose a different path or installation directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="419"/>
+ <source>As the install directory is completely deleted installing in %1 is forbidden.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="434"/>
+ <source>The folder you selected exists already and contains an installation.
+Do you want to overwrite it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="439"/>
+ <source>You have selected an existing, non-empty folder for installation.
+Note that it will be completely wiped on uninstallation of this application.
+It is not advisable to install into this folder as installation might fail.
+Do you want to continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="443"/>
+ <source>You have selected an existing file or symlink, please choose a different target for installation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TestRepository</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="82"/>
+ <source>Empty repository URL.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="88"/>
+ <source>URL scheme not supported: %1 (%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="128"/>
+ <source>Could not parse Updates.xml! Error: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="133"/>
+ <source>Updates.xml could not be opened for reading!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="136"/>
+ <source>Updates.xml could not be found on server!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/sdk/translations/sv_se.ts b/src/sdk/translations/sv_se.ts
new file mode 100644
index 000000000..3b2e57954
--- /dev/null
+++ b/src/sdk/translations/sv_se.ts
@@ -0,0 +1,3384 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="se_FI">
+<context>
+ <name>Component</name>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="578"/>
+ <source>Could not open archive %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>IntroductionPageImpl</name>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="63"/>
+ <source>Package manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="68"/>
+ <source>Update components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="73"/>
+ <source>Remove all components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="83"/>
+ <source>Retrieving information from remote installation sources...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="145"/>
+ <source>No updates available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="164"/>
+ <source> Only local package management available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdjob.cpp" line="176"/>
+ <source>Canceled</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDSaveFile</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="251"/>
+ <source>Append mode not supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="256"/>
+ <source>Read-only access not supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="344"/>
+ <source>Could not backup existing file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="385"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="396"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdsavefile.cpp" line="407"/>
+ <source>TODO</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::AppendFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="597"/>
+ <source>Cannot backup file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="610"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="624"/>
+ <source>Could not open file %1 for writing: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="643"/>
+ <source>Cannot find backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="649"/>
+ <source>Could not restore backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="660"/>
+ <source>Could not restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::CopyOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="123"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="112"/>
+ <source>Could not backup file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="136"/>
+ <source>Could not remove destination file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="145"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="157"/>
+ <source>Could not delete file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="170"/>
+ <source>Could not restore backup file into %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::DeleteOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="341"/>
+ <source>Cannot create backup of %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="351"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="368"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::ExecuteOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="848"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="906"/>
+ <source>Execution failed: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::FileDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="53"/>
+ <source>%L1 B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="56"/>
+ <source>%L1 KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="59"/>
+ <source>%L1 MB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="61"/>
+ <source>%L1 GB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="300"/>
+ <source>Could not reopen downloaded file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="316"/>
+ <source>Download canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="323"/>
+ <source>Cryptographic hashes do not match.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="327"/>
+ <source>Download finished.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="429"/>
+ <source> of </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="432"/>
+ <source> downloaded.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="435"/>
+ <source>/sec</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="446"/>
+ <source> day</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="446"/>
+ <source> days</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="450"/>
+ <source> hour</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="450"/>
+ <source> hours</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="454"/>
+ <source> minute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="454"/>
+ <source> minutes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="459"/>
+ <source> second</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="459"/>
+ <source> seconds</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="461"/>
+ <source> - </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="461"/>
+ <source> remaining.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="463"/>
+ <source> - unknown time remaining.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::FtpDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1013"/>
+ <source>Download was aborted due to network errors.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1034"/>
+ <source>Cannot download %1: Writing to temporary file failed: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::HttpDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1154"/>
+ <source>Cannot download %1: Writing to temporary file failed: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1281"/>
+ <source>Cannot download %1: Could not create temporary file: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::LocalFileDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="597"/>
+ <source>Cannot open source file for reading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="612"/>
+ <source>Cannot open destination file for writing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="668"/>
+ <source>Writing to %1 failed: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::MkdirOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="445"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="452"/>
+ <source>Could not create folder %1: Unknown error.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="490"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="492"/>
+ <source>Cannot remove directory %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::MoveOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="233"/>
+ <source>Could not backup file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="244"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="258"/>
+ <source>Could not remove destination file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="268"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="290"/>
+ <source>Cannot remove file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="284"/>
+ <source>Cannot copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="303"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::PackagesInfo</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="102"/>
+ <source>%1 contains invalid content: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="284"/>
+ <source>The file %1 does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="292"/>
+ <source>Could not open %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="317"/>
+ <source>Root element %1 unexpected, should be &apos;Packages&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterpackagesinfo.cpp" line="304"/>
+ <source>Parse error in %1 at %2, %3: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::PrependFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="695"/>
+ <source>Cannot backup file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="708"/>
+ <source>Invalid arguments: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="719"/>
+ <source>Could not open file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="735"/>
+ <source>Could not open file %1 for writing: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="753"/>
+ <source>Cannot find backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="758"/>
+ <source>Cannot restore backup file for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="769"/>
+ <source>Cannot restore backup file for %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::RmdirOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="530"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="538"/>
+ <source>Could not remove folder %1: The folder does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="547"/>
+ <source>Could not remove folder %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="561"/>
+ <source>Cannot recreate directory %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::SignatureVerificationDownloader</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1461"/>
+ <source>Could not download signature: scheme %1 not supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1474"/>
+ <source>Downloading signature: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1486"/>
+ <source>Could not open signature file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp" line="1492"/>
+ <source>Could not open file for verification: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::Task</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="179"/>
+ <source>%1 started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="192"/>
+ <source>%1 cannot be stopped</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="210"/>
+ <source>Cannot stop task %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="229"/>
+ <source>%1 cannot be paused</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="247"/>
+ <source>Cannot pause task %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="275"/>
+ <source>Cannot resume task %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdatertask.cpp" line="331"/>
+ <source>%1 done</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::Update</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdate.cpp" line="235"/>
+ <source>Downloading update...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdate.cpp" line="243"/>
+ <source>Update downloaded</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateCompatOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="1029"/>
+ <source>Invalid arguments: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="1041"/>
+ <source>Cannot restore previous compat-level</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateFinder</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="315"/>
+ <source>Could not download updates from %1 (&apos;%2&apos;)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="185"/>
+ <source>Could not access the package information of this application.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="196"/>
+ <source>Could not access the update sources information of this application.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="219"/>
+ <source>%1 updates found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="302"/>
+ <source>Downloading Updates.xml from update sources.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="353"/>
+ <source>Updates.xml file(s) downloaded from update sources.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="374"/>
+ <source>Looking for compatibility update...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="399"/>
+ <source>Found compatibility update..</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="402"/>
+ <source>Compatibility level %1 update</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="408"/>
+ <source>Compatibility update for the required architecture and hardware configuration was not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="409"/>
+ <source>Compatibility update not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="425"/>
+ <source>Compatibility update found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="427"/>
+ <source>No compatibility updates found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="452"/>
+ <source>Computing applicable updates.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="456"/>
+ <source>Application updates computed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatefinder.cpp" line="744"/>
+ <source>Downloading Updates.xml from update sources</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdatePackageOperation</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="971"/>
+ <source>Invalid arguments: %1 arguments given, 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="980"/>
+ <source>Cannot update %1-%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdateoperations.cpp" line="993"/>
+ <source>Cannot restore %1-%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdateSourcesInfo</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="126"/>
+ <source>%1 contains invalid content: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="326"/>
+ <source>Could not read &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="338"/>
+ <source>XML Parse error in %1 at %2, %3: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="350"/>
+ <source>Root element %1 unexpected, should be &quot;UpdateSources&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="397"/>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesourcesinfo.cpp" line="408"/>
+ <source>Could not save changes to &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KDUpdater::UpdatesInfoData</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="61"/>
+ <source>Updates.Xml contains invalid content: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="69"/>
+ <source>Could not read &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="79"/>
+ <source>Parse error in %1 at %2, %3: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="89"/>
+ <source>root element %1 unexpected, should be &quot;Updates&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="122"/>
+ <source>ApplicationName element is missing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="127"/>
+ <source>ApplicationVersion element is missing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="183"/>
+ <source>PackageUpdate element without Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="187"/>
+ <source>PackageUpdate element without Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="191"/>
+ <source>PackageUpdate element without ReleaseDate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="195"/>
+ <source>PackageUpdate element without UpdateFile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="232"/>
+ <source>CompatUpdate element without CompatLevel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="237"/>
+ <source>CompatUpdate element without ReleaseDate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdupdaterupdatesinfo.cpp" line="242"/>
+ <source>CompatUpdate element without UpdateFile</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Lib7z::ExtractItemJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1355"/>
+ <source>Could not list archive: QIODevice not set or already destroyed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Lib7z::ListArchiveJob</name>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="679"/>
+ <source>Could not list archive: QIODevice already destroyed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::AddQtCreatorArrayValueOperation</name>
+ <message>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="64"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 4 expected (group, arrayname, key, value).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="73"/>
+ <location filename="../../libinstaller/addqtcreatorarrayvalueoperation.cpp" line="125"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::Component</name>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="212"/>
+ <source>%L1 Bytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="215"/>
+ <source>%L1 kBytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="218"/>
+ <source>%L1 MBytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="221"/>
+ <source>%L1 GBytes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="383"/>
+ <source>Could not open the requested script file at %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="388"/>
+ <location filename="../../libinstaller/component.cpp" line="408"/>
+ <source>Exception while loading the component script: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="477"/>
+ <source>Could not open the requested translation file at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="496"/>
+ <source>Could not open the requested UI file at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="525"/>
+ <source>Could not open the requested license file at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="836"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="836"/>
+ <source>Error: Operation %1 does not exist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="1010"/>
+ <source>Can&apos;t resolve isAutoDependOn in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/component.cpp" line="1050"/>
+ <source>Can&apos;t resolve isDefault in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ComponentSelectionPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1001"/>
+ <source>Component Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1003"/>
+ <source>Installed Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1004"/>
+ <source>New Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1005"/>
+ <source>Size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1036"/>
+ <source>Alt+A</source>
+ <comment>select default components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1037"/>
+ <source>Def&amp;ault</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1042"/>
+ <source>Alt+R</source>
+ <comment>reset to already installed components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1043"/>
+ <source>&amp;Reset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1052"/>
+ <source>Alt+S</source>
+ <comment>select all components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1053"/>
+ <source>&amp;Select All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1059"/>
+ <source>Alt+D</source>
+ <comment>deselect all components</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1060"/>
+ <source>&amp;Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1126"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1127"/>
+ <source>This component will occupy approximately %1 on your hard disk drive.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1200"/>
+ <source>Select Components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1211"/>
+ <source>Please select the components you want to update.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1212"/>
+ <source>Please select the components you want to install.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1213"/>
+ <source>Please select the components you want to uninstall.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1214"/>
+ <source>Select the components to install. Deselect installed components to uninstall them.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CopyDirectoryOperation</name>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="70"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="81"/>
+ <source>Invalid arguments in %0: Directories are invalid: %1 %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="114"/>
+ <source>Could not create %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="120"/>
+ <source>Could not copy %0 to %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/copydirectoryoperation.cpp" line="140"/>
+ <source>Could not remove %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CreateDesktopEntryOperation</name>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="137"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="147"/>
+ <source>Failed to overwrite %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="154"/>
+ <source>Could not write Desktop Entry at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::CreateShortcutOperation</name>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="161"/>
+ <source>Could not create folder %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="179"/>
+ <source>Could not create link %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::DownloadArchivesJob</name>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="117"/>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="166"/>
+ <source>Canceled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="153"/>
+ <source>Downloading hash signature failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="247"/>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="283"/>
+ <source>Download Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="247"/>
+ <source>Hash verification while downloading failed. This is a temporary error, please retry.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="252"/>
+ <source>Could not verify Hash</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="260"/>
+ <source>Could not open %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="283"/>
+ <source>Could not download archive: %1 : %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="295"/>
+ <source>Could not fetch archives: %1
+Error while loading %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="337"/>
+ <source>Downloading archive hash for component: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="339"/>
+ <source>Downloading archive for component: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="342"/>
+ <source>Scheme not supported: %1 (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/downloadarchivesjob.cpp" line="345"/>
+ <source>Could not find component for: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ElevatedExecuteOperation</name>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="81"/>
+ <source>Invalid arguments in %1: %2 arguments given, at least 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="135"/>
+ <source>Execution failed: Could not start detached: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="187"/>
+ <source>Execution failed: Could not start: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="202"/>
+ <source>Execution failed(Crash): &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/elevatedexecuteoperation.cpp" line="208"/>
+ <source>Execution failed(Unexpected exit code: %1): &quot;%2&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::EnvironmentVariableOperation</name>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="132"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2-3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ExtractArchiveOperation</name>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ExtractArchiveOperation::Runnable</name>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="177"/>
+ <source>Could not open %1 for reading: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="186"/>
+ <source>Error while extracting %1: %2. (Maybe the target dir(%3) is blocked by another process.)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="189"/>
+ <source>Error while extracting %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/extractarchiveoperation_p.h" line="192"/>
+ <source>Unknown exception caught while extracting %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::FakeStopProcessForUpdateOperation</name>
+ <message>
+ <location filename="../../libinstaller/fakestopprocessforupdateoperation.cpp" line="113"/>
+ <source>These processes should be stopped to continue:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::FinishedPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1842"/>
+ <source>Completing the %1 Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1850"/>
+ <source>Click Done to exit the %1 Wizard.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1850"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1853"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1905"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1853"/>
+ <source>Click Finish to exit the %1 Wizard.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1884"/>
+ <source>Restart</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1909"/>
+ <source>Run %1 now.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1915"/>
+ <source>The %1 Wizard failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GetRepositoryMetaInfoJob</name>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="198"/>
+ <source>Empty repository URL.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="203"/>
+ <source>Invalid repository URL: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="209"/>
+ <source>URL scheme not supported: %1 (%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="238"/>
+ <source>Retrieving component meta information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="254"/>
+ <source>Could not move Updates.xml to target location: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="260"/>
+ <source>Could not open Updates.xml for reading: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="268"/>
+ <source>Could not fetch a valid version of Updates.xml from repository: %1. Error: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="273"/>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="372"/>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="502"/>
+ <source>Download Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="281"/>
+ <source>Parsing component meta information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="330"/>
+ <source>Repository updates received.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="355"/>
+ <source>Finished updating component meta information...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="366"/>
+ <source>Could not fetch Updates.xml from repository: %1. Error: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="388"/>
+ <source>Retrieving component information from remote repository...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="464"/>
+ <source>Could not open meta info archive: %1. Error: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="477"/>
+ <source>Bad hash.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="476"/>
+ <source>The hash of one component does not match the expected one.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="496"/>
+ <source>Could not download meta information for component: %1. Error: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GetRepositoryMetaInfoJob::ZipRunnable</name>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="94"/>
+ <source>Error while extracting %1: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="96"/>
+ <source>Unknown exception caught while extracting %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/getrepositorymetainfojob.cpp" line="99"/>
+ <source>Could not open %1 for reading: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::GlobalSettingsOperation</name>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="56"/>
+ <source>Settings are not writable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="66"/>
+ <source>Failed to write settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/globalsettingsoperation.cpp" line="120"/>
+ <source>Invalid arguments in 0%: %1 arguments given, at least 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::InstallIconsOperation</name>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="132"/>
+ <source>Invalid arguments in %0: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::IntroductionPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="788"/>
+ <source>Setup - %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="794"/>
+ <source>Welcome to the %1 Setup Wizard.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="794"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LicenseAgreementPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="854"/>
+ <source>License Agreement</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="855"/>
+ <source>Please read the following license agreement(s). You must accept the terms contained in these agreement(s) before continuing with the installation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="881"/>
+ <source>Alt+A</source>
+ <comment>agree license</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="891"/>
+ <source>I h&lt;u&gt;a&lt;/u&gt;ve read and agree to the following terms contained in the license agreements accompanying the Qt SDK and additional items. I agree that my use of the Qt SDK is governed by the terms and conditions contained in these license agreements.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="891"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="906"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="899"/>
+ <source>Alt+D</source>
+ <comment>do not agree license</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="906"/>
+ <source>I &lt;u&gt;d&lt;/u&gt;o not accept the terms and conditions of the above listed license agreements. Please note by checking the box, you must cancel the installation or downloading the Qt SDK and must destroy all copies, or portions thereof, of the Qt SDK in your possessions.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LicenseOperation</name>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="58"/>
+ <source>No license files found to copy.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="65"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="80"/>
+ <source>Can not write license file: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/licenseoperation.cpp" line="97"/>
+ <source>No license files found to delete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::LineReplaceOperation</name>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="60"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::MacReplaceInstallNamesOperation</name>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="66"/>
+ <source>Invalid arguments in %0: %1 arguments given, 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="144"/>
+ <source>Can&apos;t invoke otool. Is Xcode installed?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/macreplaceinstallnamesoperation.cpp" line="262"/>
+ <source>Can&apos;t start process %0.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerCore</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="262"/>
+ <source>Error writing Uninstaller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="364"/>
+ <source>
+Downloading packages...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="389"/>
+ <source>Installation canceled by user</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="390"/>
+ <source>All downloads finished.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="407"/>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1782"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="423"/>
+ <source>Cancelling the Installer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="466"/>
+ <source>Authentication Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="466"/>
+ <source>Some components could not be removed completely because admin rights could not be acquired: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="471"/>
+ <source>Unknown error.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="471"/>
+ <source>Some components could not be removed completely because an unknown error happened.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="562"/>
+ <source>Application not running in Package Manager mode!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="569"/>
+ <source>No installed packages found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="646"/>
+ <source>Application running in Uninstaller mode!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1813"/>
+ <source>invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerCorePrivate</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="327"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1459"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1622"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1713"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="439"/>
+ <source>Component(s) added as automatic dependencies</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="481"/>
+ <source>Added as dependency for %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="490"/>
+ <source>Component(s) that have resolved Dependencies</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="499"/>
+ <source>Selected Component(s) without Dependencies</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="808"/>
+ <source>Access error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="809"/>
+ <source>Format error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="810"/>
+ <source>Could not write installer configuration to %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="927"/>
+ <source>Stop Processes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="927"/>
+ <source>These processes should be stopped to continue:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="935"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1741"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1919"/>
+ <source>Installation canceled by user</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1053"/>
+ <source>Could not write uninstaller to %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1263"/>
+ <source>Found a binary data file, but we are the installer and we should read the binary resource from our very own binary!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1287"/>
+ <source>Could not write uninstaller binary data to %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1334"/>
+ <source>ProductName should be set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1359"/>
+ <source>Variable &apos;TargetDir&apos; not set.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1397"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1583"/>
+ <source>Preparing the installation...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1440"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1603"/>
+ <source>Creating Uninstaller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1449"/>
+ <source>
+Installation finished!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1465"/>
+ <source>
+Installation aborted!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1589"/>
+ <source>Removing deselected components...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1612"/>
+ <source>
+Update finished!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1628"/>
+ <source>
+Update aborted!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1705"/>
+ <source>
+Deinstallation finished!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1716"/>
+ <source>
+Deinstallation aborted!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1735"/>
+ <source>
+Installing component %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1764"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1936"/>
+ <source>Installer Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1765"/>
+ <source>Error during installation process (%1):
+%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1831"/>
+ <source>Cannot prepare uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1862"/>
+ <source>Cannot start uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1937"/>
+ <source>Error during uninstallation process:
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1972"/>
+ <source>Unknown error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1991"/>
+ <source>Could not retrieve remote tree: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2020"/>
+ <source>Failure to read packages from: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2046"/>
+ <source>Could not retrieve meta information: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2101"/>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2112"/>
+ <source>Could not add temporary update source information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="2125"/>
+ <source>Could not find any update source information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerGui</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="238"/>
+ <source>%1 Setup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="240"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="540"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="554"/>
+ <source>Question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="541"/>
+ <source>Do you want to abort the %1 process?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="541"/>
+ <source>uninstallation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="542"/>
+ <source>installation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="546"/>
+ <source>installer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="548"/>
+ <source>uninstaller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="550"/>
+ <source>maintenance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="555"/>
+ <source>Do you want to abort the %1 application?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="596"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PackageManagerPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="675"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="680"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PerformInstallationForm</name>
+ <message>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="86"/>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="136"/>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="153"/>
+ <source>&amp;Show Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/performinstallationform.cpp" line="136"/>
+ <source>&amp;Hide Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::PerformInstallationPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1776"/>
+ <source>&amp;Uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1777"/>
+ <source>Uninstalling %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1781"/>
+ <source>&amp;Update</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1782"/>
+ <source>Updating components of %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1786"/>
+ <source>&amp;Install</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1787"/>
+ <source>Installing %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1805"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::QtPatchOperation</name>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="129"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="140"/>
+ <source>First argument should be &apos;linux&apos;, &apos;mac&apos; or &apos;windows&apos;. No other type is supported at this time.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="155"/>
+ <source>QMake from the current Qt version
+(%1)is not existing. Please file a bugreport with this dialog at https://bugreports.qt-project.org.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="165"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: &quot;%2&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="177"/>
+ <source>Qt patch error: new Qt dir(%1)
+needs to be less than 255 characters.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="194"/>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="244"/>
+ <source>Qt patch error: Can not open %1.(%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="306"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="313"/>
+ <source>Error while relocating Qt: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/qtpatchoperation.cpp" line="319"/>
+ <source>The installer was not able to get the unpatched path from
+%1.(maybe it is broken or removed)
+It tried to patch the Qt binaries, but all other files in Qt are unpatched.
+This could result in a broken Qt version.
+Sometimes it helps to restart the installer with a switched off antivirus software.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ReadyForInstallationPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1527"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1706"/>
+ <source>&amp;Show Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1560"/>
+ <source>U&amp;ninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1561"/>
+ <source>Ready to Uninstall</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1562"/>
+ <source>Setup is now ready to begin removing %1 from your computer.&lt;br&gt;&lt;font color=&quot;red&quot;&gt;The program dir %2 will be deleted completely&lt;/font&gt;, including all content in that directory!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1570"/>
+ <source>U&amp;pdate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1571"/>
+ <source>Ready to Update Packages</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1572"/>
+ <source>Setup is now ready to begin updating your installation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1575"/>
+ <source>&amp;Install</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1576"/>
+ <source>Ready to Install</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1577"/>
+ <source>Setup is now ready to begin installing %1 on your computer.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1623"/>
+ <source>Not enough disk space to store temporary files and the installation! Available space: %1, at least required %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1630"/>
+ <source>Not enough disk space to store all selected components! Available space: %1, at least required: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1637"/>
+ <source>Not enough disk space to store temporary files! Available space: %1, at least required: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1645"/>
+ <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. %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1650"/>
+ <source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 100 MB available afterwards. %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1664"/>
+ <source>Can not resolve all dependencies!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1682"/>
+ <source>Components about to be removed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1706"/>
+ <source>&amp;Hide Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterDefaultDebuggerOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="85"/>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="124"/>
+ <source>Invalid arguments in %0: %1 arguments given, 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="95"/>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="134"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdefaultdebuggeroperation.cpp" line="109"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterDocumentationOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="89"/>
+ <source>Invalid arguments in %0: %1 arguments given, 1 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="104"/>
+ <source>Could not register help file %1: File not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerdocumentationoperation.cpp" line="135"/>
+ <source>Could not unregister help file %1: File not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterFileTypeOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="59"/>
+ <source>Invalid arguments in %0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="120"/>
+ <source>Register File Type: Invalid arguments</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorOperation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="65"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="84"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtoperation.cpp" line="102"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorV23Operation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="96"/>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="175"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 4 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="104"/>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="183"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv23operation.cpp" line="110"/>
+ <source>The given TargetDir %1 is not a valid/existing dir.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterQtInCreatorV2Operation</name>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="63"/>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="139"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="71"/>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="147"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerqtv2operation.cpp" line="77"/>
+ <source>The given TargetDir %1 is not a valid/existing dir.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RegisterToolChainOperation</name>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="66"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="121"/>
+ <source>Invalid arguments in %0: %1 arguments given, minimum 4 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="76"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="131"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="101"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="156"/>
+ <source>Can&apos;t read from tool chains xml file(%1) correctly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="108"/>
+ <location filename="../../libinstaller/registertoolchainoperation.cpp" line="163"/>
+ <source>Some arguments are not right in %1 operation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::ReplaceOperation</name>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="60"/>
+ <source>Invalid arguments in %0: %1 arguments given, 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::RestartPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1955"/>
+ <source>Completing the %1 Setup Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SelfRestartOperation</name>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="55"/>
+ <source>Needed installer object in &quot;%1&quot; operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="61"/>
+ <source>Self Restart: Only valid within updater or packagemanager mode.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/selfrestartoperation.cpp" line="67"/>
+ <source>Self Restart: Invalid arguments</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetDemosPathOnQtOperation</name>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="76"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setdemospathonqtoperation.cpp" line="90"/>
+ <source>Qt patch error: new Qt demo path (%1)
+needs to be less than 255 characters.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetExamplesPathOnQtOperation</name>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="58"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="76"/>
+ <source>The output of
+%1 -query
+is not parseable. Please file a bugreport with this dialog https://bugreports.qt-project.org.
+output: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setexamplespathonqtoperation.cpp" line="90"/>
+ <source>Qt patch error: new Qt example path (%1)
+needs to be less than 255 characters.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetImportsPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setimportspathonqtcoreoperation.cpp" line="101"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setpathonqtcoreoperation.cpp" line="103"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setpathonqtcoreoperation.cpp" line="127"/>
+ <source>The second type/value needs to be one of: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetPluginPathOnQtCoreOperation</name>
+ <message>
+ <location filename="../../libinstaller/setpluginpathonqtcoreoperation.cpp" line="100"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SetQtCreatorValueOperation</name>
+ <message>
+ <location filename="../../libinstaller/setqtcreatorvalueoperation.cpp" line="63"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 4 expected (rootInstallPath, group, key, value).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/setqtcreatorvalueoperation.cpp" line="93"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::SimpleMoveFileOperation</name>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="53"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="63"/>
+ <source>None of the arguments can be empty: source(%1), target(%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="74"/>
+ <source>Can not copy source(%1) to target(%2), because target exists and is not removable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="83"/>
+ <source>Can not move source(%1) to target(%2): %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="88"/>
+ <location filename="../../libinstaller/simplemovefileoperation.cpp" line="98"/>
+ <source>Move %1 to %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::StartMenuDirectoryPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1423"/>
+ <source>Start Menu shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1424"/>
+ <source>Select the Start Menu in which you would like to create the program&apos;s shortcuts. You can also enter a name to create a new folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::TargetDirectoryPage</name>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1294"/>
+ <source>Installation Folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1302"/>
+ <source>Please specify the folder where %1 will be installed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1302"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1317"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1355"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1370"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1381"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1406"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1316"/>
+ <source>Alt+R</source>
+ <comment>browse file system to choose a file</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1317"/>
+ <source>B&amp;rowse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1355"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1370"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1356"/>
+ <source>The install directory cannot be empty, please specify a valid folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1371"/>
+ <source>As the install directory is completely deleted, installing in %1 is forbidden.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1381"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1382"/>
+ <source>You have selected an existing, non-empty folder for installation. Note that it will be completely wiped on uninstallation of this application. It is not advisable to install into this folder as installation might fail. Do you want to continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="1407"/>
+ <source>Select Installation Folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstaller::UpdateCreatorSettingsFrom21To22Operation</name>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="278"/>
+ <source>Invalid arguments in %0: %1 arguments given, exactly 0 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="286"/>
+ <source>Needed installer object in %1 operation is empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/updatecreatorsettingsfrom21to22operation.cpp" line="304"/>
+ <source>Can not remove previous registered Qt Versions in %1 operation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QInstallerCreator::Archive</name>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="303"/>
+ <source>Could not create %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="412"/>
+ <source>Could not open archive file %1 for reading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="431"/>
+ <source>Could not create archive from %1: Not a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="455"/>
+ <source>Error while packing directory at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="198"/>
+ <location filename="../../binarycreator/binarycreator.cpp" line="208"/>
+ <location filename="../../common/repositorygen.cpp" line="796"/>
+ <source>Could not copy %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="366"/>
+ <source>Could not create temporary file for generated rcc project file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="471"/>
+ <location filename="../../binarycreator/binarycreator.cpp" line="517"/>
+ <source>Could not copy %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="485"/>
+ <source>Could not remove the private key from config.xml</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="586"/>
+ <source>Error: Packages parameter missing argument.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="589"/>
+ <source>Error: Package directory not found at the specified location.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="596"/>
+ <source>Error: Package to exclude missing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="607"/>
+ <source>Error: Template parameter missing argument.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="610"/>
+ <source>Error: Template not found at the specified location.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="617"/>
+ <source>Error: Config parameter missing argument.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="620"/>
+ <source>Error: Config directory %1 not found at the specified location.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="624"/>
+ <source>Error: Configuration %1 is not a directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="628"/>
+ <source>Error: Config directory %1 is not readable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="635"/>
+ <source>Error: Resource files to include missing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="646"/>
+ <source>Error: Target parameter missing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="649"/>
+ <source>Error: No components selected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="652"/>
+ <source>Error: No configuration directory selected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="710"/>
+ <source>Could not create a RSA signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../binarycreator/binarycreator.cpp" line="713"/>
+ <source>Created RSA signature could not be verified. Is the given public key wrong?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="74"/>
+ <source>Component %1 can&apos;t contain &apos;-&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="80"/>
+ <source>Component %1 does not contain a package description.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="93"/>
+ <source>Component package description for %1 is invalid. Error at line: %2, column: %3 -&gt; %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="101"/>
+ <source>Component folder name must match component name: %1 in %2/</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="209"/>
+ <source>Circular dependencies detected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="219"/>
+ <source>Couldn&apos;t find package for component %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="274"/>
+ <source>Folder %1 does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="110"/>
+ <source>Component version for %1 is invalid! &lt;Version&gt;%2&lt;/version&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="304"/>
+ <location filename="../../common/repositorygen.cpp" line="748"/>
+ <source>Could not move %1 to %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="314"/>
+ <source>Could not open %1 for writing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="378"/>
+ <source>Could not parse %1: line: %2, column: %3: %4 (%5)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="462"/>
+ <source>Could not create directory %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="486"/>
+ <source>Could not copy the script %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="504"/>
+ <source>Couldn&apos;t find any user interface matching %1 while copying user interfaces of %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="515"/>
+ <source>Could not copy the UI file %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="539"/>
+ <source>Could not find any translation file matching %1 while copying translations of %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="550"/>
+ <source>Could not copy the translation %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="573"/>
+ <source>Could not find any license matching %1 while copying license files of %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="582"/>
+ <source>Could not copy the license file %1 to its target location %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="756"/>
+ <source>Could not open %1 for writing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="783"/>
+ <source>Could not create repository folder for component %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/repositorygen.cpp" line="859"/>
+ <source>Could not open %1 for writing: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="118"/>
+ <source>Error: Package to exclude missing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="127"/>
+ <source>Error: Packages parameter missing argument</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="131"/>
+ <source>Error: Package directory not found at the specified location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="139"/>
+ <location filename="../../repogen/repogen.cpp" line="158"/>
+ <source>Error: Config parameter missing argument</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="142"/>
+ <source>Error: Config directory %1 not found at the specified location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="146"/>
+ <source>Error: Configuration %1 is not a directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="150"/>
+ <source>Error: Config directory %1 is not readable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../repogen/repogen.cpp" line="197"/>
+ <source>Repository target folder %1 already exists!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../tests/extractarchiveoperationtest/extractarchiveoperationtest.cpp" line="93"/>
+ <source>Could not remove folder %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../tests/extractarchiveoperationtest/extractarchiveoperationtest.cpp" line="100"/>
+ <source>Could not remove folder %1: Unknown error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="219"/>
+ <source>Searched whole file, no marker found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="221"/>
+ <source>Could not seek to %1 in file %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="231"/>
+ <source>No marker found, stopped after %1 bytes.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="237"/>
+ <source>No marker found, unknown exception caught.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="479"/>
+ <source>Cannot create zipped file for path %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="741"/>
+ <source>Could not seek to in-binary resource. (offset: %1, length: %2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="748"/>
+ <source>Could not register in-binary resource.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="852"/>
+ <location filename="../../common/binaryformat.cpp" line="1010"/>
+ <source>Could not open binary %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="895"/>
+ <source>Could not seek to binary layout section.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="920"/>
+ <source>Could not seek to metadata index.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="941"/>
+ <source>Could not seek to operation list.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="963"/>
+ <source>Could not seek to component index information.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/binaryformat.cpp" line="967"/>
+ <source>Could not seek to component index.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="146"/>
+ <source>Cannot open file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="153"/>
+ <location filename="../../common/fileutils.cpp" line="160"/>
+ <source>Cannot open file %1 for writing: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="169"/>
+ <source>Write failed after %1 bytes: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="190"/>
+ <source>Read failed after %1 bytes: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="219"/>
+ <source>Could not remove file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="244"/>
+ <source>Could not remove folder %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="313"/>
+ <location filename="../../common/fileutils.cpp" line="338"/>
+ <source>Could not create folder %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="325"/>
+ <source>Could not copy file from %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="350"/>
+ <source>Could not move file from %1 to %2: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="361"/>
+ <location filename="../../common/fileutils.cpp" line="370"/>
+ <source>Could not create folder %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="380"/>
+ <source>Could not open temporary file: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="397"/>
+ <source>Could not open temporary file for template %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../common/fileutils.cpp" line="407"/>
+ <source>Could not create temporary folder for template %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="45"/>
+ <source>Could not create lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="55"/>
+ <source>Could not write PID to lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="63"/>
+ <source>Could not lock lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/kdtools/kdlockfile_unix.cpp" line="75"/>
+ <source>Could not unlock lock file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="137"/>
+ <source>Path exists but is not a folder: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="153"/>
+ <source>Could not create folder: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="188"/>
+ <source>Could not create temporary file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="205"/>
+ <source>Could not retrieve property %1 for item %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="228"/>
+ <source>Property %1 for item %2 not of type VT_FILETIME but %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="236"/>
+ <source>Could not convert file time to local time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="240"/>
+ <source>Could not convert local file time to system time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="569"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1148"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1321"/>
+ <source>Could not load codecs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="572"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1153"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1326"/>
+ <source>Could not retrieve default format</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="576"/>
+ <source>Could not open archive</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="578"/>
+ <source>No CArc found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="642"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1228"/>
+ <source>Could not retrieve number of items in archive</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="648"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="731"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="781"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1236"/>
+ <source>Could not retrieve path of archive item %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="669"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="686"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1201"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1247"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1345"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1367"/>
+ <source>Unknown exception caught (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="686"/>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1367"/>
+ <source>Failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="799"/>
+ <source>Could not create file system link at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="804"/>
+ <source>Could not create softlink at %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1183"/>
+ <source>Could not create archive %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1220"/>
+ <source>CArc index %1 out of bounds [0, %2]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1231"/>
+ <source>Item index %1 out of bounds [0, %2]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1243"/>
+ <source>Extracting %1 failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1266"/>
+ <source>Could not create output file for writing: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/3rdparty/p7zip_9.04/lib7z_facade.cpp" line="1299"/>
+ <source>Extraction failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="74"/>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="77"/>
+ <source>Authorization required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="74"/>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="78"/>
+ <source>Enter your password to authorize for sudo:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/adminauthorization_x11.cpp" line="88"/>
+ <source>Error acquiring admin rights</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="129"/>
+ <source>Could not backup file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="180"/>
+ <source>Could not delete file %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createdesktopentryoperation.cpp" line="191"/>
+ <source>Could not restore backup file into %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="145"/>
+ <source>Invalid arguments: %1 arguments given, 2 or 3 expected (optional: &quot;workingDirectory=...&quot;).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/createshortcutoperation.cpp" line="171"/>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="189"/>
+ <source>Failed to overwrite %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="89"/>
+ <source>Registry path %1 is not writable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/environmentvariablesoperation.cpp" line="101"/>
+ <source>Could not write to registry path %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/fakestopprocessforupdateoperation.cpp" line="102"/>
+ <source>Number of arguments does not match : one is required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="140"/>
+ <source>Invalid Argument: source folder must not be empty.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="176"/>
+ <source>Could not backup file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="200"/>
+ <source>Failed to copy file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/installiconsoperation.cpp" line="210"/>
+ <source>Could not create folder at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="71"/>
+ <source>Failed to open %1 for reading</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/replaceoperation.cpp" line="81"/>
+ <source>Failed to open %1 for writing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="77"/>
+ <source>Invalid arguments: %1 arguments given, %2 to %3 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="81"/>
+ <source>Invalid arguments: %1 arguments given, %2 expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore.cpp" line="1028"/>
+ <source>Error while elevating access rights.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagercore_p.cpp" line="1040"/>
+ <source>Failed to seek in file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="128"/>
+ <source>kB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="131"/>
+ <source>MB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="134"/>
+ <source>GB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="330"/>
+ <source>Could not open the requested script file at %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="367"/>
+ <location filename="../../libinstaller/packagemanagergui.cpp" line="373"/>
+ <source>Exception while loading the control script %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="105"/>
+ <location filename="../../libinstaller/registerfiletypeoperation.cpp" line="194"/>
+ <source>Registering file types in only supported on Windows.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbase_p.cpp" line="411"/>
+ <source>Failed to seek in file %1. Reason: %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="71"/>
+ <source>Failed to open %1 for reading.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/linereplaceoperation.cpp" line="88"/>
+ <source>Failed to open %1 for writing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Settings</name>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="202"/>
+ <source>Could not open settings file %1 for reading: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="207"/>
+ <source>%1 is not valid: Installer root node expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../libinstaller/settings.cpp" line="235"/>
+ <source>Multiple %1 elements found, but only one allowed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="24"/>
+ <source>Network</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="30"/>
+ <source>No proxy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>System proxy settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="53"/>
+ <source>Manual proxy configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="79"/>
+ <source>HTTP proxy:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="96"/>
+ <location filename="../settingsdialog.ui" line="222"/>
+ <source>Port:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="118"/>
+ <source>HTTP proxy requires authentication</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="143"/>
+ <location filename="../settingsdialog.ui" line="269"/>
+ <source>Username:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="160"/>
+ <location filename="../settingsdialog.ui" line="286"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="205"/>
+ <source>FTP proxy:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="244"/>
+ <source>FTP proxy requires authentication</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="325"/>
+ <source>Repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="331"/>
+ <source>Add Username and Password for authentication if needed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="347"/>
+ <source>Use temporary repositories only</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="356"/>
+ <source>Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="363"/>
+ <source>Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="370"/>
+ <source>Test</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="390"/>
+ <location filename="../settingsdialog.cpp" line="455"/>
+ <source>Show Passwords</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="237"/>
+ <source>Check this to use repository during fetch.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="239"/>
+ <source>Add the username to authenticate on the server.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="241"/>
+ <source>Add the password to authenticate on the server.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="243"/>
+ <source>The servers URL that contains a valid repository.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="436"/>
+ <source>There was an error testing this repository.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="437"/>
+ <source>Do you want to disable the tested repository?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="455"/>
+ <source>Hide Passwords</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="494"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="494"/>
+ <source>Username</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="494"/>
+ <source>Password</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="495"/>
+ <source>Repository</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="496"/>
+ <source>Default repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="497"/>
+ <source>Temporary repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="498"/>
+ <source>User defined repositories</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TargetDirectoryPageImpl</name>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="343"/>
+ <source>The installation path cannot be empty, please specify a valid folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="348"/>
+ <source>The installation path cannot be relative, please specify an absolute path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="359"/>
+ <source>The installation path must not contain !@#$%^&amp;*:,; or spaces, please specify a valid folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="376"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="385"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="404"/>
+ <source>The path or installation directory contains non ASCII characters. This is currently not supported! Please choose a different path or installation directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="419"/>
+ <source>As the install directory is completely deleted installing in %1 is forbidden.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="434"/>
+ <source>The folder you selected exists already and contains an installation.
+Do you want to overwrite it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="439"/>
+ <source>You have selected an existing, non-empty folder for installation.
+Note that it will be completely wiped on uninstallation of this application.
+It is not advisable to install into this folder as installation might fail.
+Do you want to continue?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../installerbasecommons.cpp" line="443"/>
+ <source>You have selected an existing file or symlink, please choose a different target for installation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TestRepository</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="82"/>
+ <source>Empty repository URL.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="88"/>
+ <source>URL scheme not supported: %1 (%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="128"/>
+ <source>Could not parse Updates.xml! Error: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="133"/>
+ <source>Updates.xml could not be opened for reading!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.cpp" line="136"/>
+ <source>Updates.xml could not be found on server!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>