1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00

Initial test version of selectable translations for launcher.

This commit is contained in:
Ivan Savenko 2022-12-19 19:12:44 +02:00
parent b6ca3f83c1
commit 9e4cef015d
12 changed files with 1210 additions and 599 deletions

View File

@ -87,6 +87,10 @@ else()
qt5_wrap_ui(launcher_UI_HEADERS ${launcher_FORMS}) qt5_wrap_ui(launcher_UI_HEADERS ${launcher_FORMS})
endif() 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) if(WIN32)
set(launcher_ICON VCMI_launcher.rc) set(launcher_ICON VCMI_launcher.rc)
endif() endif()
@ -94,7 +98,7 @@ endif()
if(BUILD_SINGLE_APP) if(BUILD_SINGLE_APP)
add_library(vcmilauncher STATIC ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS}) add_library(vcmilauncher STATIC ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS})
else() 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() endif()
if(WIN32) if(WIN32)

View File

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string/>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="5"> <item row="0" column="5">
@ -52,7 +52,7 @@
<item row="0" column="1"> <item row="0" column="1">
<widget class="QLineEdit" name="serverEdit"> <widget class="QLineEdit" name="serverEdit">
<property name="text"> <property name="text">
<string>127.0.0.1:5002</string> <string notr="true">127.0.0.1:5002</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@ -51,39 +51,42 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="currentText">
<string notr="true">2</string>
</property>
<item> <item>
<property name="text"> <property name="text">
<string>2</string> <string notr="true">2</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>3</string> <string notr="true">3</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>4</string> <string notr="true">4</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>5</string> <string notr="true">5</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>6</string> <string notr="true">6</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>7</string> <string notr="true">7</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>8</string> <string notr="true">8</string>
</property> </property>
</item> </item>
</widget> </widget>

View File

@ -32,6 +32,11 @@ int main(int argc, char * argv[])
{ {
#endif #endif
QApplication vcmilauncher(argc, argv); QApplication vcmilauncher(argc, argv);
//QTranslator translator;
//translator.load("./launcher_uk.qm");
//vcmilauncher.installTranslator(&translator);
MainWindow mainWindow; MainWindow mainWindow;
mainWindow.show(); mainWindow.show();
result = vcmilauncher.exec(); result = vcmilauncher.exec();

View File

@ -68,21 +68,6 @@ MainWindow::MainWindow(QWidget * parent)
move(position); 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->tabListWidget->setCurrentIndex(0);
ui->settingsView->isExtraResolutionsModEnabled = ui->modlistView->isExtraResolutionsModEnabled(); ui->settingsView->isExtraResolutionsModEnabled = ui->modlistView->isExtraResolutionsModEnabled();
@ -90,19 +75,6 @@ MainWindow::MainWindow(QWidget * parent)
connect(ui->modlistView, &CModListView::extraResolutionsEnabledChanged, connect(ui->modlistView, &CModListView::extraResolutionsEnabledChanged,
ui->settingsView, &CSettingsView::fillValidResolutions); 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()) if(settings["launcher"]["updateOnStartup"].Bool())
UpdateDialog::showUpdateDialog(false); UpdateDialog::showUpdateDialog(false);
} }
@ -122,12 +94,25 @@ void MainWindow::on_startGameButton_clicked()
startGame({}); startGame({});
} }
void MainWindow::on_tabSelectList_currentRowChanged(int currentRow)
{
ui->startGameButton->setEnabled(currentRow != TabRows::LOBBY);
}
const CModList & MainWindow::getModList() const const CModList & MainWindow::getModList() const
{ {
return ui->modlistView->getModList(); 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);
}

View File

@ -46,5 +46,7 @@ public slots:
void on_startGameButton_clicked(); void on_startGameButton_clicked();
private slots: private slots:
void on_tabSelectList_currentRowChanged(int currentRow); void on_modslistButton_clicked();
void on_settingsButton_clicked();
void on_lobbyButton_clicked();
}; };

View File

@ -31,84 +31,20 @@
</property> </property>
<widget class="QWidget" name="centralWidget"> <widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="1" column="0">
<widget class="QListWidget" name="tabSelectList"> <widget class="QToolButton" name="settingsButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
<horstretch>89</horstretch> <horstretch>1</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>89</width> <width>0</width>
<height>89</height> <height>0</height>
</size> </size>
</property> </property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="showDropIndicator" stdset="0">
<bool>false</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::NoDragDrop</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectItems</enum>
</property>
<property name="iconSize">
<size>
<width>89</width>
<height>89</height>
</size>
</property>
<property name="movement">
<enum>QListView::Static</enum>
</property>
<property name="flow">
<enum>QListView::TopToBottom</enum>
</property>
<property name="isWrapping" stdset="0">
<bool>false</bool>
</property>
<property name="resizeMode">
<enum>QListView::Adjust</enum>
</property>
<property name="gridSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
<property name="viewMode">
<enum>QListView::IconMode</enum>
</property>
<property name="uniformItemSizes">
<bool>true</bool>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Mods</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-mods.png</normaloff>icons:menu-mods.png</iconset>
</property>
</item>
<item>
<property name="text"> <property name="text">
<string>Settings</string> <string>Settings</string>
</property> </property>
@ -116,8 +52,56 @@
<iconset> <iconset>
<normaloff>icons:menu-settings.png</normaloff>icons:menu-settings.png</iconset> <normaloff>icons:menu-settings.png</normaloff>icons:menu-settings.png</iconset>
</property> </property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</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>
<item> <item row="3" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0">
<widget class="QToolButton" name="lobbyButton">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text"> <property name="text">
<string>Lobby</string> <string>Lobby</string>
</property> </property>
@ -125,59 +109,51 @@
<iconset> <iconset>
<normaloff>icons:menu-lobby.png</normaloff>icons:menu-lobby.png</iconset> <normaloff>icons:menu-lobby.png</normaloff>icons:menu-lobby.png</iconset>
</property> </property>
</item> <property name="iconSize">
</widget> <size>
</item> <width>60</width>
<item row="2" column="0"> <height>60</height>
<widget class="QLabel" name="startGameTitle"> </size>
<property name="font">
<font>
<bold>true</bold>
</font>
</property> </property>
<property name="text"> <property name="checkable">
<string>Start game</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1" rowspan="3">
<widget class="QStackedWidget" name="tabListWidget">
<property name="enabled">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="sizePolicy"> <property name="checked">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <bool>false</bool>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="currentIndex"> <property name="autoExclusive">
<number>0</number> <bool>true</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property> </property>
<widget class="CModListView" name="modlistView"/>
<widget class="CSettingsView" name="settingsView"/>
<widget class="Lobby" name="lobbyView"/>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="4" column="0">
<widget class="QToolButton" name="startGameButton"> <widget class="QToolButton" name="startGameButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Maximum"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
<horstretch>89</horstretch> <horstretch>1</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>89</width> <width>0</width>
<height>89</height> <height>0</height>
</size> </size>
</property> </property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text"> <property name="text">
<string>Play</string> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset> <iconset>
@ -198,6 +174,104 @@
<property name="toolButtonStyle"> <property name="toolButtonStyle">
<enum>Qt::ToolButtonIconOnly</enum> <enum>Qt::ToolButtonIconOnly</enum>
</property> </property>
<property name="autoRaise">
<bool>false</bool>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="startGameTitle">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Start game</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2" rowspan="6">
<widget class="QStackedWidget" name="tabListWidget">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>10</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="CModListView" name="modlistView"/>
<widget class="CSettingsView" name="settingsView"/>
<widget class="Lobby" name="lobbyView"/>
</widget>
</item>
<item row="0" column="0">
<widget class="QToolButton" name="modslistButton">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Mods</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-mods.png</normaloff>icons:menu-mods.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</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 row="0" column="1" rowspan="6">
<widget class="Line" name="line">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="midLineWidth">
<number>0</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -225,7 +299,6 @@
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<tabstops> <tabstops>
<tabstop>tabSelectList</tabstop>
<tabstop>startGameButton</tabstop> <tabstop>startGameButton</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>

View File

@ -6,12 +6,12 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>596</width> <width>680</width>
<height>342</height> <height>342</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string notr="true"/>
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin"> <property name="leftMargin">
@ -252,11 +252,11 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="html"> <property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string notr="true">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;meta charset=&quot;utf-8&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="openExternalLinks"> <property name="openExternalLinks">
<bool>true</bool> <bool>true</bool>

View File

@ -72,12 +72,10 @@ void CSettingsView::loadSettings()
#ifdef Q_OS_IOS #ifdef Q_OS_IOS
ui->comboBoxFullScreen->setCurrentIndex(true); ui->comboBoxFullScreen->setCurrentIndex(true);
ui->checkBoxFullScreen->setChecked(false); ui->comboBoxFullScreen->setDisabled(true);
for (auto widget : std::initializer_list<QWidget *>{ui->comboBoxFullScreen, ui->checkBoxFullScreen})
widget->setDisabled(true);
#else #else
ui->comboBoxFullScreen->setCurrentIndex(settings["video"]["fullscreen"].Bool()); ui->comboBoxFullScreen->setCurrentIndex(settings["video"]["fullscreen"].Bool());
ui->checkBoxFullScreen->setChecked(settings["video"]["realFullscreen"].Bool()); //ui->checkBoxFullScreen->setChecked(settings["video"]["realFullscreen"].Bool());
#endif #endif
ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String())); 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) void CSettingsView::on_comboBoxFullScreen_currentIndexChanged(int index)
{ {
Settings node = settings.write["video"]["fullscreen"]; Settings nodeFullscreen = settings.write["video"]["fullscreen"];
node->Bool() = index; Settings nodeRealFullscreen = settings.write["video"]["realFullscreen"];
} nodeFullscreen->Bool() = index != 0;
nodeFullscreen->Bool() = index == 2;
void CSettingsView::on_checkBoxFullScreen_stateChanged(int state)
{
Settings node = settings.write["video"]["realFullscreen"];
node->Bool() = state;
} }
void CSettingsView::on_comboBoxAutoCheck_currentIndexChanged(int index) void CSettingsView::on_comboBoxAutoCheck_currentIndexChanged(int index)

View File

@ -32,8 +32,6 @@ public slots:
void fillValidResolutions(bool isExtraResolutionsModEnabled); void fillValidResolutions(bool isExtraResolutionsModEnabled);
private slots: private slots:
void on_checkBoxFullScreen_stateChanged(int state);
void on_comboBoxResolution_currentTextChanged(const QString & arg1); void on_comboBoxResolution_currentTextChanged(const QString & arg1);
void on_comboBoxFullScreen_currentIndexChanged(int index); void on_comboBoxFullScreen_currentIndexChanged(int index);

View File

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string/>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin"> <property name="leftMargin">
@ -26,47 +26,67 @@
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item row="8" column="1" colspan="4"> <item row="1" column="8">
<widget class="QLabel" name="labelAIMovingOnTheMap"> <widget class="QPushButton" name="changeGameDataDir">
<property name="font"> <property name="enabled">
<font> <bool>false</bool>
<bold>true</bold>
</font>
</property> </property>
<property name="text"> <property name="text">
<string>AI on the map</string> <string>Change</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1" colspan="4"> <item row="3" column="9">
<widget class="QLabel" name="labelVideo"> <widget class="QPushButton" name="openTempDir">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text"> <property name="text">
<string>Video</string> <string>Open</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="2" column="6">
<widget class="QLabel" name="labelShowIntro"> <widget class="QLabel" name="labelUserDataDir">
<property name="text"> <property name="text">
<string>Show intro</string> <string>User data directory</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="7" colspan="3"> <item row="10" column="5">
<widget class="QSpinBox" name="spinBoxNetworkPort"> <spacer name="spacerColumns">
<property name="minimum"> <property name="orientation">
<number>1024</number> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="maximum"> <property name="sizeType">
<number>65535</number> <enum>QSizePolicy::Fixed</enum>
</property> </property>
<property name="value"> <property name="sizeHint" stdset="0">
<number>3030</number> <size>
<width>8</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="10" column="7">
<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="1" column="9">
<widget class="QPushButton" name="openGameDataDir">
<property name="text">
<string>Open</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -79,28 +99,7 @@
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>/usr/share/vcmi</string> <string notr="true">/usr/share/vcmi</string>
</property>
</widget>
</item>
<item row="10" column="6">
<widget class="QLabel" name="labelEncoding">
<property name="text">
<string>Heroes III character set</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="checkBoxFullScreen">
<property name="text">
<string>Real fullscreen mode</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="labelResolution">
<property name="text">
<string>Resolution</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -111,22 +110,63 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="7" colspan="2"> <item row="10" column="4">
<widget class="QLineEdit" name="lineEditUserDataDir"> <widget class="QComboBox" name="comboBoxNeutralAI">
<property name="enabled"> <property name="currentText">
<bool>false</bool> <string notr="true">BattleAI</string>
</property> </property>
<property name="minimumSize"> <item>
<size> <property name="text">
<width>150</width> <string notr="true">BattleAI</string>
<height>0</height> </property>
</size> </item>
<item>
<property name="text">
<string notr="true">StupidAI</string>
</property>
</item>
</widget>
</item>
<item row="8" column="7" 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>
</property>
</widget>
</item>
<item row="17" column="1" colspan="4">
<widget class="QLabel" name="labelRepositories">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property> </property>
<property name="text"> <property name="text">
<string>/home/user/.vcmi</string> <string>Repositories</string>
</property> </property>
<property name="readOnly"> </widget>
<bool>true</bool> </item>
<item row="1" column="4">
<widget class="QComboBox" name="comboBoxResolution"/>
</item>
<item row="16" column="7">
<widget class="QPushButton" name="updatesButton">
<property name="text">
<string>Check for updates</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QLabel" name="labelNeutralAI">
<property name="text">
<string>Neutral AI</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -145,12 +185,25 @@
<string>On</string> <string>On</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>Real</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item row="8" column="6" colspan="4"> <item row="2" column="9">
<widget class="QPushButton" name="openUserDataDir">
<property name="text">
<string>Open</string>
</property>
</widget>
</item>
<item row="7" column="6" colspan="4">
<widget class="QLabel" name="labelGeneral"> <widget class="QLabel" name="labelGeneral">
<property name="font"> <property name="font">
<font> <font>
<weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
</property> </property>
@ -159,210 +212,8 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="20" column="1" colspan="9"> <item row="2" column="7" colspan="2">
<widget class="QPlainTextEdit" name="plainTextEditRepos"> <widget class="QLineEdit" name="lineEditUserDataDir">
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
<property name="plainText">
<string>http://downloads.vcmi.eu/Mods/repository.json</string>
</property>
</widget>
</item>
<item row="1" column="9">
<widget class="QPushButton" name="openGameDataDir">
<property name="text">
<string>Open</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLabel" name="labelPlayerAI">
<property name="text">
<string>Player AI</string>
</property>
</widget>
</item>
<item row="18" column="1" colspan="4">
<widget class="QLabel" name="labelRepositories">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Repositories</string>
</property>
</widget>
</item>
<item row="9" column="4">
<widget class="QComboBox" name="comboBoxPlayerAI">
<item>
<property name="text">
<string>VCAI</string>
</property>
</item>
<item>
<property name="text">
<string>Nullkiller</string>
</property>
</item>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="labelDisplayIndex">
<property name="text">
<string>Display index</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QComboBox" name="comboBoxShowIntro">
<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="11" column="4">
<widget class="QComboBox" name="comboBoxNeutralAI">
<item>
<property name="text">
<string>BattleAI</string>
</property>
</item>
<item>
<property name="text">
<string>StupidAI</string>
</property>
</item>
</widget>
</item>
<item row="13" column="4">
<widget class="QComboBox" name="comboBoxFriendlyAI">
<property name="editable">
<bool>false</bool>
</property>
<property name="currentText">
<string>BattleAI</string>
</property>
<item>
<property name="text">
<string>BattleAI</string>
</property>
</item>
<item>
<property name="text">
<string>StupidAI</string>
</property>
</item>
</widget>
</item>
<item row="11" column="5">
<spacer name="spacerColumns">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>8</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="9">
<widget class="QPushButton" name="openTempDir">
<property name="text">
<string>Open</string>
</property>
</widget>
</item>
<item row="16" column="1" colspan="4">
<widget class="QLabel" name="LauncherSettings">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Launcher Settings</string>
</property>
</widget>
</item>
<item row="1" column="6">
<widget class="QLabel" name="labelGameDir">
<property name="text">
<string>Extra data directory</string>
</property>
</widget>
</item>
<item row="14" column="1">
<widget class="QLabel" name="labelEnemyAI">
<property name="minimumSize">
<size>
<width>0</width>
<height>22</height>
</size>
</property>
<property name="text">
<string>Enemy AI</string>
</property>
</widget>
</item>
<item row="1" column="8">
<widget class="QPushButton" name="changeGameDataDir">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Change</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QComboBox" name="comboBoxResolution"/>
</item>
<item row="11" column="1">
<widget class="QLabel" name="labelNeutralAI">
<property name="text">
<string>Neutral AI</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QComboBox" name="comboBoxDisplayIndex"/>
</item>
<item row="7" column="1" colspan="4">
<spacer name="spacerSections">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>56</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="7" colspan="2">
<widget class="QLineEdit" name="lineEditTempDir">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
@ -373,158 +224,21 @@
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>/home/user/.vcmi</string> <string notr="true">/home/user/.vcmi</string>
</property> </property>
<property name="readOnly"> <property name="readOnly">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="17" column="6"> <item row="8" column="1">
<widget class="QComboBox" name="comboBoxAutoCheck"> <widget class="QLabel" name="labelPlayerAI">
<property name="currentIndex">
<number>1</number>
</property>
<item>
<property name="text"> <property name="text">
<string>Off</string> <string>Player AI</string>
</property>
</item>
<item>
<property name="text">
<string>On</string>
</property>
</item>
</widget>
</item>
<item row="11" column="7">
<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="14" column="4">
<widget class="QComboBox" name="comboBoxEnemyAI">
<property name="editable">
<bool>false</bool>
</property>
<property name="currentText">
<string>BattleAI</string>
</property>
<item>
<property name="text">
<string>BattleAI</string>
</property>
</item>
<item>
<property name="text">
<string>StupidAI</string>
</property>
</item>
</widget>
</item>
<item row="15" column="1" colspan="4">
<spacer name="spacerRepos">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="10" column="1">
<widget class="QLabel" name="labelAIInTheBattlefield">
<property name="font">
<font>
<italic>true</italic>
<bold>true</bold>
<underline>false</underline>
</font>
</property>
<property name="text">
<string>AI in the battlefield</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="17" column="1" colspan="4"> <item row="9" column="7" colspan="3">
<widget class="QLabel" name="labelAutoCheck">
<property name="text">
<string>Check repositories on startup</string>
</property>
</widget>
</item>
<item row="13" column="1">
<widget class="QLabel" name="labelFriendlyAI">
<property name="minimumSize">
<size>
<width>0</width>
<height>22</height>
</size>
</property>
<property name="text">
<string>Friendly AI</string>
</property>
</widget>
</item>
<item row="3" column="6">
<widget class="QLabel" name="labelTempDir">
<property name="text">
<string>Log files directory</string>
</property>
</widget>
</item>
<item row="0" column="6" colspan="4">
<widget class="QLabel" name="labelDataDirs">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Data Directories</string>
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QLabel" name="labelUserDataDir">
<property name="text">
<string>User data directory</string>
</property>
</widget>
</item>
<item row="2" column="9">
<widget class="QPushButton" name="openUserDataDir">
<property name="text">
<string>Open</string>
</property>
</widget>
</item>
<item row="9" column="6">
<widget class="QLabel" name="labelNetworkPort">
<property name="text">
<string>Network port</string>
</property>
</widget>
</item>
<item row="10" column="7" colspan="3">
<widget class="QComboBox" name="comboBoxEncoding"> <widget class="QComboBox" name="comboBoxEncoding">
<item> <item>
<property name="text"> <property name="text">
@ -558,34 +272,331 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="11" column="6"> <item row="12" column="1">
<widget class="QLabel" name="labelFriendlyAI">
<property name="minimumSize">
<size>
<width>0</width>
<height>22</height>
</size>
</property>
<property name="text">
<string>Friendly AI</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="labelResolution">
<property name="text">
<string>Resolution</string>
</property>
</widget>
</item>
<item row="7" column="1" colspan="4">
<widget class="QLabel" name="labelAIMovingOnTheMap">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>AI on the map</string>
</property>
</widget>
</item>
<item row="14" column="1" colspan="4">
<spacer name="spacerRepos">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="4">
<widget class="QComboBox" name="comboBoxDisplayIndex"/>
</item>
<item row="10" column="6">
<widget class="QLabel" name="labelAutoSave"> <widget class="QLabel" name="labelAutoSave">
<property name="text"> <property name="text">
<string>Autosave</string> <string>Autosave</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="17" column="7"> <item row="4" column="1">
<widget class="QPushButton" name="updatesButton"> <widget class="QLabel" name="labelDisplayIndex">
<property name="text"> <property name="text">
<string>Check for updates</string> <string>Display index</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="13" column="6"> <item row="3" column="7" colspan="2">
<widget class="QLineEdit" name="lineEditTempDir">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="text">
<string notr="true">/home/user/.vcmi</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="16" column="1" colspan="4">
<widget class="QLabel" name="labelAutoCheck">
<property name="text">
<string>Check repositories on startup</string>
</property>
</widget>
</item>
<item row="8" column="6">
<widget class="QLabel" name="labelNetworkPort">
<property name="text">
<string>Network port</string>
</property>
</widget>
</item>
<item row="8" column="4">
<widget class="QComboBox" name="comboBoxPlayerAI">
<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="13" column="4">
<widget class="QComboBox" name="comboBoxEnemyAI">
<property name="editable">
<bool>false</bool>
</property>
<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="0" column="6" colspan="4">
<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="0" column="1" colspan="4">
<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="9" column="6">
<widget class="QLabel" name="labelEncoding">
<property name="text">
<string>Heroes III character set</string>
</property>
</widget>
</item>
<item row="12" column="4">
<widget class="QComboBox" name="comboBoxFriendlyAI">
<property name="editable">
<bool>false</bool>
</property>
<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="1" column="6">
<widget class="QLabel" name="labelGameDir">
<property name="text">
<string>Extra data directory</string>
</property>
</widget>
</item>
<item row="16" column="6">
<widget class="QComboBox" name="comboBoxAutoCheck">
<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="3" column="6">
<widget class="QLabel" name="labelTempDir">
<property name="text">
<string>Log files directory</string>
</property>
</widget>
</item>
<item row="19" column="1" colspan="9">
<widget class="QPlainTextEdit" name="plainTextEditRepos">
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
<property name="plainText">
<string notr="true">http://downloads.vcmi.eu/Mods/repository.json</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="labelShowIntro">
<property name="text">
<string>Show intro</string>
</property>
</widget>
</item>
<item row="15" column="1" colspan="4">
<widget class="QLabel" name="LauncherSettings">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Launcher Settings</string>
</property>
</widget>
</item>
<item row="12" column="6">
<widget class="QLabel" name="labelBuildVersionDesc"> <widget class="QLabel" name="labelBuildVersionDesc">
<property name="text"> <property name="text">
<string>Build version</string> <string>Build version</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="13" column="7" colspan="3"> <item row="6" column="1" colspan="4">
<spacer name="spacerSections">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>56</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="13" column="1">
<widget class="QLabel" name="labelEnemyAI">
<property name="minimumSize">
<size>
<width>0</width>
<height>22</height>
</size>
</property>
<property name="text">
<string>Enemy AI</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QComboBox" name="comboBoxShowIntro">
<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="12" column="7" colspan="3">
<widget class="QLabel" name="labelBuildVersion"> <widget class="QLabel" name="labelBuildVersion">
<property name="text"> <property name="text">
<string notr="true"/> <string notr="true"/>
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="1" colspan="4">
<widget class="QLabel" name="labelAIInTheBattlefield">
<property name="font">
<font>
<weight>75</weight>
<italic>true</italic>
<bold>true</bold>
<underline>false</underline>
</font>
</property>
<property name="text">
<string>AI in the battlefield</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<resources/> <resources/>

View File

@ -0,0 +1,536 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="uk_UA">
<context>
<name>CModListView</name>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="61"/>
<source>Filter</source>
<translation>Фільтр</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="84"/>
<source>All mods</source>
<translation>Усі модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="89"/>
<source>Downloadable</source>
<translation>Усі доступні</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="94"/>
<source>Installed</source>
<translation>Встановлені</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="99"/>
<source>Updatable</source>
<translation>Доступні оновлення</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="104"/>
<source>Active</source>
<translation>Активні</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="109"/>
<source>Inactive</source>
<translation>Неактивні</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="123"/>
<source>Download &amp;&amp; refresh repositories</source>
<translation>Завантажити та оновити репозиторії</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="228"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Description</source>
<translation>Опис</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="273"/>
<source>Changelog</source>
<translation>Зміни</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="295"/>
<source>Screenshots</source>
<translation>Знімки</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="368"/>
<source>Show details</source>
<translation>Показати подробиці</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="409"/>
<source>Uninstall</source>
<translation>Видалити</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="434"/>
<source>Enable</source>
<translation>Активувати</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="459"/>
<source>Disable</source>
<translation>Деактивувати</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="484"/>
<source>Update</source>
<translation>Оновити</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="509"/>
<source>Install</source>
<translation>Встановити</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="563"/>
<source> %p% (%v KB out of %m KB)</source>
<translation> %p% (%v КБ з %m КБ)</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="576"/>
<source>Abort</source>
<translation>Відмінити</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="236"/>
<source>Mod name</source>
<translation>Назва модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="237"/>
<source>Installed version</source>
<translation>Встановлена версія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="238"/>
<source>Latest version</source>
<translation>Найновіша версія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="241"/>
<source>Download size</source>
<translation>Розмір для завантаження</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="242"/>
<source>Authors</source>
<translation>Автори</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="245"/>
<source>License</source>
<translation>Ліцензія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
<source>Home</source>
<translation>Домашня сторінка</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="259"/>
<source>Compatibility</source>
<translation>Сумісність</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="261"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="269"/>
<source>Required VCMI version</source>
<translation>Необхідна версія VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="267"/>
<source>Supported VCMI version</source>
<translation>Підтримувана версія VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="272"/>
<source>Supported VCMI versions</source>
<translation>Підтримувані версії VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="276"/>
<source>Required mods</source>
<translation>Необхідні модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="277"/>
<source>Conflicting mods</source>
<translation>Конфліктуючі модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="282"/>
<source>This mod can not be installed or enabled because following dependencies are not present</source>
<translation>Цю модифікацію не можна встановити чи активувати, оскільки відсутні наступні залежності</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>This mod can not be enabled because following mods are incompatible with this mod</source>
<translation>Цю модифікацію не можна ввімкнути, оскільки наступні модифікації несумісні з цією модифікацією</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>This mod can not be disabled because it is required to run following mods</source>
<translation>Цю модифікацію не можна відключити, оскільки вона необхідна для запуску наступних модифікацій</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>This mod can not be uninstalled or updated because it is required to run following mods</source>
<translation>Цю модифікацію не можна видалити або оновити, оскільки вона необхідна для запуску наступних модифікацій</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<source>This is submod and it can not be installed or uninstalled separately from parent mod</source>
<translation>Це вкладена модифікація, і її не можна встановити або видалити окремо від батьківської модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="301"/>
<source>Notes</source>
<translation>Примітки</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="818"/>
<source>Screenshot %1</source>
<translation>Знімок екрану %1</translation>
</message>
</context>
<context>
<name>CSettingsView</name>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="35"/>
<source>Change</source>
<translation>Змінити</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="42"/>
<location filename="../settingsView/csettingsview_moc.ui" line="89"/>
<location filename="../settingsView/csettingsview_moc.ui" line="213"/>
<source>Open</source>
<translation>Відкрити</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="49"/>
<source>User data directory</source>
<translation>Тека даних користувача</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="76"/>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="493"/>
<location filename="../settingsView/csettingsview_moc.ui" line="583"/>
<source>Off</source>
<translation>Вимкнено</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="81"/>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
<source>On</source>
<translation>Увімкнено</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="109"/>
<source>Fullscreen</source>
<translation>Повноекранний режим</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="141"/>
<source>AI in the battlefield</source>
<translation>Штучний інтелект на полі бою</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="167"/>
<source>Repositories</source>
<translation>Репозиторії</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
<source>Check for updates</source>
<translation>Оновити зараз</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
<source>Neutral AI</source>
<translation>Нейтральний ШІ</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<source>Real</source>
<translation>Повний</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="226"/>
<source>General</source>
<translation>Загальні налаштування</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="252"/>
<source>Player AI</source>
<translation>ШІ гравців</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="260"/>
<source>Central European (Windows 1250)</source>
<translation>Центральноєвропейська (Windows 1250)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="265"/>
<source>Cyrillic script (Windows 1251)</source>
<translation>Кирилиця (Windows 1251)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Western European (Windows 1252)</source>
<translation>Західноєвропейська (Windows 1252)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="275"/>
<source>Simplified Chinese (GBK)</source>
<translation>Спрощена китайська (GBK)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="280"/>
<source>Simplified Chinese (GB2312)</source>
<translation>Спрощена китайська (GB2312)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="285"/>
<source>Korean (Windows 949)</source>
<translation>Корейська (Windows 949)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="299"/>
<source>Friendly AI</source>
<translation>Дружній ШІ</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="306"/>
<source>Resolution</source>
<translation>Роздільна здатність</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>AI on the map</source>
<translation>Штучний інтелект на карті пригод</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="345"/>
<source>Autosave</source>
<translation>Автозбереження</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="352"/>
<source>Display index</source>
<translation>Дісплей</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="378"/>
<source>Check repositories on startup</source>
<translation>Перевірка репозиторіїв при запуску</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="385"/>
<source>Network port</source>
<translation>Мережевий порт</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="435"/>
<source>Data Directories</source>
<translation>Теки даних гри</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="448"/>
<source>Video</source>
<translation>Графіка</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="455"/>
<source>Heroes III character set</source>
<translation>Кодування Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="482"/>
<source>Extra data directory</source>
<translation>Додаткова тека даних</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="506"/>
<source>Log files directory</source>
<translation>Тека файлів журналу</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="523"/>
<source>Show intro</source>
<translation>Вступні відео</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="536"/>
<source>Launcher Settings</source>
<translation>Налаштування лаунчера</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="543"/>
<source>Build version</source>
<translation>Версія збірки</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="572"/>
<source>Enemy AI</source>
<translation>Ворожий ШІ</translation>
</message>
</context>
<context>
<name>ImageViewer</name>
<message>
<location filename="../modManager/imageviewer_moc.ui" line="20"/>
<source>Image Viewer</source>
<translation>Перегляд зображень</translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../lobby/lobby_moc.ui" line="26"/>
<source>Connect</source>
<translation>Підключитися</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="45"/>
<source>Username</source>
<translation>Ім&apos;я користувача</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="69"/>
<source>Server</source>
<translation>Сервер</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="111"/>
<source>Session</source>
<translation>Сесія</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="116"/>
<source>Players</source>
<translation>Гравці</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="132"/>
<source>New room</source>
<translation>Створити кімнату</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="142"/>
<source>Join room</source>
<translation>Приєднатися до кімнати</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="153"/>
<source>Ready</source>
<translation>Готовність!</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="160"/>
<source>Mods mismatch</source>
<translation>Модифікації, що не збігаються</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="167"/>
<source>Leave</source>
<translation>Вийти з кімнати</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="197"/>
<source>Kick player</source>
<translation>Виключити гравця</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="204"/>
<source>Players in the room</source>
<translation>Гравці у кімнаті</translation>
</message>
</context>
<context>
<name>LobbyRoomRequest</name>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
<source>Room settings</source>
<translation>Налаштування кімнати</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
<source>Room name</source>
<translation>Назва кімнати</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
<source>Maximum players</source>
<translation>Максимум гравців</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
<source>Password (optional)</source>
<translation>Пароль (за бажанням)</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow_moc.ui" line="20"/>
<source>VCMI Launcher</source>
<translation>VCMI Launcher</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="104"/>
<source>Mods</source>
<translation>Модифікації</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="113"/>
<source>Settings</source>
<translation>Налаштування</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="122"/>
<source>Lobby</source>
<translation>Лобі</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="139"/>
<source>Start game</source>
<translation>Грати!</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="180"/>
<source>Play</source>
<translation>Грати!</translation>
</message>
</context>
<context>
<name>UpdateDialog</name>
<message>
<location filename="../updatedialog_moc.ui" line="71"/>
<source>You have latest version</source>
<translation>У вас встановлена остання версія</translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="94"/>
<source>Close</source>
<translation>Закрити</translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="101"/>
<source>Check updates on startup</source>
<translation>Перевіряти наявність оновлень при запуску</translation>
</message>
</context>
</TS>