summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml3
-rw-r--r--BUILD.md2
-rw-r--r--CMakeLists.txt8
-rw-r--r--MultiMC.cpp2
-rw-r--r--changelog.yaml7
-rw-r--r--cmake/UseCXX11.cmake2
-rw-r--r--gui/ConsoleWindow.cpp7
-rw-r--r--gui/MainWindow.cpp62
-rw-r--r--gui/MainWindow.h2
-rw-r--r--gui/MainWindow.ui17
-rw-r--r--gui/dialogs/AccountListDialog.cpp71
-rw-r--r--gui/dialogs/LoginDialog.cpp110
-rw-r--r--gui/dialogs/LoginDialog.h58
-rw-r--r--gui/dialogs/LoginDialog.ui77
-rw-r--r--gui/dialogs/VersionSelectDialog.cpp4
-rw-r--r--logic/LegacyInstance.cpp5
-rw-r--r--logic/LegacyInstance.h1
-rw-r--r--logic/LegacyUpdate.cpp169
-rw-r--r--logic/LegacyUpdate.h13
-rw-r--r--logic/OneSixLibrary.cpp27
-rw-r--r--logic/OneSixLibrary.h1
-rw-r--r--logic/OneSixUpdate.cpp18
-rw-r--r--logic/auth/MojangAccount.cpp2
-rw-r--r--logic/auth/YggdrasilTask.cpp110
-rw-r--r--logic/auth/YggdrasilTask.h25
-rw-r--r--logic/auth/flows/AuthenticateTask.cpp36
-rw-r--r--logic/auth/flows/AuthenticateTask.h8
-rw-r--r--logic/auth/flows/RefreshTask.cpp32
-rw-r--r--logic/auth/flows/RefreshTask.h8
-rw-r--r--logic/auth/flows/ValidateTask.cpp15
-rw-r--r--logic/auth/flows/ValidateTask.h8
-rw-r--r--logic/net/URLConstants.cpp2
-rw-r--r--logic/net/URLConstants.h2
-rw-r--r--resources/multimc/16x16/patreon.pngbin0 -> 682 bytes
-rw-r--r--resources/multimc/22x22/patreon.pngbin0 -> 976 bytes
-rw-r--r--resources/multimc/24x24/patreon.pngbin0 -> 1034 bytes
-rw-r--r--resources/multimc/32x32/patreon.pngbin0 -> 1450 bytes
-rw-r--r--resources/multimc/48x48/patreon.pngbin0 -> 2317 bytes
-rw-r--r--resources/multimc/64x64/patreon.pngbin0 -> 3212 bytes
-rw-r--r--resources/multimc/multimc.qrc8
-rw-r--r--translations/mmc_de.ts220
-rw-r--r--translations/mmc_fr.ts3399
42 files changed, 4328 insertions, 213 deletions
diff --git a/.travis.yml b/.travis.yml
index 842f6b9d..fdc8215e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,7 @@
language: cpp
compiler:
- gcc
+ - clang
cache: apt
before_install:
- sudo apt-add-repository -y ppa:beineri/opt-qt521
@@ -9,7 +10,7 @@ before_install:
- sudo apt-get update -qq
install:
- sudo apt-get install -y -qq cmake qt52base qt52svg qt52tools qt52x11extras
- - if [ "$CXX" = "g++" ]; then sudo apt-get install -y -qq g++-4.8; fi
+ - sudo apt-get install -y -qq g++-4.8
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
before_script:
- mkdir build
diff --git a/BUILD.md b/BUILD.md
index 32f4a385..bd17541d 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -56,7 +56,7 @@ Getting the project to build and run on Windows is easy if you use Qt's IDE, Qt
## Dependencies
* Qt 5.1.1+ Development tools (http://qt-project.org/downloads) ("Qt Online Installer for Windows")
-* OpenSSL (http://slproweb.com/products/Win32OpenSSL.html) ("Win32 OpenSSL v1.0.1e Light")
+* OpenSSL (http://slproweb.com/products/Win32OpenSSL.html) ("Win32 OpenSSL \<version\> Light")
- Microsoft Visual C++ 2008 Redist. is required for this, there's a link on the OpenSSL download page above next to the main download.
* CMake (http://www.cmake.org/cmake/resources/software.html) ("Windows (Win32 Installer)")
* A copy of the MultiMC source (clone it with git)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6c9606b2..0707571b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -242,7 +242,7 @@ add_subdirectory(mmc_updater)
################################ FILES ################################
######## Sources and headers ########
-set(MULTIMC_SOURCES
+SET(MULTIMC_SOURCES
# Application base
MultiMC.h
MultiMC.cpp
@@ -294,6 +294,8 @@ set(MULTIMC_SOURCES
gui/dialogs/CustomMessageBox.cpp
gui/dialogs/EditAccountDialog.h
gui/dialogs/EditAccountDialog.cpp
+ gui/dialogs/LoginDialog.h
+ gui/dialogs/LoginDialog.cpp
gui/dialogs/AccountListDialog.h
gui/dialogs/AccountListDialog.cpp
gui/dialogs/AccountSelectDialog.h
@@ -487,6 +489,7 @@ set(MULTIMC_SOURCES
logic/icons/IconList.h
logic/icons/IconList.cpp
+
# misc model/view
logic/EnabledItemFilter.h
logic/EnabledItemFilter.cpp
@@ -533,7 +536,7 @@ set(MULTIMC_SOURCES
######## UIs ########
-set(MULTIMC_UIS
+SET(MULTIMC_UIS
# Windows
gui/MainWindow.ui
gui/ConsoleWindow.ui
@@ -554,6 +557,7 @@ set(MULTIMC_UIS
gui/dialogs/AccountListDialog.ui
gui/dialogs/AccountSelectDialog.ui
gui/dialogs/EditAccountDialog.ui
+ gui/dialogs/LoginDialog.ui
gui/dialogs/UpdateDialog.ui
gui/dialogs/ScreenshotDialog.ui
gui/dialogs/NotificationDialog.ui
diff --git a/MultiMC.cpp b/MultiMC.cpp
index ddc1fca7..a0ff8b66 100644
--- a/MultiMC.cpp
+++ b/MultiMC.cpp
@@ -412,6 +412,7 @@ void MultiMC::initGlobalSettings()
// Console
m_settings->registerSetting("ShowConsole", true);
+ m_settings->registerSetting("RaiseConsole", true);
m_settings->registerSetting("AutoCloseConsole", true);
m_settings->registerSetting("LogPrePostOutput", true);
@@ -470,6 +471,7 @@ void MultiMC::initHttpMetaCache()
m_metacache->addBase("versions", QDir("versions").absolutePath());
m_metacache->addBase("libraries", QDir("libraries").absolutePath());
m_metacache->addBase("minecraftforge", QDir("mods/minecraftforge").absolutePath());
+ m_metacache->addBase("fmllibs", QDir("mods/minecraftforge/libs").absolutePath());
m_metacache->addBase("liteloader", QDir("mods/liteloader").absolutePath());
m_metacache->addBase("skins", QDir("accounts/skins").absolutePath());
m_metacache->addBase("root", QDir(root()).absolutePath());
diff --git a/changelog.yaml b/changelog.yaml
index c1f36408..db5a3e56 100644
--- a/changelog.yaml
+++ b/changelog.yaml
@@ -59,4 +59,9 @@
- Customizing FTB pack versions will remove the FTB pack patch file
0.3.2:
- Fix issues with libraries not getting replaced properly (fixes instance startup for new instances)
- - Fix april fools \ No newline at end of file
+ - Fix april fools
+0.3.3:
+ - Tweak context menu to prevent accidental clicks
+ - Fix adding icons to custom icon directories
+ - Added a Patreon button to the toolbar
+ - Minecraft authentication tasks now provide better error reports \ No newline at end of file
diff --git a/cmake/UseCXX11.cmake b/cmake/UseCXX11.cmake
index e94de2bb..f8afaa6e 100644
--- a/cmake/UseCXX11.cmake
+++ b/cmake/UseCXX11.cmake
@@ -4,7 +4,7 @@ endif()
set(__USECXX11_CMAKE__ TRUE)
if(APPLE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++11")
elseif(UNIX)
# assume GCC, add C++0x/C++11 stuff
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
diff --git a/gui/ConsoleWindow.cpp b/gui/ConsoleWindow.cpp
index 621f035f..18a617e0 100644
--- a/gui/ConsoleWindow.cpp
+++ b/gui/ConsoleWindow.cpp
@@ -265,6 +265,13 @@ void ConsoleWindow::onEnded(BaseInstance *instance, int code, QProcess::ExitStat
*/
if (!isVisible())
show();
+
+ // Raise Window
+ if (MMC->settings()->get("RaiseConsole").toBool())
+ {
+ raise();
+ activateWindow();
+ }
}
void ConsoleWindow::onLaunchFailed(BaseInstance *instance)
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index ce09c42d..b0e86249 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -35,6 +35,7 @@
#include <QToolButton>
#include <QWidgetAction>
#include <QProgressDialog>
+#include <QShortcut>
#include "osutils.h"
#include "userutils.h"
@@ -116,6 +117,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
// OSX magic.
// setUnifiedTitleAndToolBarOnMac(true);
+ // Global shortcuts
+ {
+ //FIXME: This is kinda weird. and bad. We need some kind of managed shutdown.
+ auto q = new QShortcut(QKeySequence::Quit, this);
+ connect(q, SIGNAL(activated()), qApp, SLOT(quit()));
+ }
+
// The instance action toolbar customizations
{
// disabled until we have an instance selected
@@ -353,25 +361,52 @@ void MainWindow::skinJobFinished()
void MainWindow::showInstanceContextMenu(const QPoint &pos)
{
- if (!view->indexAt(pos).isValid())
+ QList<QAction *> actions;
+
+ QAction *actionSep = new QAction("", this);
+ actionSep->setSeparator(true);
+
+ bool onInstance = view->indexAt(pos).isValid();
+ if (onInstance)
{
- return;
- }
+ actions = ui->instanceToolBar->actions();
+
+ QAction *actionVoid = new QAction(m_selectedInstance->name(), this);
+ actionVoid->setEnabled(false);
+
+ QAction *actionRename = new QAction(tr("Rename"), this);
+ actionRename->setToolTip(ui->actionRenameInstance->toolTip());
- QList<QAction *> actions = ui->instanceToolBar->actions();
+ QAction *actionCopyInstance = new QAction(tr("Copy instance"), this);
+ actionCopyInstance->setToolTip(ui->actionCopyInstance->toolTip());
- // HACK: Filthy rename button hack because the instance view is getting rewritten anyway
- QAction *actionRename;
- actionRename = new QAction(tr("Rename"), this);
- actionRename->setToolTip(ui->actionRenameInstance->toolTip());
- connect(actionRename, SIGNAL(triggered(bool)), SLOT(on_actionRenameInstance_triggered()));
+ connect(actionRename, SIGNAL(triggered(bool)), SLOT(on_actionRenameInstance_triggered()));
+ connect(actionCopyInstance, SIGNAL(triggered(bool)), SLOT(on_actionCopyInstance_triggered()));
- actions.replace(1, actionRename);
+ actions.replace(1, actionRename);
+ actions.prepend(actionSep);
+ actions.prepend(actionVoid);
+ actions.append(actionCopyInstance);
+ }
+ else
+ {
+ QAction *actionVoid = new QAction(tr("MultiMC"), this);
+ actionVoid->setEnabled(false);
+
+ QAction *actionCreateInstance = new QAction(tr("Create instance"), this);
+ actionCreateInstance->setToolTip(ui->actionAddInstance->toolTip());
+
+ connect(actionCreateInstance, SIGNAL(triggered(bool)), SLOT(on_actionAddInstance_triggered()));
+ actions.prepend(actionSep);
+ actions.prepend(actionVoid);
+ actions.append(actionCreateInstance);
+ }
QMenu myMenu;
myMenu.addActions(actions);
- myMenu.setEnabled(m_selectedInstance->canLaunch());
+ if(onInstance)
+ myMenu.setEnabled(m_selectedInstance->canLaunch());
myMenu.exec(view->mapToGlobal(pos));
}
@@ -988,6 +1023,11 @@ void MainWindow::on_actionReportBug_triggered()
openWebPage(QUrl("https://github.com/MultiMC/MultiMC5/issues"));
}
+void MainWindow::on_actionPatreon_triggered()
+{
+ openWebPage(QUrl("http://www.patreon.com/multimc"));
+}
+
void MainWindow::on_actionMoreNews_triggered()
{
openWebPage(QUrl("http://multimc.org/posts.html"));
diff --git a/gui/MainWindow.h b/gui/MainWindow.h
index 5ddfef7b..d610a87d 100644
--- a/gui/MainWindow.h
+++ b/gui/MainWindow.h
@@ -85,6 +85,8 @@ slots:
void on_actionReportBug_triggered();
+ void on_actionPatreon_triggered();
+
void on_actionMoreNews_triggered();
void newsButtonClicked();
diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui
index 2bd8ec22..1d7fbec9 100644
--- a/gui/MainWindow.ui
+++ b/gui/MainWindow.ui
@@ -74,6 +74,7 @@
<addaction name="actionReportBug"/>
<addaction name="actionAbout"/>
<addaction name="separator"/>
+ <addaction name="actionPatreon"/>
<addaction name="actionCAT"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
@@ -268,6 +269,22 @@
<string>Open the bug tracker to report a bug with MultiMC.</string>
</property>
</action>
+ <action name="actionPatreon">
+ <property name="icon">
+ <iconset theme="patreon">
+ <normaloff/>
+ </iconset>
+ </property>
+ <property name="text">
+ <string>Support us on Patreon!</string>
+ </property>
+ <property name="toolTip">
+ <string>Open the MultiMC Patreon page.</string>
+ </property>
+ <property name="statusTip">
+ <string>Open the MultiMC Patreon page.</string>
+ </property>
+ </action>
<action name="actionMoreNews">
<property name="icon">
<iconset theme="news">
diff --git a/gui/dialogs/AccountListDialog.cpp b/gui/dialogs/AccountListDialog.cpp
index a38035a6..688cffa8 100644
--- a/gui/dialogs/AccountListDialog.cpp
+++ b/gui/dialogs/AccountListDialog.cpp
@@ -26,6 +26,7 @@
#include <gui/dialogs/EditAccountDialog.h>
#include <gui/dialogs/ProgressDialog.h>
#include <gui/dialogs/AccountSelectDialog.h>
+#include <gui/dialogs/LoginDialog.h>
#include "CustomMessageBox.h"
#include <logic/tasks/Task.h>
#include <logic/auth/YggdrasilTask.h>
@@ -45,10 +46,11 @@ AccountListDialog::AccountListDialog(QWidget *parent)
// Expand the account column
ui->listView->header()->setSectionResizeMode(1, QHeaderView::Stretch);
- QItemSelectionModel* selectionModel = ui->listView->selectionModel();
+ QItemSelectionModel *selectionModel = ui->listView->selectionModel();
- connect(selectionModel, &QItemSelectionModel::selectionChanged,
- [this] (const QItemSelection& sel, const QItemSelection& dsel) { updateButtonStates(); });
+ connect(selectionModel, &QItemSelectionModel::selectionChanged,
+ [this](const QItemSelection &sel, const QItemSelection &dsel)
+ { updateButtonStates(); });
connect(m_accounts.get(), SIGNAL(listChanged()), SLOT(listChanged()));
connect(m_accounts.get(), SIGNAL(activeAccountChanged()), SLOT(listChanged()));
@@ -68,7 +70,8 @@ void AccountListDialog::listChanged()
void AccountListDialog::on_addAccountBtn_clicked()
{
- addAccount(tr("Please enter your Mojang or Minecraft account username and password to add your account."));
+ addAccount(tr("Please enter your Mojang or Minecraft account username and password to add "
+ "your account."));
}
void AccountListDialog::on_rmAccountBtn_clicked()
@@ -87,7 +90,8 @@ void AccountListDialog::on_setDefaultBtn_clicked()
if (selection.size() > 0)
{
QModelIndex selected = selection.first();
- MojangAccountPtr account = selected.data(MojangAccountList::PointerRole).value<MojangAccountPtr>();
+ MojangAccountPtr account =
+ selected.data(MojangAccountList::PointerRole).value<MojangAccountPtr>();
m_accounts->setActiveAccount(account->username());
}
}
@@ -113,48 +117,29 @@ void AccountListDialog::updateButtonStates()
ui->noDefaultBtn->setDown(m_accounts->activeAccount().get() == nullptr);
}
-void AccountListDialog::addAccount(const QString& errMsg)
+void AccountListDialog::addAccount(const QString &errMsg)
{
- // TODO: We can use the login dialog for this for now, but we'll have to make something better for it eventually.
- EditAccountDialog loginDialog(errMsg, this, EditAccountDialog::UsernameField | EditAccountDialog::PasswordField);
- loginDialog.exec();
+ // TODO: The login dialog isn't quite done yet
+ MojangAccountPtr account = LoginDialog::newAccount(this, errMsg);
- if (loginDialog.result() == QDialog::Accepted)
+ if (account != nullptr)
{
- QString username(loginDialog.username());
- QString password(loginDialog.password());
-
- MojangAccountPtr account = MojangAccount::createFromUsername(username);
- ProgressDialog progDialog(this);
- auto task = account->login(nullptr, password);
- progDialog.exec(task.get());
- if(task->successful())
- {
- m_accounts->addAccount(account);
- if (m_accounts->count() == 1)
- m_accounts->setActiveAccount(account->username());
-
- // Grab associated player skins
- auto job = new NetJob("Player skins: " + account->username());
-
- for(AccountProfile profile : account->profiles())
- {
- auto meta = MMC->metacache()->resolveEntry("skins", profile.name + ".png");
- auto action = CacheDownload::make(
- QUrl("http://" + URLConstants::SKINS_BASE + profile.name + ".png"),
- meta);
- job->addNetAction(action);
- meta->stale = true;
- }
-
- job->start();
- }
- else
+ m_accounts->addAccount(account);
+ if (m_accounts->count() == 1)
+ m_accounts->setActiveAccount(account->username());
+
+ // Grab associated player skins
+ auto job = new NetJob("Player skins: " + account->username());
+
+ for (AccountProfile profile : account->profiles())
{
- auto reason = task->failReason();
- auto dlg = CustomMessageBox::selectable(this, tr("Login error."), reason, QMessageBox::Critical);
- dlg->exec();
- delete dlg;
+ auto meta = MMC->metacache()->resolveEntry("skins", profile.name + ".png");
+ auto action = CacheDownload::make(
+ QUrl("http://" + URLConstants::SKINS_BASE + profile.name + ".png"), meta);
+ job->addNetAction(action);
+ meta->stale = true;
}
+
+ job->start();
}
}
diff --git a/gui/dialogs/LoginDialog.cpp b/gui/dialogs/LoginDialog.cpp
new file mode 100644
index 00000000..5ac94fac
--- /dev/null
+++ b/gui/dialogs/LoginDialog.cpp
@@ -0,0 +1,110 @@
+/* Copyright 2014 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "LoginDialog.h"
+#include "ui_LoginDialog.h"
+
+#include "logic/auth/YggdrasilTask.h"
+
+#include <QtWidgets/QPushButton>
+
+LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent), ui(new Ui::LoginDialog)
+{
+ ui->setupUi(this);
+ ui->progressBar->setVisible(false);
+ ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
+
+ connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
+ connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
+}
+
+LoginDialog::~LoginDialog()
+{
+ delete ui;
+}
+
+// Stage 1: User interaction
+void LoginDialog::accept()
+{
+ setUserInputsEnabled(false);
+ ui->progressBar->setVisible(true);
+
+ // Setup the login task and start it
+ m_account = MojangAccount::createFromUsername(ui->userTextBox->text());
+ m_loginTask = m_account->login(nullptr, ui->passTextBox->text());
+ connect(m_loginTask.get(), &ProgressProvider::failed, this, &LoginDialog::onTaskFailed);
+ connect(m_loginTask.get(), &ProgressProvider::succeeded, this,
+ &LoginDialog::onTaskSucceeded);
+ connect(m_loginTask.get(), &ProgressProvider::status, this, &LoginDialog::onTaskStatus);
+ connect(m_loginTask.get(), &ProgressProvider::progress, this, &LoginDialog::onTaskProgress);
+ m_loginTask->start();
+}
+
+void LoginDialog::setUserInputsEnabled(bool enable)
+{
+ ui->userTextBox->setEnabled(enable);
+ ui->passTextBox->setEnabled(enable);
+ ui->buttonBox->setEnabled(enable);
+}
+
+// Enable the OK button only when both textboxes contain something.
+void LoginDialog::on_userTextBox_textEdited(const QString &newText)
+{
+ ui->buttonBox->button(QDialogButtonBox::Ok)
+ ->setEnabled(!newText.isEmpty() && !ui->passTextBox->text().isEmpty());
+}
+void LoginDialog::on_passTextBox_textEdited(const QString &newText)
+{
+ ui->buttonBox->button(QDialogButtonBox::Ok)
+ ->setEnabled(!newText.isEmpty() && !ui->userTextBox->text().isEmpty());
+}
+
+void LoginDialog::onTaskFailed(const QString &reason)
+{
+ // Set message
+ ui->label->setText("<span style='color:red'>" + reason + "</span>");
+
+ // Re-enable user-interaction
+ setUserInputsEnabled(true);
+ ui->progressBar->setVisible(false);
+}
+
+void LoginDialog::onTaskSucceeded()
+{
+ QDialog::accept();
+}
+
+void LoginDialog::onTaskStatus(const QString &status)
+{
+ ui->label->setText(status);
+}
+
+void LoginDialog::onTaskProgress(qint64 current, qint64 total)
+{
+ ui->progressBar->setMaximum(total);
+ ui->progressBar->setValue(current);
+}
+
+// Public interface
+MojangAccountPtr LoginDialog::newAccount(QWidget *parent, QString msg)
+{
+ LoginDialog dlg(parent);
+ dlg.ui->label->setText(msg);
+ if (dlg.exec() == QDialog::Accepted)
+ {
+ return dlg.m_account;
+ }
+ return 0;
+}
diff --git a/gui/dialogs/LoginDialog.h b/gui/dialogs/LoginDialog.h
new file mode 100644
index 00000000..560ed5ec
--- /dev/null
+++ b/gui/dialogs/LoginDialog.h
@@ -0,0 +1,58 @@
+/* Copyright 2014 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <QtWidgets/QDialog>
+#include <QtCore/QEventLoop>
+
+#include "logic/auth/MojangAccount.h"
+
+namespace Ui
+{
+class LoginDialog;
+}
+
+class LoginDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ ~LoginDialog();
+
+ static MojangAccountPtr newAccount(QWidget *parent, QString message);
+
+private:
+ explicit LoginDialog(QWidget *parent = 0);
+
+ void setUserInputsEnabled(bool enable);
+
+protected
+slots:
+ void accept();
+
+ void onTaskFailed(const QString &reason);
+ void onTaskSucceeded();
+ void onTaskStatus(const QString &status);
+ void onTaskProgress(qint64 current, qint64 total);
+
+ void on_userTextBox_textEdited(const QString &newText);
+ void on_passTextBox_textEdited(const QString &newText);
+
+private:
+ Ui::LoginDialog *ui;
+ MojangAccountPtr m_account;
+ std::shared_ptr<Task> m_loginTask;
+};
diff --git a/gui/dialogs/LoginDialog.ui b/gui/dialogs/LoginDialog.ui
new file mode 100644
index 00000000..b24b1c0c
--- /dev/null
+++ b/gui/dialogs/LoginDialog.ui
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>LoginDialog</class>
+ <widget class="QDialog" name="LoginDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>162</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle">
+ <string>Add Account</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Message label placeholder.</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="userTextBox">
+ <property name="placeholderText">
+ <string>Email / Username</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="passTextBox">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ <property name="placeholderText">
+ <string>Password</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBar">
+ <property name="value">
+ <number>24</number>
+ </property>
+ <property name="textVisible">
+ <bool>false</bool>
+ </property>
+ </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/>
+</ui>
diff --git a/gui/dialogs/VersionSelectDialog.cpp b/gui/dialogs/VersionSelectDialog.cpp
index 3277fd2f..f4d314b6 100644
--- a/gui/dialogs/VersionSelectDialog.cpp
+++ b/gui/dialogs/VersionSelectDialog.cpp
@@ -100,7 +100,9 @@ void VersionSelectDialog::on_refreshButton_clicked()
void VersionSelectDialog::setFilter(int column, QString filter)
{
m_proxyModel->setFilterKeyColumn(column);
- m_proxyModel->setFilterFixedString(filter);
+ // m_proxyModel->setFilterFixedString(filter);
+ m_proxyModel->setFilterRegExp(QRegExp(QString("^%1$").arg(filter.replace(".", "\\.")),
+ Qt::CaseInsensitive, QRegExp::RegExp));
/*
QStringList filteredTypes;
if (!ui->filterSnapshotsCheckbox->isChecked())
diff --git a/logic/LegacyInstance.cpp b/logic/LegacyInstance.cpp
index 4f2dfd9b..d06b8827 100644
--- a/logic/LegacyInstance.cpp
+++ b/logic/LegacyInstance.cpp
@@ -159,6 +159,11 @@ QString LegacyInstance::binDir() const
return PathCombine(minecraftRoot(), "bin");
}
+QString LegacyInstance::libDir() const
+{
+ return PathCombine(minecraftRoot(), "lib");
+}
+
QString LegacyInstance::savesDir() const
{
return PathCombine(minecraftRoot(), "saves");
diff --git a/logic/LegacyInstance.h b/logic/LegacyInstance.h
index 636addeb..badaf7e3 100644
--- a/logic/LegacyInstance.h
+++ b/logic/LegacyInstance.h
@@ -41,6 +41,7 @@ public:
std::shared_ptr<ModList> texturePackList();
////// Directories //////
+ QString libDir() const;
QString savesDir() const;
QString texturePacksDir() const;
QString jarModsDir() const;
diff --git a/logic/LegacyUpdate.cpp b/logic/LegacyUpdate.cpp
index 5d82a76b..15c99234 100644
--- a/logic/LegacyUpdate.cpp
+++ b/logic/LegacyUpdate.cpp
@@ -26,9 +26,56 @@
#include <JlCompress.h>
#include "logger/QsLog.h"
#include "logic/net/URLConstants.h"
+#include <QStringList>
LegacyUpdate::LegacyUpdate(BaseInstance *inst, QObject *parent) : Task(parent), m_inst(inst)
{
+ // 1.3 - 1.3.2
+ auto libs13 = QList<FMLlib>{
+ {"argo-2.25.jar", "bb672829fde76cb163004752b86b0484bd0a7f4b", false},
+ {"guava-12.0.1.jar", "b8e78b9af7bf45900e14c6f958486b6ca682195f", false},
+ {"asm-all-4.0.jar", "98308890597acb64047f7e896638e0d98753ae82", false}};
+
+ fmlLibsMapping["1.3.2"] = libs13;
+
+ auto libs14 = QList<FMLlib>{
+ {"argo-2.25.jar", "bb672829fde76cb163004752b86b0484bd0a7f4b", false},
+ {"guava-12.0.1.jar", "b8e78b9af7bf45900e14c6f958486b6ca682195f", false},
+ {"asm-all-4.0.jar", "98308890597acb64047f7e896638e0d98753ae82", false},
+ {"bcprov-jdk15on-147.jar", "b6f5d9926b0afbde9f4dbe3db88c5247be7794bb", false}};
+
+ fmlLibsMapping["1.4"] = libs14;
+ fmlLibsMapping["1.4.1"] = libs14;
+ fmlLibsMapping["1.4.2"] = libs14;
+ fmlLibsMapping["1.4.3"] = libs14;
+ fmlLibsMapping["1.4.4"] = libs14;
+ fmlLibsMapping["1.4.5"] = libs14;
+ fmlLibsMapping["1.4.6"] = libs14;
+ fmlLibsMapping["1.4.7"] = libs14;
+
+ fmlLibsMapping["1.5"] = QList<FMLlib>{
+ {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false},
+ {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false},
+ {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false},
+ {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true},
+ {"deobfuscation_data_1.5.zip", "5f7c142d53776f16304c0bbe10542014abad6af8", false},
+ {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}};
+
+ fmlLibsMapping["1.5.1"] = QList<FMLlib>{
+ {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false},
+ {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false},
+ {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false},
+ {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true},
+ {"deobfuscation_data_1.5.1.zip", "22e221a0d89516c1f721d6cab056a7e37471d0a6", false},
+ {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}};
+
+ fmlLibsMapping["1.5.2"] = QList<FMLlib>{
+ {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false},
+ {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false},
+ {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false},
+ {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true},
+ {"deobfuscation_data_1.5.2.zip", "446e55cd986582c70fcf12cb27bc00114c5adfd9", false},
+ {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}};
}
void LegacyUpdate::executeTask()
@@ -50,10 +97,130 @@ void LegacyUpdate::executeTask()
else
{
*/
- lwjglStart();
+ fmllibsStart();
//}
}
+void LegacyUpdate::fmllibsStart()
+{
+ // Get the mod list
+ LegacyInstance *inst = (LegacyInstance *)m_inst;
+ auto modList = inst->jarModList();
+
+ bool forge_present = false;
+
+ QString version = inst->intendedVersionId();
+ if (!fmlLibsMapping.contains(version))
+ {
+ lwjglStart();
+ return;
+ }
+
+ auto &libList = fmlLibsMapping[version];
+
+ // determine if we need some libs for FML or forge
+ setStatus(tr("Checking for FML libraries..."));
+ for (unsigned i = 0; i < modList->size(); i++)
+ {
+ auto &mod = modList->operator[](i);
+
+ // do not use disabled mods.
+ if (!mod.enabled())
+ continue;
+
+ if (mod.type() != Mod::MOD_ZIPFILE)
+ continue;
+
+ if (mod.mmc_id().contains("forge", Qt::CaseInsensitive))
+ {
+ forge_present = true;
+ break;
+ }
+ if (mod.mmc_id().contains("fml", Qt::CaseInsensitive))
+ {
+ forge_present = true;
+ break;
+ }
+ }
+ // we don't...
+ if (!forge_present)
+ {
+ lwjglStart();
+ return;
+ }
+
+ // now check the lib folder inside the instance for files.
+ for (auto &lib : libList)
+ {
+ QFileInfo libInfo(PathCombine(inst->libDir(), lib.name));
+ if (libInfo.exists())
+ continue;
+ fmlLibsToProcess.append(lib);
+ }
+
+ // if everything is in place, there's nothing to do here...
+ if (fmlLibsToProcess.isEmpty())
+ {
+ lwjglStart();
+ return;
+ }
+
+ // download missing libs to our place
+ setStatus(tr("Dowloading FML libraries..."));
+ auto dljob = new NetJob("FML libraries");
+ auto metacache = MMC->metacache();
+ for (auto &lib : fmlLibsToProcess)
+ {
+ auto entry = metacache->resolveEntry("fmllibs", lib.name);
+ QString urlString = lib.ours ? URLConstants::FMLLIBS_OUR_BASE_URL + lib.name
+ : URLConstants::FMLLIBS_FORGE_BASE_URL + lib.name;
+ dljob->addNetAction(CacheDownload::make(QUrl(urlString), entry));
+ }
+
+ connect(dljob, SIGNAL(succeeded()), SLOT(fmllibsFinished()));
+ connect(dljob, SIGNAL(failed()), SLOT(fmllibsFailed()));
+ connect(dljob, SIGNAL(progress(qint64, qint64)), SIGNAL(progress(qint64, qint64)));
+ legacyDownloadJob.reset(dljob);
+ legacyDownloadJob->start();
+}
+
+void LegacyUpdate::fmllibsFinished()
+{
+ legacyDownloadJob.reset();
+ if(!fmlLibsToProcess.isEmpty())
+ {
+ setStatus(tr("Copying FML libraries into the instance..."));
+ LegacyInstance *inst = (LegacyInstance *)m_inst;
+ auto metacache = MMC->metacache();
+ int index = 0;
+ for (auto &lib : fmlLibsToProcess)
+ {
+ progress(index, fmlLibsToProcess.size());
+ auto entry = metacache->resolveEntry("fmllibs", lib.name);
+ auto path = PathCombine(inst->libDir(), lib.name);
+ if(!ensureFilePathExists(path))
+ {
+ emitFailed(tr("Failed creating FML library folder inside the instance."));
+ return;
+ }
+ if (!QFile::copy(entry->getFullPath(), PathCombine(inst->libDir(), lib.name)))
+ {
+ emitFailed(tr("Failed copying Forge/FML library: %1.").arg(lib.name));
+ return;
+ }
+ index++;
+ }
+ progress(index, fmlLibsToProcess.size());
+ }
+ lwjglStart();
+}
+
+void LegacyUpdate::fmllibsFailed()
+{
+ emitFailed("Game update failed: it was impossible to fetch the required FML libraries.");
+ return;
+}
+
void LegacyUpdate::lwjglStart()
{
LegacyInstance *inst = (LegacyInstance *)m_inst;
diff --git a/logic/LegacyUpdate.h b/logic/LegacyUpdate.h
index 613eb1f9..5b073cb7 100644
--- a/logic/LegacyUpdate.h
+++ b/logic/LegacyUpdate.h
@@ -27,6 +27,13 @@ class BaseInstance;
class QuaZip;
class Mod;
+struct FMLlib
+{
+ QString name;
+ QString checksum;
+ bool ours;
+};
+
class LegacyUpdate : public Task
{
Q_OBJECT
@@ -44,6 +51,10 @@ slots:
void jarFinished();
void jarFailed();
+ void fmllibsStart();
+ void fmllibsFinished();
+ void fmllibsFailed();
+
void extractLwjgl();
void ModTheJar();
@@ -72,4 +83,6 @@ private:
private:
NetJobPtr legacyDownloadJob;
BaseInstance *m_inst = nullptr;
+ QList<FMLlib> fmlLibsToProcess;
+ QMap<QString, QList<FMLlib>> fmlLibsMapping;
};
diff --git a/logic/OneSixLibrary.cpp b/logic/OneSixLibrary.cpp
index c78679d1..7032809d 100644
--- a/logic/OneSixLibrary.cpp
+++ b/logic/OneSixLibrary.cpp
@@ -140,33 +140,32 @@ QString OneSixLibrary::hint() const
return m_hint;
}
-bool OneSixLibrary::filesExist()
+QStringList OneSixLibrary::files()
{
+ QStringList retval;
QString storage = storagePath();
if (storage.contains("${arch}"))
{
QString cooked_storage = storage;
cooked_storage.replace("${arch}", "32");
- QFileInfo info32(PathCombine("libraries", cooked_storage));
- if (!info32.exists())
- {
- return false;
- }
+ retval.append(PathCombine("libraries", cooked_storage));
cooked_storage = storage;
cooked_storage.replace("${arch}", "64");
- QFileInfo info64(PathCombine("libraries", cooked_storage));
- if (!info64.exists())
- {
- return false;
- }
+ retval.append(PathCombine("libraries", cooked_storage));
}
else
+ retval.append(PathCombine("libraries", storage));
+ return retval;
+}
+
+bool OneSixLibrary::filesExist()
+{
+ auto libFiles = files();
+ for(auto file: libFiles)
{
- QFileInfo info(PathCombine("libraries", storage));
+ QFileInfo info(file);
if (!info.exists())
- {
return false;
- }
}
return true;
}
diff --git a/logic/OneSixLibrary.h b/logic/OneSixLibrary.h
index 3bd21c51..a74b7cac 100644
--- a/logic/OneSixLibrary.h
+++ b/logic/OneSixLibrary.h
@@ -143,4 +143,5 @@ public:
bool extractTo(QString target_dir);
bool filesExist();
+ QStringList files();
};
diff --git a/logic/OneSixUpdate.cpp b/logic/OneSixUpdate.cpp
index cddd0def..27bc415f 100644
--- a/logic/OneSixUpdate.cpp
+++ b/logic/OneSixUpdate.cpp
@@ -268,10 +268,16 @@ void OneSixUpdate::jarlibStart()
auto metacache = MMC->metacache();
QList<ForgeXzDownloadPtr> ForgeLibs;
+ QList<std::shared_ptr<OneSixLibrary>> brokenLocalLibs;
+
for (auto lib : libs)
{
if (lib->hint() == "local")
+ {
+ if(!lib->filesExist())
+ brokenLocalLibs.append(lib);
continue;
+ }
QString raw_storage = lib->storagePath();
QString raw_dl = lib->downloadUrl();
@@ -305,6 +311,18 @@ void OneSixUpdate::jarlibStart()
f(raw_storage, raw_dl);
}
}
+ if(!brokenLocalLibs.empty())
+ {
+ jarlibDownloadJob.reset();
+ QStringList failed;
+ for(auto brokenLib : brokenLocalLibs)
+ {
+ failed.append(brokenLib->files());
+ }
+ QString failed_all = failed.join("\n");
+ emitFailed(tr("Some libraries marked as 'local' are missing their jar files:\n%1\n\nYou'll have to correct this problem manually. If this is an externally tracked instance, make sure to run it at least once outside of MultiMC.").arg(failed_all));
+ return;
+ }
// TODO: think about how to propagate this from the original json file... or IF AT ALL
QString forgeMirrorList = "http://files.minecraftforge.net/mirror-brand.list";
if (!ForgeLibs.empty())
diff --git a/logic/auth/MojangAccount.cpp b/logic/auth/MojangAccount.cpp
index 6c937ef1..31a238ba 100644
--- a/logic/auth/MojangAccount.cpp
+++ b/logic/auth/MojangAccount.cpp
@@ -220,7 +220,7 @@ void MojangAccount::authFailed(QString reason)
auto session = m_currentTask->getAssignedSession();
// This is emitted when the yggdrasil tasks time out or are cancelled.
// -> we treat the error as no-op
- if (reason == "Yggdrasil task cancelled.")
+ if (m_currentTask->state() == YggdrasilTask::STATE_FAILED_SOFT)
{
if (session)
{
diff --git a/logic/auth/YggdrasilTask.cpp b/logic/auth/YggdrasilTask.cpp
index 7679b11f..ab6ac5e4 100644
--- a/logic/auth/YggdrasilTask.cpp
+++ b/logic/auth/YggdrasilTask.cpp
@@ -29,11 +29,12 @@
YggdrasilTask::YggdrasilTask(MojangAccount *account, QObject *parent)
: Task(parent), m_account(account)
{
+ changeState(STATE_CREATED);
}
void YggdrasilTask::executeTask()
{
- setStatus(getStateMessage(STATE_SENDING_REQUEST));
+ changeState(STATE_SENDING_REQUEST);
// Get the content of the request we're going to send to the server.
QJsonDocument doc(getRequestContent());
@@ -73,12 +74,16 @@ void YggdrasilTask::heartbeat()
void YggdrasilTask::abort()
{
progress(timeout_max, timeout_max);
+ // TODO: actually use this in a meaningful way
+ m_aborted = YggdrasilTask::BY_USER;
m_netReply->abort();
}
void YggdrasilTask::abortByTimeout()
{
progress(timeout_max, timeout_max);
+ // TODO: actually use this in a meaningful way
+ m_aborted = YggdrasilTask::BY_TIMEOUT;
m_netReply->abort();
}
@@ -96,11 +101,21 @@ void YggdrasilTask::sslErrors(QList<QSslError> errors)
void YggdrasilTask::processReply()
{
- setStatus(getStateMessage(STATE_PROCESSING_RESPONSE));
+ changeState(STATE_PROCESSING_RESPONSE);
- if (m_netReply->error() == QNetworkReply::SslHandshakeFailedError)
+ switch (m_netReply->error())
{
- emitFailed(
+ case QNetworkReply::NoError:
+ break;
+ case QNetworkReply::TimeoutError:
+ changeState(STATE_FAILED_SOFT, tr("Authentication operation timed out."));
+ return;
+ case QNetworkReply::OperationCanceledError:
+ changeState(STATE_FAILED_SOFT, tr("Authentication operation cancelled."));
+ return;
+ case QNetworkReply::SslHandshakeFailedError:
+ changeState(
+ STATE_FAILED_SOFT,
tr("<b>SSL Handshake failed.</b><br/>There might be a few causes for it:<br/>"
"<ul>"
"<li>You use Windows XP and need to <a "
@@ -111,16 +126,13 @@ void YggdrasilTask::processReply()
"<li>Possibly something else. Check the MultiMC log file for details</li>"
"</ul>"));
return;
- }
-
- // any network errors lead to offline mode right now
- if (m_netReply->error() >= QNetworkReply::ConnectionRefusedError &&
- m_netReply->error() <= QNetworkReply::UnknownNetworkError)
- {
- // WARNING/FIXME: the value here is used in MojangAccount to detect the cancel/timeout
- emitFailed("Yggdrasil task cancelled.");
- QLOG_ERROR() << "Yggdrasil task cancelled because of: " << m_netReply->error() << " : "
- << m_netReply->errorString();
+ // used for invalid credentials and similar errors. Fall through.
+ case QNetworkReply::ContentOperationNotPermittedError:
+ break;
+ default:
+ changeState(STATE_FAILED_SOFT,
+ tr("Authentication operation failed due to a network error: %1 (%2)")
+ .arg(m_netReply->errorString()).arg(m_netReply->error()));
return;
}
@@ -140,22 +152,16 @@ void YggdrasilTask::processReply()
// pass an empty json object to the processResponse function.
if (jsonError.error == QJsonParseError::NoError || replyData.size() == 0)
{
- if (processResponse(replyData.size() > 0 ? doc.object() : QJsonObject()))
- {
- emitSucceeded();
- return;
- }
-
- // errors happened anyway?
- emitFailed(m_error ? m_error->m_errorMessageVerbose
- : tr("An unknown error occurred when processing the response "
- "from the authentication server."));
+ processResponse(replyData.size() > 0 ? doc.object() : QJsonObject());
+ return;
}
else
{
- emitFailed(tr("Failed to parse Yggdrasil JSON response: %1 at offset %2.")
- .arg(jsonError.errorString())
- .arg(jsonError.offset));
+ changeState(STATE_FAILED_SOFT, tr("Failed to parse authentication server response "
+ "JSON response: %1 at offset %2.")
+ .arg(jsonError.errorString())
+ .arg(jsonError.offset));
+ QLOG_ERROR() << replyData;
}
return;
}
@@ -171,20 +177,21 @@ void YggdrasilTask::processReply()
// stuff there.
QLOG_DEBUG() << "The request failed, but the server gave us an error message. "
"Processing error.";
- emitFailed(processError(doc.object()));
+ processError(doc.object());
}
else
{
// The server didn't say anything regarding the error. Give the user an unknown
// error.
- QLOG_DEBUG() << "The request failed and the server gave no error message. "
- "Unknown error.";
- emitFailed(tr("An unknown error occurred when trying to communicate with the "
- "authentication server: %1").arg(m_netReply->errorString()));
+ QLOG_DEBUG()
+ << "The request failed and the server gave no error message. Unknown error.";
+ changeState(STATE_FAILED_SOFT,
+ tr("An unknown error occurred when trying to communicate with the "
+ "authentication server: %1").arg(m_netReply->errorString()));
}
}
-QString YggdrasilTask::processError(QJsonObject responseData)
+void YggdrasilTask::processError(QJsonObject responseData)
{
QJsonValue errorVal = responseData.value("error");
QJsonValue errorMessageValue = responseData.value("errorMessage");
@@ -194,24 +201,51 @@ QString YggdrasilTask::processError(QJsonObject responseData)
{
m_error = std::shared_ptr<Error>(new Error{
errorVal.toString(""), errorMessageValue.toString(""), causeVal.toString("")});
- return m_error->m_errorMessageVerbose;
+ changeState(STATE_FAILED_HARD, m_error->m_errorMessageVerbose);
}
else
{
// Error is not in standard format. Don't set m_error and return unknown error.
- return tr("An unknown Yggdrasil error occurred.");
+ changeState(STATE_FAILED_HARD, tr("An unknown Yggdrasil error occurred."));
}
}
-QString YggdrasilTask::getStateMessage(const YggdrasilTask::State state) const
+QString YggdrasilTask::getStateMessage() const
{
- switch (state)
+ switch (m_state)
{
+ case STATE_CREATED:
+ return "Waiting...";
case STATE_SENDING_REQUEST:
return tr("Sending request to auth servers...");
case STATE_PROCESSING_RESPONSE:
return tr("Processing response from servers...");
+ case STATE_SUCCEEDED:
+ return tr("Authentication task succeeded.");
+ case STATE_FAILED_SOFT:
+ return tr("Failed to contact the authentication server.");
+ case STATE_FAILED_HARD:
+ return tr("Failed to authenticate.");
default:
- return tr("Processing. Please wait...");
+ return tr("...");
+ }
+}
+
+void YggdrasilTask::changeState(YggdrasilTask::State newState, QString reason)
+{
+ m_state = newState;
+ setStatus(getStateMessage());
+ if (newState == STATE_SUCCEEDED)
+ {
+ emitSucceeded();
+ }
+ else if (newState == STATE_FAILED_HARD || newState == STATE_FAILED_SOFT)
+ {
+ emitFailed(reason);
}
}
+
+YggdrasilTask::State YggdrasilTask::state()
+{
+ return m_state;
+}
diff --git a/logic/auth/YggdrasilTask.h b/logic/auth/YggdrasilTask.h
index b24f909f..ed70b957 100644
--- a/logic/auth/YggdrasilTask.h
+++ b/logic/auth/YggdrasilTask.h
@@ -60,17 +60,28 @@ public:
QString m_cause;
};
-protected:
+ enum AbortedBy
+ {
+ BY_NOTHING,
+ BY_USER,
+ BY_TIMEOUT
+ } m_aborted = BY_NOTHING;
+
/**
* Enum for describing the state of the current task.
* Used by the getStateMessage function to determine what the status message should be.
*/
enum State
{
+ STATE_CREATED,
STATE_SENDING_REQUEST,
STATE_PROCESSING_RESPONSE,
- STATE_OTHER,
- };
+ STATE_FAILED_SOFT, //!< soft failure. this generally means the user auth details haven't been invalidated
+ STATE_FAILED_HARD, //!< hard failure. auth is invalid
+ STATE_SUCCEEDED
+ } m_state = STATE_CREATED;
+
+protected:
virtual void executeTask();
@@ -94,21 +105,21 @@ protected:
* Note: If the response from the server was blank, and the HTTP code was 200, this function is called with
* an empty QJsonObject.
*/
- virtual bool processResponse(QJsonObject responseData) = 0;
+ virtual void processResponse(QJsonObject responseData) = 0;
/**
* Processes an error response received from the server.
* The default implementation will read data from Yggdrasil's standard error response format and set it as this task's Error.
* \returns a QString error message that will be passed to emitFailed.
*/
- virtual QString processError(QJsonObject responseData);
+ virtual void processError(QJsonObject responseData);
/**
* Returns the state message for the given state.
* Used to set the status message for the task.
* Should be overridden by subclasses that want to change messages for a given state.
*/
- virtual QString getStateMessage(const State state) const;
+ virtual QString getStateMessage() const;
protected
slots:
@@ -117,10 +128,12 @@ slots:
void heartbeat();
void sslErrors(QList<QSslError>);
+ void changeState(State newState, QString reason=QString());
public
slots:
virtual void abort() override;
void abortByTimeout();
+ State state();
protected:
// FIXME: segfault disaster waiting to happen
MojangAccount *m_account = nullptr;
diff --git a/logic/auth/flows/AuthenticateTask.cpp b/logic/auth/flows/AuthenticateTask.cpp
index 6548c4e9..340235e3 100644
--- a/logic/auth/flows/AuthenticateTask.cpp
+++ b/logic/auth/flows/AuthenticateTask.cpp
@@ -71,7 +71,7 @@ QJsonObject AuthenticateTask::getRequestContent() const
return req;
}
-bool AuthenticateTask::processResponse(QJsonObject responseData)
+void AuthenticateTask::processResponse(QJsonObject responseData)
{
// Read the response data. We need to get the client token, access token, and the selected
// profile.
@@ -84,16 +84,13 @@ bool AuthenticateTask::processResponse(QJsonObject responseData)
if (clientToken.isEmpty())
{
// Fail if the server gave us an empty client token
- // TODO: Set an error properly to display to the user.
- QLOG_ERROR() << "Server didn't send a client token.";
- return false;
+ changeState(STATE_FAILED_HARD, tr("Authentication server didn't send a client token."));
+ return;
}
if (!m_account->m_clientToken.isEmpty() && clientToken != m_account->m_clientToken)
{
- // The server changed our client token! Obey its wishes, but complain. That's what I do
- // for my parents, so...
- QLOG_WARN() << "Server changed our client token to '" << clientToken
- << "'. This shouldn't happen, but it isn't really a big deal.";
+ changeState(STATE_FAILED_HARD, tr("Authentication server attempted to change the client token. This isn't supported."));
+ return;
}
// Set the client token.
m_account->m_clientToken = clientToken;
@@ -104,8 +101,8 @@ bool AuthenticateTask::processResponse(QJsonObject responseData)
if (accessToken.isEmpty())
{
// Fail if the server didn't give us an access token.
- // TODO: Set an error properly to display to the user.
- QLOG_ERROR() << "Server didn't send an access token.";
+ changeState(STATE_FAILED_HARD, tr("Authentication server didn't send an access token."));
+ return;
}
// Set the access token.
m_account->m_accessToken = accessToken;
@@ -149,16 +146,13 @@ bool AuthenticateTask::processResponse(QJsonObject responseData)
QString currentProfileId = currentProfile.value("id").toString("");
if (currentProfileId.isEmpty())
{
- // TODO: Set an error to display to the user.
- QLOG_ERROR() << "Server didn't specify a currently selected profile.";
- return false;
+ changeState(STATE_FAILED_HARD, tr("Authentication server didn't specify a currently selected profile. The account exists, but likely isn't premium."));
+ return;
}
if (!m_account->setCurrentProfile(currentProfileId))
{
- // TODO: Set an error to display to the user.
- QLOG_ERROR() << "Server specified a selected profile that wasn't in the available "
- "profiles list.";
- return false;
+ changeState(STATE_FAILED_HARD, tr("Authentication server specified a selected profile that wasn't in the available profiles list."));
+ return;
}
// this is what the vanilla launcher passes to the userProperties launch param
@@ -181,7 +175,7 @@ bool AuthenticateTask::processResponse(QJsonObject responseData)
// We've made it through the minefield of possible errors. Return true to indicate that
// we've succeeded.
QLOG_DEBUG() << "Finished reading authentication response.";
- return true;
+ changeState(STATE_SUCCEEDED);
}
QString AuthenticateTask::getEndpoint() const
@@ -189,15 +183,15 @@ QString AuthenticateTask::getEndpoint() const
return "authenticate";
}
-QString AuthenticateTask::getStateMessage(const YggdrasilTask::State state) const
+QString AuthenticateTask::getStateMessage() const
{
- switch (state)
+ switch (m_state)
{
case STATE_SENDING_REQUEST:
return tr("Authenticating: Sending request...");
case STATE_PROCESSING_RESPONSE:
return tr("Authenticating: Processing response...");
default:
- return YggdrasilTask::getStateMessage(state);
+ return YggdrasilTask::getStateMessage();
}
}
diff --git a/logic/auth/flows/AuthenticateTask.h b/logic/auth/flows/AuthenticateTask.h
index b6564657..13a000aa 100644
--- a/logic/auth/flows/AuthenticateTask.h
+++ b/logic/auth/flows/AuthenticateTask.h
@@ -33,13 +33,13 @@ public:
AuthenticateTask(MojangAccount *account, const QString &password, QObject *parent = 0);
protected:
- virtual QJsonObject getRequestContent() const;
+ virtual QJsonObject getRequestContent() const override;
- virtual QString getEndpoint() const;
+ virtual QString getEndpoint() const override;
- virtual bool processResponse(QJsonObject responseData);
+ virtual void processResponse(QJsonObject responseData) override;
- QString getStateMessage(const YggdrasilTask::State state) const;
+ virtual QString getStateMessage() const override;
private:
QString m_password;
diff --git a/logic/auth/flows/RefreshTask.cpp b/logic/auth/flows/RefreshTask.cpp
index 5a55ed91..7e926c2b 100644
--- a/logic/auth/flows/RefreshTask.cpp
+++ b/logic/auth/flows/RefreshTask.cpp
@@ -60,7 +60,7 @@ QJsonObject RefreshTask::getRequestContent() const
return req;
}
-bool RefreshTask::processResponse(QJsonObject responseData)
+void RefreshTask::processResponse(QJsonObject responseData)
{
// Read the response data. We need to get the client token, access token, and the selected
// profile.
@@ -73,17 +73,13 @@ bool RefreshTask::processResponse(QJsonObject responseData)
if (clientToken.isEmpty())
{
// Fail if the server gave us an empty client token
- // TODO: Set an error properly to display to the user.
- QLOG_ERROR() << "Server didn't send a client token.";
- return false;
+ changeState(STATE_FAILED_HARD, tr("Authentication server didn't send a client token."));
+ return;
}
if (!m_account->m_clientToken.isEmpty() && clientToken != m_account->m_clientToken)
{
- // The server changed our client token! Obey its wishes, but complain. That's what I do
- // for my parents, so...
- QLOG_ERROR() << "Server changed our client token to '" << clientToken
- << "'. This shouldn't happen, but it isn't really a big deal.";
- return false;
+ changeState(STATE_FAILED_HARD, tr("Authentication server attempted to change the client token. This isn't supported."));
+ return;
}
// Now, we set the access token.
@@ -92,9 +88,8 @@ bool RefreshTask::processResponse(QJsonObject responseData)
if (accessToken.isEmpty())
{
// Fail if the server didn't give us an access token.
- // TODO: Set an error properly to display to the user.
- QLOG_ERROR() << "Server didn't send an access token.";
- return false;
+ changeState(STATE_FAILED_HARD, tr("Authentication server didn't send an access token."));
+ return;
}
// we validate that the server responded right. (our current profile = returned current
@@ -103,9 +98,8 @@ bool RefreshTask::processResponse(QJsonObject responseData)
QString currentProfileId = currentProfile.value("id").toString("");
if (m_account->currentProfile()->id != currentProfileId)
{
- // TODO: Set an error to display to the user.
- QLOG_ERROR() << "Server didn't specify the same selected profile as ours.";
- return false;
+ changeState(STATE_FAILED_HARD, tr("Authentication server didn't specify the same prefile as expected."));
+ return;
}
// this is what the vanilla launcher passes to the userProperties launch param
@@ -130,7 +124,7 @@ bool RefreshTask::processResponse(QJsonObject responseData)
QLOG_DEBUG() << "Finished reading refresh response.";
// Reset the access token.
m_account->m_accessToken = accessToken;
- return true;
+ changeState(STATE_SUCCEEDED);
}
QString RefreshTask::getEndpoint() const
@@ -138,15 +132,15 @@ QString RefreshTask::getEndpoint() const
return "refresh";
}
-QString RefreshTask::getStateMessage(const YggdrasilTask::State state) const
+QString RefreshTask::getStateMessage() const
{
- switch (state)
+ switch (m_state)
{
case STATE_SENDING_REQUEST:
return tr("Refreshing login token...");
case STATE_PROCESSING_RESPONSE:
return tr("Refreshing login token: Processing response...");
default:
- return YggdrasilTask::getStateMessage(state);
+ return YggdrasilTask::getStateMessage();
}
}
diff --git a/logic/auth/flows/RefreshTask.h b/logic/auth/flows/RefreshTask.h
index 0dadc025..ad07ba2d 100644
--- a/logic/auth/flows/RefreshTask.h
+++ b/logic/auth/flows/RefreshTask.h
@@ -33,12 +33,12 @@ public:
RefreshTask(MojangAccount * account);
protected:
- virtual QJsonObject getRequestContent() const;
+ virtual QJsonObject getRequestContent() const override;
- virtual QString getEndpoint() const;
+ virtual QString getEndpoint() const override;
- virtual bool processResponse(QJsonObject responseData);
+ virtual void processResponse(QJsonObject responseData) override;
- QString getStateMessage(const YggdrasilTask::State state) const;
+ virtual QString getStateMessage() const override;
};
diff --git a/logic/auth/flows/ValidateTask.cpp b/logic/auth/flows/ValidateTask.cpp
index 4f7323fd..f3fc1e71 100644
--- a/logic/auth/flows/ValidateTask.cpp
+++ b/logic/auth/flows/ValidateTask.cpp
@@ -38,11 +38,10 @@ QJsonObject ValidateTask::getRequestContent() const
return req;
}
-bool ValidateTask::processResponse(QJsonObject responseData)
+void ValidateTask::processResponse(QJsonObject responseData)
{
// Assume that if processError wasn't called, then the request was successful.
- emitSucceeded();
- return true;
+ changeState(YggdrasilTask::STATE_SUCCEEDED);
}
QString ValidateTask::getEndpoint() const
@@ -50,15 +49,15 @@ QString ValidateTask::getEndpoint() const
return "validate";
}
-QString ValidateTask::getStateMessage(const YggdrasilTask::State state) const
+QString ValidateTask::getStateMessage() const
{
- switch (state)
+ switch (m_state)
{
- case STATE_SENDING_REQUEST:
+ case YggdrasilTask::STATE_SENDING_REQUEST:
return tr("Validating access token: Sending request...");
- case STATE_PROCESSING_RESPONSE:
+ case YggdrasilTask::STATE_PROCESSING_RESPONSE:
return tr("Validating access token: Processing response...");
default:
- return YggdrasilTask::getStateMessage(state);
+ return YggdrasilTask::getStateMessage();
}
}
diff --git a/logic/auth/flows/ValidateTask.h b/logic/auth/flows/ValidateTask.h
index 0e34f0c3..7bc2fe01 100644
--- a/logic/auth/flows/ValidateTask.h
+++ b/logic/auth/flows/ValidateTask.h
@@ -35,13 +35,13 @@ public:
ValidateTask(MojangAccount *account, QObject *parent = 0);
protected:
- virtual QJsonObject getRequestContent() const;
+ virtual QJsonObject getRequestContent() const override;
- virtual QString getEndpoint() const;
+ virtual QString getEndpoint() const override;
- virtual bool processResponse(QJsonObject responseData);
+ virtual void processResponse(QJsonObject responseData) override;
- QString getStateMessage(const YggdrasilTask::State state) const;
+ virtual QString getStateMessage() const override;
private:
};
diff --git a/logic/net/URLConstants.cpp b/logic/net/URLConstants.cpp
index 14b28085..de919448 100644
--- a/logic/net/URLConstants.cpp
+++ b/logic/net/URLConstants.cpp
@@ -16,4 +16,6 @@ const QString MOJANG_STATUS_URL("http://status.mojang.com/check");
const QString MOJANG_STATUS_NEWS_URL("http://status.mojang.com/news");
const QString LITELOADER_URL("http://dl.liteloader.com/versions/versions.json");
const QString IMGUR_BASE_URL("https://api.imgur.com/3/");
+const QString FMLLIBS_OUR_BASE_URL("http://files.multimc.org/fmllibs/");
+const QString FMLLIBS_FORGE_BASE_URL("http://files.minecraftforge.net/fmllibs/");
} \ No newline at end of file
diff --git a/logic/net/URLConstants.h b/logic/net/URLConstants.h
index c1064115..392d7362 100644
--- a/logic/net/URLConstants.h
+++ b/logic/net/URLConstants.h
@@ -34,4 +34,6 @@ extern const QString MOJANG_STATUS_URL;
extern const QString MOJANG_STATUS_NEWS_URL;
extern const QString LITELOADER_URL;
extern const QString IMGUR_BASE_URL;
+extern const QString FMLLIBS_OUR_BASE_URL;
+extern const QString FMLLIBS_FORGE_BASE_URL;
}
diff --git a/resources/multimc/16x16/patreon.png b/resources/multimc/16x16/patreon.png
new file mode 100644
index 00000000..cde2b326
--- /dev/null
+++ b/resources/multimc/16x16/patreon.png
Binary files differ
diff --git a/resources/multimc/22x22/patreon.png b/resources/multimc/22x22/patreon.png
new file mode 100644
index 00000000..b6235ad2
--- /dev/null
+++ b/resources/multimc/22x22/patreon.png
Binary files differ
diff --git a/resources/multimc/24x24/patreon.png b/resources/multimc/24x24/patreon.png
new file mode 100644
index 00000000..c1da080f
--- /dev/null
+++ b/resources/multimc/24x24/patreon.png
Binary files differ
diff --git a/resources/multimc/32x32/patreon.png b/resources/multimc/32x32/patreon.png
new file mode 100644
index 00000000..f5ae8a5e
--- /dev/null
+++ b/resources/multimc/32x32/patreon.png
Binary files differ
diff --git a/resources/multimc/48x48/patreon.png b/resources/multimc/48x48/patreon.png
new file mode 100644
index 00000000..2708a85a
--- /dev/null
+++ b/resources/multimc/48x48/patreon.png
Binary files differ
diff --git a/resources/multimc/64x64/patreon.png b/resources/multimc/64x64/patreon.png
new file mode 100644
index 00000000..7b4814ec
--- /dev/null
+++ b/resources/multimc/64x64/patreon.png
Binary files differ
diff --git a/resources/multimc/multimc.qrc b/resources/multimc/multimc.qrc
index 363347de..d3068ff4 100644
--- a/resources/multimc/multimc.qrc
+++ b/resources/multimc/multimc.qrc
@@ -26,6 +26,14 @@
<file>48x48/bug.png</file>
<file>64x64/bug.png</file>
+ <!-- Patron logo. (C) 2014 Patreon, Inc., http://www.patreon.com/toolbox?ftyp=media -->
+ <file>16x16/patreon.png</file>
+ <file>22x22/patreon.png</file>
+ <file>24x24/patreon.png</file>
+ <file>32x32/patreon.png</file>
+ <file>48x48/patreon.png</file>
+ <file>64x64/patreon.png</file>
+
<!-- The cat button. Freeware, http://findicons.com/icon/73096/black_cat -->
<file>16x16/cat.png</file>
<file>22x22/cat.png</file>
diff --git a/translations/mmc_de.ts b/translations/mmc_de.ts
index 2ad9f351..dcee3d40 100644
--- a/translations/mmc_de.ts
+++ b/translations/mmc_de.ts
@@ -772,14 +772,13 @@ p, li { white-space: pre-wrap; }
<translation>&amp;Keine Voreinstellung</translation>
</message>
<message>
- <location filename="../gui/dialogs/AccountListDialog.cpp" line="+71"/>
+ <location filename="../gui/dialogs/AccountListDialog.cpp" line="+73"/>
<source>Please enter your Mojang or Minecraft account username and password to add your account.</source>
<translation>Bitte gib Benutzernamen und Passwort deines Mojang- oder Minecraft-Kontos an, um es hinzuzufügen.</translation>
</message>
<message>
- <location line="+84"/>
<source>Login error.</source>
- <translation>Loginfehler.</translation>
+ <translation type="vanished">Loginfehler.</translation>
</message>
</context>
<context>
@@ -816,7 +815,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>AuthenticateTask</name>
<message>
- <location filename="../logic/auth/flows/AuthenticateTask.cpp" line="+197"/>
+ <location filename="../logic/auth/flows/AuthenticateTask.cpp" line="+87"/>
+ <source>Authentication server didn&apos;t send a client token.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Authentication server attempted to change the client token. This isn&apos;t supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Authentication server didn&apos;t send an access token.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Authentication server didn&apos;t specify a currently selected profile. The account exists, but likely isn&apos;t premium.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Authentication server specified a selected profile that wasn&apos;t in the available profiles list.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+37"/>
<source>Authenticating: Sending request...</source>
<translation>Authentifizierung: Sende Anfrage...</translation>
</message>
@@ -1429,7 +1453,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>LegacyUpdate</name>
<message>
- <location filename="../logic/LegacyUpdate.cpp" line="+80"/>
+ <location filename="../logic/LegacyUpdate.cpp" line="+122"/>
+ <source>Checking for FML libraries...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Dowloading FML libraries...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Copying FML libraries into the instance...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Failed creating FML library folder inside the instance.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Failed copying Forge/FML library: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+39"/>
<source>Downloading new LWJGL...</source>
<translation>LWJGL wird heruntergeladen...</translation>
</message>
@@ -1502,8 +1551,24 @@ p, li { white-space: pre-wrap; }
<translation type="vanished">Passwort:</translation>
</message>
<message>
+ <location filename="../gui/dialogs/LoginDialog.ui" line="+20"/>
+ <source>Add Account</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Message label placeholder.</source>
+ <translation type="unfinished">Message label placeholder.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Email / Username</source>
+ <translation type="unfinished">E-Mail / Benutzername</translation>
+ </message>
+ <message>
+ <location line="+10"/>
<source>Password</source>
- <translation type="vanished">Passwort</translation>
+ <translation>Passwort</translation>
</message>
<message>
<source>Forget</source>
@@ -1609,7 +1674,7 @@ p, li { white-space: pre-wrap; }
<translation>Haupt-Werkzeugleiste</translation>
</message>
<message>
- <location line="+41"/>
+ <location line="+42"/>
<source>Instance Toolbar</source>
<translation>Instanz-Werkzeugleiste</translation>
</message>
@@ -1626,12 +1691,12 @@ p, li { white-space: pre-wrap; }
<message>
<location line="+3"/>
<location line="+3"/>
- <location line="+342"/>
+ <location line="+358"/>
<source>Add a new instance.</source>
<translation>Neue Instanz erstellen.</translation>
</message>
<message>
- <location line="-332"/>
+ <location line="-348"/>
<source>View Instance Folder</source>
<translation>Instanzordner öffnen</translation>
</message>
@@ -1676,12 +1741,12 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+10"/>
- <location line="+136"/>
+ <location line="+152"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
- <location line="-133"/>
+ <location line="-149"/>
<location line="+3"/>
<source>Change settings.</source>
<translation>Einstellungen ändern.</translation>
@@ -1706,7 +1771,7 @@ p, li { white-space: pre-wrap; }
<translation type="vanished">Den MultiMC-Entwicklerblog öffnen, um Neuigkeiten über MultiMC zu erhalten.</translation>
</message>
<message>
- <location line="+10"/>
+ <location line="+26"/>
<source>More News</source>
<translation>Mehr Nachrichten</translation>
</message>
@@ -1912,13 +1977,24 @@ p, li { white-space: pre-wrap; }
<translation>Kopiere Instanz</translation>
</message>
<message>
+ <location line="-243"/>
+ <source>Support us on Patreon!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<location line="+3"/>
+ <source>Open the MultiMC Patreon page.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+240"/>
<source>Copy the selected instance.</source>
<translation>Kopiere die ausgewählte Instanz.</translation>
</message>
<message>
<location line="+8"/>
- <location filename="../gui/MainWindow.cpp" line="+241"/>
+ <location filename="../gui/MainWindow.cpp" line="+248"/>
<source>Manage Accounts</source>
<translation>Verwalte Konten</translation>
</message>
@@ -1959,18 +2035,33 @@ You are using the latest version.</source>
Du verwendest bereits die neueste Version.</translation>
</message>
<message>
- <location line="+41"/>
+ <location line="+45"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
- <location line="+929"/>
+ <location line="+3"/>
+ <source>Copy instance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>MultiMC</source>
+ <translation type="unfinished">MultiMC</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Create instance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <location line="+934"/>
<source>Launch</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-927"/>
+ <location line="-932"/>
<source>Profilers</source>
<translation type="unfinished"></translation>
</message>
@@ -2030,14 +2121,14 @@ Du verwendest bereits die neueste Version.</translation>
<location line="+37"/>
<location line="+7"/>
<location line="+7"/>
- <location line="+424"/>
+ <location line="+429"/>
<location line="+30"/>
<location line="+80"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
- <location line="-613"/>
+ <location line="-618"/>
<location line="+71"/>
<source>Failed to create the instance directory.</source>
<translation type="unfinished"></translation>
@@ -2050,14 +2141,14 @@ Du verwendest bereits die neueste Version.</translation>
</message>
<message>
<location line="-49"/>
- <location line="+585"/>
+ <location line="+590"/>
<source>MultiMC cannot download Minecraft or update instances unless you have at least one account added.
Please add your Mojang or Minecraft account.</source>
<translation>MultiMC kann Minecraft nicht herunterladen und keine Instanzen aktualisieren, solange du kein Konto erstellt hast.
Bitte füge dein Mojang- oder Minecraft-Konto hinzu.</translation>
</message>
<message>
- <location line="-473"/>
+ <location line="-478"/>
<source>Group name</source>
<translation>Gruppenname</translation>
</message>
@@ -2067,7 +2158,7 @@ Bitte füge dein Mojang- oder Minecraft-Konto hinzu.</translation>
<translation>Neuen Gruppennamen eingeben.</translation>
</message>
<message>
- <location line="+92"/>
+ <location line="+97"/>
<source>CAREFUL</source>
<translation>ACHTUNG</translation>
</message>
@@ -2747,7 +2838,15 @@ Die folgende Instanz löschen:</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+76"/>
+ <location line="+66"/>
+ <source>Some libraries marked as &apos;local&apos; are missing their jar files:
+%1
+
+You&apos;ll have to correct this problem manually. If this is an externally tracked instance, make sure to run it at least once outside of MultiMC.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+28"/>
<source>Failed to download the following files:
%1
@@ -2898,7 +2997,27 @@ Diese Mitteilung wird so lange angezeigt, bis du die Option entfernt hast.</tran
<context>
<name>RefreshTask</name>
<message>
- <location filename="../logic/auth/flows/RefreshTask.cpp" line="+146"/>
+ <location filename="../logic/auth/flows/RefreshTask.cpp" line="+76"/>
+ <source>Authentication server didn&apos;t send a client token.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Authentication server attempted to change the client token. This isn&apos;t supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Authentication server didn&apos;t send an access token.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Authentication server didn&apos;t specify the same prefile as expected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+39"/>
<source>Refreshing login token...</source>
<translation>Erneuerung des Login-Tokens...</translation>
</message>
@@ -3566,7 +3685,7 @@ Diese Mitteilung wird so lange angezeigt, bis du die Option entfernt hast.</tran
<context>
<name>ValidateTask</name>
<message>
- <location filename="../logic/auth/flows/ValidateTask.cpp" line="+58"/>
+ <location filename="../logic/auth/flows/ValidateTask.cpp" line="+57"/>
<source>Validating access token: Sending request...</source>
<translation>Validiere Zugriffstoken: Sende Anfrage...</translation>
</message>
@@ -3635,22 +3754,40 @@ Diese Mitteilung wird so lange angezeigt, bis du die Option entfernt hast.</tran
<context>
<name>YggdrasilTask</name>
<message>
- <location filename="../logic/auth/YggdrasilTask.cpp" line="+104"/>
+ <location filename="../logic/auth/YggdrasilTask.cpp" line="+119"/>
<source>&lt;b&gt;SSL Handshake failed.&lt;/b&gt;&lt;br/&gt;There might be a few causes for it:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;You use Windows XP and need to &lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=38918&quot;&gt;update your root certificates&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Some device on your network is interfering with SSL traffic. In that case, you have bigger worries than Minecraft not starting.&lt;/li&gt;&lt;li&gt;Possibly something else. Check the MultiMC log file for details&lt;/li&gt;&lt;/ul&gt;</source>
<translation>&lt;b&gt;SSL-Handshake fehlgeschlagen.&lt;/b&gt;&lt;br/&gt;Es kann mehrere Erklärungen geben:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Du benutzt Windows XP und musst &lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=38918&quot;&gt;dein Stammzertifikat aktualisieren&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Ein Gerät in deinem Netzwerk mischt sich in den SSL-Verkehr ein. In diesem Fall hast du größere Probleme, als das, dass Minecraft nicht gestartet werden kann.&lt;/li&gt;&lt;li&gt;Möglicherweise etwas anderes. Prüfe die MultiMC-Logdatei für Details&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
- <location line="+47"/>
<source>An unknown error occurred when processing the response from the authentication server.</source>
- <translation>Ein unbekannter Fehler ist beim Bearbeiten der Antwort des Authentifizierungs-Servers aufgetreten.</translation>
+ <translation type="vanished">Ein unbekannter Fehler ist beim Bearbeiten der Antwort des Authentifizierungs-Servers aufgetreten.</translation>
</message>
<message>
- <location line="+5"/>
<source>Failed to parse Yggdrasil JSON response: %1 at offset %2.</source>
- <translation>Fehler beim Bearbeiten der Yggdrasil-JSON-Antwort: %1 bei %2.</translation>
+ <translation type="vanished">Fehler beim Bearbeiten der Yggdrasil-JSON-Antwort: %1 bei %2.</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>Authentication operation timed out.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Authentication operation cancelled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Authentication operation failed due to a network error: %1 (%2)</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+26"/>
+ <source>Failed to parse authentication server response JSON response: %1 at offset %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+29"/>
<source>An unknown error occurred when trying to communicate with the authentication server: %1</source>
<translation>Ein unbekannter Fehler ist bei der Kommunikation mit den Authentifizierungs-Servern aufgetreten: %1</translation>
</message>
@@ -3660,7 +3797,7 @@ Diese Mitteilung wird so lange angezeigt, bis du die Option entfernt hast.</tran
<translation>Ein unbekannter Yggdrasil-Fehler ist aufgetreten.</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+11"/>
<source>Sending request to auth servers...</source>
<translation>Sende Anfrage an die Authentifizierungs-Server...</translation>
</message>
@@ -3671,8 +3808,27 @@ Diese Mitteilung wird so lange angezeigt, bis du die Option entfernt hast.</tran
</message>
<message>
<location line="+2"/>
+ <source>Authentication task succeeded.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Failed to contact the authentication server.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Failed to authenticate.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>...</source>
+ <translation type="unfinished">...</translation>
+ </message>
+ <message>
<source>Processing. Please wait...</source>
- <translation>Bearbeite. Bitte warten...</translation>
+ <translation type="vanished">Bearbeite. Bitte warten...</translation>
</message>
</context>
</TS>
diff --git a/translations/mmc_fr.ts b/translations/mmc_fr.ts
new file mode 100644
index 00000000..8878ff49
--- /dev/null
+++ b/translations/mmc_fr.ts
@@ -0,0 +1,3399 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR" sourcelanguage="en">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>Dialog</source>
+ <translation>Dialogue</translation>
+ </message>
+ <message>
+ <source>MultiMC</source>
+ <translation>MultiMC</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/AboutDialog.ui" line="+111"/>
+ <source>About</source>
+ <translation>À propos</translation>
+ </message>
+ <message>
+ <source>MultiMC is a custom launcher that makes managing Minecraft easier by allowing you to have multiple installations of Minecraft at once.</source>
+ <translation>MultiMC est un lanceur personalisé qui permet de configurer minecraft plus facilement en permettant l&apos;installation de plusieures instances de minecraft en une.</translation>
+ </message>
+ <message>
+ <location line="-91"/>
+ <source>About MultiMC</source>
+ <translation>À propos de MultiMC</translation>
+ </message>
+ <message>
+ <location line="+69"/>
+ <source>MultiMC 5</source>
+ <translation>MultiMC 5</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Version:</source>
+ <translation>Version:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Version Type:</source>
+ <translation>Type de version:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Platform:</source>
+ <translation>Plateforme:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Build Number:</source>
+ <translation>Build numéro:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Channel:</source>
+ <translation>Canal:</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;MultiMC is a custom launcher that makes managing Minecraft easier by allowing you to have multiple instances of Minecraft at once.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;MultiMC est un lanceur personalisé qui permet de configurer minecraft plus facilement en permettant l&apos;installation de plusieures instances de minecraft en une.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>© 2013 MultiMC Contributors</source>
+ <translation>© 2013 MultiMC Contributeurs</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;http://github.com/MultiMC/MultiMC5&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://github.com/MultiMC/MultiMC5&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; font-weight:600;&quot;&gt;MultiMC&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Andrew Okin &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:forkk@forkk.net&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;forkk@forkk.net&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Petr Mrázek &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:peterix@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;peterix@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Sky &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://www.twitter.com/drayshak&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@drayshak&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; font-weight:600;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Ubuntu&apos;; font-size:10pt; font-weight:600;&quot;&gt;With thanks to&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Orochimarufan &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:orochimarufan.x3@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;orochimarufan.x3@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;TakSuyu &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:taksuyu@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;taksuyu@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Kilobyte &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:stiepen22@gmx.de&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;stiepen22@gmx.de&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Jan (02JanDal) &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:02jandal@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;02jandal@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Robotbrain &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/skylordelros&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@skylordelros&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Rootbear75 &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/rootbear75&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@rootbear75&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt; (build server)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; font-weight:600;&quot;&gt;MultiMC&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Andrew Okin &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:forkk@forkk.net&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;forkk@forkk.net&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Petr Mrázek &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:peterix@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;peterix@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Sky &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://www.twitter.com/drayshak&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@drayshak&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; font-weight:600;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Ubuntu&apos;; font-size:10pt; font-weight:600;&quot;&gt;Remerciements à&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Orochimarufan &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:orochimarufan.x3@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;orochimarufan.x3@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;TakSuyu &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:taksuyu@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;taksuyu@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Kilobyte &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:stiepen22@gmx.de&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;stiepen22@gmx.de&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Jan (02JanDal) &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:02jandal@gmail.com&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;02jandal@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Robotbrain &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/skylordelros&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@skylordelros&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;Rootbear75 &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/rootbear75&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@rootbear75&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:10pt;&quot;&gt;&amp;gt; (Créateur du serveur)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans Mono&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;MultiMC&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Copyright 2012-2014 MultiMC Contributors&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;you may not use this file except in compliance with the License.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;You may obtain a copy of the License at&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; http://www.apache.org/licenses/LICENSE-2.0&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Unless required by applicable law or agreed to in writing, software&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;See the License for the specific language governing permissions and&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;limitations under the License.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;QSLog&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright (c) 2010, Razvan Petru&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;All rights reserved.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Redistribution and use in source and binary forms, with or without modification,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;are permitted provided that the following conditions are met:&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;* Redistributions of source code must retain the above copyright notice, this&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; list of conditions and the following disclaimer.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;* Redistributions in binary form must reproduce the above copyright notice, this&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; list of conditions and the following disclaimer in the documentation and/or other&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; materials provided with the distribution.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;* The name of the contributors may not be used to endorse or promote products&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; derived from this software without specific prior written permission.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;OF THE POSSIBILITY OF SUCH DAMAGE.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;Group View (instance view)&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; /*&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Copyright (C) 2007 Rafael Fernández López &amp;lt;ereslibre@kde.org&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Copyright (C) 2007 John Tapsell &amp;lt;tapsell@kde.org&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * This library is free software; you can redistribute it and/or&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * modify it under the terms of the GNU Library General Public&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * License as published by the Free Software Foundation; either&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * version 2 of the License, or (at your option) any later version.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * This library is distributed in the hope that it will be useful,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Library General Public License for more details.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * You should have received a copy of the GNU Library General Public License&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * along with this library; see the file COPYING.LIB. If not, write to&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Boston, MA 02110-1301, USA.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; */&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;Pack200&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The GNU General Public License (GPL)&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Version 2, June 1991&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;+ &amp;quot;CLASSPATH&amp;quot; EXCEPTION TO THE GPL&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Certain source files distributed by Oracle America and/or its affiliates are&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;subject to the following clarification and special exception to the GPL, but&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;only where Oracle has expressly included in the particular source file&apos;s header&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;the words &amp;quot;Oracle designates this particular file as subject to the &amp;quot;Classpath&amp;quot;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;exception as provided by Oracle in the LICENSE file that accompanied this code.&amp;quot;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; Linking this library statically or dynamically with other modules is making&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; a combined work based on this library. Thus, the terms and conditions of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; the GNU General Public License cover the whole combination.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; As a special exception, the copyright holders of this library give you&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; permission to link this library with independent modules to produce an&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; executable, regardless of the license terms of these independent modules,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; and to copy and distribute the resulting executable under terms of your&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; choice, provided that you also meet, for each linked independent module,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; the terms and conditions of the license of that module. An independent&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; module is a module which is not derived from or based on this library. If&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; you modify this library, you may extend this exception to your version of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; the library, but you are not obligated to do so. If you do not wish to do&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; so, delete this exception statement from your version.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;Quazip&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright (C) 2005-2011 Sergey A. Tachenov&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;This program is free software; you can redistribute it and/or modify it&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;under the terms of the GNU Lesser General Public License as published by&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;the Free Software Foundation; either version 2 of the License, or (at&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;your option) any later version.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;This program is distributed in the hope that it will be useful, but&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;General Public License for more details.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You should have received a copy of the GNU Lesser General Public License&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;along with this program; if not, write to the Free Software Foundation,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;See COPYING file for the full LGPL text.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Original ZIP package is copyrighted by Gilles Vollant, see&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;quazip/(un)zip.h files for details, basically it&apos;s zlib license.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;xz-minidec&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;/*&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * XZ decompressor&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Authors: Lasse Collin &amp;lt;lasse.collin@tukaani.org&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Igor Pavlov &amp;lt;http://7-zip.org/&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * This file has been put into the public domain.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * You can do whatever you want with this file.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; */&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;Java IconLoader class&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright (c) 2011, Chris Molini&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;All rights reserved.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Redistribution and use in source and binary forms, with or without&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;modification, are permitted provided that the following conditions are met:&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Redistributions of source code must retain the above copyright&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; notice, this list of conditions and the following disclaimer.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Redistributions in binary form must reproduce the above copyright&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; notice, this list of conditions and the following disclaimer in the&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; documentation and/or other materials provided with the distribution.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Neither the name of the &amp;lt;organization&amp;gt; nor the&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; names of its contributors may be used to endorse or promote products&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; derived from this software without specific prior written permission.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;DISCLAIMED. IN NO EVENT SHALL &amp;lt;COPYRIGHT HOLDER&amp;gt; BE LIABLE FOR ANY&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+175"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;We keep MultiMC open source because we think it&apos;s important to be able to see the source code for a project like this, and we do so using the Apache license.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Part of the reason for using the Apache license is we don&apos;t want people using the &amp;quot;MultiMC&amp;quot; name when redistributing the project. This means people must take the time to go through the source code and remove all references to &amp;quot;MultiMC&amp;quot;, including but not limited to the project icon and the title of windows, (no *MultiMC-fork* in the title).&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;The Apache license covers reasonable use for the name - a mention of the project&apos;s origins in the About dialog and the license is acceptable. However, it should be abundantly clear that the project is a fork &lt;span style=&quot; font-weight:600;&quot;&gt;without&lt;/span&gt; implying that you have our blessing.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Nous gardons MultiMC open source parce que nous pensons qu&apos;il est important d&apos;être en mesure de voir le code source d&apos;un projet comme celui-ci, et nous le faisons en utilisant la licence Apache.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Une partie de la raison de l&apos;utilisation de la licence Apache est que nous ne voulons pas que les gens utilise le nom &amp;quot;MultiMC&amp;quot; lors de la redistribution du projet. Cela signifie que les gens doivent prendre le temps de parcourir le code source et de supprimer toutes les références à &amp;quot;MultiMC&amp;quot;, y compris mais non limité à l&apos;icône du projet et le titre des fenêtres (pas de * MultiMC-fork * dans le titre).&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;La licence Apache couvre l&apos;utilisation raisonnable pour le nom - Une mention de l&apos;origine du projet dans la boîte de dialogue &quot;À propos&quot; et la licence est acceptable. Cependant, il devrait être clair que le projet est un fork &lt;span style=&quot; font-weight:600;&quot;&gt;sans que cela&lt;/span&gt; implique que vous avez notre bénédiction.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:7.8pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600;&quot;&gt;MultiMC&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Andrew Okin &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:forkk@forkk.net&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;forkk@forkk.net&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Petr Mrázek &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:peterix@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;peterix@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Sky &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://www.twitter.com/drayshak&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@drayshak&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt; font-weight:600;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Ubuntu&apos;; font-size:10pt; font-weight:600;&quot;&gt;With thanks to&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Orochimarufan &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:orochimarufan.x3@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;orochimarufan.x3@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;TakSuyu &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:taksuyu@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;taksuyu@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Kilobyte &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:stiepen22@gmx.de&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;stiepen22@gmx.de&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Jan (02JanDal) &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:02jandal@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;02jandal@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Robotbrain &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/skylordelros&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@skylordelros&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Rootbear75 &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/rootbear75&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@rootbear75&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt; (build server)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:7.8pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600;&quot;&gt;MultiMC:&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Andrew Okin &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:forkk@forkk.net&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;forkk@forkk.net&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Petr Mrázek &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:peterix@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;peterix@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Sky &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://www.twitter.com/drayshak&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@drayshak&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt; font-weight:600;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Ubuntu&apos;; font-size:10pt; font-weight:600;&quot;&gt;Remerciements à:&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Orochimarufan &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:orochimarufan.x3@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;orochimarufan.x3@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;TakSuyu &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:taksuyu@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;taksuyu@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Kilobyte &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:stiepen22@gmx.de&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;stiepen22@gmx.de&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Jan (02JanDal) &amp;lt;&lt;/span&gt;&lt;a href=&quot;mailto:02jandal@gmail.com&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;02jandal@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Robotbrain &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/skylordelros&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@skylordelros&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Rootbear75 &amp;lt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/rootbear75&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;@rootbear75&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&amp;gt; (Créateur du serveur)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="-214"/>
+ <source>No Language file loaded.</source>
+ <extracomment>Hey, Translator, feel free to put credit to you here</extracomment>
+ <translation>Traduction FR par un mystérieu inconnu au coeur gros comme une montagne :p .</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans Mono&apos;; font-size:7.8pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;MultiMC&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Copyright 2012-2014 MultiMC Contributors&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;you may not use this file except in compliance with the License.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;You may obtain a copy of the License at&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; http://www.apache.org/licenses/LICENSE-2.0&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Unless required by applicable law or agreed to in writing, software&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;See the License for the specific language governing permissions and&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;limitations under the License.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;QSLog&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright (c) 2010, Razvan Petru&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;All rights reserved.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Redistribution and use in source and binary forms, with or without modification,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;are permitted provided that the following conditions are met:&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;* Redistributions of source code must retain the above copyright notice, this&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; list of conditions and the following disclaimer.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;* Redistributions in binary form must reproduce the above copyright notice, this&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; list of conditions and the following disclaimer in the documentation and/or other&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; materials provided with the distribution.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;* The name of the contributors may not be used to endorse or promote products&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; derived from this software without specific prior written permission.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;OF THE POSSIBILITY OF SUCH DAMAGE.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;Group View (instance view)&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; /*&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Copyright (C) 2007 Rafael Fernández López &amp;lt;ereslibre@kde.org&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Copyright (C) 2007 John Tapsell &amp;lt;tapsell@kde.org&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * This library is free software; you can redistribute it and/or&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * modify it under the terms of the GNU Library General Public&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * License as published by the Free Software Foundation; either&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * version 2 of the License, or (at your option) any later version.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * This library is distributed in the hope that it will be useful,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Library General Public License for more details.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * You should have received a copy of the GNU Library General Public License&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * along with this library; see the file COPYING.LIB. If not, write to&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Boston, MA 02110-1301, USA.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; */&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;Pack200&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The GNU General Public License (GPL)&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Version 2, June 1991&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;+ &amp;quot;CLASSPATH&amp;quot; EXCEPTION TO THE GPL&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Certain source files distributed by Oracle America and/or its affiliates are&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;subject to the following clarification and special exception to the GPL, but&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;only where Oracle has expressly included in the particular source file&apos;s header&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;the words &amp;quot;Oracle designates this particular file as subject to the &amp;quot;Classpath&amp;quot;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;exception as provided by Oracle in the LICENSE file that accompanied this code.&amp;quot;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; Linking this library statically or dynamically with other modules is making&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; a combined work based on this library. Thus, the terms and conditions of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; the GNU General Public License cover the whole combination.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; As a special exception, the copyright holders of this library give you&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; permission to link this library with independent modules to produce an&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; executable, regardless of the license terms of these independent modules,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; and to copy and distribute the resulting executable under terms of your&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; choice, provided that you also meet, for each linked independent module,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; the terms and conditions of the license of that module. An independent&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; module is a module which is not derived from or based on this library. If&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; you modify this library, you may extend this exception to your version of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; the library, but you are not obligated to do so. If you do not wish to do&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; so, delete this exception statement from your version.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;Quazip&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Copyright (C) 2005-2011 Sergey A. Tachenov&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;This program is free software; you can redistribute it and/or modify it&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;under the terms of the GNU Lesser General Public License as published by&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;the Free Software Foundation; either version 2 of the License, or (at&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;your option) any later version.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;This program is distributed in the hope that it will be useful, but&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;General Public License for more details.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You should have received a copy of the GNU Lesser General Public License&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;along with this program; if not, write to the Free Software Foundation,&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;See COPYING file for the full LGPL text.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Original ZIP package is copyrighted by Gilles Vollant, see&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;quazip/(un)zip.h files for details, basically it&apos;s zlib license.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:18pt; font-weight:600;&quot;&gt;xz-minidec&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;/*&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * XZ decompressor&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Authors: Lasse Collin &amp;lt;lasse.collin@tukaani.org&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * Igor Pavlov &amp;lt;http://7-zip.org/&amp;gt;&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; *&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * This file has been put into the public domain.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; * You can do whatever you want with this file.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; */&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+208"/>
+ <source>Forking/Redistribution</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:7.8pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;We keep MultiMC open source because we think it&apos;s important to be able to see the source code for a project like this, and we do so using the Apache license.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;Part of the reason for using the Apache license is we don&apos;t want people using the &amp;quot;MultiMC&amp;quot; name when redistributing the project. This means people must take the time to go through the source code and remove all references to &amp;quot;MultiMC&amp;quot;, including but not limited to the project icon and the title of windows, (no *MultiMC-fork* in the title).&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;The Apache license covers reasonable use for the name - a mention of the project&apos;s origins in the About dialog and the license is acceptable. However, it should be abundantly clear that the project is a fork &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt; font-weight:600;&quot;&gt;without&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt; implying that you have our blessing.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:7.8pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;Nous gardons MultiMC open source parce que nous pensons qu&apos;il est important d&apos;être en mesure de voir le code source d&apos;un projet comme celui-ci, et nous le faisons en utilisant la licence Apache.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;Une partie de la raison de l&apos;utilisation de la licence Apache est que nous ne voulons pas que les gens utilise le nom &amp;quot;MultiMC&amp;quot; lors de la redistribution du projet. Cela signifie que les gens doivent prendre le temps de parcourir le code source et de supprimer toutes les références à &amp;quot;MultiMC&amp;quot;, y compris mais non limité à l&apos;icône du projet et le titre des fenêtres (pas de * MultiMC-fork * dans le titre).&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Bitstream Vera Sans&apos;; font-size:11pt;&quot;&gt;La licence Apache couvre l&apos;utilisation raisonnable pour le nom - Une mention de l&apos;origine du projet dans la boîte de dialogue &quot;À propos&quot; et la licence est acceptable. Cependant, il devrait être clair que le projet est un fork &lt;span style=&quot; font-weight:600;&quot;&gt;sans que cela&lt;/span&gt; implique que vous avez notre bénédiction.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="-242"/>
+ <source>Credits</source>
+ <translation>Crédits</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>License</source>
+ <translation>Licence</translation>
+ </message>
+ <message>
+ <location line="+222"/>
+ <source>About Qt</source>
+ <translation>À propos de Qt</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Close</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/AboutDialog.cpp" line="+33"/>
+ <source>Version</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Version Type</source>
+ <translation>Type de version</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Platform</source>
+ <translation>Plateforme</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Build Number</source>
+ <translation>Build numéro</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Channel</source>
+ <translation>Canal</translation>
+ </message>
+</context>
+<context>
+ <name>AccountListDialog</name>
+ <message>
+ <location filename="../gui/dialogs/AccountListDialog.ui" line="+14"/>
+ <source>Manage Accounts</source>
+ <translation>Gestion des comptes</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Welcome! If you&apos;re new here, you can click the &amp;quot;Add&amp;quot; button to add your Mojang or Minecraft account.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bienvenu! Si vous êtes nouveau, Vous pouvez cliquer sur le bouton &amp;quot;Ajouter&amp;quot; pour ajouter votre compte Mojang ou Minecraft.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>&amp;Add</source>
+ <translation>&amp;Ajouter</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>&amp;Remove</source>
+ <translation>&amp;Supprimer</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Set the currently selected account as the active account. The active account is the account that is used to log in (unless it is overridden in an instance-specific setting).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Réglez le compte actuellement sélectionné comme le compte actif. Le compte actif est le compte qui est utilisé pour se connecter (sauf si elle est remplacée pour une instance spécifique).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Set Default</source>
+ <translation>&amp;Définir compte par défaut</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Set no default account. This will cause MultiMC to prompt you to select an account every time you launch an instance that doesn&apos;t have its own default set.</source>
+ <translation>Ne pas fixer de compte par défaut. Cela fera que MultiMC vous invitera à sélectionner un compte à chaque fois que vous lancez une instance qui ne possède pas son propre compte par défaut.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;No Default</source>
+ <translation>&amp;Pas de compte par défaut</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/AccountListDialog.cpp" line="+71"/>
+ <source>Please enter your Mojang or Minecraft account username and password to add your account.</source>
+ <translation>Veuillez entrer le nom d&apos;utilisateur et le mot de passe de votre compte Mojang ou Minecraft pour ajouter celui-ci.</translation>
+ </message>
+ <message>
+ <location line="+84"/>
+ <source>Login error.</source>
+ <translation>Erreur de connexion.</translation>
+ </message>
+</context>
+<context>
+ <name>AccountSelectDialog</name>
+ <message>
+ <location filename="../gui/dialogs/AccountSelectDialog.ui" line="+14"/>
+ <source>Select an Account</source>
+ <translation>Sélectionnez un compte</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Select an account.</source>
+ <translation>Sélectionnez un compte.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Use as default?</source>
+ <translation>Utiliser par défaut?</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Use as default for this instance only?</source>
+ <translation>Utiliser par défaut pour cette instance seulement?</translation>
+ </message>
+</context>
+<context>
+ <name>AssetsMigrateTask</name>
+ <message>
+ <location filename="../logic/assets/AssetsMigrateTask.cpp" line="+19"/>
+ <source>Migrating legacy assets...</source>
+ <translation>Migration des anciens assets...</translation>
+ </message>
+</context>
+<context>
+ <name>AuthenticateTask</name>
+ <message>
+ <location filename="../logic/auth/flows/AuthenticateTask.cpp" line="+197"/>
+ <source>Authenticating: Sending request...</source>
+ <translation>Authentification: Envoi de la requête...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Authenticating: Processing response...</source>
+ <translation>Authentification: Traitement de la réponse...</translation>
+ </message>
+</context>
+<context>
+ <name>BaseExternalTool</name>
+ <message>
+ <location filename="../logic/tools/BaseExternalTool.cpp" line="+48"/>
+ <source>MCEdit</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Choose which world to open:</source>
+ <translation>Choisissez quel monde à ouvrir:</translation>
+ </message>
+</context>
+<context>
+ <name>BaseProfiler</name>
+ <message>
+ <location filename="../logic/tools/BaseProfiler.cpp" line="+29"/>
+ <source>Profiler aborted</source>
+ <translation>Profiler avorté</translation>
+ </message>
+</context>
+<context>
+ <name>ConsoleWindow</name>
+ <message>
+ <location filename="../gui/ConsoleWindow.ui" line="+14"/>
+ <source>MultiMC Console</source>
+ <translation>Console MultiMC</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>Upload Log</source>
+ <translation>Envoyer les logs</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Manage Screenshots</source>
+ <translation>Gérer les captures d&apos;écrans</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>&amp;Kill Minecraft</source>
+ <translation>&amp;Tuer le processus</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Fermer</translation>
+ </message>
+ <message>
+ <source>Kill Minecraft</source>
+ <translation>Tuer le processus</translation>
+ </message>
+ <message>
+ <location filename="../gui/ConsoleWindow.cpp" line="+58"/>
+ <source>Console window for </source>
+ <translation>Console windows pour </translation>
+ </message>
+ <message>
+ <location line="+120"/>
+ <source>Close</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Hide</source>
+ <translation>Masquer</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Kill Minecraft?</source>
+ <translation>Tuer le processus?</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>This can cause the instance to get corrupted and should only be used if Minecraft is frozen for some reason</source>
+ <translation>Cela peut provoquer la corruption de l&apos;instance et doit être utilisé uniquement si Minecraft est gelé pour de bonne raison</translation>
+ </message>
+</context>
+<context>
+ <name>CopyInstanceDialog</name>
+ <message>
+ <location filename="../gui/dialogs/CopyInstanceDialog.ui" line="+17"/>
+ <source>Copy Instance</source>
+ <translation>Copier l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+</context>
+<context>
+ <name>DownloadUpdateTask</name>
+ <message>
+ <location filename="../logic/updater/DownloadUpdateTask.cpp" line="+83"/>
+ <source>Finding information about the current version...</source>
+ <translation>Recherche d&apos;informations sur la version actuelle...</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Loading version information...</source>
+ <translation>Chargement des informations de la version...</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <source>Failed to download version info files.</source>
+ <translation>Impossible de télécharger les fichiers d&apos;information de la version.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Reading file list for new version...</source>
+ <translation>lectures de la liste de fichier pour la nouvelle version...</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Reading file list for current version...</source>
+ <translation>lectures de la liste de fichier pour la version actuelle...</translation>
+ </message>
+ <message>
+ <location line="+90"/>
+ <source>Failed to process update lists...</source>
+ <translation>Impossible de traiter la liste de mise à jour...</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Downloading %1 update files.</source>
+ <translation>Téléchargement de %1 fichiers de mise à jour.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Processing file lists - figuring out how to install the update...</source>
+ <translation>Traitement des listes de fichier - déterminer comment installer la mise à jour ...</translation>
+ </message>
+ <message>
+ <location line="+216"/>
+ <source>Failed to write update script file.</source>
+ <translation>Impossible d&apos;écrire le fichier de script de mise à jour.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Failed to download update files.</source>
+ <translation>Impossible de télécharger les fichiers de mise à jour.</translation>
+ </message>
+</context>
+<context>
+ <name>EditAccountDialog</name>
+ <message>
+ <location filename="../gui/dialogs/EditAccountDialog.ui" line="+14"/>
+ <source>Edit Account</source>
+ <translation>Éditer le compte</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Message label placeholder.</source>
+ <translation>Espace réservé pour le méssage du label.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Email / Username</source>
+ <translation>E-Mail / Nom d&apos;utilisateur</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Password</source>
+ <translation>Mot de passe</translation>
+ </message>
+</context>
+<context>
+ <name>EditNotesDialog</name>
+ <message>
+ <location filename="../gui/dialogs/EditNotesDialog.ui" line="+14"/>
+ <source>Edit Notes</source>
+ <translation>Editer les notes</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/EditNotesDialog.cpp" line="+30"/>
+ <source>Edit notes of %1</source>
+ <translation>Editer les notes de %1</translation>
+ </message>
+</context>
+<context>
+ <name>ForgeInstallTask</name>
+ <message>
+ <location filename="../logic/ForgeInstaller.cpp" line="+249"/>
+ <source>Installing forge...</source>
+ <translation>Installation de Forge...</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Unknown error occured</source>
+ <translation>Une erreur inconnue s&apos;est produite</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Failure to download forge</source>
+ <translation>Le téléchargement de Forge a échoué</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+14"/>
+ <source>Failure to install forge</source>
+ <translation>L&apos;installation de Forge a échoué</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Failed to load the version description file for reasons unknown.</source>
+ <translation>Impossible de charger le fichier de description de la version pour des raisons inconnue.</translation>
+ </message>
+</context>
+<context>
+ <name>ForgeListLoadTask</name>
+ <message>
+ <location filename="../logic/lists/ForgeVersionList.cpp" line="+161"/>
+ <source>Fetching Forge version lists...</source>
+ <translation>Liste de comparaison des versions de Forge...</translation>
+ </message>
+</context>
+<context>
+ <name>IconPickerDialog</name>
+ <message>
+ <location filename="../gui/dialogs/IconPickerDialog.ui" line="+14"/>
+ <source>Pick icon</source>
+ <translation>Choisir l&apos;icone</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/IconPickerDialog.cpp" line="+64"/>
+ <source>Add Icon</source>
+ <translation>Ajouter l&apos;icone</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Remove Icon</source>
+ <translation>Supprimer l&apos;icone</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Select Icons</source>
+ <extracomment>The title of the select icons open file dialog</extracomment>
+ <translation>Sélectionnez l&apos;icone</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Icons</source>
+ <extracomment>The type of icon files</extracomment>
+ <translation>Icone</translation>
+ </message>
+</context>
+<context>
+ <name>InstanceSettings</name>
+ <message>
+ <location filename="../gui/dialogs/InstanceSettings.ui" line="+14"/>
+ <source>Instance Settings</source>
+ <translation>Options de l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Minecraft</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Window Size</source>
+ <translation>Taille de la fenêtre</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Start Minecraft maximized?</source>
+ <translation>Démarrer minecraft en plein écran?</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Window height:</source>
+ <translation>Hauteur:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Window width:</source>
+ <translation>Largeur:</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Console Settings</source>
+ <translation>Options de la console</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Show console while the game is running?</source>
+ <translation>Afficher la console quand le jeu est lancé ?</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Automatically close console when the game quits?</source>
+ <translation>Fermer automatiquement la console à la fermeture du jeu?</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>The maximum amount of memory Minecraft is allowed to use.</source>
+ <translation>La quantité maximale de mémoire que Minecraft est autorisé à utiliser.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+36"/>
+ <location line="+22"/>
+ <source> MB</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <source>The amount of memory Minecraft is started with.</source>
+ <translation>La quantité de mémoire avec laquelle minecraft démarre.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>The amount of memory available to store loaded Java classes.</source>
+ <translation>La quantité de mémoire disponible pour stocker et charger les classes Java.</translation>
+ </message>
+ <message>
+ <location line="+74"/>
+ <source>Browse...</source>
+ <translation>Parcourir...</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Auto-detect...</source>
+ <translation>Auto-détection...</translation>
+ </message>
+ <message>
+ <source>Account Settings</source>
+ <translation>Options de compte</translation>
+ </message>
+ <message>
+ <source>Login automatically when an instance icon is double clicked?</source>
+ <translation>Se connecter automatiquement quand un double clic est effectué sur une icone d&apos;instance?</translation>
+ </message>
+ <message>
+ <location line="-160"/>
+ <source>Java</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Memory</source>
+ <translation>Mémoire</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>Minimum memory allocation:</source>
+ <translation>Min. mémoire alloué:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Maximum memory allocation:</source>
+ <translation>Max. mémoire alloué:</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <source>PermGen:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Java Settings</source>
+ <translation>Options Java</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Test</source>
+ <translation>Test</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Java path:</source>
+ <translation>Dossier de Java:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>JVM arguments:</source>
+ <translation>Arguments JVM:</translation>
+ </message>
+ <message>
+ <source>Auto-detect</source>
+ <translation>Auto-détection</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Custom Commands</source>
+ <translation>Commandes personnalisées</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Post-exit command:</source>
+ <translation>Commande post-arrêt:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Pre-launch command:</source>
+ <translation>Commande prè-lancement:</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Pre-launch command runs before the instance launches and post-exit command runs after it exits. Both will be run in MultiMC&apos;s working directory with INST_ID, INST_DIR, and INST_NAME as environment variables.</source>
+ <translation>La commande de Pré-lancement s&apos;exécute avant l&apos;instance et la commande post-sortie s&apos;exécute après sa sortie. Les deux seront exploités dans le répertoire de travail de MultiMC avec INST_ID, INST_DIR, et INST_NAME comme variables d&apos;environnement.</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/InstanceSettings.cpp" line="+195"/>
+ <source>Select a Java version</source>
+ <translation>Sélectionner la version de Java</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Find Java executable</source>
+ <translation>Trouver l&apos;exécutable de Java</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Java test success</source>
+ <translation>Test de Java avec succès</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Java test failure</source>
+ <translation>Test de Java echec</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The specified java binary didn&apos;t work. You should use the auto-detect feature, or set the path to the java executable.</source>
+ <translation>Le binaire java spécifiée n&apos;a pas fonctionné. Vous devez utiliser la fonction d&apos;auto-détection, ou définir le chemin vers l&apos;exécutable java.</translation>
+ </message>
+</context>
+<context>
+ <name>JProfiler</name>
+ <message>
+ <location filename="../logic/tools/JProfiler.cpp" line="+24"/>
+ <source>Listening on port: %1</source>
+ <translation>Écoute sur le port: %1</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Profiler aborted</source>
+ <translation>Profiler avorté</translation>
+ </message>
+</context>
+<context>
+ <name>JVisualVM</name>
+ <message>
+ <location filename="../logic/tools/JVisualVM.cpp" line="+21"/>
+ <source>JVisualVM started</source>
+ <translation>JVisualVM démarré</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Profiler aborted</source>
+ <translation>Profiler avorté</translation>
+ </message>
+</context>
+<context>
+ <name>JavaListLoadTask</name>
+ <message>
+ <location filename="../logic/lists/JavaVersionList.cpp" line="+175"/>
+ <source>Detecting Java installations...</source>
+ <translation>Détection de l&apos;installation de Java...</translation>
+ </message>
+</context>
+<context>
+ <name>LLListLoadTask</name>
+ <message>
+ <location filename="../logic/lists/LiteLoaderVersionList.cpp" line="+103"/>
+ <source>Loading LiteLoader version list...</source>
+ <translation>Chargement de la liste des versions de LiteLoader...</translation>
+ </message>
+ <message>
+ <location line="+67"/>
+ <source>This is a lightweight loader for mods that don&apos;t change game mechanics.</source>
+ <translation>Il s&apos;agit d&apos;un chargeur léger pour les mods qui ne changent pas les mécaniques du jeu.</translation>
+ </message>
+</context>
+<context>
+ <name>LWJGLSelectDialog</name>
+ <message>
+ <location filename="../gui/dialogs/LwjglSelectDialog.ui" line="+14"/>
+ <source>Manage Lwjgl Versions</source>
+ <translation>Gérer les version de LWJGL</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Status label...</source>
+ <translation>Statut du label...</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&amp;Refresh</source>
+ <translation>&amp;Actualiser</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/LwjglSelectDialog.cpp" line="+61"/>
+ <source>Loading LWJGL version list...</source>
+ <translation>Chargement de la liste des versions de LWJGL...</translation>
+ </message>
+</context>
+<context>
+ <name>LegacyModEditDialog</name>
+ <message>
+ <location filename="../gui/dialogs/LegacyModEditDialog.ui" line="+14"/>
+ <source>Edit Mods</source>
+ <translation>Editer Mods</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Jar Mods</source>
+ <translation>Jar Mods</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location line="+77"/>
+ <location line="+69"/>
+ <location line="+70"/>
+ <source>&amp;Add</source>
+ <translation>&amp;Ajouter</translation>
+ </message>
+ <message>
+ <location line="-209"/>
+ <location line="+77"/>
+ <location line="+69"/>
+ <location line="+70"/>
+ <source>&amp;Remove</source>
+ <translation>&amp;Supprimer</translation>
+ </message>
+ <message>
+ <location line="-209"/>
+ <source>MCForge</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Move &amp;Up</source>
+ <translation>Vers le &amp;Haut</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Move &amp;Down</source>
+ <translation>Vers le &amp;Bas</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Core Mods</source>
+ <translation>Core mods</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <location line="+69"/>
+ <location line="+70"/>
+ <source>&amp;View Folder</source>
+ <translation>&amp;Voir le dossier</translation>
+ </message>
+ <message>
+ <location line="-117"/>
+ <source>Loader Mods</source>
+ <translation>Mods Normaux</translation>
+ </message>
+ <message>
+ <location line="+72"/>
+ <source>Texture Packs</source>
+ <translation>Pack de ressource</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/OneSixModEditDialog.cpp" line="+325"/>
+ <location filename="../gui/dialogs/LegacyModEditDialog.cpp" line="+258"/>
+ <source>Select Loader Mods</source>
+ <extracomment>Title of regular mod selection dialog</extracomment>
+ <translation>Sélectionner les Mods Normaux</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Select Resource Packs</source>
+ <translation>Sélectionner le Pack de ressource</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/LegacyModEditDialog.cpp" line="-58"/>
+ <source>Select Core Mods</source>
+ <extracomment>Title of core mod selection dialog</extracomment>
+ <translation>Sélectionner le Core Mods</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Select Forge version</source>
+ <translation>Sélectionner la version de Forge</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Select Jar Mods</source>
+ <extracomment>Title of jar mod selection dialog</extracomment>
+ <translation>Sélectionner le Mods Jar</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Select Texture Packs</source>
+ <extracomment>Title of texture pack selection dialog</extracomment>
+ <translation>Sélectionner le pack de texture</translation>
+ </message>
+</context>
+<context>
+ <name>LegacyUpdate</name>
+ <message>
+ <location filename="../logic/LegacyUpdate.cpp" line="+80"/>
+ <source>Downloading new LWJGL...</source>
+ <translation>Téléchargement d&apos;un nouveau LWJGL...</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>Installing new LWJGL...</source>
+ <translation>Installation d&apos;un nouveau LWJGL...</translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Installing new LWJGL - extracting </source>
+ <translation>Installation d&apos;un nouveau LWJGL - extraction</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Checking for jar updates...</source>
+ <translation>Vérification des mises à jours du jar...</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Downloading new minecraft.jar ...</source>
+ <translation>Téléchargement du nouveau minecraft.jar...</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Installing mods: Adding </source>
+ <translation>Installation des mods: Ajout </translation>
+ </message>
+ <message>
+ <location line="+86"/>
+ <source>Installing mods: Backing up minecraft.jar ...</source>
+ <translation>Installation des mods: Sauvegarde du minecraft.jar ...</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Installing mods: Opening minecraft.jar ...</source>
+ <translation>Installation des mods: ouverture de minecraft.jar ...</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Installing mods: Adding mod files...</source>
+ <translation>Installation des mods: Ajout des fichiers du mod...</translation>
+ </message>
+</context>
+<context>
+ <name>LiteLoaderInstallTask</name>
+ <message>
+ <location filename="../logic/LiteLoaderInstaller.cpp" line="+115"/>
+ <source>For reasons unknown, the LiteLoader installation failed. Check your MultiMC log files for details.</source>
+ <translation>Pour des raisons inconnue, l&apos;installation de LiteLoader a échoué. Vérifiez vos fichiers logs de MultiMC pour plus de détails.</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Failed to load the version description file for reasons unknown.</source>
+ <translation>Impossible de charger le fichier de description de la version pour des raisons inconnue.</translation>
+ </message>
+</context>
+<context>
+ <name>LoginDialog</name>
+ <message>
+ <source>Login</source>
+ <translation>Connexion</translation>
+ </message>
+ <message>
+ <source>Username:</source>
+ <translation>Nom d&apos;utilisateur:</translation>
+ </message>
+ <message>
+ <source>Password:</source>
+ <translation>Mot de passe:</translation>
+ </message>
+ <message>
+ <source>Password</source>
+ <translation>Mot de passe</translation>
+ </message>
+ <message>
+ <source>Forget</source>
+ <translation>Oublier</translation>
+ </message>
+ <message>
+ <source>&amp;Remember Username?</source>
+ <translation>&amp;Se souvenir du nom d&apos;utilisateur?</translation>
+ </message>
+ <message>
+ <source>R&amp;emember Password?</source>
+ <translation>&amp;Se souvenir du mot de passe?</translation>
+ </message>
+ <message>
+ <source>Offline Once</source>
+ <extracomment>Use offline mode one time</extracomment>
+ <translation>Hors ligne 1 fois</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <extracomment>The username during login (placeholder)</extracomment>
+ <translation>Nom</translation>
+ </message>
+</context>
+<context>
+ <name>LoginTask</name>
+ <message>
+ <source>Logging in...</source>
+ <translation>Connexion en cour...</translation>
+ </message>
+ <message>
+ <source>Invalid username or password.</source>
+ <translation>Nom d&apos;utilisateur ou mots de passe incorrect.</translation>
+ </message>
+ <message>
+ <source>Launcher outdated, please update.</source>
+ <translation>Le lanceur n&apos;est pas à jour, mettez le à jour s&apos;il vous plaît.</translation>
+ </message>
+ <message>
+ <source>Login failed: %1</source>
+ <translation>Échec de la connexion: %1</translation>
+ </message>
+ <message>
+ <source>The login servers are currently unavailable. Check http://help.mojang.com/ for more info.</source>
+ <translation>Le serveur de connexion est actuellement indisponible. Visitez http://help.mojang.com/ pour plus d&apos;information.</translation>
+ </message>
+ <message>
+ <source>Login failed: Unknown HTTP error %1 occurred.</source>
+ <translation>Échec de la connexion: Une erreur inconnue HTTP %1 est survenue.</translation>
+ </message>
+ <message>
+ <source>Login canceled.</source>
+ <translation>Connexion annulé.</translation>
+ </message>
+</context>
+<context>
+ <name>MCModInfoFrame</name>
+ <message>
+ <location filename="../gui/widgets/MCModInfoFrame.ui" line="+26"/>
+ <source>Frame</source>
+ <translation>Cadre</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location filename="../gui/widgets/MCModInfoFrame.cpp" line="+54"/>
+ <source>Select a mod to view title and authors...</source>
+ <translation>Sélectionnez un mod pour voir son titre et ses auteurs...</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <location filename="../gui/widgets/MCModInfoFrame.cpp" line="+1"/>
+ <source>Select a mod to view description...</source>
+ <translation>Sélectionnez un mod pour voir sa description...</translation>
+ </message>
+ <message>
+ <location filename="../gui/widgets/MCModInfoFrame.cpp" line="-11"/>
+ <source>No description provided in mcmod.info</source>
+ <translation>Aucune description disponible dans mcmod.info</translation>
+ </message>
+</context>
+<context>
+ <name>MCVListLoadTask</name>
+ <message>
+ <location filename="../logic/lists/MinecraftVersionList.cpp" line="+146"/>
+ <source>Loading instance version list...</source>
+ <translation>Chargement de la liste des versions des instances...</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../gui/MainWindow.ui" line="+14"/>
+ <source>MultiMC 5</source>
+ <translation>MultiMC 5</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Main Toolbar</source>
+ <translation>Barre d&apos;outils principale</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Instance Toolbar</source>
+ <translation>Barre d&apos;outils des instances</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>News Toolbar</source>
+ <translation>Nouvelles barre d&apos;outils</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Add Instance</source>
+ <translation>Ajouter une instance</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <location line="+342"/>
+ <source>Add a new instance.</source>
+ <translation>Ajouter une nouvelle instance.</translation>
+ </message>
+ <message>
+ <location line="-332"/>
+ <source>View Instance Folder</source>
+ <translation>Voir le dossier des instances</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Open the instance folder in a file browser.</source>
+ <translation>Ouvrir le dossier de l&apos;instance dans un navigateur de fichiers.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Refresh</source>
+ <translation>Actualiser</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Reload the instance list.</source>
+ <translation>Actualiser la liste des instances.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>View Central Mods Folder</source>
+ <translation>Voir le dossier central des Mods</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Open the central mods folder in a file browser.</source>
+ <translation>Ouvrir le dossier central des mods dans un navigateur de fichiers.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Check for Updates</source>
+ <translation>Vérifier les mises à jour</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Check for new updates for MultiMC</source>
+ <translation>Vérifier les mises à jour pour MultiMC</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+136"/>
+ <source>Settings</source>
+ <translation>Options</translation>
+ </message>
+ <message>
+ <location line="-133"/>
+ <location line="+3"/>
+ <source>Change settings.</source>
+ <translation>Modifier les options.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Report a Bug</source>
+ <translation>Reporter un bug</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Open the bug tracker to report a bug with MultiMC.</source>
+ <translation>Ouvrir le traqueur de bug pour reporter un bug avec MultiMC.</translation>
+ </message>
+ <message>
+ <source>News</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Open the MultiMC dev blog to read news about MultiMC.</source>
+ <translation>Ouvrir le dev blogue MultiMC pour lire les nouvelles sur MultiMC.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>More News</source>
+ <translation>Plus de nouvelles</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>More news...</source>
+ <translation>Plus de nouvelles...</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Open the MultiMC development blog to read more news about MultiMC.</source>
+ <translation>Ouvrez le blog de ​​développement MultiMC pour lire plus de nouvelles sur MultiMC.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+6"/>
+ <source>About MultiMC</source>
+ <translation>À propos de MultiMC</translation>
+ </message>
+ <message>
+ <location line="-3"/>
+ <source>View information about MultiMC.</source>
+ <translation>Voir les informations à propos de MultiMC.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Play</source>
+ <translation>Jouer</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <location line="+213"/>
+ <source>Launch the selected instance.</source>
+ <translation>Lancer l&apos;instance sélectionné.</translation>
+ </message>
+ <message>
+ <location line="-208"/>
+ <source>Instance Name</source>
+ <translation>Nom de l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Rename the selected instance.</source>
+ <translation>Renommer l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Change Group</source>
+ <translation>Changer le groupe</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Change the selected instance&apos;s group.</source>
+ <translation>Changer le groupe de l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Change Icon</source>
+ <translation>Changer l&apos;icone</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Change the selected instance&apos;s icon.</source>
+ <translation>Changer l&apos;icone de l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Edit Notes</source>
+ <translation>Éditer les notes</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Edit the notes for the selected instance.</source>
+ <translation>Éditer les notes de l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <location line="+3"/>
+ <source>Change settings for the selected instance.</source>
+ <translation>Changer les options de l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Make Shortcut</source>
+ <translation>Créer un raccourci</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Make a shortcut on the desktop for the selected instance.</source>
+ <translation>Créer un raccourci sur le bureau de l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Manage Saves</source>
+ <translation>Gérer les sauvegardes</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Manage saves for the selected instance.</source>
+ <translation>Gérer les sauvegardes de l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Edit Mods</source>
+ <translation>Éditer les mods</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Edit the mods for the selected instance.</source>
+ <translation>Éditer les mods pour l&apos;instance séletionnée.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Change Version</source>
+ <translation>Changer la version</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Change the selected instance&apos;s Minecraft version.</source>
+ <translation>Changer la version pour l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Change LWJGL</source>
+ <translation>Changer le LWJGL</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Change the version of LWJGL for the selected instance to use.</source>
+ <translation>Changer la version à utiliser de LWJGL pour l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Instance Folder</source>
+ <translation>Dossier de l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Open the selected instance&apos;s root folder in a file browser.</source>
+ <translation>Ouvrir le dossier racine de l&apos;instance sélectionnée dans un navigateur de fichiers.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Delete</source>
+ <translation>Supprimer</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+3"/>
+ <source>Delete the selected instance.</source>
+ <translation>Supprimer l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Config Folder</source>
+ <translation>Dossier de configuration</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Open the instance&apos;s config folder</source>
+ <translation>Ouvrir le dossier de configuration de l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Meow</source>
+ <translation>Miaou</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;It&apos;s a fluffy kitty :3&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;C&apos;est un minou moelleux :3&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Launch the selected instance in offline mode.</source>
+ <translation>Lancer l&apos;instance sélectionnée en mode hors ligne.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Manage Screenshots</source>
+ <translation>Gérer les captures d&apos;écrans</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;View and upload screenshots for this instance&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Voir et envoyer les captures d&apos;écrans pour cette instance&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="-33"/>
+ <source>Copy Instance</source>
+ <translation>Copier une instance</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Copy the selected instance.</source>
+ <translation>Copier l&apos;instance sélectionnée.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location filename="../gui/MainWindow.cpp" line="+241"/>
+ <source>Manage Accounts</source>
+ <translation>Gérer les comptes</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Manage your Mojang or Minecraft accounts.</source>
+ <translation>Gérer vos comptes Mojang ou Minecraft.</translation>
+ </message>
+ <message>
+ <location filename="../gui/MainWindow.cpp" line="-31"/>
+ <source>No instance selected</source>
+ <translation>Aucune instance sélectionnée</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>No status available</source>
+ <translation>Pas de statut disponible</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Accounts</source>
+ <translation>Comptes</translation>
+ </message>
+ <message>
+ <location line="+74"/>
+ <source>No update found.</source>
+ <translation>Aucune mise à jour trouvée.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>No MultiMC update was found!
+You are using the latest version.</source>
+ <translation>Aucune mise à jour MultiMC a été trouvé!
+Vous utilisez la dernière version.</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Rename</source>
+ <translation>renommer</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location line="+929"/>
+ <source>Launch</source>
+ <translation>Lancer</translation>
+ </message>
+ <message>
+ <location line="-927"/>
+ <source>Profilers</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Profiler not setup correctly. Go into settings, &quot;External Tools&quot;.</source>
+ <translation>Le Profiler n&apos;est pas configuré correctement. Allez dans Paramètres, &quot;Outils externes&quot;.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Tools</source>
+ <translation>Outils</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Tool not setup correctly. Go into settings, &quot;External Tools&quot;.</source>
+ <translation>L&apos;outil n&apos;est pas configuré correctement. Allez dans Paramètres, &quot;Outils externes&quot;.</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>No accounts added!</source>
+ <translation>Pas de comptes ajoutés!</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>No Default Account</source>
+ <translation>Pas de compte par défaut</translation>
+ </message>
+ <message>
+ <location line="+94"/>
+ <source>Loading news...</source>
+ <translation>Chargement des nouvelles ...</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>No news available.</source>
+ <translation>Pas de nouvelles disponibles.</translation>
+ </message>
+ <message>
+ <location line="+190"/>
+ <location line="+71"/>
+ <source>Failed to create instance %1: </source>
+ <translation>Impossible de créer une instance %1: </translation>
+ </message>
+ <message>
+ <location line="-60"/>
+ <location line="+71"/>
+ <source>An instance with the given directory name already exists.</source>
+ <translation>Une instance avec le nom de répertoire donné existe déjà.</translation>
+ </message>
+ <message>
+ <location line="-70"/>
+ <location line="+7"/>
+ <location line="+7"/>
+ <location line="+12"/>
+ <location line="+8"/>
+ <location line="+37"/>
+ <location line="+7"/>
+ <location line="+7"/>
+ <location line="+424"/>
+ <location line="+30"/>
+ <location line="+80"/>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <location line="-613"/>
+ <location line="+71"/>
+ <source>Failed to create the instance directory.</source>
+ <translation>Impossible de créer le répertoire de l&apos;instance.</translation>
+ </message>
+ <message>
+ <location line="-64"/>
+ <location line="+71"/>
+ <source>Unknown instance loader error %1</source>
+ <translation>Erreur de chargement d&apos;une instance inconnu %1</translation>
+ </message>
+ <message>
+ <location line="-49"/>
+ <location line="+585"/>
+ <source>MultiMC cannot download Minecraft or update instances unless you have at least one account added.
+Please add your Mojang or Minecraft account.</source>
+ <translation>MultiMC ne peut pas télécharger ou mettre à jour l&apos;instance Minecraft, sauf si vous avez au moins un compte ajouté.
+S&apos;il vous plaît ajouter votre compte Mojang ou Minecraft.</translation>
+ </message>
+ <message>
+ <location line="-473"/>
+ <source>Group name</source>
+ <translation>Nom du groupe</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Enter a new group name.</source>
+ <translation>Entrez le nom du nouveau groupe.</translation>
+ </message>
+ <message>
+ <location line="+92"/>
+ <source>CAREFUL</source>
+ <translation>ATTENTION</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>This is permanent! Are you sure?
+About to delete: </source>
+ <translation>Etes-vous sûr de vouloir supprimer cette instance définitivement?
+Instance en question: </translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Instance name</source>
+ <translation>Nom de l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Enter a new instance name.</source>
+ <translation>Entrez le nouveau nom de l&apos;instance.</translation>
+ </message>
+ <message>
+ <location line="+99"/>
+ <source>No Accounts</source>
+ <translation>Pas de compte</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>In order to play Minecraft, you must have at least one Mojang or Minecraft account logged in to MultiMC.Would you like to open the account manager to add an account now?</source>
+ <translation>Pour jouer à Minecraft, vous devez avoir au moins un compte Mojang ou Minecraft connecté à MultiMC. Voulez vous ouvrir le gestionnaire de compte pour ajouter un compte maintenant?</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Which account would you like to use?</source>
+ <translation>Quel compte voulez-vous utiliser?</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Your account is currently not logged in. Please enter your password to log in again.</source>
+ <translation>Votre compte n&apos;est actuellement pas connecté. S&apos;il vous plaît, entrez votre mot de passe pour vous connecter à nouveau.</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Player name</source>
+ <translation>Nom du joueur</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Choose your offline mode player name.</source>
+ <translation>Choisissez votre nom de joueur en mode hors ligne.</translation>
+ </message>
+ <message>
+ <location line="+69"/>
+ <source>Couldn&apos;t start profiler: %1</source>
+ <translation>Impossible de démarrer le profiler: %1</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Waiting for profiler...</source>
+ <translation>En attente du profiler...</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The launch of Minecraft itself is delayed until you press the button. This is the right time to setup the profiler, as the profiler server is running now.
+
+%1</source>
+ <translation>Le lancement de Minecraft lui-même est retardée jusqu&apos;à ce que vous appuyez sur le bouton. C&apos;est le bon moment pour installer le profiler, comme le serveur de profiler est en marche maintenant.
+
+%1</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Waiting</source>
+ <translation>Attente</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Couldn&apos;t start the profiler: %1</source>
+ <translation>Impossible de démarrer le profiler: %1</translation>
+ </message>
+ <message>
+ <location line="+294"/>
+ <source>Failed to load screenshots!</source>
+ <translation>Impossible de charger les captures d&apos;écran!</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Done uploading!</source>
+ <translation>Envoi terminé!</translation>
+ </message>
+ <message>
+ <location filename="../gui/MainWindow.ui" line="+5"/>
+ <location filename="../gui/MainWindow.cpp" line="-433"/>
+ <source>Play Offline</source>
+ <translation>Jouer Hors ligne</translation>
+ </message>
+ <message>
+ <location filename="../gui/MainWindow.cpp" line="+150"/>
+ <source>Error updating instance</source>
+ <translation>Erreur de mise à jour de l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>MultiMC Shortcut</source>
+ <translation>Raccourci MultiMC</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Enter a Shortcut Name.</source>
+ <translation>Entrez le nom du raccourci.</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Not useful</source>
+ <translation>Inutile</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>A Dummy Shortcut was created. it will not do anything productive</source>
+ <translation>Un raccourci mannequin a été créé, il ne sera d&apos;aucune utilité</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Change Minecraft version</source>
+ <translation>Changer la version de minecraft</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Are you sure?</source>
+ <translation>Êtes vous sûr?</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>This will remove any library/version customization you did previously. This includes things like Forge install and similar.</source>
+ <translation>Cela permettra d&apos;éliminer toute bibliothèque / Version personnalisation que vous avez fait précédemment. Cela inclut des choses comme les installations de Forge et similaire.</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Instance settings</source>
+ <translation>Options de l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+46"/>
+ <source>Rename Instance</source>
+ <translation>Renommer l&apos;instance</translation>
+ </message>
+ <message>
+ <location line="+79"/>
+ <source>Select a Java version</source>
+ <translation>Sélectionner une version de Java</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Invalid version selected</source>
+ <translation>La version sélectionnée est invalide</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>You didn&apos;t select a valid Java version, so MultiMC will select the default. You can change this in the settings dialog.</source>
+ <translation>Vous n&apos;avez pas sélectionné une version Java valide, alors MultiMC a choisi la version par défaut. Vous pouvez le modifier dans la boîte de dialogue des réglages.</translation>
+ </message>
+</context>
+<context>
+ <name>MinecraftProcess</name>
+ <message>
+ <location filename="../logic/MinecraftProcess.cpp" line="+238"/>
+ <source>Minecraft exited with exitcode %1.</source>
+ <extracomment>Message displayed on instance exit</extracomment>
+ <translation>Minecraft s&apos;est arrété avec le code de d&apos;arrêt %1.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Minecraft crashed with exitcode %1.</source>
+ <extracomment>Message displayed on instance crashed</extracomment>
+ <translation>Minecraft a crashé avec le code d&apos;arrêt %1.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Minecraft was killed by user.</source>
+ <extracomment>Message displayed after the instance exits due to kill request</extracomment>
+ <translation>Le processus de minecraft a été tué par l&apos;utilisateur.</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>The command failed to start</source>
+ <translation>La commande n&apos;a pas pu démarrer</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Running Post-Launch command: %1</source>
+ <translation>Exécution de la commande post-lancement: %1</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Post-Launch command failed with code %1.
+
+</source>
+ <translation>La commande de post-lancement a échoué avec le code %1.
+
+</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Post-Launch command ran successfully.
+
+</source>
+ <translation>Commande de post-lancement exécuté avec succès.
+
+</translation>
+ </message>
+ <message>
+ <location line="-68"/>
+ <source>Running Pre-Launch command: %1</source>
+ <translation>Execution de la commande de prè-lancement: %1</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Pre-Launch command failed with code %1.
+
+</source>
+ <translation>La commande de prè-lancement a échoué avec le code %1.
+
+</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Pre-Launch command ran successfully.
+
+</source>
+ <translation>Commande de prè-lancement exécuté avec succès.
+
+</translation>
+ </message>
+ <message>
+ <location line="+150"/>
+ <source>Could not launch minecraft!</source>
+ <extracomment>Error message displayed if instace can&apos;t start</extracomment>
+ <translation>Impossible de lancer minecraft!</translation>
+ </message>
+</context>
+<context>
+ <name>NewInstanceDialog</name>
+ <message>
+ <location filename="../gui/dialogs/NewInstanceDialog.ui" line="+17"/>
+ <source>New Instance</source>
+ <translation>Nouvelle instance</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Version:</source>
+ <translation>Version:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/NewInstanceDialog.cpp" line="+99"/>
+ <source>Change Minecraft version</source>
+ <translation>Changer la version de minecraft</translation>
+ </message>
+</context>
+<context>
+ <name>NewsEntry</name>
+ <message>
+ <location filename="../logic/news/NewsEntry.cpp" line="+24"/>
+ <location line="+36"/>
+ <source>Untitled</source>
+ <translation>Aucun nom</translation>
+ </message>
+ <message>
+ <location line="-35"/>
+ <location line="+36"/>
+ <source>No content.</source>
+ <translation>Aucun contenu.</translation>
+ </message>
+ <message>
+ <location line="-34"/>
+ <location line="+36"/>
+ <source>Unknown Author</source>
+ <translation>Auteur inconnu</translation>
+ </message>
+</context>
+<context>
+ <name>NotificationDialog</name>
+ <message>
+ <location filename="../gui/dialogs/NotificationDialog.ui" line="+14"/>
+ <source>Dialog</source>
+ <translation>Dialogue</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location line="+7"/>
+ <source>TextLabel</source>
+ <translation>Label du texte</translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <location filename="../gui/dialogs/NotificationDialog.cpp" line="+28"/>
+ <source>Don&apos;t show again</source>
+ <translation>Ne plus montrer</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location filename="../gui/dialogs/NotificationDialog.cpp" line="+1"/>
+ <source>Close</source>
+ <translation>Fermer</translation>
+ </message>
+</context>
+<context>
+ <name>OneSixFTBInstanceForge</name>
+ <message>
+ <source>Downloading Forge...</source>
+ <translation>Téléchargement de Forge...</translation>
+ </message>
+ <message>
+ <source>Installing Forge...</source>
+ <translation>Installation de Forge...</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t load the version config</source>
+ <translation>Impossible de charger la version de la configuration</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t install Forge</source>
+ <translation>Impossible d&apos;installer Forge</translation>
+ </message>
+</context>
+<context>
+ <name>OneSixModEditDialog</name>
+ <message>
+ <source>Dialog</source>
+ <translatorcomment>Am i really responsible for this? yes you are ;p</translatorcomment>
+ <translation>Éditer Mods</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/OneSixModEditDialog.ui" line="+149"/>
+ <source>Loader Mods</source>
+ <translation>Mods</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <location line="+67"/>
+ <source>&amp;Add</source>
+ <translation>&amp;Ajouter</translation>
+ </message>
+ <message>
+ <location line="-232"/>
+ <source>Manage Mods</source>
+ <translation>Gérer les Mods</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Version</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <source>Main Class:</source>
+ <translation>Class principale:</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Replace any current custom version with Minecraft Forge</source>
+ <translation>Remplacer une version personnalisée actuelle avec Minecraft Forge</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Install Forge</source>
+ <translation>Installer Forge</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Install LiteLoader</source>
+ <translation>Installer LiteLoader</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Reload</source>
+ <translation>Recharger</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Remove</source>
+ <translation>Supprimer</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <location line="+10"/>
+ <location line="+10"/>
+ <source>This isn&apos;t implemented yet.</source>
+ <translation>Ce n&apos;est pas encore implémentée.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Reset order</source>
+ <translation>Réinitialiser l&apos;ordre</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>Move up</source>
+ <translation>Déplacer vers le haut</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Move down</source>
+ <translation>Déplacer vers le bas</translation>
+ </message>
+ <message>
+ <source>Create an customized copy of the base version</source>
+ <translation>Créer une copie personnalisée de la version de base</translation>
+ </message>
+ <message>
+ <source>Customize</source>
+ <translation>Personnaliser</translation>
+ </message>
+ <message>
+ <source>Revert to original base version</source>
+ <translation>Revenir à la version d&apos;origine de base</translation>
+ </message>
+ <message>
+ <source>Revert</source>
+ <translation>Revenir</translation>
+ </message>
+ <message>
+ <source>Add new libraries</source>
+ <translation>Ajouter de nouvelles libraries</translation>
+ </message>
+ <message>
+ <source>Remove selected libraries</source>
+ <translation>Retirer les bibliothèques sélectionnées</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <location line="+67"/>
+ <source>&amp;Remove</source>
+ <translation>&amp;Supprimer</translation>
+ </message>
+ <message>
+ <source>Open custom.json</source>
+ <translation>Ouvrir custom.json</translation>
+ </message>
+ <message>
+ <location line="-47"/>
+ <location line="+67"/>
+ <source>&amp;View Folder</source>
+ <translation>&amp;Voir dossier</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <source>Resource Packs</source>
+ <translation>Packs de ressources</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/OneSixModEditDialog.cpp" line="-206"/>
+ <source>Couldn&apos;t remove file</source>
+ <translation>Impossible de supprimer le fichier</translation>
+ </message>
+ <message>
+ <location line="-17"/>
+ <source>Failed to load the version description file for reasons unknown.</source>
+ <translation>Impossible de charger le fichier de description de la version pour des raisons inconnues.</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <location line="+11"/>
+ <location line="+24"/>
+ <location line="+11"/>
+ <source>Revert?</source>
+ <translation>Revenir?</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <location line="+35"/>
+ <source>This action will remove the FTB pack version patch. Continue?</source>
+ <translation>Cette action va supprimer le pack FTB version patch. Continuer?</translation>
+ </message>
+ <message>
+ <location line="-24"/>
+ <location line="+35"/>
+ <source>This action will remove your custom.json. Continue?</source>
+ <translation>Cette action va supprimer votre custom.json. Continuer?</translation>
+ </message>
+ <message>
+ <location line="-25"/>
+ <source>No Forge versions are currently available for Minecraft </source>
+ <translation>Pas de versions Forge actuellement disponibles pour Minecraft</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Select LiteLoader version</source>
+ <translation>Sélectionnez la version de LiteLoader</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>No LiteLoader versions are currently available for Minecraft </source>
+ <translation>Aucune versions de LiteLoader sont actuellement disponibles pour Minecraft</translation>
+ </message>
+ <message>
+ <source>Do you want to revert the version of this instance to its original configuration?</source>
+ <translation>Voulez-vous remettre la version de cette instance en sa configuration d&apos;origine?</translation>
+ </message>
+ <message>
+ <location line="-140"/>
+ <location line="+6"/>
+ <location line="+18"/>
+ <location line="+13"/>
+ <location line="+18"/>
+ <location line="+18"/>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>Unable to open custom.json, check the settings</source>
+ <translation>Impossible d&apos;ouvrir custom.json, vérifiez les paramètres</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Select Forge version</source>
+ <translation>Sélectionnez la version de Forge</translation>
+ </message>
+ <message>
+ <source>This will revert any changes you did to the version up to this point. Is that OK?</source>
+ <translation>Cela remattra tout changement que vous avez fait à la version jusqu&apos;à ce point. êtes vous d&apos;accord?</translation>
+ </message>
+ <message>
+ <source>LiteLoader</source>
+ <translation>LiteLoader</translation>
+ </message>
+ <message>
+ <source>There is no information available on how to install LiteLoader into this version of Minecraft</source>
+ <translation>Il n&apos;y a pas d&apos;informations sur la façon d&apos;installer LiteLoader dans cette version de Minecraft</translation>
+ </message>
+ <message>
+ <source>For reasons unknown, the LiteLoader installation failed. Check your MultiMC log files for details.</source>
+ <translation>Pour des raisons inconnues, l&apos;installation de LiteLoader a échoué. Vérifiez les fichiers logs de MultiMC pour plus de détails.</translation>
+ </message>
+</context>
+<context>
+ <name>OneSixUpdate</name>
+ <message>
+ <source>Testing the Java installation...</source>
+ <translation>Test de l&apos;installation de Java...</translation>
+ </message>
+ <message>
+ <location filename="../logic/OneSixUpdate.cpp" line="+51"/>
+ <source>Failed to create folder for minecraft binaries.</source>
+ <translation>Impossible de créer un dossier pour les fichiers binaires de Minecraft.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>The specified Minecraft version is invalid. Choose a different one.</source>
+ <translation>La version Minecraft spécifié n&apos;est pas valide. Choisissez en une autre.</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Getting the version files from Mojang...</source>
+ <translation>Obtention des fichiers de version de Mojang...</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Can&apos;t open %1 for writing.</source>
+ <translation>Impossible d&apos;ouvrir %1 pour l&apos;écriture.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Failed to write into %1. Written %2 out of %3.</source>
+ <translation>Impossible d&apos;écrire dans %1. Écrit %2 sur %3.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Can&apos;t commit changes to %1</source>
+ <translation>Impossible de valider les modifications de %1</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Failed to download the version description. Try again.</source>
+ <translation>Impossible de télécharger la description de la version. Essayez à nouveau.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Updating assets index...</source>
+ <translation>Mise à jour de l&apos;index assets...</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Asset index for %1</source>
+ <translation>Index d&apos;asset pour %1</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Failed to read the assets index!</source>
+ <translation>Impossible de lire l&apos;index assets!</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Getting the assets files from Mojang...</source>
+ <translation>Obtention des fichiers assets de Mojang...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Assets for %1</source>
+ <translation>Assets pour %1</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Failed to download the assets index!</source>
+ <translation>Impossible de télécharger l&apos;index assets!</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Failed to download assets!</source>
+ <translation>Impossible de télécharger assets!</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Getting the library files from Mojang...</source>
+ <translation>Obtention des fichiers library de Mojang...</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Failed to load the version description file for reasons unknown.</source>
+ <translation>Impossible de charger le fichier de description de la version pour des raisons inconnues.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Libraries for instance %1</source>
+ <translation>Libraries pour l&apos;instance %1</translation>
+ </message>
+ <message>
+ <location line="+76"/>
+ <source>Failed to download the following files:
+%1
+
+Please try again.</source>
+ <translation>Impossible de télécharger les fichiers suivants:
+%1
+
+Essayez de nouveau.</translation>
+ </message>
+ <message>
+ <source>Preparing for launch...</source>
+ <translation>Préparation pour le lancement...</translation>
+ </message>
+</context>
+<context>
+ <name>PasteUpload</name>
+ <message>
+ <location filename="../logic/net/PasteUpload.cpp" line="+57"/>
+ <source>paste.ee returned an error. Please consult the logs for more information</source>
+ <translation>paste.ee a renvoyé une erreur. S&apos;il vous plaît consulter les logs pour plus d&apos;informations</translation>
+ </message>
+</context>
+<context>
+ <name>ProgressDialog</name>
+ <message>
+ <location filename="../gui/dialogs/ProgressDialog.ui" line="+26"/>
+ <source>Please wait...</source>
+ <translation>Veuillez patienter...</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Task Status...</source>
+ <translation>Statut des tâches...</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Skip</source>
+ <translation>Passer</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../logic/NagUtils.cpp" line="+26"/>
+ <source>JVM arguments warning</source>
+ <translation>Avertissement d&apos;arguments JVM</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>You tried to manually set a JVM memory option (using &quot;-XX:PermSize&quot;, &quot;-Xmx&quot; or &quot;-Xms&quot;) - there are dedicated boxes for these in the settings (Java tab, in the Memory group at the top).
+Your manual settings will be overridden by the dedicated options.
+This message will be displayed until you remove them from the JVM arguments.</source>
+ <translation>Vous avez essayé de définir manuellement une option de mémoire JVM (en utilisant &quot;-XX: PermSize&quot;, &quot;-Xmx&quot; ou &quot;-Xms») - il ya des options dédiées à ces problèmes dans les paramètres (onglet Java, dans le cadre mémoire, vers le haut) .
+Vos réglages manuels seront remplacés par les options dédiées.
+Ce message sera affiché jusqu&apos;à ce que vous retirez les arguments JVM.</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/ModEditDialogCommon.cpp" line="+53"/>
+ <source>How sad!</source>
+ <translation>Quelle tristesse!</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The mod author didn&apos;t provide a website link for this mod.</source>
+ <translation>L&apos;auteur du mod n&apos;a pas fourni de lien vers le site Web pour ce mod.</translation>
+ </message>
+ <message>
+ <location filename="../logic/tools/JVisualVM.cpp" line="+36"/>
+ <location filename="../logic/tools/JProfiler.cpp" line="+32"/>
+ <source>Empty path</source>
+ <translation>Chemin vide</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Invalid path to JVisualVM</source>
+ <translation>Chemin invalide vers JVisualVM</translation>
+ </message>
+ <message>
+ <location filename="../logic/tools/JProfiler.cpp" line="+6"/>
+ <location filename="../logic/tools/MCEditTool.cpp" line="+68"/>
+ <source>Path does not exist</source>
+ <translation>Le chemin n&apos;existe pas</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Invalid JProfiler install</source>
+ <translation>Installation de JProfiler invalide</translation>
+ </message>
+ <message>
+ <location filename="../logic/tools/MCEditTool.cpp" line="-6"/>
+ <source>Path is empty</source>
+ <translation>Le chemin est vide</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Path does not seem to be a MCEdit path</source>
+ <translation>Le chemin ne semble pas être celui de MCEdit</translation>
+ </message>
+ <message>
+ <location filename="../logic/lists/LiteLoaderVersionList.h" line="+37"/>
+ <source>Latest</source>
+ <translation>Dernier</translation>
+ </message>
+ <message>
+ <location filename="../logic/VersionFile.cpp" line="+475"/>
+ <location line="+27"/>
+ <source>Error resolving library dependencies between %1 and %2 in %3.</source>
+ <translation>Résolution de l&apos;erreur des dépendances de la bibliothèque entre %1 et %2 dans %3.</translation>
+ </message>
+ <message>
+ <location filename="../logic/VersionFile.h" line="+26"/>
+ <source>The base version file of this instance was meant for a newer (%1) version of the vanilla launcher than this version of MultiMC supports (%2).</source>
+ <translatorcomment>a revoir!</translatorcomment>
+ <translation>Le fichier de la version de base de cette instance a été signifié pour la nouvelle (%1) version du lanceur vanilla que la version de MultiMC supporte (%2).</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>The patch %1 is for a different version of Minecraft (%2) than that of the instance (%3).</source>
+ <translation>Le patch %1 est pour une version différente de Minecraft (%2) que celle de l&apos;instance (%3).</translation>
+ </message>
+ <message>
+ <location filename="../logic/OneSixVersionBuilder.cpp" line="+127"/>
+ <source>%1 has the same order as %2</source>
+ <translatorcomment>a revoir</translatorcomment>
+ <translation>%1 a le même nom que %2</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Unable to open the version file %1: %2.</source>
+ <translation>Impossible d&apos;ouvrir le fichier de la version %1: %2.</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Unable to process the version file %1: %2 at %3.</source>
+ <translation>Impossible de traiter la version du fichier %1: %2 à %3.</translation>
+ </message>
+</context>
+<context>
+ <name>RefreshTask</name>
+ <message>
+ <location filename="../logic/auth/flows/RefreshTask.cpp" line="+146"/>
+ <source>Refreshing login token...</source>
+ <translation>Rafraîchissement du token de connexion...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Refreshing login token: Processing response...</source>
+ <translation>Rafraîchissement du token de connexion: Traitement de la réponse...</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenshotDialog</name>
+ <message>
+ <location filename="../gui/dialogs/ScreenshotDialog.ui" line="+14"/>
+ <source>Screenshot Manager</source>
+ <translation>Gestionnaire des captures d&apos;écrans</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Upload</source>
+ <translation>Envoyer</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Delete</source>
+ <translation>Supprimer</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Close</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/ScreenshotDialog.cpp" line="+28"/>
+ <source>&lt;a href=&quot;https://imgur.com/a/%1&quot;&gt;Visit album&lt;/a&gt;&lt;br/&gt;Delete hash: %2 (save this if you want to be able to edit/delete the album)</source>
+ <translation>&lt;a href=&quot;https://imgur.com/a/%1&quot;&gt;Visitez l&apos;album&lt;/a&gt;&lt;br/&gt;Supprimer le hachage: %2 (sauf si vous voulez être en mesure de modifier / supprimer l&apos;album)</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Failed to upload screenshots!</source>
+ <translation>L&apos;envoi de la capture d&apos;écran a échoué!</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Unknown error</source>
+ <translation>Erreur inconnue</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenshotList</name>
+ <message>
+ <location filename="../logic/screenshots/ScreenshotList.cpp" line="+98"/>
+ <location line="+10"/>
+ <source>Error!</source>
+ <translation>Erreur!</translation>
+ </message>
+ <message>
+ <location line="-9"/>
+ <source>Failed to delete screenshots!</source>
+ <translation>Impossible de supprimer les captures d&apos;écran!</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Unable to refresh list: %1</source>
+ <translation>Impossible d&apos;actualiser la liste: %1</translation>
+ </message>
+ <message>
+ <location line="-41"/>
+ <source>Selected instance does not have any screenshots!</source>
+ <translation>L&apos;instance sélectionné ne contient aucune capture d&apos;écran!</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../gui/dialogs/SettingsDialog.ui" line="+20"/>
+ <source>Settings</source>
+ <translation>Options</translation>
+ </message>
+ <message>
+ <source>General</source>
+ <translation>Général</translation>
+ </message>
+ <message>
+ <location line="+283"/>
+ <source>Sorting Mode</source>
+ <translation>mode de tri</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>By last launched</source>
+ <translation>Par dernière utilisation</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>By name</source>
+ <translation>Par nom</translation>
+ </message>
+ <message>
+ <location line="-273"/>
+ <source>Update Settings</source>
+ <translation>Options de mise à jour</translation>
+ </message>
+ <message>
+ <source>Use development builds?</source>
+ <translation>Utilisez les versions de développement?</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Check for updates when MultiMC starts?</source>
+ <translation>Vérifier les mises à jour au démarrage de MultiMC?</translation>
+ </message>
+ <message>
+ <location line="+121"/>
+ <source>Folders</source>
+ <translation>Dossiers</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Instances:</source>
+ <translation>Instances:</translation>
+ </message>
+ <message>
+ <location line="-69"/>
+ <location line="+46"/>
+ <location line="+33"/>
+ <location line="+20"/>
+ <location line="+14"/>
+ <location line="+17"/>
+ <location line="+108"/>
+ <location line="+307"/>
+ <location line="+240"/>
+ <location line="+37"/>
+ <location line="+37"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location line="-929"/>
+ <source>Features</source>
+ <translation>Général</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>Update Channel:</source>
+ <translation>Canal de mise à jour:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>No channel selected.</source>
+ <translation>Aucun canal sélectionné.</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>FTB</source>
+ <translation>FTB</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Launcher:</source>
+ <translation>Lanceur:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Track FTB instances</source>
+ <translation>Suivre les instances FTB</translation>
+ </message>
+ <message>
+ <location line="+32"/>
+ <source>Files:</source>
+ <translation>Fichiers:</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Mods:</source>
+ <translation>Mods:</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>LWJGL:</source>
+ <translation>LWJGL:</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>Icons:</source>
+ <translation>Icones:</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>User Interface</source>
+ <translation>Interface d&apos;utilisateur</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Language (needs restart):</source>
+ <translation>Langue (redémarrage requis):</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Reset hidden notifications</source>
+ <translation>Enlever les notifications cachés</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>External Editors (leave empty for system default)</source>
+ <translation>Éditeurs externes (laissez vide pour les paramettre par défaut)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>JSON Editor:</source>
+ <translation>Éditeur JSON:</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Minecraft</source>
+ <translation>Minecraft</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Window Size</source>
+ <translation>Taille de la fenêtre</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Start Minecraft maximized?</source>
+ <translation>Lancer minecraft en mode plein écran?</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Window height:</source>
+ <translation>Hauteur:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Window width:</source>
+ <translation>Largeur:</translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>Console Settings</source>
+ <translation>Options de la console</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Show console while the game is running?</source>
+ <translation>Afficher la console quand le jeu est lancé ?</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Automatically close console when the game quits?</source>
+ <translation>Fermer automatiquement la console à la fermeture du jeu?</translation>
+ </message>
+ <message>
+ <location line="+265"/>
+ <source>Network settings.</source>
+ <translation>Options internet.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Network</source>
+ <translation>Internet</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Proxy</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Type</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Uses your system&apos;s default proxy settings.</source>
+ <translation>Utiliser les options par défaut de votre système.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Default</source>
+ <translation>Défaut</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>None</source>
+ <translation>Aucun</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>SOCKS5</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>HTTP</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Address and Port</source>
+ <translation>Adresse et port</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>127.0.0.1</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Authentication</source>
+ <translation>Authentification</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Username:</source>
+ <translation>Nom d&apos;utilisateur:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Password:</source>
+ <translation>Mot de passe:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Note: Proxy username and password are stored in plain text inside MultiMC&apos;s configuration file!</source>
+ <translation>Note: Le nom d&apos;utilisateur et le mot de passe du proxy sont stockées en texte brut à l&apos;intérieur du fichier de configuration de MultiMC!</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>External Tools</source>
+ <translation>Outils externe</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>JProfiler</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location line="+37"/>
+ <location line="+37"/>
+ <source>Check</source>
+ <translation>Vérifier</translation>
+ </message>
+ <message>
+ <location line="-67"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;http://www.ej-technologies.com/products/jprofiler/overview.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.ej-technologies.com/products/jprofiler/overview.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>JVisualVM</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;http://visualvm.java.net/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://visualvm.java.net/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>MCEdit</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;http://www.mcedit.net/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.mcedit.net/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Login automatically when an instance icon is double clicked?</source>
+ <translation>Se connecter automatiquement quand un double clic est effectué sur une icone d&apos;instance?</translation>
+ </message>
+ <message>
+ <location line="-507"/>
+ <source>Java</source>
+ <translation>Java</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Memory</source>
+ <translation>Mémoire</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The maximum amount of memory Minecraft is allowed to use.</source>
+ <translation>La quantité maximale de mémoire que Minecraft est autorisé à utiliser.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+36"/>
+ <location line="+29"/>
+ <source> MB</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="-46"/>
+ <source>Minimum memory allocation:</source>
+ <translation>Min. mémoire alloué:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Maximum memory allocation:</source>
+ <translation>Max. mémoire alloué:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The amount of memory Minecraft is started with.</source>
+ <translation>La quantité de mémoire avec laquelle minecraft démarre.</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>PermGen:</source>
+ <translation>PermGen:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>The amount of memory available to store loaded Java classes.</source>
+ <translation>La quantité de mémoire disponible pour stocker et charger les classes Java.</translation>
+ </message>
+ <message>
+ <location line="+25"/>
+ <source>Java Settings</source>
+ <translation>Options Java</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Java path:</source>
+ <translation>Dossier de Java:</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Auto-detect...</source>
+ <translation>Auto-détection...</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Test</source>
+ <translation>Test</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>JVM arguments:</source>
+ <translation>Arguments JVM:</translation>
+ </message>
+ <message>
+ <source>Browse...</source>
+ <translation>Parcourir...</translation>
+ </message>
+ <message>
+ <source>Auto-detect</source>
+ <translation>Auto-détection</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Custom Commands</source>
+ <translation>Commandes personnalisées</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Post-exit command:</source>
+ <translation>Commande post-arrêt:</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Pre-launch command:</source>
+ <translation>Commande prè-lancement:</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Pre-launch command runs before the instance launches and post-exit command runs after it exits. Both will be run in MultiMC&apos;s working directory with INST_ID, INST_DIR, and INST_NAME as environment variables.</source>
+ <translation>La commande de Pré-lancement s&apos;exécute avant l&apos;instance et la commande post-sortie s&apos;exécute après sa sortie. Les deux seront exploités dans le répertoire de travail de MultiMC avec INST_ID, INST_DIR, et INST_NAME comme variables d&apos;environnement.</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/SettingsDialog.cpp" line="+102"/>
+ <source>FTB Launcher Directory</source>
+ <translation>Répertoire du lanceur FTB</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>FTB Directory</source>
+ <translation>Répertoire de FTB</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Instance Directory</source>
+ <translation>Répertoire des instances</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Icons Directory</source>
+ <translation>Répertoire des icones</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Mods Directory</source>
+ <translation>Répertoire des mods</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>LWJGL Directory</source>
+ <translation>Répertoire de LWJGL</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>JSON Editor</source>
+ <translation>Éditeur JSON</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Invalid</source>
+ <translation>Invalide</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The file chosen does not seem to be an executable</source>
+ <translation>Le fichier choisi ne semble pas être un exécutable</translation>
+ </message>
+ <message>
+ <location line="+206"/>
+ <source>English</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="+144"/>
+ <source>JProfiler Directory</source>
+ <translation>Répertoire de JProfiler</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location line="+16"/>
+ <location line="+23"/>
+ <location line="+16"/>
+ <location line="+28"/>
+ <location line="+17"/>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <location line="-99"/>
+ <location line="+16"/>
+ <source>Error while checking JProfiler install:
+%1</source>
+ <translation>Erreur lors de la vérification de l&apos;installation de JProfiler:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location line="+39"/>
+ <location line="+45"/>
+ <source>OK</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location line="-84"/>
+ <source>JProfiler setup seems to be OK</source>
+ <translation>La configuration JProfiler semble être OK</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>JVisualVM Executable</source>
+ <translation>Exécutable de JVisualVM</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <location line="+16"/>
+ <source>Error while checking JVisualVM install:
+%1</source>
+ <translation>Erreur lors de la vérification de l&apos;installation de JVisualVM:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>JVisualVM setup seems to be OK</source>
+ <translation>La configuration JVisualVM semble être OK</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>MCEdit Application</source>
+ <translation>Application MCEdit</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>MCEdit Directory</source>
+ <translation>Répertoire de MCEdit</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+17"/>
+ <source>Error while checking MCEdit install:
+%1</source>
+ <translation>Erreur lors de la vérification de l&apos;installation de MCEdit:
+%1</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>MCEdit setup seems to be OK</source>
+ <translation>La configuration MCEdit semble être OK</translation>
+ </message>
+ <message>
+ <source>Development builds</source>
+ <translation>Builds en dévellopements</translation>
+ </message>
+ <message>
+ <source>Development builds contain experimental features and may be unstable. Are you sure you want to enable them?</source>
+ <translation>Les builds en dévellopements peuvent contenir des fonctionnalités expérimentales et peuvent êtres instables. Etes-vous sûr que vous voulez les permettres?</translation>
+ </message>
+ <message>
+ <location line="-170"/>
+ <source>Select a Java version</source>
+ <translation>Sélectionner la version de Java</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Find Java executable</source>
+ <translatorcomment>Umm... this translation is a bit meh</translatorcomment>
+ <translation>Trouver l&apos;exécutable de Java</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Java test success</source>
+ <translation>Test de Java avec succès</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Java test failure</source>
+ <translation>Test de Java echec</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>The specified java binary didn&apos;t work. You should use the auto-detect feature, or set the path to the java executable.</source>
+ <translation>Le binaire java spécifiée n&apos;a pas fonctionné. Vous devez utiliser la fonction d&apos;auto-détection, ou définir le chemin vers l&apos;exécutable java.</translation>
+ </message>
+</context>
+<context>
+ <name>UpdateDialog</name>
+ <message>
+ <location filename="../gui/dialogs/UpdateDialog.ui" line="+14"/>
+ <source>MultiMC Update</source>
+ <translation>Mise à jour MultiMC</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>A new MultiMC update is available!</source>
+ <translation>Une nouvelle version de MultiMC est disponible!</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Update now</source>
+ <translation>Mettre à jour</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Update after MultiMC closes</source>
+ <translation>Mettre à jour après la fermeture de MultiMC</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Don&apos;t update yet</source>
+ <translation>Ne pas mettre à jour</translation>
+ </message>
+</context>
+<context>
+ <name>ValidateTask</name>
+ <message>
+ <location filename="../logic/auth/flows/ValidateTask.cpp" line="+58"/>
+ <source>Validating access token: Sending request...</source>
+ <translation>Validation du token d&apos;accès: Envoi de la requête...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Validating access token: Processing response...</source>
+ <translation>Validation du token d&apos;accès: Traitement de la réponse...</translation>
+ </message>
+</context>
+<context>
+ <name>VersionFinal</name>
+ <message>
+ <location filename="../logic/VersionFinal.cpp" line="+205"/>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Version</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <location line="+99"/>
+ <source>Couldn&apos;t save the new order</source>
+ <translation>Impossible d&apos;enregistrer le nouvel ordre</translation>
+ </message>
+</context>
+<context>
+ <name>VersionListView</name>
+ <message>
+ <location filename="../gui/widgets/VersionListView.cpp" line="+27"/>
+ <source>No versions are currently available.</source>
+ <translation>Aucune version n&apos;est actuellement disponible.</translation>
+ </message>
+</context>
+<context>
+ <name>VersionSelectDialog</name>
+ <message>
+ <source>Dialog</source>
+ <translation>Dialogue</translation>
+ </message>
+ <message>
+ <location filename="../gui/dialogs/VersionSelectDialog.ui" line="+14"/>
+ <source>Choose Version</source>
+ <translation>Choisissez une version</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Reloads the version list.</source>
+ <translation>Recharger la liste des versions.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Refresh</source>
+ <translation>&amp;Actualiser</translation>
+ </message>
+</context>
+<context>
+ <name>YggdrasilTask</name>
+ <message>
+ <location filename="../logic/auth/YggdrasilTask.cpp" line="+104"/>
+ <source>&lt;b&gt;SSL Handshake failed.&lt;/b&gt;&lt;br/&gt;There might be a few causes for it:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;You use Windows XP and need to &lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=38918&quot;&gt;update your root certificates&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Some device on your network is interfering with SSL traffic. In that case, you have bigger worries than Minecraft not starting.&lt;/li&gt;&lt;li&gt;Possibly something else. Check the MultiMC log file for details&lt;/li&gt;&lt;/ul&gt;</source>
+ <translation>&lt;b&gt;La négociation SSL a échoué.&lt;/b&gt;&lt;br/&gt;Il pourrait y avoir quelques causes pour cela:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Vous utilisez Windows XP et vous devez &lt;a href=&quot;http://www.microsoft.com/fr-fr/download/details.aspx?id=38918&quot;&gt;mettre à jour vos certificats ROOT&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Certains appareils sur votre réseau interfère avec le trafic SSL. Dans ce cas, vous avez de plus grands soucis car Minecraftne démarrera pas.&lt;/li&gt;&lt;li&gt;Peut-être quelque chose d&apos;autre. Consultez le fichier log de MultiMC pour plus de détails&lt;/li&gt;&lt;/ul&gt;</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>An unknown error occurred when processing the response from the authentication server.</source>
+ <translation>Une erreur inconnue s&apos;est produite lors du traitement de la réponse du serveur d&apos;authentification.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Failed to parse Yggdrasil JSON response: %1 at offset %2.</source>
+ <translatorcomment>a voir</translatorcomment>
+ <translation>Impossible d&apos;analyser la réponse Yggdrasil JSON: %1 à compensé %2.</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>An unknown error occurred when trying to communicate with the authentication server: %1</source>
+ <translation>Une erreur inconnue s&apos;est produite lors de la tentative de communication avec le serveur d&apos;authentification: %1</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>An unknown Yggdrasil error occurred.</source>
+ <translation>Une erreur Yggdrasil inconnue s&apos;est produite..</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Sending request to auth servers...</source>
+ <translation>Envoie de la requête aux serveur d&apos;authentification...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Processing response from servers...</source>
+ <translation>Traitement de la réponse du serveur...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Processing. Please wait...</source>
+ <translation>Traitement. Veuillez patienter...</translation>
+ </message>
+</context>
+</TS> \ No newline at end of file