1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-28 08:48:48 +02:00

Merge pull request #1293 from IvanSavenko/translate_launcher

Translations support - Launcher
This commit is contained in:
Ivan Savenko 2023-01-17 23:05:14 +02:00 committed by GitHub
commit bafe0c42ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 4069 additions and 593 deletions

View File

@ -14,8 +14,8 @@ sudo add-apt-repository 'deb http://security.ubuntu.com/ubuntu bionic-security m
sudo apt-get install -qq nsis ninja-build libssl1.0.0
# MXE repository was too slow for Travis far too often
wget -nv https://github.com/vcmi/vcmi-deps-mxe/releases/download/2021-02-20/mxe-i686-w64-mingw32.shared-2021-01-22.tar
tar -xvf mxe-i686-w64-mingw32.shared-2021-01-22.tar
wget -nv https://github.com/vcmi/vcmi-deps-mxe/releases/download/2022-12-26/mxe-i686-w64-mingw32.shared-2022-12-26.tar
tar -xvf mxe-i686-w64-mingw32.shared-2022-12-26.tar
sudo dpkg -i mxe-*.deb
sudo apt-get install -f --yes

View File

@ -90,6 +90,11 @@ if(APPLE_IOS AND COPY_CONFIG_ON_BUILD)
set(COPY_CONFIG_ON_BUILD OFF)
endif()
# No QT Linguist on MXE
if((MINGW) AND (${CMAKE_CROSSCOMPILING}))
set(ENABLE_TRANSLATIONS OFF)
endif()
############################################
# Miscellaneous options #
############################################
@ -181,6 +186,14 @@ set(CMAKE_XCODE_ATTRIBUTE_MARKETING_VERSION ${APP_SHORT_VERSION})
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO)
set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] YES)
if(ENABLE_LAUNCHER)
add_definitions(-DENABLE_LAUNCHER)
endif()
if(ENABLE_EDITOR)
add_definitions(-DENABLE_EDITOR)
endif()
if(ENABLE_SINGLE_APP_BUILD)
add_definitions(-DSINGLE_PROCESS_APP=1)
endif()
@ -360,12 +373,8 @@ if(ENABLE_LAUNCHER OR ENABLE_EDITOR)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network)
find_package(QT NAMES Qt6 Qt5 COMPONENTS LinguistTools)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS LinguistTools)
if(NOT Qt${QT_VERSION_MAJOR}LinguistTools_DIR)
set(ENABLE_TRANSLATIONS OFF)
endif()
if(ENABLE_TRANSLATIONS)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS LinguistTools)
add_definitions(-DENABLE_QT_TRANSLATIONS)
endif()
endif()

View File

@ -1,6 +1,20 @@
{
"name" : "VCMI essential files",
"description" : "Essential files required for VCMI to run correctly",
"german" : {
"name" : "VCMI - grundlegende Dateien",
"description" : "Grundlegende Dateien, die für die korrekte Ausführung von VCMI erforderlich sind",
"author" : "VCMI-Team",
"modType" : "Grafik",
},
"ukrainian" : {
"name" : "VCMI - ключові файли",
"description" : "Ключові файли необхідні для повноцінної роботи VCMI",
"author" : "Команда VCMI",
"modType" : "Графіка",
},
"version" : "1.1",
"author" : "VCMI Team",

View File

@ -4,7 +4,41 @@
"title" : "VCMI mod file format",
"description" : "Format used to define main mod file (mod.json) in VCMI",
"required" : [ "name", "description", "version", "author", "contact", "modType" ],
"definitions" : {
"localizable" : {
"type":"object",
"additionalProperties" : false,
"required" : [ "name", "description", "author", "modType" ],
"properties":{
"name": {
"type":"string",
"description": "Short name of your mod. No more than 2-3 words"
},
"description": {
"type":"string",
"description": "More lengthy description of mod. No hard limit"
},
"modType" : {
"type":"string",
"description": "Type of mod, e.g. Town, Artifacts, Graphical."
},
"author" : {
"type":"string",
"description": "Author of the mod. Can be nickname, real name or name of team"
},
"changelog" : {
"type":"object",
"description": "List of changes/new features in each version",
"additionalProperties" : {
"type" : "array",
"items" : { "type":"string" }
}
}
}
}
},
"additionalProperties" : false,
"properties":{
"name": {
@ -78,6 +112,26 @@
"type":"boolean",
"description": "If set to true, mod will not be enabled automatically on install"
},
"english" : {
"$ref" : "#/definitions/localizable"
},
"german" : {
"$ref" : "#/definitions/localizable"
},
"polish" : {
"$ref" : "#/definitions/localizable"
},
"russian" : {
"$ref" : "#/definitions/localizable"
},
"ukrainian" : {
"$ref" : "#/definitions/localizable"
},
"artifacts": {
"type":"array",

View File

@ -53,6 +53,7 @@
},
"language" : {
"type":"string",
"enum" : [ "english", "german", "polish", "russian", "ukrainian" ],
"default" : "english"
},
"lastSave" : {

View File

@ -62,6 +62,13 @@ set(launcher_FORMS
lobby/lobbyroomrequest_moc.ui
)
set(launcher_TS
translation/english.ts
translation/german.ts
translation/polish.ts
translation/russian.ts
translation/ukrainian.ts)
if(APPLE_IOS)
list(APPEND launcher_SRCS
ios/main.m
@ -83,18 +90,28 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(TARGET Qt6::Core)
qt_wrap_ui(launcher_UI_HEADERS ${launcher_FORMS})
if(ENABLE_TRANSLATIONS)
set_source_files_properties(${launcher_TS} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/translation)
# TODO: consider using qt_add_translations: https://doc.qt.io/qt-6/qtlinguist-cmake-qt-add-translations.html
qt_add_translation( launcher_QM ${launcher_TS} )
endif()
else()
qt5_wrap_ui(launcher_UI_HEADERS ${launcher_FORMS})
if(ENABLE_TRANSLATIONS)
set_source_files_properties(${launcher_TS} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/translation)
qt5_add_translation( launcher_QM ${launcher_TS} )
endif()
endif()
if(WIN32)
set(launcher_ICON VCMI_launcher.rc)
endif()
if(ENABLE_SINGLE_APP_BUILD)
add_library(vcmilauncher STATIC ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS})
add_library(vcmilauncher STATIC ${launcher_QM} ${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 ${launcher_QM} ${launcher_SRCS} ${launcher_HEADERS} ${launcher_UI_HEADERS} ${launcher_ICON})
endif()
if(WIN32)
@ -126,7 +143,7 @@ vcmi_set_output_dir(vcmilauncher "")
enable_pch(vcmilauncher)
if(APPLE_IOS)
set(ICONS_DESTINATION ${DATA_DIR})
set(RESOURCES_DESTINATION ${DATA_DIR})
# TODO: remove after fixing Conan's Qt recipe
if(XCODE_VERSION VERSION_GREATER_EQUAL 14.0)
@ -145,12 +162,14 @@ if(APPLE_IOS)
)
endif()
else()
set(ICONS_DESTINATION ${DATA_DIR}/launcher)
set(RESOURCES_DESTINATION ${DATA_DIR}/launcher)
# Copy to build directory for easier debugging
add_custom_command(TARGET vcmilauncher POST_BUILD
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher/icons
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/launcher/icons ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher/icons
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/launcher/icons ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher/icons
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_BINARY_DIR}/translation ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/launcher/translation
)
install(TARGETS vcmilauncher DESTINATION ${BIN_DIR})
@ -161,4 +180,8 @@ else()
install(FILES "eu.vcmi.VCMI.metainfo.xml" DESTINATION share/metainfo)
endif()
endif()
install(DIRECTORY icons DESTINATION ${ICONS_DESTINATION})
install(DIRECTORY icons DESTINATION ${RESOURCES_DESTINATION})
if(ENABLE_TRANSLATIONS)
install(FILES ${launcher_QM} DESTINATION ${RESOURCES_DESTINATION}/translation)
endif()

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -47,6 +47,15 @@ Lobby::Lobby(QWidget *parent) :
ui->kickButton->setVisible(false);
}
void Lobby::changeEvent(QEvent *event)
{
if(event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this);
}
QWidget::changeEvent(event);
}
Lobby::~Lobby()
{
delete ui;

View File

@ -19,6 +19,7 @@ class Lobby : public QWidget
{
Q_OBJECT
void changeEvent(QEvent *event) override;
public:
explicit Lobby(QWidget *parent = nullptr);
~Lobby();

View File

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

View File

@ -27,6 +27,15 @@ LobbyRoomRequest::LobbyRoomRequest(SocketLobby & socket, const QString & room, c
show();
}
void LobbyRoomRequest::changeEvent(QEvent *event)
{
if(event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this);
}
QDialog::changeEvent(event);
}
LobbyRoomRequest::~LobbyRoomRequest()
{
delete ui;

View File

@ -21,6 +21,7 @@ class LobbyRoomRequest : public QDialog
{
Q_OBJECT
void changeEvent(QEvent *event) override;
public:
explicit LobbyRoomRequest(SocketLobby & socket, const QString & room, const QMap<QString, QString> & mods, QWidget *parent = nullptr);
~LobbyRoomRequest();

View File

@ -9,7 +9,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>193</width>
<width>227</width>
<height>188</height>
</rect>
</property>
@ -51,39 +51,42 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentText">
<string notr="true">2</string>
</property>
<item>
<property name="text">
<string>2</string>
<string notr="true">2</string>
</property>
</item>
<item>
<property name="text">
<string>3</string>
<string notr="true">3</string>
</property>
</item>
<item>
<property name="text">
<string>4</string>
<string notr="true">4</string>
</property>
</item>
<item>
<property name="text">
<string>5</string>
<string notr="true">5</string>
</property>
</item>
<item>
<property name="text">
<string>6</string>
<string notr="true">6</string>
</property>
</item>
<item>
<property name="text">
<string>7</string>
<string notr="true">7</string>
</property>
</item>
<item>
<property name="text">
<string>8</string>
<string notr="true">8</string>
</property>
</item>
</widget>

View File

@ -32,6 +32,7 @@ int main(int argc, char * argv[])
{
#endif
QApplication vcmilauncher(argc, argv);
MainWindow mainWindow;
mainWindow.show();
result = vcmilauncher.exec();
@ -65,6 +66,13 @@ void startGame(const QStringList & args)
#endif
}
void startEditor(const QStringList & args)
{
#ifdef ENABLE_EDITOR
startExecutable(pathToQString(VCMIDirs::get().mapEditorPath()), args);
#endif
}
#ifndef Q_OS_IOS
void startExecutable(QString name, const QStringList & args)
{

View File

@ -10,6 +10,7 @@
#pragma once
void startGame(const QStringList & args);
void startEditor(const QStringList & args);
#ifdef VCMI_IOS
extern "C" void launchGame(int argc, char * argv[]);

View File

@ -47,10 +47,34 @@ void MainWindow::load()
settings.init();
}
void MainWindow::computeSidePanelSizes()
{
QVector<QToolButton*> widgets = {
ui->modslistButton,
ui->settingsButton,
ui->lobbyButton,
ui->startEditorButton,
ui->startGameButton
};
for(auto & widget : widgets)
{
QFontMetrics metrics(widget->font());
QSize iconSize = widget->iconSize();
// this is minimal space that is needed for our button to avoid text clipping
int buttonHeight = iconSize.height() + metrics.height() + 4;
widget->setMinimumHeight(buttonHeight);
widget->setMaximumHeight(buttonHeight * 1.2);
}
}
MainWindow::MainWindow(QWidget * parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
load(); // load FS before UI
updateTranslation(); // load translation
ui->setupUi(this);
@ -72,45 +96,32 @@ MainWindow::MainWindow(QWidget * parent)
move(position);
}
//set default margins
#ifndef ENABLE_EDITOR
ui->startEditorButton->hide();
#endif
computeSidePanelSizes();
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);
}
void MainWindow::changeEvent(QEvent *event)
{
if(event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this);
}
QMainWindow::changeEvent(event);
}
MainWindow::~MainWindow()
{
//save window settings
@ -126,12 +137,63 @@ void MainWindow::on_startGameButton_clicked()
startGame({});
}
void MainWindow::on_tabSelectList_currentRowChanged(int currentRow)
void MainWindow::on_startEditorButton_clicked()
{
ui->startGameButton->setEnabled(currentRow != TabRows::LOBBY);
startEditor({});
}
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);
}
void MainWindow::updateTranslation()
{
#ifdef ENABLE_QT_TRANSLATIONS
std::string translationFile = settings["general"]["language"].String() + ".qm";
logGlobal->info("Loading translation '%s'", translationFile);
QVector<QString> searchPaths;
#ifdef Q_OS_IOS
searchPaths.push_back(pathToQString(VCMIDirs::get().binaryPath() / "translation" / translationFile));
#else
for(auto const & string : VCMIDirs::get().dataPaths())
searchPaths.push_back(pathToQString(string / "launcher" / "translation" / translationFile));
searchPaths.push_back(pathToQString(VCMIDirs::get().userDataPath() / "launcher" / "translation" / translationFile));
#endif
for(auto const & string : boost::adaptors::reverse(searchPaths))
{
logGlobal->info("Searching for translation at '%s'", string.toStdString());
if (translator.load(string))
{
logGlobal->info("Translation found");
if (!qApp->installTranslator(&translator))
logGlobal->error("Failed to install translator");
return;
}
}
logGlobal->error("Failed to find translation");
#endif
}

View File

@ -10,6 +10,7 @@
#pragma once
#include <QMainWindow>
#include <QStringList>
#include <QTranslator>
namespace Ui
{
@ -26,6 +27,9 @@ class MainWindow : public QMainWindow
{
Q_OBJECT
#ifdef ENABLE_QT_TRANSLATIONS
QTranslator translator;
#endif
private:
Ui::MainWindow * ui;
void load();
@ -35,16 +39,22 @@ private:
MODS = 0, SETTINGS = 1, LOBBY = 2
};
void changeEvent(QEvent *event) override;
public:
explicit MainWindow(QWidget * parent = 0);
~MainWindow();
const CModList & getModList() const;
void updateTranslation();
void computeSidePanelSizes();
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();
void on_startEditorButton_clicked();
};

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>800</width>
<height>480</height>
<height>410</height>
</rect>
</property>
<property name="sizePolicy">
@ -30,127 +30,288 @@
</size>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QListWidget" name="tabSelectList">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>89</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>89</width>
<height>89</height>
</size>
</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>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<property name="text">
<string>Mods</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-mods.png</normaloff>icons:menu-mods.png</iconset>
</property>
<widget class="QToolButton" name="modslistButton">
<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>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>
<property name="text">
<string>Settings</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-settings.png</normaloff>icons:menu-settings.png</iconset>
</property>
<widget class="QToolButton" name="settingsButton">
<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>Settings</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-settings.png</normaloff>icons:menu-settings.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>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>
<property name="text">
<string>Lobby</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-lobby.png</normaloff>icons:menu-lobby.png</iconset>
</property>
<widget class="QToolButton" name="lobbyButton">
<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>Lobby</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-lobby.png</normaloff>icons:menu-lobby.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>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>
</widget>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="startEditorButton">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>5</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="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Map Editor</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-editor.png</normaloff>icons:menu-editor.png</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="startGameButton">
<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="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Start game</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-game.png</normaloff>icons:menu-game.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="startGameTitle">
<property name="font">
<font>
<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="1" rowspan="3">
<item>
<widget class="QStackedWidget" name="tabListWidget">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<horstretch>10</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
@ -162,44 +323,6 @@
<widget class="Lobby" name="lobbyView"/>
</widget>
</item>
<item row="1" column="0">
<widget class="QToolButton" name="startGameButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Maximum">
<horstretch>89</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>89</width>
<height>89</height>
</size>
</property>
<property name="text">
<string>Play</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons:menu-game.png</normaloff>icons:menu-game.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonIconOnly</enum>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
@ -224,10 +347,6 @@
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>tabSelectList</tabstop>
<tabstop>startGameButton</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@ -10,6 +10,7 @@
#include "StdInc.h"
#include "cmodlist.h"
#include "../lib/CConfigHandler.h"
#include "../../lib/JsonNode.h"
#include "../../lib/filesystem/CFileInputStream.h"
#include "../../lib/GameConstants.h"
@ -158,23 +159,34 @@ QString CModEntry::getName() const
QVariant CModEntry::getValue(QString value) const
{
QString langValue = QString::fromStdString(settings["general"]["language"].String());
// Priorities
// 1) data from newest version
// 2) data from preferred language
bool useRepositoryData = repository.contains(value);
if(repository.contains(value) && localData.contains(value))
{
// value is present in both repo and locally installed. Select one from latest version
QString installedVer = localData["installedVersion"].toString();
QString availableVer = repository["latestVersion"].toString();
if(compareVersions(installedVer, availableVer))
return repository[value];
else
return localData[value];
useRepositoryData = compareVersions(installedVer, availableVer);
}
if(repository.contains(value))
return repository[value];
auto & storage = useRepositoryData ? repository : localData;
if(localData.contains(value))
return localData[value];
if(storage.contains(langValue))
{
auto langStorage = storage[langValue].toMap();
if (langStorage.contains(value))
return langStorage[value];
}
if(storage.contains(value))
return storage[value];
return QVariant();
}

View File

@ -25,16 +25,6 @@ static const QString names[ModFields::COUNT] =
"author"
};
static const QString header[ModFields::COUNT] =
{
"Name",
"", // status icon
"", // status icon
"Type",
"Version",
"Size",
"Author"
};
}
namespace ModStatus
@ -155,8 +145,19 @@ Qt::ItemFlags CModListModel::flags(const QModelIndex &) const
QVariant CModListModel::headerData(int section, Qt::Orientation orientation, int role) const
{
static const QString header[ModFields::COUNT] =
{
QT_TR_NOOP("Name"),
QT_TR_NOOP(""), // status icon
QT_TR_NOOP(""), // status icon
QT_TR_NOOP("Type"),
QT_TR_NOOP("Version"),
QT_TR_NOOP("Size"),
QT_TR_NOOP("Author")
};
if(role == Qt::DisplayRole && orientation == Qt::Horizontal)
return ModFields::header[section];
return QCoreApplication::translate("ModFields", header[section].toStdString().c_str());
return QVariant();
}

View File

@ -34,6 +34,16 @@ void CModListView::setupModModel()
this, &CModListView::extraResolutionsEnabledChanged);
}
void CModListView::changeEvent(QEvent *event)
{
if(event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this);
modModel->reloadRepositories();
}
QWidget::changeEvent(event);
}
void CModListView::setupFilterModel()
{
filterModel = new CModFilterModel(modModel, this);
@ -227,8 +237,8 @@ QString CModListView::genModInfoText(CModEntry & mod)
QString textTemplate = prefix + "</p><p align=\"justify\">%2</p>";
QString listTemplate = "<p align=\"justify\">%1: %2</p>";
QString noteTemplate = "<p align=\"justify\">%1</p>";
QString compatibleString = prefix + "Mod is compatible</p>";
QString incompatibleString = redPrefix + "Mod is incompatible</p>";
QString compatibleString = prefix + tr("Mod is compatible") + "</p>";
QString incompatibleString = redPrefix + tr("Mod is incompatible") + "</p>";
QString supportedVersions = redPrefix + "%2 %3 %4</p>";
QString result;

View File

@ -64,6 +64,7 @@ class CModListView : public QWidget
QString genChangelogText(CModEntry & mod);
QString genModInfoText(CModEntry & mod);
void changeEvent(QEvent *event) override;
signals:
void extraResolutionsEnabledChanged(bool enabled);

View File

@ -6,12 +6,12 @@
<rect>
<x>0</x>
<y>0</y>
<width>596</width>
<width>680</width>
<height>342</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
<string notr="true"/>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
@ -252,11 +252,11 @@
<bool>true</bool>
</property>
<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;
&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;
<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;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; 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;/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-family:'Ubuntu'; font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>

View File

@ -20,6 +20,15 @@ ImageViewer::ImageViewer(QWidget * parent)
ui->setupUi(this);
}
void ImageViewer::changeEvent(QEvent *event)
{
if(event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this);
}
QDialog::changeEvent(event);
}
ImageViewer::~ImageViewer()
{
delete ui;

View File

@ -21,6 +21,7 @@ class ImageViewer : public QDialog
{
Q_OBJECT
void changeEvent(QEvent *event) override;
public:
explicit ImageViewer(QWidget * parent = 0);
~ImageViewer();

View File

@ -11,6 +11,8 @@
#include "csettingsview_moc.h"
#include "ui_csettingsview_moc.h"
#include "mainwindow_moc.h"
#include "../jsonutils.h"
#include "../launcherdirs.h"
#include "../updatedialog_moc.h"
@ -46,6 +48,16 @@ static const std::string knownEncodingsList[] = //TODO: remove hardcode
"CP949" // extension of EUC-KR.
};
/// List of tags of languages that can be selected from Launcher (and have translation for Launcher)
static const std::string languageTagList[] =
{
"english",
"german",
"polish",
"russian",
"ukrainian",
};
void CSettingsView::setDisplayList()
{
QStringList list;
@ -74,12 +86,9 @@ void CSettingsView::loadSettings()
#ifdef Q_OS_IOS
ui->comboBoxFullScreen->setCurrentIndex(true);
ui->checkBoxFullScreen->setChecked(false);
for (auto widget : std::initializer_list<QWidget *>{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());
#endif
ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String()));
@ -106,6 +115,11 @@ void CSettingsView::loadSettings()
if(encodingIndex < ui->comboBoxEncoding->count())
ui->comboBoxEncoding->setCurrentIndex((int)encodingIndex);
ui->comboBoxAutoSave->setCurrentIndex(settings["general"]["saveFrequency"].Integer() > 0 ? 1 : 0);
std::string language = settings["general"]["language"].String();
size_t languageIndex = boost::range::find(languageTagList, language) - languageTagList;
if(languageIndex < ui->comboBoxLanguage->count())
ui->comboBoxLanguage->setCurrentIndex((int)languageIndex);
}
void CSettingsView::fillValidResolutions(bool isExtraResolutionsModEnabled)
@ -196,14 +210,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);
nodeRealFullscreen->Bool() = (index == 2);
}
void CSettingsView::on_comboBoxAutoCheck_currentIndexChanged(int index)
@ -311,3 +321,21 @@ void CSettingsView::on_updatesButton_clicked()
UpdateDialog::showUpdateDialog(true);
}
void CSettingsView::on_comboBoxLanguage_currentIndexChanged(int index)
{
Settings node = settings.write["general"]["language"];
node->String() = languageTagList[index];
if ( auto mainWindow = dynamic_cast<MainWindow*>(qApp->activeWindow()) )
mainWindow->updateTranslation();
}
void CSettingsView::changeEvent(QEvent *event)
{
if(event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this);
}
QWidget::changeEvent(event);
}

View File

@ -25,6 +25,7 @@ public:
void loadSettings();
void setDisplayList();
void changeEvent(QEvent *event) override;
bool isExtraResolutionsModEnabled{};
@ -32,8 +33,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);
@ -70,6 +69,8 @@ private slots:
void on_updatesButton_clicked();
void on_comboBoxLanguage_currentIndexChanged(int index);
private:
Ui::CSettingsView * ui;

View File

@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
<string/>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
@ -26,91 +26,6 @@
<property name="bottomMargin">
<number>0</number>
</property>
<item row="8" column="1" colspan="4">
<widget class="QLabel" name="labelAIMovingOnTheMap">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>AI on the map</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="4">
<widget class="QLabel" name="labelVideo">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Video</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="9" 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="1" column="7">
<widget class="QLineEdit" name="lineEditGameDir">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>/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>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="labelFullScreen">
<property name="text">
<string>Fullscreen</string>
</property>
</widget>
</item>
<item row="2" column="7" colspan="2">
<widget class="QLineEdit" name="lineEditUserDataDir">
<property name="enabled">
@ -123,17 +38,53 @@
</size>
</property>
<property name="text">
<string>/home/user/.vcmi</string>
<string notr="true">/home/user/.vcmi</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QComboBox" name="comboBoxFullScreen">
<item row="17" 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="1" column="7">
<widget class="QLineEdit" name="lineEditGameDir">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="text">
<string notr="true">/usr/share/vcmi</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="18" column="6">
<widget class="QComboBox" name="comboBoxAutoCheck">
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<item>
<property name="text">
@ -147,72 +98,24 @@
</item>
</widget>
</item>
<item row="8" column="6" colspan="4">
<widget class="QLabel" name="labelGeneral">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>General</string>
</property>
</widget>
</item>
<item row="20" column="1" colspan="9">
<widget class="QPlainTextEdit" name="plainTextEditRepos">
<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">
<item row="3" column="9">
<widget class="QPushButton" name="openTempDir">
<property name="text">
<string>Open</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLabel" name="labelPlayerAI">
<item row="10" column="6">
<widget class="QLabel" name="labelEncoding">
<property name="text">
<string>Player AI</string>
<string>Heroes III character set</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>
<item row="2" column="1">
<widget class="QLabel" name="labelFullScreen">
<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>
<string>Fullscreen</string>
</property>
</widget>
</item>
@ -233,134 +136,13 @@
</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">
<item row="3" column="6">
<widget class="QLabel" name="labelTempDir">
<property name="text">
<string>Open</string>
<string>Log files directory</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">
@ -373,17 +155,157 @@
</size>
</property>
<property name="text">
<string>/home/user/.vcmi</string>
<string notr="true">/home/user/.vcmi</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="17" column="6">
<widget class="QComboBox" name="comboBoxAutoCheck">
<item row="12" column="6">
<widget class="QLabel" name="labelAutoSave">
<property name="text">
<string>Autosave</string>
</property>
</widget>
</item>
<item row="19" column="1" colspan="4">
<widget class="QLabel" name="labelRepositories">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Repositories</string>
</property>
</widget>
</item>
<item row="18" column="7">
<widget class="QPushButton" name="updatesButton">
<property name="text">
<string>Check for updates</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QComboBox" name="comboBoxDisplayIndex"/>
</item>
<item row="18" column="1" colspan="4">
<widget class="QLabel" name="labelAutoCheck">
<property name="text">
<string>Check repositories on startup</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="8" column="1">
<widget class="QLabel" name="labelPlayerAI">
<property name="text">
<string>Player AI</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="labelDisplayIndex">
<property name="text">
<string>Display index</string>
</property>
</widget>
</item>
<item row="10" 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>
<item row="21" 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="7" column="6" colspan="4">
<widget class="QLabel" name="labelGeneral">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>General</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="16" 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="14" column="6">
<widget class="QLabel" name="labelBuildVersionDesc">
<property name="text">
<string>Build version</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="1" column="1">
<widget class="QLabel" name="labelResolution">
<property name="text">
<string>Resolution</string>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QComboBox" name="comboBoxFullScreen">
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<item>
<property name="text">
@ -395,9 +317,14 @@
<string>On</string>
</property>
</item>
<item>
<property name="text">
<string>Real</string>
</property>
</item>
</widget>
</item>
<item row="11" column="7">
<item row="12" column="7">
<widget class="QComboBox" name="comboBoxAutoSave">
<property name="currentIndex">
<number>1</number>
@ -414,80 +341,72 @@
</item>
</widget>
</item>
<item row="14" column="4">
<widget class="QComboBox" name="comboBoxEnemyAI">
<property name="editable">
<bool>false</bool>
<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="8" column="4">
<widget class="QComboBox" name="comboBoxPlayerAI">
<property name="currentText">
<string>BattleAI</string>
<string notr="true">VCAI</string>
</property>
<item>
<property name="text">
<string>BattleAI</string>
<string notr="true">VCAI</string>
</property>
</item>
<item>
<property name="text">
<string>StupidAI</string>
<string notr="true">Nullkiller</string>
</property>
</item>
</widget>
</item>
<item row="15" column="1" colspan="4">
<spacer name="spacerRepos">
<item row="12" column="5">
<spacer name="spacerColumns">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
<width>8</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="10" column="1">
<widget class="QLabel" name="labelAIInTheBattlefield">
<item row="1" column="4">
<widget class="QComboBox" name="comboBoxResolution"/>
</item>
<item row="1" column="9">
<widget class="QPushButton" name="openGameDataDir">
<property name="text">
<string>Open</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="4">
<widget class="QLabel" name="labelVideo">
<property name="font">
<font>
<italic>true</italic>
<weight>75</weight>
<bold>true</bold>
<underline>false</underline>
</font>
</property>
<property name="text">
<string>AI in the battlefield</string>
</property>
</widget>
</item>
<item row="17" column="1" colspan="4">
<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>
<string>Video</string>
</property>
</widget>
</item>
@ -495,6 +414,7 @@
<widget class="QLabel" name="labelDataDirs">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -503,6 +423,22 @@
</property>
</widget>
</item>
<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="2" column="6">
<widget class="QLabel" name="labelUserDataDir">
<property name="text">
@ -510,21 +446,41 @@
</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">
<item row="11" column="6">
<widget class="QLabel" name="labelNetworkPort">
<property name="text">
<string>Network port</string>
</property>
</widget>
</item>
<item row="10" column="7" colspan="3">
<item row="11" column="7">
<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="8" column="6">
<widget class="QLabel" name="labelLanguage">
<property name="text">
<string>VCMI Language</string>
</property>
</widget>
</item>
<item row="14" column="7" colspan="2">
<widget class="QLabel" name="labelBuildVersion">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="10" column="7" colspan="2">
<widget class="QComboBox" name="comboBoxEncoding">
<item>
<property name="text">
@ -563,31 +519,122 @@
</item>
</widget>
</item>
<item row="11" column="6">
<widget class="QLabel" name="labelAutoSave">
<item row="8" column="7" colspan="2">
<widget class="QComboBox" name="comboBoxLanguage">
<item>
<property name="text">
<string>English</string>
</property>
</item>
<item>
<property name="text">
<string>Deutsch (German)</string>
</property>
</item>
<item>
<property name="text">
<string>Polska (Polish)</string>
</property>
</item>
<item>
<property name="text">
<string>Русский (Russian)</string>
</property>
</item>
<item>
<property name="text">
<string>Українська (Ukrainian)</string>
</property>
</item>
</widget>
</item>
<item row="11" column="1">
<widget class="QLabel" name="labelNeutralAI">
<property name="text">
<string>Autosave</string>
<string>Neutral AI</string>
</property>
</widget>
</item>
<item row="17" column="7">
<widget class="QPushButton" name="updatesButton">
<item row="11" column="4">
<widget class="QComboBox" name="comboBoxNeutralAI">
<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="12" column="1">
<widget class="QLabel" name="labelFriendlyAI">
<property name="minimumSize">
<size>
<width>0</width>
<height>22</height>
</size>
</property>
<property name="text">
<string>Check for updates</string>
<string>Friendly AI</string>
</property>
</widget>
</item>
<item row="13" column="6">
<widget class="QLabel" name="labelBuildVersionDesc">
<property name="text">
<string>Build version</string>
<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="13" column="7" colspan="3">
<widget class="QLabel" name="labelBuildVersion">
<item row="14" 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="14" column="1">
<widget class="QLabel" name="labelEnemyAI">
<property name="minimumSize">
<size>
<width>0</width>
<height>22</height>
</size>
</property>
<property name="text">
<string notr="true"/>
<string>Enemy AI</string>
</property>
</widget>
</item>

View File

@ -0,0 +1,604 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>CModListModel</name>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="150"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="153"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="154"/>
<source>Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="155"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="156"/>
<source>Author</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CModListView</name>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="61"/>
<source>Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="84"/>
<source>All mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="89"/>
<source>Downloadable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="94"/>
<source>Installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="99"/>
<source>Updatable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="104"/>
<source>Active</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="109"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="123"/>
<source>Download &amp;&amp; refresh repositories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="228"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="273"/>
<source>Changelog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="295"/>
<source>Screenshots</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="368"/>
<source>Show details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="409"/>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="434"/>
<source>Enable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="459"/>
<source>Disable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="484"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="509"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="563"/>
<source> %p% (%v KB out of %m KB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="576"/>
<source>Abort</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="246"/>
<source>Mod name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
<source>Installed version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
<source>Latest version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
<source>Download size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
<source>Authors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
<source>License</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="258"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="269"/>
<source>Compatibility</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<source>Required VCMI version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="277"/>
<source>Supported VCMI version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="282"/>
<source>Supported VCMI versions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<source>Required mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="287"/>
<source>Conflicting mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>This mod can not be installed or enabled because following dependencies are not present</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<source>This mod can not be enabled because following mods are incompatible with this mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="294"/>
<source>This mod can not be disabled because it is required to run following mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>This mod can not be uninstalled or updated because it is required to run following mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<source>This is submod and it can not be installed or uninstalled separately from parent mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="828"/>
<source>Screenshot %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="240"/>
<source>Mod is compatible</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="241"/>
<source>Mod is incompatible</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CSettingsView</name>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<source>Change</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="104"/>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="396"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="445"/>
<source>User data directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="91"/>
<location filename="../settingsView/csettingsview_moc.ui" line="129"/>
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
<location filename="../settingsView/csettingsview_moc.ui" line="334"/>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="96"/>
<location filename="../settingsView/csettingsview_moc.ui" line="134"/>
<location filename="../settingsView/csettingsview_moc.ui" line="317"/>
<location filename="../settingsView/csettingsview_moc.ui" line="339"/>
<source>On</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="118"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
<source>Repositories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="188"/>
<source>Check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
<source>Neutral AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="322"/>
<source>Real</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="257"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
<source>Player AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
<source>VCMI Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="487"/>
<source>Central European (Windows 1250)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Cyrillic script (Windows 1251)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="497"/>
<source>Western European (Windows 1252)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="502"/>
<source>Simplified Chinese (GBK)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<source>Simplified Chinese (GB2312)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="512"/>
<source>Korean (Windows 949)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="526"/>
<source>Deutsch (German)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="531"/>
<source>Polska (Polish)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="536"/>
<source>Русский (Russian)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="541"/>
<source>Українська (Ukrainian)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
<source>Friendly AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="301"/>
<source>Resolution</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="353"/>
<source>AI on the map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="168"/>
<source>Autosave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="219"/>
<source>Display index</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="198"/>
<source>Check repositories on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<source>Network port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="422"/>
<source>Data Directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Video</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="111"/>
<source>Heroes III character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="294"/>
<source>Extra data directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<source>Log files directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
<source>Show intro</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="57"/>
<source>Launcher Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="287"/>
<source>Build version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="632"/>
<source>Enemy AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="234"/>
<source>AI in the battlefield</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageViewer</name>
<message>
<location filename="../modManager/imageviewer_moc.ui" line="20"/>
<source>Image Viewer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../lobby/lobby_moc.ui" line="26"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="45"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="69"/>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="111"/>
<source>Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="116"/>
<source>Players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="132"/>
<source>New room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="142"/>
<source>Join room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="153"/>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="160"/>
<source>Mods mismatch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="167"/>
<source>Leave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="197"/>
<source>Kick player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="204"/>
<source>Players in the room</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LobbyRoomRequest</name>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
<source>Room settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
<source>Room name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
<source>Maximum players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
<source>Password (optional)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow_moc.ui" line="20"/>
<source>VCMI Launcher</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="95"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="189"/>
<source>Map Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="236"/>
<source>Start game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="139"/>
<source>Lobby</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="51"/>
<source>Mods</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UpdateDialog</name>
<message>
<location filename="../updatedialog_moc.ui" line="71"/>
<source>You have latest version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="94"/>
<source>Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="101"/>
<source>Check updates on startup</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,608 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de">
<context>
<name>CModListModel</name>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="150"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="153"/>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="154"/>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="155"/>
<source>Size</source>
<translation>Größe</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="156"/>
<source>Author</source>
<translation>Autor</translation>
</message>
</context>
<context>
<name>CModListView</name>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="61"/>
<source>Filter</source>
<translation>Filter</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="84"/>
<source>All mods</source>
<translation>Alle Mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="89"/>
<source>Downloadable</source>
<translation>Herunterladbar</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="94"/>
<source>Installed</source>
<translation>Installiert</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="99"/>
<source>Updatable</source>
<translation>Aktualisierbar</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="104"/>
<source>Active</source>
<translation>Aktiv</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="109"/>
<source>Inactive</source>
<translation>Inaktiv</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="123"/>
<source>Download &amp;&amp; refresh repositories</source>
<translation>Repositories herunterladen &amp;&amp; aktualisieren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="228"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Description</source>
<translation>Beschreibung</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="273"/>
<source>Changelog</source>
<translation>Änderungslog</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="295"/>
<source>Screenshots</source>
<translation>Screenshots</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="368"/>
<source>Show details</source>
<translation>Details anzeigen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="409"/>
<source>Uninstall</source>
<translation>Deinstallieren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="434"/>
<source>Enable</source>
<translation>Aktivieren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="459"/>
<source>Disable</source>
<translation>Deaktivieren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="484"/>
<source>Update</source>
<translation>Aktualisieren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="509"/>
<source>Install</source>
<translation>Installieren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="563"/>
<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="576"/>
<source>Abort</source>
<translation>Abbrechen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="246"/>
<source>Mod name</source>
<translation>Mod-Name</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
<source>Installed version</source>
<translation>Installierte Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
<source>Latest version</source>
<translation>Letzte Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
<source>Download size</source>
<translation>Downloadgröße</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
<source>Authors</source>
<translation>Autoren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
<source>License</source>
<translation>Lizenz</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="258"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="269"/>
<source>Compatibility</source>
<translation>Kompatibilität</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<source>Required VCMI version</source>
<translation>Benötigte VCMI Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="277"/>
<source>Supported VCMI version</source>
<translation>Unterstützte VCMI Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="282"/>
<source>Supported VCMI versions</source>
<translation>Unterstützte VCMI Versionen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<source>Required mods</source>
<translation>Benötigte Mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="287"/>
<source>Conflicting mods</source>
<translation>Mods mit Konflikt</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>This mod can not be installed or enabled because following dependencies are not present</source>
<translation>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="293"/>
<source>This mod can not be enabled because following mods are incompatible with this mod</source>
<translation>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="294"/>
<source>This mod can not be disabled because it is required to run following mods</source>
<translation>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="295"/>
<source>This mod can not be uninstalled or updated because it is required to run following mods</source>
<translation>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="296"/>
<source>This is submod and it can not be installed or uninstalled separately from parent mod</source>
<translation>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="311"/>
<source>Notes</source>
<translation>Anmerkungen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="828"/>
<source>Screenshot %1</source>
<translation>Screenshot %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="240"/>
<source>Mod is compatible</source>
<translation>Mod ist kompatibel</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="241"/>
<source>Mod is incompatible</source>
<translation>Mod ist inkompatibel</translation>
</message>
</context>
<context>
<name>CSettingsView</name>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<source>Change</source>
<translation>Ändern</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="104"/>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="396"/>
<source>Open</source>
<translation>Öffnen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="445"/>
<source>User data directory</source>
<translation>Verzeichnis der Benutzerdaten</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="91"/>
<location filename="../settingsView/csettingsview_moc.ui" line="129"/>
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
<location filename="../settingsView/csettingsview_moc.ui" line="334"/>
<source>Off</source>
<translation>Aus</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="96"/>
<location filename="../settingsView/csettingsview_moc.ui" line="134"/>
<location filename="../settingsView/csettingsview_moc.ui" line="317"/>
<location filename="../settingsView/csettingsview_moc.ui" line="339"/>
<source>On</source>
<translation>An</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="118"/>
<source>Fullscreen</source>
<translation>Vollbild</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="234"/>
<source>AI in the battlefield</source>
<translation>KI auf dem Schlachtfeld</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
<source>Repositories</source>
<translation>Repositories</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="188"/>
<source>Check for updates</source>
<translation>Nach Aktualisierungen suchen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
<source>Neutral AI</source>
<translation>Neutrale KI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="322"/>
<source>Real</source>
<translation>Vollständig</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="257"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
<source>Player AI</source>
<translation>Spieler-KI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
<source>VCMI Language</source>
<translation>VCMI-Sprache</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="487"/>
<source>Central European (Windows 1250)</source>
<translation>Mitteleuropäisch (Windows 1250)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Cyrillic script (Windows 1251)</source>
<translation>Kyrillische Schrift (Windows 1251)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="497"/>
<source>Western European (Windows 1252)</source>
<translation>Westeuropäisch (Windows 1252)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="502"/>
<source>Simplified Chinese (GBK)</source>
<translation>Vereinfachtes Chinesisch (GBK)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<source>Simplified Chinese (GB2312)</source>
<translation>Vereinfachtes Chinesisch (GB2312)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="512"/>
<source>Korean (Windows 949)</source>
<translation>Koreanisch (Windows 949)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<source>English</source>
<translation>English (Englisch)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="526"/>
<source>Deutsch (German)</source>
<translation>Deutsch</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="531"/>
<source>Polska (Polish)</source>
<translation>Polska (Polnisch)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="536"/>
<source>Русский (Russian)</source>
<translation>Русский (Russisch)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="541"/>
<source>Українська (Ukrainian)</source>
<translation>Українська (Ukrainisch)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
<source>Friendly AI</source>
<translation>Freundliche KI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="301"/>
<source>Resolution</source>
<translation>Auflösung</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="353"/>
<source>AI on the map</source>
<translation>KI auf der Karte</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="168"/>
<source>Autosave</source>
<translation>Autospeichern</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="219"/>
<source>Display index</source>
<translation>Anzeige-Index</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="198"/>
<source>Check repositories on startup</source>
<translation>Repositories beim Start prüfen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<source>Network port</source>
<translation>Netzwerk-Port</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="422"/>
<source>Data Directories</source>
<translation>Daten-Verzeichnisse</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Video</source>
<translation>Video</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="111"/>
<source>Heroes III character set</source>
<translation>Heroes III Zeichensatz</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="294"/>
<source>Extra data directory</source>
<translation>Zusätzliches Daten-Verzeichnis</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<source>Log files directory</source>
<translation>Verzeichnis der Log-Dateien</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
<source>Show intro</source>
<translation>Intro anzeigen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="57"/>
<source>Launcher Settings</source>
<translation>Launcher-Einstellungen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="287"/>
<source>Build version</source>
<translation>Version des Builds</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="632"/>
<source>Enemy AI</source>
<translation>Feindliche KI</translation>
</message>
</context>
<context>
<name>ImageViewer</name>
<message>
<location filename="../modManager/imageviewer_moc.ui" line="20"/>
<source>Image Viewer</source>
<translation>Bildbetrachter</translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../lobby/lobby_moc.ui" line="26"/>
<source>Connect</source>
<translation>Verbinden</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="45"/>
<source>Username</source>
<translation>Benutzername</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="69"/>
<source>Server</source>
<translation>Server</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="111"/>
<source>Session</source>
<translation>Sitzung</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="116"/>
<source>Players</source>
<translation>Spieler</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="132"/>
<source>New room</source>
<translation>Neuer Raum</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="142"/>
<source>Join room</source>
<translation>Raum beitreten</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="153"/>
<source>Ready</source>
<translation>Bereit</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="160"/>
<source>Mods mismatch</source>
<translation>Mods stimmen nicht überein</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="167"/>
<source>Leave</source>
<translation>Verlassen</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="197"/>
<source>Kick player</source>
<translation>Spieler kicken</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="204"/>
<source>Players in the room</source>
<translation>Spieler im Raum</translation>
</message>
</context>
<context>
<name>LobbyRoomRequest</name>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
<source>Room settings</source>
<translation>Raumeinstellungen</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
<source>Room name</source>
<translation>Raumname</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
<source>Maximum players</source>
<translation>Maximale Spieler</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
<source>Password (optional)</source>
<translation>Passwort (optional)</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="51"/>
<source>Mods</source>
<translation>Mods</translation>
</message>
<message>
<source>Editor</source>
<translation type="vanished">Editor</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="95"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="139"/>
<source>Lobby</source>
<translation>Lobby</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="189"/>
<source>Map Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="236"/>
<source>Start game</source>
<translation>Spiel starten</translation>
</message>
</context>
<context>
<name>UpdateDialog</name>
<message>
<location filename="../updatedialog_moc.ui" line="71"/>
<source>You have latest version</source>
<translation>Sie haben die neueste Version</translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="94"/>
<source>Close</source>
<translation>Beenden</translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="101"/>
<source>Check updates on startup</source>
<translation>Nach Aktualisierungen beim Starten prüfen</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,608 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="pl_PL">
<context>
<name>CModListModel</name>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="150"/>
<source>Name</source>
<translation>Nazwa</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="153"/>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="154"/>
<source>Version</source>
<translation>Wersja</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="155"/>
<source>Size</source>
<translation>Rosmiar</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="156"/>
<source>Author</source>
<translation>Autor</translation>
</message>
</context>
<context>
<name>CModListView</name>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="61"/>
<source>Filter</source>
<translation>Filtruj</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="84"/>
<source>All mods</source>
<translation>Wszystkie mody</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="89"/>
<source>Downloadable</source>
<translation>Dostępny do pobrania</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="94"/>
<source>Installed</source>
<translation>Zainstalowany</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="99"/>
<source>Updatable</source>
<translation>Można zaktualizować</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="104"/>
<source>Active</source>
<translation>Aktywny</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="109"/>
<source>Inactive</source>
<translation>Nieaktywny</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="123"/>
<source>Download &amp;&amp; refresh repositories</source>
<translation>Pobierz i odśwież repozytoria</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="228"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Description</source>
<translation>Opis</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="273"/>
<source>Changelog</source>
<translation>Lista zmian</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="295"/>
<source>Screenshots</source>
<translation>Zrzuty ekranu</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="368"/>
<source>Show details</source>
<translation>Pokaż szczegóły</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="409"/>
<source>Uninstall</source>
<translation>Odinstaluj</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="434"/>
<source>Enable</source>
<translation>Włącz</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="459"/>
<source>Disable</source>
<translation>Wyłącz</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="484"/>
<source>Update</source>
<translation>Zaktualizuj</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="509"/>
<source>Install</source>
<translation>Zainstaluj</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="563"/>
<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="576"/>
<source>Abort</source>
<translation>Przerwij</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="246"/>
<source>Mod name</source>
<translation>Nazwa moda</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
<source>Installed version</source>
<translation>Zainstalowana wersja</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
<source>Latest version</source>
<translation>Najnowsza wersja</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
<source>Download size</source>
<translation>Rozmiar pobierania</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
<source>Authors</source>
<translation>Autorzy</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
<source>License</source>
<translation>Licencja</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="258"/>
<source>Home</source>
<translation>Źródło</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="269"/>
<source>Compatibility</source>
<translation>Kompatybilność</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<source>Required VCMI version</source>
<translation>Wymagana wersja VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="277"/>
<source>Supported VCMI version</source>
<translation>Wspierana wersja VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="282"/>
<source>Supported VCMI versions</source>
<translation>Wspierane wersje VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<source>Required mods</source>
<translation>Wymagane mody</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="287"/>
<source>Conflicting mods</source>
<translation>Konfliktujące mody</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>This mod can not be installed or enabled because following dependencies are not present</source>
<translation>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="293"/>
<source>This mod can not be enabled because following mods are incompatible with this mod</source>
<translation>Ten mod nie może zostać włączony ponieważ następujące mody z nim niekompatybilne</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="294"/>
<source>This mod can not be disabled because it is required to run following mods</source>
<translation>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="295"/>
<source>This mod can not be uninstalled or updated because it is required to run following mods</source>
<translation>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="296"/>
<source>This is submod and it can not be installed or uninstalled separately from parent mod</source>
<translation>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="311"/>
<source>Notes</source>
<translation>Uwagi</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="828"/>
<source>Screenshot %1</source>
<translation>Zrzut ekranu %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="240"/>
<source>Mod is compatible</source>
<translation>Mod jest kompatybilny</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="241"/>
<source>Mod is incompatible</source>
<translation>Mod jest niekompatybilny</translation>
</message>
</context>
<context>
<name>CSettingsView</name>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<source>Change</source>
<translation>Zmień</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="104"/>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="396"/>
<source>Open</source>
<translation>Otwórz</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="445"/>
<source>User data directory</source>
<translation>Katalog danych użytkownika</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="91"/>
<location filename="../settingsView/csettingsview_moc.ui" line="129"/>
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
<location filename="../settingsView/csettingsview_moc.ui" line="334"/>
<source>Off</source>
<translation>Włączony</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="96"/>
<location filename="../settingsView/csettingsview_moc.ui" line="134"/>
<location filename="../settingsView/csettingsview_moc.ui" line="317"/>
<location filename="../settingsView/csettingsview_moc.ui" line="339"/>
<source>On</source>
<translation>Wyłączony</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="118"/>
<source>Fullscreen</source>
<translation>Pełny ekran</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
<source>Repositories</source>
<translation>Repozytoria</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="188"/>
<source>Check for updates</source>
<translation>Sprawdź czy aktualizacje</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
<source>Neutral AI</source>
<translation>AI jednostek neutralnych</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="322"/>
<source>Real</source>
<translation>Prawdziwy</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="257"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
<source>Player AI</source>
<translation>AI graczy</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
<source>VCMI Language</source>
<translation>Język VCMI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="487"/>
<source>Central European (Windows 1250)</source>
<translation>Środkowoeuropejski (Windows 1250)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Cyrillic script (Windows 1251)</source>
<translation>Cyrylica (Windows 1251)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="497"/>
<source>Western European (Windows 1252)</source>
<translation>Wschodnioeuropejski (Windows 1252)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="502"/>
<source>Simplified Chinese (GBK)</source>
<translation>Uproszczony chiński (GBK)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<source>Simplified Chinese (GB2312)</source>
<translation>Uproszczony chiński (GB2312)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="512"/>
<source>Korean (Windows 949)</source>
<translation>Koreański (Windows 949)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<source>English</source>
<translation>English (Angielski)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="526"/>
<source>Deutsch (German)</source>
<translation>Deutsch (Niemiecki)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="531"/>
<source>Polska (Polish)</source>
<translation>Polska</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="536"/>
<source>Русский (Russian)</source>
<translation>Русский (Rosyjski)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="541"/>
<source>Українська (Ukrainian)</source>
<translation>Українська (Ukraiński)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
<source>Friendly AI</source>
<translation>AI sojuszników</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="301"/>
<source>Resolution</source>
<translation>Rozdzielczość</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="353"/>
<source>AI on the map</source>
<translation>AI na mapie przygody</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="168"/>
<source>Autosave</source>
<translation>Autozapis</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="219"/>
<source>Display index</source>
<translation>Numer wyświetlacza</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="198"/>
<source>Check repositories on startup</source>
<translation>Sprawdź repozytoria przy starcie</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<source>Network port</source>
<translation>Port sieciowy</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="422"/>
<source>Data Directories</source>
<translation>Katalogi z danymi</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Video</source>
<translation>Obraz</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="111"/>
<source>Heroes III character set</source>
<translation>Zestaw znaków w grze</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="294"/>
<source>Extra data directory</source>
<translation>Katalog danych dodatkowych</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<source>Log files directory</source>
<translation>Katalog logów</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
<source>Show intro</source>
<translation>Pokaż intro</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="57"/>
<source>Launcher Settings</source>
<translation>Ustawienia Launchera</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="287"/>
<source>Build version</source>
<translation>Wersja programu</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="632"/>
<source>Enemy AI</source>
<translation>AI wrogich graczy</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="234"/>
<source>AI in the battlefield</source>
<translation>AI na polu bitwy</translation>
</message>
</context>
<context>
<name>ImageViewer</name>
<message>
<location filename="../modManager/imageviewer_moc.ui" line="20"/>
<source>Image Viewer</source>
<translation>Wyświetlacz obrazków</translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../lobby/lobby_moc.ui" line="26"/>
<source>Connect</source>
<translation>Połącz</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="45"/>
<source>Username</source>
<translation>Nazwa użytkownika</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="69"/>
<source>Server</source>
<translation>Serwer</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="111"/>
<source>Session</source>
<translation>Sesja</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="116"/>
<source>Players</source>
<translation>Gracze</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="132"/>
<source>New room</source>
<translation>Nowy pokój</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="142"/>
<source>Join room</source>
<translation>Dołącz</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="153"/>
<source>Ready</source>
<translation>Zgłoś gotowość</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="160"/>
<source>Mods mismatch</source>
<translation>Niezgodność modów</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="167"/>
<source>Leave</source>
<translation>Wyjdź</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="197"/>
<source>Kick player</source>
<translation>Wyrzuć gracza</translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="204"/>
<source>Players in the room</source>
<translation>Gracze w pokoju</translation>
</message>
</context>
<context>
<name>LobbyRoomRequest</name>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
<source>Room settings</source>
<translation>Ustawienia pokoju</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
<source>Room name</source>
<translation>Nazwa pokoju</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
<source>Maximum players</source>
<translation>Maks. ilość graczy</translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
<source>Password (optional)</source>
<translation>Hasło (opcjonalnie)</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow_moc.ui" line="20"/>
<source>VCMI Launcher</source>
<translation>VCMI Launcher (program startowy)</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="95"/>
<source>Settings</source>
<translation>Ustawienia</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="189"/>
<source>Map Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="236"/>
<source>Start game</source>
<translation>Uruchom grę</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="139"/>
<source>Lobby</source>
<translation>Lobby</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="51"/>
<source>Mods</source>
<translation>Mody</translation>
</message>
<message>
<source>Editor</source>
<translation type="vanished">Edytor</translation>
</message>
</context>
<context>
<name>UpdateDialog</name>
<message>
<location filename="../updatedialog_moc.ui" line="71"/>
<source>You have latest version</source>
<translation>Posiadasz obecnie aktualną wersję</translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="94"/>
<source>Close</source>
<translation>Zamknij</translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="101"/>
<source>Check updates on startup</source>
<translation>Sprawdź aktualizacje przy uruchomieniu</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,604 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>CModListModel</name>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="150"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="153"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="154"/>
<source>Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="155"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="156"/>
<source>Author</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CModListView</name>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="61"/>
<source>Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="84"/>
<source>All mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="89"/>
<source>Downloadable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="94"/>
<source>Installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="99"/>
<source>Updatable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="104"/>
<source>Active</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="109"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="123"/>
<source>Download &amp;&amp; refresh repositories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="228"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="273"/>
<source>Changelog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="295"/>
<source>Screenshots</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="368"/>
<source>Show details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="409"/>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="434"/>
<source>Enable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="459"/>
<source>Disable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="484"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="509"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="563"/>
<source> %p% (%v KB out of %m KB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="576"/>
<source>Abort</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="246"/>
<source>Mod name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
<source>Installed version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
<source>Latest version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
<source>Download size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
<source>Authors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
<source>License</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="258"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="269"/>
<source>Compatibility</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<source>Required VCMI version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="277"/>
<source>Supported VCMI version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="282"/>
<source>Supported VCMI versions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<source>Required mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="287"/>
<source>Conflicting mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>This mod can not be installed or enabled because following dependencies are not present</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<source>This mod can not be enabled because following mods are incompatible with this mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="294"/>
<source>This mod can not be disabled because it is required to run following mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>This mod can not be uninstalled or updated because it is required to run following mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<source>This is submod and it can not be installed or uninstalled separately from parent mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="311"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="828"/>
<source>Screenshot %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="240"/>
<source>Mod is compatible</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="241"/>
<source>Mod is incompatible</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CSettingsView</name>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<source>Change</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="104"/>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="396"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="445"/>
<source>User data directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="91"/>
<location filename="../settingsView/csettingsview_moc.ui" line="129"/>
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
<location filename="../settingsView/csettingsview_moc.ui" line="334"/>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="96"/>
<location filename="../settingsView/csettingsview_moc.ui" line="134"/>
<location filename="../settingsView/csettingsview_moc.ui" line="317"/>
<location filename="../settingsView/csettingsview_moc.ui" line="339"/>
<source>On</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="118"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
<source>Repositories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="188"/>
<source>Check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
<source>Neutral AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="322"/>
<source>Real</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="257"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
<source>Player AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
<source>VCMI Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="487"/>
<source>Central European (Windows 1250)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Cyrillic script (Windows 1251)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="497"/>
<source>Western European (Windows 1252)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="502"/>
<source>Simplified Chinese (GBK)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<source>Simplified Chinese (GB2312)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="512"/>
<source>Korean (Windows 949)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<source>English</source>
<translation>English (Английский)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="526"/>
<source>Deutsch (German)</source>
<translation type="unfinished">Deutsch (Немецкий)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="531"/>
<source>Polska (Polish)</source>
<translation>Polska (Польский)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="536"/>
<source>Русский (Russian)</source>
<translation>Русский</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="541"/>
<source>Українська (Ukrainian)</source>
<translation>Українська (Украинский)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
<source>Friendly AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="301"/>
<source>Resolution</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="353"/>
<source>AI on the map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="168"/>
<source>Autosave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="219"/>
<source>Display index</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="198"/>
<source>Check repositories on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<source>Network port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="422"/>
<source>Data Directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Video</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="111"/>
<source>Heroes III character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="294"/>
<source>Extra data directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<source>Log files directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
<source>Show intro</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="57"/>
<source>Launcher Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="287"/>
<source>Build version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="632"/>
<source>Enemy AI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="234"/>
<source>AI in the battlefield</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImageViewer</name>
<message>
<location filename="../modManager/imageviewer_moc.ui" line="20"/>
<source>Image Viewer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../lobby/lobby_moc.ui" line="26"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="45"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="69"/>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="111"/>
<source>Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="116"/>
<source>Players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="132"/>
<source>New room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="142"/>
<source>Join room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="153"/>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="160"/>
<source>Mods mismatch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="167"/>
<source>Leave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="197"/>
<source>Kick player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobby_moc.ui" line="204"/>
<source>Players in the room</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LobbyRoomRequest</name>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
<source>Room settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
<source>Room name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
<source>Maximum players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
<source>Password (optional)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow_moc.ui" line="20"/>
<source>VCMI Launcher</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="95"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="189"/>
<source>Map Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="236"/>
<source>Start game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="139"/>
<source>Lobby</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="51"/>
<source>Mods</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UpdateDialog</name>
<message>
<location filename="../updatedialog_moc.ui" line="71"/>
<source>You have latest version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="94"/>
<source>Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../updatedialog_moc.ui" line="101"/>
<source>Check updates on startup</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,608 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="uk_UA">
<context>
<name>CModListModel</name>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="150"/>
<source>Name</source>
<translation>Назва</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="153"/>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="154"/>
<source>Version</source>
<translation>Версія</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="155"/>
<source>Size</source>
<translation>Розмір</translation>
</message>
<message>
<location filename="../modManager/cmodlistmodel_moc.cpp" line="156"/>
<source>Author</source>
<translation>Автори</translation>
</message>
</context>
<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="288"/>
<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="246"/>
<source>Mod name</source>
<translation>Назва модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="247"/>
<source>Installed version</source>
<translation>Встановлена версія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="248"/>
<source>Latest version</source>
<translation>Найновіша версія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="251"/>
<source>Download size</source>
<translation>Розмір для завантаження</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="252"/>
<source>Authors</source>
<translation>Автори</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="255"/>
<source>License</source>
<translation>Ліцензія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="258"/>
<source>Home</source>
<translation>Домашня сторінка</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="262"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="269"/>
<source>Compatibility</source>
<translation>Сумісність</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="271"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<source>Required VCMI version</source>
<translation>Необхідна версія VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="277"/>
<source>Supported VCMI version</source>
<translation>Підтримувана версія VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="282"/>
<source>Supported VCMI versions</source>
<translation>Підтримувані версії VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<source>Required mods</source>
<translation>Необхідні модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="287"/>
<source>Conflicting mods</source>
<translation>Конфліктуючі модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<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="293"/>
<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="294"/>
<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="295"/>
<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="296"/>
<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="311"/>
<source>Notes</source>
<translation>Примітки</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="828"/>
<source>Screenshot %1</source>
<translation>Знімок екрану %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="240"/>
<source>Mod is compatible</source>
<translation>Модифікація сумісна</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="241"/>
<source>Mod is incompatible</source>
<translation>Модифікація несумісна</translation>
</message>
</context>
<context>
<name>CSettingsView</name>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<source>Change</source>
<translation>Змінити</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="104"/>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="396"/>
<source>Open</source>
<translation>Відкрити</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="445"/>
<source>User data directory</source>
<translation>Тека даних користувача</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="91"/>
<location filename="../settingsView/csettingsview_moc.ui" line="129"/>
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
<location filename="../settingsView/csettingsview_moc.ui" line="334"/>
<source>Off</source>
<translation>Вимкнено</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="96"/>
<location filename="../settingsView/csettingsview_moc.ui" line="134"/>
<location filename="../settingsView/csettingsview_moc.ui" line="317"/>
<location filename="../settingsView/csettingsview_moc.ui" line="339"/>
<source>On</source>
<translation>Увімкнено</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="118"/>
<source>Fullscreen</source>
<translation>Повноекранний режим</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="234"/>
<source>AI in the battlefield</source>
<translation>Штучний інтелект на полі бою</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
<source>Repositories</source>
<translation>Репозиторії</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="188"/>
<source>Check for updates</source>
<translation>Оновити зараз</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
<source>Neutral AI</source>
<translation>Нейтральний ШІ</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="322"/>
<source>Real</source>
<translation>Повний</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="257"/>
<source>General</source>
<translation>Загальні налаштування</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
<source>Player AI</source>
<translation>ШІ гравців</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
<source>VCMI Language</source>
<translation>Мова VCMI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="487"/>
<source>Central European (Windows 1250)</source>
<translation>Центральноєвропейська (Windows 1250)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Cyrillic script (Windows 1251)</source>
<translation>Кирилиця (Windows 1251)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="497"/>
<source>Western European (Windows 1252)</source>
<translation>Західноєвропейська (Windows 1252)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="502"/>
<source>Simplified Chinese (GBK)</source>
<translation>Спрощена китайська (GBK)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<source>Simplified Chinese (GB2312)</source>
<translation>Спрощена китайська (GB2312)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="512"/>
<source>Korean (Windows 949)</source>
<translation>Корейська (Windows 949)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<source>English</source>
<translation>English (Англійська)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="526"/>
<source>Deutsch (German)</source>
<translation>Deutsch (Німецька)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="531"/>
<source>Polska (Polish)</source>
<translation>Polska (Польська)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="536"/>
<source>Русский (Russian)</source>
<translation>Русский (Російська)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="541"/>
<source>Українська (Ukrainian)</source>
<translation>Українська</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
<source>Friendly AI</source>
<translation>Дружній ШІ</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="301"/>
<source>Resolution</source>
<translation>Роздільна здатність</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="353"/>
<source>AI on the map</source>
<translation>Штучний інтелект на карті пригод</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="168"/>
<source>Autosave</source>
<translation>Автозбереження</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="219"/>
<source>Display index</source>
<translation>Дісплей</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="198"/>
<source>Check repositories on startup</source>
<translation>Перевірка репозиторіїв при запуску</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<source>Network port</source>
<translation>Мережевий порт</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="422"/>
<source>Data Directories</source>
<translation>Теки даних гри</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Video</source>
<translation>Графіка</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="111"/>
<source>Heroes III character set</source>
<translation>Кодування Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="294"/>
<source>Extra data directory</source>
<translation>Додаткова тека даних</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<source>Log files directory</source>
<translation>Тека файлів журналу</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
<source>Show intro</source>
<translation>Вступні відео</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="57"/>
<source>Launcher Settings</source>
<translation>Налаштування лаунчера</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="287"/>
<source>Build version</source>
<translation>Версія збірки</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="632"/>
<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="51"/>
<source>Mods</source>
<translation>Модифікації</translation>
</message>
<message>
<source>Editor</source>
<translation type="vanished">Редактор</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="95"/>
<source>Settings</source>
<translation>Налаштування</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="139"/>
<source>Lobby</source>
<translation>Лобі</translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="189"/>
<source>Map Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow_moc.ui" line="236"/>
<source>Start game</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>

View File

@ -158,6 +158,7 @@ class VCMIDirsWIN32 final : public IVCMIDirs
std::vector<bfs::path> dataPaths() const override;
bfs::path clientPath() const override;
bfs::path mapEditorPath() const override;
bfs::path serverPath() const override;
bfs::path libraryPath() const override;
@ -348,6 +349,7 @@ std::vector<bfs::path> VCMIDirsWIN32::dataPaths() const
}
bfs::path VCMIDirsWIN32::clientPath() const { return binaryPath() / "VCMI_client.exe"; }
bfs::path VCMIDirsWIN32::mapEditorPath() const { return binaryPath() / "VCMI_editor.exe"; }
bfs::path VCMIDirsWIN32::serverPath() const { return binaryPath() / "VCMI_server.exe"; }
bfs::path VCMIDirsWIN32::libraryPath() const { return "."; }
@ -359,6 +361,7 @@ class IVCMIDirsUNIX : public IVCMIDirs
{
public:
bfs::path clientPath() const override;
bfs::path mapEditorPath() const override;
bfs::path serverPath() const override;
virtual bool developmentMode() const;
@ -371,6 +374,7 @@ bool IVCMIDirsUNIX::developmentMode() const
}
bfs::path IVCMIDirsUNIX::clientPath() const { return binaryPath() / "vcmiclient"; }
bfs::path IVCMIDirsUNIX::mapEditorPath() const { return binaryPath() / "vcmieditor"; }
bfs::path IVCMIDirsUNIX::serverPath() const { return binaryPath() / "vcmiserver"; }
#ifdef VCMI_APPLE

View File

@ -35,10 +35,13 @@ public:
// Paths to global system-wide data directories. First items have higher priority
virtual std::vector<boost::filesystem::path> dataPaths() const = 0;
// Full path to client executable, including server name (e.g. /usr/bin/vcmiclient)
// Full path to client executable, including name (e.g. /usr/bin/vcmiclient)
virtual boost::filesystem::path clientPath() const = 0;
// Full path to server executable, including server name (e.g. /usr/bin/vcmiserver)
// Full path to editor executable, including name (e.g. /usr/bin/vcmieditor)
virtual boost::filesystem::path mapEditorPath() const = 0;
// Full path to server executable, including name (e.g. /usr/bin/vcmiserver)
virtual boost::filesystem::path serverPath() const = 0;
// Path where vcmi libraries can be found (in AI and Scripting subdirectories)

View File

@ -93,12 +93,14 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(TARGET Qt6::Core)
qt_wrap_ui(editor_UI_HEADERS ${editor_FORMS})
if(ENABLE_TRANSLATIONS)
set_source_files_properties(${editor_TS} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/translation)
# TODO: consider using qt_add_translations: https://doc.qt.io/qt-6/qtlinguist-cmake-qt-add-translations.html
qt_add_translation( editor_QM ${editor_TS} )
endif()
else()
qt5_wrap_ui(editor_UI_HEADERS ${editor_FORMS})
if(ENABLE_TRANSLATIONS)
set_source_files_properties(${editor_TS} PROPERTIES OUTPUT_LOCATION ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/mapeditor/translation)
set_source_files_properties(${editor_TS} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/translation)
qt5_add_translation( editor_QM ${editor_TS} )
endif()
endif()
@ -139,14 +141,15 @@ enable_pch(vcmieditor)
# Copy to build directory for easier debugging
add_custom_command(TARGET vcmieditor POST_BUILD
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/mapeditor/icons
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/mapeditor/icons ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/mapeditor/icons
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/mapeditor/
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/mapeditor/icons ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/mapeditor/icons
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_BINARY_DIR}/translation ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/mapeditor/translation
)
install(TARGETS vcmieditor DESTINATION ${BIN_DIR})
# copy whole directory
install(DIRECTORY icons DESTINATION ${DATA_DIR}/mapeditor)
install(DIRECTORY translation DESTINATION ${DATA_DIR}/mapeditor)
install(FILES ${editor_QM} DESTINATION ${DATA_DIR}/mapeditor/translation)
# Install icons and desktop file on Linux
if(NOT WIN32 AND NOT APPLE)
install(FILES "vcmieditor.desktop" DESTINATION share/applications)