diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index 5764c38a1..319b1ea06 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -87,6 +87,10 @@ else()
qt5_wrap_ui(launcher_UI_HEADERS ${launcher_FORMS})
endif()
+find_package(Qt5LinguistTools)
+set(launcher_TS translation/launcher_pl.ts translation/launcher_ru.ts translation/launcher_uk.ts)
+qt5_add_translation( QM_FILES ${launcher_TS} )
+
if(WIN32)
set(launcher_ICON VCMI_launcher.rc)
endif()
@@ -94,7 +98,7 @@ endif()
if(BUILD_SINGLE_APP)
add_library(vcmilauncher STATIC ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS})
else()
- add_executable(vcmilauncher WIN32 ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS} ${launcher_ICON})
+ add_executable(vcmilauncher WIN32 ${QM_FILES} ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS} ${launcher_ICON})
endif()
if(WIN32)
diff --git a/launcher/lobby/lobby_moc.ui b/launcher/lobby/lobby_moc.ui
index 44d410903..e859f7f7c 100644
--- a/launcher/lobby/lobby_moc.ui
+++ b/launcher/lobby/lobby_moc.ui
@@ -11,7 +11,7 @@
- Form
+
-
@@ -52,7 +52,7 @@
-
- 127.0.0.1:5002
+ 127.0.0.1:5002
diff --git a/launcher/lobby/lobbyroomrequest_moc.ui b/launcher/lobby/lobbyroomrequest_moc.ui
index b9ef935fe..a05741970 100644
--- a/launcher/lobby/lobbyroomrequest_moc.ui
+++ b/launcher/lobby/lobbyroomrequest_moc.ui
@@ -51,39 +51,42 @@
0
+
+ 2
+
-
- 2
+ 2
-
- 3
+ 3
-
- 4
+ 4
-
- 5
+ 5
-
- 6
+ 6
-
- 7
+ 7
-
- 8
+ 8
diff --git a/launcher/main.cpp b/launcher/main.cpp
index 7180cb1d9..8cb856c22 100644
--- a/launcher/main.cpp
+++ b/launcher/main.cpp
@@ -32,6 +32,11 @@ int main(int argc, char * argv[])
{
#endif
QApplication vcmilauncher(argc, argv);
+
+ //QTranslator translator;
+ //translator.load("./launcher_uk.qm");
+ //vcmilauncher.installTranslator(&translator);
+
MainWindow mainWindow;
mainWindow.show();
result = vcmilauncher.exec();
diff --git a/launcher/mainwindow_moc.cpp b/launcher/mainwindow_moc.cpp
index 5b71b9043..38951556a 100644
--- a/launcher/mainwindow_moc.cpp
+++ b/launcher/mainwindow_moc.cpp
@@ -68,41 +68,13 @@ MainWindow::MainWindow(QWidget * parent)
move(position);
}
- //set default margins
-
- auto width = ui->startGameTitle->fontMetrics().boundingRect(ui->startGameTitle->text()).width();
- if(ui->startGameButton->iconSize().width() < width)
- {
- ui->startGameButton->setIconSize(QSize(width, width));
- }
- auto tab_icon_size = ui->tabSelectList->iconSize();
- if(tab_icon_size.width() < width)
- {
- ui->tabSelectList->setIconSize(QSize(width, width + tab_icon_size.height() - tab_icon_size.width()));
- ui->tabSelectList->setGridSize(QSize(width, width));
- // 4 is a dirty hack to make it look right
- ui->tabSelectList->setMaximumWidth(width + 4);
- }
ui->tabListWidget->setCurrentIndex(0);
ui->settingsView->isExtraResolutionsModEnabled = ui->modlistView->isExtraResolutionsModEnabled();
ui->settingsView->setDisplayList();
connect(ui->modlistView, &CModListView::extraResolutionsEnabledChanged,
ui->settingsView, &CSettingsView::fillValidResolutions);
-
- connect(ui->tabSelectList, &QListWidget::currentRowChanged, [this](int i) {
-#ifdef Q_OS_IOS
- if(auto widget = qApp->focusWidget())
- widget->clearFocus();
-#endif
- ui->tabListWidget->setCurrentIndex(i);
- });
-#ifdef Q_OS_IOS
- QScroller::grabGesture(ui->tabSelectList, QScroller::LeftMouseButtonGesture);
- ui->tabSelectList->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
-#endif
-
if(settings["launcher"]["updateOnStartup"].Bool())
UpdateDialog::showUpdateDialog(false);
}
@@ -122,12 +94,25 @@ void MainWindow::on_startGameButton_clicked()
startGame({});
}
-void MainWindow::on_tabSelectList_currentRowChanged(int currentRow)
-{
- ui->startGameButton->setEnabled(currentRow != TabRows::LOBBY);
-}
-
const CModList & MainWindow::getModList() const
{
return ui->modlistView->getModList();
}
+
+void MainWindow::on_modslistButton_clicked()
+{
+ ui->startGameButton->setEnabled(true);
+ ui->tabListWidget->setCurrentIndex(TabRows::MODS);
+}
+
+void MainWindow::on_settingsButton_clicked()
+{
+ ui->startGameButton->setEnabled(true);
+ ui->tabListWidget->setCurrentIndex(TabRows::SETTINGS);
+}
+
+void MainWindow::on_lobbyButton_clicked()
+{
+ ui->startGameButton->setEnabled(false);
+ ui->tabListWidget->setCurrentIndex(TabRows::LOBBY);
+}
diff --git a/launcher/mainwindow_moc.h b/launcher/mainwindow_moc.h
index 0603790de..189f3f4f3 100644
--- a/launcher/mainwindow_moc.h
+++ b/launcher/mainwindow_moc.h
@@ -46,5 +46,7 @@ public slots:
void on_startGameButton_clicked();
private slots:
- void on_tabSelectList_currentRowChanged(int currentRow);
+ void on_modslistButton_clicked();
+ void on_settingsButton_clicked();
+ void on_lobbyButton_clicked();
};
diff --git a/launcher/mainwindow_moc.ui b/launcher/mainwindow_moc.ui
index 01918642a..76f8cbfe1 100644
--- a/launcher/mainwindow_moc.ui
+++ b/launcher/mainwindow_moc.ui
@@ -31,153 +31,129 @@
- -
-
+
-
+
-
- 89
+
+ 1
0
- 89
- 89
+ 0
+ 0
-
- Qt::ScrollBarAlwaysOff
+
+ Settings
-
- Qt::ScrollBarAlwaysOff
-
-
- QAbstractScrollArea::AdjustToContents
-
-
- QAbstractItemView::NoEditTriggers
-
-
- false
-
-
- QAbstractItemView::NoDragDrop
-
-
- QAbstractItemView::SelectItems
+
+
+ icons:menu-settings.pngicons:menu-settings.png
- 89
- 89
+ 60
+ 60
-
- QListView::Static
-
-
- QListView::TopToBottom
-
-
- false
-
-
- QListView::Adjust
-
-
-
- 100
- 100
-
-
-
- QListView::IconMode
-
-
+
true
-
+
false
-
-
-
- Mods
-
-
-
- icons:menu-mods.pngicons:menu-mods.png
-
-
- -
-
- Settings
-
-
-
- icons:menu-settings.pngicons:menu-settings.png
-
-
- -
-
- Lobby
-
-
-
- icons:menu-lobby.pngicons:menu-lobby.png
-
-
+
+ true
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+ true
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 80
+ 0
+
+
+
+
-
-
+
+
+
+ 1
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ Lobby
+
+
+
+ icons:menu-lobby.pngicons:menu-lobby.png
+
+
+
+ 60
+ 60
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+ true
+
+
+
+ -
+
+
+
+ 1
+ 0
+
+
+
+
+ 0
+ 0
+
+
+ 75
true
- Start game
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- true
-
-
-
- 0
- 0
-
-
-
- 0
-
-
-
-
-
-
- -
-
-
-
- 89
- 0
-
-
-
-
- 89
- 89
-
-
-
- Play
+
@@ -198,6 +174,104 @@
Qt::ToolButtonIconOnly
+
+ false
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Start game
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ true
+
+
+
+ 10
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ -
+
+
+
+ 1
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ Mods
+
+
+
+ icons:menu-mods.pngicons:menu-mods.png
+
+
+
+ 60
+ 60
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+ true
+
+
+
+ -
+
+
+ QFrame::Plain
+
+
+ 1
+
+
+ 0
+
+
+ Qt::Vertical
+
@@ -225,7 +299,6 @@
- tabSelectList
startGameButton
diff --git a/launcher/modManager/cmodlistview_moc.ui b/launcher/modManager/cmodlistview_moc.ui
index 50542e75d..5e546e279 100644
--- a/launcher/modManager/cmodlistview_moc.ui
+++ b/launcher/modManager/cmodlistview_moc.ui
@@ -6,12 +6,12 @@
0
0
- 596
+ 680
342
- Form
+
@@ -252,11 +252,11 @@
true
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:10pt; font-weight:400; font-style:normal;">
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p></body></html>
+</style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;">
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p></body></html>
true
diff --git a/launcher/settingsView/csettingsview_moc.cpp b/launcher/settingsView/csettingsview_moc.cpp
index fbae12bec..f19164771 100644
--- a/launcher/settingsView/csettingsview_moc.cpp
+++ b/launcher/settingsView/csettingsview_moc.cpp
@@ -72,12 +72,10 @@ void CSettingsView::loadSettings()
#ifdef Q_OS_IOS
ui->comboBoxFullScreen->setCurrentIndex(true);
- ui->checkBoxFullScreen->setChecked(false);
- for (auto widget : std::initializer_list{ui->comboBoxFullScreen, ui->checkBoxFullScreen})
- widget->setDisabled(true);
+ ui->comboBoxFullScreen->setDisabled(true);
#else
ui->comboBoxFullScreen->setCurrentIndex(settings["video"]["fullscreen"].Bool());
- ui->checkBoxFullScreen->setChecked(settings["video"]["realFullscreen"].Bool());
+ //ui->checkBoxFullScreen->setChecked(settings["video"]["realFullscreen"].Bool());
#endif
ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String()));
@@ -192,14 +190,10 @@ void CSettingsView::on_comboBoxResolution_currentTextChanged(const QString & arg
void CSettingsView::on_comboBoxFullScreen_currentIndexChanged(int index)
{
- Settings node = settings.write["video"]["fullscreen"];
- node->Bool() = index;
-}
-
-void CSettingsView::on_checkBoxFullScreen_stateChanged(int state)
-{
- Settings node = settings.write["video"]["realFullscreen"];
- node->Bool() = state;
+ Settings nodeFullscreen = settings.write["video"]["fullscreen"];
+ Settings nodeRealFullscreen = settings.write["video"]["realFullscreen"];
+ nodeFullscreen->Bool() = index != 0;
+ nodeFullscreen->Bool() = index == 2;
}
void CSettingsView::on_comboBoxAutoCheck_currentIndexChanged(int index)
diff --git a/launcher/settingsView/csettingsview_moc.h b/launcher/settingsView/csettingsview_moc.h
index fba5bd2c6..6ca30a741 100644
--- a/launcher/settingsView/csettingsview_moc.h
+++ b/launcher/settingsView/csettingsview_moc.h
@@ -32,8 +32,6 @@ public slots:
void fillValidResolutions(bool isExtraResolutionsModEnabled);
private slots:
- void on_checkBoxFullScreen_stateChanged(int state);
-
void on_comboBoxResolution_currentTextChanged(const QString & arg1);
void on_comboBoxFullScreen_currentIndexChanged(int index);
diff --git a/launcher/settingsView/csettingsview_moc.ui b/launcher/settingsView/csettingsview_moc.ui
index a9c12aadb..27568bafa 100644
--- a/launcher/settingsView/csettingsview_moc.ui
+++ b/launcher/settingsView/csettingsview_moc.ui
@@ -11,7 +11,7 @@
- Form
+
@@ -26,47 +26,67 @@
0
- -
-
-
-
- true
-
+
-
+
+
+ false
- AI on the map
+ Change
- -
-
-
-
- true
-
-
+
-
+
- Video
+ Open
- -
-
+
-
+
- Show intro
+ User data directory
- -
-
-
- 1024
+
-
+
+
+ Qt::Horizontal
-
- 65535
+
+ QSizePolicy::Fixed
-
- 3030
+
+
+ 8
+ 20
+
+
+
+
+ -
+
+
+ 1
+
+
-
+
+ Off
+
+
+ -
+
+ On
+
+
+
+
+ -
+
+
+ Open
@@ -79,28 +99,7 @@
- /usr/share/vcmi
-
-
-
- -
-
-
- Heroes III character set
-
-
-
- -
-
-
- Real fullscreen mode
-
-
-
- -
-
-
- Resolution
+ /usr/share/vcmi
@@ -111,22 +110,63 @@
- -
-
-
- false
+
-
+
+
+ BattleAI
-
-
- 150
- 0
-
+
-
+
+ BattleAI
+
+
+ -
+
+ StupidAI
+
+
+
+
+ -
+
+
+ 1024
+
+
+ 65535
+
+
+ 3030
+
+
+
+ -
+
+
+
+ 75
+ true
+
- /home/user/.vcmi
+ Repositories
-
- true
+
+
+ -
+
+
+ -
+
+
+ Check for updates
+
+
+
+ -
+
+
+ Neutral AI
@@ -145,12 +185,25 @@
On
+ -
+
+ Real
+
+
- -
+
-
+
+
+ Open
+
+
+
+ -
+ 75
true
@@ -159,210 +212,8 @@
- -
-
-
- QPlainTextEdit::NoWrap
-
-
- http://downloads.vcmi.eu/Mods/repository.json
-
-
-
- -
-
-
- Open
-
-
-
- -
-
-
- Player AI
-
-
-
- -
-
-
-
- true
-
-
-
- Repositories
-
-
-
- -
-
-
-
-
- VCAI
-
-
- -
-
- Nullkiller
-
-
-
-
- -
-
-
- Display index
-
-
-
- -
-
-
- 1
-
-
-
-
- Off
-
-
- -
-
- On
-
-
-
-
- -
-
-
-
-
- BattleAI
-
-
- -
-
- StupidAI
-
-
-
-
- -
-
-
- false
-
-
- BattleAI
-
-
-
-
- BattleAI
-
-
- -
-
- StupidAI
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Fixed
-
-
-
- 8
- 20
-
-
-
-
- -
-
-
- Open
-
-
-
- -
-
-
-
- true
-
-
-
- Launcher Settings
-
-
-
- -
-
-
- Extra data directory
-
-
-
- -
-
-
-
- 0
- 22
-
-
-
- Enemy AI
-
-
-
- -
-
-
- false
-
-
- Change
-
-
-
- -
-
-
- -
-
-
- Neutral AI
-
-
-
- -
-
-
- -
-
-
- Qt::Vertical
-
-
- QSizePolicy::Fixed
-
-
-
- 56
- 8
-
-
-
-
- -
-
+
-
+
false
@@ -373,158 +224,21 @@
- /home/user/.vcmi
+ /home/user/.vcmi
true
- -
-
-
- 1
-
-
-
-
- Off
-
-
- -
-
- On
-
-
-
-
- -
-
-
- 1
-
-
-
-
- Off
-
-
- -
-
- On
-
-
-
-
- -
-
-
- false
-
-
- BattleAI
-
-
-
-
- BattleAI
-
-
- -
-
- StupidAI
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
- QSizePolicy::Fixed
-
-
-
- 20
- 8
-
-
-
-
- -
-
-
-
- true
- true
- false
-
-
+
-
+
- AI in the battlefield
+ Player AI
- -
-
-
- Check repositories on startup
-
-
-
- -
-
-
-
- 0
- 22
-
-
-
- Friendly AI
-
-
-
- -
-
-
- Log files directory
-
-
-
- -
-
-
-
- true
-
-
-
- Data Directories
-
-
-
- -
-
-
- User data directory
-
-
-
- -
-
-
- Open
-
-
-
- -
-
-
- Network port
-
-
-
- -
+
-
-
@@ -558,34 +272,331 @@
- -
+
-
+
+
+
+ 0
+ 22
+
+
+
+ Friendly AI
+
+
+
+ -
+
+
+ Resolution
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ AI on the map
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+ QSizePolicy::Fixed
+
+
+
+ 20
+ 8
+
+
+
+
+ -
+
+
+ -
Autosave
- -
-
+
-
+
- Check for updates
+ Display index
- -
+
-
+
+
+ false
+
+
+
+ 150
+ 0
+
+
+
+ /home/user/.vcmi
+
+
+ true
+
+
+
+ -
+
+
+ Check repositories on startup
+
+
+
+ -
+
+
+ Network port
+
+
+
+ -
+
+
+ VCAI
+
+
-
+
+ VCAI
+
+
+ -
+
+ Nullkiller
+
+
+
+
+ -
+
+
+ false
+
+
+ BattleAI
+
+
-
+
+ BattleAI
+
+
+ -
+
+ StupidAI
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Data Directories
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Video
+
+
+
+ -
+
+
+ Heroes III character set
+
+
+
+ -
+
+
+ false
+
+
+ BattleAI
+
+
-
+
+ BattleAI
+
+
+ -
+
+ StupidAI
+
+
+
+
+ -
+
+
+ Extra data directory
+
+
+
+ -
+
+
+ 1
+
+
-
+
+ Off
+
+
+ -
+
+ On
+
+
+
+
+ -
+
+
+ Log files directory
+
+
+
+ -
+
+
+ QPlainTextEdit::NoWrap
+
+
+ http://downloads.vcmi.eu/Mods/repository.json
+
+
+
+ -
+
+
+ Show intro
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Launcher Settings
+
+
+
+ -
Build version
- -
+
-
+
+
+ Qt::Vertical
+
+
+ QSizePolicy::Fixed
+
+
+
+ 56
+ 8
+
+
+
+
+ -
+
+
+
+ 0
+ 22
+
+
+
+ Enemy AI
+
+
+
+ -
+
+
+ 1
+
+
-
+
+ Off
+
+
+ -
+
+ On
+
+
+
+
+ -
+ -
+
+
+
+ 75
+ true
+ true
+ false
+
+
+
+ AI in the battlefield
+
+
+
diff --git a/launcher/translation/launcher_uk.ts b/launcher/translation/launcher_uk.ts
new file mode 100644
index 000000000..17ea2be7a
--- /dev/null
+++ b/launcher/translation/launcher_uk.ts
@@ -0,0 +1,536 @@
+
+
+
+
+ CModListView
+
+
+
+ Фільтр
+
+
+
+
+ Усі модифікації
+
+
+
+
+ Усі доступні
+
+
+
+
+ Встановлені
+
+
+
+
+ Доступні оновлення
+
+
+
+
+ Активні
+
+
+
+
+ Неактивні
+
+
+
+
+ Завантажити та оновити репозиторії
+
+
+
+
+
+ Опис
+
+
+
+
+ Зміни
+
+
+
+
+ Знімки
+
+
+
+
+ Показати подробиці
+
+
+
+
+ Видалити
+
+
+
+
+ Активувати
+
+
+
+
+ Деактивувати
+
+
+
+
+ Оновити
+
+
+
+
+ Встановити
+
+
+
+
+ %p% (%v КБ з %m КБ)
+
+
+
+
+ Відмінити
+
+
+
+
+ Назва модифікації
+
+
+
+
+ Встановлена версія
+
+
+
+
+ Найновіша версія
+
+
+
+
+ Розмір для завантаження
+
+
+
+
+ Автори
+
+
+
+
+ Ліцензія
+
+
+
+
+ Домашня сторінка
+
+
+
+
+
+ Сумісність
+
+
+
+
+
+ Необхідна версія VCMI
+
+
+
+
+ Підтримувана версія VCMI
+
+
+
+
+ Підтримувані версії VCMI
+
+
+
+
+ Необхідні модифікації
+
+
+
+
+ Конфліктуючі модифікації
+
+
+
+
+ Цю модифікацію не можна встановити чи активувати, оскільки відсутні наступні залежності
+
+
+
+
+ Цю модифікацію не можна ввімкнути, оскільки наступні модифікації несумісні з цією модифікацією
+
+
+
+
+ Цю модифікацію не можна відключити, оскільки вона необхідна для запуску наступних модифікацій
+
+
+
+
+ Цю модифікацію не можна видалити або оновити, оскільки вона необхідна для запуску наступних модифікацій
+
+
+
+
+ Це вкладена модифікація, і її не можна встановити або видалити окремо від батьківської модифікації
+
+
+
+
+ Примітки
+
+
+
+
+ Знімок екрану %1
+
+
+
+ CSettingsView
+
+
+
+ Змінити
+
+
+
+
+
+
+ Відкрити
+
+
+
+
+ Тека даних користувача
+
+
+
+
+
+
+
+ Вимкнено
+
+
+
+
+
+
+
+ Увімкнено
+
+
+
+
+ Повноекранний режим
+
+
+
+
+ Штучний інтелект на полі бою
+
+
+
+
+ Репозиторії
+
+
+
+
+ Оновити зараз
+
+
+
+
+ Нейтральний ШІ
+
+
+
+
+ Повний
+
+
+
+
+ Загальні налаштування
+
+
+
+
+ ШІ гравців
+
+
+
+
+ Центральноєвропейська (Windows 1250)
+
+
+
+
+ Кирилиця (Windows 1251)
+
+
+
+
+ Західноєвропейська (Windows 1252)
+
+
+
+
+ Спрощена китайська (GBK)
+
+
+
+
+ Спрощена китайська (GB2312)
+
+
+
+
+ Корейська (Windows 949)
+
+
+
+
+ Дружній ШІ
+
+
+
+
+ Роздільна здатність
+
+
+
+
+ Штучний інтелект на карті пригод
+
+
+
+
+ Автозбереження
+
+
+
+
+ Дісплей
+
+
+
+
+ Перевірка репозиторіїв при запуску
+
+
+
+
+ Мережевий порт
+
+
+
+
+ Теки даних гри
+
+
+
+
+ Графіка
+
+
+
+
+ Кодування Heroes III
+
+
+
+
+ Додаткова тека даних
+
+
+
+
+ Тека файлів журналу
+
+
+
+
+ Вступні відео
+
+
+
+
+ Налаштування лаунчера
+
+
+
+
+ Версія збірки
+
+
+
+
+ Ворожий ШІ
+
+
+
+ ImageViewer
+
+
+
+ Перегляд зображень
+
+
+
+ Lobby
+
+
+
+ Підключитися
+
+
+
+
+ Ім'я користувача
+
+
+
+
+ Сервер
+
+
+
+
+ Сесія
+
+
+
+
+ Гравці
+
+
+
+
+ Створити кімнату
+
+
+
+
+ Приєднатися до кімнати
+
+
+
+
+ Готовність!
+
+
+
+
+ Модифікації, що не збігаються
+
+
+
+
+ Вийти з кімнати
+
+
+
+
+ Виключити гравця
+
+
+
+
+ Гравці у кімнаті
+
+
+
+ LobbyRoomRequest
+
+
+
+ Налаштування кімнати
+
+
+
+
+ Назва кімнати
+
+
+
+
+ Максимум гравців
+
+
+
+
+ Пароль (за бажанням)
+
+
+
+ MainWindow
+
+
+
+ VCMI Launcher
+
+
+
+
+ Модифікації
+
+
+
+
+ Налаштування
+
+
+
+
+ Лобі
+
+
+
+
+ Грати!
+
+
+
+
+ Грати!
+
+
+
+ UpdateDialog
+
+
+
+ У вас встановлена остання версія
+
+
+
+
+ Закрити
+
+
+
+
+ Перевіряти наявність оновлень при запуску
+
+
+