1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-17 01:32:21 +02:00

Merge remote-tracking branch 'vcmi/master' into develop

This commit is contained in:
Ivan Savenko
2024-07-11 15:59:55 +00:00
96 changed files with 4648 additions and 4084 deletions

View File

@ -90,14 +90,14 @@ jobs:
- platform: android-32
os: macos-14
extension: apk
preset: android-daily-release
preset: android-conan-ninja-release
conan_profile: android-32
conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT
artifact_platform: armeabi-v7a
- platform: android-64
os: macos-14
extension: apk
preset: android-daily-release
preset: android-conan-ninja-release
conan_profile: android-64
conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT
artifact_platform: arm64-v8a
@ -111,22 +111,6 @@ jobs:
with:
submodules: recursive
- name: Ensure LF line endings
if: ${{ startsWith(matrix.preset, 'linux-clang-test') }}
run: |
find . -path ./.git -prune -o -path ./AI/FuzzyLite -prune -o -path ./test/googletest \
-o -path ./osx -prune -o -type f \
-not -name '*.png' -and -not -name '*.vcxproj*' -and -not -name '*.props' -and -not -name '*.wav' -and -not -name '*.webm' -and -not -name '*.ico' -and -not -name '*.bat' -print0 | \
{ ! xargs -0 grep -l -z -P '\r\n'; }
- name: Validate JSON
# the Python yaml module doesn't seem to work on mac-arm
# also, running it on multiple presets is redundant and slightly increases already long CI built times
if: ${{ startsWith(matrix.preset, 'linux-clang-test') }}
run: |
sudo apt install python3-jstyleson
python3 CI/linux-qt6/validate_json.py
- name: Dependencies
run: source '${{github.workspace}}/CI/${{matrix.platform}}/before_install.sh'
env:
@ -210,6 +194,9 @@ jobs:
if [[ ${{matrix.preset}} == linux-gcc-test ]]
then
cmake -DENABLE_CCACHE:BOOL=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 --preset ${{ matrix.preset }}
elif [[ (${{matrix.preset}} == android-conan-ninja-release) && (${{github.ref}} != 'refs/heads/master') ]]
then
cmake -DENABLE_CCACHE:BOOL=ON -DANDROID_GRADLE_PROPERTIES="applicationIdSuffix=.daily;signingConfig=dailySigning;applicationLabel=VCMI daily" --preset ${{ matrix.preset }}
elif [[ ${{matrix.platform}} != msvc ]]
then
cmake -DENABLE_CCACHE:BOOL=ON --preset ${{ matrix.preset }}
@ -220,6 +207,9 @@ jobs:
- name: Build
run: |
cmake --build --preset ${{matrix.preset}}
env:
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
- name: Test
env:
@ -247,12 +237,6 @@ jobs:
&& '${{github.workspace}}/CI/${{matrix.platform}}/post_pack.sh' '${{github.workspace}}' "$(ls '${{ env.VCMI_PACKAGE_FILE_NAME }}'.*)"
rm -rf _CPack_Packages
- name: Additional logs
if: ${{ failure() && steps.cpack.outcome == 'failure' && matrix.platform == 'msvc' }}
run: |
cat '${{github.workspace}}/out/build/${{matrix.preset}}/_CPack_Packages/win32/NSIS/project.nsi'
cat '${{github.workspace}}/out/build/${{matrix.preset}}/_CPack_Packages/win32/NSIS/NSISOutput.log'
- name: Artifacts
if: ${{ matrix.pack == 1 }}
uses: actions/upload-artifact@v4
@ -265,10 +249,15 @@ jobs:
if: ${{ startsWith(matrix.platform, 'android') }}
run: |
builtApkPath="$(ls ${{ github.workspace }}/out/build/${{ matrix.preset }}/android-build/vcmi-app/build/outputs/apk/release/*.${{ matrix.extension }})"
builtAabPath="$(ls ${{ github.workspace }}/out/build/${{ matrix.preset }}/android-build/vcmi-app/build/outputs/bundle/release/*.aab)"
ANDROID_APK_PATH="${{ github.workspace }}/$VCMI_PACKAGE_FILE_NAME.${{ matrix.extension }}"
ANDROID_AAB_PATH="${{ github.workspace }}/$VCMI_PACKAGE_FILE_NAME.aab"
mv "$builtApkPath" "$ANDROID_APK_PATH"
mv "$builtAabPath" "$ANDROID_AAB_PATH"
echo "ANDROID_APK_PATH=$ANDROID_APK_PATH" >> $GITHUB_ENV
- name: Android artifacts
echo "ANDROID_AAB_PATH=$ANDROID_AAB_PATH" >> $GITHUB_ENV
- name: Android apk artifacts
if: ${{ startsWith(matrix.platform, 'android') }}
uses: actions/upload-artifact@v4
with:
@ -276,6 +265,14 @@ jobs:
path: |
${{ env.ANDROID_APK_PATH }}
- name: Android aab artifacts
if: ${{ startsWith(matrix.platform, 'android') }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.VCMI_PACKAGE_FILE_NAME }} - ${{ matrix.platform }} - aab
path: |
${{ env.ANDROID_AAB_PATH }}
- name: Symbols
if: ${{ matrix.platform == 'msvc' }}
uses: actions/upload-artifact@v4
@ -284,14 +281,6 @@ jobs:
path: |
${{github.workspace}}/**/*.pdb
- name: Android JNI ${{matrix.platform}}
if: ${{ startsWith(matrix.platform, 'android') && github.ref == 'refs/heads/master' }}
uses: actions/upload-artifact@v4
with:
name: Android JNI ${{matrix.platform}}
path: |
${{github.workspace}}/out/build/${{matrix.preset}}/android-build/libs
- name: Upload build
if: ${{ (matrix.pack == 1 || startsWith(matrix.platform, 'android')) && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/beta' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/features/')) && matrix.platform != 'msvc' && matrix.platform != 'mingw-32' }}
continue-on-error: true
@ -304,107 +293,6 @@ jobs:
DEPLOY_RSA: ${{ secrets.DEPLOY_RSA }}
PACKAGE_EXTENSION: ${{ matrix.extension }}
# copy-pasted mostly
bundle_release:
needs: build
if: always() && github.ref == 'refs/heads/master'
strategy:
matrix:
include:
- platform: android-32
os: macos-14
preset: android-conan-ninja-release
conan_profile: android-32
conan_options: --conf tools.android:ndk_path=$ANDROID_NDK_ROOT
artifact_platform: aab
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Dependencies
run: source '${{github.workspace}}/CI/${{matrix.platform}}/before_install.sh'
env:
VCMI_BUILD_PLATFORM: x64
- uses: actions/setup-python@v5
if: "${{ matrix.conan_profile != '' }}"
with:
python-version: '3.10'
- name: Conan setup
if: "${{ matrix.conan_profile != '' }}"
run: |
pip3 install 'conan<2.0'
conan profile new default --detect
conan install . \
--install-folder=conan-generated \
--no-imports \
--build=never \
--profile:build=default \
--profile:host=CI/conan/${{ matrix.conan_profile }} \
${{ matrix.conan_options }}
env:
GENERATE_ONLY_BUILT_CONFIG: 1
- uses: actions/setup-java@v4
if: ${{ startsWith(matrix.platform, 'android') }}
with:
distribution: 'temurin'
java-version: '11'
- name: Build Number
run: |
source '${{github.workspace}}/CI/get_package_name.sh'
if [ '${{ matrix.artifact_platform }}' ]; then
VCMI_PACKAGE_FILE_NAME+="-${{ matrix.artifact_platform }}"
fi
echo VCMI_PACKAGE_FILE_NAME="$VCMI_PACKAGE_FILE_NAME" >> $GITHUB_ENV
echo VCMI_PACKAGE_NAME_SUFFIX="$VCMI_PACKAGE_NAME_SUFFIX" >> $GITHUB_ENV
echo VCMI_PACKAGE_GOLDMASTER="$VCMI_PACKAGE_GOLDMASTER" >> $GITHUB_ENV
env:
PULL_REQUEST: ${{ github.event.pull_request.number }}
- name: CMake Preset
run: |
cmake --preset ${{ matrix.preset }}
- name: Build Preset
run: |
cmake --build --preset ${{matrix.preset}}
env:
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
- name: Download libs x64
uses: actions/download-artifact@v4
with:
name: Android JNI android-64
path: ${{ github.workspace }}/out/build/${{ matrix.preset }}/android-build/libs
- name: Create Android package
run: |
cd out/build/${{ matrix.preset }}/android-build
./gradlew bundleRelease --info
echo ANDROID_APK_PATH="$(ls ${{ github.workspace }}/out/build/${{ matrix.preset }}/android-build/vcmi-app/build/outputs/bundle/release/*.aab)" >> $GITHUB_ENV
env:
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
- name: Android artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ env.VCMI_PACKAGE_FILE_NAME }}
path: |
${{ env.ANDROID_APK_PATH }}
deploy-src:
if: always() && github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
@ -434,3 +322,29 @@ jobs:
name: ${{ env.VCMI_PACKAGE_FILE_NAME }}
path: |
./release.tar.gz
validate-code:
if: always()
runs-on: ubuntu-24.04
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
if: "${{ matrix.conan_profile != '' }}"
with:
python-version: '3.10'
- name: Ensure LF line endings
run: |
find . -path ./.git -prune -o -path ./AI/FuzzyLite -prune -o -path ./test/googletest \
-o -path ./osx -prune -o -type f \
-not -name '*.png' -and -not -name '*.vcxproj*' -and -not -name '*.props' -and -not -name '*.wav' -and -not -name '*.webm' -and -not -name '*.ico' -and -not -name '*.bat' -print0 | \
{ ! xargs -0 grep -l -z -P '\r\n'; }
- name: Validate JSON
run: |
sudo apt install python3-jstyleson
python3 CI/linux-qt6/validate_json.py

View File

@ -51,8 +51,6 @@ notifications:
- noreply@vcmi.eu
on_success: change
on_failure: always
slack:
secure: KHXFe14FFKtw5mErWbj730+utqy7i/3AUobWfAMAGvWI5sJYlhbBU+KvvCoD2SlRQg3mQqgwVw8NBJF1Mffs7WcRmrFFFmuMqZxFLAfKBd3T0CxWpAGfnfNgDmlfV4OfEgQWk1pakEPOymhxbbmLUuCjykZDuTcioxAk0UAHDwY=
before_install:
- test $TRAVIS_BRANCH != coverity_scan -o ${TRAVIS_JOB_NUMBER##*.} = 1 || exit 0

View File

@ -623,6 +623,9 @@ bool BattleEvaluator::attemptCastingSpell(const CStack * activeStack)
for(const auto & unit : allUnits)
{
if (!unit->isValidTarget())
continue;
auto newHealth = unit->getAvailableHealth();
auto oldHealth = vstd::find_or(healthOfStack, unit->unitId(), 0); // old health value may not exist for newly summoned units

View File

@ -649,7 +649,7 @@ void AIGateway::showBlockingDialog(const std::string & text, const std::vector<C
auto ratio = static_cast<float>(danger) / hero->getTotalStrength();
answer = topObj->id == goalObjectID; // no if we do not aim to visit this object
logAi->trace("Query hook: %s(%s) by %s danger ratio %f", target.toString(), topObj->getObjectName(), hero.name, ratio);
logAi->trace("Query hook: %s(%s) by %s danger ratio %f", target.toString(), topObj->getObjectName(), hero.name(), ratio);
if(cb->getObj(goalObjectID, false))
{
@ -1553,7 +1553,7 @@ void AIGateway::requestActionASAP(std::function<void()> whatToDo)
void AIGateway::lostHero(HeroPtr h)
{
logAi->debug("I lost my hero %s. It's best to forget and move on.", h.name);
logAi->debug("I lost my hero %s. It's best to forget and move on.", h.name());
}
void AIGateway::answerQuery(QueryID queryID, int selection)

View File

@ -67,7 +67,6 @@ HeroPtr::HeroPtr(const CGHeroInstance * H)
}
h = H;
name = h->getNameTranslated();
hid = H->id;
// infosCount[ai->playerID][hid]++;
}
@ -89,6 +88,14 @@ bool HeroPtr::operator<(const HeroPtr & rhs) const
return hid < rhs.hid;
}
std::string HeroPtr::name() const
{
if (h)
return h->getNameTextID();
else
return "<NO HERO>";
}
const CGHeroInstance * HeroPtr::get(bool doWeExpectNull) const
{
return get(cb, doWeExpectNull);

View File

@ -87,8 +87,7 @@ struct DLL_EXPORT HeroPtr
ObjectInstanceID hid;
public:
std::string name;
std::string name() const;
HeroPtr();
HeroPtr(const CGHeroInstance * H);

View File

@ -32,7 +32,7 @@ struct SlotInfo
struct ArmyUpgradeInfo
{
std::vector<SlotInfo> resultingArmy;
uint64_t upgradeValue = 0;
int64_t upgradeValue = 0;
TResources upgradeCost;
void addArmyToBuy(std::vector<SlotInfo> army);

View File

@ -176,7 +176,7 @@ int HeroManager::selectBestSkill(const HeroPtr & hero, const std::vector<Seconda
logAi->trace(
"Hero %s is proposed to learn %d with score %f",
hero.name,
hero.name(),
skills[i].toEnum(),
score);
}
@ -204,6 +204,7 @@ float HeroManager::getFightingStrengthCached(const CGHeroInstance * hero) const
{
auto cached = knownFightingStrength.find(hero->id);
//FIXME: fallback to hero->getFightingStrength() is VERY slow on higher difficulties (no object graph? map reveal?)
return cached != knownFightingStrength.end() ? cached->second : hero->getFightingStrength();
}

View File

@ -212,7 +212,7 @@ void CaptureObjectsBehavior::decomposeObjects(
vstd::concatenate(tasksLocal, getVisitGoals(paths, nullkiller, objToVisit, specificObjects));
}
std::lock_guard<std::mutex> lock(sync);
std::lock_guard<std::mutex> lock(sync); // FIXME: consider using tbb::parallel_reduce instead to avoid mutex overhead
vstd::concatenate(result, tasksLocal);
});
}

View File

@ -31,7 +31,7 @@ namespace Goals
{
objid = obj->id.getNum();
tile = obj->visitablePos();
name = obj->getObjectName();
name = obj->typeName;
}
bool operator==(const CaptureObject & other) const override;

View File

@ -26,7 +26,7 @@ ExecuteHeroChain::ExecuteHeroChain(const AIPath & path, const CGObjectInstance *
if(obj)
{
objid = obj->id.getNum();
targetName = obj->getObjectName() + tile.toString();
targetName = obj->typeName + tile.toString();
}
else
{
@ -106,7 +106,7 @@ void ExecuteHeroChain::accept(AIGateway * ai)
if(!heroPtr.validAndSet())
{
logAi->error("Hero %s was lost. Exit hero chain.", heroPtr.name);
logAi->error("Hero %s was lost. Exit hero chain.", heroPtr.name());
return;
}
@ -143,7 +143,7 @@ void ExecuteHeroChain::accept(AIGateway * ai)
if(!heroPtr.validAndSet())
{
logAi->error("Hero %s was lost trying to execute special action. Exit hero chain.", heroPtr.name);
logAi->error("Hero %s was lost trying to execute special action. Exit hero chain.", heroPtr.name());
return;
}
@ -204,7 +204,7 @@ void ExecuteHeroChain::accept(AIGateway * ai)
{
if(!heroPtr.validAndSet())
{
logAi->error("Hero %s was lost. Exit hero chain.", heroPtr.name);
logAi->error("Hero %s was lost. Exit hero chain.", heroPtr.name());
return;
}
@ -250,7 +250,7 @@ void ExecuteHeroChain::accept(AIGateway * ai)
{
if(!heroPtr.validAndSet())
{
logAi->debug("Hero %s was killed while attempting to reach %s", heroPtr.name, node->coord.toString());
logAi->debug("Hero %s was killed while attempting to reach %s", heroPtr.name(), node->coord.toString());
return;
}

View File

@ -70,11 +70,8 @@ bool ExplorationHelper::scanMap()
int3 mapSize = cbp->getMapSize();
int perimeter = 2 * sightRadius * (mapSize.x + mapSize.y);
std::vector<int3> from;
std::vector<int3> to;
from.reserve(perimeter);
to.reserve(perimeter);
std::vector<int3> edgeTiles;
edgeTiles.reserve(perimeter);
foreach_tile_pos([&](const int3 & pos)
{
@ -91,13 +88,13 @@ bool ExplorationHelper::scanMap()
});
if(hasInvisibleNeighbor)
from.push_back(pos);
edgeTiles.push_back(pos);
}
});
logAi->debug("Exploration scan visible area perimeter for hero %s", hero->getNameTranslated());
for(const int3 & tile : from)
for(const int3 & tile : edgeTiles)
{
scanTile(tile);
}
@ -108,19 +105,36 @@ bool ExplorationHelper::scanMap()
}
allowDeadEndCancellation = false;
for(int i = 0; i < sightRadius; i++)
{
getVisibleNeighbours(from, to);
vstd::concatenate(from, to);
vstd::removeDuplicates(from);
}
logAi->debug("Exploration scan all possible tiles for hero %s", hero->getNameTranslated());
for(const int3 & tile : from)
boost::multi_array<ui8, 3> potentialTiles = ts->fogOfWarMap;
std::vector<int3> tilesToExploreFrom = edgeTiles;
// WARNING: POTENTIAL BUG
// AI attempts to move to any tile within sight radius to reveal some new tiles
// however sight radius is circular, while this method assumes square radius
// standing on the edge of a square will NOT reveal tile in opposite corner
for(int i = 0; i < sightRadius; i++)
{
scanTile(tile);
std::vector<int3> newTilesToExploreFrom;
for(const int3 & tile : tilesToExploreFrom)
{
foreach_neighbour(cbp, tile, [&](CCallback * cbp, int3 neighbour)
{
if(potentialTiles[neighbour.z][neighbour.x][neighbour.y])
{
newTilesToExploreFrom.push_back(neighbour);
potentialTiles[neighbour.z][neighbour.x][neighbour.y] = false;
}
});
}
for(const int3 & tile : newTilesToExploreFrom)
{
scanTile(tile);
}
std::swap(tilesToExploreFrom, newTilesToExploreFrom);
}
return !bestGoal->invalid();
@ -172,20 +186,6 @@ void ExplorationHelper::scanTile(const int3 & tile)
}
}
void ExplorationHelper::getVisibleNeighbours(const std::vector<int3> & tiles, std::vector<int3> & out) const
{
for(const int3 & tile : tiles)
{
foreach_neighbour(cbp, tile, [&](CCallback * cbp, int3 neighbour)
{
if(ts->fogOfWarMap[neighbour.z][neighbour.x][neighbour.y])
{
out.push_back(neighbour);
}
});
}
}
int ExplorationHelper::howManyTilesWillBeDiscovered(const int3 & pos) const
{
int ret = 0;

View File

@ -46,7 +46,6 @@ public:
private:
void scanTile(const int3 & tile);
bool hasReachableNeighbor(const int3 & pos) const;
void getVisibleNeighbours(const std::vector<int3> & tiles, std::vector<int3> & out) const;
};
}

View File

@ -320,11 +320,9 @@ void AINodeStorage::calculateNeighbours(
const PathfinderConfig * pathfinderConfig,
const CPathfinderHelper * pathfinderHelper)
{
std::vector<int3> accessibleNeighbourTiles;
NeighbourTilesVector accessibleNeighbourTiles;
result.clear();
accessibleNeighbourTiles.reserve(8);
pathfinderHelper->calculateNeighbourTiles(accessibleNeighbourTiles, source);
const AIPathNode * srcNode = getAINode(source.node);

View File

@ -23,6 +23,8 @@ constexpr int NKAI_GRAPH_TRACE_LEVEL = 0;
#include "Actions/SpecialAction.h"
#include "Actors.h"
#include <boost/container/small_vector.hpp>
namespace NKAI
{
namespace AIPathfinding
@ -85,7 +87,9 @@ struct AIPathNodeInfo
struct AIPath
{
std::vector<AIPathNodeInfo> nodes;
using NodesVector = boost::container::small_vector<AIPathNodeInfo, 16>;
NodesVector nodes;
uint64_t targetObjectDanger;
uint64_t armyLoss;
uint64_t targetObjectArmyLoss;

View File

@ -141,7 +141,8 @@ namespace AIPathfinding
{
SpellID summonBoat = SpellID::SUMMON_BOAT;
return hero->getSpellCost(summonBoat.toSpell());
// FIXME: this should be hero->getSpellCost, however currently queries to bonus system are too slow
return summonBoat.toSpell()->getCost(0);
}
}

View File

@ -118,7 +118,7 @@ void GraphPaths::calculatePaths(const CGHeroInstance * targetHero, const Nullkil
targetNode.specialAction = compositeAction;
auto targetGraphNode = graph.getNode(target);
const auto & targetGraphNode = graph.getNode(target);
if(targetGraphNode.objID.hasValue())
{

View File

@ -77,6 +77,15 @@ public:
// FIXME: provide distance info for Jousting bonus
DamageEstimation retal;
DamageEstimation dmg = cb->getBattle(battleID)->battleEstimateDamage(ourStack, s, 0, &retal);
// Clip damage dealt to total stack health
auto totalHealth = s->getTotalHealth();
vstd::amin(dmg.damage.min, totalHealth);
vstd::amin(dmg.damage.max, totalHealth);
auto ourHealth = s->getTotalHealth();
vstd::amin(retal.damage.min, ourHealth);
vstd::amin(retal.damage.max, ourHealth);
adi = static_cast<int>((dmg.damage.min + dmg.damage.max) / 2);
adr = static_cast<int>((retal.damage.min + retal.damage.max) / 2);
}

View File

@ -162,10 +162,9 @@ void AINodeStorage::calculateNeighbours(
const PathfinderConfig * pathfinderConfig,
const CPathfinderHelper * pathfinderHelper)
{
std::vector<int3> accessibleNeighbourTiles;
NeighbourTilesVector accessibleNeighbourTiles;
result.clear();
accessibleNeighbourTiles.reserve(8);
pathfinderHelper->calculateNeighbourTiles(accessibleNeighbourTiles, source);

View File

@ -58,7 +58,7 @@ option(ENABLE_CCACHE "Speed up recompilation by caching previous compilations" O
# Platform-specific options
if(ANDROID)
set(ANDROID_TARGET_SDK_VERSION "33" CACHE STRING "Android target SDK version")
set(ANDROID_TARGET_SDK_VERSION "34" CACHE STRING "Android target SDK version")
set(ANDROIDDEPLOYQT_OPTIONS "" CACHE STRING "Additional androiddeployqt options separated by semi-colon")
set(ANDROID_GRADLE_PROPERTIES "" CACHE STRING "Additional Gradle properties separated by semi-colon")
@ -519,7 +519,7 @@ if(ENABLE_LAUNCHER OR ENABLE_EDITOR)
endif()
endif()
if(ENABLE_NULLKILLER_AI AND ENABLE_CLIENT)
if(ENABLE_CLIENT)
find_package(TBB REQUIRED)
endif()

View File

@ -292,7 +292,8 @@
"default-release"
],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"ANDROIDDEPLOYQT_OPTIONS" : "--aab"
}
},
{

View File

@ -1,3 +1,50 @@
# 1.5.3 -> 1.5.4
### Stability
* Fixed a possible crash when clicking on an adventure map when another player is taking a turn in multiplayer mode.
* Failure to extract a mod will now display an error message instead of a silent crash.
* Fixed crash on opening town hall screen of a town from a mod with invalid building identifier
* Fixed crash when faerie dragons die after casting Ice Ring on themselves.
### Mechanics
* The scholar will now correctly upgrade a skill if the visiting hero has offered a skill at either the basic or advanced level.
* Hero now reveals Fog of War when receiving new or upgraded secondary skills (such as scouting).
* AI will now always act after all human players during simturns instead of acting after host player
### Interface
* Pressing the up and down keys on the town screen will now move to the next or previous town instead of scrolling through the list of towns.
* Long text in scenario name and highscore screen now shortened to fit the interface
* Game now moves cursor to tap event position when using software cursor with touch screen input
* Right-click popup on spell scroll campaign bonus now shows spell name instead of artefact name
* Damage estimation tooltip will no longer show damage greater than the targeted unit's health.
### Random Maps Generator
* Generator will try to place roads even further away from zone borders
* Fixed rare crash when placing two quest artefacts in the same location at the same time
### AI
* Improved performance of Nullkiller AI
* Stupid AI no longer overestimates damage when killing entire unit
* Fixed a bug leading to Battle AI not using spells when sieging town with Citadel or Castle built
* Fixed an unsigned integer overflow that caused the Nullkiller AI to overestimate the total army strength after merging two armies.
### Launcher
* Added button to reset touchscreen tutorial on mobile systems
* Launcher will now warn if player selects Gog Galaxy installer instead of offline installer
* Launcher will now ask for the .bin file first as it is usually listed first in the file system view
* Extraction failure now displays error message instead of crashing
* Launcher will now use the header signature to check the file type instead of the extension when using the gog.com installer.
* Fixed broken controller sensitivity configuration options
* Fixed manual file installation on Android
### Map Editor
* Icons and translations now embedded in executable file
### Modding
* Improved bonus format validation
* Validator now reports valid values for enumeration fields
* Fixed missing addInfo field for bonuses that use the BONUS_OWNER_UPDATER propagation updater.
# 1.5.2 -> 1.5.3
### Stability
@ -46,6 +93,7 @@
* Added the configuration files directory to the Help tab as it is located separately on Linux systems
* Removed H3 data language selection during setup in favor of auto-detection
* Replaced checkboxes with toggle buttons for easier of access on touchscreens.
* Icons and translations now embedded in executable file
* Added interface for configuring several previously existing but inaccessible options in Launcher:
* Selection of input tolerance precision for all input types
* Relative cursor mode for mobile systems (was only available on Android)

View File

@ -49,10 +49,10 @@
"vcmi.radialWheel.heroSwapArtifacts" : "Vyměnit artefakty s jiným hrdinou",
"vcmi.radialWheel.heroDismiss" : "Propustit hrdinu",
"vcmi.radialWheel.moveTop" : "Move to top",
"vcmi.radialWheel.moveUp" : "Move up",
"vcmi.radialWheel.moveDown" : "Move down",
"vcmi.radialWheel.moveBottom" : "Move to bottom",
"vcmi.radialWheel.moveTop" : "Přesunout nahoru",
"vcmi.radialWheel.moveUp" : "Posunout výše",
"vcmi.radialWheel.moveDown" : "Posunout níže",
"vcmi.radialWheel.moveBottom" : "Přesunout dolů",
"vcmi.spellBook.search" : "hledat...",
@ -62,24 +62,88 @@
"vcmi.mainMenu.serverClosing" : "Zavírání...",
"vcmi.mainMenu.hostTCP" : "Pořádat hru TCP/IP",
"vcmi.mainMenu.joinTCP" : "Připojit se do hry TCP/IP",
"vcmi.mainMenu.playerName" : "Hráč",
"vcmi.lobby.filepath" : "Název souboru",
"vcmi.lobby.creationDate" : "Datum vytvoření",
"vcmi.lobby.scenarioName" : "Název scénáře",
"vcmi.lobby.mapPreview" : "Náhled mapy",
"vcmi.lobby.noPreview" : "bez náhledu",
"vcmi.lobby.noUnderground" : "bez podzemí",
"vcmi.lobby.sortDate" : "Řadit mapy dle data změny",
"vcmi.lobby.backToLobby" : "Vrátit se do předsíně",
"vcmi.lobby.login.title" : "Online předsíň VCMI",
"vcmi.lobby.login.username" : "Uživatelské jméno:",
"vcmi.lobby.login.connecting" : "Připojování...",
"vcmi.lobby.login.error" : "Chyba při připojování: %s",
"vcmi.lobby.login.create" : "Nový účet",
"vcmi.lobby.login.login" : "Přihlásit se",
"vcmi.lobby.login.as" : "Přilásit se jako %s",
"vcmi.lobby.header.rooms" : "Herní místnosti - %d",
"vcmi.lobby.header.channels" : "Kanály konverzace",
"vcmi.lobby.header.chat.global" : "Globální konverzace hry - %s", // %s -> language name
"vcmi.lobby.header.chat.match" : "Konverzace předchozí hry %s", // %s -> game start date & time
"vcmi.lobby.header.chat.player" : "Soukromá konverzace s %s", // %s -> nickname of another player
"vcmi.lobby.header.history" : "Vaše předchozí hry",
"vcmi.lobby.header.players" : "Online hráči - %d",
"vcmi.lobby.match.solo" : "Hra jednoho hráče",
"vcmi.lobby.match.duel" : "Hra s %s", // %s -> nickname of another player
"vcmi.lobby.match.multi" : "%d hráčů",
"vcmi.lobby.room.create" : "Vytvořit novou místnost",
"vcmi.lobby.room.players.limit" : "Omezení počtu hráčů",
"vcmi.lobby.room.description.public" : "Jakýkoliv hráč se může připojit do veřejné místnosti.",
"vcmi.lobby.room.description.private" : "Pouze pozvaní hráči se mohou připojit do soukromé místnosti.",
"vcmi.lobby.room.description.new" : "Pro start hry vyberte scénář, nebo nastavte náhodnou mapu.",
"vcmi.lobby.room.description.load" : "Pro start hry načtěte uloženou hru.",
"vcmi.lobby.room.description.limit" : "Až %d hráčů se může připojit do vaší místnosti (včetně vás).",
"vcmi.lobby.invite.header" : "Pozvat hráče",
"vcmi.lobby.invite.notification" : "Pozval vás hráč do jejich soukromé místnosti. Nyní se do ní můžete připojit.",
"vcmi.lobby.preview.title" : "Připojit se do herní místnosti",
"vcmi.lobby.preview.subtitle" : "Hra na %s, pořádána %s", //TL Note: 1) name of map or RMG template 2) nickname of game host
"vcmi.lobby.preview.version" : "Verze hry:",
"vcmi.lobby.preview.players" : "Hráči:",
"vcmi.lobby.preview.mods" : "Použité modifikace:",
"vcmi.lobby.preview.allowed" : "Připojit se do herní místnosti?",
"vcmi.lobby.preview.error.header" : "Nelze se připojit do této herní místnosti.",
"vcmi.lobby.preview.error.playing" : "Nejdříve musíte opustit vaši současnou hru.",
"vcmi.lobby.preview.error.full" : "Místnost je již plná.",
"vcmi.lobby.preview.error.busy" : "Místnost již nepřijímá nové hráče.",
"vcmi.lobby.preview.error.invite" : "Nebyl jste pozván do této mísnosti.",
"vcmi.lobby.preview.error.mods" : "Použváte jinou sadu modifikací.",
"vcmi.lobby.preview.error.version" : "Používáte jinou verzi VCMI.",
"vcmi.lobby.room.new" : "Nová hra",
"vcmi.lobby.room.load" : "Načíst hru",
"vcmi.lobby.room.type" : "Druh místnosti",
"vcmi.lobby.room.mode" : "Herní režim",
"vcmi.lobby.room.state.public" : "Veřejná",
"vcmi.lobby.room.state.private" : "Soukromá",
"vcmi.lobby.room.state.busy" : "Ve hře",
"vcmi.lobby.room.state.invited" : "Pozvaný",
"vcmi.lobby.mod.state.compatible" : "Kompatibilní",
"vcmi.lobby.mod.state.disabled" : "Musí být povolena",
"vcmi.lobby.mod.state.version" : "Neshoda verze",
"vcmi.lobby.mod.state.excessive" : "Musí být zakázána",
"vcmi.lobby.mod.state.missing" : "Není nainstalována",
"vcmi.lobby.pvp.coin.hover" : "Mince",
"vcmi.lobby.pvp.coin.help" : "Hodí mincí",
"vcmi.lobby.pvp.randomTown.hover" : "Náhodné město",
"vcmi.lobby.pvp.randomTown.help" : "Napsat náhodné město do konvezace",
"vcmi.lobby.pvp.randomTownVs.hover" : "Náhodné město vs.",
"vcmi.lobby.pvp.randomTownVs.help" : "Napsat 2 náhodná města do konvezace",
"vcmi.lobby.pvp.versus" : "vs.",
"vcmi.client.errors.invalidMap" : "{Neplatná mapa nebo kampaň}\n\nChyba při startu hry! Vybraná mapa nebo kampaň může být neplatná nebo poškozená. Důvod:\n%s",
"vcmi.client.errors.missingCampaigns" : "{Chybějící datové soubory}\n\nDatové soubory kampaně nebyly nalezeny! Možná máte nekompletní nebo poškozené datové soubory Heroes 3. Prosíme, přeinstalujte hru.",
"vcmi.server.errors.disconnected" : "{Chyba sítě}\n\nPřipojení k hernímu serveru bylo ztraceno!",
"vcmi.server.errors.existingProcess" : "Již běží jiný server VCMI. Prosím, ukončete ho před startem nové hry.",
"vcmi.server.errors.modsToEnable" : "{Následující modifikace jsou nutné pro načtení hry}",
"vcmi.server.errors.modsToDisable" : "{Následující modifikace musí být zakázány}",
"vcmi.server.confirmReconnect" : "Chcete se připojit k poslední relaci?",
"vcmi.server.errors.modNoDependency" : "Nelze načíst modifikaci {'%s'}!\n Závisí na modifikaci {'%s'}, která není aktivní!\n",
"vcmi.server.errors.modConflict" : "Nelze načíst modifikaci {'%s'}!\n Je v kolizi s aktivní modifikací {'%s'}!\n",
"vcmi.server.errors.unknownEntity" : "Nelze načíst uloženou pozici! Neznámá entita '%s' nalezena v uložené pozici! Uložná pozice nemusí být kompatibilní s aktuálními verzemi modifikací!",
"vcmi.dimensionDoor.seaToLandError" : "It's not possible to teleport from sea to land or vice versa with a Dimension Door.", //TODO
"vcmi.settingsMainWindow.generalTab.hover" : "Obecné",
"vcmi.settingsMainWindow.generalTab.help" : "Přepne na kartu obecných nastavení, která obsahuje nastavení související s obecným chováním klienta hry.",
"vcmi.settingsMainWindow.battleTab.hover" : "Bitva",
@ -182,6 +246,18 @@
"vcmi.battleWindow.damageEstimation.kills" : "%d zahyne",
"vcmi.battleWindow.damageEstimation.kills.1" : "%d zahyne",
"vcmi.battleWindow.damageRetaliation.will" : "Zahyne ",
"vcmi.battleWindow.damageRetaliation.may" : "Možná zahyne ",
"vcmi.battleWindow.damageRetaliation.never" : "Nezahyne.",
"vcmi.battleWindow.damageRetaliation.damage" : "(%DAMAGE).",
"vcmi.battleWindow.damageRetaliation.damageKills" : "(%DAMAGE, %KILLS).",
"vcmi.battleWindow.killed" : "Zabito", //TODO
"vcmi.battleWindow.accurateShot.resultDescription.0" : "%d %s were killed by accurate shots!",
"vcmi.battleWindow.accurateShot.resultDescription.1" : "%d %s was killed with an accurate shot!",
"vcmi.battleWindow.accurateShot.resultDescription.2" : "%d %s were killed by accurate shots!",
"vcmi.battleWindow.endWithAutocombat" : "Are you sure you wish to end the battle with auto combat?",
"vcmi.battleResultsWindow.applyResultsLabel" : "Použít výsledek bitvy",
"vcmi.tutorialWindow.title" : "Úvod ovládání dotykem",
@ -244,18 +320,18 @@
"vcmi.optionsTab.turnOptions.hover" : "Možnosti tahu",
"vcmi.optionsTab.turnOptions.help" : "Vyberte odpočítávadlo tahů a nastavení souběžných tahů",
"vcmi.optionsTab.chessFieldBase.hover" : "Base timer",
"vcmi.optionsTab.chessFieldTurn.hover" : "Turn timer",
"vcmi.optionsTab.chessFieldBattle.hover" : "Battle timer",
"vcmi.optionsTab.chessFieldUnit.hover" : "Unit timer",
"vcmi.optionsTab.chessFieldBase.help" : "Used when {Turn Timer} reaches 0. Set once at game start. On reaching zero, ends current turn. Any ongoing combat with end with a loss.",
"vcmi.optionsTab.chessFieldTurnAccumulate.help" : "Used out of combat or when {Battle Timer} runs out. Reset each turn. Leftover added to {Base Timer} at turn's end.",
"vcmi.optionsTab.chessFieldTurnDiscard.help" : "Used out of combat or when {Battle Timer} runs out. Reset each turn. Any unspent time is lost",
"vcmi.optionsTab.chessFieldBattle.help" : "Used in battles with AI or in pvp combat when {Unit Timer} runs out. Reset at start of each combat.",
"vcmi.optionsTab.chessFieldUnitAccumulate.help" : "Used when selecting unit action in pvp combat. Leftover added to {Battle Timer} at end of unit turn.",
"vcmi.optionsTab.chessFieldUnitDiscard.help" : "Used when selecting unit action in pvp combat. Reset at start of each unit's turn. Any unspent time is lost",
"vcmi.optionsTab.chessFieldBase.hover" : "Základní časovač",
"vcmi.optionsTab.chessFieldTurn.hover" : "Časovač tahu",
"vcmi.optionsTab.chessFieldBattle.hover" : "Časovač bitvy",
"vcmi.optionsTab.chessFieldUnit.hover" : "Časovač jednotky",
"vcmi.optionsTab.chessFieldBase.help" : "Použit při poklesnutí {Časovače bitvy} na 0. Nastaveno jednou při začátku hry. Při poklesu na nulu skončí tah. Jákákoliv trvající bitva skončí prohrou.",
"vcmi.optionsTab.chessFieldTurnAccumulate.help" : "Použit mimo bitvu nebo když {Časovač bitvy} vyprší. Resetuje se každý tah. Přebytečný čas je přidán do {Základního časovače} na konci tahu.",
"vcmi.optionsTab.chessFieldTurnDiscard.help" : "Použit mimo bitvu nebo když {Časovač bitvy} vyprší. Resetuje se každý tah. Jakýkoliv přebytečný čas je ztracen.",
"vcmi.optionsTab.chessFieldBattle.help" : "Použit v bitvách s AI nebo v pvp soubojích při vypršení {Časovače jednotky}. Resetuje se startu každé bitvy.",
"vcmi.optionsTab.chessFieldUnitAccumulate.help" : "Použit při vybírání úkonu jednotky. Přebytečný čas je přidán do {Časovače bitvy} na konci tahu jednotky.",
"vcmi.optionsTab.chessFieldUnitDiscard.help" : "Použit při vybírání úkonu jednotky. Resetuje se na začátku tahu každé jednotky. Jakýkoliv přebytečný čas je ztracen.",
"vcmi.optionsTab.accumulate" : "Accumulate",
"vcmi.optionsTab.accumulate" : "Akumulovat",
"vcmi.optionsTab.simturnsTitle" : "Souběžné tahy",
"vcmi.optionsTab.simturnsMin.hover" : "Alespoň po",
@ -302,6 +378,14 @@
"vcmi.optionsTab.simturns.months.1" : " %d měsíc",
"vcmi.optionsTab.simturns.months.2" : " %d měsíce",
"vcmi.optionsTab.extraOptions.hover" : "Další možnosti",
"vcmi.optionsTab.extraOptions.help" : "Další herní možnosti",
"vcmi.optionsTab.cheatAllowed.hover" : "Povolit cheaty",
"vcmi.optionsTab.unlimitedReplay.hover" : "Unlimited battle replay",
"vcmi.optionsTab.cheatAllowed.help" : "{Povolit cheaty}\nPovolí zadávání cheatů během hry.",
"vcmi.optionsTab.unlimitedReplay.help" : "{Unlimited battle replay}\nNo limit of replaying battles.",
// Custom victory conditions for H3 campaigns and HotA maps
"vcmi.map.victoryCondition.daysPassed.toOthers" : "Nepřítel zvládl přežít do této chvíle. Vítězství je jeho!",
"vcmi.map.victoryCondition.daysPassed.toSelf" : "Gratulace! Zvládli jste přežít. Vítězství je vaše!",
@ -333,9 +417,9 @@
"core.bonus.AIR_IMMUNITY.description": "Imunní všem kouzlům školy vzdušné magie",
"core.bonus.ATTACKS_ALL_ADJACENT.name": "Útok okolo",
"core.bonus.ATTACKS_ALL_ADJACENT.description": "Útočí na všechny sousední jednotky",
"core.bonus.BLOCKS_RETALIATION.name": "Žádná odplata",
"core.bonus.BLOCKS_RETALIATION.name": "Žádná odveta",
"core.bonus.BLOCKS_RETALIATION.description": "Nepřítel nemůže zaútočit zpět",
"core.bonus.BLOCKS_RANGED_RETALIATION.name": "Žádná odplata na dálku",
"core.bonus.BLOCKS_RANGED_RETALIATION.name": "Žádná odveta na dálku",
"core.bonus.BLOCKS_RANGED_RETALIATION.description": "Nepřítel nemůže zaútočit zpět útokem na dálku",
"core.bonus.CATAPULT.name": "Katapult",
"core.bonus.CATAPULT.description": "Útočí na ochranné hradby",
@ -364,17 +448,20 @@
"core.bonus.ENCHANTED.name": "Očarovaný",
"core.bonus.ENCHANTED.description": "Trvale ovlivněm kouzlem ${subtype.spell}",
"core.bonus.ENEMY_DEFENCE_REDUCTION.name": "Nevšímá si ${val} % bodů obrany",
"core.bonus.ENEMY_ATTACK_REDUCTION.description": "When being attacked, ${val}% of the attacker's attack is ignored",
"core.bonus.ENEMY_DEFENCE_REDUCTION.description": "Pří útoku nebude brát v potaz ${val}% bodů obrany obránce",
"core.bonus.FIRE_IMMUNITY.name": "Ohnivá odolnost",
"core.bonus.FIRE_IMMUNITY.description": "Imunní všem kouzlům školy ohnivé magie",
"core.bonus.FIRE_SHIELD.name": "Ohnivý štít (${val}%)",
"core.bonus.FIRE_SHIELD.description": "Odrazí část zranení útoku zblízka",
"core.bonus.FIRST_STRIKE.name": "První úder",
"core.bonus.FIRST_STRIKE.description": "Tato jednotka útočí zpět ještě než je na ni zaútočeno",
"core.bonus.FIRST_STRIKE.description": "Tato jednotka provede odvetu ještě než je na ni zaútočeno",
"core.bonus.FEAR.name": "Strach",
"core.bonus.FEAR.description": "Způsobí strach nepřátelskému oddílu",
"core.bonus.FEARLESS.name": "Nebojácnost",
"core.bonus.FEARLESS.description": "Odolnost proti strachu",
"core.bonus.FEROCITY.name": "Ferocity", //TODO
"core.bonus.FEROCITY.description": "Attacks ${val} additional times if killed anybody",
"core.bonus.FLYING.name": "Letec",
"core.bonus.FLYING.description": "Při pohybu létá (přes překážky)",
"core.bonus.FREE_SHOOTING.name": "Blízké výstřely",
@ -421,7 +508,7 @@
"core.bonus.NON_LIVING.description": "Imunní vůči mnohým efektům",
"core.bonus.RANDOM_SPELLCASTER.name": "Náhodný kouzelník",
"core.bonus.RANDOM_SPELLCASTER.description": "Může seslat náhodné kouzlo",
"core.bonus.RANGED_RETALIATION.name": "Vzdálená msta",
"core.bonus.RANGED_RETALIATION.name": "Vzdálená odveta",
"core.bonus.RANGED_RETALIATION.description": "Může provést protiútok na dálku",
"core.bonus.RECEPTIVE.name": "Přijímavý",
"core.bonus.RECEPTIVE.description": "Není imunní vůči přátelským kouzlům",
@ -429,6 +516,8 @@
"core.bonus.REBIRTH.description": "${val}% oddílu se po smrti znovu narodí",
"core.bonus.RETURN_AFTER_STRIKE.name": "Útok a návrat",
"core.bonus.RETURN_AFTER_STRIKE.description": "Navrátí se po útoku na blízko",
"core.bonus.REVENGE.name": "Msta",
"core.bonus.REVENGE.description": "Deals extra damage based on attacker's lost health in battle", //TODO
"core.bonus.SHOOTER.name": "Střelec",
"core.bonus.SHOOTER.description": "Jednotka může střílet",
"core.bonus.SHOOTS_ALL_ADJACENT.name": "Střílí okolo",
@ -452,7 +541,7 @@
"core.bonus.SUMMON_GUARDIANS.name": "Povolat strážce",
"core.bonus.SUMMON_GUARDIANS.description": "Na začátku bitvy povolá ${subtype.creature} (${val}%)",
"core.bonus.SYNERGY_TARGET.name": "Synergizable", // TODO
"core.bonus.SYNERGY_TARGET.description": "This creature is vulnerable to synergy effect",
"core.bonus.SYNERGY_TARGET.description": "This creature is vulnerable to synergy effect", //TODO
"core.bonus.TWO_HEX_ATTACK_BREATH.name": "Dech",
"core.bonus.TWO_HEX_ATTACK_BREATH.description": "Dechový útok (dosah do dvou polí)",
"core.bonus.THREE_HEADED_ATTACK.name": "Tříhlavý útok",
@ -462,7 +551,7 @@
"core.bonus.UNDEAD.name": "Nemrtvý",
"core.bonus.UNDEAD.description": "Jednotka je nemrtvá",
"core.bonus.UNLIMITED_RETALIATIONS.name": "Neomezené odvety",
"core.bonus.UNLIMITED_RETALIATIONS.description": "Může se mstít za neomezený počet útoků",
"core.bonus.UNLIMITED_RETALIATIONS.description": "Může provést odvetu za neomezený počet útoků",
"core.bonus.WATER_IMMUNITY.name": "Vodní odolnost",
"core.bonus.WATER_IMMUNITY.description": "Imunní všem kouzlům školy vodní magie",
"core.bonus.WIDE_BREATH.name": "Široký dech",

View File

@ -1213,13 +1213,14 @@ void CPlayerInterface::heroBonusChanged( const CGHeroInstance *hero, const Bonus
void CPlayerInterface::moveHero( const CGHeroInstance *h, const CGPath& path )
{
LOG_TRACE(logGlobal);
if (!LOCPLINT->makingTurn)
return;
assert(h);
assert(!showingDialog->isBusy());
assert(dialogs.empty());
LOG_TRACE(logGlobal);
if (!LOCPLINT->makingTurn)
return;
if (!h)
return; //can't find hero

View File

@ -648,14 +648,14 @@ void CServerHandler::startGameplay(VCMI_LIB_WRAP_NAMESPACE(CGameState) * gameSta
if(CMM)
CMM->disable();
campaignScoreCalculator = nullptr;
switch(si->mode)
{
case EStartMode::NEW_GAME:
client->newGame(gameState);
break;
case EStartMode::CAMPAIGN:
if(si->campState->conqueredScenarios().empty())
campaignScoreCalculator.reset();
client->newGame(gameState);
break;
case EStartMode::LOAD_GAME:

View File

@ -168,7 +168,7 @@ void PlayerLocalState::setSelection(const CArmedInstance * selection)
currentSelection = selection;
if (selection)
if (adventureInt && selection)
adventureInt->onSelectionChanged(selection);
}
@ -212,6 +212,9 @@ void PlayerLocalState::addWanderingHero(const CGHeroInstance * hero)
assert(hero);
assert(!vstd::contains(wanderingHeroes, hero));
wanderingHeroes.push_back(hero);
if (currentSelection == nullptr)
setSelection(hero);
}
void PlayerLocalState::removeWanderingHero(const CGHeroInstance * hero)
@ -260,6 +263,9 @@ void PlayerLocalState::addOwnedTown(const CGTownInstance * town)
assert(town);
assert(!vstd::contains(ownedTowns, town));
ownedTowns.push_back(town);
if (currentSelection == nullptr)
setSelection(town);
}
void PlayerLocalState::removeOwnedTown(const CGTownInstance * town)

View File

@ -395,8 +395,6 @@ void AdventureMapInterface::adjustActiveness()
void AdventureMapInterface::onCurrentPlayerChanged(PlayerColor playerID)
{
LOCPLINT->localState->setSelection(nullptr);
if (playerID == currentPlayerID)
return;
@ -446,6 +444,8 @@ void AdventureMapInterface::onPlayerTurnStarted(PlayerColor playerID)
LOCPLINT->localState->setSelection(LOCPLINT->localState->getWanderingHero(0));
}
centerOnObject(LOCPLINT->localState->getCurrentArmy());
//show new day animation and sound on infobar, except for 1st day of the game
if (LOCPLINT->cb->getDate(Date::DAY) != 1)
widget->getInfoBar()->showDate();

View File

@ -58,6 +58,9 @@ InputSourceTouch::InputSourceTouch()
void InputSourceTouch::handleEventFingerMotion(const SDL_TouchFingerEvent & tfinger)
{
if (CCS && CCS->curh && settings["video"]["cursor"].String() == "software" && state != TouchState::RELATIVE_MODE)
CCS->curh->cursorMove(GH.getCursorPosition().x, GH.getCursorPosition().y);
switch(state)
{
case TouchState::RELATIVE_MODE:

View File

@ -214,7 +214,7 @@ void CBonusSelection::createBonusesIcons()
break;
case CampaignBonusType::SPELL_SCROLL:
desc.appendLocalString(EMetaText::GENERAL_TXT, 716);
desc.replaceName(ArtifactID(bonDescs[i].info2));
desc.replaceName(SpellID(bonDescs[i].info2));
break;
case CampaignBonusType::PRIMARY_SKILL:
{

View File

@ -136,7 +136,7 @@ InfoCard::InfoCard()
labelSaveDate = std::make_shared<CLabel>(310, 38, FONT_SMALL, ETextAlignment::BOTTOMRIGHT, Colors::WHITE);
labelMapSize = std::make_shared<CLabel>(333, 56, FONT_TINY, ETextAlignment::CENTER, Colors::WHITE);
mapName = std::make_shared<CLabel>(26, 39, FONT_BIG, ETextAlignment::TOPLEFT, Colors::YELLOW);
mapName = std::make_shared<CLabel>(26, 39, FONT_BIG, ETextAlignment::TOPLEFT, Colors::YELLOW, "", 285);
Rect descriptionRect(26, 149, 320, 115);
mapDescription = std::make_shared<CTextBox>("", descriptionRect, 1);
playerListBg = std::make_shared<CPicture>(ImagePath::builtin("CHATPLUG.bmp"), 16, 276);

View File

@ -180,23 +180,17 @@ void CHighScoreScreen::addHighScores()
ColorRGBA color = (i == highlighted || currentGameNotInListEntry) ? Colors::YELLOW : Colors::WHITE;
texts.push_back(std::make_shared<CLabel>(115, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, std::to_string((currentGameNotInListEntry ? highlighted : i) + 1)));
std::string tmp = curData["player"].String();
TextOperations::trimRightUnicode(tmp, std::max(0, (int)TextOperations::getUnicodeCharactersCount(tmp) - 13));
texts.push_back(std::make_shared<CLabel>(225, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, tmp));
texts.push_back(std::make_shared<CLabel>(225, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, curData["player"].String(), 120));
if(highscorepage == HighScorePage::SCENARIO)
{
std::string tmp = curData["scenarioName"].String();
TextOperations::trimRightUnicode(tmp, std::max(0, (int)TextOperations::getUnicodeCharactersCount(tmp) - 25));
texts.push_back(std::make_shared<CLabel>(405, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, tmp));
texts.push_back(std::make_shared<CLabel>(405, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, curData["scenarioName"].String(), 200));
texts.push_back(std::make_shared<CLabel>(557, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, std::to_string(curData["days"].Integer())));
texts.push_back(std::make_shared<CLabel>(627, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, std::to_string(curData["points"].Integer())));
}
else
{
std::string tmp = curData["campaignName"].String();
TextOperations::trimRightUnicode(tmp, std::max(0, (int)TextOperations::getUnicodeCharactersCount(tmp) - 25));
texts.push_back(std::make_shared<CLabel>(405, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, tmp));
texts.push_back(std::make_shared<CLabel>(405, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, curData["campaignName"].String(), 200));
texts.push_back(std::make_shared<CLabel>(592, y + i * 50, FONT_MEDIUM, ETextAlignment::CENTER, color, std::to_string(curData["points"].Integer())));
}

View File

@ -15,6 +15,7 @@
#include "../gui/CGuiHandler.h"
#include "../gui/CursorHandler.h"
#include "../CMT.h"
#include "../CPlayerInterface.h"
#include "../CGameInfo.h"
#include "../PlayerLocalState.h"
@ -638,7 +639,13 @@ CCreaturePic::CCreaturePic(int x, int y, const CCreature * cre, bool Big, bool A
assert(CGI->townh->size() > faction);
if (cre->animDefName.empty())
throw std::runtime_error("Creature " + cre->getJsonKey() + " has no valid combat animation!");
{
GH.dispatchMainThread([cre]()
{
handleFatalError("Creature " + cre->getJsonKey() + " has no valid combat animation!", false);
});
return;
}
if(Big)
bg = std::make_shared<CPicture>((*CGI->townh)[faction]->creatureBg130);

View File

@ -1271,8 +1271,8 @@ CCastleInterface::CCastleInterface(const CGTownInstance * Town, const CGTownInst
resdatabar = std::make_shared<CResDataBar>(ImagePath::builtin("ARESBAR"), 3, 575, 37, 3, 84, 78);
townlist = std::make_shared<CTownList>(3, Rect(Point(743, 414), Point(48, 128)), Point(1,16), Point(0, 32), LOCPLINT->localState->getOwnedTowns().size() );
townlist->setScrollUpButton( std::make_shared<CButton>( Point(744, 414), AnimationPath::builtin("IAM014"), CButton::tooltipLocalized("core.help.306"), 0, EShortcut::MOVE_UP));
townlist->setScrollDownButton( std::make_shared<CButton>( Point(744, 526), AnimationPath::builtin("IAM015"), CButton::tooltipLocalized("core.help.307"), 0, EShortcut::MOVE_DOWN));
townlist->setScrollUpButton( std::make_shared<CButton>( Point(744, 414), AnimationPath::builtin("IAM014"), CButton::tooltipLocalized("core.help.306"), 0));
townlist->setScrollDownButton( std::make_shared<CButton>( Point(744, 526), AnimationPath::builtin("IAM015"), CButton::tooltipLocalized("core.help.307"), 0));
if(from)
townlist->select(from);
@ -1407,6 +1407,12 @@ void CCastleInterface::keyPressed(EShortcut key)
{
switch(key)
{
case EShortcut::MOVE_UP:
townlist->selectPrev();
break;
case EShortcut::MOVE_DOWN:
townlist->selectNext();
break;
case EShortcut::TOWN_OPEN_FORT:
GH.windows().createAndPushWindow<CFortScreen>(town);
break;
@ -1548,8 +1554,11 @@ CHallInterface::CHallInterface(const CGTownInstance * Town):
const CBuilding * building = nullptr;
for(auto & buildingID : boxList[row][col])//we are looking for the first not built structure
{
if (town->town->buildings.count(buildingID) == 0)
throw std::runtime_error("Town " + Town->town->faction->getJsonKey() + " has no building with ID " + std::to_string(buildingID.getNum()));
if (!buildingID.hasValue())
{
logMod->warn("Invalid building ID found in hallSlots of town '%s'", town->town->faction->getJsonKey() );
continue;
}
const CBuilding * current = town->town->buildings.at(buildingID);
if(vstd::contains(town->builtBuildings, buildingID))

View File

@ -19,11 +19,10 @@ class VCMI(ConanFile):
"sdl_image/[~2.0.5]",
"sdl_mixer/[~2.0.4]",
"sdl_ttf/[~2.0.18]",
]
_nullkillerAIRequires = [
"onetbb/[^2021.3]",
]
requires = _libRequires + _clientRequires + _nullkillerAIRequires
requires = _libRequires + _clientRequires
options = {
"default_options_of_requirements": [True, False],

View File

@ -10,6 +10,7 @@
"anyOf" : [
{
"type" : "string",
"enum" : [ "SHOOTER_ONLY", "DRAGON_NATURE", "IS_UNDEAD", "CREATURE_NATIVE_TERRAIN", "CREATURE_FACTION", "SAME_FACTION", "CREATURES_ONLY", "OPPOSITE_SIDE" ],
"description" : "parameterless limiter or boolean operator at start of array"
},
{
@ -18,6 +19,7 @@
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "CREATURE_TYPE_LIMITER", "HAS_ANOTHER_BONUS_LIMITER", "CREATURE_ALIGNMENT_LIMITER", "FACTION_LIMITER", "CREATURE_LEVEL_LIMITER", "CREATURE_TERRAIN_LIMITER", "UNIT_ON_HEXES" ],
"description" : "type"
},
"parameters" : {
@ -53,31 +55,24 @@
},
"sourceType" : {
"type" : "string",
"enum" : [ "ARTIFACT", "ARTIFACT_INSTANCE", "OBJECT_TYPE", "OBJECT_INSTANCE", "CREATURE_ABILITY", "TERRAIN_NATIVE", "TERRAIN_OVERLAY", "SPELL_EFFECT", "TOWN_STRUCTURE", "HERO_BASE_SKILL", "SECONDARY_SKILL", "HERO_SPECIAL", "ARMY", "CAMPAIGN_BONUS", "STACK_EXPERIENCE", "COMMANDER", "GLOBAL", "OTHER", ],
"description" : "sourceType"
},
"targetSourceType" : {
"type" : "string",
"enum" : [ "ARTIFACT", "ARTIFACT_INSTANCE", "OBJECT_TYPE", "OBJECT_INSTANCE", "CREATURE_ABILITY", "TERRAIN_NATIVE", "TERRAIN_OVERLAY", "SPELL_EFFECT", "TOWN_STRUCTURE", "HERO_BASE_SKILL", "SECONDARY_SKILL", "HERO_SPECIAL", "ARMY", "CAMPAIGN_BONUS", "STACK_EXPERIENCE", "COMMANDER", "GLOBAL", "OTHER", ],
"description" : "targetSourceType"
},
"propagator" : {
"description" : "propagator",
"anyOf" : [
{
"type" : "string"
},
{
"type" : "array",
"items" : {
"type" : "string",
"description" : "0"
}
}
]
"type" : "string",
"enum" : [ "BATTLE_WIDE", "VISITED_TOWN_AND_VISITOR", "PLAYER_PROPAGATOR", "HERO", "TEAM_PROPAGATOR", "GLOBAL_EFFECT" ]
},
"updater" : {
"anyOf" : [
{
"type" : "string"
"type" : "string",
"enum" : [ "TIMES_HERO_LEVEL", "TIMES_STACK_LEVEL", "ARMY_MOVEMENT", "BONUS_OWNER_UPDATER" ]
},
{
"description" : "updater",
@ -87,6 +82,7 @@
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "GROWS_WITH_LEVEL", "ARMY_MOVEMENT" ],
"description" : "type"
},
"parameters" : {
@ -101,7 +97,8 @@
"propagationUpdater" : {
"anyOf" : [
{
"type" : "string"
"type" : "string",
"enum" : [ "TIMES_HERO_LEVEL", "TIMES_STACK_LEVEL", "ARMY_MOVEMENT", "BONUS_OWNER_UPDATER" ]
},
{
"description" : "propagationUpdater",
@ -111,6 +108,7 @@
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "GROWS_WITH_LEVEL", "ARMY_MOVEMENT" ],
"description" : "type"
},
"parameters" : {
@ -128,6 +126,7 @@
},
"effectRange" : {
"type" : "string",
"enum" : [ "NO_LIMIT", "ONLY_DISTANCE_FIGHT", "ONLY_MELEE_FIGHT" ],
"description" : "effectRange"
},
"val" : {
@ -136,6 +135,7 @@
},
"valueType" : {
"type" : "string",
"enum" : ["ADDITIVE_VALUE", "BASE_NUMBER", "PERCENT_TO_ALL", "PERCENT_TO_BASE", "PERCENT_TO_SOURCE", "PERCENT_TO_TARGET_TYPE", "INDEPENDENT_MAX", "INDEPENDENT_MIN" ],
"description" : "valueType"
},
"addInfo" : {
@ -156,8 +156,17 @@
},
"duration" : {
"anyOf" : [
{ "type" : "string"},
{ "type" : "array", "items" : {"type" : "string"} }
{
"type" : "string",
"enum" : ["PERMANENT", "ONE_BATTLE", "ONE_DAY", "ONE_WEEK", "N_TURNS", "N_DAYS", "UNTIL_BEING_ATTACKED", "UNTIL_ATTACK", "STACK_GETS_TURN", "COMMANDER_KILLED", "UNTIL_OWN_ATTACK" ]
},
{
"type" : "array",
"items" : {
"type" : "string",
"enum" : ["PERMANENT", "ONE_BATTLE", "ONE_DAY", "ONE_WEEK", "N_TURNS", "N_DAYS", "UNTIL_BEING_ATTACKED", "UNTIL_ATTACK", "STACK_GETS_TURN", "COMMANDER_KILLED", "UNTIL_OWN_ATTACK" ]
}
}
],
"description" : "duration"
},

6
debian/changelog vendored
View File

@ -4,6 +4,12 @@ vcmi (1.6.0) jammy; urgency=medium
-- Ivan Savenko <saven.ivan@gmail.com> Fri, 30 Aug 2024 12:00:00 +0200
vcmi (1.5.4) jammy; urgency=medium
* New upstream release
-- Ivan Savenko <saven.ivan@gmail.com> Fri, 12 Jul 2024 12:00:00 +0200
vcmi (1.5.3) jammy; urgency=medium
* New upstream release

View File

@ -1,8 +1,7 @@
[![VCMI](https://github.com/vcmi/vcmi/actions/workflows/github.yml/badge.svg?branch=develop&event=push)](https://github.com/vcmi/vcmi/actions/workflows/github.yml?query=branch%3Adevelop+event%3Apush)
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.0/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.0)
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.1/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.1)
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.2/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.2)
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.3/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.3)
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.4/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.4)
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/total)](https://github.com/vcmi/vcmi/releases)
# VCMI Project
@ -22,7 +21,6 @@ VCMI is an open-source recreation of Heroes of Might & Magic III engine, giving
* Homepage: https://vcmi.eu/
* Forums: https://forum.vcmi.eu/
* Bugtracker: https://github.com/vcmi/vcmi/issues
* Slack: https://slack.vcmi.eu/
* Discord: https://discord.gg/chBT42V
* GPT Store: https://chat.openai.com/g/g-1kNhX0mlO-vcmi-assistant

View File

@ -116,4 +116,4 @@ Anyone who might want to debug builds, but new to macOS could find following com
## Troubleshooting
In case of troubles you can always consult our CI build scripts or contact the dev team via slack.
In case of troubles you can always consult our CI build scripts or contact the dev team via discord.

View File

@ -252,7 +252,7 @@ Gives creature under effect of this spell additional bonus, which is hardcoded a
### SPECIAL_ADD_VALUE_ENCHANT
Increased effect of spell affecting creature, ie. Aenain makes Disrupting Ray decrease target's defense by additional 2 points:
Modifies 'val' parameter of spell effects that give bonuses by specified value. For example, Aenain makes Disrupting Ray decrease target's defense by additional 2 points:
```jsonc
"disruptingRay" : {
@ -263,11 +263,11 @@ Increased effect of spell affecting creature, ie. Aenain makes Disrupting Ray de
```
- subtype: affected spell identifier
- additionalInfo: value to add
- addInfo: value to modify 'val' parameter of targeted spell effects by
### SPECIAL_FIXED_VALUE_ENCHANT
Spell affecting creature has fixed effect, eg. hero Melody has constant spell effect of +3:
Changes 'val' parameter of spell effects that give bonuses to a specified value. For example, Fortune cast by Melody always modifies luck by +3:
```jsonc
"fortune" : {
@ -278,7 +278,7 @@ Spell affecting creature has fixed effect, eg. hero Melody has constant spell ef
```
- subtype: affected spell identifier
- additionalInfo = fixed value
- addInfo: value to set 'val' parameter of targeted spell effects to
### SPECIAL_UPGRADE

View File

@ -111,11 +111,6 @@ void AboutProjectView::on_pushButtonDiscord_clicked()
QDesktopServices::openUrl(QUrl("https://discord.gg/chBT42V"));
}
void AboutProjectView::on_pushButtonSlack_clicked()
{
QDesktopServices::openUrl(QUrl("https://slack.vcmi.eu/"));
}
void AboutProjectView::on_pushButtonGithub_clicked()
{
QDesktopServices::openUrl(QUrl("https://github.com/vcmi/vcmi"));

View File

@ -40,8 +40,6 @@ private slots:
void on_pushButtonDiscord_clicked();
void on_pushButtonSlack_clicked();
void on_pushButtonGithub_clicked();
void on_pushButtonHomepage_clicked();

View File

@ -30,7 +30,7 @@
</property>
</widget>
</item>
<item row="4" column="0">
<item row="3" column="0">
<widget class="QPushButton" name="pushButtonGithub">
<property name="text">
<string>VCMI on Github</string>
@ -55,13 +55,6 @@
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QPushButton" name="pushButtonSlack">
<property name="text">
<string>VCMI on Slack</string>
</property>
</widget>
</item>
</layout>
</item>
<item>

View File

@ -91,6 +91,7 @@
<launchable type="desktop-id">vcmilauncher.desktop</launchable>
<releases>
<release version="1.6.0" date="2024-08-30" type="development"/>
<release version="1.5.4" date="2024-07-12" type="stable"/>
<release version="1.5.3" date="2024-06-21" type="stable"/>
<release version="1.5.2" date="2024-05-31" type="stable"/>
<release version="1.5.1" date="2024-05-17" type="stable"/>

View File

@ -24,6 +24,7 @@
#ifdef ENABLE_INNOEXTRACT
#include "cli/extract.hpp"
#include "setup/version.hpp"
#endif
#ifdef VCMI_IOS
@ -312,7 +313,7 @@ QString FirstLaunchView::getHeroesInstallDir()
void FirstLaunchView::extractGogData()
{
#ifdef ENABLE_INNOEXTRACT
auto fileSelection = [this](QString type, QString filter, QString startPath = {}) {
auto fileSelection = [this](QByteArray magic, QString filter, QString startPath = {}) {
QString titleSel = tr("Select %1 file...", "param is file extension").arg(filter);
QString titleErr = tr("You have to select %1 file!", "param is file extension").arg(filter);
#if defined(VCMI_MOBILE)
@ -322,7 +323,15 @@ void FirstLaunchView::extractGogData()
QString file = QFileDialog::getOpenFileName(this, titleSel, startPath.isEmpty() ? QDir::homePath() : startPath, filter);
if(file.isEmpty())
return QString{};
else if(!file.endsWith("." + type, Qt::CaseInsensitive))
QFile tmpFile(file);
if(!tmpFile.open(QIODevice::ReadOnly))
{
QMessageBox::critical(this, tr("File cannot opened"), tmpFile.errorString());
return QString{};
}
QByteArray magicFile = tmpFile.read(magic.length());
if(!magicFile.startsWith(magic))
{
QMessageBox::critical(this, tr("Invalid file selected"), titleErr);
return QString{};
@ -331,12 +340,12 @@ void FirstLaunchView::extractGogData()
return file;
};
QString fileExe = fileSelection("exe", tr("GOG installer") + " (*.exe)");
if(fileExe.isEmpty())
return;
QString fileBin = fileSelection("bin", tr("GOG data") + " (*.bin)", QFileInfo(fileExe).absolutePath());
QString fileBin = fileSelection(QByteArray{"idska32"}, tr("GOG data") + " (*.bin)");
if(fileBin.isEmpty())
return;
QString fileExe = fileSelection(QByteArray{"MZ"}, tr("GOG installer") + " (*.exe)", QFileInfo(fileBin).absolutePath());
if(fileExe.isEmpty())
return;
ui->progressBarGog->setVisible(true);
ui->pushButtonGogInstall->setVisible(false);
@ -344,6 +353,11 @@ void FirstLaunchView::extractGogData()
QTimer::singleShot(100, this, [this, fileExe, fileBin](){ // background to make sure FileDialog is closed...
QDir tempDir(pathToQString(VCMIDirs::get().userDataPath()));
if(tempDir.cd("tmp"))
{
tempDir.removeRecursively(); // remove if already exists (e.g. previous crash)
tempDir.cdUp();
}
tempDir.mkdir("tmp");
if(!tempDir.cd("tmp"))
return; // should not happen - but avoid deleting wrong folder in any case
@ -352,6 +366,26 @@ void FirstLaunchView::extractGogData()
QFile(fileExe).copy(tmpFileExe);
QFile(fileBin).copy(tempDir.filePath("h3_gog-1.bin"));
QString errorText{};
auto isGogGalaxyExe = [](QString fileExe) {
QFile file(fileExe);
quint64 fileSize = file.size();
if(fileSize > 10 * 1024 * 1024)
return false; // avoid to load big files; galaxy exe is smaller...
if(!file.open(QIODevice::ReadOnly))
return false;
QByteArray data = file.readAll();
const QByteArray magicId{(const char*)u"GOG Galaxy", 20};
return data.contains(magicId);
};
if(isGogGalaxyExe(tmpFileExe))
errorText = tr("You've provided GOG Galaxy installer! This file doesn't contain the game. Please download the offline backup game installer!");
::extract_options o;
o.extract = true;
@ -364,20 +398,44 @@ void FirstLaunchView::extractGogData()
o.filenames.set_expand(true);
o.preserve_file_times = true; // also correctly closes file -> without it: on Windows the files are not written completely
process_file(tmpFileExe.toStdString(), o, [this](float progress) {
ui->progressBarGog->setValue(progress * 100);
qApp->processEvents();
});
try
{
if(errorText.isEmpty())
process_file(tmpFileExe.toStdString(), o, [this](float progress) {
ui->progressBarGog->setValue(progress * 100);
qApp->processEvents();
});
}
catch(const std::ios_base::failure & e)
{
errorText = tr("Stream error while extracting files!\nerror reason: ");
errorText += e.what();
}
catch(const format_error & e)
{
errorText = e.what();
}
catch(const std::runtime_error & e)
{
errorText = e.what();
}
catch(const setup::version_error &)
{
errorText = tr("Not a supported Inno Setup installer!");
}
ui->progressBarGog->setVisible(false);
ui->pushButtonGogInstall->setVisible(true);
setEnabled(true);
QStringList dirData = tempDir.entryList({"data"}, QDir::Filter::Dirs);
if(dirData.empty() || QDir(tempDir.filePath(dirData.front())).entryList({"*.lod"}, QDir::Filter::Files).empty())
if(!errorText.isEmpty() || dirData.empty() || QDir(tempDir.filePath(dirData.front())).entryList({"*.lod"}, QDir::Filter::Files).empty())
{
QMessageBox::critical(this, tr("No Heroes III data!"), tr("Selected files do not contain Heroes III data!"), QMessageBox::Ok, QMessageBox::Ok);
if(!errorText.isEmpty())
QMessageBox::critical(this, tr("Extracting error!"), errorText, QMessageBox::Ok, QMessageBox::Ok);
else
QMessageBox::critical(this, tr("No Heroes III data!"), tr("Selected files do not contain Heroes III data!"), QMessageBox::Ok, QMessageBox::Ok);
tempDir.removeRecursively();
return;
}
@ -596,11 +654,6 @@ void FirstLaunchView::on_pushButtonDiscord_clicked()
QDesktopServices::openUrl(QUrl("https://discord.gg/chBT42V"));
}
void FirstLaunchView::on_pushButtonSlack_clicked()
{
QDesktopServices::openUrl(QUrl("https://slack.vcmi.eu/"));
}
void FirstLaunchView::on_pushButtonGithub_clicked()
{
QDesktopServices::openUrl(QUrl("https://github.com/vcmi/vcmi"));

View File

@ -87,8 +87,6 @@ private slots:
void on_pushButtonDiscord_clicked();
void on_pushButtonSlack_clicked();
void on_pushButtonGithub_clicked();
private:

View File

@ -149,20 +149,13 @@
</item>
<item row="3" column="1" colspan="2">
<layout class="QGridLayout" name="gridLayout_5">
<item row="3" column="0">
<item row="2" column="0">
<widget class="QPushButton" name="pushButtonGithub">
<property name="text">
<string>VCMI on Github</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="pushButtonSlack">
<property name="text">
<string>VCMI on Slack</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pushButtonDiscord">
<property name="text">

View File

@ -33,6 +33,7 @@ namespace Helper
void loadSettings()
{
settings.init("config/settings.json", "vcmi:settings");
persistentStorage.init("config/persistentStorage.json", "");
}
void enableScrollBySwiping(QObject * scrollTarget)

View File

@ -70,9 +70,8 @@ void CModListView::dropEvent(QDropEvent* event)
if(mimeData->hasUrls())
{
const QList<QUrl> urlList = mimeData->urls();
for (const auto & url : urlList)
manualInstallFile(url);
manualInstallFile(url.toLocalFile());
}
}
@ -631,28 +630,31 @@ void CModListView::on_installButton_clicked()
void CModListView::on_installFromFileButton_clicked()
{
QString filter = tr("All supported files") + " (*.h3m *.vmap *.h3c *.vcmp *.zip *.json);;" + tr("Maps") + " (*.h3m *.vmap);;" + tr("Campaigns") + " (*.h3c *.vcmp);;" + tr("Configs") + " (*.json);;" + tr("Mods") + " (*.zip)";
QStringList files = QFileDialog::getOpenFileNames(this, tr("Select files (configs, mods, maps, campaigns) to install..."), QDir::homePath(), filter);
for (const auto & file : files)
// iOS can't display modal dialogs when called directly on button press
// https://bugreports.qt.io/browse/QTBUG-98651
QTimer::singleShot(0, this, [this]
{
QUrl url = QUrl::fromLocalFile(file);
manualInstallFile(url);
}
QString filter = tr("All supported files") + " (*.h3m *.vmap *.h3c *.vcmp *.zip *.json);;" + tr("Maps") + " (*.h3m *.vmap);;" + tr("Campaigns") + " (*.h3c *.vcmp);;" + tr("Configs") + " (*.json);;" + tr("Mods") + " (*.zip)";
QStringList files = QFileDialog::getOpenFileNames(this, tr("Select files (configs, mods, maps, campaigns) to install..."), QDir::homePath(), filter);
for(const auto & file : files)
{
manualInstallFile(file);
}
});
}
void CModListView::manualInstallFile(QUrl url)
void CModListView::manualInstallFile(QString filePath)
{
QString urlStr = url.toString();
QString fileName = url.fileName();
if(urlStr.endsWith(".zip", Qt::CaseInsensitive))
QString fileName = QFileInfo{filePath}.fileName();
if(filePath.endsWith(".zip", Qt::CaseInsensitive))
downloadFile(fileName.toLower()
// mod name currently comes from zip file -> remove suffixes from github zip download
.replace(QRegularExpression("-[0-9a-f]{40}"), "")
.replace(QRegularExpression("-vcmi-.+\\.zip"), ".zip")
.replace("-main.zip", ".zip")
, urlStr, "mods", 0);
else if(urlStr.endsWith(".json", Qt::CaseInsensitive))
, QUrl::fromLocalFile(filePath), "mods");
else if(filePath.endsWith(".json", Qt::CaseInsensitive))
{
QDir configDir(QString::fromStdString(VCMIDirs::get().userConfigPath().string()));
QStringList configFile = configDir.entryList({fileName}, QDir::Filter::Files); // case insensitive check
@ -663,7 +665,7 @@ void CModListView::manualInstallFile(QUrl url)
{
const auto configFilePath = configDir.filePath(configFile[0]);
QFile::remove(configFilePath);
QFile::copy(url.toLocalFile(), configFilePath);
QFile::copy(filePath, configFilePath);
// reload settings
Helper::loadSettings();
@ -676,10 +678,15 @@ void CModListView::manualInstallFile(QUrl url)
}
}
else
downloadFile(fileName, urlStr, fileName, 0);
downloadFile(fileName, QUrl::fromLocalFile(filePath), fileName);
}
void CModListView::downloadFile(QString file, QString url, QString description, qint64 size)
{
downloadFile(file, QUrl{url}, description, size);
}
void CModListView::downloadFile(QString file, QUrl url, QString description, qint64 size)
{
if(!dlManager)
{
@ -690,20 +697,17 @@ void CModListView::downloadFile(QString file, QString url, QString description,
connect(dlManager, SIGNAL(finished(QStringList,QStringList,QStringList)),
this, SLOT(downloadFinished(QStringList,QStringList,QStringList)));
connect(manager.get(), SIGNAL(extractionProgress(qint64,qint64)),
this, SLOT(extractionProgress(qint64,qint64)));
connect(modModel, &CModListModel::dataChanged, filterModel, &QAbstractItemModel::dataChanged);
QString progressBarFormat = tr("Downloading %s%. %p% (%v MB out of %m MB) finished");
progressBarFormat.replace("%s%", description);
const auto progressBarFormat = tr("Downloading %1. %p% (%v MB out of %m MB) finished").arg(description);
ui->progressBar->setFormat(progressBarFormat);
}
dlManager->downloadFile(QUrl(url), file, size);
dlManager->downloadFile(url, file, size);
}
void CModListView::downloadProgress(qint64 current, qint64 max)

View File

@ -51,8 +51,9 @@ class CModListView : public QWidget
// find mods that depend on this one
QStringList findDependentMods(QString mod, bool excludeDisabled);
void manualInstallFile(QUrl url);
void manualInstallFile(QString filePath);
void downloadFile(QString file, QString url, QString description, qint64 size = 0);
void downloadFile(QString file, QUrl url, QString description, qint64 size = 0);
void installMods(QStringList archives);
void installMaps(QStringList maps);

View File

@ -26,9 +26,15 @@ namespace
{
QString detectModArchive(QString path, QString modName, std::vector<std::string> & filesToExtract)
{
ZipArchive archive(qstringToPath(path));
filesToExtract = archive.listFiles();
try {
ZipArchive archive(qstringToPath(path));
filesToExtract = archive.listFiles();
}
catch (const std::runtime_error & e)
{
logGlobal->error("Failed to open zip archive. Reason: %s", e.what());
return "";
}
QString modDirName;

View File

@ -90,6 +90,12 @@ void CSettingsView::loadSettings()
#ifdef VCMI_MOBILE
ui->comboBoxFullScreen->hide();
ui->labelFullScreen->hide();
if(!persistentStorage["gui"]["tutorialCompleted0"].Bool() && !persistentStorage["gui"]["tutorialCompleted1"].Bool())
{
ui->labelResetTutorialTouchscreen->hide();
ui->pushButtonResetTutorialTouchscreen->hide();
}
#else
ui->labelReservedArea->hide();
ui->sliderReservedArea->hide();
@ -99,6 +105,8 @@ void CSettingsView::loadSettings()
ui->labelRelativeCursorSpeed->hide();
ui->buttonHapticFeedback->hide();
ui->labelHapticFeedback->hide();
ui->labelResetTutorialTouchscreen->hide();
ui->pushButtonResetTutorialTouchscreen->hide();
if (settings["video"]["realFullscreen"].Bool())
ui->comboBoxFullScreen->setCurrentIndex(2);
else
@ -525,6 +533,16 @@ void CSettingsView::on_pushButtonTranslation_clicked()
}
}
void CSettingsView::on_pushButtonResetTutorialTouchscreen_clicked()
{
Settings node0 = persistentStorage.write["gui"]["tutorialCompleted0"];
node0->Bool() = false;
Settings node1 = persistentStorage.write["gui"]["tutorialCompleted1"];
node1->Bool() = false;
ui->pushButtonResetTutorialTouchscreen->hide();
}
void CSettingsView::on_buttonRepositoryDefault_toggled(bool value)
{
Settings node = settings.write["launcher"]["defaultRepositoryEnabled"];
@ -705,12 +723,12 @@ void CSettingsView::on_spinBoxNetworkPortLobby_valueChanged(int arg1)
void CSettingsView::on_sliderControllerSticksAcceleration_valueChanged(int value)
{
Settings node = settings.write["input"]["configAxisScale"];
Settings node = settings.write["input"]["controllerAxisScale"];
node->Integer() = value / 100.0;
}
void CSettingsView::on_sliderControllerSticksSensitivity_valueChanged(int value)
{
Settings node = settings.write["input"]["configAxisSpeed"];
Settings node = settings.write["input"]["controllerAxisSpeed"];
node->Integer() = value;
}

View File

@ -49,6 +49,7 @@ private slots:
void on_comboBoxLanguage_currentIndexChanged(int index);
void on_buttonCursorType_toggled(bool value);
void on_pushButtonTranslation_clicked();
void on_pushButtonResetTutorialTouchscreen_clicked();
void on_buttonRepositoryDefault_toggled(bool value);
void on_buttonRepositoryExtra_toggled(bool value);
void on_lineEditRepositoryExtra_textEdited(const QString &arg1);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -238,7 +233,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
@ -298,179 +293,179 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the following dependencies are not present</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the following mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -479,40 +474,40 @@ Encountered errors:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation type="unfinished"></translation>
</message>
@ -520,94 +515,94 @@ Install successfully downloaded?</source>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation type="unfinished"></translation>
@ -621,102 +616,112 @@ Install successfully downloaded?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation type="unfinished"></translation>
</message>
@ -726,112 +731,112 @@ Install successfully downloaded?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation type="unfinished"></translation>
</message>
@ -841,7 +846,7 @@ Install successfully downloaded?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -852,92 +857,92 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
@ -1094,11 +1099,6 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<source>VCMI on Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1157,84 +1157,110 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation>Notre communauté</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation>VCMI sur Slack</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -247,7 +242,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation>Description</translation>
</message>
@ -302,184 +297,188 @@
<translation>Abandonner</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation>Nom du mod</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation>Version installée</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation>Dernière version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation>Taille</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation>Taille de téléchargement</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation>Auteur(s)</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation>Licence</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation>Contact</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation>Compatibilité</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation>Version requise de VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation>Version supportée de VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation>veuillez mettre à jour le mod</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation>Index du dépôt de mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation>ou plus récente</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation>Versions supportées de VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation>Langues</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation>Mods requis</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation>Mods en conflit</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the following dependencies are not present</source>
<translation>Ce mod ne peut pas être installé ou activé car les dépendances suivantes ne sont pas présents
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</source>
<translation>Ce mod ne peut pas être installé ou activé, car les dépendances suivantes sont incompatibles avec lui
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the following mods</source>
<translation>Ce mod ne peut pas être désactivé car il est requis pour les dépendances suivantes
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
<translation>Ce mod ne peut pas être désinstallé ou mis à jour car il est requis pour les dépendances suivantes
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
<translation>Ce sous-mod ne peut pas être installé ou mis à jour séparément du mod parent
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation>Notes</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation>Tous les fichiers supportés</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation>Cartes</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation>Campagnes</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation>Configurations</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation>Mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation>Sélectionner les fichiers à installer (configurations, mods, cartes, campagnes)...</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation>Remplacer le fichier de configuration?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation>Voulez vous remplacer %1 ?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation>Téléchargement %s%. %p% (%v MB sur %m MB) terminé</translation>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation type="vanished">Téléchargement %s%. %p% (%v MB sur %m MB) terminé</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation>Téléchargement échoué</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -492,7 +491,7 @@ Erreur rencontrées:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
@ -501,34 +500,34 @@ Install successfully downloaded?</source>
Installer les téchargements réussis?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation>Installer le mod %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation>Opération échouée</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation>Erreurs rencontrées:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation>captures d&apos;écran</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation>Impression écran %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation>Ce mod est incompatible</translation>
</message>
@ -536,94 +535,94 @@ Installer les téchargements réussis?</translation>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation>Impossible d&apos;installer le sous-mod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation>Le mod est déjà installé</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation>Impossible de désinstaller le sousmod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation>Le mod n&apos;est pas installé</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation>Mod déjà activé</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation>Le mode doit d&apos;abord être installé</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation>Mod non compatible, veuillez mettre à jour VCMI et vérifier la dernière revision du mod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation>Le mod requis %1 est manquant</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation>Le mod requis %1 n&apos;est pas activé</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation>Ce mod rentre en conflit avec %1</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation>Mod déjà désactivé</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation>Le mod est requis pour lancer %1</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation>Archive du mod manquante</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation>Un mod avec le même nom est déjà installé</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation>L&apos;archive du mod est invalide ou corrompue</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation>Echec de l&apos;extraction des données du mod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation>Les données de ce mod n&apos;ont pas étés trouvées</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation>Le mod est placé dans un dossier protégé, veuillez le supprimer manuellement:
@ -638,7 +637,7 @@ Installer les téchargements réussis?</translation>
<translation>Désactivé</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation>Intelligence Artificielle</translation>
</message>
@ -652,142 +651,152 @@ Installer les téchargements réussis?</translation>
<translation>Activé</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation>IA ennemie dans les batailles</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation>Dépôt par défaut</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation>Synchronisation verticalle</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="540"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -804,52 +813,52 @@ Mode fenêtré sans bord - le jeu s&quot;exécutera dans une fenêtre qui couvre
Mode exclusif plein écran - le jeu couvrira l&quot;intégralité de votre écran et utilisera la résolution sélectionnée.</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation>Fenêtré</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation>Fenêtré sans bord</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation>Plein écran exclusif</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation>Zone d&apos;écran réservée</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation>IA neutre dans les batailles</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation>Limite de sauvegarde auto (0 = désactivé)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation>Ennemis de la carte d&quot;aventure</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation>Préfix de sauvegarde auto.</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation>vide = prefix du nom de carte</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation>Mise à l&quot;échelle de l&quot;interface</translation>
</message>
@ -862,7 +871,7 @@ Mode exclusif plein écran - le jeu couvrira l&quot;intégralité de votre écra
<translation type="vanished">Langue des Données de Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation>Limite de fréquence d&quot;images</translation>
</message>
@ -875,42 +884,42 @@ Mode exclusif plein écran - le jeu couvrira l&quot;intégralité de votre écra
<translation type="vanished">Logiciel</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation>Moteur de rendu</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation>Traduction de Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation>Alliés de la carte d&quot;aventure</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation>Dépôt supplémentaire</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation>Vérifier au démarrage</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation>Actualiser maintenant</translation>
</message>
@ -919,72 +928,72 @@ Mode exclusif plein écran - le jeu couvrira l&quot;intégralité de votre écra
<translation type="vanished">IA amicale dans les batailles</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation>Plein écran</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation>Général</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation>Langue de VCMI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation>Résolution</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation>Sauvegarde automatique</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation>Index d&apos;affichage</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation>Port de réseau</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation>Vidéo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation>Montrer l&apos;intro</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation>Actif</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation>Désactivé</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation>Activé</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation>Pas Installé</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation>Installer</translation>
</message>
@ -1110,11 +1119,6 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<source>VCMI on Github</source>
<translation>VCMI sur Github</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation>VCMI sur Slack</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1234,49 +1238,54 @@ Heroes® of Might and Magic® III HD n&quot;est actuellement pas pris en charge
<translation>Installer une version compatible de &quot;In The Wake of Gods&quot;, une extension Heroes III créée par des fans</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation>Installation de Heroes III trouvée!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation>Copier le dossier data dans le dossier VCMI ?</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation>Sélectionner le fichier %1...</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation>Vous avez sélectionné le fichier %1 !</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation>Fichier GOG (*.*)</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation>Sélection de fichier</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation>Fichier sélectionné non valide</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation>Installateur GOG</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation>Données GOG</translation>
</message>
@ -1285,39 +1294,60 @@ Heroes® of Might and Magic® III HD n&quot;est actuellement pas pris en charge
<translation type="vanished">Installation... Veuillez patienter!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation>Pas de données Heroes III!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation>Les fichiers sélectionnés ne contiennent pas les données de Heroes III !</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation>Données Heroes III introuvables !</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation>Impossible de détecter des données Heroes III valides dans le répertoire choisi,
Veuillez selectionner un dossier ou les données de Heroes III sont présentes.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Les fichiers de Heroes III HD Edition ne sont pas supportés par VCMI.
Veuillez sélectionner un dossier contenant les données de Heroes III: Complete Edition ou Heroes III: Shadow of Death.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Version inconnue ou non supportée de Heroes III.

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation>Unsere Gemeinschaft</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation>VCMI auf Slack</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -242,7 +237,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation>Beschreibung</translation>
</message>
@ -302,179 +297,183 @@
<translation>Abbrechen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation>Mod-Name</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation>Installierte Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation>Letzte Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation>Größe</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation>Downloadgröße</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation>Autoren</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation>Lizenz</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation>Kontakt</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation>Kompatibilität</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation>Benötigte VCMI Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation>Unterstützte VCMI Version</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation>bitte Mod upgraden</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation>Mod Verzeichnis Index</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation>oder neuer</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation>Unterstützte VCMI Versionen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation>Sprachen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation>Benötigte Mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation>Mods mit Konflikt</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the 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="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</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="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the 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="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the 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="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its 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="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation>Anmerkungen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation>Alle unterstützten Dateien</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation>Karten</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation>Kampagnen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation>Konfigurationen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation>Mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation>Wähle Dateien (Konfigurationen, Mods, Karten, Kampagnen) zum installieren...</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation>Konfigurationsdatei ersetzen?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation>Soll %1 ersetzt werden?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation>Herunterladen von %s%. %p% (%v MB von %m MB) beendet</translation>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation>Downloade %1. %p% (%v MB von %m MB) abgeschlossen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation type="vanished">Herunterladen von %s%. %p% (%v MB von %m MB) beendet</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation>Download fehlgeschlagen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -487,7 +486,7 @@ Es sind Fehler aufgetreten:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
@ -496,34 +495,34 @@ Install successfully downloaded?</source>
Installation erfolgreich heruntergeladen?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation>Installation von Mod %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation>Operation fehlgeschlagen</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation>Aufgetretene Fehler:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation>Screenshots</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation>Screenshot %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation>Mod ist inkompatibel</translation>
</message>
@ -531,94 +530,94 @@ Installation erfolgreich heruntergeladen?</translation>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation>Submod kann nicht installiert werden</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation>Mod ist bereits installiert</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation>Submod kann nicht deinstalliert werden</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation>Mod ist nicht installiert</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation>Mod ist bereits aktiviert</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation>Mod muss zuerst installiert werden</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation>Mod ist nicht kompatibel, bitte aktualisieren Sie VCMI und überprüfen Sie die neuesten Mod-Versionen</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation>Der erforderliche Mod %1 fehlt</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation>Erforderliche Mod %1 ist nicht aktiviert</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation>Diese Mod steht im Konflikt mit %1</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation>Mod ist bereits deaktiviert</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation>Diese Mod wird benötigt, um %1 auszuführen</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation>Mod-Archiv fehlt</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation>Mod mit diesem Namen ist bereits installiert</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation>Mod-Archiv ist ungültig oder beschädigt</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation>Mod-Daten konnten nicht extrahiert werden</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation>Daten mit dieser Mod wurden nicht gefunden</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation>Mod befindet sich im geschützten Verzeichnis, bitte entfernen Sie sie manuell:
@ -633,7 +632,7 @@ Installation erfolgreich heruntergeladen?</translation>
<translation>Aus</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation>Künstliche Intelligenz</translation>
</message>
@ -642,97 +641,107 @@ Installation erfolgreich heruntergeladen?</translation>
<translation type="vanished">Mod-Repositorien</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation>Skalierung der Benutzeroberfläche</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation>Neutrale KI in Kämpfen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation>Gegnerische KI in Kämpfen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation>Zusätzliches Repository</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation>Abenteuerkarte Verbündete</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation>Online-Lobby-Port</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation>Autokampf-KI in Kämpfen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation>Sticks Empfindlichkeit</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation>Haptisches Feedback</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation>Software-Cursor</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation>Adresse der Online-Lobby</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation>Hochskalierungsfilter</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation>Relativen Zeigermodus verwenden</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation>Nearest</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation>Linear</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation>Bester (Linear)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation>Eingabe - Touchscreen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation>Abenteuerkarte Feinde</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation>Zeige Tutorial erneut</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation>Netzwerk</translation>
</message>
@ -742,72 +751,72 @@ Installation erfolgreich heruntergeladen?</translation>
<translation>Audio</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation>Relative Zeigergeschwindigkeit</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation>Musik Lautstärke</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation>SSL-Fehler ignorieren</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation>Eingabe - Maus</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation>Dauer der Berührung für &quot;lange Berührung&quot;</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation>Toleranz bei Controller Klick</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation>Toleranz bei Berührungen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation>Eingabe - Controller</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation>Sound-Lautstärke</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation>Fenstermodus</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation>Randloser Vollbildmodus</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation>Exklusiver Vollbildmodus</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation>Limit für Autospeicherung (0 = aus)</translation>
</message>
@ -816,42 +825,42 @@ Installation erfolgreich heruntergeladen?</translation>
<translation type="vanished">Freundliche KI in Kämpfen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation>Limit der Bildrate</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation>Präfix für Autospeicherung</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation>Toleranz bei Mausklick</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation>Sticks Beschleunigung</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation>leer = Kartenname als Präfix</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation>Jetzt aktualisieren</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation>Standard Repository</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation>Renderer</translation>
</message>
@ -869,7 +878,7 @@ Installation erfolgreich heruntergeladen?</translation>
<translation type="vanished">Sprache der Heroes III Daten</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -886,7 +895,7 @@ Randloser Fenstermodus - das Spiel läuft in einem Fenster, das den gesamten Bil
Exklusiver Vollbildmodus - das Spiel bedeckt den gesamten Bildschirm und verwendet die gewählte Auflösung.</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation>Reservierter Bildschirmbereich</translation>
</message>
@ -899,87 +908,87 @@ Exklusiver Vollbildmodus - das Spiel bedeckt den gesamten Bildschirm und verwend
<translation type="vanished">Software</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation>Heroes III Übersetzung</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation>Beim Start prüfen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation>Vollbild</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation>VCMI-Sprache</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation>Auflösung</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation>Autospeichern</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation>VSync</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation>Anzeige-Index</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation>Netzwerk-Port</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation>Video</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation>Intro anzeigen</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation>Aktiv</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation>Deaktiviert</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation>Aktivieren</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation>Nicht installiert</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation>Installieren</translation>
</message>
@ -1155,11 +1164,6 @@ Der Offline-Installer besteht aus zwei Teilen, .exe und .bin. Stellen Sie sicher
<source>VCMI on Github</source>
<translation>VCMI auf Github</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation>VCMI auf Slack</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1230,49 +1234,54 @@ Der Offline-Installer besteht aus zwei Teilen, .exe und .bin. Stellen Sie sicher
<translation>In The Wake of Gods</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation>Heroes III-Installation gefunden!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation>Daten in den VCMI-Ordner kopieren?</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation>%1 Datei auswählen...</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation>Sie müssen %1 Datei auswählen!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation>GOG Datei (*.*)</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation>Dateiauswahl</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation>Datei kann nicht geöffnet werden</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation>Ungültige Datei ausgewählt</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation>GOG-Installationsprogramm</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation>GOG-Datendatei</translation>
</message>
@ -1281,39 +1290,61 @@ Der Offline-Installer besteht aus zwei Teilen, .exe und .bin. Stellen Sie sicher
<translation type="vanished">Installiert... Bitte warten!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation>Keine Heroes III-Daten!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation>Die ausgewählten Dateien enthalten keine Heroes III-Daten!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation>Heroes III Daten nicht gefunden!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation>Es konnten keine gültigen Heroes III-Daten im gewählten Verzeichnis gefunden werden.
Bitte wählen Sie ein Verzeichnis mit installierten Heroes III-Daten.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation>Es wurde der GOG Galaxy-Installer ausgewählt! Das Spiel ist in dieser Datei nicht enthalten. Lade den Offline-Backup-Installer für das Spiel herunter!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation>Stream-Fehler beim Extrahieren von Dateien!
Fehlerursache: </translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation>Kein unterstütztes Inno Setup Installationsprogramm!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation>Fehler beim Extrahieren!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Heroes III: HD Edition Dateien werden von VCMI nicht unterstützt.
Bitte wählen Sie ein Verzeichnis mit Heroes III: Complete Edition oder Heroes III: Shadow of Death.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Unbekannte oder nicht unterstützte Heroes III-Version gefunden.

File diff suppressed because it is too large Load Diff

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation>Nossa comunidade</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation>VCMI no Slack</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -242,7 +237,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation>Descrição</translation>
</message>
@ -302,179 +297,183 @@
<translation>Cancelar</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation>Nome do mod</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation>Versão instalada</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation>Última versão</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation>Tamanho</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation>Tamanho do download</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation>Autores</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation>Licença</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation>Contato</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation>Compatibilidade</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation>Versão do VCMI requerida</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation>Versão do VCMI suportada</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation>por favor, atualize o mod</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation>índice do repositório de mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation>ou mais recente</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation>Versões do VCMI suportadas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation>Idiomas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation>Mods requeridos</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation>Mods conflitantes</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the following dependencies are not present</source>
<translation>Este mod não pode ser instalado ou ativado porque as seguintes dependências não estão presentes</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</source>
<translation>Este mod não pode ser ativado porque os seguintes mods são incompatíveis com ele</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the following mods</source>
<translation>Este mod não pode ser desativado porque é necessário pelos seguintes mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
<translation>Este mod não pode ser desinstalado ou atualizado porque é necessário pelos seguintes mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
<translation>Este é um submod e não pode ser instalado ou desinstalado separadamente do seu mod principal</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation>Notas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation>Todos os arquivos suportados</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation>Mapas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation>Campanhas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation>Configurações</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation>Mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation>Selecione arquivos (configurações, mods, mapas, campanhas) para instalar...</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation>Substituir arquivo de configuração?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation>Você deseja substituir %1?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation>Baixando %s%. %p% (%v MB de %m MB) completado</translation>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation type="vanished">Baixando %s%. %p% (%v MB de %m MB) completado</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation>Falha no download</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -487,7 +486,7 @@ Encontrados os seguintes erros:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
@ -496,34 +495,34 @@ Install successfully downloaded?</source>
Instalar o download realizado com sucesso?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation>Instalando mod %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation>Falha na operação</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation>Erros encontrados:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation>capturas de tela</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation>Captura de tela %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation>O mod é incompatível</translation>
</message>
@ -531,94 +530,94 @@ Instalar o download realizado com sucesso?</translation>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation>Não é possível instalar o submod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation>O mod está instalado</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation>Não é possível desinstalar o submod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation>O mod não está instalado</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation>O mod está ativado</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation>O mod deve ser instalado primeiro</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation>O mod não é compatível, por favor, atualize o VCMI e verifique as últimas revisões do mod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation>O mod necessário %1 está faltando</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation>O mod necessário %1 não está ativado</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation>Este mod entra em conflito com %1</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation>O mod está desativado</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation>Este mod é necessário para executar %1</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation>O arquivo do mod está faltando</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation>Um mod com esse nome está instalado</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation>O arquivo do mod é inválido ou está corrompido</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation>Falha ao extrair os dados do mod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation>Não foram encontrados dados com este mod</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation>O mod está localizado em um diretório protegido, por favor, remova-o manualmente:
@ -633,7 +632,7 @@ Instalar o download realizado com sucesso?</translation>
<translation>Desativado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation>Inteligência Artificial</translation>
</message>
@ -642,97 +641,107 @@ Instalar o download realizado com sucesso?</translation>
<translation type="vanished">Repositórios de Mods</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation>Escala da Interface</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation>IA neutra nas batalhas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation>IA inimiga em batalhas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation>Repositório adicional</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation>Aliados do Mapa de Aventura</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation>Porta da Sala de Espera On-line</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation>IA de combate automático nas batalhas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation>Sensibilidade dos Analógicos</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation>Resposta Tátil</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation>Cursor por Software</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation>Endereço da Sala de Espera On-line</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation>Filtro de Aumento de Escala</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation>Usar Modo de Ponteiro Relativo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation>Mais Próximo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation>Linear</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation>Melhor (Linear)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation>Entrada - Tela de Toque</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation>Inimigos do Mapa de Aventura</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation>Linear</translation>
</message>
@ -742,72 +751,72 @@ Instalar o download realizado com sucesso?</translation>
<translation>Áudio</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation>Velocidade do Ponteiro Relativo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation>Volume da Música</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation>Ignorar erros SSL</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation>Entrada - Mouse</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation>Duração do Toque Longo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation>Tolerância de Clique do Controle</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation>Tolerância de Toque Tátil</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation>Entrada - Controle</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation>Volume do Som</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation>Janela</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation>Tela cheia sem bordas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation>Tela cheia exclusiva</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation>Limite de salvamento automático (0 = sem limite)</translation>
</message>
@ -816,42 +825,42 @@ Instalar o download realizado com sucesso?</translation>
<translation type="vanished">IA amigável nas batalhas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation>Limite de Taxa de Quadros</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation>Prefixo do salvamento automático</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation>Tolerância de Clique do Mouse</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation>Aceleração dos Analógicos</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation>vazio = prefixo do mapa</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation>Atualizar</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation>Repositório padrão</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation>Renderizador</translation>
</message>
@ -869,7 +878,7 @@ Instalar o download realizado com sucesso?</translation>
<translation type="vanished">Idioma dos Dados do Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -886,7 +895,7 @@ Modo de janela sem bordas - o jogo será executado em uma janela que cobre toda
Modo de tela cheia exclusivo - o jogo cobrirá toda a sua tela e usará a resolução selecionada.</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation>Área de tela reservada</translation>
</message>
@ -899,87 +908,87 @@ Modo de tela cheia exclusivo - o jogo cobrirá toda a sua tela e usará a resolu
<translation type="vanished">Software</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation>Tradução do Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation>Verificar na inicialização</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation>Tela cheia</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation>Idioma do VCMI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation>Resolução</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation>Salvar automaticamente</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation>VSync</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation>Índice de exibição</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation>Porta de rede</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation>Vídeo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation>Mostrar introdução</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation>Ativo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation>Desativado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation>Ativar</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation>Não Instalado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation>Instalar</translation>
</message>
@ -1155,11 +1164,6 @@ O instalador offline consiste em duas partes, .exe e .bin. Certifique-se de baix
<source>VCMI on Github</source>
<translation>VCMI no Github</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation>VCMI no Slack</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1230,49 +1234,54 @@ O instalador offline consiste em duas partes, .exe e .bin. Certifique-se de baix
<translation>In The Wake of Gods</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation>Instalação do Heroes III encontrada!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation>Copiar dados para a pasta do VCMI?</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation>Selecionar arquivo %1...</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation>Você precisa selecionar o arquivo %1!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation>Arquivo GOG (*.*)</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation>Seleção de arquivo</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation>Arquivo selecionado inválido</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation>Instalador GOG</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation>Dados do GOG</translation>
</message>
@ -1281,39 +1290,60 @@ O instalador offline consiste em duas partes, .exe e .bin. Certifique-se de baix
<translation type="vanished">Instalando... Por favor, aguarde!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation>Nenhum dado do Heroes III!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation>Os arquivos selecionados não contêm dados do Heroes III!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation>Dados do Heroes III não encontrados!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation>Falha ao detectar dados válidos do Heroes III no diretório escolhido.
Por favor, selecione o diretório com os dados do Heroes III instalados.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Arquivos do Heroes III: HD Edition não são suportados pelo VCMI.
Por favor, selecione o diretório com Heroes III: Complete Edition ou Heroes III: Shadow of Death.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Versão desconhecida ou não suportada do Heroes III encontrada.

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation type="unfinished">VCMI в Slack</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -242,7 +237,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation>Описание</translation>
</message>
@ -302,179 +297,179 @@
<translation>Отмена</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation>Название мода</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation>Установленная версия</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation>Последняя версия</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation>Размер загрузки</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation>Авторы</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation>Лицензия</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation>Контакты</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation>Совместимость</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation>Требуемая версия VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation>Поддерживаемая версия VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation>Поддерживаемые версии VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation>Языки</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation>Зависимости</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation>Конфликтующие моды</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the following dependencies are not present</source>
<translation>Этот мод не может быть установлен или активирован, так как отсутствуют следующие зависимости</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</source>
<translation>Этот мод не может быть установлен или активирован, так как следующие моды несовместимы с этим</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the following mods</source>
<translation>Этот мод не может быть выключен, так как он является зависимостью для следующих</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
<translation>Этот мод не может быть удален или обновлен, так как является зависимостью для следующих модов</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
<translation>Это вложенный мод, он не может быть установлен или удален отдельно от родительского</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation>Замечания</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation type="unfinished">Моды</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -483,40 +478,40 @@ Encountered errors:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation>Скриншот %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation>Мод несовместим</translation>
</message>
@ -524,94 +519,94 @@ Install successfully downloaded?</source>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation type="unfinished"></translation>
@ -620,7 +615,7 @@ Install successfully downloaded?</source>
<context>
<name>CSettingsView</name>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation type="unfinished"></translation>
</message>
@ -635,37 +630,37 @@ Install successfully downloaded?</source>
<translation>Включено</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation>Проверять при запуске</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation>Полноэкранный режим</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation>Общее</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation>Язык VCMI</translation>
</message>
@ -674,7 +669,7 @@ Install successfully downloaded?</source>
<translation type="vanished">Курсор</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation>Искусственный интеллект</translation>
</message>
@ -683,202 +678,212 @@ Install successfully downloaded?</source>
<translation type="vanished">Репозитории модов</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="540"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation type="unfinished"></translation>
</message>
@ -887,7 +892,7 @@ Install successfully downloaded?</source>
<translation type="vanished">Язык данных Героев III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -906,62 +911,62 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
<translation type="vanished">Программный</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation>Перевод Героев III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation>Разрешение экрана</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation>Автосохранение</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation>Дисплей</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation>Сетевой порт</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation>Графика</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation>Вступление</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation>Активен</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation>Отключен</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation>Включить</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation>Не установлен</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation>Установить</translation>
</message>
@ -1136,11 +1141,6 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<source>VCMI on Github</source>
<translation>VCMI в Github</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation>VCMI в Slack</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1207,84 +1207,110 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<translation></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation>Nuestra comunidad</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation>VCMI en Slack</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -242,7 +237,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation>Descripción</translation>
</message>
@ -302,179 +297,183 @@
<translation>Cancelar</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation>Nombre del mod</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation>Versión instalada</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation>Última versión</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation>Tamaño</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation>Tamaño de descarga</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation>Autores</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation>Licencia</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation>Contacto</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation>Compatibilidad</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation>Versión de VCMI requerida</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation>Versión de VCMI compatible</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation>Versiones de VCMI compatibles</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation>Idiomas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation>Mods requeridos</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation>Mods conflictivos</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the following dependencies are not present</source>
<translation>Este mod no se puede instalar o habilitar porque no están presentes las siguientes dependencias</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</source>
<translation>Este mod no se puede habilitar porque los siguientes mods son incompatibles con él</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the following mods</source>
<translation>No se puede desactivar este mod porque es necesario para ejecutar los siguientes mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
<translation>No se puede desinstalar o actualizar este mod porque es necesario para ejecutar los siguientes mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
<translation>Este es un submod y no se puede instalar o desinstalar por separado del mod principal</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation>Notas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation type="unfinished">Mapas</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation type="unfinished">Mods</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation>Descargando %s%. %p% (%v MB de %m MB) completado</translation>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation type="vanished">Descargando %s%. %p% (%v MB de %m MB) completado</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation>Descarga fallida</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -487,7 +486,7 @@ Errores encontrados:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
@ -496,34 +495,34 @@ Install successfully downloaded?</source>
Instalar lo correctamente descargado?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation>Instalando mod %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation>Operación fallida</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation>Errores encontrados:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation>Captura de pantalla %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation>El mod es incompatible</translation>
</message>
@ -531,94 +530,94 @@ Instalar lo correctamente descargado?</translation>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation type="unfinished"></translation>
@ -632,7 +631,7 @@ Instalar lo correctamente descargado?</translation>
<translation>Desactivado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation>Inteligencia Artificial</translation>
</message>
@ -641,97 +640,107 @@ Instalar lo correctamente descargado?</translation>
<translation type="vanished">Repositorios de Mods</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation>Escala de la interfaz</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation>IA neutral en batallas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation>IA enemiga en batallas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation>Repositorio adicional</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation>Aliados en el Mapa de aventuras</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation>Enemigos en el Mapa de aventuras</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation type="unfinished"></translation>
</message>
@ -741,72 +750,72 @@ Instalar lo correctamente descargado?</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation>Ventana</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation>Ventana completa sin bordes</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation>Pantalla completa</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation>Límite de autosaves (0 = sin límite)</translation>
</message>
@ -815,42 +824,42 @@ Instalar lo correctamente descargado?</translation>
<translation type="vanished">IA amistosa en batallas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation>Límite de fotogramas</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation>Prefijo autoguardado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation>Vacio = prefijo del mapa</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation>Actualizar</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation>Repositorio por defecto</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation>Render</translation>
</message>
@ -864,62 +873,62 @@ Instalar lo correctamente descargado?</translation>
<translation type="vanished">Cursor</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation>Traducción de Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation>Área de pantalla reservada</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation>Pantalla completa</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation>Idioma de VCMI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation>Resolución</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation>Autoguardado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation>Sincronización vertical</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation>Mostrar índice</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation>Puerto de red</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation>Vídeo</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -944,12 +953,12 @@ Pantalla completa - el juego cubrirá la totalidad de la pantalla y utilizará l
<translation type="vanished">Software</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation>Mostrar introducción</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation>Comprovar al inicio</translation>
</message>
@ -958,27 +967,27 @@ Pantalla completa - el juego cubrirá la totalidad de la pantalla y utilizará l
<translation type="vanished">Idioma de los datos de Heroes III.</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation>Activado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation>Desactivado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation>Activar</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation>No Instalado</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation>Instalar</translation>
</message>
@ -1033,11 +1042,6 @@ Pantalla completa - el juego cubrirá la totalidad de la pantalla y utilizará l
<source>VCMI on Github</source>
<translation>VCMI en Github</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation>VCMI en Slack</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1224,84 +1228,110 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<translation>Finalizar</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation>Instalación de Heroes III encontrada!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation>Copiar datos a la carpeta VCMI?</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation>Наша спільнота</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation>VCMI на Slack</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -242,7 +237,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation>Опис</translation>
</message>
@ -302,179 +297,183 @@
<translation>Відмінити</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation>Назва модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation>Встановлена версія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation>Найновіша версія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation>Розмір</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation>Розмір для завантаження</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation>Автори</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation>Ліцензія</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation>Контакти</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation>Сумісність</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation>Необхідна версія VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation>Підтримувана версія VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation>будь ласка, оновіть модифікацію</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation>каталог модифікацій</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation>або новіше</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation>Підтримувані версії VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation>Мови</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation>Необхідні модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation>Конфліктуючі модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the following dependencies are not present</source>
<translation>Цю модифікацію не можна встановити чи активувати, оскільки відсутні наступні залежності</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</source>
<translation>Цю модифікацію не можна ввімкнути, оскільки наступні модифікації несумісні з цією модифікацією</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the following mods</source>
<translation>Цю модифікацію не можна відключити, оскільки вона необхідна для запуску наступних модифікацій</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
<translation>Цю модифікацію не можна видалити або оновити, оскільки вона необхідна для запуску наступних модифікацій</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
<translation>Це вкладена модифікація, і її не можна встановити або видалити окремо від батьківської модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation>Примітки</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation>Усі підтримувані файли</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation>Мапи</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation>Кампанії</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation>Налаштування</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation>Модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation>Виберіть файли ( налаштування, моди, мапи, кампанії) для встановлення...</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation>Замінити файл налаштувань?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation>Ви дійсно хочете замінити %1?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation>Завантажуємо %s%. %p% (%v МБ з %m Мб) виконано</translation>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation>Завантажується %1. %p% (%v MB з %m MB) завершено</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<translation type="vanished">Завантажуємо %s%. %p% (%v МБ з %m Мб) виконано</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation>Помилка завантаження</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -487,7 +486,7 @@ Encountered errors:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
@ -496,34 +495,34 @@ Install successfully downloaded?</source>
Встановити успішно завантажені?</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation>Встановлення модифікації %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation>Операція завершилася невдало</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation>Виникли помилки:
</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation>знімки екрану</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation>Знімок екрану %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation>Модифікація несумісна</translation>
</message>
@ -531,94 +530,94 @@ Install successfully downloaded?</source>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation>Неможливо встановити вкладену модифікацію</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation>Модифікація вже встановлена</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation>Неможливо видалити вкладену модифікацію</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation>Модифікація не встановлена</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation>Модифікація вже увімкнена</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation>Спочатку потрібно встановити модифікацію</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation>Модифікація несумісна, будь ласка, оновіть VCMI та перевірте останні версії модифікацій</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation>Необхідна модифікація %1 відсутня</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation>Необхідну модифікацію %1 не ввімкнено</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation>Ця модифікація несумісна з %1</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation>Модифікацію вже вимкнено</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation>Ця модифікація необхідна для запуску %1</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation>Архів з модифікацією відсутній</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation>Модифікацію з такою назвою вже встановлено</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation>Архів модифікації непридатний або пошкоджений</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation>Не вдалося видобути дані модифікації</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation>Дані з цією модифікацією не знайдено</translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation>Модифікація знаходиться в захищеному каталозі, будь ласка, видаліть її вручну:
@ -633,7 +632,7 @@ Install successfully downloaded?</source>
<translation>Ні</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation>Штучний інтелект</translation>
</message>
@ -642,97 +641,107 @@ Install successfully downloaded?</source>
<translation type="vanished">Репозиторії модифікацій</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation>Масштабування інтерфейсу</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation>Нейтральний ШІ в боях</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation>Ворожий ШІ в боях</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation>Додатковий репозиторій</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation>Союзники на мапі пригод</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation>Порт онлайн лобі</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation>ШІ автобою</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation>Чутливість стиків</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation>Програмний курсор</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation>Адреса онлайн-лобі</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation>Фільтр масштабування</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation>Режим відносного вказівника</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation>Найближчий</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation>Лінійний</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation>Найкращий (лінійний)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation>Введення - Сенсорний екран</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation>Вороги на мапі пригод</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation>Повторно показати навчання</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation>Скинути</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation>Мережа</translation>
</message>
@ -742,72 +751,72 @@ Install successfully downloaded?</source>
<translation>Аудіо</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation>Швидкість відносного вказівника</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation>Гучність музики</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation>Ігнорувати помилки SSL</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation>Введення - Миша</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation>Тривалість довгого дотику</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation>Допуск на натискання контролера</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation>Допуск на натискання дотиком</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation>Введення - Контролер</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation>Гучність звуку</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation>У вікні</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation>Повноекранне вікно</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation>Повноекранний (ексклюзивно)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation>Кількість автозбережень</translation>
</message>
@ -816,42 +825,42 @@ Install successfully downloaded?</source>
<translation type="vanished">Дружній ШІ в боях</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation>Обмеження частоти кадрів</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation>Префікс назв автозбережень</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation>Допуск кліків миші</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation>Прискорення стиків</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation>(використовувати назву карти)</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation>Оновити зараз</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation>Стандартний репозиторій</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation>Рендерер</translation>
</message>
@ -869,7 +878,7 @@ Install successfully downloaded?</source>
<translation type="vanished">Мова Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -886,7 +895,7 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
Повноекранний ексклюзивний режим - гра займатиме весь екран і використовуватиме вибрану роздільну здатність.</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation>Зарезервована зона екрану</translation>
</message>
@ -899,87 +908,87 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
<translation type="vanished">Програмний</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation>Переклад Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation>Перевіряти на старті</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation>Повноекранний режим</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation>Загальні налаштування</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation>Мова VCMI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation>Роздільна здатність</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation>Автозбереження</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation>Вертикальна синхронізація</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation>Дісплей</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation>Мережевий порт</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation>Графіка</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation>Вступні відео</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation>Активні</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation>Деактивований</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation>Активувати</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation>Не встановлено</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation>Встановити</translation>
</message>
@ -1155,11 +1164,6 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<source>VCMI on Github</source>
<translation>VCMI на Github</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation>VCMI на Slack</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1230,49 +1234,54 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<translation>In The Wake of Gods</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation>Інсталяцію Heroes III знайдено!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation>Скопіювати дані до теки VCMI?</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation>Оберіть файл %1...</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation>Ви повинні обрати файл %1!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation>Файл GOG (*.*)</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation>Вибір файлу</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation>Не вдається відкрити файл</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation>Обрано невірний файл</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation>Інсталятор GOG</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation>Дані GOG</translation>
</message>
@ -1281,39 +1290,61 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<translation type="vanished">Встановлення... Зачекайте!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation>Немає файлів даних Heroes III!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation>Обрані файли не містять файлів з грою Heroes III!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation>Файли даних Heroes III не знайдено!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation>Не вдалося виявити файли Heroes III у вибраному каталозі.
Будь ласка, виберіть теку зі встановленими даними Heroes III.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation>Ви надали інсталятор GOG Galaxy! Цей файл не містить гри. Будь ласка, завантажте резервну копію інсталятора гри!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation>Помилка потоку під час розпакування файлів!
причина помилки: </translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation>Не підтримуваний інсталятор Inno Setup!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation>Помилка видобування!</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Файли Heroes III: HD Edition не підтримуються VCMI.
Будь ласка, виберіть теку з Heroes III: Complete Edition або Heroes III: Shadow of Death.</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation>Знайдено невідому або не підтримувану версію Heroes III.

View File

@ -23,11 +23,6 @@
<source>Our Community</source>
<translation>Cộng đng</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="61"/>
<source>VCMI on Slack</source>
<translation>VCMI trên Slack</translation>
</message>
<message>
<location filename="../aboutProject/aboutproject_moc.ui" line="227"/>
<source>Build Information</source>
@ -242,7 +237,7 @@
</message>
<message>
<location filename="../modManager/cmodlistview_moc.ui" line="163"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="349"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<source>Description</source>
<translation> tả</translation>
</message>
@ -302,179 +297,179 @@
<translation>Hủy</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="283"/>
<source>Mod name</source>
<translation>Tên bản sửa đi</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="284"/>
<source>Installed version</source>
<translation>Phiên bản cài đt</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="286"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="285"/>
<source>Latest version</source>
<translation>Phiên bản mới nhất</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="289"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="288"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="291"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="290"/>
<source>Download size</source>
<translation>Kích thước tải về</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="293"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
<source>Authors</source>
<translation>Tác giả</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="296"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="295"/>
<source>License</source>
<translation>Giấy phép</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="299"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="298"/>
<source>Contact</source>
<translation>Liên hệ</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="308"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="307"/>
<source>Compatibility</source>
<translation>Tương thích</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="310"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="309"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>Required VCMI version</source>
<translation>Cần phiên bản VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>Supported VCMI version</source>
<translation>Hỗ trợ phiên bản VCMI</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="316"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="315"/>
<source>please upgrade mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="188"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="803"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="187"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="802"/>
<source>mods repository index</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="318"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="317"/>
<source>or newer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="321"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="320"/>
<source>Supported VCMI versions</source>
<translation>Phiên bản VCMI hỗ trợ</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="345"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="344"/>
<source>Languages</source>
<translation>Ngôn ngữ</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="346"/>
<source>Required mods</source>
<translation>Cần các bản sửa đi</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="348"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="347"/>
<source>Conflicting mods</source>
<translation>Bản sửa đi không tương thích</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="352"/>
<source>This mod can not be installed or enabled because the following dependencies are not present</source>
<translation>Bản sửa đi này không thể cài đt hoặc kích hoạt do thiếu các bản sửa đi sau</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="353"/>
<source>This mod can not be enabled because the following mods are incompatible with it</source>
<translation>Bản sửa đi này không thể kích hoạt do không tương thích các bản sửa đi sau</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="354"/>
<source>This mod cannot be disabled because it is required by the following mods</source>
<translation>Bản sửa đi này không thể tắt do cần thiết cho các bản sửa đi sau</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="355"/>
<source>This mod cannot be uninstalled or updated because it is required by the following mods</source>
<translation>Bản sửa đi này không thể gỡ bỏ hoặc nâng cấp do cần thiết cho các bản sửa đi sau</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="357"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="356"/>
<source>This is a submod and it cannot be installed or uninstalled separately from its parent mod</source>
<translation>Đây bản con, không thể cài đt hoặc gỡ bỏ tách biệt với bản cha</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="372"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="371"/>
<source>Notes</source>
<translation>Ghi chú</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>All supported files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Campaigns</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Configs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="633"/>
<source>Mods</source>
<translation type="unfinished">Bản sửa đi</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="635"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="634"/>
<source>Select files (configs, mods, maps, campaigns) to install...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Replace config file?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="661"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="658"/>
<source>Do you want to replace %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="700"/>
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
<location filename="../modManager/cmodlistview_moc.cpp" line="701"/>
<source>Downloading %1. %p% (%v MB out of %m MB) finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="726"/>
<source>Download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="727"/>
<source>Unable to download all files.
Encountered errors:
@ -483,40 +478,40 @@ Encountered errors:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="729"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="728"/>
<source>
Install successfully downloaded?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
<source>Installing mod %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="943"/>
<source>Operation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="945"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="944"/>
<source>Encountered errors:
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="974"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="973"/>
<source>screenshots</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="980"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="979"/>
<source>Screenshot %1</source>
<translation>Hình nh %1</translation>
</message>
<message>
<location filename="../modManager/cmodlistview_moc.cpp" line="279"/>
<location filename="../modManager/cmodlistview_moc.cpp" line="278"/>
<source>Mod is incompatible</source>
<translation>Bản sửa đi này không tương thích</translation>
</message>
@ -524,94 +519,94 @@ Install successfully downloaded?</source>
<context>
<name>CModManager</name>
<message>
<location filename="../modManager/cmodmanager.cpp" line="162"/>
<location filename="../modManager/cmodmanager.cpp" line="168"/>
<source>Can not install submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="165"/>
<location filename="../modManager/cmodmanager.cpp" line="171"/>
<source>Mod is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="174"/>
<location filename="../modManager/cmodmanager.cpp" line="180"/>
<source>Can not uninstall submod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="177"/>
<location filename="../modManager/cmodmanager.cpp" line="183"/>
<source>Mod is not installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="187"/>
<location filename="../modManager/cmodmanager.cpp" line="193"/>
<source>Mod is already enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="190"/>
<location filename="../modManager/cmodmanager.cpp" line="233"/>
<location filename="../modManager/cmodmanager.cpp" line="196"/>
<location filename="../modManager/cmodmanager.cpp" line="239"/>
<source>Mod must be installed first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="194"/>
<location filename="../modManager/cmodmanager.cpp" line="200"/>
<source>Mod is not compatible, please update VCMI and checkout latest mod revisions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="199"/>
<location filename="../modManager/cmodmanager.cpp" line="205"/>
<source>Required mod %1 is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="204"/>
<location filename="../modManager/cmodmanager.cpp" line="210"/>
<source>Required mod %1 is not enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="213"/>
<location filename="../modManager/cmodmanager.cpp" line="220"/>
<location filename="../modManager/cmodmanager.cpp" line="219"/>
<location filename="../modManager/cmodmanager.cpp" line="226"/>
<source>This mod conflicts with %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="230"/>
<location filename="../modManager/cmodmanager.cpp" line="236"/>
<source>Mod is already disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="240"/>
<location filename="../modManager/cmodmanager.cpp" line="246"/>
<source>This mod is needed to run %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="282"/>
<location filename="../modManager/cmodmanager.cpp" line="288"/>
<source>Mod archive is missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="285"/>
<location filename="../modManager/cmodmanager.cpp" line="291"/>
<source>Mod with such name is already installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="290"/>
<location filename="../modManager/cmodmanager.cpp" line="296"/>
<source>Mod archive is invalid or corrupted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="316"/>
<location filename="../modManager/cmodmanager.cpp" line="322"/>
<source>Failed to extract mod data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="344"/>
<location filename="../modManager/cmodmanager.cpp" line="350"/>
<source>Data with this mod was not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../modManager/cmodmanager.cpp" line="348"/>
<location filename="../modManager/cmodmanager.cpp" line="354"/>
<source>Mod is located in protected directory, please remove it manually:
</source>
<translation type="unfinished"></translation>
@ -625,7 +620,7 @@ Install successfully downloaded?</source>
<translation>Tắt</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="452"/>
<location filename="../settingsView/csettingsview_moc.ui" line="309"/>
<source>Artificial Intelligence</source>
<translation>Trí tuệ nhân tạo</translation>
</message>
@ -634,97 +629,107 @@ Install successfully downloaded?</source>
<translation type="vanished">Nguồn bản sửa đi</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="714"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1080"/>
<source>Interface Scaling</source>
<translation>Phóng đi giao diện</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="672"/>
<location filename="../settingsView/csettingsview_moc.ui" line="930"/>
<source>Neutral AI in battles</source>
<translation>Máy hoang trong trận đánh</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
<location filename="../settingsView/csettingsview_moc.ui" line="742"/>
<source>Enemy AI in battles</source>
<translation>Máy đi thủ trong trận đánh</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
<location filename="../settingsView/csettingsview_moc.ui" line="826"/>
<source>Additional repository</source>
<translation>Nguồn bổ sung</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="507"/>
<location filename="../settingsView/csettingsview_moc.ui" line="937"/>
<source>Adventure Map Allies</source>
<translation>Máy liên minh bản đ phiêu lưu</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="59"/>
<location filename="../settingsView/csettingsview_moc.ui" line="492"/>
<source>Online Lobby port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="66"/>
<location filename="../settingsView/csettingsview_moc.ui" line="333"/>
<source>Autocombat AI in battles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
<location filename="../settingsView/csettingsview_moc.ui" line="354"/>
<source>Sticks Sensitivity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="87"/>
<location filename="../settingsView/csettingsview_moc.ui" line="803"/>
<source>Haptic Feedback</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="94"/>
<location filename="../settingsView/csettingsview_moc.ui" line="840"/>
<source>Software Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="108"/>
<location filename="../settingsView/csettingsview_moc.ui" line="139"/>
<source>Online Lobby address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
<location filename="../settingsView/csettingsview_moc.ui" line="899"/>
<source>Upscaling Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="122"/>
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
<source>Use Relative Pointer Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="195"/>
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
<source>Nearest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="200"/>
<location filename="../settingsView/csettingsview_moc.ui" line="617"/>
<source>Linear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="205"/>
<location filename="../settingsView/csettingsview_moc.ui" line="622"/>
<source>Best (Linear)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="231"/>
<location filename="../settingsView/csettingsview_moc.ui" line="755"/>
<source>Input - Touchscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="440"/>
<location filename="../settingsView/csettingsview_moc.ui" line="906"/>
<source>Adventure Map Enemies</source>
<translation>Máy đi thủ bản đ phiêu lưu</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="474"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1152"/>
<source>Show Tutorial again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1159"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="860"/>
<source>Network</source>
<translation type="unfinished"></translation>
</message>
@ -734,72 +739,72 @@ Install successfully downloaded?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="578"/>
<location filename="../settingsView/csettingsview_moc.ui" line="847"/>
<source>Relative Pointer Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="585"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1145"/>
<source>Music Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="606"/>
<location filename="../settingsView/csettingsview_moc.ui" line="772"/>
<source>Ignore SSL errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="618"/>
<location filename="../settingsView/csettingsview_moc.ui" line="950"/>
<source>Input - Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
<location filename="../settingsView/csettingsview_moc.ui" line="347"/>
<source>Long Touch Duration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="635"/>
<location filename="../settingsView/csettingsview_moc.ui" line="116"/>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="658"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1045"/>
<source>Controller Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="665"/>
<location filename="../settingsView/csettingsview_moc.ui" line="361"/>
<source>Touch Tap Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="704"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1028"/>
<source>Input - Controller</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="771"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1094"/>
<source>Sound Volume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="801"/>
<location filename="../settingsView/csettingsview_moc.ui" line="404"/>
<source>Windowed</source>
<translation>Cửa sổ</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="806"/>
<location filename="../settingsView/csettingsview_moc.ui" line="409"/>
<source>Borderless fullscreen</source>
<translation>Toàn màn hình không viền</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="811"/>
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
<source>Exclusive fullscreen</source>
<translation>Toàn màn hình riêng biệt</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="521"/>
<location filename="../settingsView/csettingsview_moc.ui" line="782"/>
<source>Autosave limit (0 = off)</source>
<translation>Giới hạn lưu tự đng (0 = không giới hạn)</translation>
</message>
@ -808,42 +813,42 @@ Install successfully downloaded?</source>
<translation type="vanished">Máy liên minh trong trận đánh</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="514"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1038"/>
<source>Framerate Limit</source>
<translation>Giới hạn khung hình</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="778"/>
<location filename="../settingsView/csettingsview_moc.ui" line="765"/>
<source>Autosave prefix</source>
<translation>Thêm tiền tố vào lưu tự đng</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="839"/>
<location filename="../settingsView/csettingsview_moc.ui" line="833"/>
<source>Mouse Click Tolerance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="853"/>
<location filename="../settingsView/csettingsview_moc.ui" line="95"/>
<source>Sticks Acceleration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="995"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1015"/>
<source>empty = map name prefix</source>
<translation>Rỗng = tên bản đ</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="1024"/>
<location filename="../settingsView/csettingsview_moc.ui" line="102"/>
<source>Refresh now</source>
<translation>Làm mới</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="556"/>
<location filename="../settingsView/csettingsview_moc.ui" line="250"/>
<source>Default repository</source>
<translation>Nguồn mặc đnh</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="101"/>
<location filename="../settingsView/csettingsview_moc.ui" line="296"/>
<source>Renderer</source>
<translation type="unfinished"></translation>
</message>
@ -861,7 +866,7 @@ Install successfully downloaded?</source>
<translation type="vanished">Ngôn ngữ dữ liệu Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="788"/>
<location filename="../settingsView/csettingsview_moc.ui" line="391"/>
<source>Select display mode for game
Windowed - game will run inside a window that covers part of your screen
@ -878,7 +883,7 @@ Toàn màn hình không viền - Trò chơi chạy toàn màn hình, dùng chung
Toàn màn hình riêng biệt - Trò chơi chạy toàn màn hình dùng đ phân giải đưc chọn.</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="592"/>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<source>Reserved screen area</source>
<translation>Diện tích màn hình dành riêng</translation>
</message>
@ -891,87 +896,87 @@ Toàn màn hình riêng biệt - Trò chơi chạy toàn màn hình và dùng đ
<translation type="vanished">Phần mềm</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="80"/>
<location filename="../settingsView/csettingsview_moc.ui" line="270"/>
<source>Heroes III Translation</source>
<translation>Bản dịch Heroes III</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="745"/>
<location filename="../settingsView/csettingsview_moc.ui" line="650"/>
<source>Check on startup</source>
<translation>Kiểm tra khi khởi đng</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="721"/>
<location filename="../settingsView/csettingsview_moc.ui" line="326"/>
<source>Fullscreen</source>
<translation>Toàn màn hình</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="568"/>
<location filename="../settingsView/csettingsview_moc.ui" line="65"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="132"/>
<location filename="../settingsView/csettingsview_moc.ui" line="211"/>
<source>VCMI Language</source>
<translation>Ngôn ngữ VCMI</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="462"/>
<location filename="../settingsView/csettingsview_moc.ui" line="1087"/>
<source>Resolution</source>
<translation>Đ phân giải</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="156"/>
<location filename="../settingsView/csettingsview_moc.ui" line="796"/>
<source>Autosave</source>
<translation>Tự đng lưu</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="142"/>
<location filename="../settingsView/csettingsview_moc.ui" line="597"/>
<source>VSync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="651"/>
<location filename="../settingsView/csettingsview_moc.ui" line="340"/>
<source>Display index</source>
<translation>Mục hiện thị</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
<location filename="../settingsView/csettingsview_moc.ui" line="870"/>
<source>Network port</source>
<translation>Cổng mạng</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="332"/>
<location filename="../settingsView/csettingsview_moc.ui" line="524"/>
<source>Video</source>
<translation>Phim nh</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.ui" line="500"/>
<location filename="../settingsView/csettingsview_moc.ui" line="454"/>
<source>Show intro</source>
<translation>Hiện thị giới thiệu</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="480"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="494"/>
<source>Active</source>
<translation>Bật</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="485"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="499"/>
<source>Disabled</source>
<translation>Tắt</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="486"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="500"/>
<source>Enable</source>
<translation>Bật</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="491"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="505"/>
<source>Not Installed</source>
<translation>Chưa cài đt</translation>
</message>
<message>
<location filename="../settingsView/csettingsview_moc.cpp" line="492"/>
<location filename="../settingsView/csettingsview_moc.cpp" line="506"/>
<source>Install</source>
<translation>Cài đt</translation>
</message>
@ -1146,11 +1151,6 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<source>VCMI on Github</source>
<translation>VCMI trên Github</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="162"/>
<source>VCMI on Slack</source>
<translation>VCMI trên Slack</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.ui" line="169"/>
<source>VCMI on Discord</source>
@ -1217,84 +1217,110 @@ Offline installer consists of two parts, .exe and .bin. Make sure you download b
<translation>In The Wake of Gods</translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Heroes III installation found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="177"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="178"/>
<source>Copy data to VCMI folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="316"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<source>Select %1 file...</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="317"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="318"/>
<source>You have to select %1 file!</source>
<comment>param is file extension</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="319"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<source>GOG file (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="320"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="321"/>
<source>File selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="327"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="330"/>
<source>File cannot opened</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="336"/>
<source>Invalid file selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="334"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="346"/>
<source>GOG installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="337"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="343"/>
<source>GOG data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="387"/>
<source>You&apos;ve provided GOG Galaxy installer! This file doesn&apos;t contain the game. Please download the offline backup game installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="412"/>
<source>Stream error while extracting files!
error reason: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="425"/>
<source>Not a supported Inno Setup installer!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="436"/>
<source>Extracting error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>No Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="380"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="438"/>
<source>Selected files do not contain Heroes III data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="427"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="441"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="485"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="499"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Heroes III data not found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="424"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="482"/>
<source>Failed to detect valid Heroes III data in chosen directory.
Please select directory with installed Heroes III data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="448"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="506"/>
<source>Heroes III: HD Edition files are not supported by VCMI.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="453"/>
<location filename="../firstLaunch/firstlaunch_moc.cpp" line="511"/>
<source>Unknown or unsupported Heroes III version found.
Please select directory with Heroes III: Complete Edition or Heroes III: Shadow of Death.</source>
<translation type="unfinished"></translation>

View File

@ -509,7 +509,7 @@ int64_t DamageCalculator::getCasualties(int64_t damageDealt) const
int64_t damageLeft = damageDealt - info.defender->getFirstHPleft();
int64_t killsLeft = damageLeft / info.defender->getMaxHealth();
return 1 + killsLeft;
return std::min<int32_t>(1 + killsLeft, info.defender->getCount());
}
int DamageCalculator::battleBonusValue(const IBonusBearer * bearer, const CSelector & selector) const

View File

@ -85,6 +85,9 @@ void BonusList::stackBonuses()
int BonusList::totalValue() const
{
if (bonuses.empty())
return 0;
struct BonusCollection
{
int base = 0;
@ -96,63 +99,65 @@ int BonusList::totalValue() const
int indepMax = std::numeric_limits<int>::min();
};
auto percent = [](int64_t base, int64_t percent) -> int {
return static_cast<int>(std::clamp<int64_t>((base * (100 + percent)) / 100, std::numeric_limits<int>::min(), std::numeric_limits<int>::max()));
auto percent = [](int base, int percent) -> int {
return (static_cast<int64_t>(base) * (100 + percent)) / 100;
};
std::array <BonusCollection, vstd::to_underlying(BonusSource::NUM_BONUS_SOURCE)> sources = {};
BonusCollection any;
BonusCollection accumulated;
bool hasIndepMax = false;
bool hasIndepMin = false;
std::array<int, vstd::to_underlying(BonusSource::NUM_BONUS_SOURCE)> percentToSource = {};
for(const auto & b : bonuses)
{
switch(b->valType)
{
case BonusValueType::BASE_NUMBER:
sources[vstd::to_underlying(b->source)].base += b->val;
break;
case BonusValueType::PERCENT_TO_ALL:
sources[vstd::to_underlying(b->source)].percentToAll += b->val;
break;
case BonusValueType::PERCENT_TO_BASE:
sources[vstd::to_underlying(b->source)].percentToBase += b->val;
break;
case BonusValueType::PERCENT_TO_SOURCE:
sources[vstd::to_underlying(b->source)].percentToSource += b->val;
break;
percentToSource[vstd::to_underlying(b->source)] += b->val;
break;
case BonusValueType::PERCENT_TO_TARGET_TYPE:
sources[vstd::to_underlying(b->targetSourceType)].percentToSource += b->val;
break;
case BonusValueType::ADDITIVE_VALUE:
sources[vstd::to_underlying(b->source)].additive += b->val;
break;
case BonusValueType::INDEPENDENT_MAX:
hasIndepMax = true;
vstd::amax(sources[vstd::to_underlying(b->source)].indepMax, b->val);
break;
case BonusValueType::INDEPENDENT_MIN:
hasIndepMin = true;
vstd::amin(sources[vstd::to_underlying(b->source)].indepMin, b->val);
percentToSource[vstd::to_underlying(b->targetSourceType)] += b->val;
break;
}
}
for(const auto & src : sources)
{
any.base += percent(src.base, src.percentToSource);
any.percentToBase += percent(src.percentToBase, src.percentToSource);
any.percentToAll += percent(src.percentToAll, src.percentToSource);
any.additive += percent(src.additive, src.percentToSource);
if(hasIndepMin)
vstd::amin(any.indepMin, percent(src.indepMin, src.percentToSource));
if(hasIndepMax)
vstd::amax(any.indepMax, percent(src.indepMax, src.percentToSource));
}
any.base = percent(any.base, any.percentToBase);
any.base += any.additive;
auto valFirst = percent(any.base ,any.percentToAll);
if(hasIndepMin && hasIndepMax && any.indepMin < any.indepMax)
any.indepMax = any.indepMin;
for(const auto & b : bonuses)
{
int sourceIndex = vstd::to_underlying(b->source);
int valModified = percent(b->val, percentToSource[sourceIndex]);
switch(b->valType)
{
case BonusValueType::BASE_NUMBER:
accumulated.base += valModified;
break;
case BonusValueType::PERCENT_TO_ALL:
accumulated.percentToAll += valModified;
break;
case BonusValueType::PERCENT_TO_BASE:
accumulated.percentToBase += valModified;
break;
case BonusValueType::ADDITIVE_VALUE:
accumulated.additive += valModified;
break;
case BonusValueType::INDEPENDENT_MAX:
hasIndepMax = true;
vstd::amax(accumulated.indepMax, valModified);
break;
case BonusValueType::INDEPENDENT_MIN:
hasIndepMin = true;
vstd::amin(accumulated.indepMin, valModified);
break;
}
}
accumulated.base = percent(accumulated.base, accumulated.percentToBase);
accumulated.base += accumulated.additive;
auto valFirst = percent(accumulated.base ,accumulated.percentToAll);
if(hasIndepMin && hasIndepMax && accumulated.indepMin < accumulated.indepMax)
accumulated.indepMax = accumulated.indepMin;
const int notIndepBonuses = static_cast<int>(std::count_if(bonuses.cbegin(), bonuses.cend(), [](const std::shared_ptr<Bonus>& b)
{
@ -160,9 +165,9 @@ int BonusList::totalValue() const
}));
if(notIndepBonuses)
return std::clamp(valFirst, any.indepMax, any.indepMin);
return std::clamp(valFirst, accumulated.indepMax, accumulated.indepMin);
return hasIndepMin ? any.indepMin : hasIndepMax ? any.indepMax : 0;
return hasIndepMin ? accumulated.indepMin : hasIndepMax ? accumulated.indepMax : 0;
}
std::shared_ptr<Bonus> BonusList::getFirst(const CSelector &select)

View File

@ -196,7 +196,7 @@ std::shared_ptr<Bonus> OwnerUpdater::createUpdatedBonus(const std::shared_ptr<Bo
owner = PlayerColor::NEUTRAL;
std::shared_ptr<Bonus> updated =
std::make_shared<Bonus>(b->duration, b->type, b->source, b->val, b->sid, b->subtype, b->valType);
std::make_shared<Bonus>(*b);
updated->limiter = std::make_shared<OppositeSideLimiter>(owner);
return updated;
}

View File

@ -191,7 +191,7 @@ ZipArchive::ZipArchive(const boost::filesystem::path & from)
#endif
if (archive == nullptr)
throw std::runtime_error("Failed to open file '" + from.string() + "' - unable to list files!");
throw std::runtime_error("Failed to open file '" + from.string());
}
ZipArchive::~ZipArchive()

View File

@ -44,6 +44,7 @@
#include "../mapping/CMapEditManager.h"
#include "../mapping/CMapService.h"
#include "../modding/IdentifierStorage.h"
#include "../modding/ModScope.h"
#include "../pathfinder/CPathfinder.h"
#include "../pathfinder/PathfinderOptions.h"
#include "../registerTypes/RegisterTypesClientPacks.h"
@ -413,7 +414,8 @@ void CGameState::initGlobalBonuses()
void CGameState::initDifficulty()
{
logGlobal->debug("\tLoading difficulty settings");
const JsonNode config = JsonUtils::assembleFromFiles("config/difficulty.json");
JsonNode config = JsonUtils::assembleFromFiles("config/difficulty.json");
config.setModScope(ModScope::scopeGame()); // FIXME: should be set to actual mod
const JsonNode & difficultyAI(config["ai"][GameConstants::DIFFICULTY_NAMES[scenarioOps->difficulty]]);
const JsonNode & difficultyHuman(config["human"][GameConstants::DIFFICULTY_NAMES[scenarioOps->difficulty]]);

View File

@ -102,7 +102,10 @@ static std::string enumCheck(JsonValidator & validator, const JsonNode & baseSch
if (data == enumEntry)
return "";
}
return validator.makeErrorMessage("Key must have one of predefined values");
std::string errorMessage = "Key must have one of predefined values:" + schema.toCompactString();
return validator.makeErrorMessage(errorMessage);
}
static std::string constCheck(JsonValidator & validator, const JsonNode & baseSchema, const JsonNode & schema, const JsonNode & data)

View File

@ -157,7 +157,6 @@ void CLogger::log(ELogLevel::ELogLevel level, const boost::format & fmt) const
ELogLevel::ELogLevel CLogger::getLevel() const
{
TLockGuard _(mx);
return level;
}

View File

@ -348,7 +348,12 @@ std::vector<Component> CRewardableObject::getPopupComponentsImpl(PlayerColor pla
auto rewardIndices = getAvailableRewards(hero, Rewardable::EEventType::EVENT_FIRST_VISIT);
if (rewardIndices.empty() && !configuration.info.empty())
rewardIndices.push_back(0);
{
// Object has valid config, but current hero has no rewards that he can receive.
// Usually this happens if hero has already visited this object -> show reward using context without any hero
// since reward may be context-sensitive - e.g. Witch Hut that gives 1 skill, but always at basic level
return loadComponents(nullptr, {0});
}
if (rewardIndices.empty())
return {};

View File

@ -38,6 +38,7 @@ void CMapUndoManager::redo()
void CMapUndoManager::clearAll()
{
//FIXME: Will crash if an object was added twice to actions
undoStack.clear();
redoStack.clear();
onUndoRedo();

View File

@ -1231,7 +1231,7 @@ void RemoveObject::applyGs(CGameState *gs)
gs->map->instanceNames.erase(obj->instanceName);
gs->map->objects[objectID.getNum()].dellNull();
gs->map->calculateGuardingGreaturePositions();
gs->map->calculateGuardingGreaturePositions();//FIXME: excessive, update only affected tiles
}
static int getDir(const int3 & src, const int3 & dst)
@ -2416,7 +2416,7 @@ void CatapultAttack::applyBattle(IBattleState * battleState)
void BattleSetStackProperty::applyGs(CGameState * gs) const
{
CStack * stack = gs->getBattle(battleID)->getStack(stackID);
CStack * stack = gs->getBattle(battleID)->getStack(stackID, false);
switch(which)
{
case CASTS:

View File

@ -49,7 +49,7 @@ bool CPathfinderHelper::canMoveFromNode(const PathNodeInfo & source) const
return true;
}
void CPathfinderHelper::calculateNeighbourTiles(std::vector<int3> & result, const PathNodeInfo & source) const
void CPathfinderHelper::calculateNeighbourTiles(NeighbourTilesVector & result, const PathNodeInfo & source) const
{
result.clear();
@ -239,9 +239,9 @@ void CPathfinder::calculatePaths()
logAi->trace("CPathfinder finished with %s iterations", std::to_string(counter));
}
std::vector<int3> CPathfinderHelper::getAllowedTeleportChannelExits(const TeleportChannelID & channelID) const
TeleporterTilesVector CPathfinderHelper::getAllowedTeleportChannelExits(const TeleportChannelID & channelID) const
{
std::vector<int3> allowedExits;
TeleporterTilesVector allowedExits;
for(const auto & objId : getTeleportChannelExits(channelID, hero->tempOwner))
{
@ -262,9 +262,9 @@ std::vector<int3> CPathfinderHelper::getAllowedTeleportChannelExits(const Telepo
return allowedExits;
}
std::vector<int3> CPathfinderHelper::getCastleGates(const PathNodeInfo & source) const
TeleporterTilesVector CPathfinderHelper::getCastleGates(const PathNodeInfo & source) const
{
std::vector<int3> allowedExits;
TeleporterTilesVector allowedExits;
auto towns = getPlayerState(hero->tempOwner)->towns;
for(const auto & town : towns)
@ -279,9 +279,9 @@ std::vector<int3> CPathfinderHelper::getCastleGates(const PathNodeInfo & source)
return allowedExits;
}
std::vector<int3> CPathfinderHelper::getTeleportExits(const PathNodeInfo & source) const
TeleporterTilesVector CPathfinderHelper::getTeleportExits(const PathNodeInfo & source) const
{
std::vector<int3> teleportationExits;
TeleporterTilesVector teleportationExits;
const auto * objTeleport = dynamic_cast<const CGTeleport *>(source.nodeObject);
if(isAllowedTeleportEntrance(objTeleport))
@ -578,7 +578,7 @@ int CPathfinderHelper::getMaxMovePoints(const EPathfindingLayer & layer) const
void CPathfinderHelper::getNeighbours(
const TerrainTile & srcTile,
const int3 & srcCoord,
std::vector<int3> & vec,
NeighbourTilesVector & vec,
const boost::logic::tribool & onLand,
const bool limitCoastSailing) const
{
@ -702,8 +702,8 @@ int CPathfinderHelper::getMovementCost(
constexpr auto maxCostOfOneStep = static_cast<int>(175 * M_SQRT2); // diagonal move on Swamp - 247 MP
if(checkLast && left > 0 && left <= maxCostOfOneStep) //it might be the last tile - if no further move possible we take all move points
{
std::vector<int3> vec;
vec.reserve(8); //optimization
NeighbourTilesVector vec;
getNeighbours(*dt, dst, vec, ct->terType->isLand(), true);
for(const auto & elem : vec)
{

View File

@ -13,12 +13,23 @@
#include "../IGameCallback.h"
#include "../bonuses/BonusEnum.h"
#include <boost/container/static_vector.hpp>
#include <boost/container/small_vector.hpp>
VCMI_LIB_NAMESPACE_BEGIN
class CGWhirlpool;
struct TurnInfo;
struct PathfinderOptions;
// Optimized storage - tile can have 0-8 neighbour tiles
// static_vector uses fixed, preallocated storage (capacity) and dynamic size
// this avoid dynamic allocations on huge number of neighbour list queries
using NeighbourTilesVector = boost::container::static_vector<int3, 8>;
// Optimized storage to minimize dynamic allocations - most of teleporters have only one exit, but some may have more (premade maps, castle gates)
using TeleporterTilesVector = boost::container::small_vector<int3, 4>;
class DLL_LINKAGE CPathfinder
{
public:
@ -87,22 +98,22 @@ public:
bool hasBonusOfType(BonusType type) const;
int getMaxMovePoints(const EPathfindingLayer & layer) const;
std::vector<int3> getCastleGates(const PathNodeInfo & source) const;
TeleporterTilesVector getCastleGates(const PathNodeInfo & source) const;
bool isAllowedTeleportEntrance(const CGTeleport * obj) const;
std::vector<int3> getAllowedTeleportChannelExits(const TeleportChannelID & channelID) const;
TeleporterTilesVector getAllowedTeleportChannelExits(const TeleportChannelID & channelID) const;
bool addTeleportTwoWay(const CGTeleport * obj) const;
bool addTeleportOneWay(const CGTeleport * obj) const;
bool addTeleportOneWayRandom(const CGTeleport * obj) const;
bool addTeleportWhirlpool(const CGWhirlpool * obj) const;
bool canMoveBetween(const int3 & a, const int3 & b) const; //checks only for visitable objects that may make moving between tiles impossible, not other conditions (like tiles itself accessibility)
void calculateNeighbourTiles(std::vector<int3> & result, const PathNodeInfo & source) const;
std::vector<int3> getTeleportExits(const PathNodeInfo & source) const;
void calculateNeighbourTiles(NeighbourTilesVector & result, const PathNodeInfo & source) const;
TeleporterTilesVector getTeleportExits(const PathNodeInfo & source) const;
void getNeighbours(
const TerrainTile & srcTile,
const int3 & srcCoord,
std::vector<int3> & vec,
NeighbourTilesVector & vec,
const boost::logic::tribool & onLand,
const bool limitCoastSailing) const;

View File

@ -40,7 +40,7 @@ void NodeStorage::initialize(const PathfinderOptions & options, const CGameState
{
for(pos.y=0; pos.y < sizes.y; ++pos.y)
{
const TerrainTile tile = gs->map->getTile(pos);
const TerrainTile & tile = gs->map->getTile(pos);
if(tile.terType->isWater())
{
resetTile(pos, ELayer::SAIL, PathfinderUtil::evaluateAccessibility<ELayer::SAIL>(pos, tile, fow, player, gs));
@ -67,10 +67,9 @@ void NodeStorage::calculateNeighbours(
const PathfinderConfig * pathfinderConfig,
const CPathfinderHelper * pathfinderHelper)
{
std::vector<int3> accessibleNeighbourTiles;
NeighbourTilesVector accessibleNeighbourTiles;
result.clear();
accessibleNeighbourTiles.reserve(8);
pathfinderHelper->calculateNeighbourTiles(accessibleNeighbourTiles, source);

View File

@ -106,12 +106,12 @@ void Rewardable::Interface::grantRewardBeforeLevelup(IGameCallback * cb, const R
for(const auto & entry : info.reward.secondary)
{
int current = hero->getSecSkillLevel(entry.first);
if( (current != 0 && current < entry.second) ||
(hero->canLearnSkill() ))
{
cb->changeSecSkill(hero, entry.first, entry.second);
}
auto currentLevel = static_cast<MasteryLevel::Type>(hero->getSecSkillLevel(entry.first));
if(currentLevel == MasteryLevel::EXPERT)
continue;
if(currentLevel != MasteryLevel::NONE || hero->canLearnSkill())
cb->changeSecSkill(hero, entry.first, entry.second, false);
}
for(int i=0; i< info.reward.primary.size(); i++)

View File

@ -103,7 +103,13 @@ void Rewardable::Reward::loadComponents(std::vector<Component> & comps, const CG
}
for(const auto & entry : secondary)
comps.emplace_back(ComponentType::SEC_SKILL, entry.first, entry.second);
{
auto skillID = entry.first;
int levelsGained = entry.second;
int currentLevel = h ? h->getSecSkillLevel(skillID) : 0;
int finalLevel = std::min(static_cast<int>(MasteryLevel::EXPERT), currentLevel + levelsGained);
comps.emplace_back(ComponentType::SEC_SKILL, entry.first, finalLevel);
}
for(const auto & entry : artifacts)
comps.emplace_back(ComponentType::ARTIFACT, entry);

View File

@ -64,6 +64,22 @@ std::vector<CGObjectInstance*> QuestArtifactPlacer::getPossibleArtifactsToReplac
return artifactsToReplace;
}
CGObjectInstance * QuestArtifactPlacer::drawObjectToReplace()
{
RecursiveLock lock(externalAccessMutex);
if (artifactsToReplace.empty())
{
return nullptr;
}
else
{
auto ret = *RandomGeneratorUtil::nextItem(artifactsToReplace, zone.getRand());
vstd::erase_if_present(artifactsToReplace, ret);
return ret;
}
}
void QuestArtifactPlacer::findZonesForQuestArts()
{
const auto& distances = generator.getZonePlacer()->getDistanceMap().at(zone.getId());
@ -87,14 +103,14 @@ void QuestArtifactPlacer::placeQuestArtifacts(CRandomGenerator & rand)
for (auto zone : questArtZones)
{
auto* qap = zone->getModificator<QuestArtifactPlacer>();
std::vector<CGObjectInstance *> artifactsToReplace = qap->getPossibleArtifactsToReplace();
if (artifactsToReplace.empty())
auto objectToReplace = qap->drawObjectToReplace();
if (!objectToReplace)
continue;
auto artifactToReplace = *RandomGeneratorUtil::nextItem(artifactsToReplace, rand);
logGlobal->trace("Replacing %s at %s with the quest artifact %s",
artifactToReplace->getObjectName(),
artifactToReplace->getPosition().toString(),
objectToReplace->getObjectName(),
objectToReplace->getPosition().toString(),
VLC->artifacts()->getById(artifactToPlace)->getNameTranslated());
//Update appearance. Terrain is irrelevant.
@ -103,24 +119,15 @@ void QuestArtifactPlacer::placeQuestArtifacts(CRandomGenerator & rand)
auto templates = handler->getTemplates();
//artifactToReplace->appearance = templates.front();
newObj->appearance = templates.front();
newObj->pos = artifactToReplace->pos;
newObj->pos = objectToReplace->pos;
mapProxy->insertObject(newObj);
for (auto z : map.getZones())
{
//Every qap has its OWN collection of artifacts
auto * localQap = zone->getModificator<QuestArtifactPlacer>();
if (localQap)
{
localQap->dropReplacedArtifact(artifactToReplace);
}
}
mapProxy->removeObject(artifactToReplace);
mapProxy->removeObject(objectToReplace);
break;
}
}
}
// TODO: Unused?
void QuestArtifactPlacer::dropReplacedArtifact(CGObjectInstance* obj)
{
RecursiveLock lock(externalAccessMutex);

View File

@ -31,6 +31,7 @@ public:
void addQuestArtifact(const ArtifactID& id);
void removeQuestArtifact(const ArtifactID& id);
void rememberPotentialArtifactToReplace(CGObjectInstance* obj);
CGObjectInstance * drawObjectToReplace();
std::vector<CGObjectInstance*> getPossibleArtifactsToReplace() const;
void placeQuestArtifacts(CRandomGenerator & rand);
void dropReplacedArtifact(CGObjectInstance* obj);

View File

@ -88,8 +88,8 @@ bool RoadPlacer::createRoad(const int3 & destination)
{
ret *= VISITABLE_PENALTY;
}
float dist = border.distance(dst);
if(dist > 1)
float dist = border.distanceSqr(dst);
if(dist > 1.0f)
{
ret /= dist;
}

View File

@ -155,12 +155,9 @@ endif()
assign_source_group(${editor_SRCS} ${editor_HEADERS} ${editor_RESOURCES} ${editor_TS} ${editor_ICON})
# TODO: enabling AUTORCC breaks msvc build on CI
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
if(NOT (MSVC AND "$ENV{GITHUB_ACTIONS}" STREQUAL true))
set(CMAKE_AUTORCC ON)
endif()
set(CMAKE_AUTORCC ON)
if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)

View File

@ -129,37 +129,37 @@
<message>
<location filename="../inspector/herospellwidget.ui" line="29"/>
<source>Spells</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="47"/>
<source>Customize spells</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="76"/>
<source>Level 1</source>
<translation type="unfinished"></translation>
<translation>1</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="114"/>
<source>Level 2</source>
<translation type="unfinished"></translation>
<translation>2</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="152"/>
<source>Level 3</source>
<translation type="unfinished"></translation>
<translation>3</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="190"/>
<source>Level 4</source>
<translation type="unfinished"></translation>
<translation>4</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="228"/>
<source>Level 5</source>
<translation type="unfinished"></translation>
<translation>5</translation>
</message>
</context>
<context>
@ -283,363 +283,363 @@
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>/</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation>h3m转换器</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation>Ctrl+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation>Ctrl+Shift+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation>Ctrl+=</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation>Ctrl+-</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation>Ctrl+Shift+=</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>(*.vmap *.h3m);;VCMI地图(*.vmap);;3(*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>VCMI地图(*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation>3(*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation></translation>
</message>
@ -1738,32 +1738,32 @@
<message>
<location filename="../windownewmap.ui" line="164"/>
<source>S (36x36)</source>
<translation type="unfinished"></translation>
<translation> (36x36)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="169"/>
<source>M (72x72)</source>
<translation type="unfinished"></translation>
<translation> (72x72)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="174"/>
<source>L (108x108)</source>
<translation type="unfinished"></translation>
<translation> (108x108)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="184"/>
<source>H (180x180)</source>
<translation type="unfinished"></translation>
<translation> (180x180)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="189"/>
<source>XH (216x216)</source>
<translation type="unfinished"></translation>
<translation> (216x216)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="194"/>
<source>G (252x252)</source>
<translation type="unfinished"></translation>
<translation> (252x252)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="248"/>

View File

@ -129,37 +129,37 @@
<message>
<location filename="../inspector/herospellwidget.ui" line="29"/>
<source>Spells</source>
<translation type="unfinished">Kouzla</translation>
<translation>Kouzla</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="47"/>
<source>Customize spells</source>
<translation type="unfinished"></translation>
<translation>Přizpůsobit kouzla</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="76"/>
<source>Level 1</source>
<translation type="unfinished"></translation>
<translation>Úroveň 1</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="114"/>
<source>Level 2</source>
<translation type="unfinished"></translation>
<translation>Úroveň 2</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="152"/>
<source>Level 3</source>
<translation type="unfinished"></translation>
<translation>Úroveň 3</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="190"/>
<source>Level 4</source>
<translation type="unfinished"></translation>
<translation>Úroveň 4</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="228"/>
<source>Level 5</source>
<translation type="unfinished"></translation>
<translation>Úroveň 5</translation>
</message>
</context>
<context>
@ -283,363 +283,363 @@
<translation>Nástroje</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation>Malování</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Krajiny</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Cesty</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Řeky</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation>Náhled</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Otevřít</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Uložit</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Nový</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Uložit jako...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>P/Z</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Zobrazit podzemí</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Průchodnost</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Vyjmout</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Kopírovat</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Vložit</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Vyplnit</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Vyplní výběr překážkami</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Mřížka</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Všeobecné</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Název a popis mapy</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Hráčské nastavení</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Zpět</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Znovu</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Smazat</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Neutrální</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Posoudit</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Aktualizovat vzhled</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Přetvořit překážky</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Hráč 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Hráč 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Hráč 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Hráč 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Hráč 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Hráč 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Hráč 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Hráč 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Exportovat jako...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation>Překlady</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation>Převodník h3m</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation>Zamknout</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation>Zamknout objekty na mapě pro zabránění nadbytečných změn</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation>Ctrl+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation>Odemknout</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation>Odemknout objekty na mapě</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation>Ctrl+Shift+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation>Přiblížit</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation>Ctrl+=</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation>Oddálit</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation>Ctrl+-</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation>Zrušit přiblížení</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation>Ctrl+Shift+=</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation>Potvrzení</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation>Neuložené změny budou ztraceny, jste si jisti?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Otevřít mapu</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Všechny podporované mapy (*.vmap *.h3m);; Mapy VCMI(*.vmap);;Mapy HoMM3(*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Uložit mapu</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Mapy VCMI (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Druh</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Zobrazit povrch</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation>Nejsou vybrány žádné objekty</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation>Tento úkon je nezvratný. Chcete pokračovat?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation>Nastaly chyby. Nebylo aktualizováno %1 objektů</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation>Uložit do obrázku</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation>Vyberte mapy pro převod</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation>Mapy HoMM3 (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation>Vyberte složku pro uložení převedených map</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation>Operace dokončena</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation>Úspěšně převedeno %1 map</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation>Převod map selhal. Úkon zrušen</translation>
</message>
@ -811,7 +811,7 @@
<message>
<location filename="../playerparams.ui" line="221"/>
<source>Random faction</source>
<translation type="unfinished">Náhodná frakce</translation>
<translation>Náhodná frakce</translation>
</message>
<message>
<location filename="../playerparams.ui" line="179"/>
@ -1104,7 +1104,7 @@
<message>
<location filename="../inspector/rewardswidget.ui" line="121"/>
<source>Reset parameters</source>
<translation type="unfinished"></translation>
<translation>Parametry resetu</translation>
</message>
<message>
<location filename="../inspector/rewardswidget.ui" line="141"/>
@ -1119,12 +1119,12 @@
<message>
<location filename="../inspector/rewardswidget.ui" line="160"/>
<source>Reset visitors</source>
<translation type="unfinished"></translation>
<translation>Resetovat návštěvníky</translation>
</message>
<message>
<location filename="../inspector/rewardswidget.ui" line="167"/>
<source>Reset rewards</source>
<translation type="unfinished"></translation>
<translation>Resetovat odměny</translation>
</message>
<message>
<location filename="../inspector/rewardswidget.ui" line="179"/>
@ -1738,32 +1738,32 @@
<message>
<location filename="../windownewmap.ui" line="164"/>
<source>S (36x36)</source>
<translation type="unfinished"></translation>
<translation>S (36x36)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="169"/>
<source>M (72x72)</source>
<translation type="unfinished"></translation>
<translation>M (72x72)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="174"/>
<source>L (108x108)</source>
<translation type="unfinished"></translation>
<translation>L (108x108)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="184"/>
<source>H (180x180)</source>
<translation type="unfinished"></translation>
<translation>H (180x180)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="189"/>
<source>XH (216x216)</source>
<translation type="unfinished"></translation>
<translation>XH (216x216)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="194"/>
<source>G (252x252)</source>
<translation type="unfinished"></translation>
<translation>G (252x252)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="248"/>

View File

@ -283,363 +283,363 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation type="unfinished"></translation>
</message>

View File

@ -283,363 +283,363 @@
<translation>Outils</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation>Remplissage</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Terrains</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Routes</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Rivières</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation>Aperçu</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Ouvrir</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Enregistrer</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Nouveau</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Enregistrer sous...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Maj+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>Sous-sol/Surface</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Voir le sous-sol</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Passage</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Couper</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Copier</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Coller</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Remplir</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Remplir la sélection d&apos;obstacles</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Grille</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Général</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Titre et description de la carte</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Paramètres des joueurs</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Annuler</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Rétablir</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Effacer</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Neutre</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Valider</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Mettre à jour l&apos;apparence</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Recréer des obstacles</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Joueur 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Joueur 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Joueur 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Joueur 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Joueur 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Joueur 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Joueur 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Joueur 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Exporter sous...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation>Traductions</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation>convertisseur h3m</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation>Vérouiller</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation>Vérouiller les objets sur la carte pour éviter des changements non nécessaires</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation>Ctrl+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation>Déverouiller</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation>Dévérouiller tous les objets de la carte</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation>Ctrl+Maj+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation>Zoom avant</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation>Ctrl+=</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation>Zoom arrière</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation>Remise à zéro du zoom</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation>Ctrl+Maj+=</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation>Confirmation</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sur?</source>
<translation>Des modifications non sauvegardées vont être perdues. Êtes-vous sûr ?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Ouvrir la carte</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Toutes les cartes prises en charge (*.vmap *.h3m);;Cartes VCMI (*.vmap);;Cartes HoMM3 (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Enregistrer la carte</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Cartes VCMI (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Afficher la surface</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation>Pas d&apos;objets sélectionnés</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation>Cette opération est irreversible. Voulez-vous continuer ?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation>Erreur rencontrée. %1 objets n&apos;ont pas étés mis à jour</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation>Sauvegarder en tant qu&apos;image</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation>Sélectionner les cartes à convertir</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation>Cartes HoMM3(*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation>Sélectionner le dossier ou sauvegarder les cartes converties</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation>Opération terminée</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation>Conversion éffectuée avec succès des %1 cartes</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation>Erreur de conversion de carte. Opération annulée</translation>
</message>

View File

@ -283,363 +283,363 @@
<translation>Werkzeuge</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation>Malen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Terrains</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Straßen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Flüsse</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation>Vorschau</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Öffnen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Speichern</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Neu</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Speichern unter...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Strg+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>U/G</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Ansicht Untergrund</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Passierbar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Ausschneiden</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Kopieren</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Einfügen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Füllen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Füllt die Auswahl mit Hindernissen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Raster</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Titel und Beschreibung der Karte</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Spieler-Einstellungen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Rückgängig</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Wiederholen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Löschen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Neutral</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Validieren</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Aussehen aktualisieren</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Hindernisse neu erschaffen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Spieler 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Spieler 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Spieler 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Spieler 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Spieler 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Spieler 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Spieler 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Spieler 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Exportieren als...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation>Übersetzungen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation>Strg+T</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation>h3m-Konverter</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation>Sperren</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation>Objekte auf der Karte sperren, um unnötige Änderungen zu vermeiden</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation>Strg+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation>Entsperren</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation>Entsperre alle Objekte auf der Karte</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation>Strg+Umschalt+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation>Heranzoomen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation>Strg+=</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation>Herauszoomen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation>Strg+-</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation>Zoom zurücksetzen</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation>Strg+Umschalt+=</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation>Bestätigung</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation>Ungespeicherte Änderungen gehen verloren, sind sie sicher?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Karte öffnen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Alle unterstützten Karten (*.vmap *.h3m);;VCMI-Karten (*.vmap);;HoMM3-Karten (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Karte speichern</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>VCMI-Karten (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Oberfläche anzeigen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation>Keine Objekte selektiert</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation>Diese Operation ist unumkehrbar. Möchten sie fortsetzen?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation>Fehler sind aufgetreten. %1 Objekte konnten nicht aktualisiert werden</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation>Als Bild speichern</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation>Zu konvertierende Karten auswählen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation>HoMM3-Karten (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation>Verzeichnis zum Speichern der konvertierten Karten wählen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation>Vorgang abgeschlossen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation>Erfolgreiche Konvertierung von %1 Karten</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation>Die Karte konnte nicht konvertiert werden. Vorgang abgebrochen</translation>
</message>

View File

@ -129,37 +129,37 @@
<message>
<location filename="../inspector/herospellwidget.ui" line="29"/>
<source>Spells</source>
<translation type="unfinished">Zaklęcia</translation>
<translation>Zaklęcia</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="47"/>
<source>Customize spells</source>
<translation type="unfinished"></translation>
<translation>Własne zaklęcia</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="76"/>
<source>Level 1</source>
<translation type="unfinished"></translation>
<translation>Poziom 1</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="114"/>
<source>Level 2</source>
<translation type="unfinished"></translation>
<translation>Poziom 2</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="152"/>
<source>Level 3</source>
<translation type="unfinished"></translation>
<translation>Poziom 3</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="190"/>
<source>Level 4</source>
<translation type="unfinished"></translation>
<translation>Poziom 4</translation>
</message>
<message>
<location filename="../inspector/herospellwidget.ui" line="228"/>
<source>Level 5</source>
<translation type="unfinished"></translation>
<translation>Poziom 5</translation>
</message>
</context>
<context>
@ -283,363 +283,363 @@
<translation>Narzędzia</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation>Malowanie</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Tereny</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Drogi</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Rzeki</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation>Podgląd</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Otwórz</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Zapisz</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Nowy</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Zapisz jako...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>Podziemia</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Pokaż podziemia</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Przejścia</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Wytnij</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Kopiuj</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Wklej</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Wypełnij</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Wypełnia zaznaczony obszar przeszkodami</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Siatka</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Nazwa i opis mapy</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Ustawienia graczy</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Cofnij</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Przywróć</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Wymaż</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Neutralny</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Sprawdź</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Aktualizuj wygląd</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Powtórnie stwórz przeszkody</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Gracz 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Gracz 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Gracz 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Gracz 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Gracz 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Gracz 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Gracz 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Gracz 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Eksportuj jako...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation>Tłumaczenia</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation>konwerter h3m</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation>Zablokuj</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation>Zablokuj obiekty na mapie by uniknąć przypadkowych zmian</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation>Ctrl+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation>Odblokuj</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation>Odblokuj wszystkie obiekty na mapie</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation>Ctrl+Shift+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation>Powiększ</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation>Ctrl+=</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation>Pomniejsz</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation>Ctrl+-</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation>Domyślne powiększenie</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation>Ctrl+Shift+=</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation>Potwierdzenie</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation>Niezapisane zmiany zostaną utracone, jesteś pewny?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Otwórz mapę</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Wszystkie wspierane mapy (*.vmap *.h3m);;Mapy VCMI(*.vmap);;Mapy HoMM3(*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Zapisz mapę</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Mapy VCMI (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Pokaż powierzchnię</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation>Brak wybranych obiektów</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation>Ta operacja jest nieodwracalna. Czy chcesz kontynuować?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation>Wystąpiły błędy. %1 obiektów nie zostało zaktualizowanych</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation>Zapisz jako obraz</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation>Wybierz mapy do konwersji</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation>Mapy HoMM3(*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation>Wybierz folder zapisu skonwertowanych map</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation>Operacja zakończona</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation>Pomyślnie skonwertowano %1 map</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation>Nieudana konwersja mapy. Przerywanie operacji</translation>
</message>
@ -1738,32 +1738,32 @@
<message>
<location filename="../windownewmap.ui" line="164"/>
<source>S (36x36)</source>
<translation type="unfinished"></translation>
<translation>S (36x36)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="169"/>
<source>M (72x72)</source>
<translation type="unfinished"></translation>
<translation>M (72x72)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="174"/>
<source>L (108x108)</source>
<translation type="unfinished"></translation>
<translation>L (108x108)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="184"/>
<source>H (180x180)</source>
<translation type="unfinished"></translation>
<translation>H (180x180)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="189"/>
<source>XH (216x216)</source>
<translation type="unfinished"></translation>
<translation>XH (216x216)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="194"/>
<source>G (252x252)</source>
<translation type="unfinished"></translation>
<translation>G (252x252)</translation>
</message>
<message>
<location filename="../windownewmap.ui" line="248"/>

View File

@ -283,363 +283,363 @@
<translation>Ferramentas</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation>Pintura</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Terrenos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Estradas</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Rios</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation>Visualização</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Salvar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Novo</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Salvar como...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>Subterrâneo/Superfície</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Visualizar subterrâneo</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Passar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Cortar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Copiar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Colar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Preencher</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Preenche a seleção com obstáculos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Grade</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Título e descrição do mapa</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Configurações dos jogadores</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Desfazer</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Refazer</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Apagar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Neutro</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Validar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Atualizar aparência</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Recriar obstáculos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Jogador 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Jogador 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Jogador 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Jogador 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Jogador 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Jogador 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Jogador 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Jogador 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Exportar como...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation>Traduções</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation>Ctrl+T</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation>Conversor h3m</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation>Travar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation>Travar objetos no mapa para evitar alterações desnecessárias</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation>Ctrl+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation>Desbloquear</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation>Desbloquear todos os objetos no mapa</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation>Ctrl+Shift+L</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation>Aumentar o zoom</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation>Ctrl+=</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation>Reduzir o zoom</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation>Ctrl+-</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation>Redefinir do zoom</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation>Ctrl+Shift+=</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation>Confirmação</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation>As alterações não salvas serão perdidas. Tem certeza?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Abrir mapa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Todos os mapas suportados (*.vmap *.h3m);;Mapas do VCMI (*.vmap);;Mapas do HoMM3 (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Salvar mapa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Mapas do VCMI (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Tipo</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Visualizar superfície</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation>Nenhum objeto selecionado</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation>Esta operação é irreversível. Deseja continuar?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation>Ocorreram erros. %1 objetos não foram atualizados</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation>Salvar como imagem</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation>Selecionar mapas para converter</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation>Mapas do HoMM3 (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation>Escolher diretório para salvar mapas convertidos</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation>Operação concluída</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation>%1 mapas foram convertidos com sucesso</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation>Falha ao converter o mapa. Abortar operação</translation>
</message>

View File

@ -283,363 +283,363 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Земли</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Дороги</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Реки</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Открыть</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Сохранить</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Создать</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Сохранить как</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>П/Н</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Вид на подземелье</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Проходимость</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Вырезать</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Копировать</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Вставить</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Заливка</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Заливает выбранное препятствиями</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Сетка</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Общее</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Название и описание карты</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Настройки игроков</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Отменить</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Повторить</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Удалить</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Нейтральный</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Проверить</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Обновить вид</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Обновить препятствия</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Игрок 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Игрок 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Игрок 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Игрок 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Игрок 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Игрок 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Игрок 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Игрок 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Открыть карту</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Все поддерживаемые карты (*.vmap *.h3m);;Карты VCMI (*.vmap);;Карты Героев III (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Сохранить карту</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Карты VCMI (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Вид на поверхность</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation type="unfinished"></translation>
</message>

View File

@ -283,363 +283,363 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Terrenos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Caminos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Ríos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Abrir</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Guardar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Nuevo</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Guardar como...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>Subterráneo/Superficie</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Ver subterráneo</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Pasar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Cortar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Copiar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Pegar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Rellenar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Rellena la selección con obstáculos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Rejilla</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Título y descripción del mapa</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Configuración de jugadores</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Deshacer</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Rehacer</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Borrar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Neutral</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Validar</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Actualizar apariencia</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Recrear obstáculos</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Jugador 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Jugador 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Jugador 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Jugador 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Jugador 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Jugador 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Jugador 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Jugador 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Exportar como...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation>Confirmación</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation>Los cambios no guardados se perderán. Está usted seguro ?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Abrir mapa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Todos los mapas soportados (*.vmap *.h3m);;Mapas VCMI (*.vmap);;Mapas HoMM3 (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Guardar mapa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Mapas VCMI (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Tipo</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Ver superficie</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation type="unfinished"></translation>
</message>

View File

@ -283,363 +283,363 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Землі</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Шляхи</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Річки</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Відкрити</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Зберегти</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Створити</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation>Зберегти як...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>П/З</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Дивитись підземелля</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Прохідність</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Вирізати</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Скопіювати</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Вставити</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Заповнити</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Заповнити перешкодами</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Сітка</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Загальний</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Назва та опис мапи</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Налаштування гравців</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Відмінити</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Повторити</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Стерти</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Нейтральний</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Перевірити</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Оновити вигляд</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Оновити перешкоди</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Гравець 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Гравець 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Гравець 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Гравець 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Гравець 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Гравець 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Гравець 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Гравець 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Експортувати як...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Відкрити мапу</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Всі підтримувані мапи (*.vmap *.h3m);;Мапи VCMI (*.vmap);;Мапи HoMM3 (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Зберегти мапу</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Мапи VCMI</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Дивитись поверхню</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation type="unfinished"></translation>
</message>

View File

@ -278,32 +278,32 @@
<translation>Giá trị</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="897"/>
<location filename="../mainwindow.ui" line="865"/>
<source>Terrains</source>
<translation>Đa hình</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="940"/>
<location filename="../mainwindow.ui" line="908"/>
<source>Roads</source>
<translation>Đưng</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="980"/>
<location filename="../mainwindow.ui" line="948"/>
<source>Rivers</source>
<translation>Sông</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1052"/>
<location filename="../mainwindow.ui" line="1016"/>
<source>Open</source>
<translation>Mở</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1064"/>
<location filename="../mainwindow.ui" line="1024"/>
<source>Save</source>
<translation>Lưu</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1076"/>
<location filename="../mainwindow.ui" line="1032"/>
<source>New</source>
<translation>Tạo mới</translation>
</message>
@ -313,333 +313,333 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="845"/>
<location filename="../mainwindow.ui" line="813"/>
<source>Painting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1014"/>
<location filename="../mainwindow.ui" line="982"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1084"/>
<location filename="../mainwindow.ui" line="1040"/>
<source>Save as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1087"/>
<location filename="../mainwindow.ui" line="1043"/>
<source>Ctrl+Shift+S</source>
<translation>Ctrl+Shift+S</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1096"/>
<location filename="../mainwindow.ui" line="1048"/>
<source>U/G</source>
<translation>U/G</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1099"/>
<location filename="../mainwindow.cpp" line="788"/>
<location filename="../mainwindow.ui" line="1051"/>
<location filename="../mainwindow.cpp" line="806"/>
<source>View underground</source>
<translation>Xem hang ngầm</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1114"/>
<location filename="../mainwindow.ui" line="1062"/>
<source>Pass</source>
<translation>Đi qua</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1126"/>
<location filename="../mainwindow.ui" line="1070"/>
<source>Cut</source>
<translation>Cắt</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1138"/>
<location filename="../mainwindow.ui" line="1078"/>
<source>Copy</source>
<translation>Sao chép</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1150"/>
<location filename="../mainwindow.ui" line="1086"/>
<source>Paste</source>
<translation>Dán</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1162"/>
<location filename="../mainwindow.ui" line="1094"/>
<source>Fill</source>
<translation>Làm đy</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1165"/>
<location filename="../mainwindow.ui" line="1097"/>
<source>Fills the selection with obstacles</source>
<translation>Làm đy vùng chọn với vật cản</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1180"/>
<location filename="../mainwindow.ui" line="1108"/>
<source>Grid</source>
<translation>Đưng kẻ</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1191"/>
<location filename="../mainwindow.ui" line="1119"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1194"/>
<location filename="../mainwindow.ui" line="1122"/>
<source>Map title and description</source>
<translation>Tên bản đ tả</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.ui" line="1133"/>
<source>Players settings</source>
<translation>Cài đt người chơi</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1220"/>
<location filename="../mainwindow.ui" line="1223"/>
<location filename="../mainwindow.ui" line="1144"/>
<location filename="../mainwindow.ui" line="1147"/>
<source>Undo</source>
<translation>Hoàn tác</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1241"/>
<location filename="../mainwindow.ui" line="1161"/>
<source>Redo</source>
<translation>Làm lại</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1259"/>
<location filename="../mainwindow.ui" line="1175"/>
<source>Erase</source>
<translation>Xóa</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1270"/>
<location filename="../mainwindow.ui" line="1186"/>
<source>Neutral</source>
<translation>Trung lập</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1278"/>
<location filename="../mainwindow.ui" line="1194"/>
<source>Validate</source>
<translation>Hiệu lực</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1289"/>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.ui" line="1205"/>
<location filename="../mainwindow.cpp" line="1077"/>
<location filename="../mainwindow.cpp" line="1081"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Update appearance</source>
<translation>Cập nhật hiện thị</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1300"/>
<location filename="../mainwindow.ui" line="1216"/>
<source>Recreate obstacles</source>
<translation>Tạo lại vật cản</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1311"/>
<location filename="../mainwindow.ui" line="1227"/>
<source>Player 1</source>
<translation>Người chơi 1</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1322"/>
<location filename="../mainwindow.ui" line="1238"/>
<source>Player 2</source>
<translation>Người chơi 2</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1333"/>
<location filename="../mainwindow.ui" line="1249"/>
<source>Player 3</source>
<translation>Người chơi 3</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1344"/>
<location filename="../mainwindow.ui" line="1260"/>
<source>Player 4</source>
<translation>Người chơi 4</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1355"/>
<location filename="../mainwindow.ui" line="1271"/>
<source>Player 5</source>
<translation>Người chơi 5</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1366"/>
<location filename="../mainwindow.ui" line="1282"/>
<source>Player 6</source>
<translation>Người chơi 6</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1377"/>
<location filename="../mainwindow.ui" line="1293"/>
<source>Player 7</source>
<translation>Người chơi 7</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1388"/>
<location filename="../mainwindow.ui" line="1304"/>
<source>Player 8</source>
<translation>Người chơi 8</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1396"/>
<location filename="../mainwindow.ui" line="1312"/>
<source>Export as...</source>
<translation>Xuất thành...</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1408"/>
<location filename="../mainwindow.ui" line="1320"/>
<source>Translations</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1411"/>
<location filename="../mainwindow.ui" line="1323"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1416"/>
<location filename="../mainwindow.ui" line="1419"/>
<location filename="../mainwindow.ui" line="1328"/>
<location filename="../mainwindow.ui" line="1331"/>
<source>h3m converter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1428"/>
<location filename="../mainwindow.ui" line="1336"/>
<source>Lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1431"/>
<location filename="../mainwindow.ui" line="1339"/>
<source>Lock objects on map to avoid unnecessary changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1434"/>
<location filename="../mainwindow.ui" line="1342"/>
<source>Ctrl+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1443"/>
<location filename="../mainwindow.ui" line="1347"/>
<source>Unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1446"/>
<location filename="../mainwindow.ui" line="1350"/>
<source>Unlock all objects on the map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1449"/>
<location filename="../mainwindow.ui" line="1353"/>
<source>Ctrl+Shift+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1458"/>
<location filename="../mainwindow.ui" line="1358"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1461"/>
<location filename="../mainwindow.ui" line="1361"/>
<source>Ctrl+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1470"/>
<location filename="../mainwindow.ui" line="1366"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1473"/>
<location filename="../mainwindow.ui" line="1369"/>
<source>Ctrl+-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1482"/>
<location filename="../mainwindow.ui" line="1374"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="1485"/>
<location filename="../mainwindow.ui" line="1377"/>
<source>Ctrl+Shift+=</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Confirmation</source>
<translation>Xác nhận</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<location filename="../mainwindow.cpp" line="280"/>
<source>Unsaved changes will be lost, are you sure?</source>
<translation>Thay đi chưa lưu sẽ bị mất, bạn chắc chắn?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<location filename="../mainwindow.cpp" line="406"/>
<source>Open map</source>
<translation>Mở bản đ</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="390"/>
<location filename="../mainwindow.cpp" line="408"/>
<source>All supported maps (*.vmap *.h3m);;VCMI maps(*.vmap);;HoMM3 maps(*.h3m)</source>
<translation>Tất cả bản đ hỗ trợ (*.vmap *.h3m);;Bản đ VCMI (*.vmap);;Bản đ HoMM3 (*.h3m)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>Save map</source>
<translation>Lưu bản đ</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="441"/>
<location filename="../mainwindow.cpp" line="459"/>
<source>VCMI maps (*.vmap)</source>
<translation>Bản đ VCMI (*.vmap)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="630"/>
<location filename="../mainwindow.cpp" line="648"/>
<source>Type</source>
<translation>Loại</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="792"/>
<location filename="../mainwindow.cpp" line="810"/>
<source>View surface</source>
<translation>Xem bề mặt</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1059"/>
<location filename="../mainwindow.cpp" line="1077"/>
<source>No objects selected</source>
<translation>Không mục tiêu đưc chọn</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1063"/>
<location filename="../mainwindow.cpp" line="1081"/>
<source>This operation is irreversible. Do you want to continue?</source>
<translation>Thao tác này không thể đo ngược. Bạn muốn tiếp tục?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1120"/>
<location filename="../mainwindow.cpp" line="1138"/>
<source>Errors occurred. %1 objects were not updated</source>
<translation>Xảy ra lỗi. %1 mục tiêu không đưc cập nhật</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1160"/>
<location filename="../mainwindow.cpp" line="1178"/>
<source>Save to image</source>
<translation>Lưu thành nh</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1179"/>
<location filename="../mainwindow.cpp" line="1197"/>
<source>Select maps to convert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1181"/>
<location filename="../mainwindow.cpp" line="1199"/>
<source>HoMM3 maps(*.h3m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1185"/>
<location filename="../mainwindow.cpp" line="1203"/>
<source>Choose directory to save converted maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Operation completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1198"/>
<location filename="../mainwindow.cpp" line="1216"/>
<source>Successfully converted %1 maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="1202"/>
<location filename="../mainwindow.cpp" line="1220"/>
<source>Failed to convert the map. Abort operation</source>
<translation type="unfinished"></translation>
</message>

View File

@ -441,6 +441,11 @@ void CGameHandler::changeSecSkill(const CGHeroInstance * hero, SecondarySkill wh
if (hero->visitedTown)
giveSpells(hero->visitedTown, hero);
// Our scouting range may have changed - update it
if (hero->getOwner().isValidPlayer())
changeFogOfWar(hero->getSightCenter(), hero->getSightRadius(), hero->getOwner(), ETileVisibility::REVEALED);
}
void CGameHandler::handleClientDisconnection(std::shared_ptr<CConnection> c)
@ -4299,6 +4304,9 @@ void CGameHandler::changeFogOfWar(int3 center, ui32 radius, PlayerColor player,
void CGameHandler::changeFogOfWar(std::unordered_set<int3> &tiles, PlayerColor player, ETileVisibility mode)
{
if (tiles.empty())
return;
FoWChange fow;
fow.tiles = tiles;
fow.player = player;

View File

@ -177,13 +177,16 @@ bool TurnOrderProcessor::computeCanActSimultaneously(PlayerColor active, PlayerC
assert(activeInfo);
assert(waitingInfo);
if (gameHandler->hasBothPlayersAtSameConnection(active, waiting))
if (activeInfo->human != waitingInfo->human)
{
// only one AI and one human can play simultaneously from single connection
if (!gameHandler->getStartInfo()->simturnsInfo.allowHumanWithAI)
return false;
// only one AI and one human can play simultaneously from single connection
if (activeInfo->human == waitingInfo->human)
}
else
{
// two AI or two humans in hotseat can't play at the same time
if (gameHandler->hasBothPlayersAtSameConnection(active, waiting))
return false;
}