Bläddra i källkod

Merge pull request #2262 from IvanSavenko/launcher_improvements

Launcher improvements for 1.3
Ivan Savenko 2 år sedan
förälder
incheckning
ea22e53ab8
36 ändrade filer med 4000 tillägg och 2471 borttagningar
  1. 15 8
      client/Client.cpp
  2. 2 2
      client/Client.h
  3. 1 1
      client/ClientCommandManager.cpp
  4. 13 1
      config/schemas/mod.json
  5. 39 12
      config/schemas/settings.json
  6. 3 0
      launcher/CMakeLists.txt
  7. 77 0
      launcher/aboutProject/aboutproject_moc.cpp
  8. 53 0
      launcher/aboutProject/aboutproject_moc.h
  9. 309 0
      launcher/aboutProject/aboutproject_moc.ui
  10. 3 7
      launcher/firstLaunch/firstlaunch_moc.cpp
  11. 0 19
      launcher/firstLaunch/firstlaunch_moc.ui
  12. BIN
      launcher/icons/about-project.png
  13. 8 1
      launcher/languages.cpp
  14. 38 3
      launcher/mainwindow_moc.cpp
  15. 4 1
      launcher/mainwindow_moc.h
  16. 59 2
      launcher/mainwindow_moc.ui
  17. 3 3
      launcher/modManager/cdownloadmanager_moc.cpp
  18. 16 30
      launcher/modManager/cmodlistview_moc.cpp
  19. 1 9
      launcher/modManager/cmodlistview_moc.h
  20. 0 21
      launcher/modManager/cmodmanager.cpp
  21. 0 7
      launcher/modManager/cmodmanager.h
  22. 115 63
      launcher/settingsView/csettingsview_moc.cpp
  23. 14 6
      launcher/settingsView/csettingsview_moc.h
  24. 270 273
      launcher/settingsView/csettingsview_moc.ui
  25. 322 178
      launcher/translation/chinese.ts
  26. 298 177
      launcher/translation/english.ts
  27. 698 553
      launcher/translation/french.ts
  28. 322 177
      launcher/translation/german.ts
  29. 322 177
      launcher/translation/polish.ts
  30. 314 242
      launcher/translation/russian.ts
  31. 317 300
      launcher/translation/spanish.ts
  32. 332 177
      launcher/translation/ukrainian.ts
  33. 31 17
      lib/Languages.h
  34. 1 1
      lib/StartInfo.cpp
  35. 0 2
      lib/StartInfo.h
  36. 0 1
      lib/gameState/CGameState.cpp

+ 15 - 8
client/Client.cpp

@@ -430,18 +430,23 @@ void CClient::initPlayerEnvironments()
 
 void CClient::initPlayerInterfaces()
 {
-	for(auto & elem : gs->scenarioOps->playerInfos)
+	for(auto & playerInfo : gs->scenarioOps->playerInfos)
 	{
-		PlayerColor color = elem.first;
+		PlayerColor color = playerInfo.first;
 		if(!vstd::contains(CSH->getAllClientPlayers(CSH->c->connectionID), color))
 			continue;
 
 		if(!vstd::contains(playerint, color))
 		{
 			logNetwork->info("Preparing interface for player %s", color.getStr());
-			if(elem.second.isControlledByAI())
+			if(playerInfo.second.isControlledByAI())
 			{
-				auto AiToGive = aiNameForPlayer(elem.second, false);
+				bool alliedToHuman = false;
+				for(auto & allyInfo : gs->scenarioOps->playerInfos)
+					if (gs->getPlayerTeam(allyInfo.first) == gs->getPlayerTeam(playerInfo.first) && allyInfo.second.isControlledByHuman())
+						alliedToHuman = true;
+
+				auto AiToGive = aiNameForPlayer(playerInfo.second, false, alliedToHuman);
 				logNetwork->info("Player %s will be lead by %s", color.getStr(), AiToGive);
 				installNewPlayerInterface(CDynLibHandler::getNewAI(AiToGive), color);
 			}
@@ -464,7 +469,7 @@ void CClient::initPlayerInterfaces()
 	logNetwork->trace("Initialized player interfaces %d ms", CSH->th->getDiff());
 }
 
-std::string CClient::aiNameForPlayer(const PlayerSettings & ps, bool battleAI)
+std::string CClient::aiNameForPlayer(const PlayerSettings & ps, bool battleAI, bool alliedToHuman)
 {
 	if(ps.name.size())
 	{
@@ -473,13 +478,15 @@ std::string CClient::aiNameForPlayer(const PlayerSettings & ps, bool battleAI)
 			return ps.name;
 	}
 
-	return aiNameForPlayer(battleAI);
+	return aiNameForPlayer(battleAI, alliedToHuman);
 }
 
-std::string CClient::aiNameForPlayer(bool battleAI)
+std::string CClient::aiNameForPlayer(bool battleAI, bool alliedToHuman)
 {
 	const int sensibleAILimit = settings["session"]["oneGoodAI"].Bool() ? 1 : PlayerColor::PLAYER_LIMIT_I;
-	std::string goodAI = battleAI ? settings["server"]["neutralAI"].String() : settings["server"]["playerAI"].String();
+	std::string goodAdventureAI = alliedToHuman ? settings["server"]["alliedAI"].String() : settings["server"]["playerAI"].String();
+	std::string goodBattleAI = settings["server"]["neutralAI"].String();
+	std::string goodAI = battleAI ? goodBattleAI : goodAdventureAI;
 	std::string badAI = battleAI ? "StupidAI" : "EmptyAI";
 
 	//TODO what about human players

+ 2 - 2
client/Client.h

@@ -161,8 +161,8 @@ public:
 	void initMapHandler();
 	void initPlayerEnvironments();
 	void initPlayerInterfaces();
-	std::string aiNameForPlayer(const PlayerSettings & ps, bool battleAI); //empty means no AI -> human
-	std::string aiNameForPlayer(bool battleAI);
+	std::string aiNameForPlayer(const PlayerSettings & ps, bool battleAI, bool alliedToHuman); //empty means no AI -> human
+	std::string aiNameForPlayer(bool battleAI, bool alliedToHuman);
 	void installNewPlayerInterface(std::shared_ptr<CGameInterface> gameInterface, PlayerColor color, bool battlecb = false);
 	void installNewBattleInterface(std::shared_ptr<CBattleGameInterface> battleInterface, PlayerColor color, bool needCallback = true);
 

+ 1 - 1
client/ClientCommandManager.cpp

@@ -94,7 +94,7 @@ void ClientCommandManager::handleGoSoloCommand()
 		{
 			if(elem.second.human)
 			{
-				auto AiToGive = CSH->client->aiNameForPlayer(*CSH->client->getPlayerSettings(elem.first), false);
+				auto AiToGive = CSH->client->aiNameForPlayer(*CSH->client->getPlayerSettings(elem.first), false, false);
 				printCommandMessage("Player " + elem.first.getStr() + " will be lead by " + AiToGive, ELogLevel::INFO);
 				CSH->client->installNewPlayerInterface(CDynLibHandler::getNewAI(AiToGive), elem.first);
 			}

+ 13 - 1
config/schemas/mod.json

@@ -153,7 +153,10 @@
 		"language" : {
 			"type" : "string",
 			"description" : "Base language of the mod, before applying localizations. By default vcmi assumes English",
-			"enum" : [ "chinese", "english", "korean", "german", "polish", "russian", "spanish", "ukrainian" ]
+			"enum" : [ "czech, "chinese", "english", "french", "german", "hungarian", "italian", "korean", "polish", "russian", "spanish", "ukrainian" ]
+		},
+		"czech" : {
+			"$ref" : "#/definitions/localizable"
 		},
 		"chinese" : {
 			"$ref" : "#/definitions/localizable"
@@ -161,9 +164,18 @@
 		"english" : {
 			"$ref" : "#/definitions/localizable"
 		},
+		"french" : {
+			"$ref" : "#/definitions/localizable"
+		},
 		"german" : {
 			"$ref" : "#/definitions/localizable"
 		},
+		"hungarian" : {
+			"$ref" : "#/definitions/localizable"
+		},
+		"italian" : {
+			"$ref" : "#/definitions/localizable"
+		},
 		"korean" : {
 			"$ref" : "#/definitions/localizable"
 		},

+ 39 - 12
config/schemas/settings.json

@@ -58,12 +58,12 @@
 				},
 				"language" : {
 					"type" : "string",
-					"enum" : [ "english", "chinese", "german", "polish", "russian", "spanish", "ukrainian" ],
+					"enum" : [ "english", "czech", "chinese", "german", "hungarian", "italian", "korean", "polish", "russian", "spanish", "ukrainian" ],
 					"default" : "english"
 				},
 				"gameDataLanguage" : {
 					"type" : "string",
-					"enum" : [ "auto", "english", "chinese", "german", "korean", "polish", "russian", "spanish", "ukrainian", "other_cp1250", "other_cp1251", "other_cp1252" ],
+					"enum" : [ "auto", "english", "czech", "chinese", "german", "hungarian", "italian", "korean", "polish", "russian", "spanish", "ukrainian", "other_cp1250", "other_cp1251", "other_cp1252" ],
 					"default" : "auto"
 				},
 				"lastSave" : {
@@ -170,6 +170,8 @@
 				},
 				"targetfps" : {
 					"type" : "number",
+					"defaultIOS" : 30, // reduce battery usage
+					"defaultAndroid" : 30, // reduce battery usage
 					"default" : 60
 				}
 			}
@@ -270,7 +272,7 @@
 			"type" : "object",
 			"additionalProperties" : false,
 			"default" : {},
-			"required" : [ "server", "port", "localInformation", "playerAI", "friendlyAI","neutralAI", "enemyAI", "reconnect", "uuid", "names" ],
+			"required" : [ "server", "port", "localInformation", "playerAI", "alliedAI", "friendlyAI", "neutralAI", "enemyAI", "reconnect", "uuid", "names" ],
 			"properties" : {
 				"server" : {
 					"type" : "string",
@@ -288,6 +290,10 @@
 					"type" : "string",
 					"default" : "Nullkiller"
 				},
+				"alliedAI" : {
+					"type" : "string",
+					"default" : "VCAI"
+				},
 				"friendlyAI" : {
 					"type" : "string",
 					"default" : "BattleAI"
@@ -397,16 +403,37 @@
 			"type" : "object",
 			"default" : {},
 			"additionalProperties" : false,
-			"required" : [ "setupCompleted", "repositoryURL", "enableInstalledMods", "autoCheckRepositories", "updateOnStartup", "updateConfigUrl", "lobbyUrl", "lobbyPort", "lobbyUsername", "connectionTimeout" ],
+			"required" : [ 
+				"setupCompleted", 
+				"defaultRepositoryEnabled", 
+				"defaultRepositoryURL", 
+				"extraRepositoryURL", 
+				"extraRepositoryEnabled", 
+				"enableInstalledMods", 
+				"autoCheckRepositories", 
+				"updateOnStartup", 
+				"updateConfigUrl", 
+				"lobbyUrl", 
+				"lobbyPort", 
+				"lobbyUsername", 
+				"connectionTimeout"
+			],
 			"properties" : {
-				"repositoryURL" : {
-					"type" : "array",
-					"default" : [
-						"https://raw.githubusercontent.com/vcmi/vcmi-mods-repository/develop/vcmi-1.3.json"
-					],
-					"items" : {
-						"type" : "string"
-					}
+				"defaultRepositoryEnabled" : {
+					"type" : "boolean",
+					"default" : true,
+				},
+				"defaultRepositoryURL" : {
+					"type" : "string",
+					"default" : "https://raw.githubusercontent.com/vcmi/vcmi-mods-repository/develop/vcmi-1.3.json",
+				},
+				"extraRepositoryEnabled" : {
+					"type" : "boolean",
+					"default" : false,
+				},
+				"extraRepositoryURL" : {
+					"type" : "string",
+					"default" : "",
 				},
 				"setupCompleted" : {
 					"type" : "boolean",

+ 3 - 0
launcher/CMakeLists.txt

@@ -1,5 +1,6 @@
 set(launcher_SRCS
 		StdInc.cpp
+		aboutProject/aboutproject_moc.cpp
 		modManager/cdownloadmanager_moc.cpp
 		modManager/cmodlist.cpp
 		modManager/cmodlistmodel_moc.cpp
@@ -21,6 +22,7 @@ set(launcher_SRCS
 
 set(launcher_HEADERS
 		StdInc.h
+		aboutProject/aboutproject_moc.h
 		modManager/cdownloadmanager_moc.h
 		modManager/cmodlist.h
 		modManager/cmodlistmodel_moc.h
@@ -41,6 +43,7 @@ set(launcher_HEADERS
 )
 
 set(launcher_FORMS
+		aboutProject/aboutproject_moc.ui
 		modManager/cmodlistview_moc.ui
 		modManager/imageviewer_moc.ui
 		settingsView/csettingsview_moc.ui

+ 77 - 0
launcher/aboutProject/aboutproject_moc.cpp

@@ -0,0 +1,77 @@
+/*
+ * aboutproject_moc.cpp, part of VCMI engine
+ *
+ * Authors: listed in file AUTHORS in main folder
+ *
+ * License: GNU General Public License v2.0 or later
+ * Full text of license available in license.txt file, in main folder
+ *
+ */
+#include "StdInc.h"
+#include "aboutproject_moc.h"
+#include "ui_aboutproject_moc.h"
+
+#include "../updatedialog_moc.h"
+
+#include "../../lib/GameConstants.h"
+#include "../../lib/VCMIDirs.h"
+
+AboutProjectView::AboutProjectView(QWidget * parent)
+	: QWidget(parent)
+	, ui(new Ui::AboutProjectView)
+{
+	ui->setupUi(this);
+
+	ui->lineEditUserDataDir->setText(pathToQString(VCMIDirs::get().userDataPath()));
+	ui->lineEditGameDir->setText(pathToQString(VCMIDirs::get().binaryPath()));
+	ui->lineEditTempDir->setText(pathToQString(VCMIDirs::get().userLogsPath()));
+	ui->lineEditBuildVersion->setText(QString::fromStdString(GameConstants::VCMI_VERSION));
+	ui->lineEditOperatingSystem->setText(QSysInfo::prettyProductName());
+}
+
+void AboutProjectView::on_updatesButton_clicked()
+{
+	UpdateDialog::showUpdateDialog(true);
+}
+
+void AboutProjectView::on_openGameDataDir_clicked()
+{
+	QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditGameDir->text()).absoluteFilePath()));
+}
+
+void AboutProjectView::on_openUserDataDir_clicked()
+{
+	QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditUserDataDir->text()).absoluteFilePath()));
+}
+
+void AboutProjectView::on_openTempDir_clicked()
+{
+	QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditTempDir->text()).absoluteFilePath()));
+}
+
+void AboutProjectView::on_pushButtonDiscord_clicked()
+{
+	QDesktopServices::openUrl(QUrl("https://discord.gg/chBT42V"));
+}
+
+void AboutProjectView::on_pushButtonSlack_clicked()
+{
+	QDesktopServices::openUrl(QUrl("https://slack.vcmi.eu/"));
+}
+
+void AboutProjectView::on_pushButtonGithub_clicked()
+{
+	QDesktopServices::openUrl(QUrl("https://github.com/vcmi/vcmi"));
+}
+
+void AboutProjectView::on_pushButtonHomepage_clicked()
+{
+	QDesktopServices::openUrl(QUrl("https://vcmi.eu/"));
+}
+
+
+void AboutProjectView::on_pushButtonBugreport_clicked()
+{
+	QDesktopServices::openUrl(QUrl("https://github.com/vcmi/vcmi/issues"));
+}
+

+ 53 - 0
launcher/aboutProject/aboutproject_moc.h

@@ -0,0 +1,53 @@
+/*
+ * aboutproject_moc.h, part of VCMI engine
+ *
+ * Authors: listed in file AUTHORS in main folder
+ *
+ * License: GNU General Public License v2.0 or later
+ * Full text of license available in license.txt file, in main folder
+ *
+ */
+#pragma once
+#include "../StdInc.h"
+
+namespace Ui
+{
+class AboutProjectView;
+}
+
+class CModListView;
+
+class AboutProjectView : public QWidget
+{
+	Q_OBJECT
+
+public:
+	explicit AboutProjectView(QWidget * parent = 0);
+
+public slots:
+
+private slots:
+
+
+	void on_updatesButton_clicked();
+
+	void on_openGameDataDir_clicked();
+
+	void on_openUserDataDir_clicked();
+
+	void on_openTempDir_clicked();
+
+	void on_pushButtonDiscord_clicked();
+
+	void on_pushButtonSlack_clicked();
+
+	void on_pushButtonGithub_clicked();
+
+	void on_pushButtonHomepage_clicked();
+
+	void on_pushButtonBugreport_clicked();
+
+private:
+	Ui::AboutProjectView * ui;
+
+};

+ 309 - 0
launcher/aboutProject/aboutproject_moc.ui

@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AboutProjectView</class>
+ <widget class="QWidget" name="AboutProjectView">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>763</width>
+    <height>446</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string/>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QGridLayout" name="gridLayout_2">
+     <item row="2" column="0">
+      <widget class="QPushButton" name="pushButtonDiscord">
+       <property name="text">
+        <string>VCMI on Discord</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0" colspan="2">
+      <widget class="QLabel" name="labelLanguageSocial">
+       <property name="text">
+        <string>Have a question? Found a bug? Want to help? Join us!</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QPushButton" name="pushButtonGithub">
+       <property name="text">
+        <string>VCMI on Github</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="0">
+      <widget class="QLabel" name="labelDataDirs_2">
+       <property name="minimumSize">
+        <size>
+         <width>200</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Our Community</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QPushButton" name="pushButtonSlack">
+       <property name="text">
+        <string>VCMI on Slack</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <layout class="QGridLayout" name="gridLayout" columnstretch="2,4,1">
+     <item row="0" column="0">
+      <widget class="QLabel" name="labelDataDirs_3">
+       <property name="minimumSize">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Build Information</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLineEdit" name="lineEditBuildVersion">
+       <property name="text">
+        <string notr="true"/>
+       </property>
+       <property name="readOnly">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="0">
+      <widget class="QLabel" name="labelUserDataDir">
+       <property name="text">
+        <string>User data directory</string>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="2">
+      <widget class="QPushButton" name="openUserDataDir">
+       <property name="text">
+        <string>Open</string>
+       </property>
+      </widget>
+     </item>
+     <item row="6" column="2">
+      <widget class="QPushButton" name="openTempDir">
+       <property name="text">
+        <string>Open</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="QPushButton" name="updatesButton">
+       <property name="text">
+        <string>Check for updates</string>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="1">
+      <widget class="QLineEdit" name="lineEditUserDataDir">
+       <property name="enabled">
+        <bool>true</bool>
+       </property>
+       <property name="text">
+        <string notr="true">/home/user/.vcmi</string>
+       </property>
+       <property name="readOnly">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="labelBuildVersionDesc">
+       <property name="text">
+        <string>Game version</string>
+       </property>
+      </widget>
+     </item>
+     <item row="6" column="0">
+      <widget class="QLabel" name="labelTempDir">
+       <property name="text">
+        <string>Log files directory</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QLabel" name="labelDataDirs">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Data Directories</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="1">
+      <widget class="QLineEdit" name="lineEditGameDir">
+       <property name="enabled">
+        <bool>true</bool>
+       </property>
+       <property name="text">
+        <string notr="true">/usr/share/vcmi</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="2">
+      <widget class="QPushButton" name="openGameDataDir">
+       <property name="text">
+        <string>Open</string>
+       </property>
+      </widget>
+     </item>
+     <item row="6" column="1">
+      <widget class="QLineEdit" name="lineEditTempDir">
+       <property name="enabled">
+        <bool>true</bool>
+       </property>
+       <property name="text">
+        <string notr="true">/home/user/.vcmi</string>
+       </property>
+       <property name="readOnly">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QLabel" name="labelGameDir">
+       <property name="text">
+        <string>Game data directory</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="labelOperatingSystem">
+       <property name="text">
+        <string>Operating System</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLineEdit" name="lineEditOperatingSystem">
+       <property name="text">
+        <string notr="true"/>
+       </property>
+       <property name="readOnly">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer_3">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="pushButtonHomepage">
+       <property name="minimumSize">
+        <size>
+         <width>200</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="text">
+        <string>Project homepage</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="pushButtonBugreport">
+       <property name="minimumSize">
+        <size>
+         <width>200</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="text">
+        <string>Report a bug</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

+ 3 - 7
launcher/firstLaunch/firstlaunch_moc.cpp

@@ -107,13 +107,9 @@ void FirstLaunchView::enterSetup()
 
 void FirstLaunchView::setSetupProgress(int progress)
 {
-	int value = std::max(progress, ui->setupProgressBar->value());
-
-	ui->setupProgressBar->setValue(value);
-
-	ui->buttonTabLanguage->setDisabled(value < 1);
-	ui->buttonTabHeroesData->setDisabled(value < 2);
-	ui->buttonTabModPreset->setDisabled(value < 3);
+	ui->buttonTabLanguage->setDisabled(progress < 1);
+	ui->buttonTabHeroesData->setDisabled(progress < 2);
+	ui->buttonTabModPreset->setDisabled(progress < 3);
 }
 
 void FirstLaunchView::activateTabLanguage()

+ 0 - 19
launcher/firstLaunch/firstlaunch_moc.ui

@@ -93,25 +93,6 @@
      </item>
     </layout>
    </item>
-   <item>
-    <widget class="QProgressBar" name="setupProgressBar">
-     <property name="minimum">
-      <number>0</number>
-     </property>
-     <property name="maximum">
-      <number>3</number>
-     </property>
-     <property name="value">
-      <number>0</number>
-     </property>
-     <property name="textVisible">
-      <bool>true</bool>
-     </property>
-     <property name="format">
-      <string>Step %v out of %m</string>
-     </property>
-    </widget>
-   </item>
    <item>
     <widget class="QStackedWidget" name="installerTabs">
      <property name="currentIndex">

BIN
launcher/icons/about-project.png


+ 8 - 1
launcher/languages.cpp

@@ -18,16 +18,23 @@
 #include <QListWidget>
 
 // list of language names, for generation of translations. Do not use directly, use Languages namespace instead
-static const std::array<std::string, 12> languageTranslatedNamesGenerator = {
+static const std::array<std::string, 19> languageTranslatedNamesGenerator = {
 	{
+		QT_TRANSLATE_NOOP("Language", "Czech"),
 		QT_TRANSLATE_NOOP("Language", "Chinese"),
 		QT_TRANSLATE_NOOP("Language", "English"),
+		QT_TRANSLATE_NOOP("Language", "Finnish"),
 		QT_TRANSLATE_NOOP("Language", "French"),
 		QT_TRANSLATE_NOOP("Language", "German"),
+		QT_TRANSLATE_NOOP("Language", "Hungarian"),
+		QT_TRANSLATE_NOOP("Language", "Italian"),
 		QT_TRANSLATE_NOOP("Language", "Korean"),
 		QT_TRANSLATE_NOOP("Language", "Polish"),
+		QT_TRANSLATE_NOOP("Language", "Portuguese"),
 		QT_TRANSLATE_NOOP("Language", "Russian"),
 		QT_TRANSLATE_NOOP("Language", "Spanish"),
+		QT_TRANSLATE_NOOP("Language", "Swedish"),
+		QT_TRANSLATE_NOOP("Language", "Turkish"),
 		QT_TRANSLATE_NOOP("Language", "Ukrainian"),
 		QT_TRANSLATE_NOOP("Language", "Other (East European)"),
 		QT_TRANSLATE_NOOP("Language", "Other (Cyrillic Script)"),

+ 38 - 3
launcher/mainwindow_moc.cpp

@@ -15,6 +15,7 @@
 
 #include "../lib/CConfigHandler.h"
 #include "../lib/VCMIDirs.h"
+#include "../lib/Languages.h"
 #include "../lib/filesystem/Filesystem.h"
 #include "../lib/logging/CBasicLogConfigurator.h"
 
@@ -53,6 +54,7 @@ void MainWindow::computeSidePanelSizes()
 		ui->modslistButton,
 		ui->settingsButton,
 		ui->lobbyButton,
+		ui->aboutButton,
 		ui->startEditorButton,
 		ui->startGameButton
 	};
@@ -74,6 +76,12 @@ MainWindow::MainWindow(QWidget * parent)
 	: QMainWindow(parent), ui(new Ui::MainWindow)
 {
 	load(); // load FS before UI
+
+	bool setupCompleted = settings["launcher"]["setupCompleted"].Bool();
+
+	if (!setupCompleted)
+		detectPreferredLanguage();
+
 	updateTranslation(); // load translation
 
 	ui->setupUi(this);
@@ -103,7 +111,6 @@ MainWindow::MainWindow(QWidget * parent)
 	computeSidePanelSizes();
 
 	bool h3DataFound = CResourceHandler::get()->existsResource(ResourceID("DATA/GENRLTXT.TXT"));
-	bool setupCompleted = settings["launcher"]["setupCompleted"].Bool();
 
 	if (h3DataFound && setupCompleted)
 		ui->tabListWidget->setCurrentIndex(TabRows::MODS);
@@ -111,13 +118,35 @@ MainWindow::MainWindow(QWidget * parent)
 		enterSetup();
 
 	ui->settingsView->setDisplayList();
-	connect(ui->modlistView, &CModListView::extraResolutionsEnabledChanged,
-		ui->settingsView, &CSettingsView::fillValidResolutions);
 	
 	if(settings["launcher"]["updateOnStartup"].Bool())
 		UpdateDialog::showUpdateDialog(false);
 }
 
+void MainWindow::detectPreferredLanguage()
+{
+	auto preferredLanguages = QLocale::system().uiLanguages();
+
+	std::string selectedLanguage;
+
+	for (auto const & userLang : preferredLanguages)
+	{
+		logGlobal->info("Preferred language: %s", userLang.toStdString());
+
+		for (auto const & vcmiLang : Languages::getLanguageList())
+			if (vcmiLang.tagIETF == userLang.toStdString())
+				selectedLanguage = vcmiLang.identifier;
+	}
+
+	logGlobal->info("Selected language: %s", selectedLanguage);
+
+	if (!selectedLanguage.empty())
+	{
+		Settings node = settings.write["general"]["language"];
+		node->String() = selectedLanguage;
+	}
+}
+
 void MainWindow::enterSetup()
 {
 	ui->startGameButton->setEnabled(false);
@@ -203,6 +232,12 @@ void MainWindow::on_lobbyButton_clicked()
 	ui->tabListWidget->setCurrentIndex(TabRows::LOBBY);
 }
 
+void MainWindow::on_aboutButton_clicked()
+{
+	ui->startGameButton->setEnabled(true);
+	ui->tabListWidget->setCurrentIndex(TabRows::ABOUT);
+}
+
 void MainWindow::updateTranslation()
 {
 #ifdef ENABLE_QT_TRANSLATIONS

+ 4 - 1
launcher/mainwindow_moc.h

@@ -39,7 +39,8 @@ private:
 		MODS = 0,
 		SETTINGS = 1,
 		LOBBY = 2,
-		SETUP = 3
+		SETUP = 3,
+		ABOUT = 4,
 	};
 
 	void changeEvent(QEvent *event) override;
@@ -53,6 +54,7 @@ public:
 	void updateTranslation();
 	void computeSidePanelSizes();
 	
+	void detectPreferredLanguage();
 	void enterSetup();
 	void exitSetup();
 	void switchToModsTab();
@@ -65,4 +67,5 @@ private slots:
 	void on_settingsButton_clicked();
 	void on_lobbyButton_clicked();
 	void on_startEditorButton_clicked();
+	void on_aboutButton_clicked();
 };

+ 59 - 2
launcher/mainwindow_moc.ui

@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>800</width>
-    <height>490</height>
+    <width>900</width>
+    <height>536</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -183,6 +183,56 @@
         </property>
        </widget>
       </item>
+      <item>
+       <widget class="QToolButton" name="aboutButton">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+          <horstretch>1</horstretch>
+          <verstretch>10</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="minimumSize">
+         <size>
+          <width>0</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>16777215</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>Help</string>
+        </property>
+        <property name="icon">
+         <iconset>
+          <normaloff>icons:about-project.png</normaloff>icons:about-project.png</iconset>
+        </property>
+        <property name="iconSize">
+         <size>
+          <width>30</width>
+          <height>30</height>
+         </size>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>false</bool>
+        </property>
+        <property name="autoExclusive">
+         <bool>true</bool>
+        </property>
+        <property name="toolButtonStyle">
+         <enum>Qt::ToolButtonTextUnderIcon</enum>
+        </property>
+        <property name="autoRaise">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
       <item>
        <spacer name="verticalSpacer">
         <property name="orientation">
@@ -322,6 +372,7 @@
       <widget class="CSettingsView" name="settingsView"/>
       <widget class="Lobby" name="lobbyView"/>
       <widget class="FirstLaunchView" name="setupView"/>
+      <widget class="AboutProjectView" name="aboutView"/>
      </widget>
     </item>
    </layout>
@@ -353,6 +404,12 @@
    <header>firstLaunch/firstlaunch_moc.h</header>
    <container>1</container>
   </customwidget>
+  <customwidget>
+   <class>AboutProjectView</class>
+   <extends>QWidget</extends>
+   <header>aboutProject/aboutproject_moc.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>

+ 3 - 3
launcher/modManager/cdownloadmanager_moc.cpp

@@ -62,10 +62,10 @@ CDownloadManager::FileEntry & CDownloadManager::getEntry(QNetworkReply * reply)
 void CDownloadManager::downloadFinished(QNetworkReply * reply)
 {
 	FileEntry & file = getEntry(reply);
-	
+
 	QVariant possibleRedirectUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
 	QUrl qurl = possibleRedirectUrl.toUrl();
-	
+
 	if(possibleRedirectUrl.isValid())
 	{
 		QString filename;
@@ -135,7 +135,7 @@ void CDownloadManager::downloadProgressChanged(qint64 bytesReceived, qint64 byte
 
 	quint64 total = 0;
 	for(auto & entry : currentDownloads)
-		total += entry.totalSize > 0 ? entry.totalSize : 0;
+		total += entry.totalSize > 0 ? entry.totalSize : entry.bytesReceived;
 
 	quint64 received = 0;
 	for(auto & entry : currentDownloads)

+ 16 - 30
launcher/modManager/cmodlistview_moc.cpp

@@ -30,9 +30,6 @@ void CModListView::setupModModel()
 {
 	modModel = new CModListModel(this);
 	manager = std::make_unique<CModManager>(modModel);
-
-	connect(manager.get(), &CModManager::extraResolutionsEnabledChanged,
-		this, &CModListView::extraResolutionsEnabledChanged);
 }
 
 void CModListView::changeEvent(QEvent *event)
@@ -93,11 +90,8 @@ void CModListView::setupModsView()
 
 CModListView::CModListView(QWidget * parent)
 	: QWidget(parent)
-	, settingsListener(settings.listen["launcher"]["repositoryURL"])
 	, ui(new Ui::CModListView)
-	, repositoriesChanged(false)
 {
-	settingsListener([&](const JsonNode &){ repositoriesChanged = true; });
 	ui->setupUi(this);
 
 	setupModModel();
@@ -131,15 +125,25 @@ CModListView::CModListView(QWidget * parent)
 void CModListView::loadRepositories()
 {
 	manager->resetRepositories();
-	for(auto entry : settings["launcher"]["repositoryURL"].Vector())
+
+	QStringList repositories;
+
+	if (settings["launcher"]["defaultRepositoryEnabled"].Bool())
+		repositories.push_back(QString::fromStdString(settings["launcher"]["defaultRepositoryURL"].String()));
+
+	if (settings["launcher"]["extraRepositoryEnabled"].Bool())
+		repositories.push_back(QString::fromStdString(settings["launcher"]["extraRepositoryURL"].String()));
+
+	for(auto entry : repositories)
 	{
-		QString str = QString::fromUtf8(entry.String().c_str());
+		if (entry.isEmpty())
+			continue;
 
 		// URL must be encoded to something else to get rid of symbols illegal in file names
-		auto hashed = QCryptographicHash::hash(str.toUtf8(), QCryptographicHash::Md5);
+		auto hashed = QCryptographicHash::hash(entry.toUtf8(), QCryptographicHash::Md5);
 		auto hashedStr = QString::fromUtf8(hashed.toHex());
 
-		downloadFile(hashedStr + ".json", str, "repository index");
+		downloadFile(hashedStr + ".json", entry, "repository index");
 	}
 }
 
@@ -151,19 +155,6 @@ CModListView::~CModListView()
 	delete ui;
 }
 
-void CModListView::showEvent(QShowEvent * event)
-{
-	QWidget::showEvent(event);
-	if(repositoriesChanged)
-	{
-		repositoriesChanged = false;
-		if(settings["launcher"]["autoCheckRepositories"].Bool())
-		{
-			loadRepositories();
-		}
-	}
-}
-
 static QString replaceIfNotEmpty(QVariant value, QString pattern)
 {
 	if(value.canConvert<QStringList>())
@@ -391,11 +382,6 @@ void CModListView::selectMod(const QModelIndex & index)
 	}
 }
 
-bool CModListView::isExtraResolutionsModEnabled() const
-{
-	return manager->isExtraResolutionsModEnabled();
-}
-
 void CModListView::modSelected(const QModelIndex & current, const QModelIndex &)
 {
 	selectMod(current);
@@ -611,8 +597,8 @@ void CModListView::downloadFile(QString file, QString url, QString description)
 void CModListView::downloadProgress(qint64 current, qint64 max)
 {
 	// display progress, in kilobytes
-	ui->progressBar->setValue(current / 1024);
 	ui->progressBar->setMaximum(max / 1024);
+	ui->progressBar->setValue(current / 1024);
 }
 
 void CModListView::downloadFinished(QStringList savedFiles, QStringList failedFiles, QStringList errors)
@@ -688,7 +674,7 @@ void CModListView::installFiles(QStringList files)
 					auto modjson = repodata[key].toMap().value("mod");
 					if(!modjson.isNull())
 					{
-						downloadFile(key + ".json", modjson.toString(), "mod json");
+						downloadFile(key + ".json", modjson.toString(), "repository index");
 					}
 				}
 			}

+ 1 - 9
launcher/modManager/cmodlistview_moc.h

@@ -35,15 +35,9 @@ class CModListView : public QWidget
 	CModFilterModel * filterModel;
 	CDownloadManager * dlManager;
 
-	SettingsListener settingsListener;
-	bool repositoriesChanged;
-
-	void showEvent(QShowEvent * event) override;
-
 	void setupModModel();
 	void setupFilterModel();
 	void setupModsView();
-	void loadRepositories();
 
 	void checkManagerErrors();
 
@@ -67,8 +61,6 @@ class CModListView : public QWidget
 
 	void changeEvent(QEvent *event) override;
 signals:
-	void extraResolutionsEnabledChanged(bool enabled);
-	
 	void modsChanged();
 
 public:
@@ -76,11 +68,11 @@ public:
 	~CModListView();
 
 	void loadScreenshots();
+	void loadRepositories();
 
 	void disableModInfo();
 
 	void selectMod(const QModelIndex & index);
-	bool isExtraResolutionsModEnabled() const;
 
 	const CModList & getModList() const;
 	

+ 0 - 21
launcher/modManager/cmodmanager.cpp

@@ -20,8 +20,6 @@
 
 namespace
 {
-const QLatin1String extraResolutionsMod{"vcmi-extras.extraresolutions"};
-
 QString detectModArchive(QString path, QString modName)
 {
 	auto files = ZipArchive::listFiles(qstringToPath(path));
@@ -223,11 +221,6 @@ bool CModManager::canDisableMod(QString modname)
 	return true;
 }
 
-bool CModManager::isExtraResolutionsModEnabled() const
-{
-	return modList->hasMod(extraResolutionsMod) && modList->getMod(extraResolutionsMod).isEnabled();
-}
-
 static QVariant writeValue(QString path, QVariantMap input, QVariant value)
 {
 	if(path.size() > 1)
@@ -255,9 +248,6 @@ bool CModManager::doEnableMod(QString mod, bool on)
 	modList->setModSettings(modSettings["activeMods"]);
 	modList->modChanged(mod);
 
-	if(mod == extraResolutionsMod)
-		sendExtraResolutionsEnabledChanged(on);
-
 	JsonUtils::JsonToFile(settingsPath(), modSettings);
 
 	return true;
@@ -298,9 +288,6 @@ bool CModManager::doInstallMod(QString modname, QString archivePath)
 	loadMods();
 	modList->reloadRepositories();
 
-	if(modname == extraResolutionsMod)
-		sendExtraResolutionsEnabledChanged(true);
-
 	return true;
 }
 
@@ -321,9 +308,6 @@ bool CModManager::doUninstallMod(QString modname)
 	loadMods();
 	modList->reloadRepositories();
 
-	if(modname == extraResolutionsMod)
-		sendExtraResolutionsEnabledChanged(false);
-
 	return true;
 }
 
@@ -347,8 +331,3 @@ bool CModManager::removeModDir(QString path)
 
 	return dir.removeRecursively();
 }
-
-void CModManager::sendExtraResolutionsEnabledChanged(bool enabled)
-{
-	emit extraResolutionsEnabledChanged(enabled);
-}

+ 0 - 7
launcher/modManager/cmodmanager.h

@@ -31,11 +31,6 @@ class CModManager : public QObject
 	bool addError(QString modname, QString message);
 	bool removeModDir(QString mod);
 
-	void sendExtraResolutionsEnabledChanged(bool enabled);
-
-signals:
-	void extraResolutionsEnabledChanged(bool enabled);
-
 public:
 	CModManager(CModList * modList);
 
@@ -58,6 +53,4 @@ public:
 	bool canUninstallMod(QString mod);
 	bool canEnableMod(QString mod);
 	bool canDisableMod(QString mod);
-
-	bool isExtraResolutionsModEnabled() const;
 };

+ 115 - 63
launcher/settingsView/csettingsview_moc.cpp

@@ -17,13 +17,11 @@
 #include "../jsonutils.h"
 #include "../languages.h"
 #include "../launcherdirs.h"
-#include "../updatedialog_moc.h"
 
 #include <QFileInfo>
 #include <QGuiApplication>
 
 #include "../../lib/CConfigHandler.h"
-#include "../../lib/VCMIDirs.h"
 
 #ifndef VCMI_MOBILE
 #include <SDL2/SDL.h>
@@ -79,26 +77,28 @@ void CSettingsView::loadSettings()
 	else
 		ui->comboBoxFullScreen->setCurrentIndex(settings["video"]["fullscreen"].Bool());
 #endif
+	fillValidScalingRange();
+
+	ui->spinBoxInterfaceScaling->setValue(settings["video"]["resolution"]["scaling"].Float());
+	ui->spinBoxFramerateLimit->setValue(settings["video"]["targetfps"].Float());
 
 	ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String()));
 	ui->comboBoxNeutralAI->setCurrentText(QString::fromStdString(settings["server"]["neutralAI"].String()));
 	ui->comboBoxEnemyAI->setCurrentText(QString::fromStdString(settings["server"]["enemyAI"].String()));
-	ui->comboBoxPlayerAI->setCurrentText(QString::fromStdString(settings["server"]["playerAI"].String()));
+	ui->comboBoxEnemyPlayerAI->setCurrentText(QString::fromStdString(settings["server"]["playerAI"].String()));
 
 	ui->spinBoxNetworkPort->setValue(settings["server"]["port"].Integer());
 
 	ui->comboBoxAutoCheck->setCurrentIndex(settings["launcher"]["autoCheckRepositories"].Bool());
 
-	JsonNode urls = settings["launcher"]["repositoryURL"];
-	ui->plainTextEditRepos->blockSignals(true); // Do not report loading as change of data
-	ui->plainTextEditRepos->clear();
-	for(auto entry : urls.Vector())
-		ui->plainTextEditRepos->appendPlainText(QString::fromUtf8(entry.String().c_str()));
-	ui->plainTextEditRepos->blockSignals(false);
+	ui->lineEditRepositoryDefault->setText(QString::fromStdString(settings["launcher"]["defaultRepositoryURL"].String()));
+	ui->lineEditRepositoryExtra->setText(QString::fromStdString(settings["launcher"]["extraRepositoryURL"].String()));
+
+	ui->lineEditRepositoryDefault->setEnabled(settings["launcher"]["defaultRepositoryEnabled"].Bool());
+	ui->lineEditRepositoryExtra->setEnabled(settings["launcher"]["extraRepositoryEnabled"].Bool());
 
-	ui->lineEditUserDataDir->setText(pathToQString(VCMIDirs::get().userDataPath()));
-	ui->lineEditGameDir->setText(pathToQString(VCMIDirs::get().binaryPath()));
-	ui->lineEditTempDir->setText(pathToQString(VCMIDirs::get().userLogsPath()));
+	ui->checkBoxRepositoryDefault->setChecked(settings["launcher"]["defaultRepositoryEnabled"].Bool());
+	ui->checkBoxRepositoryExtra->setChecked(settings["launcher"]["extraRepositoryEnabled"].Bool());
 
 	ui->comboBoxAutoSave->setCurrentIndex(settings["general"]["saveFrequency"].Integer() > 0 ? 1 : 0);
 
@@ -114,6 +114,39 @@ void CSettingsView::fillValidResolutions()
 	fillValidResolutionsForScreen(ui->comboBoxDisplayIndex->isVisible() ? ui->comboBoxDisplayIndex->currentIndex() : 0);
 }
 
+QSize CSettingsView::getPreferredRenderingResolution()
+{
+#ifndef VCMI_MOBILE
+	bool fullscreen = settings["video"]["fullscreen"].Bool();
+	bool realFullscreen = settings["video"]["realFullscreen"].Bool();
+
+	if (!fullscreen || realFullscreen)
+	{
+		int resX = settings["video"]["resolution"]["width"].Integer();
+		int resY = settings["video"]["resolution"]["height"].Integer();
+		return QSize(resX, resY);
+	}
+#endif
+	return QApplication::primaryScreen()->geometry().size();
+}
+
+void CSettingsView::fillValidScalingRange()
+{
+	//FIXME: this code is copy of ScreenHandler::getSupportedScalingRange
+
+	// H3 resolution, any resolution smaller than that is not correctly supported
+	static const QSize minResolution = {800, 600};
+	// arbitrary limit on *downscaling*. Allow some downscaling, if requested by user. Should be generally limited to 100+ for all but few devices
+	static const double minimalScaling = 50;
+
+	QSize renderResolution = getPreferredRenderingResolution();
+	double maximalScalingWidth = 100.0 * renderResolution.width() / minResolution.width();
+	double maximalScalingHeight = 100.0 * renderResolution.height() / minResolution.height();
+	double maximalScaling = std::min(maximalScalingWidth, maximalScalingHeight);
+
+	ui->spinBoxInterfaceScaling->setRange(minimalScaling, maximalScaling);
+}
+
 #ifndef VCMI_MOBILE
 
 static QVector<QSize> findAvailableResolutions(int displayIndex)
@@ -153,21 +186,33 @@ void CSettingsView::fillValidResolutionsForScreen(int screenIndex)
 	ui->comboBoxResolution->blockSignals(true); // avoid saving wrong resolution after adding first item from the list
 	ui->comboBoxResolution->clear();
 
-	QVector<QSize> resolutions = findAvailableResolutions(screenIndex);
+	bool fullscreen = settings["video"]["fullscreen"].Bool();
+	bool realFullscreen = settings["video"]["realFullscreen"].Bool();
 
-	for(const auto & entry : resolutions)
-		ui->comboBoxResolution->addItem(resolutionToString(entry));
+
+	if (!fullscreen || realFullscreen)
+	{
+		QVector<QSize> resolutions = findAvailableResolutions(screenIndex);
+
+		for(const auto & entry : resolutions)
+			ui->comboBoxResolution->addItem(resolutionToString(entry));
+	}
+	else
+	{
+		ui->comboBoxResolution->addItem(resolutionToString(getPreferredRenderingResolution()));
+	}
+	ui->comboBoxResolution->setEnabled(ui->comboBoxResolution->count() > 1);
 
 	int resX = settings["video"]["resolution"]["width"].Integer();
 	int resY = settings["video"]["resolution"]["height"].Integer();
 	int resIndex = ui->comboBoxResolution->findText(resolutionToString({resX, resY}));
 	ui->comboBoxResolution->setCurrentIndex(resIndex);
 
-	ui->comboBoxResolution->blockSignals(false);
-
 	// if selected resolution no longer exists, force update value to the largest (last) resolution
 	if(resIndex == -1)
 		ui->comboBoxResolution->setCurrentIndex(ui->comboBoxResolution->count() - 1);
+
+	ui->comboBoxResolution->blockSignals(false);
 }
 #else
 void CSettingsView::fillValidResolutionsForScreen(int screenIndex)
@@ -183,7 +228,6 @@ CSettingsView::CSettingsView(QWidget * parent)
 {
 	ui->setupUi(this);
 
-	ui->lineEditBuildVersion->setText(QString::fromStdString(GameConstants::VCMI_VERSION));
 	loadSettings();
 }
 
@@ -192,7 +236,6 @@ CSettingsView::~CSettingsView()
 	delete ui;
 }
 
-
 void CSettingsView::on_comboBoxResolution_currentTextChanged(const QString & arg1)
 {
 	QStringList list = arg1.split("x");
@@ -200,6 +243,9 @@ void CSettingsView::on_comboBoxResolution_currentTextChanged(const QString & arg
 	Settings node = settings.write["video"]["resolution"];
 	node["width"].Float() = list[0].toInt();
 	node["height"].Float() = list[1].toInt();
+
+	fillValidResolutions();
+	fillValidScalingRange();
 }
 
 void CSettingsView::on_comboBoxFullScreen_currentIndexChanged(int index)
@@ -208,6 +254,9 @@ void CSettingsView::on_comboBoxFullScreen_currentIndexChanged(int index)
 	Settings nodeRealFullscreen = settings.write["video"]["realFullscreen"];
 	nodeFullscreen->Bool() = (index != 0);
 	nodeRealFullscreen->Bool() = (index == 2);
+
+	fillValidResolutions();
+	fillValidScalingRange();
 }
 
 void CSettingsView::on_comboBoxAutoCheck_currentIndexChanged(int index)
@@ -254,61 +303,18 @@ void CSettingsView::on_spinBoxNetworkPort_valueChanged(int arg1)
 	node->Float() = arg1;
 }
 
-void CSettingsView::on_plainTextEditRepos_textChanged()
-{
-	Settings node = settings.write["launcher"]["repositoryURL"];
-
-	QStringList list = ui->plainTextEditRepos->toPlainText().split('\n');
-
-	node->Vector().clear();
-	for(QString line : list)
-	{
-		if(line.trimmed().size() > 0)
-		{
-			JsonNode entry;
-			entry.String() = line.trimmed().toUtf8().data();
-			node->Vector().push_back(entry);
-		}
-	}
-}
-
-void CSettingsView::on_openTempDir_clicked()
-{
-	QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditTempDir->text()).absoluteFilePath()));
-}
-
-void CSettingsView::on_openUserDataDir_clicked()
-{
-	QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditUserDataDir->text()).absoluteFilePath()));
-}
-
-void CSettingsView::on_openGameDataDir_clicked()
-{
-	QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditGameDir->text()).absoluteFilePath()));
-}
-
 void CSettingsView::on_comboBoxShowIntro_currentIndexChanged(int index)
 {
 	Settings node = settings.write["video"]["showIntro"];
 	node->Bool() = index;
 }
 
-void CSettingsView::on_changeGameDataDir_clicked()
-{
-
-}
-
 void CSettingsView::on_comboBoxAutoSave_currentIndexChanged(int index)
 {
 	Settings node = settings.write["general"]["saveFrequency"];
 	node->Integer() = index;
 }
 
-void CSettingsView::on_updatesButton_clicked()
-{
-	UpdateDialog::showUpdateDialog(true);
-}
-
 void CSettingsView::on_comboBoxLanguage_currentIndexChanged(int index)
 {
 	Settings node = settings.write["general"]["language"];
@@ -348,7 +354,6 @@ void CSettingsView::on_listWidgetSettings_currentRowChanged(int currentRow)
 		ui->labelGeneral,
 		ui->labelVideo,
 		ui->labelArtificialIntelligence,
-		ui->labelDataDirs,
 		ui->labelRepositories
 	};
 
@@ -441,3 +446,50 @@ void CSettingsView::on_comboBoxLanguageBase_currentIndexChanged(int index)
 	QString selectedLanguage = ui->comboBoxLanguageBase->itemData(index).toString();
 	node->String() = selectedLanguage.toStdString();
 }
+
+void CSettingsView::on_checkBoxRepositoryDefault_stateChanged(int arg1)
+{
+	Settings node = settings.write["launcher"]["defaultRepositoryEnabled"];
+	node->Bool() = arg1;
+	ui->lineEditRepositoryDefault->setEnabled(arg1);
+}
+
+void CSettingsView::on_checkBoxRepositoryExtra_stateChanged(int arg1)
+{
+	Settings node = settings.write["launcher"]["extraRepositoryEnabled"];
+	node->Bool() = arg1;
+	ui->lineEditRepositoryExtra->setEnabled(arg1);
+}
+
+void CSettingsView::on_lineEditRepositoryExtra_textEdited(const QString &arg1)
+{
+	Settings node = settings.write["launcher"]["extraRepositoryURL"];
+	node->String() = arg1.toStdString();
+}
+
+
+void CSettingsView::on_spinBoxInterfaceScaling_valueChanged(int arg1)
+{
+	Settings node = settings.write["video"]["resolution"]["scaling"];
+	node->Float() = arg1;
+}
+
+
+void CSettingsView::on_refreshRepositoriesButton_clicked()
+{
+	auto * mainWindow = dynamic_cast<MainWindow *>(qApp->activeWindow());
+
+	assert(mainWindow);
+	if (!mainWindow)
+		return;
+
+	mainWindow->getModView()->loadRepositories();
+}
+
+
+void CSettingsView::on_spinBoxFramerateLimit_valueChanged(int arg1)
+{
+	Settings node = settings.write["video"]["targetfps"];
+	node->Float() = arg1;
+}
+

+ 14 - 6
launcher/settingsView/csettingsview_moc.h

@@ -40,16 +40,10 @@ private slots:
 	void on_comboBoxNeutralAI_currentTextChanged(const QString & arg1);
 	void on_comboBoxEnemyAI_currentTextChanged(const QString & arg1);
 	void on_spinBoxNetworkPort_valueChanged(int arg1);
-	void on_plainTextEditRepos_textChanged();
-	void on_openTempDir_clicked();
-	void on_openUserDataDir_clicked();
-	void on_openGameDataDir_clicked();
 	void on_comboBoxShowIntro_currentIndexChanged(int index);
-	void on_changeGameDataDir_clicked();
 	void on_comboBoxAutoCheck_currentIndexChanged(int index);
 	void on_comboBoxDisplayIndex_currentIndexChanged(int index);
 	void on_comboBoxAutoSave_currentIndexChanged(int index);
-	void on_updatesButton_clicked();
 	void on_comboBoxLanguage_currentIndexChanged(int index);
 	void on_comboBoxCursorType_currentIndexChanged(int index);
 	void on_listWidgetSettings_currentRowChanged(int currentRow);
@@ -57,8 +51,22 @@ private slots:
 
 	void on_comboBoxLanguageBase_currentIndexChanged(int index);
 
+	void on_checkBoxRepositoryDefault_stateChanged(int arg1);
+
+	void on_checkBoxRepositoryExtra_stateChanged(int arg1);
+
+	void on_lineEditRepositoryExtra_textEdited(const QString &arg1);
+
+	void on_spinBoxInterfaceScaling_valueChanged(int arg1);
+
+	void on_refreshRepositoriesButton_clicked();
+
+	void on_spinBoxFramerateLimit_valueChanged(int arg1);
+
 private:
 	Ui::CSettingsView * ui;
 
 	void fillValidResolutionsForScreen(int screenIndex);
+	void fillValidScalingRange();
+	QSize getPreferredRenderingResolution();
 };

+ 270 - 273
launcher/settingsView/csettingsview_moc.ui

@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>842</width>
-    <height>363</height>
+    <width>832</width>
+    <height>350</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -79,11 +79,6 @@
        <string>Artificial Intelligence</string>
       </property>
      </item>
-     <item>
-      <property name="text">
-       <string>Data Directories</string>
-      </property>
-     </item>
      <item>
       <property name="text">
        <string>Mod Repositories</string>
@@ -112,17 +107,44 @@
       <property name="geometry">
        <rect>
         <x>0</x>
-        <y>0</y>
-        <width>620</width>
-        <height>745</height>
+        <y>-331</y>
+        <width>610</width>
+        <height>679</height>
        </rect>
       </property>
-      <layout class="QGridLayout" name="gridLayout" columnstretch="3,0,0,0">
-       <item row="19" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxEnemyAI">
-         <property name="editable">
-          <bool>false</bool>
+      <layout class="QGridLayout" name="gridLayout" columnstretch="2,0,1,1,1">
+       <item row="8" column="0">
+        <widget class="QLabel" name="labelVideo">
+         <property name="font">
+          <font>
+           <weight>75</weight>
+           <bold>true</bold>
+          </font>
+         </property>
+         <property name="text">
+          <string>Video</string>
          </property>
+        </widget>
+       </item>
+       <item row="24" column="2" colspan="3">
+        <widget class="QLineEdit" name="lineEditRepositoryDefault">
+         <property name="text">
+          <string notr="true"/>
+         </property>
+         <property name="readOnly">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="25" column="2" colspan="3">
+        <widget class="QLineEdit" name="lineEditRepositoryExtra">
+         <property name="text">
+          <string notr="true"/>
+         </property>
+        </widget>
+       </item>
+       <item row="19" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxNeutralAI">
          <property name="currentText">
           <string notr="true">BattleAI</string>
          </property>
@@ -138,13 +160,6 @@
          </item>
         </widget>
        </item>
-       <item row="1" column="0">
-        <widget class="QLabel" name="labelLanguage">
-         <property name="text">
-          <string>VCMI Language</string>
-         </property>
-        </widget>
-       </item>
        <item row="6" column="0">
         <widget class="QLabel" name="labelNetworkPort">
          <property name="text">
@@ -152,36 +167,8 @@
          </property>
         </widget>
        </item>
-       <item row="11" column="0">
-        <widget class="QLabel" name="labelFullScreen">
-         <property name="text">
-          <string>Fullscreen</string>
-         </property>
-        </widget>
-       </item>
-       <item row="10" column="0">
-        <widget class="QLabel" name="labelResolution">
-         <property name="text">
-          <string>Resolution</string>
-         </property>
-        </widget>
-       </item>
-       <item row="17" column="0">
-        <widget class="QLabel" name="labelNeutralAI">
-         <property name="text">
-          <string>Neutral AI</string>
-         </property>
-        </widget>
-       </item>
-       <item row="7" column="0">
-        <widget class="QLabel" name="labelAutoSave">
-         <property name="text">
-          <string>Autosave</string>
-         </property>
-        </widget>
-       </item>
-       <item row="9" column="0">
-        <widget class="QLabel" name="labelVideo">
+       <item row="22" column="0">
+        <widget class="QLabel" name="labelRepositories">
          <property name="font">
           <font>
            <weight>75</weight>
@@ -189,202 +176,207 @@
           </font>
          </property>
          <property name="text">
-          <string>Video</string>
+          <string>Mod Repositories</string>
          </property>
         </widget>
        </item>
-       <item row="23" column="1" colspan="2">
-        <widget class="QLineEdit" name="lineEditTempDir">
-         <property name="enabled">
-          <bool>false</bool>
+       <item row="7" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxAutoSave">
+         <property name="currentIndex">
+          <number>1</number>
          </property>
+         <item>
+          <property name="text">
+           <string>Off</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>On</string>
+          </property>
+         </item>
+        </widget>
+       </item>
+       <item row="21" column="0">
+        <widget class="QLabel" name="labelEnemyAI">
          <property name="text">
-          <string notr="true">/home/user/.vcmi</string>
-         </property>
-         <property name="readOnly">
-          <bool>true</bool>
+          <string>Enemy AI in battles</string>
          </property>
         </widget>
        </item>
-       <item row="13" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxDisplayIndex"/>
+       <item row="18" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxAlliedPlayerAI">
+         <property name="currentText">
+          <string notr="true">VCAI</string>
+         </property>
+         <item>
+          <property name="text">
+           <string notr="true">VCAI</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string notr="true">Nullkiller</string>
+          </property>
+         </item>
+        </widget>
        </item>
-       <item row="14" column="0">
-        <widget class="QLabel" name="labelCursorType">
+       <item row="5" column="0">
+        <widget class="QLabel" name="labelTranslation">
          <property name="text">
-          <string>Cursor</string>
+          <string>Heroes III Translation</string>
          </property>
         </widget>
        </item>
-       <item row="22" column="3">
-        <widget class="QPushButton" name="openUserDataDir">
+       <item row="24" column="0">
+        <widget class="QLabel" name="labelRepositoryDefault">
          <property name="text">
-          <string>Open</string>
+          <string>Default repository</string>
          </property>
         </widget>
        </item>
-       <item row="1" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxLanguage"/>
-       </item>
-       <item row="18" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxFriendlyAI">
-         <property name="editable">
-          <bool>false</bool>
-         </property>
-         <property name="currentText">
-          <string notr="true">BattleAI</string>
+       <item row="23" column="1" colspan="2">
+        <widget class="QComboBox" name="comboBoxAutoCheck">
+         <property name="currentIndex">
+          <number>1</number>
          </property>
          <item>
           <property name="text">
-           <string notr="true">BattleAI</string>
+           <string>Off</string>
           </property>
          </item>
          <item>
           <property name="text">
-           <string notr="true">StupidAI</string>
+           <string>On</string>
           </property>
          </item>
         </widget>
        </item>
-       <item row="11" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxFullScreen">
+       <item row="13" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxShowIntro">
          <property name="currentIndex">
-          <number>0</number>
+          <number>1</number>
          </property>
          <item>
           <property name="text">
-           <string>Windowed</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string>Borderless fullscreen</string>
+           <string>Off</string>
           </property>
          </item>
          <item>
           <property name="text">
-           <string>Exclusive fullscreen</string>
+           <string>On</string>
           </property>
          </item>
         </widget>
        </item>
-       <item row="6" column="1" colspan="3">
-        <widget class="QSpinBox" name="spinBoxNetworkPort">
-         <property name="minimum">
-          <number>1024</number>
-         </property>
-         <property name="maximum">
-          <number>65535</number>
-         </property>
-         <property name="value">
-          <number>3030</number>
+       <item row="5" column="4">
+        <widget class="QPushButton" name="pushButtonTranslation">
+         <property name="text">
+          <string/>
          </property>
         </widget>
        </item>
-       <item row="23" column="3">
-        <widget class="QPushButton" name="openTempDir">
+       <item row="14" column="0">
+        <widget class="QLabel" name="labelDisplayIndex">
          <property name="text">
-          <string>Open</string>
+          <string>Display index</string>
          </property>
         </widget>
        </item>
-       <item row="7" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxAutoSave">
-         <property name="currentIndex">
-          <number>1</number>
-         </property>
+       <item row="15" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxCursorType">
          <item>
           <property name="text">
-           <string>Off</string>
+           <string>Hardware</string>
           </property>
          </item>
          <item>
           <property name="text">
-           <string>On</string>
+           <string>Software</string>
           </property>
          </item>
         </widget>
        </item>
-       <item row="20" column="0">
-        <widget class="QLabel" name="labelDataDirs">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
+       <item row="10" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxFullScreen">
+         <property name="toolTip">
+          <string>Select display mode for game
+
+Windowed - game will run inside a window that covers part of your screen
+
+Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
+
+Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</string>
          </property>
-         <property name="text">
-          <string>Data Directories</string>
+         <property name="currentIndex">
+          <number>0</number>
          </property>
+         <item>
+          <property name="text">
+           <string>Windowed</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Borderless fullscreen</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Exclusive fullscreen</string>
+          </property>
+         </item>
         </widget>
        </item>
-       <item row="21" column="2">
-        <widget class="QPushButton" name="changeGameDataDir">
-         <property name="enabled">
-          <bool>false</bool>
-         </property>
+       <item row="25" column="1">
+        <widget class="QCheckBox" name="checkBoxRepositoryExtra">
          <property name="text">
-          <string>Change</string>
+          <string/>
          </property>
-        </widget>
-       </item>
-       <item row="22" column="0">
-        <widget class="QLabel" name="labelUserDataDir">
-         <property name="text">
-          <string>User data directory</string>
+         <property name="checked">
+          <bool>true</bool>
          </property>
         </widget>
        </item>
-       <item row="8" column="0">
-        <widget class="QLabel" name="labelBuildVersionDesc">
+       <item row="1" column="0">
+        <widget class="QLabel" name="labelLanguage">
          <property name="text">
-          <string>Build version</string>
+          <string>VCMI Language</string>
          </property>
         </widget>
        </item>
-       <item row="0" column="0">
-        <widget class="QLabel" name="labelGeneral">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
+       <item row="6" column="1" colspan="4">
+        <widget class="QSpinBox" name="spinBoxNetworkPort">
+         <property name="minimum">
+          <number>1024</number>
          </property>
-         <property name="text">
-          <string>General</string>
+         <property name="maximum">
+          <number>65535</number>
+         </property>
+         <property name="value">
+          <number>3030</number>
          </property>
         </widget>
        </item>
-       <item row="12" column="0">
+       <item row="13" column="0">
         <widget class="QLabel" name="labelShowIntro">
          <property name="text">
           <string>Show intro</string>
          </property>
         </widget>
        </item>
-       <item row="25" column="2" colspan="2">
-        <widget class="QPushButton" name="updatesButton">
-         <property name="text">
-          <string>Update now</string>
-         </property>
-        </widget>
-       </item>
-       <item row="13" column="0">
-        <widget class="QLabel" name="labelDisplayIndex">
+       <item row="5" column="1" colspan="3">
+        <widget class="QLabel" name="labelTranslationStatus">
          <property name="text">
-          <string>Display index</string>
+          <string/>
          </property>
         </widget>
        </item>
-       <item row="21" column="1">
-        <widget class="QLineEdit" name="lineEditGameDir">
-         <property name="text">
-          <string notr="true">/usr/share/vcmi</string>
+       <item row="20" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxFriendlyAI">
+         <property name="editable">
+          <bool>false</bool>
          </property>
-        </widget>
-       </item>
-       <item row="17" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxNeutralAI">
          <property name="currentText">
           <string notr="true">BattleAI</string>
          </property>
@@ -400,11 +392,18 @@
          </item>
         </widget>
        </item>
-       <item row="10" column="1" colspan="3">
+       <item row="19" column="0">
+        <widget class="QLabel" name="labelNeutralAI">
+         <property name="text">
+          <string>Neutral AI in battles</string>
+         </property>
+        </widget>
+       </item>
+       <item row="9" column="1" colspan="4">
         <widget class="QComboBox" name="comboBoxResolution"/>
        </item>
-       <item row="24" column="0">
-        <widget class="QLabel" name="labelRepositories">
+       <item row="0" column="0">
+        <widget class="QLabel" name="labelGeneral">
          <property name="font">
           <font>
            <weight>75</weight>
@@ -412,86 +411,62 @@
           </font>
          </property>
          <property name="text">
-          <string>Mod Repositories</string>
-         </property>
-        </widget>
-       </item>
-       <item row="18" column="0">
-        <widget class="QLabel" name="labelFriendlyAI">
-         <property name="text">
-          <string>Friendly AI</string>
+          <string>General</string>
          </property>
         </widget>
        </item>
-       <item row="25" column="0">
-        <widget class="QLabel" name="labelAutoCheck">
+       <item row="9" column="0">
+        <widget class="QLabel" name="labelResolution">
          <property name="text">
-          <string>Check on startup</string>
-         </property>
-        </widget>
-       </item>
-       <item row="12" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxShowIntro">
-         <property name="currentIndex">
-          <number>1</number>
+          <string>Resolution</string>
          </property>
-         <item>
-          <property name="text">
-           <string>Off</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string>On</string>
-          </property>
-         </item>
         </widget>
        </item>
-       <item row="22" column="1" colspan="2">
-        <widget class="QLineEdit" name="lineEditUserDataDir">
+       <item row="24" column="1">
+        <widget class="QCheckBox" name="checkBoxRepositoryDefault">
          <property name="enabled">
-          <bool>false</bool>
+          <bool>true</bool>
          </property>
          <property name="text">
-          <string notr="true">/home/user/.vcmi</string>
+          <string/>
          </property>
-         <property name="readOnly">
+         <property name="checked">
           <bool>true</bool>
          </property>
         </widget>
        </item>
-       <item row="21" column="0">
-        <widget class="QLabel" name="labelGameDir">
+       <item row="17" column="0">
+        <widget class="QLabel" name="labelEnemyPlayerAI">
          <property name="text">
-          <string>Extra data directory</string>
+          <string>Adventure Map Enemies</string>
          </property>
         </widget>
        </item>
-       <item row="21" column="3">
-        <widget class="QPushButton" name="openGameDataDir">
+       <item row="11" column="0">
+        <widget class="QLabel" name="labelInterfaceScaling">
          <property name="text">
-          <string>Open</string>
+          <string>Interface Scaling</string>
          </property>
         </widget>
        </item>
-       <item row="4" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxLanguageBase"/>
+       <item row="15" column="0">
+        <widget class="QLabel" name="labelCursorType">
+         <property name="text">
+          <string>Cursor</string>
+         </property>
+        </widget>
        </item>
-       <item row="25" column="1">
-        <widget class="QComboBox" name="comboBoxAutoCheck">
-         <property name="currentIndex">
-          <number>1</number>
+       <item row="11" column="1" colspan="4">
+        <widget class="QSpinBox" name="spinBoxInterfaceScaling">
+         <property name="minimum">
+          <number>50</number>
+         </property>
+         <property name="maximum">
+          <number>400</number>
+         </property>
+         <property name="singleStep">
+          <number>10</number>
          </property>
-         <item>
-          <property name="text">
-           <string>Off</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string>On</string>
-          </property>
-         </item>
         </widget>
        </item>
        <item row="4" column="0">
@@ -501,8 +476,15 @@
          </property>
         </widget>
        </item>
-       <item row="16" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxPlayerAI">
+       <item row="18" column="0">
+        <widget class="QLabel" name="labelAlliedPlayerAI">
+         <property name="text">
+          <string>Adventure Map Allies</string>
+         </property>
+        </widget>
+       </item>
+       <item row="17" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxEnemyPlayerAI">
          <property name="currentText">
           <string notr="true">VCAI</string>
          </property>
@@ -518,48 +500,58 @@
          </item>
         </widget>
        </item>
-       <item row="8" column="1" colspan="3">
-        <widget class="QLineEdit" name="lineEditBuildVersion">
+       <item row="4" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxLanguageBase"/>
+       </item>
+       <item row="25" column="0">
+        <widget class="QLabel" name="labelRepositoryExtra">
          <property name="text">
-          <string notr="true"/>
+          <string>Additional repository</string>
          </property>
-         <property name="readOnly">
-          <bool>true</bool>
+        </widget>
+       </item>
+       <item row="23" column="0">
+        <widget class="QLabel" name="labelAutoCheck">
+         <property name="text">
+          <string>Check on startup</string>
          </property>
         </widget>
        </item>
-       <item row="19" column="0">
-        <widget class="QLabel" name="labelEnemyAI">
+       <item row="23" column="3" colspan="2">
+        <widget class="QPushButton" name="refreshRepositoriesButton">
          <property name="text">
-          <string>Enemy AI</string>
+          <string>Refresh now</string>
          </property>
         </widget>
        </item>
-       <item row="26" column="0" colspan="4">
-        <widget class="QPlainTextEdit" name="plainTextEditRepos">
-         <property name="lineWrapMode">
-          <enum>QPlainTextEdit::NoWrap</enum>
+       <item row="20" column="0">
+        <widget class="QLabel" name="labelFriendlyAI">
+         <property name="text">
+          <string>Friendly AI in battles</string>
          </property>
-         <property name="plainText">
-          <string notr="true">http://downloads.vcmi.eu/Mods/repository.json</string>
+        </widget>
+       </item>
+       <item row="10" column="0">
+        <widget class="QLabel" name="labelFullScreen">
+         <property name="text">
+          <string>Fullscreen</string>
          </property>
         </widget>
        </item>
-       <item row="14" column="1" colspan="3">
-        <widget class="QComboBox" name="comboBoxCursorType">
-         <item>
-          <property name="text">
-           <string>Hardware</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string>Software</string>
-          </property>
-         </item>
+       <item row="1" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxLanguage"/>
+       </item>
+       <item row="14" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxDisplayIndex"/>
+       </item>
+       <item row="7" column="0">
+        <widget class="QLabel" name="labelAutoSave">
+         <property name="text">
+          <string>Autosave</string>
+         </property>
         </widget>
        </item>
-       <item row="15" column="0">
+       <item row="16" column="0">
         <widget class="QLabel" name="labelArtificialIntelligence">
          <property name="font">
           <font>
@@ -572,38 +564,43 @@
          </property>
         </widget>
        </item>
-       <item row="23" column="0">
-        <widget class="QLabel" name="labelTempDir">
-         <property name="text">
-          <string>Log files directory</string>
+       <item row="21" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxEnemyAI">
+         <property name="editable">
+          <bool>false</bool>
          </property>
-        </widget>
-       </item>
-       <item row="16" column="0">
-        <widget class="QLabel" name="labelPlayerAI">
-         <property name="text">
-          <string>Adventure Map AI</string>
+         <property name="currentText">
+          <string notr="true">BattleAI</string>
          </property>
+         <item>
+          <property name="text">
+           <string notr="true">BattleAI</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string notr="true">StupidAI</string>
+          </property>
+         </item>
         </widget>
        </item>
-       <item row="5" column="0">
-        <widget class="QLabel" name="labelTranslation">
+       <item row="12" column="0">
+        <widget class="QLabel" name="labelFramerateLimit">
          <property name="text">
-          <string>Heroes III Translation</string>
+          <string>Framerate Limit</string>
          </property>
         </widget>
        </item>
-       <item row="5" column="3">
-        <widget class="QPushButton" name="pushButtonTranslation">
-         <property name="text">
-          <string/>
+       <item row="12" column="1" colspan="4">
+        <widget class="QSpinBox" name="spinBoxFramerateLimit">
+         <property name="minimum">
+          <number>20</number>
          </property>
-        </widget>
-       </item>
-       <item row="5" column="1" colspan="2">
-        <widget class="QLabel" name="labelTranslationStatus">
-         <property name="text">
-          <string/>
+         <property name="maximum">
+          <number>1000</number>
+         </property>
+         <property name="singleStep">
+          <number>10</number>
          </property>
         </widget>
        </item>

+ 322 - 178
launcher/translation/chinese.ts

@@ -1,6 +1,91 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.1" language="zh">
+<context>
+    <name>AboutProjectView</name>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="22"/>
+        <source>VCMI on Discord</source>
+        <translation type="unfinished">访问VCMI的Discord</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="29"/>
+        <source>Have a question? Found a bug? Want to help? Join us!</source>
+        <translation type="unfinished">有疑问?找到BUG?需要帮助?加入我们!</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="36"/>
+        <source>VCMI on Github</source>
+        <translation type="unfinished">访问VCMI的GUTHUB</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="55"/>
+        <source>Our Community</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="62"/>
+        <source>VCMI on Slack</source>
+        <translation type="unfinished">访问VCMI的Slack</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="98"/>
+        <source>Build Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="115"/>
+        <source>User data directory</source>
+        <translation type="unfinished">用户数据目录</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="122"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="129"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="193"/>
+        <source>Open</source>
+        <translation type="unfinished">打开</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="136"/>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="156"/>
+        <source>Game version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="163"/>
+        <source>Log files directory</source>
+        <translation type="unfinished">日志文件目录</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="176"/>
+        <source>Data Directories</source>
+        <translation type="unfinished">数据目录</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="213"/>
+        <source>Game data directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="220"/>
+        <source>Operating System</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="273"/>
+        <source>Project homepage</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="286"/>
+        <source>Report a bug</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>CModListModel</name>
     <message>
@@ -117,204 +202,204 @@
 <context>
     <name>CModListView</name>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="58"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="43"/>
         <source>Filter</source>
         <translation>过滤器</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="66"/>
         <source>All mods</source>
         <translation>所有模组</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="71"/>
         <source>Downloadable</source>
         <translation>可下载</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="76"/>
         <source>Installed</source>
         <translation>已安装</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="96"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
         <source>Updatable</source>
         <translation>可更新</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="101"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
         <source>Active</source>
         <translation>激活</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="106"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
         <source>Inactive</source>
         <translation>未激活</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="120"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="105"/>
         <source>Download &amp;&amp; refresh repositories</source>
         <translation>下载并刷新仓库</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="163"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="160"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
         <source>Description</source>
         <translation>详细介绍</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="208"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="206"/>
         <source>Changelog</source>
         <translation>修改日志</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="230"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="228"/>
         <source>Screenshots</source>
         <translation>截图</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="389"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="386"/>
         <source>Uninstall</source>
         <translation>卸载</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="424"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="421"/>
         <source>Enable</source>
         <translation>激活</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="459"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="456"/>
         <source>Disable</source>
         <translation>禁用</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="494"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="491"/>
         <source>Update</source>
         <translation>更新</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="529"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="526"/>
         <source>Install</source>
         <translation>安装</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="327"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="324"/>
         <source> %p% (%v KB out of %m KB)</source>
         <translation> %p% (%v KB 完成,总共 %m KB)</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="340"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="337"/>
         <source>Abort</source>
         <translation>终止</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="250"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="242"/>
         <source>Mod name</source>
         <translation>MOD名称</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="243"/>
         <source>Installed version</source>
         <translation>已安装的版本</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="244"/>
         <source>Latest version</source>
         <translation>最新版本</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
         <source>Download size</source>
         <translation>下载大小</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="256"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
         <source>Authors</source>
         <translation>作者</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="259"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
         <source>License</source>
         <translation>授权许可</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="254"/>
         <source>Contact</source>
         <translation>联系方式</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="263"/>
         <source>Compatibility</source>
         <translation>兼容性</translation>
     </message>
     <message>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="265"/>
         <location filename="../modManager/cmodlistview_moc.cpp" line="273"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="281"/>
         <source>Required VCMI version</source>
         <translation>需要VCMI版本</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
         <source>Supported VCMI version</source>
         <translation>支持的VCMI版本</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="276"/>
         <source>Supported VCMI versions</source>
         <translation>支持的VCMI版本</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="303"/>
         <source>Languages</source>
         <translation>语言</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="305"/>
         <source>Required mods</source>
         <translation>前置MODs</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="306"/>
         <source>Conflicting mods</source>
         <translation>冲突的MODs</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="319"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
         <source>This mod can not be installed or enabled because the following dependencies are not present</source>
         <translation>这个模组无法被安装或者激活,因为下列依赖项未满足</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="312"/>
         <source>This mod can not be enabled because the following mods are incompatible with it</source>
         <translation>这个模组无法被激活,因为下列模组与其不兼容</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
         <source>This mod cannot be disabled because it is required by the following mods</source>
         <translation>这个模组无法被禁用,因为它被下列模组所依赖</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="322"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
         <source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
         <translation>这个模组无法被卸载或者更新,因为它被下列模组所依赖</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="323"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
         <source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
         <translation>这是一个附属模组它无法在所属模组外被直接被安装或者卸载</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="338"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="330"/>
         <source>Notes</source>
         <translation>笔记注释</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="840"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="827"/>
         <source>Screenshot %1</source>
         <translation>截图 %1</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="245"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="237"/>
         <source>Mod is incompatible</source>
         <translation>MOD不兼容</translation>
     </message>
@@ -322,207 +407,231 @@
 <context>
     <name>CSettingsView</name>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="327"/>
-        <source>Change</source>
-        <translation>更改</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="222"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="287"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="473"/>
         <source>Open</source>
-        <translation>打开</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
-        <source>Adventure Map AI</source>
-        <translation>冒险地图AI</translation>
+        <translation type="vanished">打开</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="334"/>
         <source>User data directory</source>
-        <translation>用户数据目录</translation>
+        <translation type="vanished">用户数据目录</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="256"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="298"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="440"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="487"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="190"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="245"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="262"/>
         <source>Off</source>
         <translation>关闭</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="79"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="576"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="563"/>
         <source>Artificial Intelligence</source>
         <translation>人工智能</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="89"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="415"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
         <source>Mod Repositories</source>
         <translation>模组仓库</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="368"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="448"/>
+        <source>Interface Scaling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="398"/>
+        <source>Neutral AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="203"/>
+        <source>Enemy AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="509"/>
+        <source>Additional repository</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="482"/>
+        <source>Adventure Map Allies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="441"/>
+        <source>Adventure Map Enemies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="316"/>
+        <source>Windowed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="321"/>
+        <source>Borderless fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="326"/>
+        <source>Exclusive fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="530"/>
+        <source>Friendly AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
+        <source>Framerate Limit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="523"/>
+        <source>Refresh now</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="234"/>
+        <source>Default repository</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Update now</source>
-        <translation>立即更新</translation>
+        <translation type="vanished">立即更新</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="261"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="445"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="492"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="195"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="250"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="267"/>
         <source>On</source>
         <translation>开启</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="215"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="455"/>
         <source>Cursor</source>
         <translation>鼠标指针</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="500"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="475"/>
         <source>Heroes III Data Language</source>
         <translation>英雄无敌3数据语言</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="552"/>
-        <source>Default</source>
-        <translation>默认</translation>
+        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
+        <source>Select display mode for game
+
+Windowed - game will run inside a window that covers part of your screen
+
+Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
+
+Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="557"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="290"/>
         <source>Hardware</source>
         <translation>硬件</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="562"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="295"/>
         <source>Software</source>
         <translation>软件</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="597"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="227"/>
         <source>Heroes III Translation</source>
         <translatorcomment>发布版本里找不到这个项,不太清楚意义</translatorcomment>
         <translation>英雄无敌3翻译</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="429"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="516"/>
         <source>Check on startup</source>
         <translation>启动时检查更新</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="158"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="537"/>
         <source>Fullscreen</source>
         <translation>全屏</translation>
     </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="172"/>
-        <source>Neutral AI</source>
-        <translation>中立AI</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="266"/>
-        <source>Real</source>
-        <translatorcomment>该模式下将以非窗口化全屏模式运行</translatorcomment>
-        <translation>真全屏</translation>
-    </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="69"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="354"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="414"/>
         <source>General</source>
         <translation>通用设置</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="144"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="344"/>
         <source>VCMI Language</source>
         <translation>VCMI语言</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="422"/>
-        <source>Friendly AI</source>
-        <translation>友军AI</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="165"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="421"/>
         <source>Resolution</source>
         <translation>分辨率</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="550"/>
         <source>Autosave</source>
         <translation>自动存档</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="375"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="282"/>
         <source>Display index</source>
         <translation>显示器序号</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="151"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="166"/>
         <source>Network port</source>
         <translation>网络端口</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="317"/>
         <source>Data Directories</source>
-        <translation>数据目录</translation>
+        <translation type="vanished">数据目录</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="74"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="192"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="125"/>
         <source>Video</source>
         <translation>视频设置</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="466"/>
-        <source>Extra data directory</source>
-        <translation>额外数据目录</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="583"/>
         <source>Log files directory</source>
-        <translation>日志文件目录</translation>
+        <translation type="vanished">日志文件目录</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="361"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="364"/>
         <source>Show intro</source>
         <translation>显示开场动画</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="341"/>
         <source>Build version</source>
-        <translation>版本号</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="534"/>
-        <source>Enemy AI</source>
-        <translation>敌军AI</translation>
+        <translation type="vanished">版本号</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="385"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="401"/>
         <source>Active</source>
         <translation>激活</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="390"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="406"/>
         <source>Disabled</source>
         <translation>禁用</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="391"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
         <source>Enable</source>
         <translation>启用</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="396"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="412"/>
         <source>Not Installed</source>
         <translation>未安装</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="397"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
         <source>Install</source>
         <translation>安装</translation>
     </message>
@@ -545,17 +654,17 @@
         <translation>预设模组</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="146"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="127"/>
         <source>Select your language</source>
         <translation>选择您的语言</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="196"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="177"/>
         <source>Have a question? Found a bug? Want to help? Join us!</source>
         <translation>有疑问?找到BUG?需要帮助?加入我们!</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="205"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="186"/>
         <source>Thank you for installing VCMI!
 
 Before you can start playing, there are a few more steps that need to be completed.
@@ -572,149 +681,144 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
 目前不支持《英雄无敌3高清版》!</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="276"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="257"/>
         <source>Locate Heroes III data files</source>
         <translation>定位英雄无敌3数据文件</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="365"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="346"/>
         <source>If you don&apos;t have a copy of Heroes III installed, you can use our automatic installation tool &apos;vcmibuilder&apos;, which only requires the GoG.com Heroes III installer. Please visit our wiki for detailed instructions.</source>
         <translation>如果你还没有安装《英雄无敌3》的游戏,你可以使用我们的自动安装工具“vcmibuilder”,它只需要GoG.com的《英雄无敌3》安装程序。请访问我们的维基了解详细说明。</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="381"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="362"/>
         <source>To run VCMI, Heroes III data files need to be present in one of the specified locations. Please copy the Heroes III data to one of these directories.</source>
         <translation>要运行VCMI,英雄无敌3的数据文件需要存在于指定位置之一。请将英雄III的数据复制到这些目录之一。</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="416"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="397"/>
         <source>Alternatively, you can provide the directory where Heroes III data is installed and VCMI will copy the existing data automatically.</source>
         <translation>除此之外,您也可以提供安装英雄无敌3数据的目录,VCMI将自动复制现有数据。</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="445"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="426"/>
         <source>Your Heroes III data files have been successfully found.</source>
         <translation>成功的找到英雄无敌3数据文件。</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="466"/>
         <source>The automatic detection of the Heroes III language has failed. Please select the language of your Heroes III manually</source>
         <translation>自动检测英雄无敌3语言失败。请手动选择英雄无敌3语言</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="759"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="740"/>
         <source>Install a translation of Heroes III in your preferred language</source>
         <translation>安装与您英雄无敌3语言相符的翻译</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="775"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="756"/>
         <source>Optionally, you can install additional mods either now, or at any point later, using the VCMI Launcher</source>
         <translation>你可以现在选择安装额外模组或是以后使用VCMI启动器安装模组</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="791"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="772"/>
         <source>Install support for playing Heroes III in resolutions higher than 800x600</source>
         <translation>安装英雄无敌3的800x600以上分辨率支持</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="807"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="788"/>
         <source>Install compatible version of &quot;Horn of the Abyss&quot;, a fan-made Heroes III expansion ported by the VCMI team</source>
         <translation>安装兼容版本的“深渊的号角”,一个由爱好者制作的英雄无敌3扩展包,由VCMI团队移植</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="823"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="804"/>
         <source>Install compatible version of &quot;In The Wake of Gods&quot;, a fan-made Heroes III expansion</source>
         <translation>安装兼容版本的“追随神迹”,一个由爱好者制作的英雄无敌3扩展包</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="870"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="851"/>
         <source>Finish</source>
         <translation>完成</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="111"/>
-        <source>Step %v out of %m</source>
-        <translation>步骤%v/%m</translation>
-    </message>
-    <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="175"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="156"/>
         <source>VCMI on Github</source>
         <translation>访问VCMI的GUTHUB</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="182"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="163"/>
         <source>VCMI on Slack</source>
         <translation>访问VCMI的Slack</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="189"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="170"/>
         <source>VCMI on Discord</source>
         <translation>访问VCMI的Discord</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="239"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="554"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="220"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="535"/>
         <source>Next</source>
         <translation>下一步</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="307"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="288"/>
         <source>Open help in browser</source>
         <translation>在浏览器中打开帮助</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="320"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="301"/>
         <source>Search again</source>
         <translation>再次搜索</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="403"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="384"/>
         <source>Heroes III data files</source>
         <translation>英雄无敌3数据文件</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="432"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="413"/>
         <source>Copy existing data</source>
         <translation>复制已存在的数据</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="475"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="456"/>
         <source>Your Heroes III language has been successfully detected.</source>
         <translation>已经成功检测英雄无敌3语言。</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="504"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
         <source>Heroes III language</source>
         <translation>英雄无敌3语言</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="547"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="863"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="528"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="844"/>
         <source>Back</source>
         <translation>返回</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="585"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="566"/>
         <source>Install VCMI Mod Preset</source>
         <translation>安装VCMI预设MOD</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="635"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="616"/>
         <source>Horn of the Abyss</source>
         <translation>深渊的号角</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="657"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="638"/>
         <source>Heroes III Translation</source>
         <translation>英雄无敌3翻译</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="721"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="702"/>
         <source>High Definition Support</source>
         <translation>高分辨率支持</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="743"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="724"/>
         <source>In The Wake of Gods</source>
         <translation>追随神迹</translation>
     </message>
@@ -731,66 +835,101 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
     <name>Language</name>
     <message>
         <location filename="../languages.cpp" line="23"/>
+        <source>Czech</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="24"/>
         <source>Chinese</source>
         <translation>简体中文</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="24"/>
+        <location filename="../languages.cpp" line="25"/>
         <source>English</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="25"/>
+        <location filename="../languages.cpp" line="26"/>
+        <source>Finnish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="27"/>
         <source>French</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="26"/>
+        <location filename="../languages.cpp" line="28"/>
         <source>German</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="27"/>
+        <location filename="../languages.cpp" line="29"/>
+        <source>Hungarian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="30"/>
+        <source>Italian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="31"/>
         <source>Korean</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="28"/>
+        <location filename="../languages.cpp" line="32"/>
         <source>Polish</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="29"/>
+        <location filename="../languages.cpp" line="33"/>
+        <source>Portuguese</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="34"/>
         <source>Russian</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="30"/>
+        <location filename="../languages.cpp" line="35"/>
         <source>Spanish</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="31"/>
+        <location filename="../languages.cpp" line="36"/>
+        <source>Swedish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="37"/>
+        <source>Turkish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="38"/>
         <source>Ukrainian</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="32"/>
+        <location filename="../languages.cpp" line="39"/>
         <source>Other (East European)</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="33"/>
+        <location filename="../languages.cpp" line="40"/>
         <source>Other (Cyrillic Script)</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="34"/>
+        <location filename="../languages.cpp" line="41"/>
         <source>Other (West European)</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="56"/>
+        <location filename="../languages.cpp" line="63"/>
         <source>Auto (%1)</source>
         <translation>自动 (%1)</translation>
     </message>
@@ -930,12 +1069,17 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation>设置</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="226"/>
+        <location filename="../mainwindow_moc.ui" line="207"/>
+        <source>Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow_moc.ui" line="276"/>
         <source>Map Editor</source>
         <translation>地图编辑器</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="279"/>
+        <location filename="../mainwindow_moc.ui" line="329"/>
         <source>Start game</source>
         <translation>开始游戏</translation>
     </message>

+ 298 - 177
launcher/translation/english.ts

@@ -1,6 +1,91 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.1" language="en_US">
+<context>
+    <name>AboutProjectView</name>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="22"/>
+        <source>VCMI on Discord</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="29"/>
+        <source>Have a question? Found a bug? Want to help? Join us!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="36"/>
+        <source>VCMI on Github</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="55"/>
+        <source>Our Community</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="62"/>
+        <source>VCMI on Slack</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="98"/>
+        <source>Build Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="115"/>
+        <source>User data directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="122"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="129"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="193"/>
+        <source>Open</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="136"/>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="156"/>
+        <source>Game version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="163"/>
+        <source>Log files directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="176"/>
+        <source>Data Directories</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="213"/>
+        <source>Game data directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="220"/>
+        <source>Operating System</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="273"/>
+        <source>Project homepage</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="286"/>
+        <source>Report a bug</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>CModListModel</name>
     <message>
@@ -116,204 +201,204 @@
 <context>
     <name>CModListView</name>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="58"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="43"/>
         <source>Filter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="66"/>
         <source>All mods</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="71"/>
         <source>Downloadable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="76"/>
         <source>Installed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="96"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
         <source>Updatable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="101"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
         <source>Active</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="106"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
         <source>Inactive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="120"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="105"/>
         <source>Download &amp;&amp; refresh repositories</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="163"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="160"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="208"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="206"/>
         <source>Changelog</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="230"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="228"/>
         <source>Screenshots</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="389"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="386"/>
         <source>Uninstall</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="424"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="421"/>
         <source>Enable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="459"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="456"/>
         <source>Disable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="494"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="491"/>
         <source>Update</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="529"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="526"/>
         <source>Install</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="327"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="324"/>
         <source> %p% (%v KB out of %m KB)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="340"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="337"/>
         <source>Abort</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="250"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="242"/>
         <source>Mod name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="243"/>
         <source>Installed version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="244"/>
         <source>Latest version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
         <source>Download size</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="256"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
         <source>Authors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="259"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
         <source>License</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="254"/>
         <source>Contact</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="263"/>
         <source>Compatibility</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="265"/>
         <location filename="../modManager/cmodlistview_moc.cpp" line="273"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="281"/>
         <source>Required VCMI version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
         <source>Supported VCMI version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="276"/>
         <source>Supported VCMI versions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="303"/>
         <source>Languages</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="305"/>
         <source>Required mods</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="306"/>
         <source>Conflicting mods</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="319"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
         <source>This mod can not be installed or enabled because the following dependencies are not present</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="312"/>
         <source>This mod can not be enabled because the following mods are incompatible with it</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
         <source>This mod cannot be disabled because it is required by the following mods</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="322"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
         <source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="323"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
         <source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="338"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="330"/>
         <source>Notes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="840"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="827"/>
         <source>Screenshot %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="245"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="237"/>
         <source>Mod is incompatible</source>
         <translation type="unfinished"></translation>
     </message>
@@ -321,205 +406,206 @@
 <context>
     <name>CSettingsView</name>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="327"/>
-        <source>Change</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="190"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="245"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="262"/>
+        <source>Off</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="222"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="287"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="473"/>
-        <source>Open</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="79"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="563"/>
+        <source>Artificial Intelligence</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
-        <source>Adventure Map AI</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
+        <source>Mod Repositories</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="334"/>
-        <source>User data directory</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="448"/>
+        <source>Interface Scaling</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="256"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="298"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="440"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="487"/>
-        <source>Off</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="398"/>
+        <source>Neutral AI in battles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="79"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="576"/>
-        <source>Artificial Intelligence</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="203"/>
+        <source>Enemy AI in battles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="89"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="415"/>
-        <source>Mod Repositories</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="509"/>
+        <source>Additional repository</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="368"/>
-        <source>Update now</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="482"/>
+        <source>Adventure Map Allies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="261"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="445"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="492"/>
-        <source>On</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="441"/>
+        <source>Adventure Map Enemies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="215"/>
-        <source>Cursor</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="316"/>
+        <source>Windowed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="500"/>
-        <source>Heroes III Data Language</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="321"/>
+        <source>Borderless fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="552"/>
-        <source>Default</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="326"/>
+        <source>Exclusive fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="557"/>
-        <source>Hardware</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="530"/>
+        <source>Friendly AI in battles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="562"/>
-        <source>Software</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
+        <source>Framerate Limit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="597"/>
-        <source>Heroes III Translation</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="523"/>
+        <source>Refresh now</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="429"/>
-        <source>Check on startup</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="234"/>
+        <source>Default repository</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="158"/>
-        <source>Fullscreen</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="195"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="250"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="267"/>
+        <source>On</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="172"/>
-        <source>Neutral AI</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="455"/>
+        <source>Cursor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="266"/>
-        <source>Real</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="475"/>
+        <source>Heroes III Data Language</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="69"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="354"/>
-        <source>General</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
+        <source>Select display mode for game
+
+Windowed - game will run inside a window that covers part of your screen
+
+Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
+
+Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="144"/>
-        <source>VCMI Language</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="290"/>
+        <source>Hardware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="422"/>
-        <source>Friendly AI</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="295"/>
+        <source>Software</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="165"/>
-        <source>Resolution</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="227"/>
+        <source>Heroes III Translation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
-        <source>Autosave</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="516"/>
+        <source>Check on startup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="375"/>
-        <source>Display index</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="537"/>
+        <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="151"/>
-        <source>Network port</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="69"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="414"/>
+        <source>General</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="317"/>
-        <source>Data Directories</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="344"/>
+        <source>VCMI Language</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="74"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="192"/>
-        <source>Video</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="421"/>
+        <source>Resolution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="466"/>
-        <source>Extra data directory</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="550"/>
+        <source>Autosave</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="583"/>
-        <source>Log files directory</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="282"/>
+        <source>Display index</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="361"/>
-        <source>Show intro</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="166"/>
+        <source>Network port</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="341"/>
-        <source>Build version</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="74"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="125"/>
+        <source>Video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="534"/>
-        <source>Enemy AI</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="364"/>
+        <source>Show intro</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="385"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="401"/>
         <source>Active</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="390"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="406"/>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="391"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
         <source>Enable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="396"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="412"/>
         <source>Not Installed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="397"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
         <source>Install</source>
         <translation type="unfinished"></translation>
     </message>
@@ -542,17 +628,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="146"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="127"/>
         <source>Select your language</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="196"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="177"/>
         <source>Have a question? Found a bug? Want to help? Join us!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="205"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="186"/>
         <source>Thank you for installing VCMI!
 
 Before you can start playing, there are a few more steps that need to be completed.
@@ -563,149 +649,144 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="276"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="257"/>
         <source>Locate Heroes III data files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="365"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="346"/>
         <source>If you don&apos;t have a copy of Heroes III installed, you can use our automatic installation tool &apos;vcmibuilder&apos;, which only requires the GoG.com Heroes III installer. Please visit our wiki for detailed instructions.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="381"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="362"/>
         <source>To run VCMI, Heroes III data files need to be present in one of the specified locations. Please copy the Heroes III data to one of these directories.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="416"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="397"/>
         <source>Alternatively, you can provide the directory where Heroes III data is installed and VCMI will copy the existing data automatically.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="445"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="426"/>
         <source>Your Heroes III data files have been successfully found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="466"/>
         <source>The automatic detection of the Heroes III language has failed. Please select the language of your Heroes III manually</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="759"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="740"/>
         <source>Install a translation of Heroes III in your preferred language</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="775"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="756"/>
         <source>Optionally, you can install additional mods either now, or at any point later, using the VCMI Launcher</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="791"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="772"/>
         <source>Install support for playing Heroes III in resolutions higher than 800x600</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="807"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="788"/>
         <source>Install compatible version of &quot;Horn of the Abyss&quot;, a fan-made Heroes III expansion ported by the VCMI team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="823"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="804"/>
         <source>Install compatible version of &quot;In The Wake of Gods&quot;, a fan-made Heroes III expansion</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="870"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="851"/>
         <source>Finish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="111"/>
-        <source>Step %v out of %m</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="175"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="156"/>
         <source>VCMI on Github</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="182"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="163"/>
         <source>VCMI on Slack</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="189"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="170"/>
         <source>VCMI on Discord</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="239"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="554"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="220"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="535"/>
         <source>Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="307"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="288"/>
         <source>Open help in browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="320"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="301"/>
         <source>Search again</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="403"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="384"/>
         <source>Heroes III data files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="432"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="413"/>
         <source>Copy existing data</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="475"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="456"/>
         <source>Your Heroes III language has been successfully detected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="504"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
         <source>Heroes III language</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="547"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="863"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="528"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="844"/>
         <source>Back</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="585"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="566"/>
         <source>Install VCMI Mod Preset</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="635"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="616"/>
         <source>Horn of the Abyss</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="657"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="638"/>
         <source>Heroes III Translation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="721"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="702"/>
         <source>High Definition Support</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="743"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="724"/>
         <source>In The Wake of Gods</source>
         <translation type="unfinished"></translation>
     </message>
@@ -722,66 +803,101 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
     <name>Language</name>
     <message>
         <location filename="../languages.cpp" line="23"/>
-        <source>Chinese</source>
+        <source>Czech</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="24"/>
-        <source>English</source>
+        <source>Chinese</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="25"/>
-        <source>French</source>
+        <source>English</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="26"/>
-        <source>German</source>
+        <source>Finnish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="27"/>
-        <source>Korean</source>
+        <source>French</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="28"/>
-        <source>Polish</source>
+        <source>German</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="29"/>
-        <source>Russian</source>
+        <source>Hungarian</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="30"/>
-        <source>Spanish</source>
+        <source>Italian</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="31"/>
-        <source>Ukrainian</source>
+        <source>Korean</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="32"/>
-        <source>Other (East European)</source>
+        <source>Polish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="33"/>
-        <source>Other (Cyrillic Script)</source>
+        <source>Portuguese</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="34"/>
+        <source>Russian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="35"/>
+        <source>Spanish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="36"/>
+        <source>Swedish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="37"/>
+        <source>Turkish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="38"/>
+        <source>Ukrainian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="39"/>
+        <source>Other (East European)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="40"/>
+        <source>Other (Cyrillic Script)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="41"/>
         <source>Other (West European)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="56"/>
+        <location filename="../languages.cpp" line="63"/>
         <source>Auto (%1)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -921,12 +1037,17 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="226"/>
+        <location filename="../mainwindow_moc.ui" line="207"/>
+        <source>Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow_moc.ui" line="276"/>
         <source>Map Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="279"/>
+        <location filename="../mainwindow_moc.ui" line="329"/>
         <source>Start game</source>
         <translation type="unfinished"></translation>
     </message>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 698 - 553
launcher/translation/french.ts


+ 322 - 177
launcher/translation/german.ts

@@ -1,6 +1,91 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.1" language="de">
+<context>
+    <name>AboutProjectView</name>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="22"/>
+        <source>VCMI on Discord</source>
+        <translation type="unfinished">VCMI auf Discord</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="29"/>
+        <source>Have a question? Found a bug? Want to help? Join us!</source>
+        <translation type="unfinished">Haben Sie eine Frage? Einen Fehler gefunden? Möchten Sie helfen? Machen Sie mit:</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="36"/>
+        <source>VCMI on Github</source>
+        <translation type="unfinished">VCMI auf Github</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="55"/>
+        <source>Our Community</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="62"/>
+        <source>VCMI on Slack</source>
+        <translation type="unfinished">VCMI auf Slack</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="98"/>
+        <source>Build Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="115"/>
+        <source>User data directory</source>
+        <translation type="unfinished">Verzeichnis der Benutzerdaten</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="122"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="129"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="193"/>
+        <source>Open</source>
+        <translation type="unfinished">Öffnen</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="136"/>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="156"/>
+        <source>Game version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="163"/>
+        <source>Log files directory</source>
+        <translation type="unfinished">Verzeichnis der Log-Dateien</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="176"/>
+        <source>Data Directories</source>
+        <translation type="unfinished">Daten-Verzeichnisse</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="213"/>
+        <source>Game data directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="220"/>
+        <source>Operating System</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="273"/>
+        <source>Project homepage</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="286"/>
+        <source>Report a bug</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>CModListModel</name>
     <message>
@@ -116,204 +201,204 @@
 <context>
     <name>CModListView</name>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="58"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="43"/>
         <source>Filter</source>
         <translation>Filter</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="66"/>
         <source>All mods</source>
         <translation>Alle Mods</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="71"/>
         <source>Downloadable</source>
         <translation>Herunterladbar</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="76"/>
         <source>Installed</source>
         <translation>Installiert</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="96"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
         <source>Updatable</source>
         <translation>Aktualisierbar</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="101"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
         <source>Active</source>
         <translation>Aktiv</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="106"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
         <source>Inactive</source>
         <translation>Inaktiv</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="120"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="105"/>
         <source>Download &amp;&amp; refresh repositories</source>
         <translation>Repositories herunterladen &amp;&amp; aktualisieren</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="163"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="160"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="208"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="206"/>
         <source>Changelog</source>
         <translation>Änderungslog</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="230"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="228"/>
         <source>Screenshots</source>
         <translation>Screenshots</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="389"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="386"/>
         <source>Uninstall</source>
         <translation>Deinstallieren</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="424"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="421"/>
         <source>Enable</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="459"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="456"/>
         <source>Disable</source>
         <translation>Deaktivieren</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="494"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="491"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="529"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="526"/>
         <source>Install</source>
         <translation>Installieren</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="327"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="324"/>
         <source> %p% (%v KB out of %m KB)</source>
         <translation> %p% (%v КB von %m КB)</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="340"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="337"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="250"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="242"/>
         <source>Mod name</source>
         <translation>Mod-Name</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="243"/>
         <source>Installed version</source>
         <translation>Installierte Version</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="244"/>
         <source>Latest version</source>
         <translation>Letzte Version</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
         <source>Download size</source>
         <translation>Downloadgröße</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="256"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
         <source>Authors</source>
         <translation>Autoren</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="259"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
         <source>License</source>
         <translation>Lizenz</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="254"/>
         <source>Contact</source>
         <translation>Kontakt</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="263"/>
         <source>Compatibility</source>
         <translation>Kompatibilität</translation>
     </message>
     <message>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="265"/>
         <location filename="../modManager/cmodlistview_moc.cpp" line="273"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="281"/>
         <source>Required VCMI version</source>
         <translation>Benötigte VCMI Version</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
         <source>Supported VCMI version</source>
         <translation>Unterstützte VCMI Version</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="276"/>
         <source>Supported VCMI versions</source>
         <translation>Unterstützte VCMI Versionen</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="303"/>
         <source>Languages</source>
         <translation>Sprachen</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="305"/>
         <source>Required mods</source>
         <translation>Benötigte Mods</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="306"/>
         <source>Conflicting mods</source>
         <translation>Mods mit Konflikt</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="319"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
         <source>This mod can not be installed or enabled because the following dependencies are not present</source>
         <translation type="unfinished">Diese Mod kann nicht installiert oder aktiviert werden, da die folgenden Abhängigkeiten nicht vorhanden sind</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="312"/>
         <source>This mod can not be enabled because the following mods are incompatible with it</source>
         <translation type="unfinished">Diese Mod kann nicht aktiviert werden, da folgende Mods nicht mit dieser Mod kompatibel sind</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
         <source>This mod cannot be disabled because it is required by the following mods</source>
         <translation type="unfinished">Diese Mod kann nicht deaktiviert werden, da sie zum Ausführen der folgenden Mods erforderlich ist</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="322"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
         <source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
         <translation type="unfinished">Diese Mod kann nicht deinstalliert oder aktualisiert werden, da sie für die folgenden Mods erforderlich ist</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="323"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
         <source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
         <translation type="unfinished">Dies ist eine Submod und kann nicht separat von der Hauptmod installiert oder deinstalliert werden</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="338"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="330"/>
         <source>Notes</source>
         <translation>Anmerkungen</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="840"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="827"/>
         <source>Screenshot %1</source>
         <translation>Screenshot %1</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="245"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="237"/>
         <source>Mod is incompatible</source>
         <translation>Mod ist inkompatibel</translation>
     </message>
@@ -321,205 +406,230 @@
 <context>
     <name>CSettingsView</name>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="327"/>
-        <source>Change</source>
-        <translation>Ändern</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="222"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="287"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="473"/>
         <source>Open</source>
-        <translation>Öffnen</translation>
+        <translation type="vanished">Öffnen</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
-        <source>Adventure Map AI</source>
-        <translation>Abenteuerkarte KI</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="334"/>
         <source>User data directory</source>
-        <translation>Verzeichnis der Benutzerdaten</translation>
+        <translation type="vanished">Verzeichnis der Benutzerdaten</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="256"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="298"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="440"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="487"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="190"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="245"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="262"/>
         <source>Off</source>
         <translation>Aus</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="79"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="576"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="563"/>
         <source>Artificial Intelligence</source>
         <translation>Künstliche Intelligenz</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="89"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="415"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
         <source>Mod Repositories</source>
         <translation>Mod-Repositorien</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="368"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="448"/>
+        <source>Interface Scaling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="398"/>
+        <source>Neutral AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="203"/>
+        <source>Enemy AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="509"/>
+        <source>Additional repository</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="482"/>
+        <source>Adventure Map Allies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="441"/>
+        <source>Adventure Map Enemies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="316"/>
+        <source>Windowed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="321"/>
+        <source>Borderless fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="326"/>
+        <source>Exclusive fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="530"/>
+        <source>Friendly AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
+        <source>Framerate Limit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="523"/>
+        <source>Refresh now</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="234"/>
+        <source>Default repository</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Update now</source>
-        <translation>Jetzt aktualisieren</translation>
+        <translation type="vanished">Jetzt aktualisieren</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="261"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="445"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="492"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="195"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="250"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="267"/>
         <source>On</source>
         <translation>An</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="215"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="455"/>
         <source>Cursor</source>
         <translation>Zeiger</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="500"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="475"/>
         <source>Heroes III Data Language</source>
         <translation>Sprache der Heroes III Daten</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="552"/>
-        <source>Default</source>
-        <translation>Standard</translation>
+        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
+        <source>Select display mode for game
+
+Windowed - game will run inside a window that covers part of your screen
+
+Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
+
+Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="557"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="290"/>
         <source>Hardware</source>
         <translation>Hardware</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="562"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="295"/>
         <source>Software</source>
         <translation>Software</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="597"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="227"/>
         <source>Heroes III Translation</source>
         <translation>Heroes III Übersetzung</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="429"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="516"/>
         <source>Check on startup</source>
         <translation>Beim Start prüfen</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="158"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="537"/>
         <source>Fullscreen</source>
         <translation>Vollbild</translation>
     </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="172"/>
-        <source>Neutral AI</source>
-        <translation>Neutrale KI</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="266"/>
-        <source>Real</source>
-        <translation>Vollständig</translation>
-    </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="69"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="354"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="414"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="144"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="344"/>
         <source>VCMI Language</source>
         <translation>VCMI-Sprache</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="422"/>
-        <source>Friendly AI</source>
-        <translation>Freundliche KI</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="165"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="421"/>
         <source>Resolution</source>
         <translation>Auflösung</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="550"/>
         <source>Autosave</source>
         <translation>Autospeichern</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="375"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="282"/>
         <source>Display index</source>
         <translation>Anzeige-Index</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="151"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="166"/>
         <source>Network port</source>
         <translation>Netzwerk-Port</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="317"/>
         <source>Data Directories</source>
-        <translation>Daten-Verzeichnisse</translation>
+        <translation type="vanished">Daten-Verzeichnisse</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="74"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="192"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="125"/>
         <source>Video</source>
         <translation>Video</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="466"/>
-        <source>Extra data directory</source>
-        <translation>Zusätzliches Daten-Verzeichnis</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="583"/>
         <source>Log files directory</source>
-        <translation>Verzeichnis der Log-Dateien</translation>
+        <translation type="vanished">Verzeichnis der Log-Dateien</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="361"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="364"/>
         <source>Show intro</source>
         <translation>Intro anzeigen</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="341"/>
         <source>Build version</source>
-        <translation>Version des Builds</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="534"/>
-        <source>Enemy AI</source>
-        <translation>Feindliche KI</translation>
+        <translation type="vanished">Version des Builds</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="385"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="401"/>
         <source>Active</source>
         <translation>Aktiv</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="390"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="406"/>
         <source>Disabled</source>
         <translation>Deaktiviert</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="391"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
         <source>Enable</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="396"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="412"/>
         <source>Not Installed</source>
         <translation>Nicht installiert</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="397"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
         <source>Install</source>
         <translation>Installieren</translation>
     </message>
@@ -542,17 +652,17 @@
         <translation>Mods Voreinstellung</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="146"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="127"/>
         <source>Select your language</source>
         <translation type="unfinished">Wählen Sie Ihre Sprache</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="196"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="177"/>
         <source>Have a question? Found a bug? Want to help? Join us!</source>
         <translation type="unfinished">Haben Sie eine Frage? Einen Fehler gefunden? Möchten Sie helfen? Machen Sie mit:</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="205"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="186"/>
         <source>Thank you for installing VCMI!
 
 Before you can start playing, there are a few more steps that need to be completed.
@@ -569,149 +679,144 @@ Denken Sie daran, dass Sie die Originaldateien, Heroes III: Complete Edition ode
 Heroes III: HD Edition wird derzeit nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="276"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="257"/>
         <source>Locate Heroes III data files</source>
         <translation type="unfinished">Heroes III Daten suchen</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="365"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="346"/>
         <source>If you don&apos;t have a copy of Heroes III installed, you can use our automatic installation tool &apos;vcmibuilder&apos;, which only requires the GoG.com Heroes III installer. Please visit our wiki for detailed instructions.</source>
         <translation type="unfinished">Wenn Sie keine Kopie von Heroes III installiert haben, können Sie unser automatisches Installationstool &apos;vcmibuilder&apos; verwenden, um Daten aus dem GoG.com-Installationsprogramm zu extrahieren. Besuchen Sie unser Wiki für detaillierte Anweisungen.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="381"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="362"/>
         <source>To run VCMI, Heroes III data files need to be present in one of the specified locations. Please copy the Heroes III data to one of these directories.</source>
         <translation type="unfinished">VCMI benötigt Heroes III Daten in einem der oben aufgeführten Verzeichnisse. Bitte kopieren Sie die Heroes III-Daten in eines dieser Verzeichnisse.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="416"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="397"/>
         <source>Alternatively, you can provide the directory where Heroes III data is installed and VCMI will copy the existing data automatically.</source>
         <translation type="unfinished">Alternativ können Sie ein Verzeichnis mit installierten Heroes III-Daten auswählen, und VCMI wird die vorhandenen Daten automatisch kopieren.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="445"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="426"/>
         <source>Your Heroes III data files have been successfully found.</source>
         <translation>Ihre Heroes III-Datendateien wurden erfolgreich gefunden.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="466"/>
         <source>The automatic detection of the Heroes III language has failed. Please select the language of your Heroes III manually</source>
         <translation type="unfinished">Automatische Erkennung der Sprache fehlgeschlagen. Bitte wählen Sie die Sprache Ihrer Heroes III Kopie</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="759"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="740"/>
         <source>Install a translation of Heroes III in your preferred language</source>
         <translation type="unfinished">Übersetzung von Heroes III für Ihre Sprache installieren</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="775"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="756"/>
         <source>Optionally, you can install additional mods either now, or at any point later, using the VCMI Launcher</source>
         <translation type="unfinished">Optional können Sie jetzt oder zu einem beliebigen späteren Zeitpunkt zusätzliche Mods installieren:</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="791"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="772"/>
         <source>Install support for playing Heroes III in resolutions higher than 800x600</source>
         <translation type="unfinished">Installieren Sie Unterstützung für das Spielen von Heroes III in anderen Auflösungen als 800x600.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="807"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="788"/>
         <source>Install compatible version of &quot;Horn of the Abyss&quot;, a fan-made Heroes III expansion ported by the VCMI team</source>
         <translation type="unfinished">Installieren Sie die kompatible Version des Addons Horn of the Abyss: eine von Fans entwickelte Heroes III-Erweiterung, portiert vom VCMI-Team</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="823"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="804"/>
         <source>Install compatible version of &quot;In The Wake of Gods&quot;, a fan-made Heroes III expansion</source>
         <translation type="unfinished">Installieren Sie die kompatible Version des Addons &quot;In The Wake of Gods&quot;: von Fans entwickelte Heroes III-Erweiterung</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="870"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="851"/>
         <source>Finish</source>
         <translation>Fertigstellen</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="111"/>
-        <source>Step %v out of %m</source>
-        <translation>Schritt %v von %m</translation>
-    </message>
-    <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="175"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="156"/>
         <source>VCMI on Github</source>
         <translation>VCMI auf Github</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="182"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="163"/>
         <source>VCMI on Slack</source>
         <translation>VCMI auf Slack</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="189"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="170"/>
         <source>VCMI on Discord</source>
         <translation>VCMI auf Discord</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="239"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="554"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="220"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="535"/>
         <source>Next</source>
         <translation>Weiter</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="307"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="288"/>
         <source>Open help in browser</source>
         <translation>Hilfe im Browser öffnen</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="320"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="301"/>
         <source>Search again</source>
         <translation>Erneut suchen</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="403"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="384"/>
         <source>Heroes III data files</source>
         <translation>Heroes III Dateien</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="432"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="413"/>
         <source>Copy existing data</source>
         <translation>Vorhandene Daten kopieren</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="475"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="456"/>
         <source>Your Heroes III language has been successfully detected.</source>
         <translation>Ihre Heroes III-Sprache wurde erfolgreich erkannt.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="504"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
         <source>Heroes III language</source>
         <translation>Heroes III Sprache</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="547"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="863"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="528"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="844"/>
         <source>Back</source>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="585"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="566"/>
         <source>Install VCMI Mod Preset</source>
         <translation>VCMI Mod Voreinstellung installieren</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="635"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="616"/>
         <source>Horn of the Abyss</source>
         <translation>Horn of the Abyss</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="657"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="638"/>
         <source>Heroes III Translation</source>
         <translation>Heroes III Übersetzung</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="721"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="702"/>
         <source>High Definition Support</source>
         <translation>Unterstützung für hohe Auflösungen</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="743"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="724"/>
         <source>In The Wake of Gods</source>
         <translation>In The Wake of Gods</translation>
     </message>
@@ -728,66 +833,101 @@ Heroes III: HD Edition wird derzeit nicht unterstützt</translation>
     <name>Language</name>
     <message>
         <location filename="../languages.cpp" line="23"/>
+        <source>Czech</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="24"/>
         <source>Chinese</source>
         <translation>Chinesisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="24"/>
+        <location filename="../languages.cpp" line="25"/>
         <source>English</source>
         <translation>Englisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="25"/>
+        <location filename="../languages.cpp" line="26"/>
+        <source>Finnish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="27"/>
         <source>French</source>
         <translation>Französisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="26"/>
+        <location filename="../languages.cpp" line="28"/>
         <source>German</source>
         <translation>Deutsch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="27"/>
+        <location filename="../languages.cpp" line="29"/>
+        <source>Hungarian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="30"/>
+        <source>Italian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="31"/>
         <source>Korean</source>
         <translation>Koreanisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="28"/>
+        <location filename="../languages.cpp" line="32"/>
         <source>Polish</source>
         <translation>Polnisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="29"/>
+        <location filename="../languages.cpp" line="33"/>
+        <source>Portuguese</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="34"/>
         <source>Russian</source>
         <translation>Russisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="30"/>
+        <location filename="../languages.cpp" line="35"/>
         <source>Spanish</source>
         <translation>Spanisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="31"/>
+        <location filename="../languages.cpp" line="36"/>
+        <source>Swedish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="37"/>
+        <source>Turkish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="38"/>
         <source>Ukrainian</source>
         <translation>Ukrainisch</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="32"/>
+        <location filename="../languages.cpp" line="39"/>
         <source>Other (East European)</source>
         <translation>Sonstige (osteuropäisch)</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="33"/>
+        <location filename="../languages.cpp" line="40"/>
         <source>Other (Cyrillic Script)</source>
         <translation>Sonstige (kyrillische Schrift)</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="34"/>
+        <location filename="../languages.cpp" line="41"/>
         <source>Other (West European)</source>
         <translation>Sonstige (westeuropäisch)</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="56"/>
+        <location filename="../languages.cpp" line="63"/>
         <source>Auto (%1)</source>
         <translation>Auto (%1)</translation>
     </message>
@@ -937,12 +1077,17 @@ Heroes III: HD Edition wird derzeit nicht unterstützt</translation>
         <translation>Lobby</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="226"/>
+        <location filename="../mainwindow_moc.ui" line="207"/>
+        <source>Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow_moc.ui" line="276"/>
         <source>Map Editor</source>
         <translation>Karteneditor</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="279"/>
+        <location filename="../mainwindow_moc.ui" line="329"/>
         <source>Start game</source>
         <translation>Spiel starten</translation>
     </message>

+ 322 - 177
launcher/translation/polish.ts

@@ -1,6 +1,91 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.1" language="pl_PL">
+<context>
+    <name>AboutProjectView</name>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="22"/>
+        <source>VCMI on Discord</source>
+        <translation type="unfinished">VCMI na Discordzie</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="29"/>
+        <source>Have a question? Found a bug? Want to help? Join us!</source>
+        <translation type="unfinished">Masz pytanie? Znalazłeś błąd? Chcesz pomóc? Dołącz do nas!</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="36"/>
+        <source>VCMI on Github</source>
+        <translation type="unfinished">VCMI na Github</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="55"/>
+        <source>Our Community</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="62"/>
+        <source>VCMI on Slack</source>
+        <translation type="unfinished">VCMI na Slacku</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="98"/>
+        <source>Build Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="115"/>
+        <source>User data directory</source>
+        <translation type="unfinished">Katalog danych użytkownika</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="122"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="129"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="193"/>
+        <source>Open</source>
+        <translation type="unfinished">Otwórz</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="136"/>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="156"/>
+        <source>Game version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="163"/>
+        <source>Log files directory</source>
+        <translation type="unfinished">Katalog logów</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="176"/>
+        <source>Data Directories</source>
+        <translation type="unfinished">Katalogi z danymi</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="213"/>
+        <source>Game data directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="220"/>
+        <source>Operating System</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="273"/>
+        <source>Project homepage</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="286"/>
+        <source>Report a bug</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>CModListModel</name>
     <message>
@@ -116,204 +201,204 @@
 <context>
     <name>CModListView</name>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="58"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="43"/>
         <source>Filter</source>
         <translation>Filtruj</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="66"/>
         <source>All mods</source>
         <translation>Wszystkie mody</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="71"/>
         <source>Downloadable</source>
         <translation>Dostępny do pobrania</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="76"/>
         <source>Installed</source>
         <translation>Zainstalowany</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="96"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
         <source>Updatable</source>
         <translation>Można zaktualizować</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="101"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
         <source>Active</source>
         <translation>Aktywny</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="106"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
         <source>Inactive</source>
         <translation>Nieaktywny</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="120"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="105"/>
         <source>Download &amp;&amp; refresh repositories</source>
         <translation>Pobierz i odśwież repozytoria</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="163"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="160"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
         <source>Description</source>
         <translation>Opis</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="208"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="206"/>
         <source>Changelog</source>
         <translation>Lista zmian</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="230"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="228"/>
         <source>Screenshots</source>
         <translation>Zrzuty ekranu</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="389"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="386"/>
         <source>Uninstall</source>
         <translation>Odinstaluj</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="424"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="421"/>
         <source>Enable</source>
         <translation>Włącz</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="459"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="456"/>
         <source>Disable</source>
         <translation>Wyłącz</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="494"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="491"/>
         <source>Update</source>
         <translation>Zaktualizuj</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="529"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="526"/>
         <source>Install</source>
         <translation>Zainstaluj</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="327"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="324"/>
         <source> %p% (%v KB out of %m KB)</source>
         <translation> %p% (%v KB z %m KB)</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="340"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="337"/>
         <source>Abort</source>
         <translation>Przerwij</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="250"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="242"/>
         <source>Mod name</source>
         <translation>Nazwa moda</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="243"/>
         <source>Installed version</source>
         <translation>Zainstalowana wersja</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="244"/>
         <source>Latest version</source>
         <translation>Najnowsza wersja</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
         <source>Download size</source>
         <translation>Rozmiar pobierania</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="256"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
         <source>Authors</source>
         <translation>Autorzy</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="259"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
         <source>License</source>
         <translation>Licencja</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="254"/>
         <source>Contact</source>
         <translation>Kontakt</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="263"/>
         <source>Compatibility</source>
         <translation>Kompatybilność</translation>
     </message>
     <message>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="265"/>
         <location filename="../modManager/cmodlistview_moc.cpp" line="273"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="281"/>
         <source>Required VCMI version</source>
         <translation>Wymagana wersja VCMI</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
         <source>Supported VCMI version</source>
         <translation>Wspierana wersja VCMI</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="276"/>
         <source>Supported VCMI versions</source>
         <translation>Wspierane wersje VCMI</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="303"/>
         <source>Languages</source>
         <translation>Języki</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="305"/>
         <source>Required mods</source>
         <translation>Wymagane mody</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="306"/>
         <source>Conflicting mods</source>
         <translation>Konfliktujące mody</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="319"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
         <source>This mod can not be installed or enabled because the following dependencies are not present</source>
         <translation type="unfinished">Ten mod nie może zostać zainstalowany lub włączony ponieważ następujące zależności nie zostały spełnione</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="312"/>
         <source>This mod can not be enabled because the following mods are incompatible with it</source>
         <translation type="unfinished">Ten mod nie może zostać włączony ponieważ następujące mody są z nim niekompatybilne</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
         <source>This mod cannot be disabled because it is required by the following mods</source>
         <translation type="unfinished">Ten mod nie może zostać wyłączony ponieważ jest wymagany by do uruchomienia następujących modów</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="322"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
         <source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
         <translation type="unfinished">Ten mod nie może zostać odinstalowany lub zaktualizowany ponieważ jest wymagany do uruchomienia następujących modów</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="323"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
         <source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
         <translation type="unfinished">To jest moduł składowy innego moda i nie może być zainstalowany lub odinstalowany oddzielnie od moda nadrzędnego</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="338"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="330"/>
         <source>Notes</source>
         <translation>Uwagi</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="840"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="827"/>
         <source>Screenshot %1</source>
         <translation>Zrzut ekranu %1</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="245"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="237"/>
         <source>Mod is incompatible</source>
         <translation>Mod jest niekompatybilny</translation>
     </message>
@@ -321,205 +406,230 @@
 <context>
     <name>CSettingsView</name>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="327"/>
-        <source>Change</source>
-        <translation>Zmień</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="222"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="287"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="473"/>
         <source>Open</source>
-        <translation>Otwórz</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
-        <source>Adventure Map AI</source>
-        <translation>AI mapy przygody</translation>
+        <translation type="vanished">Otwórz</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="334"/>
         <source>User data directory</source>
-        <translation>Katalog danych użytkownika</translation>
+        <translation type="vanished">Katalog danych użytkownika</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="256"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="298"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="440"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="487"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="190"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="245"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="262"/>
         <source>Off</source>
         <translation>Wyłączony</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="79"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="576"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="563"/>
         <source>Artificial Intelligence</source>
         <translation>Sztuczna Inteligencja</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="89"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="415"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
         <source>Mod Repositories</source>
         <translation>Repozytoria modów</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="368"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="448"/>
+        <source>Interface Scaling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="398"/>
+        <source>Neutral AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="203"/>
+        <source>Enemy AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="509"/>
+        <source>Additional repository</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="482"/>
+        <source>Adventure Map Allies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="441"/>
+        <source>Adventure Map Enemies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="316"/>
+        <source>Windowed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="321"/>
+        <source>Borderless fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="326"/>
+        <source>Exclusive fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="530"/>
+        <source>Friendly AI in battles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
+        <source>Framerate Limit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="523"/>
+        <source>Refresh now</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="234"/>
+        <source>Default repository</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Update now</source>
-        <translation>Zaktualizuj teraz</translation>
+        <translation type="vanished">Zaktualizuj teraz</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="261"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="445"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="492"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="195"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="250"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="267"/>
         <source>On</source>
         <translation>Włączony</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="215"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="455"/>
         <source>Cursor</source>
         <translation>Kursor</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="500"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="475"/>
         <source>Heroes III Data Language</source>
         <translation>Język plików Heroes III</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="552"/>
-        <source>Default</source>
-        <translation>Domyślny</translation>
+        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
+        <source>Select display mode for game
+
+Windowed - game will run inside a window that covers part of your screen
+
+Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
+
+Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="557"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="290"/>
         <source>Hardware</source>
         <translation>Sprzętowy</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="562"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="295"/>
         <source>Software</source>
         <translation>Programowy</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="597"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="227"/>
         <source>Heroes III Translation</source>
         <translation>Tłumaczenie Heroes III</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="429"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="516"/>
         <source>Check on startup</source>
         <translation>Sprawdzaj przy uruchomieniu</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="158"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="537"/>
         <source>Fullscreen</source>
         <translation>Pełny ekran</translation>
     </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="172"/>
-        <source>Neutral AI</source>
-        <translation>AI jednostek neutralnych</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="266"/>
-        <source>Real</source>
-        <translation>Prawdziwy</translation>
-    </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="69"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="354"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="414"/>
         <source>General</source>
         <translation>Ogólne</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="144"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="344"/>
         <source>VCMI Language</source>
         <translation>Język VCMI</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="422"/>
-        <source>Friendly AI</source>
-        <translation>AI sojuszników</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="165"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="421"/>
         <source>Resolution</source>
         <translation>Rozdzielczość</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="550"/>
         <source>Autosave</source>
         <translation>Autozapis</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="375"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="282"/>
         <source>Display index</source>
         <translation>Numer wyświetlacza</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="151"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="166"/>
         <source>Network port</source>
         <translation>Port sieciowy</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="317"/>
         <source>Data Directories</source>
-        <translation>Katalogi z danymi</translation>
+        <translation type="vanished">Katalogi z danymi</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="74"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="192"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="125"/>
         <source>Video</source>
         <translation>Obraz</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="466"/>
-        <source>Extra data directory</source>
-        <translation>Katalog danych dodatkowych</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="583"/>
         <source>Log files directory</source>
-        <translation>Katalog logów</translation>
+        <translation type="vanished">Katalog logów</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="361"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="364"/>
         <source>Show intro</source>
         <translation>Pokaż intro</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="341"/>
         <source>Build version</source>
-        <translation>Wersja programu</translation>
+        <translation type="vanished">Wersja programu</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="534"/>
-        <source>Enemy AI</source>
-        <translation>AI wrogich graczy</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="385"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="401"/>
         <source>Active</source>
         <translation>Aktywny</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="390"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="406"/>
         <source>Disabled</source>
         <translation>Wyłączone</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="391"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
         <source>Enable</source>
         <translation>Włącz</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="396"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="412"/>
         <source>Not Installed</source>
         <translation>Nie zainstalowano</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="397"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
         <source>Install</source>
         <translation>Zainstaluj</translation>
     </message>
@@ -542,17 +652,17 @@
         <translation>Zestaw modów</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="146"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="127"/>
         <source>Select your language</source>
         <translation type="unfinished">Wybierz język</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="196"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="177"/>
         <source>Have a question? Found a bug? Want to help? Join us!</source>
         <translation type="unfinished">Masz pytanie? Znalazłeś błąd? Chcesz pomóc? Dołącz do nas!</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="205"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="186"/>
         <source>Thank you for installing VCMI!
 
 Before you can start playing, there are a few more steps that need to be completed.
@@ -569,149 +679,144 @@ Miej na uwadze, że aby używać VCMI potrzebne są pliki oryginalnej gry zawier
 Heroes III: HD Edition nie jest obecnie wspierane!</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="276"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="257"/>
         <source>Locate Heroes III data files</source>
         <translation type="unfinished">Znajdź pliki Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="365"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="346"/>
         <source>If you don&apos;t have a copy of Heroes III installed, you can use our automatic installation tool &apos;vcmibuilder&apos;, which only requires the GoG.com Heroes III installer. Please visit our wiki for detailed instructions.</source>
         <translation type="unfinished">Jeśli nie masz zainstalowanej kopii Heroes III istnieje możliwość użycia naszego automatycznego narzędzia instalacyjnego &apos;vcmibuilder&apos; by wyodrębnić dane z instalatora GoG.com. Odwiedź nasze wiki po szczegółowe instrukcje.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="381"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="362"/>
         <source>To run VCMI, Heroes III data files need to be present in one of the specified locations. Please copy the Heroes III data to one of these directories.</source>
         <translation type="unfinished">VCMI wymaga plików Heroes III w jednej z wymienionych wyżej lokalizacji. Proszę, skopiuj pliki Heroes III do jednego z tych katalogów.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="416"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="397"/>
         <source>Alternatively, you can provide the directory where Heroes III data is installed and VCMI will copy the existing data automatically.</source>
         <translation type="unfinished">Możesz też wybrać folder z zainstalowanym Heroes III i VCMI automatycznie skopiuje istniejące dane.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="445"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="426"/>
         <source>Your Heroes III data files have been successfully found.</source>
         <translation>Twoje pliki Heroes III zostały pomyślnie znalezione.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="466"/>
         <source>The automatic detection of the Heroes III language has failed. Please select the language of your Heroes III manually</source>
         <translation type="unfinished">Automatyczna detekcja języka nie powiodła się. Proszę wybrać język twojego Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="759"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="740"/>
         <source>Install a translation of Heroes III in your preferred language</source>
         <translation type="unfinished">Zainstaluj tłumaczenie Heroes III dla twojego języka</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="775"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="756"/>
         <source>Optionally, you can install additional mods either now, or at any point later, using the VCMI Launcher</source>
         <translation type="unfinished">Opcjonalnie możesz zainstalować dodatkowe modyfikacje teraz lub później</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="791"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="772"/>
         <source>Install support for playing Heroes III in resolutions higher than 800x600</source>
         <translation type="unfinished">Zapinstaluj wsparcie dla grania w Heroes III w rozdzielczości innej niż 800x600</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="807"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="788"/>
         <source>Install compatible version of &quot;Horn of the Abyss&quot;, a fan-made Heroes III expansion ported by the VCMI team</source>
         <translation type="unfinished">Zainstaluj kompatybilną wersję fanowskiego dodatku Horn of the Abyss odtworzoną przez zespół VCMI</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="823"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="804"/>
         <source>Install compatible version of &quot;In The Wake of Gods&quot;, a fan-made Heroes III expansion</source>
         <translation type="unfinished">Zainstaluj kompatybilną wersję fanowskiego dodatku &quot;In The Wake Of Gods&quot;</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="870"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="851"/>
         <source>Finish</source>
         <translation>Zakończ</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="111"/>
-        <source>Step %v out of %m</source>
-        <translation>Krok %v z %m</translation>
-    </message>
-    <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="175"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="156"/>
         <source>VCMI on Github</source>
         <translation>VCMI na Github</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="182"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="163"/>
         <source>VCMI on Slack</source>
         <translation>VCMI na Slacku</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="189"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="170"/>
         <source>VCMI on Discord</source>
         <translation>VCMI na Discordzie</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="239"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="554"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="220"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="535"/>
         <source>Next</source>
         <translation>Dalej</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="307"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="288"/>
         <source>Open help in browser</source>
         <translation>Otwórz pomoc w przeglądarce</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="320"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="301"/>
         <source>Search again</source>
         <translation>Szukaj ponownie</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="403"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="384"/>
         <source>Heroes III data files</source>
         <translation>Pliki Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="432"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="413"/>
         <source>Copy existing data</source>
         <translation>Skopiuj istniejące dane</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="475"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="456"/>
         <source>Your Heroes III language has been successfully detected.</source>
         <translation>Twój język Heroes III został pomyślnie wykryty.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="504"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
         <source>Heroes III language</source>
         <translation>Język Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="547"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="863"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="528"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="844"/>
         <source>Back</source>
         <translation>Wstecz</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="585"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="566"/>
         <source>Install VCMI Mod Preset</source>
         <translation>Zainstaluj zestaw modyfikacji</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="635"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="616"/>
         <source>Horn of the Abyss</source>
         <translation>Horn of the Abyss</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="657"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="638"/>
         <source>Heroes III Translation</source>
         <translation>Tłumaczenie Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="721"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="702"/>
         <source>High Definition Support</source>
         <translation>Wsparcie High Definition</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="743"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="724"/>
         <source>In The Wake of Gods</source>
         <translation>In The Wake of Gods</translation>
     </message>
@@ -728,66 +833,101 @@ Heroes III: HD Edition nie jest obecnie wspierane!</translation>
     <name>Language</name>
     <message>
         <location filename="../languages.cpp" line="23"/>
-        <source>Chinese</source>
+        <source>Czech</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../languages.cpp" line="24"/>
+        <source>Chinese</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="25"/>
         <source>English</source>
         <translation type="unfinished">English (Angielski)</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="25"/>
+        <location filename="../languages.cpp" line="26"/>
+        <source>Finnish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="27"/>
         <source>French</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="26"/>
+        <location filename="../languages.cpp" line="28"/>
         <source>German</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="27"/>
+        <location filename="../languages.cpp" line="29"/>
+        <source>Hungarian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="30"/>
+        <source>Italian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="31"/>
         <source>Korean</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="28"/>
+        <location filename="../languages.cpp" line="32"/>
         <source>Polish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="29"/>
+        <location filename="../languages.cpp" line="33"/>
+        <source>Portuguese</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="34"/>
         <source>Russian</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="30"/>
+        <location filename="../languages.cpp" line="35"/>
         <source>Spanish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="31"/>
+        <location filename="../languages.cpp" line="36"/>
+        <source>Swedish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="37"/>
+        <source>Turkish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="38"/>
         <source>Ukrainian</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="32"/>
+        <location filename="../languages.cpp" line="39"/>
         <source>Other (East European)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="33"/>
+        <location filename="../languages.cpp" line="40"/>
         <source>Other (Cyrillic Script)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="34"/>
+        <location filename="../languages.cpp" line="41"/>
         <source>Other (West European)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="56"/>
+        <location filename="../languages.cpp" line="63"/>
         <source>Auto (%1)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -927,12 +1067,17 @@ Heroes III: HD Edition nie jest obecnie wspierane!</translation>
         <translation>Ustawienia</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="226"/>
+        <location filename="../mainwindow_moc.ui" line="207"/>
+        <source>Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow_moc.ui" line="276"/>
         <source>Map Editor</source>
         <translation>Edytor map</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="279"/>
+        <location filename="../mainwindow_moc.ui" line="329"/>
         <source>Start game</source>
         <translation>Uruchom grę</translation>
     </message>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 314 - 242
launcher/translation/russian.ts


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 317 - 300
launcher/translation/spanish.ts


+ 332 - 177
launcher/translation/ukrainian.ts

@@ -1,6 +1,91 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.1" language="uk_UA">
+<context>
+    <name>AboutProjectView</name>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="22"/>
+        <source>VCMI on Discord</source>
+        <translation>VCMI на Discord</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="29"/>
+        <source>Have a question? Found a bug? Want to help? Join us!</source>
+        <translation>Маєте питання? Виявили помилку? Хочете допомогти? Приєднуйтесь до нас!</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="36"/>
+        <source>VCMI on Github</source>
+        <translation>VCMI на Github</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="55"/>
+        <source>Our Community</source>
+        <translation>Наша спільнота</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="62"/>
+        <source>VCMI on Slack</source>
+        <translation>VCMI на Slack</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="98"/>
+        <source>Build Information</source>
+        <translation>Відомості про збірку</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="115"/>
+        <source>User data directory</source>
+        <translation>Тека даних користувача</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="122"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="129"/>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="193"/>
+        <source>Open</source>
+        <translation>Відкрити</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="136"/>
+        <source>Check for updates</source>
+        <translation>Перевірити на оновлення</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="156"/>
+        <source>Game version</source>
+        <translation>Версія гри</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="163"/>
+        <source>Log files directory</source>
+        <translation>Тека файлів журналу</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="176"/>
+        <source>Data Directories</source>
+        <translation>Теки даних гри</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="213"/>
+        <source>Game data directory</source>
+        <translation>Тека даних гри</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="220"/>
+        <source>Operating System</source>
+        <translation>Операційна система</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="273"/>
+        <source>Project homepage</source>
+        <translation>Сторінка проекту</translation>
+    </message>
+    <message>
+        <location filename="../aboutProject/aboutproject_moc.ui" line="286"/>
+        <source>Report a bug</source>
+        <translation>Повідомити про проблему</translation>
+    </message>
+</context>
 <context>
     <name>CModListModel</name>
     <message>
@@ -116,204 +201,204 @@
 <context>
     <name>CModListView</name>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="58"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="43"/>
         <source>Filter</source>
         <translation>Фільтр</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="66"/>
         <source>All mods</source>
         <translation>Усі модифікації</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="71"/>
         <source>Downloadable</source>
         <translation>Усі доступні</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="76"/>
         <source>Installed</source>
         <translation>Встановлені</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="96"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="81"/>
         <source>Updatable</source>
         <translation>Доступні оновлення</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="101"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="86"/>
         <source>Active</source>
         <translation>Активні</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="106"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="91"/>
         <source>Inactive</source>
         <translation>Неактивні</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="120"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="105"/>
         <source>Download &amp;&amp; refresh repositories</source>
         <translation>Оновити репозиторії</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="163"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="160"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
         <source>Description</source>
         <translation>Опис</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="208"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="206"/>
         <source>Changelog</source>
         <translation>Зміни</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="230"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="228"/>
         <source>Screenshots</source>
         <translation>Знімки</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="389"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="386"/>
         <source>Uninstall</source>
         <translation>Видалити</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="424"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="421"/>
         <source>Enable</source>
         <translation>Активувати</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="459"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="456"/>
         <source>Disable</source>
         <translation>Деактивувати</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="494"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="491"/>
         <source>Update</source>
         <translation>Оновити</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="529"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="526"/>
         <source>Install</source>
         <translation>Встановити</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="327"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="324"/>
         <source> %p% (%v KB out of %m KB)</source>
         <translation> %p% (%v КБ з %m КБ)</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.ui" line="340"/>
+        <location filename="../modManager/cmodlistview_moc.ui" line="337"/>
         <source>Abort</source>
         <translation>Відмінити</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="250"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="242"/>
         <source>Mod name</source>
         <translation>Назва модифікації</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="243"/>
         <source>Installed version</source>
         <translation>Встановлена версія</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="244"/>
         <source>Latest version</source>
         <translation>Найновіша версія</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
         <source>Download size</source>
         <translation>Розмір для завантаження</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="256"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
         <source>Authors</source>
         <translation>Автори</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="259"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
         <source>License</source>
         <translation>Ліцензія</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="254"/>
         <source>Contact</source>
         <translation>Контакти</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="263"/>
         <source>Compatibility</source>
         <translation>Сумісність</translation>
     </message>
     <message>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="265"/>
         <location filename="../modManager/cmodlistview_moc.cpp" line="273"/>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="281"/>
         <source>Required VCMI version</source>
         <translation>Необхідна версія VCMI</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
         <source>Supported VCMI version</source>
         <translation>Підтримувана версія VCMI</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="276"/>
         <source>Supported VCMI versions</source>
         <translation>Підтримувані версії VCMI</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="303"/>
         <source>Languages</source>
         <translation>Мови</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="305"/>
         <source>Required mods</source>
         <translation>Необхідні модифікації</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="306"/>
         <source>Conflicting mods</source>
         <translation>Конфліктуючі модифікації</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="319"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
         <source>This mod can not be installed or enabled because the following dependencies are not present</source>
         <translation>Цю модифікацію не можна встановити чи активувати, оскільки відсутні наступні залежності</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="312"/>
         <source>This mod can not be enabled because the following mods are incompatible with it</source>
         <translation>Цю модифікацію не можна ввімкнути, оскільки наступні модифікації несумісні з цією модифікацією</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="313"/>
         <source>This mod cannot be disabled because it is required by the following mods</source>
         <translation>Цю модифікацію не можна відключити, оскільки вона необхідна для запуску наступних модифікацій</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="322"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="314"/>
         <source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
         <translation>Цю модифікацію не можна видалити або оновити, оскільки вона необхідна для запуску наступних модифікацій</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="323"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
         <source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
         <translation>Це вкладена модифікація, і її не можна встановити або видалити окремо від батьківської модифікації</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="338"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="330"/>
         <source>Notes</source>
         <translation>Примітки</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="840"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="827"/>
         <source>Screenshot %1</source>
         <translation>Знімок екрану %1</translation>
     </message>
     <message>
-        <location filename="../modManager/cmodlistview_moc.cpp" line="245"/>
+        <location filename="../modManager/cmodlistview_moc.cpp" line="237"/>
         <source>Mod is incompatible</source>
         <translation>Модифікація несумісна</translation>
     </message>
@@ -321,205 +406,240 @@
 <context>
     <name>CSettingsView</name>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="327"/>
-        <source>Change</source>
-        <translation>Змінити</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="222"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="287"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="473"/>
         <source>Open</source>
-        <translation>Відкрити</translation>
+        <translation type="vanished">Відкрити</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
-        <source>Adventure Map AI</source>
-        <translation>ШІ Гравця</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="334"/>
         <source>User data directory</source>
-        <translation>Тека даних користувача</translation>
+        <translation type="vanished">Тека даних користувача</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="256"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="298"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="440"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="487"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="190"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="245"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="262"/>
         <source>Off</source>
         <translation>Вимкнено</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="79"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="576"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="563"/>
         <source>Artificial Intelligence</source>
         <translation>Штучний інтелект</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="89"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="415"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
         <source>Mod Repositories</source>
         <translation>Репозиторії модифікацій</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="368"/>
-        <source>Update now</source>
+        <location filename="../settingsView/csettingsview_moc.ui" line="448"/>
+        <source>Interface Scaling</source>
+        <translation>Масштабування інтерфейсу</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="398"/>
+        <source>Neutral AI in battles</source>
+        <translation>Нейтральний ШІ в боях</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="203"/>
+        <source>Enemy AI in battles</source>
+        <translation>Ворожий ШІ в боях</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="509"/>
+        <source>Additional repository</source>
+        <translation>Додатковий репозиторій</translation>
+    </message>
+    <message>
+        <source>Game data directory</source>
+        <translation type="vanished">Тека даних гри</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="482"/>
+        <source>Adventure Map Allies</source>
+        <translation>Союзники на мапі пригод</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="441"/>
+        <source>Adventure Map Enemies</source>
+        <translation>Вороги на мапі пригод</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="316"/>
+        <source>Windowed</source>
+        <translation>У вікні</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="321"/>
+        <source>Borderless fullscreen</source>
+        <translation>Повноекранне вікно</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="326"/>
+        <source>Exclusive fullscreen</source>
+        <translation>Повноекранний (ексклюзивно)</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="530"/>
+        <source>Friendly AI in battles</source>
+        <translation>Дружній ШІ в боях</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="590"/>
+        <source>Framerate Limit</source>
+        <translation>Обмеження частоти кадрів</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="523"/>
+        <source>Refresh now</source>
         <translation>Оновити зараз</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="261"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="445"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="492"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="234"/>
+        <source>Default repository</source>
+        <translation>Стандартний репозиторій</translation>
+    </message>
+    <message>
+        <source>Update now</source>
+        <translation type="vanished">Оновити зараз</translation>
+    </message>
+    <message>
+        <location filename="../settingsView/csettingsview_moc.ui" line="195"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="250"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="267"/>
         <source>On</source>
         <translation>Увімкнено</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="215"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="455"/>
         <source>Cursor</source>
         <translation>Курсор</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="500"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="475"/>
         <source>Heroes III Data Language</source>
         <translation>Мова Heroes III</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="552"/>
-        <source>Default</source>
-        <translation>За замовчуванням</translation>
+        <location filename="../settingsView/csettingsview_moc.ui" line="303"/>
+        <source>Select display mode for game
+
+Windowed - game will run inside a window that covers part of your screen
+
+Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
+
+Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</source>
+        <translation>Виберіть режим відображення гри
+
+Віконний - гра запускатиметься у вікні, що займає частину екрана
+
+Безмежний віконний режим - гра запускається у вікні, яке займає весь екран, з тією ж роздільною здатністю, що і ваш екран.
+
+Повноекранний ексклюзивний режим - гра займатиме весь екран і використовуватиме вибрану роздільну здатність.</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="557"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="290"/>
         <source>Hardware</source>
         <translation>Апаратний</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="562"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="295"/>
         <source>Software</source>
         <translation>Програмний</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="597"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="227"/>
         <source>Heroes III Translation</source>
         <translation>Переклад Heroes III</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="429"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="516"/>
         <source>Check on startup</source>
         <translation>Перевіряти на старті</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="158"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="537"/>
         <source>Fullscreen</source>
         <translation>Повноекранний режим</translation>
     </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="172"/>
-        <source>Neutral AI</source>
-        <translation>Нейтральний ШІ</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="266"/>
-        <source>Real</source>
-        <translation>Повний</translation>
-    </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="69"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="354"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="414"/>
         <source>General</source>
         <translation>Загальні налаштування</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="144"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="344"/>
         <source>VCMI Language</source>
         <translation>Мова VCMI</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="422"/>
-        <source>Friendly AI</source>
-        <translation>Дружній ШІ</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="165"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="421"/>
         <source>Resolution</source>
         <translation>Роздільна здатність</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="179"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="550"/>
         <source>Autosave</source>
         <translation>Автозбереження</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="375"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="282"/>
         <source>Display index</source>
         <translation>Дісплей</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="151"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="166"/>
         <source>Network port</source>
         <translation>Мережевий порт</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="84"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="317"/>
         <source>Data Directories</source>
-        <translation>Теки даних гри</translation>
+        <translation type="vanished">Теки даних гри</translation>
     </message>
     <message>
         <location filename="../settingsView/csettingsview_moc.ui" line="74"/>
-        <location filename="../settingsView/csettingsview_moc.ui" line="192"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="125"/>
         <source>Video</source>
         <translation>Графіка</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="466"/>
-        <source>Extra data directory</source>
-        <translation>Додаткова тека даних</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="583"/>
         <source>Log files directory</source>
-        <translation>Тека файлів журналу</translation>
+        <translation type="vanished">Тека файлів журналу</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="361"/>
+        <location filename="../settingsView/csettingsview_moc.ui" line="364"/>
         <source>Show intro</source>
         <translation>Вступні відео</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="341"/>
         <source>Build version</source>
-        <translation>Версія збірки</translation>
-    </message>
-    <message>
-        <location filename="../settingsView/csettingsview_moc.ui" line="534"/>
-        <source>Enemy AI</source>
-        <translation>Ворожий ШІ</translation>
+        <translation type="vanished">Версія збірки</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="385"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="401"/>
         <source>Active</source>
         <translation>Активні</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="390"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="406"/>
         <source>Disabled</source>
         <translation>Деактивований</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="391"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
         <source>Enable</source>
         <translation>Активувати</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="396"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="412"/>
         <source>Not Installed</source>
         <translation>Не встановлено</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="397"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
         <source>Install</source>
         <translation>Встановити</translation>
     </message>
@@ -542,17 +662,17 @@
         <translation>Початкові модифікації</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="146"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="127"/>
         <source>Select your language</source>
         <translation>Оберіть свою мову</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="196"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="177"/>
         <source>Have a question? Found a bug? Want to help? Join us!</source>
         <translation>Маєте питання? Виявили помилку? Хочете допомогти? Приєднуйтесь до нас!</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="205"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="186"/>
         <source>Thank you for installing VCMI!
 
 Before you can start playing, there are a few more steps that need to be completed.
@@ -569,149 +689,144 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
 Heroes® of Might and Magic® III HD наразі не підтримується!</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="276"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="257"/>
         <source>Locate Heroes III data files</source>
         <translation>Пошук файлів даних Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="365"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="346"/>
         <source>If you don&apos;t have a copy of Heroes III installed, you can use our automatic installation tool &apos;vcmibuilder&apos;, which only requires the GoG.com Heroes III installer. Please visit our wiki for detailed instructions.</source>
         <translation>Якщо у вас не встановлена копія Heroes III, ви можете скористатися нашим засобом встановлення &quot;vcmibuilder&quot;, яка вимагає лише інсталятора GoG.com. Докладні інструкції можна знайти у нашій вікі.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="381"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="362"/>
         <source>To run VCMI, Heroes III data files need to be present in one of the specified locations. Please copy the Heroes III data to one of these directories.</source>
         <translation>VCMI потребує файлів даних Heroes III в одному з перелічених вище розташувань. Будь ласка, скопіюйте дані Heroes III в одну з цих директорій.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="416"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="397"/>
         <source>Alternatively, you can provide the directory where Heroes III data is installed and VCMI will copy the existing data automatically.</source>
         <translation>Або ж ви можете вибрати директорію зі встановленими даними Heroes III, і VCMI автоматично скопіює ці дані.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="445"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="426"/>
         <source>Your Heroes III data files have been successfully found.</source>
         <translation>Файли даних вашої гри Heroes III успішно знайдено.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="466"/>
         <source>The automatic detection of the Heroes III language has failed. Please select the language of your Heroes III manually</source>
         <translation>Не вдалося визначити мову гри. Будь ласка, виберіть мову вашої копії Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="759"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="740"/>
         <source>Install a translation of Heroes III in your preferred language</source>
         <translation>Встановити переклад Heroes III на вашу мову</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="775"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="756"/>
         <source>Optionally, you can install additional mods either now, or at any point later, using the VCMI Launcher</source>
         <translation>За бажанням ви можете встановити додаткові модифікації зараз або пізніше, використовуючи VCMI Launcher</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="791"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="772"/>
         <source>Install support for playing Heroes III in resolutions higher than 800x600</source>
         <translation>Встановити підтримку для гри в Heroes III у роздільних здатностях, більших за 800x600</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="807"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="788"/>
         <source>Install compatible version of &quot;Horn of the Abyss&quot;, a fan-made Heroes III expansion ported by the VCMI team</source>
         <translation>Встановити сумісну версію доповнення &quot;Horn of the Abyss&quot;, фанатське доповнення Heroes III, портоване командою VCMI</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="823"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="804"/>
         <source>Install compatible version of &quot;In The Wake of Gods&quot;, a fan-made Heroes III expansion</source>
         <translation>Встановити сумісну версію доповнення &quot;In The Wake of Gods&quot;, фанатське доповнення до Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="870"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="851"/>
         <source>Finish</source>
         <translation>Завершити</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="111"/>
-        <source>Step %v out of %m</source>
-        <translation>Крок %v з %m</translation>
-    </message>
-    <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="175"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="156"/>
         <source>VCMI on Github</source>
         <translation>VCMI на Github</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="182"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="163"/>
         <source>VCMI on Slack</source>
         <translation>VCMI на Slack</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="189"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="170"/>
         <source>VCMI on Discord</source>
         <translation>VCMI на Discord</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="239"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="554"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="220"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="535"/>
         <source>Next</source>
         <translation>Далі</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="307"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="288"/>
         <source>Open help in browser</source>
         <translation>Відкрити довідку у браузері</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="320"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="301"/>
         <source>Search again</source>
         <translation>Повторити пошук</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="403"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="384"/>
         <source>Heroes III data files</source>
         <translation>Файли даних Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="432"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="413"/>
         <source>Copy existing data</source>
         <translation>Копіювати наявні дані</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="475"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="456"/>
         <source>Your Heroes III language has been successfully detected.</source>
         <translation>Мову вашої гри Heroes III успішно визначено.</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="504"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="485"/>
         <source>Heroes III language</source>
         <translation>Мова Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="547"/>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="863"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="528"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="844"/>
         <source>Back</source>
         <translation>Назад</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="585"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="566"/>
         <source>Install VCMI Mod Preset</source>
         <translation>Встановлення початкових модифікацій VCMI</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="635"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="616"/>
         <source>Horn of the Abyss</source>
         <translation>Horn of the Abyss</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="657"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="638"/>
         <source>Heroes III Translation</source>
         <translation>Переклад Heroes III</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="721"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="702"/>
         <source>High Definition Support</source>
         <translation>Підтримка високих роздільних здатностей</translation>
     </message>
     <message>
-        <location filename="../firstLaunch/firstlaunch_moc.ui" line="743"/>
+        <location filename="../firstLaunch/firstlaunch_moc.ui" line="724"/>
         <source>In The Wake of Gods</source>
         <translation>In The Wake of Gods</translation>
     </message>
@@ -728,66 +843,101 @@ Heroes® of Might and Magic® III HD наразі не підтримуєтьс
     <name>Language</name>
     <message>
         <location filename="../languages.cpp" line="23"/>
+        <source>Czech</source>
+        <translation>Чеська</translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="24"/>
         <source>Chinese</source>
         <translation>Китайська</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="24"/>
+        <location filename="../languages.cpp" line="25"/>
         <source>English</source>
         <translation>Англійська</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="25"/>
+        <location filename="../languages.cpp" line="26"/>
+        <source>Finnish</source>
+        <translation>Фінська</translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="27"/>
         <source>French</source>
         <translation>Французька</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="26"/>
+        <location filename="../languages.cpp" line="28"/>
         <source>German</source>
         <translation>Німецька</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="27"/>
+        <location filename="../languages.cpp" line="29"/>
+        <source>Hungarian</source>
+        <translation>Угорська</translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="30"/>
+        <source>Italian</source>
+        <translation>Італійська</translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="31"/>
         <source>Korean</source>
         <translation>Корейська</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="28"/>
+        <location filename="../languages.cpp" line="32"/>
         <source>Polish</source>
         <translation>Польська</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="29"/>
+        <location filename="../languages.cpp" line="33"/>
+        <source>Portuguese</source>
+        <translation>Португальська</translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="34"/>
         <source>Russian</source>
         <translation>Російська</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="30"/>
+        <location filename="../languages.cpp" line="35"/>
         <source>Spanish</source>
         <translation>Іспанська</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="31"/>
+        <location filename="../languages.cpp" line="36"/>
+        <source>Swedish</source>
+        <translation>Шведська</translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="37"/>
+        <source>Turkish</source>
+        <translation>Турецька</translation>
+    </message>
+    <message>
+        <location filename="../languages.cpp" line="38"/>
         <source>Ukrainian</source>
         <translation>Українська</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="32"/>
+        <location filename="../languages.cpp" line="39"/>
         <source>Other (East European)</source>
         <translation>Інша (східноєвропейська)</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="33"/>
+        <location filename="../languages.cpp" line="40"/>
         <source>Other (Cyrillic Script)</source>
         <translation>Інша (кирилиця)</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="34"/>
+        <location filename="../languages.cpp" line="41"/>
         <source>Other (West European)</source>
         <translation>Інша (західноєвропейська)</translation>
     </message>
     <message>
-        <location filename="../languages.cpp" line="56"/>
+        <location filename="../languages.cpp" line="63"/>
         <source>Auto (%1)</source>
         <translation>Авто (%1)</translation>
     </message>
@@ -937,12 +1087,17 @@ Heroes® of Might and Magic® III HD наразі не підтримуєтьс
         <translation>Лобі</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="226"/>
+        <location filename="../mainwindow_moc.ui" line="207"/>
+        <source>Help</source>
+        <translation>Допомога</translation>
+    </message>
+    <message>
+        <location filename="../mainwindow_moc.ui" line="276"/>
         <source>Map Editor</source>
         <translation>Редактор мап</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="279"/>
+        <location filename="../mainwindow_moc.ui" line="329"/>
         <source>Start game</source>
         <translation>Грати</translation>
     </message>

+ 31 - 17
lib/Languages.h

@@ -14,14 +14,21 @@ namespace Languages
 
 enum class ELanguages
 {
+	CZECH,
 	CHINESE,
 	ENGLISH,
+	FINNISH,
 	FRENCH,
 	GERMAN,
-	KOREAN, // currently has no translations or detection
+	HUNGARIAN,
+	ITALIAN,
+	KOREAN,
 	POLISH,
+	PORTUGUESE,
 	RUSSIAN,
 	SPANISH,
+	SWEDISH,
+	TURKISH,
 	UKRAINIAN,
 
 	// Pseudo-languages, that have no translations but can define H3 encoding to use
@@ -46,8 +53,8 @@ struct Options
 	/// encoding that is used by H3 for this language
 	std::string encoding;
 
-	/// VCMI is capable of detecting H3 install in this language
-	bool hasDetection = false;
+	/// primary IETF language tag
+	std::string tagIETF;
 
 	/// VCMI supports translations into this language
 	bool hasTranslation = false;
@@ -55,21 +62,28 @@ struct Options
 
 inline const auto & getLanguageList()
 {
-	static const std::array<Options, 12> languages
+	static const std::array<Options, 19> languages
 	{ {
-		{ "chinese",   "Chinese",   "简体中文",       "GBK",    true,  true }, // Note: actually Simplified Chinese
-		{ "english",   "English",   "English",    "CP1252", true,  true },
-		{ "french",    "French",    "Français",   "CP1252", true,  true },
-		{ "german",    "German",    "Deutsch",    "CP1252", true,  true },
-		{ "korean",    "Korean",    "한국어",        "CP949",  false, false },
-		{ "polish",    "Polish",    "Polski",     "CP1250", true,  true },
-		{ "russian",   "Russian",   "Русский",    "CP1251", true,  true },
-		{ "spanish",   "Spanish",   "Español",    "CP1252", false, true },
-		{ "ukrainian", "Ukrainian", "Українська", "CP1251", true,  true },
-
-		{ "other_cp1250", "Other (East European)",   "", "CP1251", false, false },
-		{ "other_cp1251", "Other (Cyrillic Script)", "", "CP1250", false, false },
-		{ "other_cp1252", "Other (West European)",   "", "CP1252", false, false }
+		{ "czech",      "Czech",      "Čeština",    "CP1250", "cs", true },
+		{ "chinese",    "Chinese",    "简体中文",       "GBK",    "zh", true }, // Note: actually Simplified Chinese
+		{ "english",    "English",    "English",    "CP1252", "en", true },
+		{ "finnish",    "Finnish",    "Suomi",      "CP1252", "fi", true },
+		{ "french",     "French",     "Français",   "CP1252", "fr", true },
+		{ "german",     "German",     "Deutsch",    "CP1252", "de", true },
+		{ "hungarian",  "Hungarian",  "Magyar",     "CP1250", "hu", true },
+		{ "italian",    "Italian",    "Italiano",   "CP1250", "it", true },
+		{ "korean",     "Korean",     "한국어",        "CP949",  "ko", true },
+		{ "polish",     "Polish",     "Polski",     "CP1250", "pl", true },
+		{ "portuguese", "Portuguese", "Português",  "CP1252", "pt", true }, // Note: actually Brazilian Portuguese
+		{ "russian",    "Russian",    "Русский",    "CP1251", "ru", true },
+		{ "spanish",    "Spanish",    "Español",    "CP1252", "es", true },
+		{ "swedish",    "Swedish",    "Svenska",    "CP1252", "sv", true },
+		{ "turkish",    "Turkish",    "Türkçe",     "CP1254", "tr", true },
+		{ "ukrainian",  "Ukrainian",  "Українська", "CP1251", "uk", true },
+
+		{ "other_cp1250", "Other (East European)",   "", "CP1251", "", false },
+		{ "other_cp1251", "Other (Cyrillic Script)", "", "CP1250", "", false },
+		{ "other_cp1252", "Other (West European)",   "", "CP1252", "", false }
 	} };
 	static_assert(languages.size() == static_cast<size_t>(ELanguages::COUNT), "Languages array is missing a value!");
 

+ 1 - 1
lib/StartInfo.cpp

@@ -22,7 +22,7 @@
 VCMI_LIB_NAMESPACE_BEGIN
 
 PlayerSettings::PlayerSettings()
-	: bonus(RANDOM), castle(NONE), hero(RANDOM), heroPortrait(RANDOM), color(0), handicap(NO_HANDICAP), team(0), compOnly(false)
+	: bonus(RANDOM), castle(NONE), hero(RANDOM), heroPortrait(RANDOM), color(0), handicap(NO_HANDICAP), compOnly(false)
 {
 
 }

+ 0 - 2
lib/StartInfo.h

@@ -43,7 +43,6 @@ struct DLL_LINKAGE PlayerSettings
 	PlayerColor color; //from 0 -
 	enum EHandicap {NO_HANDICAP, MILD, SEVERE};
 	EHandicap handicap;//0-no, 1-mild, 2-severe
-	TeamID team;
 
 	std::string name;
 	std::set<ui8> connectedPlayerIDs; //Empty - AI, or connectrd player ids
@@ -60,7 +59,6 @@ struct DLL_LINKAGE PlayerSettings
 		h & handicap;
 		h & name;
 		h & connectedPlayerIDs;
-		h & team;
 		h & compOnly;
 	}
 

+ 0 - 1
lib/gameState/CGameState.cpp

@@ -658,7 +658,6 @@ void CGameState::initNewGame(const IMapService * mapService, bool allowSavingRan
 			{
 				PlayerSettings & playerSettings = scenarioOps->playerInfos[PlayerColor(i)];
 				playerSettings.compOnly = !playerInfo.canHumanPlay;
-				playerSettings.team = playerInfo.team;
 				playerSettings.castle = playerInfo.defaultCastle();
 				if(playerSettings.isControlledByAI() && playerSettings.name.empty())
 				{

Vissa filer visades inte eftersom för många filer har ändrats