1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-15 01:24:45 +02:00

Merge branch 'develop' into main_menu_1.7

This commit is contained in:
George King
2025-03-07 17:25:53 +01:00
committed by GitHub
665 changed files with 58282 additions and 10864 deletions

View File

@ -29,7 +29,7 @@ jobs:
before_install: linux_qt5.sh before_install: linux_qt5.sh
preset: linux-gcc-test preset: linux-gcc-test
- platform: linux - platform: linux
os: ubuntu-20.04 os: ubuntu-22.04
test: 0 test: 0
before_install: linux_qt5.sh before_install: linux_qt5.sh
preset: linux-gcc-debug preset: linux-gcc-debug
@ -246,6 +246,9 @@ jobs:
if [[ ${{matrix.preset}} == linux-gcc-test ]] if [[ ${{matrix.preset}} == linux-gcc-test ]]
then then
cmake -DENABLE_CCACHE:BOOL=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 --preset ${{ matrix.preset }} cmake -DENABLE_CCACHE:BOOL=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 --preset ${{ matrix.preset }}
elif [[ ${{matrix.preset}} == linux-gcc-debug ]]
then
cmake -DENABLE_CCACHE:BOOL=ON -DCMAKE_C_COMPILER=gcc-10 -DCMAKE_CXX_COMPILER=g++-10 --preset ${{ matrix.preset }}
elif [[ (${{matrix.preset}} == android-conan-ninja-release) && (${{github.ref}} != 'refs/heads/master') ]] elif [[ (${{matrix.preset}} == android-conan-ninja-release) && (${{github.ref}} != 'refs/heads/master') ]]
then then
cmake -DENABLE_CCACHE:BOOL=ON -DANDROID_GRADLE_PROPERTIES="applicationIdSuffix=.daily;signingConfig=dailySigning;applicationLabel=VCMI daily;applicationVariant=daily" --preset ${{ matrix.preset }} cmake -DENABLE_CCACHE:BOOL=ON -DANDROID_GRADLE_PROPERTIES="applicationIdSuffix=.daily;signingConfig=dailySigning;applicationLabel=VCMI daily;applicationVariant=daily" --preset ${{ matrix.preset }}
@ -355,7 +358,7 @@ jobs:
deploy-src: deploy-src:
if: always() && github.ref == 'refs/heads/master' if: always() && github.ref == 'refs/heads/master'
runs-on: ubuntu-latest runs-on: ubuntu-24.04
defaults: defaults:
run: run:
shell: bash shell: bash
@ -396,7 +399,7 @@ jobs:
run: | run: |
find . -path ./.git -prune -o -path ./AI/FuzzyLite -prune -o -path ./test/googletest \ find . -path ./.git -prune -o -path ./AI/FuzzyLite -prune -o -path ./test/googletest \
-o -path ./osx -prune -o -type f \ -o -path ./osx -prune -o -type f \
-not -name '*.png' -and -not -name '*.ttf' -and -not -name '*.wav' -and -not -name '*.webm' -and -not -name '*.ico' -and -not -name '*.bat' -print0 | \ -not -name '*.png' -and -not -name '*.ttf' -and -not -name '*.wav' -and -not -name '*.webm' -and -not -name '*.ico' -and -not -name '*.bat' -and -not -name '*.cmd' -and -not -name '*.iss' -and -not -name '*.isl' -print0 | \
{ ! xargs -0 grep -l -z -P '\r\n'; } { ! xargs -0 grep -l -z -P '\r\n'; }
- name: Validate JSON - name: Validate JSON
@ -405,7 +408,7 @@ jobs:
python3 CI/validate_json.py python3 CI/validate_json.py
- name: Validate Markdown - name: Validate Markdown
uses: DavidAnson/markdownlint-cli2-action@v18 uses: DavidAnson/markdownlint-cli2-action@v19
with: with:
config: 'CI/example.markdownlint-cli2.jsonc' config: 'CI/example.markdownlint-cli2.jsonc'
globs: '**/*.md' globs: '**/*.md'

16
.github/workflows/on-release.yml vendored Normal file
View File

@ -0,0 +1,16 @@
name: Notify other repos of release
on:
release:
types: [published]
jobs:
notify_repos:
if: ${{ !github.event.release.prerelease }}
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch only for releases
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.HOMEBREW_TOKEN_SECRET }}
repository: vcmi/homebrew-vcmi
event-type: on-release
client-payload: '{"release": ${{ toJson(github.event.release) }}}'

View File

@ -38,7 +38,7 @@ void DamageCache::buildObstacleDamageCache(std::shared_ptr<HypotheticBattle> hb,
if(!spellObstacle || !obst->triggersEffects()) if(!spellObstacle || !obst->triggersEffects())
continue; continue;
auto triggerAbility = VLC->spells()->getById(obst->getTrigger()); auto triggerAbility = LIBRARY->spells()->getById(obst->getTrigger());
auto triggerIsNegative = triggerAbility->isNegative() || triggerAbility->isDamage(); auto triggerIsNegative = triggerAbility->isNegative() || triggerAbility->isDamage();
if(!triggerIsNegative) if(!triggerIsNegative)

View File

@ -384,7 +384,7 @@ BattleAction BattleEvaluator::goTowardsNearest(const CStack * stack, const Battl
BattleHexArray targetHexes = hexes; BattleHexArray targetHexes = hexes;
targetHexes.sort([&](const BattleHex & h1, const BattleHex & h2) -> bool targetHexes.sort([&reachability](const BattleHex & h1, const BattleHex & h2) -> bool
{ {
return reachability.distances[h1.toInt()] < reachability.distances[h2.toInt()]; return reachability.distances[h1.toInt()] < reachability.distances[h2.toInt()];
}); });
@ -426,7 +426,7 @@ BattleAction BattleEvaluator::goTowardsNearest(const CStack * stack, const Battl
{ {
if(obst->triggersEffects()) if(obst->triggersEffects())
{ {
auto triggerAbility = VLC->spells()->getById(obst->getTrigger()); auto triggerAbility = LIBRARY->spells()->getById(obst->getTrigger());
auto triggerIsNegative = triggerAbility->isNegative() || triggerAbility->isDamage(); auto triggerIsNegative = triggerAbility->isNegative() || triggerAbility->isDamage();
if(triggerIsNegative) if(triggerIsNegative)
@ -435,7 +435,7 @@ BattleAction BattleEvaluator::goTowardsNearest(const CStack * stack, const Battl
} }
// Flying stack doesn't go hex by hex, so we can't backtrack using predecessors. // Flying stack doesn't go hex by hex, so we can't backtrack using predecessors.
// We just check all available hexes and pick the one closest to the target. // We just check all available hexes and pick the one closest to the target.
auto nearestAvailableHex = vstd::minElementByFun(avHexes, [&](const BattleHex & hex) -> int auto nearestAvailableHex = vstd::minElementByFun(avHexes, [this, &bestNeighbour, &stack, &obstacleHexes](const BattleHex & hex) -> int
{ {
const int NEGATIVE_OBSTACLE_PENALTY = 100; // avoid landing on negative obstacle (moat, fire wall, etc) const int NEGATIVE_OBSTACLE_PENALTY = 100; // avoid landing on negative obstacle (moat, fire wall, etc)
const int BLOCKED_STACK_PENALTY = 100; // avoid landing on moat const int BLOCKED_STACK_PENALTY = 100; // avoid landing on moat
@ -494,7 +494,7 @@ bool BattleEvaluator::attemptCastingSpell(const CStack * activeStack)
//Get all spells we can cast //Get all spells we can cast
std::vector<const CSpell*> possibleSpells; std::vector<const CSpell*> possibleSpells;
for (auto const & s : VLC->spellh->objects) for (auto const & s : LIBRARY->spellh->objects)
if (s->canBeCast(cb->getBattle(battleID).get(), spells::Mode::HERO, hero)) if (s->canBeCast(cb->getBattle(battleID).get(), spells::Mode::HERO, hero))
possibleSpells.push_back(s.get()); possibleSpells.push_back(s.get());

View File

@ -349,7 +349,7 @@ MoveTarget BattleExchangeEvaluator::findMoveTowardsUnreachable(
logAi->trace( logAi->trace(
"Checking movement towards %d of %s", "Checking movement towards %d of %s",
enemy->getCount(), enemy->getCount(),
VLC->creatures()->getById(enemy->creatureId())->getJsonKey()); LIBRARY->creatures()->getById(enemy->creatureId())->getJsonKey());
auto distance = dists.distToNearestNeighbour(activeStack, enemy); auto distance = dists.distToNearestNeighbour(activeStack, enemy);
@ -506,7 +506,7 @@ ReachabilityData BattleExchangeEvaluator::getExchangeUnits(
uint8_t turn, uint8_t turn,
PotentialTargets & targets, PotentialTargets & targets,
std::shared_ptr<HypotheticBattle> hb, std::shared_ptr<HypotheticBattle> hb,
battle::Units additionalUnits) const const battle::Units & additionalUnits) const
{ {
ReachabilityData result; ReachabilityData result;
@ -636,7 +636,7 @@ BattleScore BattleExchangeEvaluator::calculateExchange(
PotentialTargets & targets, PotentialTargets & targets,
DamageCache & damageCache, DamageCache & damageCache,
std::shared_ptr<HypotheticBattle> hb, std::shared_ptr<HypotheticBattle> hb,
battle::Units additionalUnits) const const battle::Units & additionalUnits) const
{ {
#if BATTLE_TRACE_LEVEL>=1 #if BATTLE_TRACE_LEVEL>=1
logAi->trace("Battle exchange at %d", ap.attack.shooting ? ap.dest.toInt() : ap.from.toInt()); logAi->trace("Battle exchange at %d", ap.attack.shooting ? ap.dest.toInt() : ap.from.toInt());
@ -1002,7 +1002,7 @@ const battle::Units & BattleExchangeEvaluator::getOneTurnReachableUnits(uint8_t
} }
// avoid blocking path for stronger stack by weaker stack // avoid blocking path for stronger stack by weaker stack
bool BattleExchangeEvaluator::checkPositionBlocksOurStacks(HypotheticBattle & hb, const battle::Unit * activeUnit, const BattleHex & position) bool BattleExchangeEvaluator::checkPositionBlocksOurStacks(const HypotheticBattle & hb, const battle::Unit * activeUnit, const BattleHex & position)
{ {
const int BLOCKING_THRESHOLD = 70; const int BLOCKING_THRESHOLD = 70;
const int BLOCKING_OWN_ATTACK_PENALTY = 100; const int BLOCKING_OWN_ATTACK_PENALTY = 100;

View File

@ -133,7 +133,6 @@ class ReachabilityMapCache
std::map<uint32_t, ReachabilityInfo> unitReachabilityMap; // unit ID -> reachability std::map<uint32_t, ReachabilityInfo> unitReachabilityMap; // unit ID -> reachability
std::map<uint32_t, PerTurnData> hexReachabilityPerTurn; std::map<uint32_t, PerTurnData> hexReachabilityPerTurn;
//const ReachabilityInfo & update();
battle::Units computeOneTurnReachableUnits(std::shared_ptr<CBattleInfoCallback> cb, std::shared_ptr<Environment> env, const std::vector<battle::Units> & turnOrder, uint8_t turn, const BattleHex & hex); battle::Units computeOneTurnReachableUnits(std::shared_ptr<CBattleInfoCallback> cb, std::shared_ptr<Environment> env, const std::vector<battle::Units> & turnOrder, uint8_t turn, const BattleHex & hex);
public: public:
const battle::Units & getOneTurnReachableUnits(std::shared_ptr<CBattleInfoCallback> cb, std::shared_ptr<Environment> env, const std::vector<battle::Units> & turnOrder, uint8_t turn, const BattleHex & hex); const battle::Units & getOneTurnReachableUnits(std::shared_ptr<CBattleInfoCallback> cb, std::shared_ptr<Environment> env, const std::vector<battle::Units> & turnOrder, uint8_t turn, const BattleHex & hex);
@ -158,7 +157,7 @@ private:
PotentialTargets & targets, PotentialTargets & targets,
DamageCache & damageCache, DamageCache & damageCache,
std::shared_ptr<HypotheticBattle> hb, std::shared_ptr<HypotheticBattle> hb,
battle::Units additionalUnits = {}) const; const battle::Units & additionalUnits = {}) const;
bool canBeHitThisTurn(const AttackPossibility & ap); bool canBeHitThisTurn(const AttackPossibility & ap);
@ -193,9 +192,9 @@ public:
uint8_t turn, uint8_t turn,
PotentialTargets & targets, PotentialTargets & targets,
std::shared_ptr<HypotheticBattle> hb, std::shared_ptr<HypotheticBattle> hb,
battle::Units additionalUnits = {}) const; const battle::Units & additionalUnits = {}) const;
bool checkPositionBlocksOurStacks(HypotheticBattle & hb, const battle::Unit * unit, const BattleHex & position); bool checkPositionBlocksOurStacks(const HypotheticBattle & hb, const battle::Unit * unit, const BattleHex & position);
MoveTarget findMoveTowardsUnreachable( MoveTarget findMoveTowardsUnreachable(
const battle::Unit * activeStack, const battle::Unit * activeStack,

View File

@ -163,7 +163,7 @@ void AIGateway::showTavernWindow(const CGObjectInstance * object, const CGHeroIn
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "TavernWindow"); status.addQuery(queryID, "TavernWindow");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void AIGateway::showThievesGuildWindow(const CGObjectInstance * obj) void AIGateway::showThievesGuildWindow(const CGObjectInstance * obj)
@ -299,7 +299,7 @@ void AIGateway::heroExchangeStarted(ObjectInstanceID hero1, ObjectInstanceID her
status.addQuery(query, boost::str(boost::format("Exchange between heroes %s (%d) and %s (%d)") % firstHero->getNameTranslated() % firstHero->tempOwner % secondHero->getNameTranslated() % secondHero->tempOwner)); status.addQuery(query, boost::str(boost::format("Exchange between heroes %s (%d) and %s (%d)") % firstHero->getNameTranslated() % firstHero->tempOwner % secondHero->getNameTranslated() % secondHero->tempOwner));
requestActionASAP([=]() requestActionASAP([this, firstHero, secondHero, query]()
{ {
auto transferFrom2to1 = [this](const CGHeroInstance * h1, const CGHeroInstance * h2) -> void auto transferFrom2to1 = [this](const CGHeroInstance * h1, const CGHeroInstance * h2) -> void
{ {
@ -338,7 +338,7 @@ void AIGateway::showRecruitmentDialog(const CGDwelling * dwelling, const CArmedI
status.addQuery(queryID, "RecruitmentDialog"); status.addQuery(queryID, "RecruitmentDialog");
requestActionASAP([=](){ requestActionASAP([this, dwelling, dst, queryID](){
recruitCreatures(dwelling, dst); recruitCreatures(dwelling, dst);
answerQuery(queryID, 0); answerQuery(queryID, 0);
}); });
@ -411,6 +411,7 @@ void AIGateway::heroCreated(const CGHeroInstance * h)
{ {
LOG_TRACE(logAi); LOG_TRACE(logAi);
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
nullkiller->invalidatePathfinderData(); // new hero needs to look around
} }
void AIGateway::advmapSpellCast(const CGHeroInstance * caster, SpellID spellID) void AIGateway::advmapSpellCast(const CGHeroInstance * caster, SpellID spellID)
@ -456,7 +457,7 @@ void AIGateway::showUniversityWindow(const IMarket * market, const CGHeroInstanc
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "UniversityWindow"); status.addQuery(queryID, "UniversityWindow");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void AIGateway::heroManaPointsChanged(const CGHeroInstance * hero) void AIGateway::heroManaPointsChanged(const CGHeroInstance * hero)
@ -532,7 +533,7 @@ void AIGateway::showMarketWindow(const IMarket * market, const CGHeroInstance *
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "MarketWindow"); status.addQuery(queryID, "MarketWindow");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void AIGateway::showWorldViewEx(const std::vector<ObjectPosInfo> & objectPositions, bool showTerrain) void AIGateway::showWorldViewEx(const std::vector<ObjectPosInfo> & objectPositions, bool showTerrain)
@ -588,7 +589,7 @@ void AIGateway::yourTurn(QueryID queryID)
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
nullkiller->invalidatePathfinderData(); nullkiller->invalidatePathfinderData();
status.addQuery(queryID, "YourTurn"); status.addQuery(queryID, "YourTurn");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
status.startedTurn(); status.startedTurn();
makingTurn = std::make_unique<boost::thread>(&AIGateway::makeTurn, this); makingTurn = std::make_unique<boost::thread>(&AIGateway::makeTurn, this);
} }
@ -601,7 +602,7 @@ void AIGateway::heroGotLevel(const CGHeroInstance * hero, PrimarySkill pskill, s
status.addQuery(queryID, boost::str(boost::format("Hero %s got level %d") % hero->getNameTranslated() % hero->level)); status.addQuery(queryID, boost::str(boost::format("Hero %s got level %d") % hero->getNameTranslated() % hero->level));
HeroPtr hPtr = hero; HeroPtr hPtr = hero;
requestActionASAP([=]() requestActionASAP([this, hPtr, skills, queryID]()
{ {
int sel = 0; int sel = 0;
@ -623,7 +624,7 @@ void AIGateway::commanderGotLevel(const CCommanderInstance * commander, std::vec
LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID); LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID);
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, boost::str(boost::format("Commander %s of %s got level %d") % commander->name % commander->armyObj->nodeName() % (int)commander->level)); status.addQuery(queryID, boost::str(boost::format("Commander %s of %s got level %d") % commander->name % commander->armyObj->nodeName() % (int)commander->level));
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void AIGateway::showBlockingDialog(const std::string & text, const std::vector<Component> & components, QueryID askID, const int soundID, bool selection, bool cancel, bool safeToAutoaccept) void AIGateway::showBlockingDialog(const std::string & text, const std::vector<Component> & components, QueryID askID, const int soundID, bool selection, bool cancel, bool safeToAutoaccept)
@ -638,7 +639,7 @@ void AIGateway::showBlockingDialog(const std::string & text, const std::vector<C
if(!selection && cancel) if(!selection && cancel)
{ {
requestActionASAP([=]() requestActionASAP([this, hero, target, askID]()
{ {
//yes&no -> always answer yes, we are a brave AI :) //yes&no -> always answer yes, we are a brave AI :)
bool answer = true; bool answer = true;
@ -686,7 +687,7 @@ void AIGateway::showBlockingDialog(const std::string & text, const std::vector<C
return; return;
} }
requestActionASAP([=]() requestActionASAP([this, selection, components, hero, askID]()
{ {
int sel = 0; int sel = 0;
@ -748,7 +749,7 @@ void AIGateway::showTeleportDialog(const CGHeroInstance * hero, TeleportChannelI
} }
} }
requestActionASAP([=]() requestActionASAP([this, askID, chosenExit]()
{ {
answerQuery(askID, chosenExit); answerQuery(askID, chosenExit);
}); });
@ -765,7 +766,7 @@ void AIGateway::showGarrisonDialog(const CArmedInstance * up, const CGHeroInstan
status.addQuery(queryID, boost::str(boost::format("Garrison dialog with %s and %s") % s1 % s2)); status.addQuery(queryID, boost::str(boost::format("Garrison dialog with %s and %s") % s1 % s2));
//you can't request action from action-response thread //you can't request action from action-response thread
requestActionASAP([=]() requestActionASAP([this, up, down, removableUnits, queryID]()
{ {
if(removableUnits && up->tempOwner == down->tempOwner && nullkiller->settings->isGarrisonTroopsUsageAllowed() && !cb->getStartInfo()->isRestorationOfErathiaCampaign()) if(removableUnits && up->tempOwner == down->tempOwner && nullkiller->settings->isGarrisonTroopsUsageAllowed() && !cb->getStartInfo()->isRestorationOfErathiaCampaign())
{ {
@ -780,7 +781,7 @@ void AIGateway::showMapObjectSelectDialog(QueryID askID, const Component & icon,
{ {
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(askID, "Map object select query"); status.addQuery(askID, "Map object select query");
requestActionASAP([=](){ answerQuery(askID, selectedObject.getNum()); }); requestActionASAP([this, askID](){ answerQuery(askID, selectedObject.getNum()); });
} }
bool AIGateway::makePossibleUpgrades(const CArmedInstance * obj) bool AIGateway::makePossibleUpgrades(const CArmedInstance * obj)
@ -835,7 +836,7 @@ void AIGateway::makeTurn()
auto day = cb->getDate(Date::DAY); auto day = cb->getDate(Date::DAY);
logAi->info("Player %d (%s) starting turn, day %d", playerID, playerID.toString(), day); logAi->info("Player %d (%s) starting turn, day %d", playerID, playerID.toString(), day);
boost::shared_lock gsLock(CGameState::mutex); std::shared_lock gsLock(CGameState::mutex);
setThreadName("AIGateway::makeTurn"); setThreadName("AIGateway::makeTurn");
if(nullkiller->isOpenMap()) if(nullkiller->isOpenMap())
@ -929,7 +930,7 @@ void AIGateway::pickBestCreatures(const CArmedInstance * destinationArmy, const
const CArmedInstance * armies[] = {destinationArmy, source}; const CArmedInstance * armies[] = {destinationArmy, source};
auto bestArmy = nullkiller->armyManager->getBestArmy(destinationArmy, destinationArmy, source); auto bestArmy = nullkiller->armyManager->getBestArmy(destinationArmy, destinationArmy, source, myCb->getTile(source->visitablePos())->getTerrainID());
for(auto army : armies) for(auto army : armies)
{ {
@ -983,7 +984,7 @@ void AIGateway::pickBestCreatures(const CArmedInstance * destinationArmy, const
&& source->stacksCount() == 1 && source->stacksCount() == 1
&& (!destinationArmy->hasStackAtSlot(i) || destinationArmy->getCreature(i) == targetCreature)) && (!destinationArmy->hasStackAtSlot(i) || destinationArmy->getCreature(i) == targetCreature))
{ {
auto weakest = nullkiller->armyManager->getWeakestCreature(bestArmy); auto weakest = nullkiller->armyManager->getBestUnitForScout(bestArmy, myCb->getTile(source->visitablePos())->getTerrainID());
if(weakest->creature == targetCreature) if(weakest->creature == targetCreature)
{ {
@ -1208,7 +1209,7 @@ void AIGateway::battleEnd(const BattleID & battleID, const BattleResult * br, Qu
{ {
status.addQuery(queryID, "Confirm battle query"); status.addQuery(queryID, "Confirm battle query");
requestActionASAP([=]() requestActionASAP([this, queryID]()
{ {
answerQuery(queryID, 0); answerQuery(queryID, 0);
}); });
@ -1581,7 +1582,7 @@ void AIGateway::buildArmyIn(const CGTownInstance * t)
void AIGateway::finish() void AIGateway::finish()
{ {
//we want to lock to avoid multiple threads from calling makingTurn->join() at same time //we want to lock to avoid multiple threads from calling makingTurn->join() at same time
boost::lock_guard<boost::mutex> multipleCleanupGuard(turnInterruptionMutex); std::lock_guard<std::mutex> multipleCleanupGuard(turnInterruptionMutex);
if(makingTurn) if(makingTurn)
{ {
@ -1597,7 +1598,7 @@ void AIGateway::requestActionASAP(std::function<void()> whatToDo)
{ {
setThreadName("AIGateway::requestActionASAP::whatToDo"); setThreadName("AIGateway::requestActionASAP::whatToDo");
SET_GLOBAL_STATE(this); SET_GLOBAL_STATE(this);
boost::shared_lock gsLock(CGameState::mutex); std::shared_lock gsLock(CGameState::mutex);
whatToDo(); whatToDo();
}); });
@ -1607,6 +1608,7 @@ void AIGateway::requestActionASAP(std::function<void()> whatToDo)
void AIGateway::lostHero(HeroPtr h) 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());
nullkiller->invalidatePathfinderData();
} }
void AIGateway::answerQuery(QueryID queryID, int selection) void AIGateway::answerQuery(QueryID queryID, int selection)
@ -1668,7 +1670,7 @@ AIStatus::~AIStatus()
void AIStatus::setBattle(BattleState BS) void AIStatus::setBattle(BattleState BS)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
LOG_TRACE_PARAMS(logAi, "battle state=%d", (int)BS); LOG_TRACE_PARAMS(logAi, "battle state=%d", (int)BS);
battle = BS; battle = BS;
cv.notify_all(); cv.notify_all();
@ -1676,7 +1678,7 @@ void AIStatus::setBattle(BattleState BS)
BattleState AIStatus::getBattle() BattleState AIStatus::getBattle()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
return battle; return battle;
} }
@ -1689,7 +1691,7 @@ void AIStatus::addQuery(QueryID ID, std::string description)
} }
assert(ID.getNum() >= 0); assert(ID.getNum() >= 0);
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
assert(!vstd::contains(remainingQueries, ID)); assert(!vstd::contains(remainingQueries, ID));
@ -1701,7 +1703,7 @@ void AIStatus::addQuery(QueryID ID, std::string description)
void AIStatus::removeQuery(QueryID ID) void AIStatus::removeQuery(QueryID ID)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
assert(vstd::contains(remainingQueries, ID)); assert(vstd::contains(remainingQueries, ID));
std::string description = remainingQueries[ID]; std::string description = remainingQueries[ID];
@ -1713,40 +1715,40 @@ void AIStatus::removeQuery(QueryID ID)
int AIStatus::getQueriesCount() int AIStatus::getQueriesCount()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
return static_cast<int>(remainingQueries.size()); return static_cast<int>(remainingQueries.size());
} }
void AIStatus::startedTurn() void AIStatus::startedTurn()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
havingTurn = true; havingTurn = true;
cv.notify_all(); cv.notify_all();
} }
void AIStatus::madeTurn() void AIStatus::madeTurn()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
havingTurn = false; havingTurn = false;
cv.notify_all(); cv.notify_all();
} }
void AIStatus::waitTillFree() void AIStatus::waitTillFree()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
while(battle != NO_BATTLE || !remainingQueries.empty() || !objectsBeingVisited.empty() || ongoingHeroMovement) while(battle != NO_BATTLE || !remainingQueries.empty() || !objectsBeingVisited.empty() || ongoingHeroMovement)
cv.wait_for(lock, boost::chrono::milliseconds(10)); cv.wait_for(lock, std::chrono::milliseconds(10));
} }
bool AIStatus::haveTurn() bool AIStatus::haveTurn()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
return havingTurn; return havingTurn;
} }
void AIStatus::attemptedAnsweringQuery(QueryID queryID, int answerRequestID) void AIStatus::attemptedAnsweringQuery(QueryID queryID, int answerRequestID)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
assert(vstd::contains(remainingQueries, queryID)); assert(vstd::contains(remainingQueries, queryID));
std::string description = remainingQueries[queryID]; std::string description = remainingQueries[queryID];
logAi->debug("Attempted answering query %d - %s. Request id=%d. Waiting for results...", queryID, description, answerRequestID); logAi->debug("Attempted answering query %d - %s. Request id=%d. Waiting for results...", queryID, description, answerRequestID);
@ -1773,7 +1775,7 @@ void AIStatus::receivedAnswerConfirmation(int answerRequestID, int result)
void AIStatus::heroVisit(const CGObjectInstance * obj, bool started) void AIStatus::heroVisit(const CGObjectInstance * obj, bool started)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
if(started) if(started)
{ {
objectsBeingVisited.push_back(obj); objectsBeingVisited.push_back(obj);
@ -1791,14 +1793,14 @@ void AIStatus::heroVisit(const CGObjectInstance * obj, bool started)
void AIStatus::setMove(bool ongoing) void AIStatus::setMove(bool ongoing)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
ongoingHeroMovement = ongoing; ongoingHeroMovement = ongoing;
cv.notify_all(); cv.notify_all();
} }
void AIStatus::setChannelProbing(bool ongoing) void AIStatus::setChannelProbing(bool ongoing)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
ongoingChannelProbing = ongoing; ongoingChannelProbing = ongoing;
cv.notify_all(); cv.notify_all();
} }

View File

@ -15,7 +15,7 @@
#include "../../CCallback.h" #include "../../CCallback.h"
#include "../../lib/CThreadHelper.h" #include "../../lib/CThreadHelper.h"
#include "../../lib/GameConstants.h" #include "../../lib/GameConstants.h"
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "../../lib/CCreatureHandler.h" #include "../../lib/CCreatureHandler.h"
#include "../../lib/mapObjects/MiscObjects.h" #include "../../lib/mapObjects/MiscObjects.h"
#include "../../lib/spells/CSpellHandler.h" #include "../../lib/spells/CSpellHandler.h"
@ -27,8 +27,8 @@ namespace NKAI
class AIStatus class AIStatus
{ {
boost::mutex mx; std::mutex mx;
boost::condition_variable cv; std::condition_variable cv;
BattleState battle; BattleState battle;
std::map<QueryID, std::string> remainingQueries; std::map<QueryID, std::string> remainingQueries;
@ -83,7 +83,7 @@ public:
std::shared_ptr<CCallback> myCb; std::shared_ptr<CCallback> myCb;
std::unique_ptr<boost::thread> makingTurn; std::unique_ptr<boost::thread> makingTurn;
private: private:
boost::mutex turnInterruptionMutex; std::mutex turnInterruptionMutex;
public: public:
ObjectInstanceID selectedObject; ObjectInstanceID selectedObject;

View File

@ -328,9 +328,9 @@ double getArtifactBonusRelevance(const CGHeroInstance * hero, const std::shared_
uint64_t totalWeight = 0; uint64_t totalWeight = 0;
uint64_t knownWeight = 0; uint64_t knownWeight = 0;
for (auto spellID : VLC->spellh->getDefaultAllowed()) for (auto spellID : LIBRARY->spellh->getDefaultAllowed())
{ {
auto spell = spellID.toEntity(VLC); auto spell = spellID.toEntity(LIBRARY);
if (!spell->hasSchool(school)) if (!spell->hasSchool(school))
continue; continue;
@ -351,9 +351,9 @@ double getArtifactBonusRelevance(const CGHeroInstance * hero, const std::shared_
uint64_t totalWeight = 0; uint64_t totalWeight = 0;
uint64_t knownWeight = 0; uint64_t knownWeight = 0;
for (auto spellID : VLC->spellh->getDefaultAllowed()) for (auto spellID : LIBRARY->spellh->getDefaultAllowed())
{ {
auto spell = spellID.toEntity(VLC); auto spell = spellID.toEntity(LIBRARY);
if (spell->getLevel() != level) if (spell->getLevel() != level)
continue; continue;
@ -468,7 +468,7 @@ int32_t getArtifactBonusScoreImpl(const std::shared_ptr<Bonus> & bonus)
case BonusType::UNDEAD_RAISE_PERCENTAGE: case BonusType::UNDEAD_RAISE_PERCENTAGE:
return bonus->val * 400; return bonus->val * 400;
case BonusType::GENERATE_RESOURCE: case BonusType::GENERATE_RESOURCE:
return bonus->val * VLC->objh->resVals.at(bonus->subtype.as<GameResID>().getNum()) * 10; return bonus->val * LIBRARY->objh->resVals.at(bonus->subtype.as<GameResID>().getNum()) * 10;
case BonusType::SPELL_DURATION: case BonusType::SPELL_DURATION:
return bonus->val * 200; return bonus->val * 200;
case BonusType::MAGIC_RESISTANCE: case BonusType::MAGIC_RESISTANCE:
@ -569,7 +569,7 @@ int64_t getArtifactScoreForHero(const CGHeroInstance * hero, const CArtifactInst
if (artifact->isScroll()) if (artifact->isScroll())
{ {
auto spellID = artifact->getScrollSpellID(); auto spellID = artifact->getScrollSpellID();
auto spell = spellID.toEntity(VLC); auto spell = spellID.toEntity(LIBRARY);
if (hero->getSpellsInSpellbook().count(spellID)) if (hero->getSpellsInSpellbook().count(spellID))
return 0; return 0;
@ -774,9 +774,9 @@ bool townHasFreeTavern(const CGTownInstance * town)
return canMoveVisitingHeroToGarrison; return canMoveVisitingHeroToGarrison;
} }
uint64_t getHeroArmyStrengthWithCommander(const CGHeroInstance * hero, const CCreatureSet * heroArmy) uint64_t getHeroArmyStrengthWithCommander(const CGHeroInstance * hero, const CCreatureSet * heroArmy, int fortLevel)
{ {
auto armyStrength = heroArmy->getArmyStrength(); auto armyStrength = heroArmy->getArmyStrength(fortLevel);
if(hero && hero->commander && hero->commander->alive) if(hero && hero->commander && hero->commander->alive)
{ {

View File

@ -39,7 +39,7 @@
/*********************** TBB.h ********************/ /*********************** TBB.h ********************/
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "../../lib/CCreatureHandler.h" #include "../../lib/CCreatureHandler.h"
#include "../../lib/spells/CSpellHandler.h" #include "../../lib/spells/CSpellHandler.h"
#include "../../lib/CStopWatch.h" #include "../../lib/CStopWatch.h"
@ -217,7 +217,7 @@ int64_t getArtifactScoreForHero(const CGHeroInstance * hero, const CArtifactInst
int64_t getPotentialArtifactScore(const CArtifact * art); int64_t getPotentialArtifactScore(const CArtifact * art);
bool townHasFreeTavern(const CGTownInstance * town); bool townHasFreeTavern(const CGTownInstance * town);
uint64_t getHeroArmyStrengthWithCommander(const CGHeroInstance * hero, const CCreatureSet * heroArmy); uint64_t getHeroArmyStrengthWithCommander(const CGHeroInstance * hero, const CCreatureSet * heroArmy, int fortLevel = 0);
uint64_t timeElapsed(std::chrono::time_point<std::chrono::high_resolution_clock> start); uint64_t timeElapsed(std::chrono::time_point<std::chrono::high_resolution_clock> start);
@ -259,13 +259,13 @@ public:
void add(std::unique_ptr<T> t) void add(std::unique_ptr<T> t)
{ {
boost::lock_guard<boost::mutex> lock(sync); std::lock_guard<std::mutex> lock(sync);
pool.push_back(std::move(t)); pool.push_back(std::move(t));
} }
ptr_type acquire() ptr_type acquire()
{ {
boost::lock_guard<boost::mutex> lock(sync); std::lock_guard<std::mutex> lock(sync);
bool poolIsEmpty = pool.empty(); bool poolIsEmpty = pool.empty();
T * element = poolIsEmpty T * element = poolIsEmpty
? elementFactory().release() ? elementFactory().release()
@ -294,7 +294,7 @@ private:
std::vector<std::unique_ptr<T>> pool; std::vector<std::unique_ptr<T>> pool;
std::function<std::unique_ptr<T>()> elementFactory; std::function<std::unique_ptr<T>()> elementFactory;
std::shared_ptr<SharedPool<T> *> instance_tracker; std::shared_ptr<SharedPool<T> *> instance_tracker;
boost::mutex sync; std::mutex sync;
}; };
} }

View File

@ -13,8 +13,10 @@
#include "../Engine/Nullkiller.h" #include "../Engine/Nullkiller.h"
#include "../../../CCallback.h" #include "../../../CCallback.h"
#include "../../../lib/mapObjects/MapObjects.h" #include "../../../lib/mapObjects/MapObjects.h"
#include "../../../lib/mapping/CMapDefines.h"
#include "../../../lib/IGameSettings.h" #include "../../../lib/IGameSettings.h"
#include "../../../lib/GameConstants.h" #include "../../../lib/GameConstants.h"
#include "../../../lib/TerrainHandler.h"
namespace NKAI namespace NKAI
{ {
@ -76,7 +78,7 @@ std::vector<SlotInfo> ArmyManager::toSlotInfo(std::vector<creInfo> army) const
uint64_t ArmyManager::howManyReinforcementsCanGet(const CGHeroInstance * hero, const CCreatureSet * source) const uint64_t ArmyManager::howManyReinforcementsCanGet(const CGHeroInstance * hero, const CCreatureSet * source) const
{ {
return howManyReinforcementsCanGet(hero, hero, source); return howManyReinforcementsCanGet(hero, hero, source, ai->cb->getTile(hero->visitablePos())->getTerrainID());
} }
std::vector<SlotInfo> ArmyManager::getSortedSlots(const CCreatureSet * target, const CCreatureSet * source) const std::vector<SlotInfo> ArmyManager::getSortedSlots(const CCreatureSet * target, const CCreatureSet * source) const
@ -111,17 +113,59 @@ std::vector<SlotInfo> ArmyManager::getSortedSlots(const CCreatureSet * target, c
return resultingArmy; return resultingArmy;
} }
std::vector<SlotInfo>::iterator ArmyManager::getWeakestCreature(std::vector<SlotInfo> & army) const std::vector<SlotInfo>::iterator ArmyManager::getBestUnitForScout(std::vector<SlotInfo> & army, const TerrainId & armyTerrain) const
{ {
auto weakest = boost::min_element(army, [](const SlotInfo & left, const SlotInfo & right) -> bool uint64_t totalPower = 0;
for (const auto & unit : army)
totalPower += unit.power;
int baseMovementCost = cb->getSettings().getInteger(EGameSettings::HEROES_MOVEMENT_COST_BASE);
bool terrainHasPenalty = armyTerrain.hasValue() && armyTerrain.toEntity(LIBRARY)->moveCost != baseMovementCost;
// arbitrary threshold - don't give scout more than specified part of total AI value of our army
uint64_t maxUnitValue = totalPower / 100;
const auto & movementPointsLimits = cb->getSettings().getVector(EGameSettings::HEROES_MOVEMENT_POINTS_LAND);
auto fastest = boost::min_element(army, [&](const SlotInfo & left, const SlotInfo & right) -> bool
{ {
if(left.creature->getLevel() != right.creature->getLevel()) uint64_t leftUnitPower = left.power / left.count;
return left.creature->getLevel() < right.creature->getLevel(); uint64_t rightUnitPower = left.power / left.count;
bool leftUnitIsWeak = leftUnitPower < maxUnitValue || left.creature->getLevel() < 4;
return left.creature->getMovementRange() > right.creature->getMovementRange(); bool rightUnitIsWeak = rightUnitPower < maxUnitValue || right.creature->getLevel() < 4;
if (leftUnitIsWeak != rightUnitIsWeak)
return leftUnitIsWeak;
if (terrainHasPenalty)
{
auto leftNativeTerrain = left.creature->getFactionID().toFaction()->nativeTerrain;
auto rightNativeTerrain = right.creature->getFactionID().toFaction()->nativeTerrain;
if (leftNativeTerrain != rightNativeTerrain)
{
if (leftNativeTerrain == armyTerrain)
return true;
if (rightNativeTerrain == armyTerrain)
return false;
}
}
int leftEffectiveMovement = std::min<int>(movementPointsLimits.size() - 1, left.creature->getMovementRange());
int rightEffectiveMovement = std::min<int>(movementPointsLimits.size() - 1, right.creature->getMovementRange());
int leftMovementPointsLimit = movementPointsLimits[leftEffectiveMovement];
int rightMovementPointsLimit = movementPointsLimits[rightEffectiveMovement];
if (leftMovementPointsLimit != rightMovementPointsLimit)
return leftMovementPointsLimit > rightMovementPointsLimit;
return leftUnitPower < rightUnitPower;
}); });
return weakest; return fastest;
} }
class TemporaryArmy : public CArmedInstance class TemporaryArmy : public CArmedInstance
@ -134,7 +178,7 @@ public:
} }
}; };
std::vector<SlotInfo> ArmyManager::getBestArmy(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source) const std::vector<SlotInfo> ArmyManager::getBestArmy(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source, const TerrainId & armyTerrain) const
{ {
auto sortedSlots = getSortedSlots(target, source); auto sortedSlots = getSortedSlots(target, source);
@ -218,7 +262,7 @@ std::vector<SlotInfo> ArmyManager::getBestArmy(const IBonusBearer * armyCarrier,
&& allowedFactions.size() == alignmentMap.size() && allowedFactions.size() == alignmentMap.size()
&& source->needsLastStack()) && source->needsLastStack())
{ {
auto weakest = getWeakestCreature(resultingArmy); auto weakest = getBestUnitForScout(resultingArmy, armyTerrain);
if(weakest->count == 1) if(weakest->count == 1)
{ {
@ -398,14 +442,14 @@ std::vector<creInfo> ArmyManager::getArmyAvailableToBuy(
return creaturesInDwellings; return creaturesInDwellings;
} }
ui64 ArmyManager::howManyReinforcementsCanGet(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source) const ui64 ArmyManager::howManyReinforcementsCanGet(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source, const TerrainId & armyTerrain) const
{ {
if(source->stacksCount() == 0) if(source->stacksCount() == 0)
{ {
return 0; return 0;
} }
auto bestArmy = getBestArmy(armyCarrier, target, source); auto bestArmy = getBestArmy(armyCarrier, target, source, armyTerrain);
uint64_t newArmy = 0; uint64_t newArmy = 0;
uint64_t oldArmy = target->getArmyStrength(); uint64_t oldArmy = target->getArmyStrength();

View File

@ -13,7 +13,7 @@
#include "../AIUtility.h" #include "../AIUtility.h"
#include "../../../lib/GameConstants.h" #include "../../../lib/GameConstants.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
namespace NKAI namespace NKAI
{ {
@ -53,10 +53,11 @@ public:
virtual ui64 howManyReinforcementsCanGet( virtual ui64 howManyReinforcementsCanGet(
const IBonusBearer * armyCarrier, const IBonusBearer * armyCarrier,
const CCreatureSet * target, const CCreatureSet * target,
const CCreatureSet * source) const = 0; const CCreatureSet * source,
const TerrainId & armyTerrain) const = 0;
virtual std::vector<SlotInfo> getBestArmy(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source) const = 0; virtual std::vector<SlotInfo> getBestArmy(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source, const TerrainId & armyTerrain) const = 0;
virtual std::vector<SlotInfo>::iterator getWeakestCreature(std::vector<SlotInfo> & army) const = 0; virtual std::vector<SlotInfo>::iterator getBestUnitForScout(std::vector<SlotInfo> & army, const TerrainId & armyTerrain) const = 0;
virtual std::vector<SlotInfo> getSortedSlots(const CCreatureSet * target, const CCreatureSet * source) const = 0; virtual std::vector<SlotInfo> getSortedSlots(const CCreatureSet * target, const CCreatureSet * source) const = 0;
virtual std::vector<SlotInfo> toSlotInfo(std::vector<creInfo> creatures) const = 0; virtual std::vector<SlotInfo> toSlotInfo(std::vector<creInfo> creatures) const = 0;
@ -97,9 +98,9 @@ public:
uint8_t turn = 0) const override; uint8_t turn = 0) const override;
ui64 howManyReinforcementsCanGet(const CGHeroInstance * hero, const CCreatureSet * source) const override; ui64 howManyReinforcementsCanGet(const CGHeroInstance * hero, const CCreatureSet * source) const override;
ui64 howManyReinforcementsCanGet(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source) const override; ui64 howManyReinforcementsCanGet(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source, const TerrainId & armyTerrain) const override;
std::vector<SlotInfo> getBestArmy(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source) const override; std::vector<SlotInfo> getBestArmy(const IBonusBearer * armyCarrier, const CCreatureSet * target, const CCreatureSet * source, const TerrainId & armyTerrain) const override;
std::vector<SlotInfo>::iterator getWeakestCreature(std::vector<SlotInfo> & army) const override; std::vector<SlotInfo>::iterator getBestUnitForScout(std::vector<SlotInfo> & army, const TerrainId & armyTerrain) const override;
std::vector<SlotInfo> getSortedSlots(const CCreatureSet * target, const CCreatureSet * source) const override; std::vector<SlotInfo> getSortedSlots(const CCreatureSet * target, const CCreatureSet * source) const override;
std::vector<SlotInfo> toSlotInfo(std::vector<creInfo> creatures) const override; std::vector<SlotInfo> toSlotInfo(std::vector<creInfo> creatures) const override;

View File

@ -209,7 +209,7 @@ BuildingInfo BuildAnalyzer::getBuildingOrPrerequisite(
int creatureLevel = -1; int creatureLevel = -1;
int creatureUpgrade = 0; int creatureUpgrade = 0;
if(toBuild.IsDwelling()) if(toBuild.isDwelling())
{ {
creatureLevel = BuildingID::getLevelFromDwelling(toBuild); creatureLevel = BuildingID::getLevelFromDwelling(toBuild);
creatureUpgrade = BuildingID::getUpgradedFromDwelling(toBuild); creatureUpgrade = BuildingID::getUpgradedFromDwelling(toBuild);
@ -267,7 +267,7 @@ BuildingInfo BuildAnalyzer::getBuildingOrPrerequisite(
auto otherDwelling = [](const BuildingID & id) -> bool auto otherDwelling = [](const BuildingID & id) -> bool
{ {
return id.IsDwelling(); return id.isDwelling();
}; };
if(vstd::contains_if(missingBuildings, otherDwelling)) if(vstd::contains_if(missingBuildings, otherDwelling))
@ -291,6 +291,7 @@ BuildingInfo BuildAnalyzer::getBuildingOrPrerequisite(
prerequisite.baseCreatureID = info.baseCreatureID; prerequisite.baseCreatureID = info.baseCreatureID;
prerequisite.prerequisitesCount++; prerequisite.prerequisitesCount++;
prerequisite.armyCost = info.armyCost; prerequisite.armyCost = info.armyCost;
prerequisite.armyStrength = info.armyStrength;
bool haveSameOrBetterFort = false; bool haveSameOrBetterFort = false;
if (prerequisite.id == BuildingID::FORT && highestFort >= CGTownInstance::EFortLevel::FORT) if (prerequisite.id == BuildingID::FORT && highestFort >= CGTownInstance::EFortLevel::FORT)
haveSameOrBetterFort = true; haveSameOrBetterFort = true;
@ -428,7 +429,7 @@ BuildingInfo::BuildingInfo(
} }
else else
{ {
if(id.IsDwelling()) if(id.isDwelling())
{ {
creatureGrows = creature->getGrowth(); creatureGrows = creature->getGrowth();

View File

@ -13,7 +13,7 @@
#include "../AIUtility.h" #include "../AIUtility.h"
#include "../../../lib/GameConstants.h" #include "../../../lib/GameConstants.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
namespace NKAI namespace NKAI
{ {

View File

@ -459,6 +459,8 @@ void ObjectClusterizer::clusterizeObject(
continue; continue;
} }
float priority = 0;
if(path.nodes.size() > 1) if(path.nodes.size() > 1)
{ {
auto blocker = getBlocker(path); auto blocker = getBlocker(path);
@ -475,7 +477,10 @@ void ObjectClusterizer::clusterizeObject(
heroesProcessed.insert(path.targetHero); heroesProcessed.insert(path.targetHero);
float priority = priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), PriorityEvaluator::PriorityTier::HUNTER_GATHER); for (int prio = PriorityEvaluator::PriorityTier::BUILDINGS; prio <= PriorityEvaluator::PriorityTier::MAX_PRIORITY_TIER; ++prio)
{
priority = std::max(priority, priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), prio));
}
if(ai->settings->isUseFuzzy() && priority < MIN_PRIORITY) if(ai->settings->isUseFuzzy() && priority < MIN_PRIORITY)
continue; continue;
@ -498,7 +503,10 @@ void ObjectClusterizer::clusterizeObject(
heroesProcessed.insert(path.targetHero); heroesProcessed.insert(path.targetHero);
float priority = priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), PriorityEvaluator::PriorityTier::HUNTER_GATHER); for (int prio = PriorityEvaluator::PriorityTier::BUILDINGS; prio <= PriorityEvaluator::PriorityTier::MAX_PRIORITY_TIER; ++prio)
{
priority = std::max(priority, priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), prio));
}
if (ai->settings->isUseFuzzy() && priority < MIN_PRIORITY) if (ai->settings->isUseFuzzy() && priority < MIN_PRIORITY)
continue; continue;

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../AIUtility.h" #include "../AIUtility.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"

View File

@ -57,7 +57,8 @@ Goals::TGoalVec BuyArmyBehavior::decompose(const Nullkiller * ai) const
auto reinforcement = ai->armyManager->howManyReinforcementsCanGet( auto reinforcement = ai->armyManager->howManyReinforcementsCanGet(
targetHero, targetHero,
targetHero, targetHero,
&*townArmyAvailableToBuy); &*townArmyAvailableToBuy,
TerrainId::NONE);
if(reinforcement) if(reinforcement)
vstd::amin(reinforcement, ai->armyManager->howManyReinforcementsCanBuy(town->getUpperArmy(), town)); vstd::amin(reinforcement, ai->armyManager->howManyReinforcementsCanBuy(town->getUpperArmy(), town));

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../AIUtility.h" #include "../AIUtility.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../AIUtility.h" #include "../AIUtility.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../Pathfinding/AINodeStorage.h" #include "../Pathfinding/AINodeStorage.h"

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -214,11 +214,15 @@ void DefenceBehavior::evaluateDefence(Goals::TGoalVec & tasks, const CGTownInsta
std::vector<int> pathsToDefend; std::vector<int> pathsToDefend;
std::map<const CGHeroInstance *, std::vector<int>> defferedPaths; std::map<const CGHeroInstance *, std::vector<int>> defferedPaths;
AIPath* closestWay = nullptr;
for(int i = 0; i < paths.size(); i++) for(int i = 0; i < paths.size(); i++)
{ {
auto & path = paths[i]; auto & path = paths[i];
if (!closestWay || path.movementCost() < closestWay->movementCost())
closestWay = &path;
#if NKAI_TRACE_LEVEL >= 1 #if NKAI_TRACE_LEVEL >= 1
logAi->trace( logAi->trace(
"Hero %s can defend town with force %lld in %s turns, cost: %f, path: %s", "Hero %s can defend town with force %lld in %s turns, cost: %f, path: %s",
@ -382,7 +386,14 @@ void DefenceBehavior::evaluateDefence(Goals::TGoalVec & tasks, const CGTownInsta
town->getObjectName()); town->getObjectName());
#endif #endif
sequence.push_back(sptr(ExecuteHeroChain(path, town))); ExecuteHeroChain heroChain(path, town);
if (closestWay)
{
heroChain.closestWayRatio = closestWay->movementCost() / heroChain.getPath().movementCost();
}
sequence.push_back(sptr(heroChain));
composition.addNextSequence(sequence); composition.addNextSequence(sequence);
auto firstBlockedAction = path.getFirstBlockedAction(); auto firstBlockedAction = path.getFirstBlockedAction();

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -300,7 +300,8 @@ Goals::TGoalVec GatherArmyBehavior::upgradeArmy(const Nullkiller * ai, const CGT
ai->armyManager->getBestArmy( ai->armyManager->getBestArmy(
path.targetHero, path.targetHero,
path.heroArmy, path.heroArmy,
upgrader->getUpperArmy())); upgrader->getUpperArmy(),
TerrainId::NONE));
armyToGetOrBuy.upgradeValue -= path.heroArmy->getArmyStrength(); armyToGetOrBuy.upgradeValue -= path.heroArmy->getArmyStrength();

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -58,6 +58,7 @@ Goals::TGoalVec RecruitHeroBehavior::decompose(const Nullkiller * ai) const
ai->dangerHitMap->updateHitMap(); ai->dangerHitMap->updateHitMap();
int treasureSourcesCount = 0; int treasureSourcesCount = 0;
int bestClosestThreat = UINT8_MAX;
for(auto town : towns) for(auto town : towns)
{ {
@ -118,6 +119,7 @@ Goals::TGoalVec RecruitHeroBehavior::decompose(const Nullkiller * ai) const
bestScore = score; bestScore = score;
bestHeroToHire = hero; bestHeroToHire = hero;
bestTownToHireFrom = town; bestTownToHireFrom = town;
bestClosestThreat = closestThreat;
} }
} }
} }
@ -128,7 +130,7 @@ Goals::TGoalVec RecruitHeroBehavior::decompose(const Nullkiller * ai) const
{ {
if (ai->cb->getHeroesInfo().size() == 0 if (ai->cb->getHeroesInfo().size() == 0
|| treasureSourcesCount > ai->cb->getHeroesInfo().size() * 5 || treasureSourcesCount > ai->cb->getHeroesInfo().size() * 5
|| bestHeroToHire->getArmyCost() > GameConstants::HERO_GOLD_COST / 2.0 || (bestHeroToHire->getArmyCost() > GameConstants::HERO_GOLD_COST / 2.0 && (bestClosestThreat < 1 || !ai->buildAnalyzer->isGoldPressureHigh()))
|| (ai->getFreeResources()[EGameResID::GOLD] > 10000 && !ai->buildAnalyzer->isGoldPressureHigh() && haveCapitol) || (ai->getFreeResources()[EGameResID::GOLD] > 10000 && !ai->buildAnalyzer->isGoldPressureHigh() && haveCapitol)
|| (ai->getFreeResources()[EGameResID::GOLD] > 30000 && !ai->buildAnalyzer->isGoldPressureHigh())) || (ai->getFreeResources()[EGameResID::GOLD] > 30000 && !ai->buildAnalyzer->isGoldPressureHigh()))
{ {

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -149,7 +149,7 @@ Goals::TGoalVec StartupBehavior::decompose(const Nullkiller * ai) const
{ {
if(!startupTown->visitingHero) if(!startupTown->visitingHero)
{ {
if(ai->armyManager->howManyReinforcementsCanGet(startupTown->getUpperArmy(), startupTown->getUpperArmy(), closestHero) > 200) if(ai->armyManager->howManyReinforcementsCanGet(startupTown->getUpperArmy(), startupTown->getUpperArmy(), closestHero, TerrainId::NONE) > 200)
{ {
auto paths = ai->pathfinder->getPathInfo(startupTown->visitablePos()); auto paths = ai->pathfinder->getPathInfo(startupTown->visitablePos());

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "lib/VCMI_Lib.h" #include "lib/GameLibrary.h"
#include "../Goals/CGoal.h" #include "../Goals/CGoal.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -131,17 +131,21 @@ TacticalAdvantageEngine::TacticalAdvantageEngine()
castleWalls = new fl::InputVariable("CastleWalls"); castleWalls = new fl::InputVariable("CastleWalls");
engine.addInputVariable(castleWalls); engine.addInputVariable(castleWalls);
{ {
fl::Rectangle * none = new fl::Rectangle("NONE", CGTownInstance::NONE, CGTownInstance::NONE + (CGTownInstance::FORT - CGTownInstance::NONE) * 0.5f); int wallsNone = CGTownInstance::NONE;
int wallsFort = CGTownInstance::FORT;
int wallsCitadel = CGTownInstance::CITADEL;
int wallsCastle = CGTownInstance::CASTLE;
fl::Rectangle * none = new fl::Rectangle("NONE", wallsNone, wallsNone + (wallsFort - wallsNone) * 0.5f);
castleWalls->addTerm(none); castleWalls->addTerm(none);
fl::Trapezoid * medium = new fl::Trapezoid("MEDIUM", (CGTownInstance::FORT - CGTownInstance::NONE) * 0.5f, CGTownInstance::FORT, fl::Trapezoid * medium = new fl::Trapezoid("MEDIUM", (wallsFort - wallsNone) * 0.5f, wallsFort, wallsCitadel, wallsCitadel + (wallsCastle - wallsCitadel) * 0.5f);
CGTownInstance::CITADEL, CGTownInstance::CITADEL + (CGTownInstance::CASTLE - CGTownInstance::CITADEL) * 0.5f);
castleWalls->addTerm(medium); castleWalls->addTerm(medium);
fl::Ramp * high = new fl::Ramp("HIGH", CGTownInstance::CITADEL - 0.1, CGTownInstance::CASTLE); fl::Ramp * high = new fl::Ramp("HIGH", wallsCitadel - 0.1, wallsCastle);
castleWalls->addTerm(high); castleWalls->addTerm(high);
castleWalls->setRange(CGTownInstance::NONE, CGTownInstance::CASTLE); castleWalls->setRange(wallsNone, wallsCastle);
} }

View File

@ -127,9 +127,9 @@ ui64 FuzzyHelper::evaluateDanger(const CGObjectInstance * obj)
auto fortLevel = town->fortLevel(); auto fortLevel = town->fortLevel();
if (fortLevel == CGTownInstance::EFortLevel::CASTLE) if (fortLevel == CGTownInstance::EFortLevel::CASTLE)
danger = std::max(danger * 2, danger + 10000); danger += 10000;
else if(fortLevel == CGTownInstance::EFortLevel::CITADEL) else if(fortLevel == CGTownInstance::EFortLevel::CITADEL)
danger = std::max(ui64(danger * 1.4), danger + 4000); danger += 4000;
} }
return danger; return danger;

View File

@ -374,7 +374,7 @@ HeroLockedReason Nullkiller::getHeroLockedReason(const CGHeroInstance * hero) co
void Nullkiller::makeTurn() void Nullkiller::makeTurn()
{ {
boost::lock_guard<boost::mutex> sharedStorageLock(AISharedStorage::locker); std::lock_guard<std::mutex> sharedStorageLock(AISharedStorage::locker);
const int MAX_DEPTH = 10; const int MAX_DEPTH = 10;
@ -446,7 +446,7 @@ void Nullkiller::makeTurn()
#if NKAI_TRACE_LEVEL >= 1 #if NKAI_TRACE_LEVEL >= 1
int prioOfTask = 0; int prioOfTask = 0;
#endif #endif
for (int prio = PriorityEvaluator::PriorityTier::INSTAKILL; prio <= PriorityEvaluator::PriorityTier::DEFEND; ++prio) for (int prio = PriorityEvaluator::PriorityTier::INSTAKILL; prio <= PriorityEvaluator::PriorityTier::MAX_PRIORITY_TIER; ++prio)
{ {
#if NKAI_TRACE_LEVEL >= 1 #if NKAI_TRACE_LEVEL >= 1
prioOfTask = prio; prioOfTask = prio;
@ -535,7 +535,10 @@ void Nullkiller::makeTurn()
else else
return; return;
} }
hasAnySuccess = true; else
{
hasAnySuccess = true;
}
} }
hasAnySuccess |= handleTrading(); hasAnySuccess |= handleTrading();
@ -721,7 +724,7 @@ bool Nullkiller::handleTrading()
if (toGive && toGive <= available[mostExpendable]) //don't try to sell 0 resources if (toGive && toGive <= available[mostExpendable]) //don't try to sell 0 resources
{ {
cb->trade(m->getObjInstanceID(), EMarketMode::RESOURCE_RESOURCE, GameResID(mostExpendable), GameResID(mostWanted), toGive); cb->trade(m->getObjInstanceID(), EMarketMode::RESOURCE_RESOURCE, GameResID(mostExpendable), GameResID(mostWanted), toGive);
#if NKAI_TRACE_LEVEL >= 1 #if NKAI_TRACE_LEVEL >= 2
logAi->info("Traded %d of %s for %d of %s at %s", toGive, mostExpendable, toGet, mostWanted, obj->getObjectName()); logAi->info("Traded %d of %s for %d of %s at %s", toGive, mostExpendable, toGet, mostWanted, obj->getObjectName());
#endif #endif
haveTraded = true; haveTraded = true;

View File

@ -18,7 +18,7 @@
#include "../../../lib/mapping/CMapDefines.h" #include "../../../lib/mapping/CMapDefines.h"
#include "../../../lib/RoadHandler.h" #include "../../../lib/RoadHandler.h"
#include "../../../lib/CCreatureHandler.h" #include "../../../lib/CCreatureHandler.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../../../lib/StartInfo.h" #include "../../../lib/StartInfo.h"
#include "../../../CCallback.h" #include "../../../CCallback.h"
#include "../../../lib/filesystem/Filesystem.h" #include "../../../lib/filesystem/Filesystem.h"
@ -66,7 +66,8 @@ EvaluationContext::EvaluationContext(const Nullkiller* ai)
isArmyUpgrade(false), isArmyUpgrade(false),
isHero(false), isHero(false),
isEnemy(false), isEnemy(false),
explorePriority(0) explorePriority(0),
powerRatio(0)
{ {
} }
@ -308,7 +309,7 @@ uint64_t RewardEvaluator::getArmyReward(
{ {
for(auto artID : info.reward.artifacts) for(auto artID : info.reward.artifacts)
{ {
const auto * art = dynamic_cast<const CArtifact *>(VLC->artifacts()->getById(artID)); const auto * art = dynamic_cast<const CArtifact *>(LIBRARY->artifacts()->getById(artID));
rewardValue += evaluateArtifactArmyValue(art); rewardValue += evaluateArtifactArmyValue(art);
} }
@ -609,9 +610,6 @@ float RewardEvaluator::getConquestValue(const CGObjectInstance* target) const
? getEnemyHeroStrategicalValue(dynamic_cast<const CGHeroInstance*>(target)) ? getEnemyHeroStrategicalValue(dynamic_cast<const CGHeroInstance*>(target))
: 0; : 0;
case Obj::KEYMASTER:
return 0.6f;
default: default:
return 0; return 0;
} }
@ -696,7 +694,7 @@ float RewardEvaluator::getSkillReward(const CGObjectInstance * target, const CGH
{ {
for(auto spellID : info.reward.spells) for(auto spellID : info.reward.spells)
{ {
const spells::Spell * spell = VLC->spells()->getById(spellID); const spells::Spell * spell = LIBRARY->spells()->getById(spellID);
if(hero->canLearnSpell(spell) && !hero->spellbookContainsSpell(spellID)) if(hero->canLearnSpell(spell) && !hero->spellbookContainsSpell(spellID))
{ {
@ -889,8 +887,15 @@ public:
Goals::StayAtTown& stayAtTown = dynamic_cast<Goals::StayAtTown&>(*task); Goals::StayAtTown& stayAtTown = dynamic_cast<Goals::StayAtTown&>(*task);
evaluationContext.armyReward += evaluationContext.evaluator.getManaRecoveryArmyReward(stayAtTown.getHero()); if (stayAtTown.getHero() != nullptr && stayAtTown.getHero()->movementPointsRemaining() < 100)
if (evaluationContext.armyReward == 0) {
return;
}
if(stayAtTown.town->mageGuildLevel() > 0)
evaluationContext.armyReward += evaluationContext.evaluator.getManaRecoveryArmyReward(stayAtTown.getHero());
if (vstd::isAlmostZero(evaluationContext.armyReward))
evaluationContext.isDefend = true; evaluationContext.isDefend = true;
else else
{ {
@ -1018,6 +1023,42 @@ public:
if(heroRole == HeroRole::MAIN) if(heroRole == HeroRole::MAIN)
evaluationContext.heroRole = heroRole; evaluationContext.heroRole = heroRole;
// Assuming Slots() returns a collection of slots with slot.second->getCreatureID() and slot.second->getPower()
float heroPower = 0;
float totalPower = 0;
// Map to store the aggregated power of creatures by CreatureID
std::map<int, float> totalPowerByCreatureID;
// Calculate hero power and total power by CreatureID
for (auto slot : hero->Slots())
{
int creatureID = slot.second->getCreatureID();
float slotPower = slot.second->getPower();
// Add the power of this slot to the heroPower
heroPower += slotPower;
// Accumulate the total power for the specific CreatureID
if (totalPowerByCreatureID.find(creatureID) == totalPowerByCreatureID.end())
{
// First time encountering this CreatureID, retrieve total creatures' power
totalPowerByCreatureID[creatureID] = ai->armyManager->getTotalCreaturesAvailable(creatureID).power;
}
}
// Calculate total power based on unique CreatureIDs
for (const auto& entry : totalPowerByCreatureID)
{
totalPower += entry.second;
}
// Compute the power ratio if total power is greater than zero
if (totalPower > 0)
{
evaluationContext.powerRatio = heroPower / totalPower;
}
if (target) if (target)
{ {
evaluationContext.goldReward += evaluationContext.evaluator.getGoldReward(target, hero); evaluationContext.goldReward += evaluationContext.evaluator.getGoldReward(target, hero);
@ -1030,6 +1071,8 @@ public:
evaluationContext.isHero = true; evaluationContext.isHero = true;
if (target->getOwner().isValidPlayer() && ai->cb->getPlayerRelations(ai->playerID, target->getOwner()) == PlayerRelations::ENEMIES) if (target->getOwner().isValidPlayer() && ai->cb->getPlayerRelations(ai->playerID, target->getOwner()) == PlayerRelations::ENEMIES)
evaluationContext.isEnemy = true; evaluationContext.isEnemy = true;
if (target->ID == Obj::TOWN)
evaluationContext.defenseValue = dynamic_cast<const CGTownInstance*>(target)->fortLevel();
evaluationContext.goldCost += evaluationContext.evaluator.getGoldCost(target, hero, army); evaluationContext.goldCost += evaluationContext.evaluator.getGoldCost(target, hero, army);
if(evaluationContext.danger > 0) if(evaluationContext.danger > 0)
evaluationContext.skillReward += (float)evaluationContext.danger / (float)hero->getArmyStrength(); evaluationContext.skillReward += (float)evaluationContext.danger / (float)hero->getArmyStrength();
@ -1169,6 +1212,19 @@ public:
evaluationContext.goldCost += cost; evaluationContext.goldCost += cost;
evaluationContext.closestWayRatio = 1; evaluationContext.closestWayRatio = 1;
evaluationContext.buildingCost += bi.buildCostWithPrerequisites; evaluationContext.buildingCost += bi.buildCostWithPrerequisites;
bool alreadyOwn = false;
int highestMageGuildPossible = BuildingID::MAGES_GUILD_3;
for (auto town : evaluationContext.evaluator.ai->cb->getTownsInfo())
{
if (town->hasBuilt(bi.id))
alreadyOwn = true;
if (evaluationContext.evaluator.ai->cb->canBuildStructure(town, BuildingID::MAGES_GUILD_5) != EBuildingState::FORBIDDEN)
highestMageGuildPossible = BuildingID::MAGES_GUILD_5;
else if (evaluationContext.evaluator.ai->cb->canBuildStructure(town, BuildingID::MAGES_GUILD_4) != EBuildingState::FORBIDDEN)
highestMageGuildPossible = BuildingID::MAGES_GUILD_4;
}
if (bi.id == BuildingID::MARKETPLACE || bi.dailyIncome[EGameResID::WOOD] > 0) if (bi.id == BuildingID::MARKETPLACE || bi.dailyIncome[EGameResID::WOOD] > 0)
evaluationContext.isTradeBuilding = true; evaluationContext.isTradeBuilding = true;
@ -1183,14 +1239,19 @@ public:
if(bi.baseCreatureID == bi.creatureID) if(bi.baseCreatureID == bi.creatureID)
{ {
evaluationContext.addNonCriticalStrategicalValue((0.5f + 0.1f * bi.creatureLevel) / (float)bi.prerequisitesCount); evaluationContext.addNonCriticalStrategicalValue((0.5f + 0.1f * bi.creatureLevel) / (float)bi.prerequisitesCount);
evaluationContext.armyReward += bi.armyStrength; evaluationContext.armyReward += bi.armyStrength * 1.5;
} }
else else
{ {
auto potentialUpgradeValue = evaluationContext.evaluator.getUpgradeArmyReward(buildThis.town, bi); auto potentialUpgradeValue = evaluationContext.evaluator.getUpgradeArmyReward(buildThis.town, bi);
evaluationContext.addNonCriticalStrategicalValue(potentialUpgradeValue / 10000.0f / (float)bi.prerequisitesCount); evaluationContext.addNonCriticalStrategicalValue(potentialUpgradeValue / 10000.0f / (float)bi.prerequisitesCount);
evaluationContext.armyReward += potentialUpgradeValue / (float)bi.prerequisitesCount; if(bi.id.isDwelling())
evaluationContext.armyReward += bi.armyStrength - evaluationContext.evaluator.ai->armyManager->evaluateStackPower(bi.baseCreatureID.toCreature(), bi.creatureGrows);
else //This is for prerequisite-buildings
evaluationContext.armyReward += evaluationContext.evaluator.ai->armyManager->evaluateStackPower(bi.baseCreatureID.toCreature(), bi.creatureGrows);
if(alreadyOwn)
evaluationContext.armyReward /= bi.buildCostWithPrerequisites.marketValue();
} }
} }
else if(bi.id == BuildingID::CITADEL || bi.id == BuildingID::CASTLE) else if(bi.id == BuildingID::CITADEL || bi.id == BuildingID::CASTLE)
@ -1201,9 +1262,14 @@ public:
else if(bi.id >= BuildingID::MAGES_GUILD_1 && bi.id <= BuildingID::MAGES_GUILD_5) else if(bi.id >= BuildingID::MAGES_GUILD_1 && bi.id <= BuildingID::MAGES_GUILD_5)
{ {
evaluationContext.skillReward += 2 * (bi.id - BuildingID::MAGES_GUILD_1); evaluationContext.skillReward += 2 * (bi.id - BuildingID::MAGES_GUILD_1);
for (auto hero : evaluationContext.evaluator.ai->cb->getHeroesInfo()) if (!alreadyOwn && evaluationContext.evaluator.ai->cb->canBuildStructure(buildThis.town, highestMageGuildPossible) != EBuildingState::FORBIDDEN)
{ {
evaluationContext.armyInvolvement += hero->getArmyCost(); for (auto hero : evaluationContext.evaluator.ai->cb->getHeroesInfo())
{
if(hero->getPrimSkillLevel(PrimarySkill::SPELL_POWER) + hero->getPrimSkillLevel(PrimarySkill::KNOWLEDGE) > hero->getPrimSkillLevel(PrimarySkill::ATTACK) + hero->getPrimSkillLevel(PrimarySkill::DEFENSE)
&& hero->manaLimit() > 30)
evaluationContext.armyReward += hero->getArmyCost();
}
} }
} }
int sameTownBonus = 0; int sameTownBonus = 0;
@ -1333,18 +1399,35 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
else else
{ {
float score = 0; float score = 0;
const bool amIInDanger = ai->cb->getTownsInfo().empty() || (evaluationContext.isDefend && evaluationContext.threatTurns == 0); bool currentPositionThreatened = false;
const float maxWillingToLose = amIInDanger ? 1 : ai->settings->getMaxArmyLossTarget(); if (task->hero)
{
auto currentTileThreat = ai->dangerHitMap->getTileThreat(task->hero->visitablePos());
if (currentTileThreat.fastestDanger.turn < 1 && currentTileThreat.fastestDanger.danger > task->hero->getTotalStrength())
currentPositionThreatened = true;
}
if (priorityTier == PriorityTier::FAR_HUNTER_GATHER && currentPositionThreatened == false)
{
#if NKAI_TRACE_LEVEL >= 2
logAi->trace("Skip FAR_HUNTER_GATHER because hero is not threatened.");
#endif
return 0;
}
const bool amIInDanger = ai->cb->getTownsInfo().empty();
const float maxWillingToLose = amIInDanger ? 1 : ai->settings->getMaxArmyLossTarget() * evaluationContext.powerRatio > 0 ? ai->settings->getMaxArmyLossTarget() * evaluationContext.powerRatio : 1.0;
float dangerThreshold = 1;
dangerThreshold *= evaluationContext.powerRatio > 0 ? evaluationContext.powerRatio : 1.0;
bool arriveNextWeek = false; bool arriveNextWeek = false;
if (ai->cb->getDate(Date::DAY_OF_WEEK) + evaluationContext.turn > 7 && priorityTier < PriorityTier::FAR_KILL) if (ai->cb->getDate(Date::DAY_OF_WEEK) + evaluationContext.turn > 7 && priorityTier < PriorityTier::FAR_KILL)
arriveNextWeek = true; arriveNextWeek = true;
#if NKAI_TRACE_LEVEL >= 2 #if NKAI_TRACE_LEVEL >= 2
logAi->trace("BEFORE: priorityTier %d, Evaluated %s, loss: %f, turn: %d, turns main: %f, scout: %f, army-involvement: %f, gold: %f, cost: %d, army gain: %f, army growth: %f skill: %f danger: %d, threatTurns: %d, threat: %d, role: %s, strategical value: %f, conquest value: %f cwr: %f, fear: %f, explorePriority: %d isDefend: %d isEnemy: %d arriveNextWeek: %d", logAi->trace("BEFORE: priorityTier %d, Evaluated %s, loss: %f, maxWillingToLose: %f, turn: %d, turns main: %f, scout: %f, army-involvement: %f, gold: %f, cost: %d, army gain: %f, army growth: %f skill: %f danger: %d, threatTurns: %d, threat: %d, role: %s, strategical value: %f, conquest value: %f cwr: %f, fear: %f, dangerThreshold: %f explorePriority: %d isDefend: %d isEnemy: %d arriveNextWeek: %d powerRatio: %f",
priorityTier, priorityTier,
task->toString(), task->toString(),
evaluationContext.armyLossPersentage, evaluationContext.armyLossPersentage,
maxWillingToLose,
(int)evaluationContext.turn, (int)evaluationContext.turn,
evaluationContext.movementCostByRole[HeroRole::MAIN], evaluationContext.movementCostByRole[HeroRole::MAIN],
evaluationContext.movementCostByRole[HeroRole::SCOUT], evaluationContext.movementCostByRole[HeroRole::SCOUT],
@ -1362,23 +1445,27 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
evaluationContext.conquestValue, evaluationContext.conquestValue,
evaluationContext.closestWayRatio, evaluationContext.closestWayRatio,
evaluationContext.enemyHeroDangerRatio, evaluationContext.enemyHeroDangerRatio,
dangerThreshold,
evaluationContext.explorePriority, evaluationContext.explorePriority,
evaluationContext.isDefend, evaluationContext.isDefend,
evaluationContext.isEnemy, evaluationContext.isEnemy,
arriveNextWeek); arriveNextWeek,
evaluationContext.powerRatio);
#endif #endif
switch (priorityTier) switch (priorityTier)
{ {
case PriorityTier::INSTAKILL: //Take towns / kill heroes in immediate reach case PriorityTier::INSTAKILL: //Take towns / kill heroes in immediate reach
{ {
if (evaluationContext.turn > 0) if (evaluationContext.turn > 0 || evaluationContext.isExchange)
return 0; return 0;
if (evaluationContext.movementCost >= 1) if (evaluationContext.movementCost >= 1)
return 0; return 0;
if (evaluationContext.defenseValue < 2 && evaluationContext.enemyHeroDangerRatio > dangerThreshold)
return 0;
if(evaluationContext.conquestValue > 0) if(evaluationContext.conquestValue > 0)
score = evaluationContext.armyInvolvement; score = evaluationContext.armyInvolvement;
if (vstd::isAlmostZero(score) || (evaluationContext.enemyHeroDangerRatio > 1 && (evaluationContext.turn > 0 || evaluationContext.isExchange) && !ai->cb->getTownsInfo().empty())) if (vstd::isAlmostZero(score) || (evaluationContext.enemyHeroDangerRatio > dangerThreshold && (evaluationContext.turn > 0 || evaluationContext.isExchange) && !ai->cb->getTownsInfo().empty()))
return 0; return 0;
if (maxWillingToLose - evaluationContext.armyLossPersentage < 0) if (maxWillingToLose - evaluationContext.armyLossPersentage < 0)
return 0; return 0;
@ -1388,23 +1475,47 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
} }
case PriorityTier::INSTADEFEND: //Defend immediately threatened towns case PriorityTier::INSTADEFEND: //Defend immediately threatened towns
{ {
if (evaluationContext.isDefend && evaluationContext.threatTurns == 0 && evaluationContext.turn == 0) //No point defending if we don't have defensive-structures
score = evaluationContext.armyInvolvement; if (evaluationContext.defenseValue < 2)
if (evaluationContext.isEnemy && maxWillingToLose - evaluationContext.armyLossPersentage < 0)
return 0; return 0;
if (maxWillingToLose - evaluationContext.armyLossPersentage < 0)
return 0;
if (evaluationContext.closestWayRatio < 1.0)
return 0;
if (evaluationContext.isEnemy && evaluationContext.turn > 0)
return 0;
if (evaluationContext.isDefend && evaluationContext.threatTurns <= evaluationContext.turn)
{
const float OPTIMAL_PERCENTAGE = 0.75f; // We want army to be 75% of the threat
float optimalStrength = evaluationContext.threat * OPTIMAL_PERCENTAGE;
// Calculate how far the army is from optimal strength
float deviation = std::abs(evaluationContext.armyInvolvement - optimalStrength);
// Convert deviation to a percentage of the threat to normalize it
float deviationPercentage = deviation / evaluationContext.threat;
// Calculate score: 1.0 is perfect, decreasing as deviation increases
score = 1.0f / (1.0f + deviationPercentage);
// Apply turn penalty to still prefer earlier moves when scores are close
score = score / (evaluationContext.turn + 1);
}
break; break;
} }
case PriorityTier::KILL: //Take towns / kill heroes that are further away case PriorityTier::KILL: //Take towns / kill heroes that are further away
//FALL_THROUGH //FALL_THROUGH
case PriorityTier::FAR_KILL: case PriorityTier::FAR_KILL:
{ {
if (evaluationContext.defenseValue < 2 && evaluationContext.enemyHeroDangerRatio > dangerThreshold)
return 0;
if (evaluationContext.turn > 0 && evaluationContext.isHero) if (evaluationContext.turn > 0 && evaluationContext.isHero)
return 0; return 0;
if (arriveNextWeek && evaluationContext.isEnemy) if (arriveNextWeek && evaluationContext.isEnemy)
return 0; return 0;
if (evaluationContext.conquestValue > 0) if (evaluationContext.conquestValue > 0)
score = evaluationContext.armyInvolvement; score = evaluationContext.armyInvolvement;
if (vstd::isAlmostZero(score) || (evaluationContext.enemyHeroDangerRatio > 1 && (evaluationContext.turn > 0 || evaluationContext.isExchange) && !ai->cb->getTownsInfo().empty())) if (vstd::isAlmostZero(score) || (evaluationContext.enemyHeroDangerRatio > dangerThreshold && (evaluationContext.turn > 0 || evaluationContext.isExchange) && !ai->cb->getTownsInfo().empty()))
return 0; return 0;
if (maxWillingToLose - evaluationContext.armyLossPersentage < 0) if (maxWillingToLose - evaluationContext.armyLossPersentage < 0)
return 0; return 0;
@ -1413,24 +1524,9 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
score /= evaluationContext.movementCost; score /= evaluationContext.movementCost;
break; break;
} }
case PriorityTier::UPGRADE:
{
if (!evaluationContext.isArmyUpgrade)
return 0;
if (evaluationContext.enemyHeroDangerRatio > 1)
return 0;
if (maxWillingToLose - evaluationContext.armyLossPersentage < 0)
return 0;
if (vstd::isAlmostZero(evaluationContext.armyLossPersentage) && evaluationContext.closestWayRatio < 1.0)
return 0;
score = 1000;
if (evaluationContext.movementCost > 0)
score /= evaluationContext.movementCost;
break;
}
case PriorityTier::HIGH_PRIO_EXPLORE: case PriorityTier::HIGH_PRIO_EXPLORE:
{ {
if (evaluationContext.enemyHeroDangerRatio > 1) if (evaluationContext.enemyHeroDangerRatio > dangerThreshold)
return 0; return 0;
if (evaluationContext.explorePriority != 1) if (evaluationContext.explorePriority != 1)
return 0; return 0;
@ -1447,17 +1543,15 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
//FALL_THROUGH //FALL_THROUGH
case PriorityTier::FAR_HUNTER_GATHER: case PriorityTier::FAR_HUNTER_GATHER:
{ {
if (evaluationContext.enemyHeroDangerRatio > 1 && !evaluationContext.isDefend) if (evaluationContext.enemyHeroDangerRatio > dangerThreshold && !evaluationContext.isDefend && priorityTier != PriorityTier::FAR_HUNTER_GATHER)
return 0; return 0;
if (evaluationContext.buildingCost.marketValue() > 0) if (evaluationContext.buildingCost.marketValue() > 0)
return 0; return 0;
if (evaluationContext.isDefend && (evaluationContext.enemyHeroDangerRatio < 1 || evaluationContext.threatTurns > 0 || evaluationContext.turn > 0)) if (priorityTier != PriorityTier::FAR_HUNTER_GATHER && evaluationContext.isDefend && (evaluationContext.enemyHeroDangerRatio > dangerThreshold || evaluationContext.threatTurns > 0 || evaluationContext.turn > 0))
return 0; return 0;
if (evaluationContext.explorePriority == 3) if (evaluationContext.explorePriority == 3)
return 0; return 0;
if (evaluationContext.isArmyUpgrade) if (priorityTier != PriorityTier::FAR_HUNTER_GATHER && ((evaluationContext.enemyHeroDangerRatio > 0 && arriveNextWeek) || evaluationContext.enemyHeroDangerRatio > dangerThreshold))
return 0;
if ((evaluationContext.enemyHeroDangerRatio > 0 && arriveNextWeek) || evaluationContext.enemyHeroDangerRatio > 1)
return 0; return 0;
if (maxWillingToLose - evaluationContext.armyLossPersentage < 0) if (maxWillingToLose - evaluationContext.armyLossPersentage < 0)
return 0; return 0;
@ -1475,12 +1569,14 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
score = 1000; score = 1000;
if (evaluationContext.movementCost > 0) if (evaluationContext.movementCost > 0)
score /= evaluationContext.movementCost; score /= evaluationContext.movementCost;
if(priorityTier == PriorityTier::FAR_HUNTER_GATHER && evaluationContext.enemyHeroDangerRatio > 0)
score /= evaluationContext.enemyHeroDangerRatio;
} }
break; break;
} }
case PriorityTier::LOW_PRIO_EXPLORE: case PriorityTier::LOW_PRIO_EXPLORE:
{ {
if (evaluationContext.enemyHeroDangerRatio > 1) if (evaluationContext.enemyHeroDangerRatio > dangerThreshold)
return 0; return 0;
if (evaluationContext.explorePriority != 3) if (evaluationContext.explorePriority != 3)
return 0; return 0;
@ -1495,7 +1591,7 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
} }
case PriorityTier::DEFEND: //Defend whatever if nothing else is to do case PriorityTier::DEFEND: //Defend whatever if nothing else is to do
{ {
if (evaluationContext.enemyHeroDangerRatio > 1 && evaluationContext.isExchange) if (evaluationContext.enemyHeroDangerRatio > dangerThreshold)
return 0; return 0;
if (evaluationContext.isDefend || evaluationContext.isArmyUpgrade) if (evaluationContext.isDefend || evaluationContext.isArmyUpgrade)
score = evaluationContext.armyInvolvement; score = evaluationContext.armyInvolvement;
@ -1536,9 +1632,15 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
TResources needed = evaluationContext.buildingCost - resourcesAvailable; TResources needed = evaluationContext.buildingCost - resourcesAvailable;
needed.positive(); needed.positive();
int turnsTo = needed.maxPurchasableCount(income); int turnsTo = needed.maxPurchasableCount(income);
bool haveEverythingButGold = true;
for (int i = 0; i < GameConstants::RESOURCE_QUANTITY; i++)
{
if (i != GameResID::GOLD && resourcesAvailable[i] < evaluationContext.buildingCost[i])
haveEverythingButGold = false;
}
if (turnsTo == INT_MAX) if (turnsTo == INT_MAX)
return 0; return 0;
else if (!haveEverythingButGold)
score /= turnsTo; score /= turnsTo;
} }
} }

View File

@ -84,6 +84,7 @@ struct DLL_EXPORT EvaluationContext
bool isHero; bool isHero;
bool isEnemy; bool isEnemy;
int explorePriority; int explorePriority;
float powerRatio;
EvaluationContext(const Nullkiller * ai); EvaluationContext(const Nullkiller * ai);
@ -114,13 +115,13 @@ public:
INSTAKILL, INSTAKILL,
INSTADEFEND, INSTADEFEND,
KILL, KILL,
UPGRADE,
HIGH_PRIO_EXPLORE, HIGH_PRIO_EXPLORE,
HUNTER_GATHER, HUNTER_GATHER,
LOW_PRIO_EXPLORE, LOW_PRIO_EXPLORE,
FAR_KILL, FAR_KILL,
DEFEND,
FAR_HUNTER_GATHER, FAR_HUNTER_GATHER,
DEFEND MAX_PRIORITY_TIER = FAR_HUNTER_GATHER
}; };
private: private:

View File

@ -18,7 +18,7 @@
#include "../../../lib/mapObjectConstructors/CBankInstanceConstructor.h" #include "../../../lib/mapObjectConstructors/CBankInstanceConstructor.h"
#include "../../../lib/mapObjects/MapObjects.h" #include "../../../lib/mapObjects/MapObjects.h"
#include "../../../lib/modding/CModHandler.h" #include "../../../lib/modding/CModHandler.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../../../lib/filesystem/Filesystem.h" #include "../../../lib/filesystem/Filesystem.h"
#include "../../../lib/json/JsonUtils.h" #include "../../../lib/json/JsonUtils.h"

View File

@ -55,7 +55,7 @@ std::string AbstractGoal::toString() const
desc = "GATHER TROOPS"; desc = "GATHER TROOPS";
break; break;
case GET_ART_TYPE: case GET_ART_TYPE:
desc = "GET ARTIFACT OF TYPE " + VLC->artifacts()->getByIndex(aid)->getNameTranslated(); desc = "GET ARTIFACT OF TYPE " + LIBRARY->artifacts()->getByIndex(aid)->getNameTranslated();
break; break;
case DIG_AT_TILE: case DIG_AT_TILE:
desc = "DIG AT TILE " + tile.toString(); desc = "DIG AT TILE " + tile.toString();

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../../../lib/mapObjects/CGTownInstance.h" #include "../../../lib/mapObjects/CGTownInstance.h"
#include "../../../lib/mapObjects/CGHeroInstance.h" #include "../../../lib/mapObjects/CGHeroInstance.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -11,7 +11,7 @@
#include "CompleteQuest.h" #include "CompleteQuest.h"
#include "../Behaviors/CaptureObjectsBehavior.h" #include "../Behaviors/CaptureObjectsBehavior.h"
#include "../AIGateway.h" #include "../AIGateway.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../../../lib/texts/CGeneralTextHandler.h" #include "../../../lib/texts/CGeneralTextHandler.h"
namespace NKAI namespace NKAI
@ -91,7 +91,7 @@ std::string CompleteQuest::questToString() const
{ {
if(isKeyMaster(q)) if(isKeyMaster(q))
{ {
return "find " + VLC->generaltexth->tentColors[q.obj->subID] + " keymaster tent"; return "find " + LIBRARY->generaltexth->tentColors[q.obj->subID] + " keymaster tent";
} }
if(q.quest->questName == CQuest::missionName(EQuestMission::NONE)) if(q.quest->questName == CQuest::missionName(EQuestMission::NONE))

View File

@ -12,7 +12,7 @@
#include "../AIUtility.h" #include "../AIUtility.h"
#include "../../../lib/GameConstants.h" #include "../../../lib/GameConstants.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
namespace NKAI namespace NKAI
{ {

View File

@ -12,7 +12,7 @@
#include "../AIUtility.h" #include "../AIUtility.h"
#include "../../../lib/GameConstants.h" #include "../../../lib/GameConstants.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../Goals/AbstractGoal.h" #include "../Goals/AbstractGoal.h"
namespace NKAI namespace NKAI

View File

@ -20,6 +20,7 @@
#include "../../../lib/pathfinder/CPathfinder.h" #include "../../../lib/pathfinder/CPathfinder.h"
#include "../../../lib/pathfinder/PathfinderUtil.h" #include "../../../lib/pathfinder/PathfinderUtil.h"
#include "../../../lib/pathfinder/PathfinderOptions.h" #include "../../../lib/pathfinder/PathfinderOptions.h"
#include "../../../lib/IGameSettings.h"
#include "../../../lib/CPlayerState.h" #include "../../../lib/CPlayerState.h"
namespace NKAI namespace NKAI
@ -27,7 +28,7 @@ namespace NKAI
std::shared_ptr<boost::multi_array<AIPathNode, 4>> AISharedStorage::shared; std::shared_ptr<boost::multi_array<AIPathNode, 4>> AISharedStorage::shared;
uint32_t AISharedStorage::version = 0; uint32_t AISharedStorage::version = 0;
boost::mutex AISharedStorage::locker; std::mutex AISharedStorage::locker;
std::set<int3> committedTiles; std::set<int3> committedTiles;
std::set<int3> committedTilesInitial; std::set<int3> committedTilesInitial;
@ -582,42 +583,28 @@ public:
bool AINodeStorage::calculateHeroChain() bool AINodeStorage::calculateHeroChain()
{ {
std::random_device randomDevice;
std::mt19937 randomEngine(randomDevice());
heroChainPass = EHeroChainPass::CHAIN; heroChainPass = EHeroChainPass::CHAIN;
heroChain.clear(); heroChain.clear();
std::vector<int3> data(committedTiles.begin(), committedTiles.end()); std::vector<int3> data(committedTiles.begin(), committedTiles.end());
if(data.size() > 100) int maxConcurrency = tbb::this_task_arena::max_concurrency();
std::vector<std::vector<CGPathNode *>> results(maxConcurrency);
logAi->trace("Caculating hero chain for %d items", data.size());
tbb::parallel_for(tbb::blocked_range<size_t>(0, data.size()), [&](const tbb::blocked_range<size_t>& r)
{ {
boost::mutex resultMutex;
std::shuffle(data.begin(), data.end(), randomEngine);
tbb::parallel_for(tbb::blocked_range<size_t>(0, data.size()), [&](const tbb::blocked_range<size_t>& r)
{
//auto r = blocked_range<size_t>(0, data.size());
HeroChainCalculationTask task(*this, data, chainMask, heroChainTurn);
task.execute(r);
{
boost::lock_guard<boost::mutex> resultLock(resultMutex);
task.flushResult(heroChain);
}
});
}
else
{
auto r = tbb::blocked_range<size_t>(0, data.size());
HeroChainCalculationTask task(*this, data, chainMask, heroChainTurn); HeroChainCalculationTask task(*this, data, chainMask, heroChainTurn);
int ourThread = tbb::this_task_arena::current_thread_index();
task.execute(r); task.execute(r);
task.flushResult(heroChain); task.flushResult(results.at(ourThread));
} });
// FIXME: potentially non-deterministic behavior due to parallel_for
for (const auto & result : results)
vstd::concatenate(heroChain, result);
committedTiles.clear(); committedTiles.clear();
@ -1097,7 +1084,9 @@ struct TownPortalFinder
// TODO: Copy/Paste from TownPortalMechanics // TODO: Copy/Paste from TownPortalMechanics
townPortalSkillLevel = MasteryLevel::Type(hero->getSpellSchoolLevel(townPortal)); townPortalSkillLevel = MasteryLevel::Type(hero->getSpellSchoolLevel(townPortal));
movementNeeded = GameConstants::BASE_MOVEMENT_COST * (townPortalSkillLevel >= MasteryLevel::EXPERT ? 2 : 3);
int baseCost = hero->cb->getSettings().getInteger(EGameSettings::HEROES_MOVEMENT_COST_BASE);
movementNeeded = baseCost * (townPortalSkillLevel >= MasteryLevel::EXPERT ? 2 : 3);
} }
bool actorCanCastTownPortal() bool actorCanCastTownPortal()
@ -1461,9 +1450,20 @@ void AINodeStorage::calculateChainInfo(std::vector<AIPath> & paths, const int3 &
} }
} }
int fortLevel = 0;
auto visitableObjects = cb->getVisitableObjs(pos);
for (auto obj : visitableObjects)
{
if (objWithID<Obj::TOWN>(obj))
{
auto town = dynamic_cast<const CGTownInstance*>(obj);
fortLevel = town->fortLevel();
}
}
path.targetObjectArmyLoss = evaluateArmyLoss( path.targetObjectArmyLoss = evaluateArmyLoss(
path.targetHero, path.targetHero,
getHeroArmyStrengthWithCommander(path.targetHero, path.heroArmy), getHeroArmyStrengthWithCommander(path.targetHero, path.heroArmy, fortLevel),
path.targetObjectDanger); path.targetObjectDanger);
path.chainMask = node.actor->chainMask; path.chainMask = node.actor->chainMask;

View File

@ -41,8 +41,8 @@ struct AIPathNode : public CGPathNode
{ {
std::shared_ptr<const SpecialAction> specialAction; std::shared_ptr<const SpecialAction> specialAction;
const AIPathNode * chainOther; const AIPathNode * chainOther = nullptr;
const ChainActor * actor; const ChainActor * actor = nullptr;
uint64_t danger; uint64_t danger;
uint64_t armyLoss; uint64_t armyLoss;
@ -129,8 +129,8 @@ struct AIPath
struct ExchangeCandidate : public AIPathNode struct ExchangeCandidate : public AIPathNode
{ {
AIPathNode * carrierParent; AIPathNode * carrierParent = nullptr;
AIPathNode * otherParent; AIPathNode * otherParent = nullptr;
}; };
enum EHeroChainPass enum EHeroChainPass
@ -149,7 +149,7 @@ class AISharedStorage
static std::shared_ptr<boost::multi_array<AIPathNode, 4>> shared; static std::shared_ptr<boost::multi_array<AIPathNode, 4>> shared;
std::shared_ptr<boost::multi_array<AIPathNode, 4>> nodes; std::shared_ptr<boost::multi_array<AIPathNode, 4>> nodes;
public: public:
static boost::mutex locker; static std::mutex locker;
static uint32_t version; static uint32_t version;
AISharedStorage(int3 sizes, int numChains); AISharedStorage(int3 sizes, int numChains);

View File

@ -50,8 +50,8 @@ namespace AIPathfinding
options.allowLayerTransitioningAfterBattle = true; options.allowLayerTransitioningAfterBattle = true;
options.useTeleportWhirlpool = true; options.useTeleportWhirlpool = true;
options.forceUseTeleportWhirlpool = true; options.forceUseTeleportWhirlpool = true;
options.useTeleportOneWay = ai->settings->isOneWayMonolithUsageAllowed();; options.useTeleportOneWay = ai->settings->isOneWayMonolithUsageAllowed();
options.useTeleportOneWayRandom = ai->settings->isOneWayMonolithUsageAllowed();; options.useTeleportOneWayRandom = ai->settings->isOneWayMonolithUsageAllowed();
} }
AIPathfinderConfig::~AIPathfinderConfig() = default; AIPathfinderConfig::~AIPathfinderConfig() = default;

View File

@ -13,6 +13,7 @@
#include "../Engine/Nullkiller.h" #include "../Engine/Nullkiller.h"
#include "../../../CCallback.h" #include "../../../CCallback.h"
#include "../../../lib/mapObjects/MapObjects.h" #include "../../../lib/mapObjects/MapObjects.h"
#include "../../../lib/mapping/CMapDefines.h"
#include "../../../lib/pathfinder/TurnInfo.h" #include "../../../lib/pathfinder/TurnInfo.h"
#include "Actions/BuyArmyAction.h" #include "Actions/BuyArmyAction.h"
@ -215,7 +216,7 @@ ExchangeResult HeroExchangeMap::tryExchangeNoLock(const ChainActor * other)
ExchangeResult result; ExchangeResult result;
{ {
boost::shared_lock lock(sync, boost::try_to_lock); std::shared_lock lock(sync, std::try_to_lock);
if(!lock.owns_lock()) if(!lock.owns_lock())
{ {
@ -235,7 +236,7 @@ ExchangeResult HeroExchangeMap::tryExchangeNoLock(const ChainActor * other)
} }
{ {
boost::unique_lock uniqueLock(sync, boost::try_to_lock); std::unique_lock uniqueLock(sync, std::try_to_lock);
if(!uniqueLock.owns_lock()) if(!uniqueLock.owns_lock())
{ {
@ -394,7 +395,7 @@ HeroExchangeArmy * HeroExchangeMap::tryUpgrade(
HeroExchangeArmy * HeroExchangeMap::pickBestCreatures(const CCreatureSet * army1, const CCreatureSet * army2) const HeroExchangeArmy * HeroExchangeMap::pickBestCreatures(const CCreatureSet * army1, const CCreatureSet * army2) const
{ {
auto * target = new HeroExchangeArmy(); auto * target = new HeroExchangeArmy();
auto bestArmy = ai->armyManager->getBestArmy(actor->hero, army1, army2); auto bestArmy = ai->armyManager->getBestArmy(actor->hero, army1, army2, ai->cb->getTile(actor->hero->visitablePos())->getTerrainID());
for(auto & slotInfo : bestArmy) for(auto & slotInfo : bestArmy)
{ {

View File

@ -93,7 +93,7 @@ private:
const HeroActor * actor; const HeroActor * actor;
std::map<const ChainActor *, HeroActor *> exchangeMap; std::map<const ChainActor *, HeroActor *> exchangeMap;
const Nullkiller * ai; const Nullkiller * ai;
boost::shared_mutex sync; std::shared_mutex sync;
public: public:
HeroExchangeMap(const HeroActor * actor, const Nullkiller * ai); HeroExchangeMap(const HeroActor * actor, const Nullkiller * ai);

View File

@ -224,7 +224,7 @@ creInfo infoFromDC(const dwellingContent & dc)
ci.creID = dc.second.size() ? dc.second.back() : CreatureID(-1); //should never be accessed ci.creID = dc.second.size() ? dc.second.back() : CreatureID(-1); //should never be accessed
if (ci.creID != CreatureID::NONE) if (ci.creID != CreatureID::NONE)
{ {
ci.cre = VLC->creatures()->getById(ci.creID); ci.cre = LIBRARY->creatures()->getById(ci.creID);
ci.level = ci.cre->getLevel(); //this is creature tier, while tryRealize expects dwelling level. Ignore. ci.level = ci.cre->getLevel(); //this is creature tier, while tryRealize expects dwelling level. Ignore.
} }
else else

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "../../lib/CCreatureHandler.h" #include "../../lib/CCreatureHandler.h"
#include "../../lib/spells/CSpellHandler.h" #include "../../lib/spells/CSpellHandler.h"
#include "../../lib/CStopWatch.h" #include "../../lib/CStopWatch.h"

View File

@ -13,7 +13,7 @@
#include "AIUtility.h" #include "AIUtility.h"
#include "../../lib/GameConstants.h" #include "../../lib/GameConstants.h"
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "VCAI.h" #include "VCAI.h"
struct SlotInfo struct SlotInfo

View File

@ -222,7 +222,7 @@ bool BuildingManager::getBuildingOptions(const CGTownInstance * t)
std::vector<BuildingID> extraBuildings; std::vector<BuildingID> extraBuildings;
for (auto buildingInfo : t->getTown()->buildings) for (auto buildingInfo : t->getTown()->buildings)
{ {
if (buildingInfo.first.IsDwelling() && BuildingID::getUpgradedFromDwelling(buildingInfo.first) > 1) if (buildingInfo.first.isDwelling() && BuildingID::getUpgradedFromDwelling(buildingInfo.first) > 1)
extraBuildings.push_back(buildingInfo.first); extraBuildings.push_back(buildingInfo.first);
} }
return tryBuildAnyStructure(t, extraBuildings); return tryBuildAnyStructure(t, extraBuildings);

View File

@ -13,7 +13,7 @@
#include "AIUtility.h" #include "AIUtility.h"
#include "../../lib/GameConstants.h" #include "../../lib/GameConstants.h"
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "VCAI.h" #include "VCAI.h"
struct DLL_EXPORT PotentialBuilding struct DLL_EXPORT PotentialBuilding

View File

@ -143,17 +143,21 @@ TacticalAdvantageEngine::TacticalAdvantageEngine()
castleWalls = new fl::InputVariable("CastleWalls"); castleWalls = new fl::InputVariable("CastleWalls");
engine.addInputVariable(castleWalls); engine.addInputVariable(castleWalls);
{ {
fl::Rectangle * none = new fl::Rectangle("NONE", CGTownInstance::NONE, CGTownInstance::NONE + (CGTownInstance::FORT - CGTownInstance::NONE) * 0.5f); int wallsNone = CGTownInstance::NONE;
int wallsFort = CGTownInstance::FORT;
int wallsCitadel = CGTownInstance::CITADEL;
int wallsCastle = CGTownInstance::CASTLE;
fl::Rectangle * none = new fl::Rectangle("NONE", wallsNone, wallsNone + (wallsFort - wallsNone) * 0.5f);
castleWalls->addTerm(none); castleWalls->addTerm(none);
fl::Trapezoid * medium = new fl::Trapezoid("MEDIUM", (CGTownInstance::FORT - CGTownInstance::NONE) * 0.5f, CGTownInstance::FORT, fl::Trapezoid * medium = new fl::Trapezoid("MEDIUM", (wallsFort - wallsNone) * 0.5f, wallsFort, wallsCitadel, wallsCitadel + (wallsCastle - wallsCitadel) * 0.5f);
CGTownInstance::CITADEL, CGTownInstance::CITADEL + (CGTownInstance::CASTLE - CGTownInstance::CITADEL) * 0.5f);
castleWalls->addTerm(medium); castleWalls->addTerm(medium);
fl::Ramp * high = new fl::Ramp("HIGH", CGTownInstance::CITADEL - 0.1, CGTownInstance::CASTLE); fl::Ramp * high = new fl::Ramp("HIGH", wallsCitadel - 0.1, wallsCastle);
castleWalls->addTerm(high); castleWalls->addTerm(high);
castleWalls->setRange(CGTownInstance::NONE, CGTownInstance::CASTLE); castleWalls->setRange(wallsNone, wallsCastle);
} }

View File

@ -85,7 +85,7 @@ std::string AbstractGoal::name() const //TODO: virtualize
} }
break; break;
case GET_ART_TYPE: case GET_ART_TYPE:
desc = "GET ARTIFACT OF TYPE " + VLC->artifacts()->getByIndex(aid)->getNameTranslated(); desc = "GET ARTIFACT OF TYPE " + LIBRARY->artifacts()->getByIndex(aid)->getNameTranslated();
break; break;
case VISIT_TILE: case VISIT_TILE:
desc = "VISIT TILE " + tile.toString(); desc = "VISIT TILE " + tile.toString();

View File

@ -9,7 +9,7 @@
*/ */
#pragma once #pragma once
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../../../lib/CCreatureHandler.h" #include "../../../lib/CCreatureHandler.h"
#include "../AIUtility.h" #include "../AIUtility.h"

View File

@ -10,7 +10,7 @@
#pragma once #pragma once
#include "CGoal.h" #include "CGoal.h"
#include "../../../lib/VCMI_Lib.h" #include "../../../lib/GameLibrary.h"
#include "../../../lib/gameState/QuestInfo.h" #include "../../../lib/gameState/QuestInfo.h"
namespace Goals namespace Goals

View File

@ -87,7 +87,7 @@ TGoalVec GatherTroops::getAllPossibleSubgoals()
continue; continue;
} }
auto creature = VLC->creatures()->getByIndex(objid); auto creature = LIBRARY->creatures()->getByIndex(objid);
if(t->getFactionID() == creature->getFactionID()) //TODO: how to force AI to build unupgraded creatures? :O if(t->getFactionID() == creature->getFactionID()) //TODO: how to force AI to build unupgraded creatures? :O
{ {
auto tryFindCreature = [&]() -> std::optional<std::vector<CreatureID>> auto tryFindCreature = [&]() -> std::optional<std::vector<CreatureID>>
@ -135,7 +135,7 @@ TGoalVec GatherTroops::getAllPossibleSubgoals()
{ {
for(auto type : creature.second) for(auto type : creature.second)
{ {
if(type.getNum() == objid && ai->ah->freeResources().canAfford(VLC->creatures()->getById(type)->getFullRecruitCost())) if(type.getNum() == objid && ai->ah->freeResources().canAfford(LIBRARY->creatures()->getById(type)->getFullRecruitCost()))
vstd::concatenate(solutions, ai->ah->howToVisitObj(obj)); vstd::concatenate(solutions, ai->ah->howToVisitObj(obj));
} }
} }

View File

@ -10,7 +10,7 @@
#include "StdInc.h" #include "StdInc.h"
#include "MapObjectsEvaluator.h" #include "MapObjectsEvaluator.h"
#include "../../lib/GameConstants.h" #include "../../lib/GameConstants.h"
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "../../lib/CCreatureHandler.h" #include "../../lib/CCreatureHandler.h"
#include "../../lib/mapObjects/CompoundMapObjectID.h" #include "../../lib/mapObjects/CompoundMapObjectID.h"
#include "../../lib/mapObjectConstructors/AObjectTypeHandler.h" #include "../../lib/mapObjectConstructors/AObjectTypeHandler.h"
@ -31,11 +31,11 @@ MapObjectsEvaluator & MapObjectsEvaluator::getInstance()
MapObjectsEvaluator::MapObjectsEvaluator() MapObjectsEvaluator::MapObjectsEvaluator()
{ {
for(auto primaryID : VLC->objtypeh->knownObjects()) for(auto primaryID : LIBRARY->objtypeh->knownObjects())
{ {
for(auto secondaryID : VLC->objtypeh->knownSubObjects(primaryID)) for(auto secondaryID : LIBRARY->objtypeh->knownSubObjects(primaryID))
{ {
auto handler = VLC->objtypeh->getHandlerFor(primaryID, secondaryID); auto handler = LIBRARY->objtypeh->getHandlerFor(primaryID, secondaryID);
if(handler && !handler->isStaticObject()) if(handler && !handler->isStaticObject())
{ {
if(handler->getAiValue() != std::nullopt) if(handler->getAiValue() != std::nullopt)
@ -83,7 +83,7 @@ std::optional<int> MapObjectsEvaluator::getObjectValue(const CGObjectInstance *
{ {
for(auto & creatureID : creLevel.second) for(auto & creatureID : creLevel.second)
{ {
auto creature = VLC->creatures()->getById(creatureID); auto creature = LIBRARY->creatures()->getById(creatureID);
aiValue += (creature->getAIValue() * creature->getGrowth()); aiValue += (creature->getAIValue() * creature->getGrowth());
} }
} }

View File

@ -17,6 +17,7 @@
#include "../../../lib/pathfinder/CPathfinder.h" #include "../../../lib/pathfinder/CPathfinder.h"
#include "../../../lib/pathfinder/PathfinderOptions.h" #include "../../../lib/pathfinder/PathfinderOptions.h"
#include "../../../lib/pathfinder/PathfinderUtil.h" #include "../../../lib/pathfinder/PathfinderUtil.h"
#include "../../../lib/IGameSettings.h"
#include "../../../lib/CPlayerState.h" #include "../../../lib/CPlayerState.h"
AINodeStorage::AINodeStorage(const int3 & Sizes) AINodeStorage::AINodeStorage(const int3 & Sizes)
@ -246,7 +247,8 @@ void AINodeStorage::calculateTownPortalTeleportations(
// TODO: Copy/Paste from TownPortalMechanics // TODO: Copy/Paste from TownPortalMechanics
auto skillLevel = hero->getSpellSchoolLevel(townPortal); auto skillLevel = hero->getSpellSchoolLevel(townPortal);
auto movementCost = GameConstants::BASE_MOVEMENT_COST * (skillLevel >= 3 ? 2 : 3); int baseCost = hero->cb->getSettings().getInteger(EGameSettings::HEROES_MOVEMENT_COST_BASE);
auto movementCost = baseCost * (skillLevel >= 3 ? 2 : 3);
if(hero->movementPointsRemaining() < movementCost) if(hero->movementPointsRemaining() < movementCost)
{ {

View File

@ -11,7 +11,7 @@
#include "AIUtility.h" #include "AIUtility.h"
#include "../../lib/GameConstants.h" #include "../../lib/GameConstants.h"
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "VCAI.h" #include "VCAI.h"
#include <boost/heap/binomial_heap.hpp> #include <boost/heap/binomial_heap.hpp>

View File

@ -174,7 +174,7 @@ void VCAI::showTavernWindow(const CGObjectInstance * object, const CGHeroInstanc
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "TavernWindow"); status.addQuery(queryID, "TavernWindow");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void VCAI::showThievesGuildWindow(const CGObjectInstance * obj) void VCAI::showThievesGuildWindow(const CGObjectInstance * obj)
@ -311,7 +311,7 @@ void VCAI::heroExchangeStarted(ObjectInstanceID hero1, ObjectInstanceID hero2, Q
status.addQuery(query, boost::str(boost::format("Exchange between heroes %s (%d) and %s (%d)") % firstHero->getNameTranslated() % firstHero->tempOwner % secondHero->getNameTranslated() % secondHero->tempOwner)); status.addQuery(query, boost::str(boost::format("Exchange between heroes %s (%d) and %s (%d)") % firstHero->getNameTranslated() % firstHero->tempOwner % secondHero->getNameTranslated() % secondHero->tempOwner));
requestActionASAP([=]() requestActionASAP([this, firstHero, secondHero, query]()
{ {
float goalpriority1 = 0; float goalpriority1 = 0;
float goalpriority2 = 0; float goalpriority2 = 0;
@ -370,7 +370,7 @@ void VCAI::showRecruitmentDialog(const CGDwelling * dwelling, const CArmedInstan
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "RecruitmentDialog"); status.addQuery(queryID, "RecruitmentDialog");
requestActionASAP([=](){ requestActionASAP([this, dwelling, dst, queryID](){
recruitCreatures(dwelling, dst); recruitCreatures(dwelling, dst);
checkHeroArmy(dynamic_cast<const CGHeroInstance*>(dst)); checkHeroArmy(dynamic_cast<const CGHeroInstance*>(dst));
answerQuery(queryID, 0); answerQuery(queryID, 0);
@ -532,7 +532,7 @@ void VCAI::showUniversityWindow(const IMarket * market, const CGHeroInstance * v
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "UniversityWindow"); status.addQuery(queryID, "UniversityWindow");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void VCAI::heroManaPointsChanged(const CGHeroInstance * hero) void VCAI::heroManaPointsChanged(const CGHeroInstance * hero)
@ -600,7 +600,7 @@ void VCAI::showMarketWindow(const IMarket * market, const CGHeroInstance * visit
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "MarketWindow"); status.addQuery(queryID, "MarketWindow");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void VCAI::showWorldViewEx(const std::vector<ObjectPosInfo> & objectPositions, bool showTerrain) void VCAI::showWorldViewEx(const std::vector<ObjectPosInfo> & objectPositions, bool showTerrain)
@ -646,7 +646,7 @@ void VCAI::yourTurn(QueryID queryID)
LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID); LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID);
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, "YourTurn"); status.addQuery(queryID, "YourTurn");
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
status.startedTurn(); status.startedTurn();
makingTurn = std::make_unique<boost::thread>(&VCAI::makeTurn, this); makingTurn = std::make_unique<boost::thread>(&VCAI::makeTurn, this);
} }
@ -656,7 +656,7 @@ void VCAI::heroGotLevel(const CGHeroInstance * hero, PrimarySkill pskill, std::v
LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID); LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID);
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, boost::str(boost::format("Hero %s got level %d") % hero->getNameTranslated() % hero->level)); status.addQuery(queryID, boost::str(boost::format("Hero %s got level %d") % hero->getNameTranslated() % hero->level));
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void VCAI::commanderGotLevel(const CCommanderInstance * commander, std::vector<ui32> skills, QueryID queryID) void VCAI::commanderGotLevel(const CCommanderInstance * commander, std::vector<ui32> skills, QueryID queryID)
@ -664,7 +664,7 @@ void VCAI::commanderGotLevel(const CCommanderInstance * commander, std::vector<u
LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID); LOG_TRACE_PARAMS(logAi, "queryID '%i'", queryID);
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(queryID, boost::str(boost::format("Commander %s of %s got level %d") % commander->name % commander->armyObj->nodeName() % (int)commander->level)); status.addQuery(queryID, boost::str(boost::format("Commander %s of %s got level %d") % commander->name % commander->armyObj->nodeName() % (int)commander->level));
requestActionASAP([=](){ answerQuery(queryID, 0); }); requestActionASAP([this, queryID](){ answerQuery(queryID, 0); });
} }
void VCAI::showBlockingDialog(const std::string & text, const std::vector<Component> & components, QueryID askID, const int soundID, bool selection, bool cancel, bool safeToAutoaccept) void VCAI::showBlockingDialog(const std::string & text, const std::vector<Component> & components, QueryID askID, const int soundID, bool selection, bool cancel, bool safeToAutoaccept)
@ -681,7 +681,7 @@ void VCAI::showBlockingDialog(const std::string & text, const std::vector<Compon
if(!selection && cancel) //yes&no -> always answer yes, we are a brave AI :) if(!selection && cancel) //yes&no -> always answer yes, we are a brave AI :)
sel = 1; sel = 1;
requestActionASAP([=]() requestActionASAP([this, askID, sel]()
{ {
answerQuery(askID, sel); answerQuery(askID, sel);
}); });
@ -726,7 +726,7 @@ void VCAI::showTeleportDialog(const CGHeroInstance * hero, TeleportChannelID cha
} }
} }
requestActionASAP([=]() requestActionASAP([this, askID, chosenExit]()
{ {
answerQuery(askID, chosenExit); answerQuery(askID, chosenExit);
}); });
@ -743,7 +743,7 @@ void VCAI::showGarrisonDialog(const CArmedInstance * up, const CGHeroInstance *
status.addQuery(queryID, boost::str(boost::format("Garrison dialog with %s and %s") % s1 % s2)); status.addQuery(queryID, boost::str(boost::format("Garrison dialog with %s and %s") % s1 % s2));
//you can't request action from action-response thread //you can't request action from action-response thread
requestActionASAP([=]() requestActionASAP([this, down, up, removableUnits, queryID]()
{ {
if(removableUnits && !cb->getStartInfo()->isRestorationOfErathiaCampaign()) if(removableUnits && !cb->getStartInfo()->isRestorationOfErathiaCampaign())
pickBestCreatures(down, up); pickBestCreatures(down, up);
@ -756,7 +756,7 @@ void VCAI::showMapObjectSelectDialog(QueryID askID, const Component & icon, cons
{ {
NET_EVENT_HANDLER; NET_EVENT_HANDLER;
status.addQuery(askID, "Map object select query"); status.addQuery(askID, "Map object select query");
requestActionASAP([=](){ answerQuery(askID, selectedObject.getNum()); }); requestActionASAP([this, askID](){ answerQuery(askID, selectedObject.getNum()); });
} }
void makePossibleUpgrades(const CArmedInstance * obj) void makePossibleUpgrades(const CArmedInstance * obj)
@ -802,7 +802,7 @@ void VCAI::makeTurn()
auto day = cb->getDate(Date::DAY); auto day = cb->getDate(Date::DAY);
logAi->info("Player %d (%s) starting turn, day %d", playerID, playerID.toString(), day); logAi->info("Player %d (%s) starting turn, day %d", playerID, playerID.toString(), day);
boost::shared_lock gsLock(CGameState::mutex); std::shared_lock gsLock(CGameState::mutex);
setThreadName("VCAI::makeTurn"); setThreadName("VCAI::makeTurn");
switch(cb->getDate(Date::DAY_OF_WEEK)) switch(cb->getDate(Date::DAY_OF_WEEK))
@ -1264,7 +1264,7 @@ void VCAI::recruitCreatures(const CGDwelling * d, const CArmedInstance * recruit
int count = d->creatures[i].first; int count = d->creatures[i].first;
CreatureID creID = d->creatures[i].second.back(); CreatureID creID = d->creatures[i].second.back();
vstd::amin(count, ah->freeResources() / VLC->creatures()->getById(creID)->getFullRecruitCost()); vstd::amin(count, ah->freeResources() / LIBRARY->creatures()->getById(creID)->getFullRecruitCost());
if(count > 0) if(count > 0)
cb->recruitCreatures(d, recruiter, creID, count, i); cb->recruitCreatures(d, recruiter, creID, count, i);
} }
@ -2491,7 +2491,7 @@ void VCAI::recruitHero(const CGTownInstance * t, bool throwing)
void VCAI::finish() void VCAI::finish()
{ {
//we want to lock to avoid multiple threads from calling makingTurn->join() at same time //we want to lock to avoid multiple threads from calling makingTurn->join() at same time
boost::lock_guard<boost::mutex> multipleCleanupGuard(turnInterruptionMutex); std::lock_guard<std::mutex> multipleCleanupGuard(turnInterruptionMutex);
if(makingTurn) if(makingTurn)
{ {
makingTurn->interrupt(); makingTurn->interrupt();
@ -2506,7 +2506,7 @@ void VCAI::requestActionASAP(std::function<void()> whatToDo)
{ {
setThreadName("VCAI::requestActionASAP::whatToDo"); setThreadName("VCAI::requestActionASAP::whatToDo");
SET_GLOBAL_STATE(this); SET_GLOBAL_STATE(this);
boost::shared_lock gsLock(CGameState::mutex); std::shared_lock gsLock(CGameState::mutex);
whatToDo(); whatToDo();
}); });
@ -2622,7 +2622,7 @@ AIStatus::~AIStatus()
void AIStatus::setBattle(BattleState BS) void AIStatus::setBattle(BattleState BS)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
LOG_TRACE_PARAMS(logAi, "battle state=%d", (int)BS); LOG_TRACE_PARAMS(logAi, "battle state=%d", (int)BS);
battle = BS; battle = BS;
cv.notify_all(); cv.notify_all();
@ -2630,7 +2630,7 @@ void AIStatus::setBattle(BattleState BS)
BattleState AIStatus::getBattle() BattleState AIStatus::getBattle()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
return battle; return battle;
} }
@ -2643,7 +2643,7 @@ void AIStatus::addQuery(QueryID ID, std::string description)
} }
assert(ID.getNum() >= 0); assert(ID.getNum() >= 0);
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
assert(!vstd::contains(remainingQueries, ID)); assert(!vstd::contains(remainingQueries, ID));
@ -2655,7 +2655,7 @@ void AIStatus::addQuery(QueryID ID, std::string description)
void AIStatus::removeQuery(QueryID ID) void AIStatus::removeQuery(QueryID ID)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
assert(vstd::contains(remainingQueries, ID)); assert(vstd::contains(remainingQueries, ID));
std::string description = remainingQueries[ID]; std::string description = remainingQueries[ID];
@ -2667,40 +2667,40 @@ void AIStatus::removeQuery(QueryID ID)
int AIStatus::getQueriesCount() int AIStatus::getQueriesCount()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
return static_cast<int>(remainingQueries.size()); return static_cast<int>(remainingQueries.size());
} }
void AIStatus::startedTurn() void AIStatus::startedTurn()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
havingTurn = true; havingTurn = true;
cv.notify_all(); cv.notify_all();
} }
void AIStatus::madeTurn() void AIStatus::madeTurn()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
havingTurn = false; havingTurn = false;
cv.notify_all(); cv.notify_all();
} }
void AIStatus::waitTillFree() void AIStatus::waitTillFree()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
while(battle != NO_BATTLE || !remainingQueries.empty() || !objectsBeingVisited.empty() || ongoingHeroMovement) while(battle != NO_BATTLE || !remainingQueries.empty() || !objectsBeingVisited.empty() || ongoingHeroMovement)
cv.wait_for(lock, boost::chrono::milliseconds(100)); cv.wait_for(lock, std::chrono::milliseconds(100));
} }
bool AIStatus::haveTurn() bool AIStatus::haveTurn()
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
return havingTurn; return havingTurn;
} }
void AIStatus::attemptedAnsweringQuery(QueryID queryID, int answerRequestID) void AIStatus::attemptedAnsweringQuery(QueryID queryID, int answerRequestID)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
assert(vstd::contains(remainingQueries, queryID)); assert(vstd::contains(remainingQueries, queryID));
std::string description = remainingQueries[queryID]; std::string description = remainingQueries[queryID];
logAi->debug("Attempted answering query %d - %s. Request id=%d. Waiting for results...", queryID, description, answerRequestID); logAi->debug("Attempted answering query %d - %s. Request id=%d. Waiting for results...", queryID, description, answerRequestID);
@ -2712,7 +2712,7 @@ void AIStatus::receivedAnswerConfirmation(int answerRequestID, int result)
QueryID query; QueryID query;
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
assert(vstd::contains(requestToQueryID, answerRequestID)); assert(vstd::contains(requestToQueryID, answerRequestID));
query = requestToQueryID[answerRequestID]; query = requestToQueryID[answerRequestID];
@ -2733,7 +2733,7 @@ void AIStatus::receivedAnswerConfirmation(int answerRequestID, int result)
void AIStatus::heroVisit(const CGObjectInstance * obj, bool started) void AIStatus::heroVisit(const CGObjectInstance * obj, bool started)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
if(started) if(started)
{ {
objectsBeingVisited.push_back(obj); objectsBeingVisited.push_back(obj);
@ -2751,14 +2751,14 @@ void AIStatus::heroVisit(const CGObjectInstance * obj, bool started)
void AIStatus::setMove(bool ongoing) void AIStatus::setMove(bool ongoing)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
ongoingHeroMovement = ongoing; ongoingHeroMovement = ongoing;
cv.notify_all(); cv.notify_all();
} }
void AIStatus::setChannelProbing(bool ongoing) void AIStatus::setChannelProbing(bool ongoing)
{ {
boost::unique_lock<boost::mutex> lock(mx); std::unique_lock<std::mutex> lock(mx);
ongoingChannelProbing = ongoing; ongoingChannelProbing = ongoing;
cv.notify_all(); cv.notify_all();
} }

View File

@ -17,7 +17,7 @@
#include "../../lib/CThreadHelper.h" #include "../../lib/CThreadHelper.h"
#include "../../lib/GameConstants.h" #include "../../lib/GameConstants.h"
#include "../../lib/VCMI_Lib.h" #include "../../lib/GameLibrary.h"
#include "../../lib/CCreatureHandler.h" #include "../../lib/CCreatureHandler.h"
#include "../../lib/mapObjects/MiscObjects.h" #include "../../lib/mapObjects/MiscObjects.h"
#include "../../lib/spells/CSpellHandler.h" #include "../../lib/spells/CSpellHandler.h"
@ -34,8 +34,8 @@ class AIhelper;
class AIStatus class AIStatus
{ {
boost::mutex mx; std::mutex mx;
boost::condition_variable cv; std::condition_variable cv;
BattleState battle; BattleState battle;
std::map<QueryID, std::string> remainingQueries; std::map<QueryID, std::string> remainingQueries;
@ -107,7 +107,7 @@ public:
std::unique_ptr<boost::thread> makingTurn; std::unique_ptr<boost::thread> makingTurn;
private: private:
boost::mutex turnInterruptionMutex; std::mutex turnInterruptionMutex;
public: public:
ObjectInstanceID selectedObject; ObjectInstanceID selectedObject;

View File

@ -572,9 +572,12 @@ FunctionEnd
!insertmacro MUI_LANGUAGE "Finnish" !insertmacro MUI_LANGUAGE "Finnish"
!insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Hungarian" !insertmacro MUI_LANGUAGE "Hungarian"
!insertmacro MUI_LANGUAGE "Italian" !insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Japanese"
!insertmacro MUI_LANGUAGE "Korean" !insertmacro MUI_LANGUAGE "Korean"
!insertmacro MUI_LANGUAGE "Norwegian"
!insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "Russian"
@ -596,12 +599,10 @@ FunctionEnd
;!insertmacro MUI_LANGUAGE "Dutch" ;!insertmacro MUI_LANGUAGE "Dutch"
;!insertmacro MUI_LANGUAGE "Estonian" ;!insertmacro MUI_LANGUAGE "Estonian"
;!insertmacro MUI_LANGUAGE "Farsi" ;!insertmacro MUI_LANGUAGE "Farsi"
;!insertmacro MUI_LANGUAGE "Greek"
;!insertmacro MUI_LANGUAGE "Hebrew" ;!insertmacro MUI_LANGUAGE "Hebrew"
;!insertmacro MUI_LANGUAGE "Icelandic" ;!insertmacro MUI_LANGUAGE "Icelandic"
;!insertmacro MUI_LANGUAGE "Indonesian" ;!insertmacro MUI_LANGUAGE "Indonesian"
;!insertmacro MUI_LANGUAGE "Irish" ;!insertmacro MUI_LANGUAGE "Irish"
;!insertmacro MUI_LANGUAGE "Japanese"
;!insertmacro MUI_LANGUAGE "Kurdish" ;!insertmacro MUI_LANGUAGE "Kurdish"
;!insertmacro MUI_LANGUAGE "Latvian" ;!insertmacro MUI_LANGUAGE "Latvian"
;!insertmacro MUI_LANGUAGE "Lithuanian" ;!insertmacro MUI_LANGUAGE "Lithuanian"
@ -609,7 +610,6 @@ FunctionEnd
;!insertmacro MUI_LANGUAGE "Macedonian" ;!insertmacro MUI_LANGUAGE "Macedonian"
;!insertmacro MUI_LANGUAGE "Malay" ;!insertmacro MUI_LANGUAGE "Malay"
;!insertmacro MUI_LANGUAGE "Mongolian" ;!insertmacro MUI_LANGUAGE "Mongolian"
;!insertmacro MUI_LANGUAGE "Norwegian"
;!insertmacro MUI_LANGUAGE "PortugueseBR" ;!insertmacro MUI_LANGUAGE "PortugueseBR"
;!insertmacro MUI_LANGUAGE "Romanian" ;!insertmacro MUI_LANGUAGE "Romanian"
;!insertmacro MUI_LANGUAGE "Serbian" ;!insertmacro MUI_LANGUAGE "Serbian"

View File

@ -4,3 +4,6 @@ compiler=clang
compiler.libcxx=c++_shared compiler.libcxx=c++_shared
compiler.version=14 compiler.version=14
os=Android os=Android
[buildenv]
LD=ld # fixes shared libiconv build

View File

@ -0,0 +1,101 @@
@echo off
title VCMI Installer Builder
setlocal enabledelayedexpansion
cls
REM Define variables dynamically relative to the normalized base directory
set "AppVersion=1.6.1"
set "AppBuild=1122334455A"
set "InstallerArch=x64"
set "VCMIFolder=VCMI"
REM Override defaults with optional parameters
if not "%~1"=="" set "AppVersion=%~1"
if not "%~2"=="" set "AppBuild=%~2"
if not "%~3"=="" set "InstallerArch=%~3"
if not "%~4"=="" set "VCMIFolder=%~4"
REM Define Inno Setup version
set InnoSetupVer=6
REM Uncomment this line and set custom UCRT source path, otherwise latest installed Windows 10 SDK will be used
REM set "UCRTFilesPath=%ProgFiles%\Windows Kits\10\Redist\10.0.22621.0\ucrt\DLLs"
REM Normally, there is no need to modify anything below this line.
REM Determine the base directory two levels up from the installer location
set "ScriptDir=%~dp0"
set "BaseDir=%ScriptDir%..\..\"
REM Normalize the base directory
for %%i in ("%BaseDir%") do set "BaseDir=%%~fi"
REM Define specific subdirectories relative to the base directory
set "SourceFilesPath=%BaseDir%bin\Release"
set "LangPath=%BaseDir%CI\wininstaller\lang"
set "LicenseFile=%BaseDir%license.txt"
set "IconFile=%BaseDir%clientapp\icons\vcmi.ico"
set "SmallLogo=%BaseDir%CI\wininstaller\vcmismalllogo.bmp"
set "WizardLogo=%BaseDir%CI\wininstaller\vcmilogo.bmp"
set "InstallerScript=%BaseDir%CI\wininstaller\installer.iss"
REM Determine Program Files directory based on system architecture
if exist "%WinDir%\SysWow64" (
set "ProgFiles=%programfiles(x86)%"
) else (
set "ProgFiles=%programfiles%"
)
REM Dynamically locate the UCRT path if not defined
if not defined UCRTFilesPath (
set "UCRTBasePath=!ProgFiles!\Windows Kits\10\Redist"
set "UCRTFilesPath="
for /f "delims=" %%d in ('dir /b /ad /on "!UCRTBasePath!"') do (
if exist "!UCRTBasePath!\%%d\ucrt\DLLs" (
set "UCRTFilesPath=!UCRTBasePath!\%%d\ucrt\DLLs"
)
)
)
REM Verify Inno Setup is installed
if not exist "%ProgFiles%\Inno Setup %InnoSetupVer%\ISCC.exe" (
echo.
echo ERROR: Inno Setup !InnoSetupVer! was not found in !ProgFiles!.
echo Please install it or specify the correct path.
echo.
pause
goto :eof
)
REM Verify critical paths
if not exist "%InstallerScript%" (
echo ERROR: Installer script not found: !InstallerScript!
pause
goto :eof
)
if not exist "%SourceFilesPath%" (
echo ERROR: Source files path not found: !SourceFilesPath!
pause
goto :eof
)
if not exist "%UCRTFilesPath%" (
echo ERROR: UCRT files path not found: !UCRTFilesPath!
pause
goto :eof
)
REM Call Inno Setup Compiler
"%ProgFiles%\Inno Setup %InnoSetupVer%\ISCC.exe" "%InstallerScript%" ^
/DAppVersion="%AppVersion%" ^
/DAppBuild="%AppBuild%" ^
/DInstallerArch="%InstallerArch%" ^
/DSourceFilesPath="%SourceFilesPath%" ^
/DUCRTFilesPath="%UCRTFilesPath%" ^
/DVCMIFolder="%VCMIFolder%" ^
/DLangPath="%LangPath%" ^
/DLicenseFile="%LicenseFile%" ^
/DIconFile="%IconFile%" ^
/DSmallLogo="%SmallLogo%" ^
/DWizardLogo="%WizardLogo%"
pause

View File

@ -0,0 +1,817 @@
; VCMI Installer Script Instructions
; Steps to Add a New Translation to the Installer:
; 1. Download the ISL file for your language from the Inno Setup repository:
; https://github.com/jrsoftware/issrc/tree/main/Files/Languages
;
; 2. Add the required VCMI custom messages to the downloaded ISL file.
; - Refer to the English.isl file for examples of the necessary custom messages.
; - Ensure all custom messages, including WindowsVersionNotSupported, are properly translated and aligned with the English version.
; 3. Update the ConfirmUninstall message:
; - Custom Uninstall Wizard is used, ensure the ConfirmUninstall message is consistent with the English version and accurately reflects the intended functionality.
; 4. Update the WindowsVersionNotSupported message:
; - Ensure the WindowsVersionNotSupported message is consistent with the English version and accurately reflects the intended functionality.
; 5. Add the new language entry to the [Languages] section of the script:
; - Use the correct syntax to include the language and its corresponding ISL file in the installer configuration.
; Manual preprocessor definitions are provided using ISCC.exe parameters.
; #define AppVersion "1.6.2"
; #define AppBuild "1122334455A"
; #define InstallerArch "x64"
;
; #define SourceFilesPath "C:\_VCMI_source\bin\Release"
; #define UCRTFilesPath "C:\Program Files (x86)\Windows Kits\10\Redist\10.0.22621.0\ucrt\DLLs"
; #define LangPath "C:\_VCMI_Source\CI\wininstaller\lang"
; #define LicenseFile "C:\_VCMI_Source\license.txt"
; #define IconFile "C:\_VCMI_Source\clientapp\icons\vcmi.ico"
; #define SmallLogo "C:\_VCMI_Source\CI\wininstaller\vcmismalllogo.bmp"
; #define WizardLogo "C:\_VCMI_Source\CI\wininstaller\vcmilogo.bmp"
#define VCMIFolder "VCMI"
#define VCMIFilesFolder "My Games\vcmi"
#define InstallerName "VCMI_Installer"
#define AppComment "VCMI is an open-source engine for Heroes III, offering new and extended possibilities."
#define VCMITeam "VCMI Team"
#define VCMICopyright "Copyright © VCMI Community. All rights reserved."
#define VCMIHome "https://vcmi.eu/"
#define VCMIContact "https://discord.gg/chBT42V"
[Setup]
AppId={#VCMIFolder}.{#InstallerArch}
AppName={#VCMIFolder}
AppVersion={#AppVersion}.{#AppBuild}
AppVerName={#VCMIFolder}
AppPublisher={#VCMITeam}
AppPublisherURL={#VCMIHome}
AppSupportURL={#VCMIContact}
AppComments={#AppComment}
DefaultDirName={code:GetDefaultDir}
DefaultGroupName={#VCMIFolder}
UninstallDisplayIcon={app}\VCMI_launcher.exe
OutputBaseFilename={#InstallerName}_{#InstallerArch}_{#AppVersion}.{#AppBuild}
PrivilegesRequiredOverridesAllowed=commandline dialog
ShowLanguageDialog=yes
DisableWelcomePage=no
DisableProgramGroupPage=yes
ChangesAssociations=yes
UsePreviousLanguage=yes
DirExistsWarning=no
UsePreviousAppDir=yes
UsePreviousTasks=yes
UsePreviousGroup=yes
DisableStartupPrompt=yes
UsedUserAreasWarning=no
WindowResizable=no
CloseApplicationsFilter=*.exe
Compression=lzma2/ultra64
SolidCompression=yes
ArchitecturesAllowed={#InstallerArch}compatible
LicenseFile={#LicenseFile}
SetupIconFile={#IconFile}
WizardSmallImageFile={#SmallLogo}
WizardImageFile={#WizardLogo}
; Version informations
MinVersion=6.1sp1
VersionInfoCompany={#VCMITeam}
VersionInfoDescription={#VCMIFolder} {#AppVersion} Setup (Build {#AppBuild})
VersionInfoProductName={#VCMIFolder}
VersionInfoCopyright={#VCMICopyright}
VersionInfoVersion={#AppVersion}
VersionInfoOriginalFileName={#InstallerName}.exe
[Languages]
Name: "english"; MessagesFile: "{#LangPath}\English.isl"
Name: "czech"; MessagesFile: "{#LangPath}\Czech.isl"
Name: "chinese"; MessagesFile: "{#LangPath}\ChineseSimplified.isl"
Name: "finnish"; MessagesFile: "{#LangPath}\Finnish.isl"
Name: "french"; MessagesFile: "{#LangPath}\French.isl"
Name: "german"; MessagesFile: "{#LangPath}\German.isl"
Name: "hungarian"; MessagesFile: "{#LangPath}\Hungarian.isl"
Name: "italian"; MessagesFile: "{#LangPath}\Italian.isl"
Name: "korean"; MessagesFile: "{#LangPath}\Korean.isl"
Name: "polish"; MessagesFile: "{#LangPath}\Polish.isl"
Name: "portuguese"; MessagesFile: "{#LangPath}\BrazilianPortuguese.isl"
Name: "russian"; MessagesFile: "{#LangPath}\Russian.isl"
Name: "spanish"; MessagesFile: "{#LangPath}\Spanish.isl"
Name: "swedish"; MessagesFile: "{#LangPath}\Swedish.isl"
Name: "turkish"; MessagesFile: "{#LangPath}\Turkish.isl"
Name: "ukrainian"; MessagesFile: "{#LangPath}\Ukrainian.isl"
Name: "vietnamese"; MessagesFile: "{#LangPath}\Vietnamese.isl"
[Files]
Source: "{#SourceFilesPath}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; BeforeInstall: PerformHeroes3FileCopy
Source: "{#UCRTFilesPath}\{#InstallerArch}\*"; DestDir: "{app}"; Flags: ignoreversion; Check: IsUCRTNeeded
[Icons]
Name: "{group}\{cm:ShortcutLauncher}"; Filename: "{app}\VCMI_launcher.exe"; Comment: "{cm:ShortcutLauncherComment}"
Name: "{group}\{cm:ShortcutMapEditor}"; Filename: "{app}\VCMI_mapeditor.exe"; Comment: "{cm:ShortcutMapEditorComment}"
Name: "{group}\{cm:ShortcutWebPage}"; Filename: "{#VCMIHome}"; Comment: "{cm:ShortcutWebPageComment}"
Name: "{group}\{cm:ShortcutDiscord}"; Filename: "{#VCMIContact}"; Comment: "{cm:ShortcutDiscordComment}"
Name: "{code:GetUserDesktopFolder}\{cm:ShortcutLauncher}"; Filename: "{app}\VCMI_launcher.exe"; Tasks: desktop; Comment: "{cm:ShortcutLauncherComment}"
[Tasks]
Name: "desktop"; Description: "{cm:CreateDesktopShortcuts}"; GroupDescription: "{cm:SystemIntegration}"
Name: "startmenu"; Description: "{cm:CreateStartMenuShortcuts}"; GroupDescription: "{cm:SystemIntegration}"
Name: "fileassociation_h3m"; Description: "{cm:AssociateH3MFiles}"; GroupDescription: "{cm:SystemIntegration}"; Flags: unchecked
Name: "fileassociation_vcmimap"; Description: "{cm:AssociateVCMIMapFiles}"; GroupDescription: "{cm:SystemIntegration}"
Name: "firewallrules"; Description: "{cm:AddFirewallRules}"; GroupDescription: "{cm:VCMISettings}"; Check: IsAdminInstallMode
Name: "h3copyfiles"; Description: "{cm:CopyH3Files}"; GroupDescription: "{cm:VCMISettings}"; Check: IsHeroes3Installed and IsCopyFilesNeeded
[Registry]
Root: HKCU; Subkey: "Software\{#VCMIFolder}"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Classes\.vmap"; ValueType: string; ValueName: ""; ValueData: "VCMI.vmap"; Flags: uninsdeletevalue; Tasks: fileassociation_vcmimap
Root: HKCU; Subkey: "Software\Classes\VCMI.vmap"; ValueType: string; ValueName: ""; ValueData: "{cm:VMAPDescription}"; Flags: uninsdeletekey; Tasks: fileassociation_vcmimap
Root: HKCU; Subkey: "Software\Classes\VCMI.vmap\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\VCMI_mapeditor.exe"" ""%1"""; Tasks: fileassociation_vcmimap
Root: HKCU; Subkey: "Software\Classes\.vcmp"; ValueType: string; ValueName: ""; ValueData: "VCMI.vcmp"; Flags: uninsdeletevalue; Tasks: fileassociation_vcmimap
Root: HKCU; Subkey: "Software\Classes\VCMI.vcmp"; ValueType: string; ValueName: ""; ValueData: "{cm:VCMPDescription}"; Flags: uninsdeletekey; Tasks: fileassociation_vcmimap
Root: HKCU; Subkey: "Software\Classes\VCMI.vcmp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\VCMI_mapeditor.exe"" ""%1"""; Tasks: fileassociation_vcmimap
Root: HKCU; Subkey: "Software\Classes\.h3m"; ValueType: string; ValueName: ""; ValueData: "VCMI.h3m"; Flags: uninsdeletevalue; Tasks: fileassociation_h3m
Root: HKCU; Subkey: "Software\Classes\VCMI.h3m"; ValueType: string; ValueName: ""; ValueData: "{cm:H3MDescription}"; Flags: uninsdeletekey; Tasks: fileassociation_h3m
Root: HKCU; Subkey: "Software\Classes\VCMI.h3m\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\VCMI_mapeditor.exe"" ""%1"""; Tasks: fileassociation_h3m
[Run]
Filename: "netsh.exe"; Parameters: "advfirewall firewall add rule name=vcmi_server dir=in action=allow program=""{app}\vcmi_server.exe"" enable=yes profile=public,private"; Flags: runhidden; Tasks: firewallrules; Check: IsAdmin
Filename: "netsh.exe"; Parameters: "advfirewall firewall add rule name=vcmi_client dir=in action=allow program=""{app}\vcmi_client.exe"" enable=yes profile=public,private"; Flags: runhidden; Tasks: firewallrules; Check: IsAdmin
Filename: "{app}\VCMI_launcher.exe"; Description: "{cm:RunVCMILauncherAfterInstall}"; Flags: nowait postinstall skipifsilent
[UninstallRun]
; Kill VCMI processes
Filename: "taskkill.exe"; Parameters: "/F /IM VCMI_client.exe"; Flags: runhidden; RunOnceId: "KillVCMIClient"
Filename: "taskkill.exe"; Parameters: "/F /IM VCMI_server.exe"; Flags: runhidden; RunOnceId: "KillVCMIServer"
Filename: "taskkill.exe"; Parameters: "/F /IM VCMI_launcher.exe"; Flags: runhidden; RunOnceId: "KillVCMILauncher"
Filename: "taskkill.exe"; Parameters: "/F /IM VCMI_mapeditor.exe"; Flags: runhidden; RunOnceId: "KillVCMIMapEditor"
; Remove firewall rules
Filename: "netsh.exe"; Parameters: "advfirewall firewall delete rule name=vcmi_server"; Flags: runhidden; Check: IsAdmin; RunOnceId: "RemoveFirewallVCMIServer"
Filename: "netsh.exe"; Parameters: "advfirewall firewall delete rule name=vcmi_client"; Flags: runhidden; Check: IsAdmin; RunOnceId: "RemoveFirewallVCMIClient"
[Code]
var
InstallModePage: TInputOptionWizardPage;
FooterLabel: TLabel;
IsUpgrade: Boolean;
Heroes3Path: String;
GlobalUserName: String;
GlobalUserDocsFolder: String;
GlobalUserAppdataFolder: String;
VCMIMapsFolder, VCMIDataFolder, VCMIMp3Folder: String;
Heroes3MapsFolder, Heroes3DataFolder, Heroes3Mp3Folder: String;
function RegistryQueryPath(Key, ValueName: String): String;
begin
if RegQueryStringValue(HKLM, Key, ValueName, Result) then
Exit
else
Result := '';
end;
function FolderSize(FolderPath: String): Int64;
var
FindRec: TFindRec;
begin
Result := 0;
if FindFirst(FolderPath + '\*', FindRec) then
begin
try
repeat
if (FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
Result := Result + FindRec.SizeLow
else if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
Result := Result + FolderSize(FolderPath + '\' + FindRec.Name);
until not FindNext(FindRec);
finally
FindClose(FindRec);
end;
end;
end;
function IsFolderValid(FolderPath: String): Boolean;
begin
Result := DirExists(FolderPath) and (FolderSize(FolderPath) > 1024 * 1024);
end;
procedure CopyFolderContents(SourceDir, DestDir: String; Overwrite: Boolean);
var
FindRec: TFindRec;
SourceFile, DestFile: String;
begin
// Ensure the destination directory exists
if not DirExists(DestDir) then
if not ForceDirectories(DestDir) then
begin
//MsgBox('Failed to create destination directory: ' + DestDir, mbError, MB_OK);
Exit;
end;
// Start file copying
if FindFirst(SourceDir + '\*.*', FindRec) then
begin
try
repeat
SourceFile := SourceDir + '\' + FindRec.Name;
DestFile := DestDir + '\' + FindRec.Name;
if (FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
begin
if Overwrite or not FileExists(DestFile) then
begin
if not FileCopy(SourceFile, DestFile, False) then
//MsgBox('Failed to copy file: ' + SourceFile + ' to ' + DestFile, mbError, MB_OK);
end;
end
else if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
begin
// Copy subdirectories recursively
CopyFolderContents(SourceFile, DestFile, Overwrite);
end;
until not FindNext(FindRec);
finally
FindClose(FindRec);
end;
end
//else
// MsgBox('No files found in directory: ' + SourceDir, mbError, MB_OK);
end;
// A huge workaround to get non-admin profile name on elevated installer as admin
function WTSQuerySessionInformation(hServer: THandle; SessionId: Cardinal; WTSInfoClass: Integer; var pBuffer: DWord; var BytesReturned: DWord): Boolean;
external 'WTSQuerySessionInformationW@wtsapi32.dll stdcall';
procedure WTSFreeMemory(pMemory: DWord);
external 'WTSFreeMemory@wtsapi32.dll stdcall';
procedure RtlMoveMemoryAsString(Dest: string; Source: DWord; Len: Integer);
external 'RtlMoveMemory@kernel32.dll stdcall';
const
WTS_CURRENT_SERVER_HANDLE = 0;
WTS_CURRENT_SESSION = -1;
WTSUserName = 5;
function GetCurrentSessionUserName: string;
var
Buffer: DWord;
BytesReturned: DWord;
QueryResult: Boolean;
begin
// Initialize Result to an empty string
Result := '';
// Query the username for the current session
QueryResult := WTSQuerySessionInformation(
WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSUserName, Buffer, BytesReturned);
if not QueryResult then
begin
// Error if the query fails
Exit;
end;
try
// Set the length of the result string (BytesReturned includes null terminator)
SetLength(Result, (BytesReturned div 2) - 1); // Divide by 2 for Unicode and exclude null terminator
// Copy the buffer contents into the result string
RtlMoveMemoryAsString(Result, Buffer, BytesReturned - 2); // Exclude null terminator
finally
// Free the allocated memory
WTSFreeMemory(Buffer);
end;
end;
function GetCommonProgramFilesDir: String;
begin
// Check if the installer is running on a 64-bit system
if IsWin64 then
begin
if ExpandConstant('{#InstallerArch}') = 'x64' then
// For 64-bit installer, return the 64-bit Program Files directory
Result := ExpandConstant('{commonpf64}')
else
// For 32-bit installer on 64-bit system, return the 32-bit Program Files directory
Result := ExpandConstant('{commonpf32}');
end
else
// On 32-bit systems, always return the 32-bit Program Files directory
Result := ExpandConstant('{commonpf32}');
end;
function GetDefaultDir(Default: String): String;
begin
if IsAdmin then
// Default to Program Files for admins
Result := GetCommonProgramFilesDir + '\{#VCMIFolder}'
else
// Default to User AppData for non-admin users
Result := GlobalUserAppdataFolder + '\{#VCMIFolder}';
end;
function GetUserFolderPath(Constant: String): String;
var
FolderPath: String;
OriginalUserName: String;
CurrentSessionUserName: String;
begin
// Retrieve the current username from the session
CurrentSessionUserName := '\' + GlobalUserName + '\';
// Retrieve the original username
OriginalUserName := '\' + GetUserNameString + '\';
// Expand the specified constant
FolderPath := ExpandConstant(Constant);
// Replace the original username with the current session username in the path
StringChangeEx(FolderPath, OriginalUserName, CurrentSessionUserName, True);
// Return the modified folder path
Result := FolderPath;
end;
procedure OnTaskCheck(Sender: TObject);
var
i: Integer;
begin
// Loop through all tasks in the tasks list
for i := 0 to WizardForm.TasksList.Items.Count - 1 do
begin
// Check if the current task is "firewallrules"
if WizardForm.TasksList.Items[i] = ExpandConstant('{cm:AddFirewallRules}') then
begin
// Check if the "firewallrules" task is unchecked
if not WizardForm.TasksList.Checked[i] then
begin
// Show a custom warning message box
MsgBox(ExpandConstant('{cm:Warning}') + '!' + #13#10 + #13#10 + ExpandConstant('{cm:InstallForMeOnly1}') + #13#10 + ExpandConstant('{cm:InstallForMeOnly2}'), mbError, MB_OK);
end;
Exit; // Task found, exit the loop
end;
end;
end;
// Specific functions for user folders
function GetUserDocsFolder: String;
begin
Result := GetUserFolderPath('{userdocs}');
end;
function GetUserAppdataFolder: String;
begin
Result := GetUserFolderPath('{userappdata}');
end;
function GetUserDesktopFolder(Default: String): String;
begin
Result := GetUserFolderPath('{userdesktop}');
end;
function IsUCRTNeeded: Boolean;
var
FileName: String;
begin
Result := False; // Default to not copying files
// Normalize and extract the file name from CurrentFileName
FileName := ExtractFileName(ExpandConstant(CurrentFileName));
// Check for file existence based on architecture
if IsWin64 then
begin
if ExpandConstant('{#InstallerArch}') = 'x64' then
// For 64-bit installer on 64-bit OS, check System32
Result := not FileExists(ExpandConstant('{win}\System32\' + FileName))
else
// For 32-bit installer on 64-bit OS, check SysWOW64
Result := not FileExists(ExpandConstant('{win}\SysWOW64\' + FileName));
end
else
// For 32-bit OS, always check System32
Result := not FileExists(ExpandConstant('{win}\System32\' + FileName));
end;
function IsHeroes3Installed(): Boolean;
begin
Result := False;
if (Heroes3Path <> '') then
Result := True;
end;
function IsCopyFilesNeeded(): Boolean;
begin
// Check if any of the required folders are not valid
Result := not (IsFolderValid(VCMIDataFolder) and IsFolderValid(VCMIMapsFolder) and IsFolderValid(VCMIMp3Folder));
end;
function InitializeSetup(): Boolean;
var
InstallPath: String;
begin
// Check if the application is already installed
IsUpgrade := RegQueryStringValue(HKCU, 'Software\{#VCMIFolder}', 'InstallPath', InstallPath);
// Initialize the global variable during setup
GlobalUserName := GetCurrentSessionUserName();
GlobalUserDocsFolder := GetUserDocsFolder();
GlobalUserAppdataFolder := GetUserAppdataFolder();
// Define paths for VCMI
VCMIMapsFolder := GlobalUserDocsFolder + '\' + '{#VCMIFilesFolder}' + '\Maps';
VCMIDataFolder := GlobalUserDocsFolder + '\' + '{#VCMIFilesFolder}' + '\Data';
VCMIMp3Folder := GlobalUserDocsFolder + '\' + '{#VCMIFilesFolder}' + '\Mp3';
// Check for Heroes 3 installation paths
Heroes3Path := RegistryQueryPath('SOFTWARE\GOG.com\Games\1207658787', 'path');
if Heroes3Path = '' then
Heroes3Path := RegistryQueryPath('SOFTWARE\WOW6432Node\GOG.com\Games\1207658787', 'path');
if Heroes3Path = '' then
Heroes3Path := RegistryQueryPath('SOFTWARE\New World Computing\Heroes of Might and Magic® III\1.0', 'AppPath');
if Heroes3Path = '' then
Heroes3Path := RegistryQueryPath('SOFTWARE\WOW6432Node\New World Computing\Heroes of Might and Magic® III\1.0', 'AppPath');
if Heroes3Path = '' then
Heroes3Path := RegistryQueryPath('SOFTWARE\New World Computing\Heroes of Might and Magic III\1.0', 'AppPath');
if Heroes3Path = '' then
Heroes3Path := RegistryQueryPath('SOFTWARE\WOW6432Node\New World Computing\Heroes of Might and Magic III\1.0', 'AppPath');
if (Heroes3Path <> '') then
begin
Heroes3MapsFolder := Heroes3Path + '\Maps';
Heroes3DataFolder := Heroes3Path + '\Data';
Heroes3Mp3Folder := Heroes3Path + '\Mp3';
end;
Result := True;
end;
function InitializeUninstall(): Boolean;
begin
// Initialize the global variable during uninstall
GlobalUserName := GetCurrentSessionUserName();
GlobalUserDocsFolder := GetUserDocsFolder();
GlobalUserAppdataFolder := GetUserAppdataFolder();
Result := True;
end;
procedure InitializeWizard();
begin
// Check if the application is already installed
if not IsUpgrade then
begin
// Create the install mode selection page only if it's not an upgrade
InstallModePage := CreateInputOptionPage(
wpWelcome,
ExpandConstant('{cm:SelectSetupInstallModeTitle}'),
ExpandConstant('{cm:SelectSetupInstallModeDesc}'),
ExpandConstant('{cm:SelectSetupInstallModeSubTitle}'),
True, False
);
// Option 0
InstallModePage.Add(ExpandConstant(#13#10 + ' {cm:InstallForAllUsers}' + #13#10 + ' • {cm:InstallForAllUsers1}' + #13#10 + #13#10));
// Option 1
InstallModePage.Add(ExpandConstant(#13#10 + ' {cm:InstallForMeOnly}' + #13#10 + ' • {cm:InstallForMeOnly1}' + #13#10 + ' • {cm:InstallForMeOnly2}' + #13#10));
if IsAdmin then
begin
// Default to "All Users"
InstallModePage.SelectedValueIndex := 0;
end
else
begin
// Default to "Me Only"
InstallModePage.SelectedValueIndex := 1;
// Disable the first option ("Install for All Users") for non-admins
InstallModePage.CheckListBox.ItemEnabled[0] := False;
// Force a redraw of the CheckListBox to fix appearance
InstallModePage.CheckListBox.Invalidate();
end;
end;
// Attach an OnClick event handler to the tasks list
WizardForm.TasksList.OnClickCheck := @OnTaskCheck;
// Enable word wrap for the ReadyMemo
WizardForm.ReadyMemo.ScrollBars := ssNone; // No scrollbars
WizardForm.ReadyMemo.WordWrap := True;
// Create a custom label for the footer message
FooterLabel := TLabel.Create(WizardForm);
FooterLabel.Parent := WizardForm;
FooterLabel.Caption := '{#VCMIFolder} v' + '{#AppVersion}' + '.' + '{#AppBuild}';
// Padding from the left edge
FooterLabel.Left := 10;
// Adjust to leave space for multiple lines
FooterLabel.Top := WizardForm.ClientHeight - 30;
// Adjust for padding
FooterLabel.Width := WizardForm.ClientWidth - 20;
// Adjust height to accommodate multiple lines
FooterLabel.Height := 40;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := False; // Default is not to skip the page
if IsUpgrade then
begin
if (PageID = wpLicense) or (PageID = wpSelectTasks) or (PageID = wpReady) then
begin
Result := True; // Skip these pages during upgrade
Exit;
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
// Ensure the footer message is visible on every page
FooterLabel.Visible := True;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
// Skip the custom page on upgrade
if IsUpgrade and Assigned(InstallModePage) and (CurPageID = InstallModePage.ID) then
begin
Result := True;
Exit;
end;
// Handle logic for the custom page if it exists
if Assigned(InstallModePage) and (CurPageID = InstallModePage.ID) then
begin
if (InstallModePage.SelectedValueIndex = 0) and not IsAdmin then
begin
Result := False;
Exit;
end;
if InstallModePage.SelectedValueIndex = 0 then
WizardForm.DirEdit.Text := GetCommonProgramFilesDir + '\{#VCMIFolder}'
else
WizardForm.DirEdit.Text := GlobalUserAppdataFolder + '\{#VCMIFolder}';
end;
Result := True;
end;
procedure PerformHeroes3FileCopy();
var
i: Integer;
begin
// Loop through all tasks to find the "h3copyfiles" task
for i := 0 to WizardForm.TasksList.Items.Count - 1 do
begin
// Check if the current task is "h3copyfiles"
if WizardForm.TasksList.Items[i] = ExpandConstant('{cm:CopyH3Files}') then
begin
// Check if the "h3copyfiles" task is checked
if WizardForm.TasksList.Checked[i] then
begin
if IsCopyFilesNeeded then
begin
// Copy folders if conditions are met
if (IsFolderValid(Heroes3MapsFolder) and not IsFolderValid(VCMIMapsFolder)) then
CopyFolderContents(Heroes3MapsFolder, VCMIMapsFolder, True);
if (IsFolderValid(Heroes3DataFolder) and not IsFolderValid(VCMIDataFolder)) then
CopyFolderContents(Heroes3DataFolder, VCMIDataFolder, True);
if (IsFolderValid(Heroes3Mp3Folder) and not IsFolderValid(VCMIMp3Folder)) then
CopyFolderContents(Heroes3Mp3Folder, VCMIMp3Folder, True);
end;
end;
Exit; // Task found, exit the loop
end;
end;
end;
/// Uninstall ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
var
DeleteUserDataCheckbox: TNewCheckBox;
DeleteUserDataLabel: TLabel;
function DeleteFolderContents(const FolderPath: String): Boolean;
var
FindResult: TFindRec;
SubPath: String;
begin
Result := True;
if FindFirst(FolderPath + '\*', FindResult) then
begin
try
repeat
if (FindResult.Name <> '.') and (FindResult.Name <> '..') then
begin
SubPath := FolderPath + '\' + FindResult.Name;
if (FindResult.Attributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
begin
if not DeleteFolderContents(SubPath) then
begin
Result := False;
Exit;
end;
if not RemoveDir(SubPath) then
begin
Result := False;
Exit;
end;
end
else
begin
if not DeleteFile(SubPath) then
begin
Result := False;
Exit;
end;
end;
end;
until not FindNext(FindResult);
finally
FindClose(FindResult);
end;
end;
end;
procedure PerformFileDeletion;
var
UserDataFolder: String;
begin
if (DeleteUserDataCheckbox <> nil) and DeleteUserDataCheckbox.Checked then
begin
UserDataFolder := GlobalUserDocsFolder + '\' + '{#VCMIFilesFolder}';
if DirExists(UserDataFolder) then
begin
if DeleteFolderContents(UserDataFolder) then
begin
if not RemoveDir(UserDataFolder) then
begin
// Log or handle failed root directory removal if necessary
end;
end;
end;
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
PerformFileDeletion;
// Repeat delete process after uninstall due logs from killed processes during uninstall
if CurUninstallStep = usPostUninstall then
PerformFileDeletion;
end;
procedure UninsNextButtonOnClick(Sender: TObject);
begin
with UninstallProgressForm.InnerNotebook do
begin
ActivePage := Pages[ActivePage.PageIndex + 1];
if ActivePage.PageIndex = PageCount - 1 then
begin
TButton(Sender).Hide;
UninstallProgressForm.Close;
end;
end;
end;
procedure UninsCancelButtonOnClick(Sender: TObject);
begin
// Optionally handle user cancellation
end;
procedure InitializeUninstallProgressForm();
var
Page: TNewNotebookPage;
UninsNextButton: TButton;
begin
with UninstallProgressForm do
begin
// -- Create the "Uninstall" button
UninsNextButton := TButton.Create(UninstallProgressForm);
with UninsNextButton do
begin
Parent := UninstallProgressForm;
Top := CancelButton.Top;
Width := CancelButton.Width;
Height := CancelButton.Height;
Left := CancelButton.Left - Width - ScaleX(10);
Caption := ExpandConstant('{cm:Uninstall}');
OnClick := @UninsNextButtonOnClick;
TabOrder := 1; // Ensure this button is first in the tab order
Default := True; // Make it the default button (triggered by Enter key)
end;
// -- Configure the Cancel button so it aborts the form
CancelButton.Enabled := True;
CancelButton.ModalResult := mrAbort;
CancelButton.OnClick := @UninsCancelButtonOnClick;
// -- Create a custom page (as the first page in the notebook)
Page := TNewNotebookPage.Create(InnerNotebook);
with Page do
begin
Parent := InnerNotebook;
Notebook := InnerNotebook;
PageIndex := 0; // first page
end;
// -- Create our "Delete user data" checkbox on that custom page
DeleteUserDataCheckbox := TNewCheckBox.Create(UninstallProgressForm);
with DeleteUserDataCheckbox do
begin
Parent := Page;
Top := ScaleX(20);
Left := ScaleX(20);
Width := ScaleX(400);
Checked := False;
Caption := ExpandConstant('{cm:DeleteUserData}');
TabOrder := 0; // Tab focus goes to this control after the Uninstall button
end;
// -- Add a label for the additional text
DeleteUserDataLabel := TLabel.Create(UninstallProgressForm);
with DeleteUserDataLabel do
begin
Parent := Page;
Top := DeleteUserDataCheckbox.Top + ScaleY(20); // Position below the checkbox
Left := DeleteUserDataCheckbox.Left + ScaleX(20); // Indent slightly to align with the text
Width := ScaleX(400);
Caption := GlobalUserDocsFolder + '\' + '{#VCMIFilesFolder}';
end;
// -- Activate the first page
InnerNotebook.ActivePage := Page;
// -- Make InstallingPage the last page
InstallingPage.PageIndex := InnerNotebook.PageCount - 1;
// -- Show the form modally; if user clicks Cancel, ShowModal = mrAbort -> Abort uninstallation
if ShowModal = mrAbort then
Abort;
end;
end;

View File

@ -0,0 +1,417 @@
; *** Inno Setup version 6.1.0+ Brazilian Portuguese messages made by Cesar82 cesar.zanetti.82@gmail.com ***
;
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Portugu�s Brasileiro
LanguageID=$0416
LanguageCodePage=1252
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Instalador
SetupWindowTitle=%1 - Instalador
UninstallAppTitle=Desinstalar
UninstallAppFullTitle=Desinstalar %1
; *** Misc. common
InformationTitle=Informa��o
ConfirmTitle=Confirmar
ErrorTitle=Erro
; *** SetupLdr messages
SetupLdrStartupMessage=Isto instalar� o %1. Voc� deseja continuar?
LdrCannotCreateTemp=Incapaz de criar um arquivo tempor�rio. Instala��o abortada
LdrCannotExecTemp=Incapaz de executar o arquivo no diret�rio tempor�rio. Instala��o abortada
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nErro %2: %3
SetupFileMissing=Est� faltando o arquivo %1 do diret�rio de instala��o. Por favor corrija o problema ou obtenha uma nova c�pia do programa.
SetupFileCorrupt=Os arquivos de instala��o est�o corrompidos. Por favor obtenha uma nova c�pia do programa.
SetupFileCorruptOrWrongVer=Os arquivos de instala��o est�o corrompidos ou s�o incompat�veis com esta vers�o do instalador. Por favor corrija o problema ou obtenha uma nova c�pia do programa.
InvalidParameter=Um par�metro inv�lido foi passado na linha de comando:%n%n%1
SetupAlreadyRunning=O instalador j� est� em execu��o.
WindowsVersionNotSupported=Este programa n�o pode ser executado na vers�o do Windows instalada. Certifique-se de estar usando a arquitetura correta do Windows (32 bits ou 64 bits) e a vers�o adequada deste programa.
WindowsServicePackRequired=Este programa requer o %1 Service Pack %2 ou superior.
NotOnThisPlatform=Este programa n�o executar� no %1.
OnlyOnThisPlatform=Este programa deve ser executado no %1.
OnlyOnTheseArchitectures=Este programa s� pode ser instalado em vers�es do Windows projetadas para as seguintes arquiteturas de processadores:%n%n% 1
WinVersionTooLowError=Este programa requer a %1 vers�o %2 ou superior.
WinVersionTooHighError=Este programa n�o pode ser instalado na %1 vers�o %2 ou superior.
AdminPrivilegesRequired=Voc� deve estar logado como administrador quando instalar este programa.
PowerUserPrivilegesRequired=Voc� deve estar logado como administrador ou como um membro do grupo de Usu�rios Power quando instalar este programa.
SetupAppRunningError=O instalador detectou que o %1 est� atualmente em execu��o.%n%nPor favor feche todas as inst�ncias dele agora, ent�o clique em OK pra continuar ou em Cancelar pra sair.
UninstallAppRunningError=O Desinstalador detectou que o %1 est� atualmente em execu��o.%n%nPor favor feche todas as inst�ncias dele agora, ent�o clique em OK pra continuar ou em Cancelar pra sair.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Selecione o Modo de Instala��o do Instalador
PrivilegesRequiredOverrideInstruction=Selecione o modo de instala��o
PrivilegesRequiredOverrideText1=O %1 pode ser instalado pra todos os usu�rios (requer privil�gios administrativos) ou s� pra voc�.
PrivilegesRequiredOverrideText2=O %1 pode ser instalado s� pra voc� ou pra todos os usu�rios (requer privil�gios administrativos).
PrivilegesRequiredOverrideAllUsers=Instalar pra &todos os usu�rios
PrivilegesRequiredOverrideAllUsersRecommended=Instalar pra &todos os usu�rios (recomendado)
PrivilegesRequiredOverrideCurrentUser=Instalar s� &pra mim
PrivilegesRequiredOverrideCurrentUserRecommended=Instalar s� &pra mim (recomendado)
; *** Misc. errors
ErrorCreatingDir=O instalador foi incapaz de criar o diret�rio "%1"
ErrorTooManyFilesInDir=Incapaz de criar um arquivo no diret�rio "%1" porque ele cont�m arquivos demais
; *** Setup common messages
ExitSetupTitle=Sair do Instalador
ExitSetupMessage=A Instala��o n�o est� completa. Se voc� sair agora o programa n�o ser� instalado.%n%nVoc� pode executar o instalador de novo outra hora pra completar a instala��o.%n%nSair do instalador?
AboutSetupMenuItem=&Sobre o Instalador...
AboutSetupTitle=Sobre o Instalador
AboutSetupMessage=%1 vers�o %2%n%3%n%n%1 home page:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< &Voltar
ButtonNext=&Avan�ar >
ButtonInstall=&Instalar
ButtonOK=OK
ButtonCancel=Cancelar
ButtonYes=&Sim
ButtonYesToAll=Sim pra &Todos
ButtonNo=&N�o
ButtonNoToAll=N�&o pra Todos
ButtonFinish=&Concluir
ButtonBrowse=&Procurar...
ButtonWizardBrowse=P&rocurar...
ButtonNewFolder=&Criar Nova Pasta
; *** "Select Language" dialog messages
SelectLanguageTitle=Selecione o Idioma do Instalador
SelectLanguageLabel=Selecione o idioma pra usar durante a instala��o:
; *** Common wizard text
ClickNext=Clique em Avan�ar pra continuar ou em Cancelar pra sair do instalador.
BeveledLabel=
BrowseDialogTitle=Procurar Pasta
BrowseDialogLabel=Selecione uma pasta na lista abaixo, ent�o clique em OK.
NewFolderName=Nova Pasta
; *** "Welcome" wizard page
WelcomeLabel1=Bem-vindo ao Assistente do Instalador do [name]
WelcomeLabel2=Isto instalar� o [name/ver] no seu computador.%n%n� recomendado que voc� feche todos os outros aplicativos antes de continuar.
; *** "Password" wizard page
WizardPassword=Senha
PasswordLabel1=Esta instala��o est� protegida por senha.
PasswordLabel3=Por favor forne�a a senha, ent�o clique em Avan�ar pra continuar. As senhas s�o caso-sensitivo.
PasswordEditLabel=&Senha:
IncorrectPassword=A senha que voc� inseriu n�o est� correta. Por favor tente de novo.
; *** "License Agreement" wizard page
WizardLicense=Acordo de Licen�a
LicenseLabel=Por favor leia as seguintes informa��es importantes antes de continuar.
LicenseLabel3=Por favor leia o seguinte Acordo de Licen�a. Voc� deve aceitar os termos deste acordo antes de continuar com a instala��o.
LicenseAccepted=Eu &aceito o acordo
LicenseNotAccepted=Eu &n�o aceito o acordo
; *** "Information" wizard pages
WizardInfoBefore=Informa��o
InfoBeforeLabel=Por favor leia as seguintes informa��es importantes antes de continuar.
InfoBeforeClickLabel=Quando voc� estiver pronto pra continuar com o instalador, clique em Avan�ar.
WizardInfoAfter=Informa��o
InfoAfterLabel=Por favor leia as seguintes informa��es importantes antes de continuar.
InfoAfterClickLabel=Quando voc� estiver pronto pra continuar com o instalador, clique em Avan�ar.
; *** "User Information" wizard page
WizardUserInfo=Informa��o do Usu�rio
UserInfoDesc=Por favor insira suas informa��es.
UserInfoName=&Nome do Usu�rio:
UserInfoOrg=&Organiza��o:
UserInfoSerial=&N�mero de S�rie:
UserInfoNameRequired=Voc� deve inserir um nome.
; *** "Select Destination Location" wizard page
WizardSelectDir=Selecione o Local de Destino
SelectDirDesc=Aonde o [name] deve ser instalado?
SelectDirLabel3=O instalador instalar� o [name] na seguinte pasta.
SelectDirBrowseLabel=Pra continuar clique em Avan�ar. Se voc� gostaria de selecionar uma pasta diferente, clique em Procurar.
DiskSpaceGBLabel=Pelo menos [gb] MBs de espa�o livre em disco s�o requeridos.
DiskSpaceMBLabel=Pelo menos [mb] MBs de espa�o livre em disco s�o requeridos.
CannotInstallToNetworkDrive=O instalador n�o pode instalar em um drive de rede.
CannotInstallToUNCPath=O instalador n�o pode instalar em um caminho UNC.
InvalidPath=Voc� deve inserir um caminho completo com a letra do drive; por exemplo:%n%nC:\APP%n%n�o um caminho UNC no formul�rio:%n%n\\server\share
InvalidDrive=O drive ou compartilhamento UNC que voc� selecionou n�o existe ou n�o est� acess�vel. Por favor selecione outro.
DiskSpaceWarningTitle=Sem Espa�o em Disco o Bastante
DiskSpaceWarning=O instalador requer pelo menos %1 KBs de espa�o livre pra instalar mas o drive selecionado s� tem %2 KBs dispon�veis.%n%nVoc� quer continuar de qualquer maneira?
DirNameTooLong=O nome ou caminho da pasta � muito longo.
InvalidDirName=O nome da pasta n�o � v�lido.
BadDirName32=Os nomes das pastas n�o pode incluir quaisquer dos seguintes caracteres:%n%n%1
DirExistsTitle=A Pasta Existe
DirExists=A pasta:%n%n%1%n%nj� existe. Voc� gostaria de instalar nesta pasta de qualquer maneira?
DirDoesntExistTitle=A Pasta N�o Existe
DirDoesntExist=A pasta:%n%n%1%n%nn�o existe. Voc� gostaria quer a pasta fosse criada?
; *** "Select Components" wizard page
WizardSelectComponents=Selecionar Componentes
SelectComponentsDesc=Quais componentes devem ser instalados?
SelectComponentsLabel2=Selecione os componentes que voc� quer instalar; desmarque os componentes que voc� n�o quer instalar. Clique em Avan�ar quando voc� estiver pronto pra continuar.
FullInstallation=Instala��o completa
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Instala��o compacta
CustomInstallation=Instala��o personalizada
NoUninstallWarningTitle=O Componente Existe
NoUninstallWarning=O instalador detectou que os seguintes componentes j� est�o instalados no seu computador:%n%n%1%n%nN�o selecionar estes componentes n�o desinstalar� eles.%n%nVoc� gostaria de continuar de qualquer maneira?
ComponentSize1=%1 KBs
ComponentSize2=%1 MBs
ComponentsDiskSpaceGBLabel=A sele��o atual requer pelo menos [gb] MBs de espa�o em disco.
ComponentsDiskSpaceMBLabel=A sele��o atual requer pelo menos [mb] MBs de espa�o em disco.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Selecionar Tarefas Adicionais
SelectTasksDesc=Quais tarefas adicionais devem ser executadas?
SelectTasksLabel2=Selecione as tarefas adicionais que voc� gostaria que o instalador executasse enquanto instala o [name], ent�o clique em Avan�ar.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Selecionar a Pasta do Menu Iniciar
SelectStartMenuFolderDesc=Aonde o instalador deve colocar os atalhos do programa?
SelectStartMenuFolderLabel3=O instalador criar� os atalhos do programa na seguinte pasta do Menu Iniciar.
SelectStartMenuFolderBrowseLabel=Pra continuar clique em Avan�ar. Se voc� gostaria de selecionar uma pasta diferente, clique em Procurar.
MustEnterGroupName=Voc� deve inserir um nome de pasta.
GroupNameTooLong=O nome ou caminho da pasta � muito longo.
InvalidGroupName=O nome da pasta n�o � v�lido.
BadGroupName=O nome da pasta n�o pode incluir quaisquer dos seguintes caracteres:%n%n%1
NoProgramGroupCheck2=&N�o criar uma pasta no Menu Iniciar
; *** "Ready to Install" wizard page
WizardReady=Pronto pra Instalar
ReadyLabel1=O instalador est� agora pronto pra come�ar a instalar o [name] no seu computador.
ReadyLabel2a=Clique em Instalar pra continuar com a instala��o ou clique em Voltar se voc� quer revisar ou mudar quaisquer configura��es.
ReadyLabel2b=Clique em Instalar pra continuar com a instala��o.
ReadyMemoUserInfo=Informa��o do usu�rio:
ReadyMemoDir=Local de destino:
ReadyMemoType=Tipo de instala��o:
ReadyMemoComponents=Componentes selecionados:
ReadyMemoGroup=Pasta do Menu Iniciar:
ReadyMemoTasks=Tarefas adicionais:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Baixando arquivos adicionais...
ButtonStopDownload=&Parar download
StopDownload=Tem certeza que deseja parar o download?
ErrorDownloadAborted=Download abortado
ErrorDownloadFailed=Download falhou: %1 %2
ErrorDownloadSizeFailed=Falha ao obter o tamanho: %1 %2
ErrorFileHash1=Falha no hash do arquivo: %1
ErrorFileHash2=Hash de arquivo inv�lido: esperado %1, encontrado %2
ErrorProgress=Progresso inv�lido: %1 de %2
ErrorFileSize=Tamanho de arquivo inv�lido: esperado %1, encontrado %2
; *** "Preparing to Install" wizard page
WizardPreparing=Preparando pra Instalar
PreparingDesc=O instalador est� se preparando pra instalar o [name] no seu computador.
PreviousInstallNotCompleted=A instala��o/remo��o de um programa anterior n�o foi completada. Voc� precisar� reiniciar o computador pra completar essa instala��o.%n%nAp�s reiniciar seu computador execute o instalador de novo pra completar a instala��o do [name].
CannotContinue=O instalador n�o pode continuar. Por favor clique em Cancelar pra sair.
ApplicationsFound=Os aplicativos a seguir est�o usando arquivos que precisam ser atualizados pelo instalador. � recomendados que voc� permita ao instalador fechar automaticamente estes aplicativos.
ApplicationsFound2=Os aplicativos a seguir est�o usando arquivos que precisam ser atualizados pelo instalador. � recomendados que voc� permita ao instalador fechar automaticamente estes aplicativos. Ap�s a instala��o ter completado, o instalador tentar� reiniciar os aplicativos.
CloseApplications=&Fechar os aplicativos automaticamente
DontCloseApplications=&N�o fechar os aplicativos
ErrorCloseApplications=O instalador foi incapaz de fechar automaticamente todos os aplicativos. � recomendado que voc� feche todos os aplicativos usando os arquivos que precisam ser atualizados pelo instalador antes de continuar.
PrepareToInstallNeedsRestart=A instala��o deve reiniciar seu computador. Depois de reiniciar o computador, execute a Instala��o novamente para concluir a instala��o de [name].%n%nDeseja reiniciar agora?
; *** "Installing" wizard page
WizardInstalling=Instalando
InstallingLabel=Por favor espere enquanto o instalador instala o [name] no seu computador.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Completando o Assistente do Instalador do [name]
FinishedLabelNoIcons=O instalador terminou de instalar o [name] no seu computador.
FinishedLabel=O instalador terminou de instalar o [name] no seu computador. O aplicativo pode ser iniciado selecionando os atalhos instalados.
ClickFinish=Clique em Concluir pra sair do Instalador.
FinishedRestartLabel=Pra completar a instala��o do [name], o instalador deve reiniciar seu computador. Voc� gostaria de reiniciar agora?
FinishedRestartMessage=Pra completar a instala��o do [name], o instalador deve reiniciar seu computador.%n%nVoc� gostaria de reiniciar agora?
ShowReadmeCheck=Sim, eu gostaria de visualizar o arquivo README
YesRadio=&Sim, reiniciar o computador agora
NoRadio=&N�o, eu reiniciarei o computador depois
; used for example as 'Run MyProg.exe'
RunEntryExec=Executar %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Visualizar %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=O Instalador Precisa do Pr�ximo Disco
SelectDiskLabel2=Por favor insira o Disco %1 e clique em OK.%n%nSe os arquivos neste disco podem ser achados numa pasta diferente do que a exibida abaixo, insira o caminho correto ou clique em Procurar.
PathLabel=&Caminho:
FileNotInDir2=O arquivo "%1" n�o p�de ser localizado em "%2". Por favor insira o disco correto ou selecione outra pasta.
SelectDirectoryLabel=Por favor especifique o local do pr�ximo disco.
; *** Installation phase messages
SetupAborted=A instala��o n�o foi completada.%n%nPor favor corrija o problema e execute o instalador de novo.
AbortRetryIgnoreSelectAction=Selecionar a��o
AbortRetryIgnoreRetry=&Tentar de novo
AbortRetryIgnoreIgnore=&Ignorar o erro e continuar
AbortRetryIgnoreCancel=Cancelar instala��o
; *** Installation status messages
StatusClosingApplications=Fechando aplicativos...
StatusCreateDirs=Criando diret�rios...
StatusExtractFiles=Extraindo arquivos...
StatusCreateIcons=Criando atalhos...
StatusCreateIniEntries=Criando entradas INI...
StatusCreateRegistryEntries=Criando entradas do registro...
StatusRegisterFiles=Registrando arquivos...
StatusSavingUninstall=Salvando informa��es de desinstala��o...
StatusRunProgram=Concluindo a instala��o...
StatusRestartingApplications=Reiniciando os aplicativos...
StatusRollback=Desfazendo as mudan�as...
; *** Misc. errors
ErrorInternal2=Erro interno: %1
ErrorFunctionFailedNoCode=%1 falhou
ErrorFunctionFailed=%1 falhou; c�digo %2
ErrorFunctionFailedWithMessage=%1 falhou; c�digo %2.%n%3
ErrorExecutingProgram=Incapaz de executar o arquivo:%n%1
; *** Registry errors
ErrorRegOpenKey=Erro ao abrir a chave do registro:%n%1\%2
ErrorRegCreateKey=Erro ao criar a chave do registro:%n%1\%2
ErrorRegWriteKey=Erro ao gravar a chave do registro:%n%1\%2
; *** INI errors
ErrorIniEntry=Erro ao criar a entrada INI no arquivo "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Ignorar este arquivo (n�o recomendado)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorar o erro e continuar (n�o recomendado)
SourceIsCorrupted=O arquivo de origem est� corrompido
SourceDoesntExist=O arquivo de origem "%1" n�o existe
ExistingFileReadOnly2=O arquivo existente n�o p�de ser substitu�do porque est� marcado como somente-leitura.
ExistingFileReadOnlyRetry=&Remover o atributo somente-leitura e tentar de novo
ExistingFileReadOnlyKeepExisting=&Manter o arquivo existente
ErrorReadingExistingDest=Um erro ocorreu enquanto tentava ler o arquivo existente:
FileExistsSelectAction=Selecione a a��o
FileExists2=O arquivo j� existe.
FileExistsOverwriteExisting=&Sobrescrever o arquivo existente
FileExistsKeepExisting=&Mantenha o arquivo existente
FileExistsOverwriteOrKeepAll=&Fa�a isso para os pr�ximos conflitos
ExistingFileNewerSelectAction=Selecione a a��o
ExistingFileNewer2=O arquivo existente � mais recente do que aquele que o Setup est� tentando instalar.
ExistingFileNewerOverwriteExisting=&Sobrescrever o arquivo existente
ExistingFileNewerKeepExisting=&Mantenha o arquivo existente (recomendado)
ExistingFileNewerOverwriteOrKeepAll=&Fa�a isso para os pr�ximos conflitos
ErrorChangingAttr=Um erro ocorreu enquanto tentava mudar os atributos do arquivo existente:
ErrorCreatingTemp=Um erro ocorreu enquanto tentava criar um arquivo no diret�rio destino:
ErrorReadingSource=Um erro ocorreu enquanto tentava ler o arquivo de origem:
ErrorCopying=Um erro ocorreu enquanto tentava copiar um arquivo:
ErrorReplacingExistingFile=Um erro ocorreu enquanto tentava substituir o arquivo existente:
ErrorRestartReplace=ReiniciarSubstituir falhou:
ErrorRenamingTemp=Um erro ocorreu enquanto tentava renomear um arquivo no diret�rio destino:
ErrorRegisterServer=Incapaz de registrar a DLL/OCX: %1
ErrorRegSvr32Failed=O RegSvr32 falhou com o c�digo de sa�da %1
ErrorRegisterTypeLib=Incapaz de registrar a biblioteca de tipos: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32 bits
UninstallDisplayNameMark64Bit=64 bits
UninstallDisplayNameMarkAllUsers=Todos os usu�rios
UninstallDisplayNameMarkCurrentUser=Usu�rio atual
; *** Post-installation errors
ErrorOpeningReadme=Um erro ocorreu enquanto tentava abrir o arquivo README.
ErrorRestartingComputer=O instalador foi incapaz de reiniciar o computador. Por favor fa�a isto manualmente.
; *** Uninstaller messages
UninstallNotFound=O arquivo "%1" n�o existe. N�o consegue desinstalar.
UninstallOpenError=O arquivo "%1" n�o p�de ser aberto. N�o consegue desinstalar
UninstallUnsupportedVer=O arquivo do log da desinstala��o "%1" est� num formato n�o reconhecido por esta vers�o do desinstalador. N�o consegue desinstalar
UninstallUnknownEntry=Uma entrada desconhecida (%1) foi encontrada no log da desinstala��o
ConfirmUninstall=Tem certeza de que deseja executar o assistente de desinstala��o %1?
UninstallOnlyOnWin64=Esta instala��o s� pode ser desinstalada em Windows 64 bits.
OnlyAdminCanUninstall=Esta instala��o s� pode ser desinstalada por um usu�rio com privil�gios administrativos.
UninstallStatusLabel=Por favor espere enquanto o %1 � removido do seu computador.
UninstalledAll=O %1 foi removido com sucesso do seu computador.
UninstalledMost=Desinstala��o do %1 completa.%n%nAlguns elementos n�o puderam ser removidos. Estes podem ser removidos manualmente.
UninstalledAndNeedsRestart=Pra completar a desinstala��o do %1, seu computador deve ser reiniciado.%n%nVoc� gostaria de reiniciar agora?
UninstallDataCorrupted=O arquivo "%1" est� corrompido. N�o consegue desinstalar
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Remover Arquivo Compartilhado?
ConfirmDeleteSharedFile2=O sistema indica que o seguinte arquivo compartilhado n�o est� mais em uso por quaisquer programas. Voc� gostaria que a Desinstala��o removesse este arquivo compartilhado?%n%nSe quaisquer programas ainda est�o usando este arquivo e ele � removido, esses programas podem n�o funcionar apropriadamente. Se voc� n�o tiver certeza escolha N�o. Deixar o arquivo no seu sistema n�o causar� qualquer dano.
SharedFileNameLabel=Nome do arquivo:
SharedFileLocationLabel=Local:
WizardUninstalling=Status da Desinstala��o
StatusUninstalling=Desinstalando o %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Instalando o %1.
ShutdownBlockReasonUninstallingApp=Desinstalando o %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 vers�o %2
AdditionalIcons=Atalhos adicionais:
CreateDesktopIcon=Criar um atalho &na �rea de trabalho
CreateQuickLaunchIcon=Criar um atalho na &barra de inicializa��o r�pida
ProgramOnTheWeb=%1 na Web
UninstallProgram=Desinstalar o %1
LaunchProgram=Iniciar o %1
AssocFileExtension=&Associar o %1 com a extens�o do arquivo %2
AssocingFileExtension=Associando o %1 com a extens�o do arquivo %2...
AutoStartProgramGroupDescription=Inicializa��o:
AutoStartProgram=Iniciar o %1 automaticamente
AddonHostProgramNotFound=O %1 n�o p�de ser localizado na pasta que voc� selecionou.%n%nVoc� quer continuar de qualquer maneira?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Escolha o Modo de Instala��o
SelectSetupInstallModeDesc=VCMI pode ser instalado para todos os usu�rios ou apenas para voc�.
SelectSetupInstallModeSubTitle=Selecione o modo de instala��o preferido:
InstallForAllUsers=Instalar para todos os usu�rios
InstallForAllUsers1=Requer privil�gios administrativos
InstallForMeOnly=Instalar apenas para mim
InstallForMeOnly1=Um aviso do firewall aparecer� ao iniciar o jogo pela primeira vez
InstallForMeOnly2=Jogos em LAN n�o funcionar�o se a regra do firewall n�o for permitida
SystemIntegration=Integra��o com o sistema
CreateDesktopShortcuts=Criar atalhos na �rea de trabalho
CreateStartMenuShortcuts=Criar atalhos no menu Iniciar
AssociateH3MFiles=Associar arquivos .h3m ao Editor de Mapas VCMI
AssociateVCMIMapFiles=Associar arquivos .vmap e .vcmp ao Editor de Mapas VCMI
VCMISettings=Configura��o do VCMI
AddFirewallRules=Adicionar regras de firewall para VCMI
CopyH3Files=Copiar automaticamente os arquivos necess�rios do Heroes III para o VCMI
RunVCMILauncherAfterInstall=Iniciar o Launcher do VCMI
ShortcutMapEditor=Editor de Mapas VCMI
ShortcutLauncher=Launcher do VCMI
ShortcutWebPage=Site Oficial do VCMI
ShortcutDiscord=Discord do VCMI
ShortcutLauncherComment=Iniciar o Launcher do VCMI
ShortcutMapEditorComment=Abrir o Editor de Mapas do VCMI
ShortcutWebPageComment=Visite o site oficial do VCMI
ShortcutDiscordComment=Visite o Discord oficial do VCMI
DeleteUserData=Excluir dados do usu�rio
Uninstall=Desinstalar
Warning=Aviso
VMAPDescription=Arquivo de mapa do VCMI
VCMPDescription=Arquivo de campanha do VCMI
H3MDescription=Arquivo de mapa do Heroes 3

View File

@ -0,0 +1,427 @@
; *** Inno Setup version 6.1.0+ Chinese Simplified messages ***
;
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
;
; Maintained by Zhenghan Yang
; Email: 847320916@QQ.com
; Translation based on network resource
; The latest Translation is on https://github.com/kira-96/Inno-Setup-Chinese-Simplified-Translation
;
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=简体中文
; If Language Name display incorrect, uncomment next line
; LanguageName=<7B80><4F53><4E2D><6587>
; About LanguageID, to reference link:
; https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c
LanguageID=$0804
LanguageCodePage=936
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
DialogFontName=Microsoft YaHei UI
;DialogFontSize=8
WelcomeFontName=Microsoft YaHei UI
;WelcomeFontSize=12
TitleFontName=Microsoft YaHei UI
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** 应用程序标题
SetupAppTitle=安装
SetupWindowTitle=安装 - %1
UninstallAppTitle=卸载
UninstallAppFullTitle=%1 卸载
; *** Misc. common
InformationTitle=信息
ConfirmTitle=确认
ErrorTitle=错误
; *** SetupLdr messages
SetupLdrStartupMessage=现在将安装 %1。您想要继续吗?
LdrCannotCreateTemp=不能创建临时文件。安装中断。
LdrCannotExecTemp=不能执行临时目录中的文件。安装中断。
HelpTextNote=
; *** 启动错误消息
LastErrorMessage=%1.%n%n错误 %2: %3
SetupFileMissing=安装目录中的文件 %1 丢失。请修正这个问题或者获取程序的新副本。
SetupFileCorrupt=安装文件已损坏。请获取程序的新副本。
SetupFileCorruptOrWrongVer=安装文件已损坏,或是与这个安装程序的版本不兼容。请修正这个问题或获取新的程序副本。
InvalidParameter=无效的命令行参数:%n%n%1
SetupAlreadyRunning=安装程序正在运行。
WindowsVersionNotSupported=此程序无法在您的 Windows 版本上运行。请确保您使用的是正确的 Windows 架构(32 位或 64 位)和此程序的正确版本。
WindowsServicePackRequired=这个程序需要 %1 服务包 %2 或更高。
NotOnThisPlatform=这个程序将不能运行于 %1。
OnlyOnThisPlatform=这个程序必须运行于 %1。
OnlyOnTheseArchitectures=这个程序只能在为下列处理器架构的 Windows 版本中进行安装:%n%n%1
WinVersionTooLowError=这个程序需要 %1 版本 %2 或更高。
WinVersionTooHighError=这个程序不能安装于 %1 版本 %2 或更高。
AdminPrivilegesRequired=在安装这个程序时您必须以管理员身份登录。
PowerUserPrivilegesRequired=在安装这个程序时您必须以管理员身份或有权限的用户组身份登录。
SetupAppRunningError=安装程序发现 %1 当前正在运行。%n%n请先关闭所有运行的窗口,然后点击“确定”继续,或按“取消”退出。
UninstallAppRunningError=卸载程序发现 %1 当前正在运行。%n%n请先关闭所有运行的窗口,然后点击“确定”继续,或按“取消”退出。
; *** 启动问题
PrivilegesRequiredOverrideTitle=选择安装程序模式
PrivilegesRequiredOverrideInstruction=选择安装模式
PrivilegesRequiredOverrideText1=%1 可以为所有用户安装(需要管理员权限),或仅为您安装。
PrivilegesRequiredOverrideText2=%1 只能为您安装,或为所有用户安装(需要管理员权限)。
PrivilegesRequiredOverrideAllUsers=为所有用户安装(&A)
PrivilegesRequiredOverrideAllUsersRecommended=为所有用户安装(&A) (建议选项)
PrivilegesRequiredOverrideCurrentUser=仅为我安装(&M)
PrivilegesRequiredOverrideCurrentUserRecommended=仅为我安装(&M) (建议选项)
; *** 其它错误
ErrorCreatingDir=安装程序不能创建目录“%1”。
ErrorTooManyFilesInDir=不能在目录“%1”中创建文件,因为里面的文件太多
; *** 安装程序公共消息
ExitSetupTitle=退出安装程序
ExitSetupMessage=安装程序尚未完成安装。如果您现在退出,程序将不能安装。%n%n您可以以后再运行安装程序完成安装。%n%n现在退出安装程序吗?
AboutSetupMenuItem=关于安装程序(&A)...
AboutSetupTitle=关于安装程序
AboutSetupMessage=%1 版本 %2%n%3%n%n%1 主页:%n%4
AboutSetupNote=
TranslatorNote=Translated by Zhenghan Yang.
; *** 按钮
ButtonBack=< 上一步(&B)
ButtonNext=下一步(&N) >
ButtonInstall=安装(&I)
ButtonOK=确定
ButtonCancel=取消
ButtonYes=是(&Y)
ButtonYesToAll=全是(&A)
ButtonNo=否(&N)
ButtonNoToAll=全否(&O)
ButtonFinish=完成(&F)
ButtonBrowse=浏览(&B)...
ButtonWizardBrowse=浏览(&R)...
ButtonNewFolder=新建文件夹(&M)
; *** “选择语言”对话框消息
SelectLanguageTitle=选择安装语言
SelectLanguageLabel=选择安装时要使用的语言。
; *** 公共向导文字
ClickNext=点击“下一步”继续,或点击“取消”退出安装程序。
BeveledLabel=
BrowseDialogTitle=浏览文件夹
BrowseDialogLabel=在下列列表中选择一个文件夹,然后点击“确定”。
NewFolderName=新建文件夹
; *** “欢迎”向导页
WelcomeLabel1=欢迎使用 [name] 安装向导
WelcomeLabel2=现在将安装 [name/ver] 到您的电脑中。%n%n推荐您在继续安装前关闭所有其它应用程序。
; *** “密码”向导页
WizardPassword=密码
PasswordLabel1=这个安装程序有密码保护。
PasswordLabel3=请输入密码,然后点击“下一步”继续。密码区分大小写。
PasswordEditLabel=密码(&P):
IncorrectPassword=您所输入的密码不正确,请重试。
; *** “许可协议”向导页
WizardLicense=许可协议
LicenseLabel=继续安装前请阅读下列重要信息。
LicenseLabel3=请仔细阅读下列许可协议。您在继续安装前必须同意这些协议条款。
LicenseAccepted=我同意此协议(&A)
LicenseNotAccepted=我拒绝此协议(&D)
; *** “信息”向导页
WizardInfoBefore=信息
InfoBeforeLabel=请在继续安装前阅读下列重要信息。
InfoBeforeClickLabel=如果您想继续安装,点击“下一步”。
WizardInfoAfter=信息
InfoAfterLabel=请在继续安装前阅读下列重要信息。
InfoAfterClickLabel=如果您想继续安装,点击“下一步”。
; *** “用户信息”向导页
WizardUserInfo=用户信息
UserInfoDesc=请输入您的信息。
UserInfoName=用户名(&U):
UserInfoOrg=组织(&O):
UserInfoSerial=序列号(&S):
UserInfoNameRequired=您必须输入用户名。
; *** “选择目标目录”向导页
WizardSelectDir=选择目标位置
SelectDirDesc=您想将 [name] 安装在哪里?
SelectDirLabel3=安装程序将安装 [name] 到下列文件夹中。
SelectDirBrowseLabel=点击“下一步”继续。如果您想选择其它文件夹,点击“浏览”。
DiskSpaceGBLabel=至少需要有 [gb] GB 的可用磁盘空间。
DiskSpaceMBLabel=至少需要有 [mb] MB 的可用磁盘空间。
CannotInstallToNetworkDrive=安装程序无法安装到一个网络驱动器。
CannotInstallToUNCPath=安装程序无法安装到一个UNC路径。
InvalidPath=您必须输入一个带驱动器卷标的完整路径,例如:%n%nC:\APP%n%n或下列形式的UNC路径:%n%n\\server\share
InvalidDrive=您选定的驱动器或 UNC 共享不存在或不能访问。请选选择其它位置。
DiskSpaceWarningTitle=没有足够的磁盘空间
DiskSpaceWarning=安装程序至少需要 %1 KB 的可用空间才能安装,但选定驱动器只有 %2 KB 的可用空间。%n%n您一定要继续吗?
DirNameTooLong=文件夹名称或路径太长。
InvalidDirName=文件夹名称无效。
BadDirName32=文件夹名称不能包含下列任何字符:%n%n%1
DirExistsTitle=文件夹已存在
DirExists=文件夹:%n%n%1%n%n已经存在。您一定要安装到这个文件夹中吗?
DirDoesntExistTitle=文件夹不存在
DirDoesntExist=文件夹:%n%n%1%n%n不存在。您想要创建此文件夹吗?
; *** “选择组件”向导页
WizardSelectComponents=选择组件
SelectComponentsDesc=您想安装哪些程序的组件?
SelectComponentsLabel2=选择您想要安装的组件;清除您不想安装的组件。然后点击“下一步”继续。
FullInstallation=完全安装
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=简洁安装
CustomInstallation=自定义安装
NoUninstallWarningTitle=组件已存在
NoUninstallWarning=安装程序检测到下列组件已在您的电脑中安装:%n%n%1%n%n取消选定这些组件将不能卸载它们。%n%n您一定要继续吗?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=当前选择的组件至少需要 [gb] GB 的磁盘空间。
ComponentsDiskSpaceMBLabel=当前选择的组件至少需要 [mb] MB 的磁盘空间。
; *** “选择附加任务”向导页
WizardSelectTasks=选择附加任务
SelectTasksDesc=您想要安装程序执行哪些附加任务?
SelectTasksLabel2=选择您想要安装程序在安装 [name] 时执行的附加任务,然后点击“下一步”。
; *** “选择开始菜单文件夹”向导页
WizardSelectProgramGroup=选择开始菜单文件夹
SelectStartMenuFolderDesc=安装程序应该在哪里放置程序的快捷方式?
SelectStartMenuFolderLabel3=安装程序现在将在下列开始菜单文件夹中创建程序的快捷方式。
SelectStartMenuFolderBrowseLabel=点击“下一步”继续。如果您想选择其它文件夹,点击“浏览”。
MustEnterGroupName=您必须输入一个文件夹名。
GroupNameTooLong=文件夹名或路径太长。
InvalidGroupName=文件夹名无效。
BadGroupName=文件夹名不能包含下列任何字符:%n%n%1
NoProgramGroupCheck2=不创建开始菜单文件夹(&D)
; *** “准备安装”向导页
WizardReady=准备安装
ReadyLabel1=安装程序现在准备开始安装 [name] 到您的电脑中。
ReadyLabel2a=点击“安装”继续此安装程序。如果您想要回顾或修改设置,请点击“上一步”。
ReadyLabel2b=点击“安装”继续此安装程序?
ReadyMemoUserInfo=用户信息:
ReadyMemoDir=目标位置:
ReadyMemoType=安装类型:
ReadyMemoComponents=选定组件:
ReadyMemoGroup=开始菜单文件夹:
ReadyMemoTasks=附加任务:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=正在下载附加文件...
ButtonStopDownload=停止下载(&S)
StopDownload=您确定要停止下载吗?
ErrorDownloadAborted=下载已中止
ErrorDownloadFailed=下载失败:%1 %2
ErrorDownloadSizeFailed=获取下载大小失败:%1 %2
ErrorFileHash1=校验文件哈希失败:%1
ErrorFileHash2=无效的文件哈希:预期为 %1,实际为 %2
ErrorProgress=无效的进度:%1,总共%2
ErrorFileSize=文件大小错误:预期为 %1,实际为 %2
; *** “正在准备安装”向导页
WizardPreparing=正在准备安装
PreparingDesc=安装程序正在准备安装 [name] 到您的电脑中。
PreviousInstallNotCompleted=先前程序的安装/卸载未完成。您需要重新启动您的电脑才能完成安装。%n%n在重新启动电脑后,再运行安装完成 [name] 的安装。
CannotContinue=安装程序不能继续。请点击“取消”退出。
ApplicationsFound=下列应用程序正在使用的文件需要更新设置。它是建议您允许安装程序自动关闭这些应用程序。
ApplicationsFound2=下列应用程序正在使用的文件需要更新设置。它是建议您允许安装程序自动关闭这些应用程序。安装完成后,安装程序将尝试重新启动应用程序。
CloseApplications=自动关闭该应用程序(&A)
DontCloseApplications=不要关闭该应用程序(&D)
ErrorCloseApplications=安装程序无法自动关闭所有应用程序。在继续之前,我们建议您关闭所有使用需要更新的安装程序文件。
PrepareToInstallNeedsRestart=安装程序必须重新启动计算机。重新启动计算机后,请再次运行安装程序以完成 [name] 的安装。%n%n是否立即重新启动?
; *** “正在安装”向导页
WizardInstalling=正在安装
InstallingLabel=安装程序正在安装 [name] 到您的电脑中,请稍等。
; *** “安装完成”向导页
FinishedHeadingLabel=[name] 安装完成
FinishedLabelNoIcons=安装程序已在您的电脑中安装了 [name]。
FinishedLabel=安装程序已在您的电脑中安装了 [name]。此应用程序可以通过选择安装的快捷方式运行。
ClickFinish=点击“完成”退出安装程序。
FinishedRestartLabel=要完成 [name] 的安装,安装程序必须重新启动您的电脑。您想要立即重新启动吗?
FinishedRestartMessage=要完成 [name] 的安装,安装程序必须重新启动您的电脑。%n%n您想要立即重新启动吗?
ShowReadmeCheck=是,我想查阅自述文件
YesRadio=是,立即重新启动电脑(&Y)
NoRadio=否,稍后重新启动电脑(&N)
; used for example as 'Run MyProg.exe'
RunEntryExec=运行 %1
; used for example as 'View Readme.txt'
RunEntryShellExec=查阅 %1
; *** “安装程序需要下一张磁盘”提示
ChangeDiskTitle=安装程序需要下一张磁盘
SelectDiskLabel2=请插入磁盘 %1 并点击“确定”。%n%n如果这个磁盘中的文件可以在下列文件夹之外的文件夹中找到,请输入正确的路径或点击“浏览”。
PathLabel=路径(&P):
FileNotInDir2=文件“%1”不能在“%2”定位。请插入正确的磁盘或选择其它文件夹。
SelectDirectoryLabel=请指定下一张磁盘的位置。
; *** 安装状态消息
SetupAborted=安装程序未完成安装。%n%n请修正这个问题并重新运行安装程序。
AbortRetryIgnoreSelectAction=选择操作
AbortRetryIgnoreRetry=重试(&T)
AbortRetryIgnoreIgnore=忽略错误并继续(&I)
AbortRetryIgnoreCancel=关闭安装程序
; *** 安装状态消息
StatusClosingApplications=正在关闭应用程序...
StatusCreateDirs=正在创建目录...
StatusExtractFiles=正在解压缩文件...
StatusCreateIcons=正在创建快捷方式...
StatusCreateIniEntries=正在创建 INI 条目...
StatusCreateRegistryEntries=正在创建注册表条目...
StatusRegisterFiles=正在注册文件...
StatusSavingUninstall=正在保存卸载信息...
StatusRunProgram=正在完成安装...
StatusRestartingApplications=正在重启应用程序...
StatusRollback=正在撤销更改...
; *** 其它错误
ErrorInternal2=内部错误:%1
ErrorFunctionFailedNoCode=%1 失败
ErrorFunctionFailed=%1 失败;错误代码 %2
ErrorFunctionFailedWithMessage=%1 失败;错误代码 %2.%n%3
ErrorExecutingProgram=不能执行文件:%n%1
; *** 注册表错误
ErrorRegOpenKey=打开注册表项时出错:%n%1\%2
ErrorRegCreateKey=创建注册表项时出错:%n%1\%2
ErrorRegWriteKey=写入注册表项时出错:%n%1\%2
; *** INI 错误
ErrorIniEntry=在文件“%1”中创建INI条目时出错。
; *** 文件复制错误
FileAbortRetryIgnoreSkipNotRecommended=跳过这个文件(&S) (不推荐)
FileAbortRetryIgnoreIgnoreNotRecommended=忽略错误并继续(&I) (不推荐)
SourceIsCorrupted=源文件已损坏
SourceDoesntExist=源文件“%1”不存在
ExistingFileReadOnly2=无法替换现有文件,因为它是只读的。
ExistingFileReadOnlyRetry=移除只读属性并重试(&R)
ExistingFileReadOnlyKeepExisting=保留现有文件(&K)
ErrorReadingExistingDest=尝试读取现有文件时出错:
FileExistsSelectAction=选择操作
FileExists2=文件已经存在。
FileExistsOverwriteExisting=覆盖已经存在的文件(&O)
FileExistsKeepExisting=保留现有的文件(&K)
FileExistsOverwriteOrKeepAll=为所有的冲突文件执行此操作(&D)
ExistingFileNewerSelectAction=选择操作
ExistingFileNewer2=现有的文件比安装程序将要安装的文件更新。
ExistingFileNewerOverwriteExisting=覆盖已经存在的文件(&O)
ExistingFileNewerKeepExisting=保留现有的文件(&K) (推荐)
ExistingFileNewerOverwriteOrKeepAll=为所有的冲突文件执行此操作(&D)
ErrorChangingAttr=尝试改变下列现有的文件的属性时出错:
ErrorCreatingTemp=尝试在目标目录创建文件时出错:
ErrorReadingSource=尝试读取下列源文件时出错:
ErrorCopying=尝试复制下列文件时出错:
ErrorReplacingExistingFile=尝试替换现有的文件时出错:
ErrorRestartReplace=重新启动替换失败:
ErrorRenamingTemp=尝试重新命名以下目标目录中的一个文件时出错:
ErrorRegisterServer=无法注册 DLL/OCX:%1
ErrorRegSvr32Failed=RegSvr32 失败;退出代码 %1
ErrorRegisterTypeLib=无法注册类型库:%1
; *** 卸载显示名字标记
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32位
UninstallDisplayNameMark64Bit=64位
UninstallDisplayNameMarkAllUsers=所有用户
UninstallDisplayNameMarkCurrentUser=当前用户
; *** 安装后错误
ErrorOpeningReadme=尝试打开自述文件时出错。
ErrorRestartingComputer=安装程序不能重新启动电脑,请手动重启。
; *** 卸载消息
UninstallNotFound=文件“%1”不存在。无法卸载。
UninstallOpenError=文件“%1”不能打开。无法卸载。
UninstallUnsupportedVer=此版本的卸载程序无法识别卸载日志文件“%1”的格式。无法卸载
UninstallUnknownEntry=在卸载日志中遇到一个未知的条目 (%1)
ConfirmUninstall=您确定要运行 %1 卸载向导吗?
UninstallOnlyOnWin64=这个安装程序只能在64位Windows中进行卸载。
OnlyAdminCanUninstall=这个安装的程序需要有管理员权限的用户才能卸载。
UninstallStatusLabel=正在从您的电脑中删除 %1,请稍等。
UninstalledAll=%1 已顺利地从您的电脑中删除。
UninstalledMost=%1 卸载完成。%n%n有一些内容无法被删除。您可以手动删除它们。
UninstalledAndNeedsRestart=要完成 %1 的卸载,您的电脑必须重新启动。%n%n您想立即重新启动电脑吗?
UninstallDataCorrupted=文件“%1”已损坏,无法卸载
; *** 卸载状态消息
ConfirmDeleteSharedFileTitle=删除共享文件吗?
ConfirmDeleteSharedFile2=系统中包含的下列共享文件已经不再被其它程序使用。您想要卸载程序删除这些共享文件吗?%n%n如果这些文件被删除,但还有程序正在使用这些文件,这些程序可能不能正确执行。如果您不能确定,选择“否”。把这些文件保留在系统中以免引起问题。
SharedFileNameLabel=文件名:
SharedFileLocationLabel=位置:
WizardUninstalling=卸载状态
StatusUninstalling=正在卸载 %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=正在安装 %1。
ShutdownBlockReasonUninstallingApp=正在卸载 %1。
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 版本 %2
AdditionalIcons=附加快捷方式:
CreateDesktopIcon=创建桌面快捷方式(&D)
CreateQuickLaunchIcon=创建快速运行栏快捷方式(&Q)
ProgramOnTheWeb=%1 网站
UninstallProgram=卸载 %1
LaunchProgram=运行 %1
AssocFileExtension=将 %2 文件扩展名与 %1 建立关联(&A)
AssocingFileExtension=正在将 %2 文件扩展名与 %1 建立关联...
AutoStartProgramGroupDescription=启动组:
AutoStartProgram=自动启动 %1
AddonHostProgramNotFound=%1无法找到您所选择的文件夹。%n%n您想要继续吗?
; VCMI Custom Messages
SelectSetupInstallModeTitle=选择安装模式
SelectSetupInstallModeDesc=VCMI 可以为所有用户或仅为您安装。
SelectSetupInstallModeSubTitle=选择您的首选安装模式:
InstallForAllUsers=为所有用户安装
InstallForAllUsers1=需要管理员权限
InstallForMeOnly=仅为我安装
InstallForMeOnly1=首次启动游戏时会出现防火墙提示
InstallForMeOnly2=如果无法允许防火墙规则,则局域网游戏将无法运行
SystemIntegration=系统集成
CreateDesktopShortcuts=创建桌面快捷方式
CreateStartMenuShortcuts=创建开始菜单快捷方式
AssociateH3MFiles=将 .h3m 文件与 VCMI 地图编辑器关联
AssociateVCMIMapFiles=将 .vmap 和 .vcmp 文件与 VCMI 地图编辑器关联
VCMISettings=VCMI 配置
AddFirewallRules=为 VCMI 添加防火墙规则
CopyH3Files=自动将 Heroes III 所需文件复制到 VCMI
RunVCMILauncherAfterInstall=启动 VCMI 启动器
ShortcutMapEditor=VCMI 地图编辑器
ShortcutLauncher=VCMI 启动器
ShortcutWebPage=VCMI 网站
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=启动 VCMI 启动器
ShortcutMapEditorComment=打开 VCMI 地图编辑器
ShortcutWebPageComment=访问 VCMI 官方网站
ShortcutDiscordComment=访问 VCMI 官方 Discord
DeleteUserData=删除用户数据
Uninstall=卸载
Warning=警告
VMAPDescription=VCMI 地图文件
VCMPDescription=VCMI 战役文件
H3MDescription=Heroes 3 地图文件

View File

@ -0,0 +1,411 @@
; *******************************************************
; *** ***
; *** Inno Setup version 6.1.0+ Czech messages ***
; *** ***
; *** Original Author: ***
; *** ***
; *** Ivo Bauer (bauer@ozm.cz) ***
; *** ***
; *** Contributors: ***
; *** ***
; *** Lubos Stanek (lubek@users.sourceforge.net) ***
; *** Vitezslav Svejdar (vitezslav.svejdar@cuni.cz) ***
; *** Jiri Fenz (jirifenz@gmail.com) ***
; *** ***
; *******************************************************
[LangOptions]
LanguageName=<010C>e<0161>tina
LanguageID=$0405
LanguageCodePage=1250
[Messages]
; *** Application titles
SetupAppTitle=Průvodce instalací
SetupWindowTitle=Průvodce instalací - %1
UninstallAppTitle=Průvodce odinstalací
UninstallAppFullTitle=Průvodce odinstalací - %1
; *** Misc. common
InformationTitle=Informace
ConfirmTitle=Potvrzení
ErrorTitle=Chyba
; *** SetupLdr messages
SetupLdrStartupMessage=Vítá Vás průvodce instalací produktu %1. Chcete pokračovat?
LdrCannotCreateTemp=Nelze vytvořit dočasný soubor. Průvodce instalací bude ukončen
LdrCannotExecTemp=Nelze spustit soubor v dočasné složce. Průvodce instalací bude ukončen
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nChyba %2: %3
SetupFileMissing=Instalační složka neobsahuje soubor %1. Opravte prosím tuto chybu nebo si opatřete novou kopii tohoto produktu.
SetupFileCorrupt=Soubory průvodce instalací jsou poškozeny. Opatřete si prosím novou kopii tohoto produktu.
SetupFileCorruptOrWrongVer=Soubory průvodce instalací jsou poškozeny nebo se neslučují s touto verzí průvodce instalací. Opravte prosím tuto chybu nebo si opatřete novou kopii tohoto produktu.
InvalidParameter=Příkazový řádek obsahuje neplatný parametr:%n%n%1
SetupAlreadyRunning=Průvodce instalací je již spuštěn.
WindowsVersionNotSupported=Tento program nelze spustit na vaší verzi Windows. Ujistěte se, že používáte správnou architekturu Windows (32bitovou nebo 64bitovou) a odpovídající verzi tohoto programu.
WindowsServicePackRequired=Tento produkt vyžaduje %1 Service Pack %2 nebo vyšší.
NotOnThisPlatform=Tento produkt nelze spustit ve %1.
OnlyOnThisPlatform=Tento produkt musí být spuštěn ve %1.
OnlyOnTheseArchitectures=Tento produkt lze nainstalovat pouze ve verzích MS Windows s podporou architektury procesorů:%n%n%1
WinVersionTooLowError=Tento produkt vyžaduje %1 verzi %2 nebo vyšší.
WinVersionTooHighError=Tento produkt nelze nainstalovat ve %1 verzi %2 nebo vyšší.
AdminPrivilegesRequired=K instalaci tohoto produktu musíte být přihlášeni s oprávněními správce.
PowerUserPrivilegesRequired=K instalaci tohoto produktu musíte být přihlášeni s oprávněními správce nebo člena skupiny Power Users.
SetupAppRunningError=Průvodce instalací zjistil, že produkt %1 je nyní spuštěn.%n%nZavřete prosím všechny instance tohoto produktu a pak pokračujte klepnutím na tlačítko OK, nebo ukončete instalaci tlačítkem Zrušit.
UninstallAppRunningError=Průvodce odinstalací zjistil, že produkt %1 je nyní spuštěn.%n%nZavřete prosím všechny instance tohoto produktu a pak pokračujte klepnutím na tlačítko OK, nebo ukončete odinstalaci tlačítkem Zrušit.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Výběr režimu průvodce instalací
PrivilegesRequiredOverrideInstruction=Zvolte režim instalace
PrivilegesRequiredOverrideText1=Produkt %1 lze nainstalovat pro všechny uživatele (musíte být přihlášeni s oprávněními správce), nebo pouze pro Vás.
PrivilegesRequiredOverrideText2=Produkt %1 lze nainstalovat pouze pro Vás, nebo pro všechny uživatele (musíte být přihlášeni s oprávněními správce).
PrivilegesRequiredOverrideAllUsers=Nainstalovat pro &všechny uživatele
PrivilegesRequiredOverrideAllUsersRecommended=Nainstalovat pro &všechny uživatele (doporučuje se)
PrivilegesRequiredOverrideCurrentUser=Nainstalovat pouze pro &mě
PrivilegesRequiredOverrideCurrentUserRecommended=Nainstalovat pouze pro &mě (doporučuje se)
; *** Misc. errors
ErrorCreatingDir=Průvodci instalací se nepodařilo vytvořit složku "%1"
ErrorTooManyFilesInDir=Nelze vytvořit soubor ve složce "%1", protože tato složka již obsahuje příliš mnoho souborů
; *** Setup common messages
ExitSetupTitle=Ukončit průvodce instalací
ExitSetupMessage=Instalace nebyla zcela dokončena. Jestliže nyní průvodce instalací ukončíte, produkt nebude nainstalován.%n%nPrůvodce instalací můžete znovu spustit kdykoliv jindy a instalaci dokončit.%n%nChcete průvodce instalací ukončit?
AboutSetupMenuItem=&O průvodci instalací...
AboutSetupTitle=O průvodci instalací
AboutSetupMessage=%1 verze %2%n%3%n%n%1 domovská stránka:%n%4
AboutSetupNote=
TranslatorNote=Czech translation maintained by Ivo Bauer (bauer@ozm.cz), Lubos Stanek (lubek@users.sourceforge.net), Vitezslav Svejdar (vitezslav.svejdar@cuni.cz) and Jiri Fenz (jirifenz@gmail.com)
; *** Buttons
ButtonBack=< &Zpět
ButtonNext=&Další >
ButtonInstall=&Instalovat
ButtonOK=OK
ButtonCancel=Zrušit
ButtonYes=&Ano
ButtonYesToAll=Ano &všem
ButtonNo=&Ne
ButtonNoToAll=N&e všem
ButtonFinish=&Dokončit
ButtonBrowse=&Procházet...
ButtonWizardBrowse=&Procházet...
ButtonNewFolder=&Vytvořit novou složku
; *** "Select Language" dialog messages
SelectLanguageTitle=Výběr jazyka průvodce instalací
SelectLanguageLabel=Zvolte jazyk, který se má použít během instalace.
; *** Common wizard text
ClickNext=Pokračujte klepnutím na tlačítko Další, nebo ukončete průvodce instalací tlačítkem Zrušit.
BeveledLabel=
BrowseDialogTitle=Vyhledat složku
BrowseDialogLabel=Z níže uvedeného seznamu vyberte složku a klepněte na tlačítko OK.
NewFolderName=Nová složka
; *** "Welcome" wizard page
WelcomeLabel1=Vítá Vás průvodce instalací produktu [name].
WelcomeLabel2=Produkt [name/ver] bude nainstalován na Váš počítač.%n%nDříve než budete pokračovat, doporučuje se zavřít veškeré spuštěné aplikace.
; *** "Password" wizard page
WizardPassword=Heslo
PasswordLabel1=Tato instalace je chráněna heslem.
PasswordLabel3=Zadejte prosím heslo a pokračujte klepnutím na tlačítko Další. Při zadávání hesla rozlišujte malá a velká písmena.
PasswordEditLabel=&Heslo:
IncorrectPassword=Zadané heslo není správné. Zkuste to prosím znovu.
; *** "License Agreement" wizard page
WizardLicense=Licenční smlouva
LicenseLabel=Dříve než budete pokračovat, přečtěte si prosím pozorně následující důležité informace.
LicenseLabel3=Přečtěte si prosím následující licenční smlouvu. Aby instalace mohla pokračovat, musíte souhlasit s podmínkami této smlouvy.
LicenseAccepted=&Souhlasím s podmínkami licenční smlouvy
LicenseNotAccepted=&Nesouhlasím s podmínkami licenční smlouvy
; *** "Information" wizard pages
WizardInfoBefore=Informace
InfoBeforeLabel=Dříve než budete pokračovat, přečtěte si prosím pozorně následující důležité informace.
InfoBeforeClickLabel=Pokračujte v instalaci klepnutím na tlačítko Další.
WizardInfoAfter=Informace
InfoAfterLabel=Dříve než budete pokračovat, přečtěte si prosím pozorně následující důležité informace.
InfoAfterClickLabel=Pokračujte v instalaci klepnutím na tlačítko Další.
; *** "User Information" wizard page
WizardUserInfo=Informace o uživateli
UserInfoDesc=Zadejte prosím požadované údaje.
UserInfoName=&Uživatelské jméno:
UserInfoOrg=&Společnost:
UserInfoSerial=Sé&riové číslo:
UserInfoNameRequired=Musíte zadat uživatelské jméno.
; *** "Select Destination Location" wizard page
WizardSelectDir=Zvolte cílové umístění
SelectDirDesc=Kam má být produkt [name] nainstalován?
SelectDirLabel3=Průvodce nainstaluje produkt [name] do následující složky.
SelectDirBrowseLabel=Pokračujte klepnutím na tlačítko Další. Chcete-li zvolit jinou složku, klepněte na tlačítko Procházet.
DiskSpaceGBLabel=Instalace vyžaduje nejméně [gb] GB volného místa na disku.
DiskSpaceMBLabel=Instalace vyžaduje nejméně [mb] MB volného místa na disku.
CannotInstallToNetworkDrive=Průvodce instalací nemůže instalovat do síťové jednotky.
CannotInstallToUNCPath=Průvodce instalací nemůže instalovat do cesty UNC.
InvalidPath=Musíte zadat úplnou cestu včetně písmene jednotky; například:%n%nC:\Aplikace%n%nnebo cestu UNC ve tvaru:%n%n\\server\sdílená složka
InvalidDrive=Vámi zvolená jednotka nebo cesta UNC neexistuje nebo není dostupná. Zvolte prosím jiné umístění.
DiskSpaceWarningTitle=Nedostatek místa na disku
DiskSpaceWarning=Průvodce instalací vyžaduje nejméně %1 KB volného místa pro instalaci produktu, ale na zvolené jednotce je dostupných pouze %2 KB.%n%nChcete přesto pokračovat?
DirNameTooLong=Název složky nebo cesta jsou příliš dlouhé.
InvalidDirName=Název složky není platný.
BadDirName32=Název složky nemůže obsahovat žádný z následujících znaků:%n%n%1
DirExistsTitle=Složka existuje
DirExists=Složka:%n%n%1%n%njiž existuje. Má se přesto instalovat do této složky?
DirDoesntExistTitle=Složka neexistuje
DirDoesntExist=Složka:%n%n%1%n%nneexistuje. Má být tato složka vytvořena?
; *** "Select Components" wizard page
WizardSelectComponents=Zvolte součásti
SelectComponentsDesc=Jaké součásti mají být nainstalovány?
SelectComponentsLabel2=Zaškrtněte součásti, které mají být nainstalovány; součásti, které se nemají instalovat, ponechte nezaškrtnuté. Pokračujte klepnutím na tlačítko Další.
FullInstallation=Úplná instalace
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Kompaktní instalace
CustomInstallation=Volitelná instalace
NoUninstallWarningTitle=Součásti existují
NoUninstallWarning=Průvodce instalací zjistil, že následující součásti jsou již na Vašem počítači nainstalovány:%n%n%1%n%nNezahrnete-li tyto součásti do výběru, nebudou nyní odinstalovány.%n%nChcete přesto pokračovat?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Vybrané součásti vyžadují nejméně [gb] GB místa na disku.
ComponentsDiskSpaceMBLabel=Vybrané součásti vyžadují nejméně [mb] MB místa na disku.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Zvolte další úlohy
SelectTasksDesc=Které další úlohy mají být provedeny?
SelectTasksLabel2=Zvolte další úlohy, které mají být provedeny v průběhu instalace produktu [name], a pak pokračujte klepnutím na tlačítko Další.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Vyberte složku v nabídce Start
SelectStartMenuFolderDesc=Kam má průvodce instalací umístit zástupce aplikace?
SelectStartMenuFolderLabel3=Průvodce instalací vytvoří zástupce aplikace v následující složce nabídky Start.
SelectStartMenuFolderBrowseLabel=Pokračujte klepnutím na tlačítko Další. Chcete-li zvolit jinou složku, klepněte na tlačítko Procházet.
MustEnterGroupName=Musíte zadat název složky.
GroupNameTooLong=Název složky nebo cesta jsou příliš dlouhé.
InvalidGroupName=Název složky není platný.
BadGroupName=Název složky nemůže obsahovat žádný z následujících znaků:%n%n%1
NoProgramGroupCheck2=&Nevytvářet složku v nabídce Start
; *** "Ready to Install" wizard page
WizardReady=Instalace je připravena
ReadyLabel1=Průvodce instalací je nyní připraven nainstalovat produkt [name] na Váš počítač.
ReadyLabel2a=Pokračujte v instalaci klepnutím na tlačítko Instalovat. Přejete-li si změnit některá nastavení instalace, klepněte na tlačítko Zpět.
ReadyLabel2b=Pokračujte v instalaci klepnutím na tlačítko Instalovat.
ReadyMemoUserInfo=Informace o uživateli:
ReadyMemoDir=Cílové umístění:
ReadyMemoType=Typ instalace:
ReadyMemoComponents=Vybrané součásti:
ReadyMemoGroup=Složka v nabídce Start:
ReadyMemoTasks=Další úlohy:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Stahují se další soubory...
ButtonStopDownload=&Zastavit stahování
StopDownload=Určitě chcete stahování zastavit?
ErrorDownloadAborted=Stahování přerušeno
ErrorDownloadFailed=Stahování selhalo: %1 %2
ErrorDownloadSizeFailed=Nepodařilo se zjistit velikost: %1 %2
ErrorFileHash1=Nepodařilo se určit kontrolní součet souboru: %1
ErrorFileHash2=Neplatný kontrolní součet souboru: očekáváno %1, nalezeno %2
ErrorProgress=Neplatný průběh: %1 of %2
ErrorFileSize=Neplatná velikost souboru: očekáváno %1, nalezeno %2
; *** "Preparing to Install" wizard page
WizardPreparing=Příprava k instalaci
PreparingDesc=Průvodce instalací připravuje instalaci produktu [name] na Váš počítač.
PreviousInstallNotCompleted=Instalace/odinstalace předchozího produktu nebyla zcela dokončena. Aby mohla být dokončena, musíte restartovat Váš počítač.%n%nPo restartování Vašeho počítače spusťte znovu průvodce instalací, aby bylo možné dokončit instalaci produktu [name].
CannotContinue=Průvodce instalací nemůže pokračovat. Ukončete prosím průvodce instalací klepnutím na tlačítko Zrušit.
ApplicationsFound=Následující aplikace přistupují k souborům, které je třeba během instalace aktualizovat. Doporučuje se povolit průvodci instalací, aby tyto aplikace automaticky zavřel.
ApplicationsFound2=Následující aplikace přistupují k souborům, které je třeba během instalace aktualizovat. Doporučuje se povolit průvodci instalací, aby tyto aplikace automaticky zavřel. Po dokončení instalace se průvodce instalací pokusí aplikace restartovat.
CloseApplications=&Zavřít aplikace automaticky
DontCloseApplications=&Nezavírat aplikace
ErrorCloseApplications=Průvodci instalací se nepodařilo automaticky zavřít všechny aplikace. Dříve než budete pokračovat, doporučuje se zavřít veškeré aplikace přistupující k souborům, které je třeba během instalace aktualizovat.
PrepareToInstallNeedsRestart=Průvodce instalací musí restartovat Váš počítač. Po restartování Vašeho počítače spusťte průvodce instalací znovu, aby bylo možné dokončit instalaci produktu [name].%n%nChcete jej restartovat nyní?
; *** "Installing" wizard page
WizardInstalling=Instalování
InstallingLabel=Čekejte prosím, dokud průvodce instalací nedokončí instalaci produktu [name] na Váš počítač.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Dokončuje se instalace produktu [name]
FinishedLabelNoIcons=Průvodce instalací dokončil instalaci produktu [name] na Váš počítač.
FinishedLabel=Průvodce instalací dokončil instalaci produktu [name] na Váš počítač. Produkt lze spustit pomocí nainstalovaných zástupců.
ClickFinish=Ukončete průvodce instalací klepnutím na tlačítko Dokončit.
FinishedRestartLabel=K dokončení instalace produktu [name] je nezbytné, aby průvodce instalací restartoval Váš počítač. Chcete jej restartovat nyní?
FinishedRestartMessage=K dokončení instalace produktu [name] je nezbytné, aby průvodce instalací restartoval Váš počítač.%n%nChcete jej restartovat nyní?
ShowReadmeCheck=Ano, chci zobrazit dokument "ČTIMNE"
YesRadio=&Ano, chci nyní restartovat počítač
NoRadio=&Ne, počítač restartuji později
; used for example as 'Run MyProg.exe'
RunEntryExec=Spustit %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Zobrazit %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Průvodce instalací vyžaduje další disk
SelectDiskLabel2=Vložte prosím disk %1 a klepněte na tlačítko OK.%n%nPokud se soubory na tomto disku nacházejí v jiné složce než v té, která je zobrazena níže, pak zadejte správnou cestu nebo ji zvolte klepnutím na tlačítko Procházet.
PathLabel=&Cesta:
FileNotInDir2=Soubor "%1" nelze najít v "%2". Vložte prosím správný disk nebo zvolte jinou složku.
SelectDirectoryLabel=Specifikujte prosím umístění dalšího disku.
; *** Installation phase messages
SetupAborted=Instalace nebyla zcela dokončena.%n%nOpravte prosím chybu a spusťte průvodce instalací znovu.
AbortRetryIgnoreSelectAction=Zvolte akci
AbortRetryIgnoreRetry=&Zopakovat akci
AbortRetryIgnoreIgnore=&Ignorovat chybu a pokračovat
AbortRetryIgnoreCancel=Zrušit instalaci
; *** Installation status messages
StatusClosingApplications=Zavírají se aplikace...
StatusCreateDirs=Vytvářejí se složky...
StatusExtractFiles=Extrahují se soubory...
StatusCreateIcons=Vytvářejí se zástupci...
StatusCreateIniEntries=Vytvářejí se záznamy v inicializačních souborech...
StatusCreateRegistryEntries=Vytvářejí se záznamy v systémovém registru...
StatusRegisterFiles=Registrují se soubory...
StatusSavingUninstall=Ukládají se informace pro odinstalaci produktu...
StatusRunProgram=Dokončuje se instalace...
StatusRestartingApplications=Restartují se aplikace...
StatusRollback=Provedené změny se vracejí zpět...
; *** Misc. errors
ErrorInternal2=Interní chyba: %1
ErrorFunctionFailedNoCode=Funkce %1 selhala
ErrorFunctionFailed=Funkce %1 selhala; kód %2
ErrorFunctionFailedWithMessage=Funkce %1 selhala; kód %2.%n%3
ErrorExecutingProgram=Nelze spustit soubor:%n%1
; *** Registry errors
ErrorRegOpenKey=Došlo k chybě při otevírání klíče systémového registru:%n%1\%2
ErrorRegCreateKey=Došlo k chybě při vytváření klíče systémového registru:%n%1\%2
ErrorRegWriteKey=Došlo k chybě při zápisu do klíče systémového registru:%n%1\%2
; *** INI errors
ErrorIniEntry=Došlo k chybě při vytváření záznamu v inicializačním souboru "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Přeskočit tento soubor (nedoporučuje se)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorovat chybu a pokračovat (nedoporučuje se)
SourceIsCorrupted=Zdrojový soubor je poškozen
SourceDoesntExist=Zdrojový soubor "%1" neexistuje
ExistingFileReadOnly2=Nelze nahradit existující soubor, protože je určen pouze pro čtení.
ExistingFileReadOnlyRetry=&Odstranit atribut "pouze pro čtení" a zopakovat akci
ExistingFileReadOnlyKeepExisting=&Ponechat existující soubor
ErrorReadingExistingDest=Došlo k chybě při pokusu o čtení existujícího souboru:
FileExistsSelectAction=Zvolte akci
FileExists2=Soubor již existuje.
FileExistsOverwriteExisting=&Nahradit existující soubor
FileExistsKeepExisting=&Ponechat existující soubor
FileExistsOverwriteOrKeepAll=&Zachovat se stejně u dalších konfliktů
ExistingFileNewerSelectAction=Zvolte akci
ExistingFileNewer2=Existující soubor je novější než ten, který se průvodce instalací pokouší instalovat.
ExistingFileNewerOverwriteExisting=&Nahradit existující soubor
ExistingFileNewerKeepExisting=&Ponechat existující soubor (doporučuje se)
ExistingFileNewerOverwriteOrKeepAll=&Zachovat se stejně u dalších konfliktů
ErrorChangingAttr=Došlo k chybě při pokusu o změnu atributů existujícího souboru:
ErrorCreatingTemp=Došlo k chybě při pokusu o vytvoření souboru v cílové složce:
ErrorReadingSource=Došlo k chybě při pokusu o čtení zdrojového souboru:
ErrorCopying=Došlo k chybě při pokusu o zkopírování souboru:
ErrorReplacingExistingFile=Došlo k chybě při pokusu o nahrazení existujícího souboru:
ErrorRestartReplace=Funkce "RestartReplace" průvodce instalací selhala:
ErrorRenamingTemp=Došlo k chybě při pokusu o přejmenování souboru v cílové složce:
ErrorRegisterServer=Nelze zaregistrovat DLL/OCX: %1
ErrorRegSvr32Failed=Volání RegSvr32 selhalo s návratovým kódem %1
ErrorRegisterTypeLib=Nelze zaregistrovat typovou knihovnu: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32bitový
UninstallDisplayNameMark64Bit=64bitový
UninstallDisplayNameMarkAllUsers=Všichni uživatelé
UninstallDisplayNameMarkCurrentUser=Aktuální uživatel
; *** Post-installation errors
ErrorOpeningReadme=Došlo k chybě při pokusu o otevření dokumentu "ČTIMNE".
ErrorRestartingComputer=Průvodci instalací se nepodařilo restartovat Váš počítač. Restartujte jej prosím ručně.
; *** Uninstaller messages
UninstallNotFound=Soubor "%1" neexistuje. Produkt nelze odinstalovat.
UninstallOpenError=Soubor "%1" nelze otevřít. Produkt nelze odinstalovat.
UninstallUnsupportedVer=Formát souboru se záznamy k odinstalaci produktu "%1" nebyl touto verzí průvodce odinstalací rozpoznán. Produkt nelze odinstalovat
UninstallUnknownEntry=V souboru obsahujícím informace k odinstalaci produktu byla zjištěna neznámá položka (%1)
ConfirmUninstall=Opravdu chcete spustit průvodce odinstalací %1?
UninstallOnlyOnWin64=Tento produkt lze odinstalovat pouze v 64-bitových verzích MS Windows.
OnlyAdminCanUninstall=K odinstalaci tohoto produktu musíte být přihlášeni s oprávněními správce.
UninstallStatusLabel=Čekejte prosím, dokud produkt %1 nebude odinstalován z Vašeho počítače.
UninstalledAll=Produkt %1 byl z Vašeho počítače úspěšně odinstalován.
UninstalledMost=Produkt %1 byl odinstalován.%n%nNěkteré jeho součásti se odinstalovat nepodařilo. Můžete je však odstranit ručně.
UninstalledAndNeedsRestart=K dokončení odinstalace produktu %1 je nezbytné, aby průvodce odinstalací restartoval Váš počítač.%n%nChcete jej restartovat nyní?
UninstallDataCorrupted=Soubor "%1" je poškozen. Produkt nelze odinstalovat
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Odebrat sdílený soubor?
ConfirmDeleteSharedFile2=Systém indikuje, že následující sdílený soubor není používán žádnými jinými aplikacemi. Má být tento sdílený soubor průvodcem odinstalací odstraněn?%n%nPokud některé aplikace tento soubor používají, pak po jeho odstranění nemusejí pracovat správně. Pokud si nejste jisti, zvolte Ne. Ponechání tohoto souboru ve Vašem systému nezpůsobí žádnou škodu.
SharedFileNameLabel=Název souboru:
SharedFileLocationLabel=Umístění:
WizardUninstalling=Stav odinstalace
StatusUninstalling=Probíhá odinstalace produktu %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Probíhá instalace produktu %1.
ShutdownBlockReasonUninstallingApp=Probíhá odinstalace produktu %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 verze %2
AdditionalIcons=Další zástupci:
CreateDesktopIcon=Vytvořit zástupce na &ploše
CreateQuickLaunchIcon=Vytvořit zástupce na panelu &Snadné spuštění
ProgramOnTheWeb=Aplikace %1 na internetu
UninstallProgram=Odinstalovat aplikaci %1
LaunchProgram=Spustit aplikaci %1
AssocFileExtension=Vytvořit &asociaci mezi soubory typu %2 a aplikací %1
AssocingFileExtension=Vytváří se asociace mezi soubory typu %2 a aplikací %1...
AutoStartProgramGroupDescription=Po spuštění:
AutoStartProgram=Spouštět aplikaci %1 automaticky
AddonHostProgramNotFound=Aplikace %1 nebyla ve Vámi zvolené složce nalezena.%n%nChcete přesto pokračovat?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Vyberte režim instalace
SelectSetupInstallModeDesc=VCMI může být nainstalováno pro všechny uživatele nebo pouze pro vás.
SelectSetupInstallModeSubTitle=Vyberte preferovaný režim instalace:
InstallForAllUsers=Nainstalovat pro všechny uživatele
InstallForAllUsers1=Vyžaduje administrátorská práva
InstallForMeOnly=Nainstalovat pouze pro mě
InstallForMeOnly1=Při prvním spuštění hry se zobrazí výzva brány firewall
InstallForMeOnly2=LAN hry nebudou fungovat, pokud nebude možné povolit pravidlo brány firewall
SystemIntegration=Systémová integrace
CreateDesktopShortcuts=Vytvořit zástupce na ploše
CreateStartMenuShortcuts=Vytvořit zástupce v nabídce Start
AssociateH3MFiles=Asociovat .h3m soubory s editorem map VCMI
AssociateVCMIMapFiles=Asociovat .vmap a .vcmp soubory s editorem map VCMI
VCMISettings=Konfigurace VCMI
AddFirewallRules=Přidat pravidla brány firewall pro VCMI
CopyH3Files=Automaticky zkopírovat požadované soubory Heroes III do VCMI
RunVCMILauncherAfterInstall=Spustit VCMI Launcher
ShortcutMapEditor=Editor map VCMI
ShortcutLauncher=VCMI Launcher
ShortcutWebPage=VCMI Web
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=Spustit VCMI Launcher
ShortcutMapEditorComment=Otevřít editor map VCMI
ShortcutWebPageComment=Navštivte oficiální web VCMI
ShortcutDiscordComment=Navštivte oficiální Discord VCMI
DeleteUserData=Odstranit uživatelská data
Uninstall=Odinstalovat
Warning=Varování
VMAPDescription=Soubor mapy VCMI
VCMPDescription=Soubor kampaně VCMI
H3MDescription=Soubor mapy Heroes 3

View File

@ -0,0 +1,419 @@
; *** Inno Setup version 6.1.0+ English messages ***
;
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=English
LanguageID=$0409
LanguageCodePage=0
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Setup
SetupWindowTitle=Setup - %1
UninstallAppTitle=Uninstall
UninstallAppFullTitle=%1 Uninstall
; *** Misc. common
InformationTitle=Information
ConfirmTitle=Confirm
ErrorTitle=Error
; *** SetupLdr messages
SetupLdrStartupMessage=This will install %1. Do you wish to continue?
LdrCannotCreateTemp=Unable to create a temporary file. Setup aborted
LdrCannotExecTemp=Unable to execute file in the temporary directory. Setup aborted
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nError %2: %3
SetupFileMissing=The file %1 is missing from the installation directory. Please correct the problem or obtain a new copy of the program.
SetupFileCorrupt=The setup files are corrupted. Please obtain a new copy of the program.
SetupFileCorruptOrWrongVer=The setup files are corrupted, or are incompatible with this version of Setup. Please correct the problem or obtain a new copy of the program.
InvalidParameter=An invalid parameter was passed on the command line:%n%n%1
SetupAlreadyRunning=Setup is already running.
WindowsVersionNotSupported=This program cannot run on your version of Windows. Please ensure you are using the correct Windows architecture (32-bit or 64-bit) and version for this program.
WindowsServicePackRequired=This program requires %1 Service Pack %2 or later.
NotOnThisPlatform=This program will not run on %1.
OnlyOnThisPlatform=This program must be run on %1.
OnlyOnTheseArchitectures=This program can only be installed on versions of Windows designed for the following processor architectures:%n%n%1
WinVersionTooLowError=This program requires %1 version %2 or later.
WinVersionTooHighError=This program cannot be installed on %1 version %2 or later.
AdminPrivilegesRequired=You must be logged in as an administrator when installing this program.
PowerUserPrivilegesRequired=You must be logged in as an administrator or as a member of the Power Users group when installing this program.
SetupAppRunningError=Setup has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit.
UninstallAppRunningError=Uninstall has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Select Setup Install Mode
PrivilegesRequiredOverrideInstruction=Select install mode
PrivilegesRequiredOverrideText1=%1 can be installed for all users (requires administrative privileges), or for you only.
PrivilegesRequiredOverrideText2=%1 can be installed for you only, or for all users (requires administrative privileges).
PrivilegesRequiredOverrideAllUsers=Install for &all users
PrivilegesRequiredOverrideAllUsersRecommended=Install for &all users (recommended)
PrivilegesRequiredOverrideCurrentUser=Install for &me only
PrivilegesRequiredOverrideCurrentUserRecommended=Install for &me only (recommended)
; *** Misc. errors
ErrorCreatingDir=Setup was unable to create the directory "%1"
ErrorTooManyFilesInDir=Unable to create a file in the directory "%1" because it contains too many files
; *** Setup common messages
ExitSetupTitle=Exit Setup
ExitSetupMessage=Setup is not complete. If you exit now, the program will not be installed.%n%nYou may run Setup again at another time to complete the installation.%n%nExit Setup?
AboutSetupMenuItem=&About Setup...
AboutSetupTitle=About Setup
AboutSetupMessage=%1 version %2%n%3%n%n%1 home page:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< &Back
ButtonNext=&Next >
ButtonInstall=&Install
ButtonOK=OK
ButtonCancel=Cancel
ButtonYes=&Yes
ButtonYesToAll=Yes to &All
ButtonNo=&No
ButtonNoToAll=N&o to All
ButtonFinish=&Finish
ButtonBrowse=&Browse...
ButtonWizardBrowse=B&rowse...
ButtonNewFolder=&Make New Folder
; *** "Select Language" dialog messages
SelectLanguageTitle=Select Setup Language
SelectLanguageLabel=Select the language to use during the installation.
; *** Common wizard text
ClickNext=Click Next to continue, or Cancel to exit Setup.
BeveledLabel=
BrowseDialogTitle=Browse For Folder
BrowseDialogLabel=Select a folder in the list below, then click OK.
NewFolderName=New Folder
; *** "Welcome" wizard page
WelcomeLabel1=Welcome to the [name] Setup Wizard
WelcomeLabel2=This will install [name/ver] on your computer.%n%nIt is recommended that you close all other applications before continuing.
; *** "Password" wizard page
WizardPassword=Password
PasswordLabel1=This installation is password protected.
PasswordLabel3=Please provide the password, then click Next to continue. Passwords are case-sensitive.
PasswordEditLabel=&Password:
IncorrectPassword=The password you entered is not correct. Please try again.
; *** "License Agreement" wizard page
WizardLicense=License Agreement
LicenseLabel=Please read the following important information before continuing.
LicenseLabel3=Please read the following License Agreement. You must accept the terms of this agreement before continuing with the installation.
LicenseAccepted=I &accept the agreement
LicenseNotAccepted=I &do not accept the agreement
; *** "Information" wizard pages
WizardInfoBefore=Information
InfoBeforeLabel=Please read the following important information before continuing.
InfoBeforeClickLabel=When you are ready to continue with Setup, click Next.
WizardInfoAfter=Information
InfoAfterLabel=Please read the following important information before continuing.
InfoAfterClickLabel=When you are ready to continue with Setup, click Next.
; *** "User Information" wizard page
WizardUserInfo=User Information
UserInfoDesc=Please enter your information.
UserInfoName=&User Name:
UserInfoOrg=&Organization:
UserInfoSerial=&Serial Number:
UserInfoNameRequired=You must enter a name.
; *** "Select Destination Location" wizard page
WizardSelectDir=Select Destination Location
SelectDirDesc=Where should [name] be installed?
SelectDirLabel3=Setup will install [name] into the following folder.
SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.
DiskSpaceGBLabel=At least [gb] GB of free disk space is required.
DiskSpaceMBLabel=At least [mb] MB of free disk space is required.
CannotInstallToNetworkDrive=Setup cannot install to a network drive.
CannotInstallToUNCPath=Setup cannot install to a UNC path.
InvalidPath=You must enter a full path with drive letter; for example:%n%nC:\APP%n%nor a UNC path in the form:%n%n\\server\share
InvalidDrive=The drive or UNC share you selected does not exist or is not accessible. Please select another.
DiskSpaceWarningTitle=Not Enough Disk Space
DiskSpaceWarning=Setup requires at least %1 KB of free space to install, but the selected drive only has %2 KB available.%n%nDo you want to continue anyway?
DirNameTooLong=The folder name or path is too long.
InvalidDirName=The folder name is not valid.
BadDirName32=Folder names cannot include any of the following characters:%n%n%1
DirExistsTitle=Folder Exists
DirExists=The folder:%n%n%1%n%nalready exists. Would you like to install to that folder anyway?
DirDoesntExistTitle=Folder Does Not Exist
DirDoesntExist=The folder:%n%n%1%n%ndoes not exist. Would you like the folder to be created?
; *** "Select Components" wizard page
WizardSelectComponents=Select Components
SelectComponentsDesc=Which components should be installed?
SelectComponentsLabel2=Select the components you want to install; clear the components you do not want to install. Click Next when you are ready to continue.
FullInstallation=Full installation
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Compact installation
CustomInstallation=Custom installation
NoUninstallWarningTitle=Components Exist
NoUninstallWarning=Setup has detected that the following components are already installed on your computer:%n%n%1%n%nDeselecting these components will not uninstall them.%n%nWould you like to continue anyway?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Current selection requires at least [gb] GB of disk space.
ComponentsDiskSpaceMBLabel=Current selection requires at least [mb] MB of disk space.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Select Additional Tasks
SelectTasksDesc=Which additional tasks should be performed?
SelectTasksLabel2=Select the additional tasks you would like Setup to perform while installing [name], then click Next.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Select Start Menu Folder
SelectStartMenuFolderDesc=Where should Setup place the program's shortcuts?
SelectStartMenuFolderLabel3=Setup will create the program's shortcuts in the following Start Menu folder.
SelectStartMenuFolderBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.
MustEnterGroupName=You must enter a folder name.
GroupNameTooLong=The folder name or path is too long.
InvalidGroupName=The folder name is not valid.
BadGroupName=The folder name cannot include any of the following characters:%n%n%1
NoProgramGroupCheck2=&Don't create a Start Menu folder
; *** "Ready to Install" wizard page
WizardReady=Ready to Install
ReadyLabel1=Setup is now ready to begin installing [name] on your computer.
ReadyLabel2a=Click Install to continue with the installation, or click Back if you want to review or change any settings.
ReadyLabel2b=Click Install to continue with the installation.
ReadyMemoUserInfo=User information:
ReadyMemoDir=Destination location:
ReadyMemoType=Setup type:
ReadyMemoComponents=Selected components:
ReadyMemoGroup=Start Menu folder:
ReadyMemoTasks=Additional tasks:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Downloading additional files...
ButtonStopDownload=&Stop download
StopDownload=Are you sure you want to stop the download?
ErrorDownloadAborted=Download aborted
ErrorDownloadFailed=Download failed: %1 %2
ErrorDownloadSizeFailed=Getting size failed: %1 %2
ErrorFileHash1=File hash failed: %1
ErrorFileHash2=Invalid file hash: expected %1, found %2
ErrorProgress=Invalid progress: %1 of %2
ErrorFileSize=Invalid file size: expected %1, found %2
; *** "Preparing to Install" wizard page
WizardPreparing=Preparing to Install
PreparingDesc=Setup is preparing to install [name] on your computer.
PreviousInstallNotCompleted=The installation/removal of a previous program was not completed. You will need to restart your computer to complete that installation.%n%nAfter restarting your computer, run Setup again to complete the installation of [name].
CannotContinue=Setup cannot continue. Please click Cancel to exit.
ApplicationsFound=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications.
ApplicationsFound2=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. After the installation has completed, Setup will attempt to restart the applications.
CloseApplications=&Automatically close the applications
DontCloseApplications=&Do not close the applications
ErrorCloseApplications=Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing.
PrepareToInstallNeedsRestart=Setup must restart your computer. After restarting your computer, run Setup again to complete the installation of [name].%n%nWould you like to restart now?
; *** "Installing" wizard page
WizardInstalling=Installing
InstallingLabel=Please wait while Setup installs [name] on your computer.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Completing the [name] Setup Wizard
FinishedLabelNoIcons=Setup has finished installing [name] on your computer.
FinishedLabel=Setup has finished installing [name] on your computer. The application may be launched by selecting the installed shortcuts.
ClickFinish=Click Finish to exit Setup.
FinishedRestartLabel=To complete the installation of [name], Setup must restart your computer. Would you like to restart now?
FinishedRestartMessage=To complete the installation of [name], Setup must restart your computer.%n%nWould you like to restart now?
ShowReadmeCheck=Yes, I would like to view the README file
YesRadio=&Yes, restart the computer now
NoRadio=&No, I will restart the computer later
; used for example as 'Run MyProg.exe'
RunEntryExec=Run %1
; used for example as 'View Readme.txt'
RunEntryShellExec=View %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Setup Needs the Next Disk
SelectDiskLabel2=Please insert Disk %1 and click OK.%n%nIf the files on this disk can be found in a folder other than the one displayed below, enter the correct path or click Browse.
PathLabel=&Path:
FileNotInDir2=The file "%1" could not be located in "%2". Please insert the correct disk or select another folder.
SelectDirectoryLabel=Please specify the location of the next disk.
; *** Installation phase messages
SetupAborted=Setup was not completed.%n%nPlease correct the problem and run Setup again.
AbortRetryIgnoreSelectAction=Select action
AbortRetryIgnoreRetry=&Try again
AbortRetryIgnoreIgnore=&Ignore the error and continue
AbortRetryIgnoreCancel=Cancel installation
; *** Installation status messages
StatusClosingApplications=Closing applications...
StatusCreateDirs=Creating directories...
StatusExtractFiles=Extracting files...
StatusCreateIcons=Creating shortcuts...
StatusCreateIniEntries=Creating INI entries...
StatusCreateRegistryEntries=Creating registry entries...
StatusRegisterFiles=Registering files...
StatusSavingUninstall=Saving uninstall information...
StatusRunProgram=Finishing installation...
StatusRestartingApplications=Restarting applications...
StatusRollback=Rolling back changes...
; *** Misc. errors
ErrorInternal2=Internal error: %1
ErrorFunctionFailedNoCode=%1 failed
ErrorFunctionFailed=%1 failed; code %2
ErrorFunctionFailedWithMessage=%1 failed; code %2.%n%3
ErrorExecutingProgram=Unable to execute file:%n%1
; *** Registry errors
ErrorRegOpenKey=Error opening registry key:%n%1\%2
ErrorRegCreateKey=Error creating registry key:%n%1\%2
ErrorRegWriteKey=Error writing to registry key:%n%1\%2
; *** INI errors
ErrorIniEntry=Error creating INI entry in file "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Skip this file (not recommended)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignore the error and continue (not recommended)
SourceIsCorrupted=The source file is corrupted
SourceDoesntExist=The source file "%1" does not exist
ExistingFileReadOnly2=The existing file could not be replaced because it is marked read-only.
ExistingFileReadOnlyRetry=&Remove the read-only attribute and try again
ExistingFileReadOnlyKeepExisting=&Keep the existing file
ErrorReadingExistingDest=An error occurred while trying to read the existing file:
FileExistsSelectAction=Select action
FileExists2=The file already exists.
FileExistsOverwriteExisting=&Overwrite the existing file
FileExistsKeepExisting=&Keep the existing file
FileExistsOverwriteOrKeepAll=&Do this for the next conflicts
ExistingFileNewerSelectAction=Select action
ExistingFileNewer2=The existing file is newer than the one Setup is trying to install.
ExistingFileNewerOverwriteExisting=&Overwrite the existing file
ExistingFileNewerKeepExisting=&Keep the existing file (recommended)
ExistingFileNewerOverwriteOrKeepAll=&Do this for the next conflicts
ErrorChangingAttr=An error occurred while trying to change the attributes of the existing file:
ErrorCreatingTemp=An error occurred while trying to create a file in the destination directory:
ErrorReadingSource=An error occurred while trying to read the source file:
ErrorCopying=An error occurred while trying to copy a file:
ErrorReplacingExistingFile=An error occurred while trying to replace the existing file:
ErrorRestartReplace=RestartReplace failed:
ErrorRenamingTemp=An error occurred while trying to rename a file in the destination directory:
ErrorRegisterServer=Unable to register the DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 failed with exit code %1
ErrorRegisterTypeLib=Unable to register the type library: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=All users
UninstallDisplayNameMarkCurrentUser=Current user
; *** Post-installation errors
ErrorOpeningReadme=An error occurred while trying to open the README file.
ErrorRestartingComputer=Setup was unable to restart the computer. Please do this manually.
; *** Uninstaller messages
UninstallNotFound=File "%1" does not exist. Cannot uninstall.
UninstallOpenError=File "%1" could not be opened. Cannot uninstall
UninstallUnsupportedVer=The uninstall log file "%1" is in a format not recognized by this version of the uninstaller. Cannot uninstall
UninstallUnknownEntry=An unknown entry (%1) was encountered in the uninstall log
; ConfirmUninstall=Are you sure you want to completely remove %1 and all of its components?
; VCMI Custom message
ConfirmUninstall=Are you sure you want to run the %1 uninstall wizard?
UninstallOnlyOnWin64=This installation can only be uninstalled on 64-bit Windows.
OnlyAdminCanUninstall=This installation can only be uninstalled by a user with administrative privileges.
UninstallStatusLabel=Please wait while %1 is removed from your computer.
UninstalledAll=%1 was successfully removed from your computer.
UninstalledMost=%1 uninstall complete.%n%nSome elements could not be removed. These can be removed manually.
UninstalledAndNeedsRestart=To complete the uninstallation of %1, your computer must be restarted.%n%nWould you like to restart now?
UninstallDataCorrupted="%1" file is corrupted. Cannot uninstall
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Remove Shared File?
ConfirmDeleteSharedFile2=The system indicates that the following shared file is no longer in use by any programs. Would you like for Uninstall to remove this shared file?%n%nIf any programs are still using this file and it is removed, those programs may not function properly. If you are unsure, choose No. Leaving the file on your system will not cause any harm.
SharedFileNameLabel=File name:
SharedFileLocationLabel=Location:
WizardUninstalling=Uninstall Status
StatusUninstalling=Uninstalling %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Installing %1.
ShutdownBlockReasonUninstallingApp=Uninstalling %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 version %2
AdditionalIcons=Additional shortcuts:
CreateDesktopIcon=Create a &desktop shortcut
CreateQuickLaunchIcon=Create a &Quick Launch shortcut
ProgramOnTheWeb=%1 on the Web
UninstallProgram=Uninstall %1
LaunchProgram=Launch %1
AssocFileExtension=&Associate %1 with the %2 file extension
AssocingFileExtension=Associating %1 with the %2 file extension...
AutoStartProgramGroupDescription=Startup:
AutoStartProgram=Automatically start %1
AddonHostProgramNotFound=%1 could not be located in the folder you selected.%n%nDo you want to continue anyway?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Choose Installation Mode
SelectSetupInstallModeDesc=VCMI can be installed for all users or only for you.
SelectSetupInstallModeSubTitle=Select your preferred installation mode:
InstallForAllUsers=Install for all users
InstallForAllUsers1=Requires administrative privileges
InstallForMeOnly=Install for me only
InstallForMeOnly1=A firewall prompt will appear when launching the game for the first time
InstallForMeOnly2=LAN games will not work if the firewall rule cannot be allowed
SystemIntegration=System integration
CreateDesktopShortcuts=Create desktop shortcuts
CreateStartMenuShortcuts=Create Start Menu shortcuts
AssociateH3MFiles=Associate .h3m files with the VCMI Map Editor
AssociateVCMIMapFiles=Associate .vmap and .vcmp files with the VCMI Map Editor
VCMISettings=VCMI configuration
AddFirewallRules=Add firewall rules for VCMI
CopyH3Files=Automatically copy required Heroes III files to VCMI
RunVCMILauncherAfterInstall=Launch the VCMI Launcher
ShortcutMapEditor=VCMI Map Editor
ShortcutLauncher=VCMI Launcher
ShortcutWebPage=VCMI Website
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=Launch the VCMI Launcher
ShortcutMapEditorComment=Open the VCMI Map Editor
ShortcutWebPageComment=Visit the official VCMI website
ShortcutDiscordComment=Visit the official VCMI Discord
DeleteUserData=Delete user data
Uninstall=Uninstall
Warning=Warning
VMAPDescription=VCMI Map File
VCMPDescription=VCMI Campaign File
H3MDescription=Heroes 3 Map File

View File

@ -0,0 +1,392 @@
; *** Inno Setup version 6.1.0+ Finnish messages ***
;
; Finnish translation by Antti Karttunen
; E-mail: antti.j.karttunen@iki.fi
; Last modification date: 2020-08-02
[LangOptions]
LanguageName=Suomi
LanguageID=$040B
LanguageCodePage=1252
[Messages]
; *** Application titles
SetupAppTitle=Asennus
SetupWindowTitle=%1 - Asennus
UninstallAppTitle=Asennuksen poisto
UninstallAppFullTitle=%1 - Asennuksen poisto
; *** Misc. common
InformationTitle=Ilmoitus
ConfirmTitle=Varmistus
ErrorTitle=Virhe
; *** SetupLdr messages
SetupLdrStartupMessage=T�ll� asennusohjelmalla asennetaan %1. Haluatko jatkaa?
LdrCannotCreateTemp=V�liaikaistiedostoa ei voitu luoda. Asennus keskeytettiin
LdrCannotExecTemp=V�liaikaisessa hakemistossa olevaa tiedostoa ei voitu suorittaa. Asennus keskeytettiin
; *** Startup error messages
LastErrorMessage=%1.%n%nVirhe %2: %3
SetupFileMissing=Tiedostoa %1 ei l�ydy asennushakemistosta. Korjaa ongelma tai hanki uusi kopio ohjelmasta.
SetupFileCorrupt=Asennustiedostot ovat vaurioituneet. Hanki uusi kopio ohjelmasta.
SetupFileCorruptOrWrongVer=Asennustiedostot ovat vaurioituneet tai ovat ep�yhteensopivia t�m�n Asennuksen version kanssa. Korjaa ongelma tai hanki uusi kopio ohjelmasta.
InvalidParameter=Virheellinen komentoriviparametri:%n%n%1
SetupAlreadyRunning=Asennus on jo k�ynniss�.
WindowsVersionNotSupported=T�m� ohjelma ei voi toimia Windows-versiossasi. Varmista, ett� k�yt�t oikeaa Windows-arkkitehtuuria (32-bittinen tai 64-bittinen) ja oikeaa ohjelmaversiota.
WindowsServicePackRequired=T�m� ohjelma vaatii %1 Service Pack %2 -p�ivityksen tai my�hemm�n.
NotOnThisPlatform=T�m� ohjelma ei toimi %1-k�ytt�j�rjestelm�ss�.
OnlyOnThisPlatform=T�m� ohjelma toimii vain %1-k�ytt�j�rjestelm�ss�.
OnlyOnTheseArchitectures=T�m� ohjelma voidaan asentaa vain niihin Windowsin versioihin, jotka on suunniteltu seuraaville prosessorityypeille:%n%n%1
WinVersionTooLowError=T�m� ohjelma vaatii version %2 tai my�hemm�n %1-k�ytt�j�rjestelm�st�.
WinVersionTooHighError=T�t� ohjelmaa ei voi asentaa %1-k�ytt�j�rjestelm�n versioon %2 tai my�hemp��n.
AdminPrivilegesRequired=Sinun t�ytyy kirjautua sis��n j�rjestelm�nvalvojana asentaaksesi t�m�n ohjelman.
PowerUserPrivilegesRequired=Sinun t�ytyy kirjautua sis��n j�rjestelm�nvalvojana tai tehok�ytt�j�n� asentaaksesi t�m�n ohjelman.
SetupAppRunningError=Asennus l�ysi k�ynniss� olevan kopion ohjelmasta %1.%n%nSulje kaikki k�ynniss� olevat kopiot ohjelmasta ja valitse OK jatkaaksesi, tai valitse Peruuta poistuaksesi.
UninstallAppRunningError=Asennuksen poisto l�ysi k�ynniss� olevan kopion ohjelmasta %1.%n%nSulje kaikki k�ynniss� olevat kopiot ohjelmasta ja valitse OK jatkaaksesi, tai valitse Peruuta poistuaksesi.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Valitse asennustapa
PrivilegesRequiredOverrideInstruction=Valitse, kenen k�ytt��n ohjelma asennetaan
PrivilegesRequiredOverrideText1=%1 voidaan asentaa kaikille k�ytt�jille (vaatii j�rjestelm�nvalvojan oikeudet) tai vain sinun k�ytt��si.
PrivilegesRequiredOverrideText2=%1 voidaan asentaa vain sinun k�ytt��si tai kaikille k�ytt�jille (vaatii j�rjestelm�nvalvojan oikeudet).
PrivilegesRequiredOverrideAllUsers=Asenna &kaikille k�ytt�jille
PrivilegesRequiredOverrideAllUsersRecommended=Asenna &kaikille k�ytt�jille (suositus)
PrivilegesRequiredOverrideCurrentUser=Asenna vain &minun k�ytt��ni
PrivilegesRequiredOverrideCurrentUserRecommended=Asenna vain &minun k�ytt��ni (suositus)
; *** Misc. errors
ErrorCreatingDir=Asennus ei voinut luoda hakemistoa "%1"
ErrorTooManyFilesInDir=Tiedoston luominen hakemistoon "%1" ep�onnistui, koska se sis�lt�� liian monta tiedostoa
; *** Setup common messages
ExitSetupTitle=Poistu Asennuksesta
ExitSetupMessage=Asennus ei ole valmis. Jos lopetat nyt, ohjelmaa ei asenneta.%n%nVoit ajaa Asennuksen toiste asentaaksesi ohjelman.%n%nLopetetaanko Asennus?
AboutSetupMenuItem=&Tietoja Asennuksesta...
AboutSetupTitle=Tietoja Asennuksesta
AboutSetupMessage=%1 versio %2%n%3%n%n%1 -ohjelman kotisivu:%n%4
AboutSetupNote=
TranslatorNote=Suomenkielinen k��nn�s: Antti Karttunen (antti.j.karttunen@iki.fi)
; *** Buttons
ButtonBack=< &Takaisin
ButtonNext=&Seuraava >
ButtonInstall=&Asenna
ButtonOK=OK
ButtonCancel=Peruuta
ButtonYes=&Kyll�
ButtonYesToAll=Kyll� k&aikkiin
ButtonNo=&Ei
ButtonNoToAll=E&i kaikkiin
ButtonFinish=&Lopeta
ButtonBrowse=S&elaa...
ButtonWizardBrowse=S&elaa...
ButtonNewFolder=&Luo uusi kansio
; *** "Select Language" dialog messages
SelectLanguageTitle=Valitse Asennuksen kieli
SelectLanguageLabel=Valitse asentamisen aikana k�ytett�v� kieli.
; *** Common wizard text
ClickNext=Valitse Seuraava jatkaaksesi tai Peruuta poistuaksesi.
BeveledLabel=
BrowseDialogTitle=Selaa kansioita
BrowseDialogLabel=Valitse kansio allaolevasta listasta ja valitse sitten OK jatkaaksesi.
NewFolderName=Uusi kansio
; *** "Welcome" wizard page
WelcomeLabel1=Tervetuloa [name] -asennusohjelmaan.
WelcomeLabel2=T�ll� asennusohjelmalla koneellesi asennetaan [name/ver]. %n%nOn suositeltavaa, ett� suljet kaikki muut k�ynniss� olevat sovellukset ennen jatkamista. T�m� auttaa v�ltt�m��n ristiriitatilanteita asennuksen aikana.
; *** "Password" wizard page
WizardPassword=Salasana
PasswordLabel1=T�m� asennusohjelma on suojattu salasanalla.
PasswordLabel3=Anna salasana ja valitse sitten Seuraava jatkaaksesi.%n%nIsot ja pienet kirjaimet ovat eriarvoisia.
PasswordEditLabel=&Salasana:
IncorrectPassword=Antamasi salasana oli virheellinen. Anna salasana uudelleen.
; *** "License Agreement" wizard page
WizardLicense=K�ytt�oikeussopimus
LicenseLabel=Lue seuraava t�rke� tiedotus ennen kuin jatkat.
LicenseLabel3=Lue seuraava k�ytt�oikeussopimus tarkasti. Sinun t�ytyy hyv�ksy� sopimus, jos haluat jatkaa asentamista.
LicenseAccepted=&Hyv�ksyn sopimuksen
LicenseNotAccepted=&En hyv�ksy sopimusta
; *** "Information" wizard pages
WizardInfoBefore=Tiedotus
InfoBeforeLabel=Lue seuraava t�rke� tiedotus ennen kuin jatkat.
InfoBeforeClickLabel=Kun olet valmis jatkamaan asentamista, valitse Seuraava.
WizardInfoAfter=Tiedotus
InfoAfterLabel=Lue seuraava t�rke� tiedotus ennen kuin jatkat.
InfoAfterClickLabel=Kun olet valmis jatkamaan asentamista, valitse Seuraava.
; *** "Select Destination Directory" wizard page
WizardUserInfo=K�ytt�j�tiedot
UserInfoDesc=Anna pyydetyt tiedot.
UserInfoName=K�ytt�j�n &nimi:
UserInfoOrg=&Yritys:
UserInfoSerial=&Tunnuskoodi:
UserInfoNameRequired=Sinun t�ytyy antaa nimi.
; *** "Select Destination Location" wizard page
WizardSelectDir=Valitse kohdekansio
SelectDirDesc=Mihin [name] asennetaan?
SelectDirLabel3=[name] asennetaan t�h�n kansioon.
SelectDirBrowseLabel=Valitse Seuraava jatkaaksesi. Jos haluat vaihtaa kansiota, valitse Selaa.
DiskSpaceGBLabel=Vapaata levytilaa tarvitaan v�hint��n [gb] Gt.
DiskSpaceMBLabel=Vapaata levytilaa tarvitaan v�hint��n [mb] Mt.
CannotInstallToNetworkDrive=Asennus ei voi asentaa ohjelmaa verkkoasemalle.
CannotInstallToUNCPath=Asennus ei voi asentaa ohjelmaa UNC-polun alle.
InvalidPath=Anna t�ydellinen polku levyaseman kirjaimen kanssa. Esimerkiksi %nC:\OHJELMA%n%ntai UNC-polku muodossa %n%n\\palvelin\resurssi
InvalidDrive=Valitsemaasi asemaa tai UNC-polkua ei ole olemassa tai sit� ei voi k�ytt��. Valitse toinen asema tai UNC-polku.
DiskSpaceWarningTitle=Ei tarpeeksi vapaata levytilaa
DiskSpaceWarning=Asennus vaatii v�hint��n %1 kt vapaata levytilaa, mutta valitulla levyasemalla on vain %2 kt vapaata levytilaa.%n%nHaluatko jatkaa t�st� huolimatta?
DirNameTooLong=Kansion nimi tai polku on liian pitk�.
InvalidDirName=Virheellinen kansion nimi.
BadDirName32=Kansion nimess� ei saa olla seuraavia merkkej�:%n%n%1
DirExistsTitle=Kansio on olemassa
DirExists=Kansio:%n%n%1%n%non jo olemassa. Haluatko kuitenkin suorittaa asennuksen t�h�n kansioon?
DirDoesntExistTitle=Kansiota ei ole olemassa
DirDoesntExist=Kansiota%n%n%1%n%nei ole olemassa. Luodaanko kansio?
; *** "Select Components" wizard page
WizardSelectComponents=Valitse asennettavat osat
SelectComponentsDesc=Mitk� osat asennetaan?
SelectComponentsLabel2=Valitse ne osat, jotka haluat asentaa, ja poista niiden osien valinta, joita et halua asentaa. Valitse Seuraava, kun olet valmis.
FullInstallation=Normaali asennus
CompactInstallation=Suppea asennus
CustomInstallation=Mukautettu asennus
NoUninstallWarningTitle=Asennettuja osia l�ydettiin
NoUninstallWarning=Seuraavat osat on jo asennettu koneelle:%n%n%1%n%nN�iden osien valinnan poistaminen ei poista niit� koneelta.%n%nHaluatko jatkaa t�st� huolimatta?
ComponentSize1=%1 kt
ComponentSize2=%1 Mt
ComponentsDiskSpaceGBLabel=Nykyiset valinnat vaativat v�hint��n [gb] Gt levytilaa.
ComponentsDiskSpaceMBLabel=Nykyiset valinnat vaativat v�hint��n [mb] Mt levytilaa.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Valitse muut toiminnot
SelectTasksDesc=Mit� muita toimintoja suoritetaan?
SelectTasksLabel2=Valitse muut toiminnot, jotka haluat Asennuksen suorittavan samalla kun [name] asennetaan. Valitse Seuraava, kun olet valmis.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Valitse K�ynnist�-valikon kansio
SelectStartMenuFolderDesc=Mihin ohjelman pikakuvakkeet sijoitetaan?
SelectStartMenuFolderLabel3=Ohjelman pikakuvakkeet luodaan t�h�n K�ynnist�-valikon kansioon.
SelectStartMenuFolderBrowseLabel=Valitse Seuraava jatkaaksesi. Jos haluat vaihtaa kansiota, valitse Selaa.
MustEnterGroupName=Kansiolle pit�� antaa nimi.
GroupNameTooLong=Kansion nimi tai polku on liian pitk�.
InvalidGroupName=Virheellinen kansion nimi.
BadGroupName=Kansion nimess� ei saa olla seuraavia merkkej�:%n%n%1
NoProgramGroupCheck2=�l� luo k&ansiota K�ynnist�-valikkoon
; *** "Ready to Install" wizard page
WizardReady=Valmiina asennukseen
ReadyLabel1=[name] on nyt valmis asennettavaksi.
ReadyLabel2a=Valitse Asenna jatkaaksesi asentamista tai valitse Takaisin, jos haluat tarkastella tekemi�si asetuksia tai muuttaa niit�.
ReadyLabel2b=Valitse Asenna jatkaaksesi asentamista.
ReadyMemoUserInfo=K�ytt�j�tiedot:
ReadyMemoDir=Kohdekansio:
ReadyMemoType=Asennustyyppi:
ReadyMemoComponents=Asennettavaksi valitut osat:
ReadyMemoGroup=K�ynnist�-valikon kansio:
ReadyMemoTasks=Muut toiminnot:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Ladataan tarvittavia tiedostoja...
ButtonStopDownload=&Pys�yt� lataus
StopDownload=Oletko varma, ett� haluat pys�ytt�� tiedostojen latauksen?
ErrorDownloadAborted=Tiedostojen lataaminen keskeytettiin
ErrorDownloadFailed=Tiedoston lataaminen ep�onnistui: %1 %2
ErrorDownloadSizeFailed=Latauksen koon noutaminen ep�onnistui: %1 %2
ErrorFileHash1=Tiedoston tiivisteen luominen ep�onnistui: %1
ErrorFileHash2=Tiedoston tiiviste on virheellinen: odotettu %1, l�ydetty %2
ErrorProgress=Virheellinen edistyminen: %1 / %2
ErrorFileSize=Virheellinen tiedoston koko: odotettu %1, l�ydetty %2
; *** "Preparing to Install" wizard page
WizardPreparing=Valmistellaan asennusta
PreparingDesc=Valmistaudutaan asentamaan [name] koneellesi.
PreviousInstallNotCompleted=Edellisen ohjelman asennus tai asennuksen poisto ei ole valmis. Sinun t�ytyy k�ynnist�� kone uudelleen viimeistell�ksesi edellisen asennuksen.%n%nAja [name] -asennusohjelma uudestaan, kun olet k�ynnist�nyt koneen uudelleen.
CannotContinue=Asennusta ei voida jatkaa. Valitse Peruuta poistuaksesi.
ApplicationsFound=Seuraavat sovellukset k�ytt�v�t tiedostoja, joita Asennuksen pit�� p�ivitt��. On suositeltavaa, ett� annat Asennuksen sulkea n�m� sovellukset automaattisesti.
ApplicationsFound2=Seuraavat sovellukset k�ytt�v�t tiedostoja, joita Asennuksen pit�� p�ivitt��. On suositeltavaa, ett� annat Asennuksen sulkea n�m� sovellukset automaattisesti. Valmistumisen j�lkeen Asennus yritt�� uudelleenk�ynnist�� sovellukset.
CloseApplications=&Sulje sovellukset automaattisesti
DontCloseApplications=&�l� sulje sovelluksia
ErrorCloseApplications=Asennus ei pystynyt sulkemaan tarvittavia sovelluksia automaattisesti. On suositeltavaa, ett� ennen jatkamista suljet sovellukset, jotka k�ytt�v�t asennuksen aikana p�ivitett�vi� tiedostoja.
PrepareToInstallNeedsRestart=Asennuksen t�ytyy k�ynnist�� tietokone uudelleen. Aja Asennus uudelleenk�ynnistyksen j�lkeen, jotta [name] voidaan asentaa.%n%nHaluatko k�ynnist�� tietokoneen uudelleen nyt?
; *** "Installing" wizard page
WizardInstalling=Asennus k�ynniss�
InstallingLabel=Odota, kun [name] asennetaan koneellesi.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=[name] - Asennuksen viimeistely
FinishedLabelNoIcons=[name] on nyt asennettu koneellesi.
FinishedLabel=[name] on nyt asennettu. Sovellus voidaan k�ynnist�� valitsemalla jokin asennetuista kuvakkeista.
ClickFinish=Valitse Lopeta poistuaksesi Asennuksesta.
FinishedRestartLabel=Jotta [name] saataisiin asennettua loppuun, pit�� kone k�ynnist�� uudelleen. Haluatko k�ynnist�� koneen uudelleen nyt?
FinishedRestartMessage=Jotta [name] saataisiin asennettua loppuun, pit�� kone k�ynnist�� uudelleen.%n%nHaluatko k�ynnist�� koneen uudelleen nyt?
ShowReadmeCheck=Kyll�, haluan n�hd� LUEMINUT-tiedoston
YesRadio=&Kyll�, k�ynnist� kone uudelleen
NoRadio=&Ei, k�ynnist�n koneen uudelleen my�hemmin
RunEntryExec=K�ynnist� %1
RunEntryShellExec=N�yt� %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Asennus tarvitsee seuraavan levykkeen
SelectDiskLabel2=Aseta levyke %1 asemaan ja valitse OK. %n%nJos joku toinen kansio sis�lt�� levykkeen tiedostot, anna oikea polku tai valitse Selaa.
PathLabel=&Polku:
FileNotInDir2=Tiedostoa "%1" ei l�ytynyt l�hteest� "%2". Aseta oikea levyke asemaan tai valitse toinen kansio.
SelectDirectoryLabel=M��rit� seuraavan levykkeen sis�ll�n sijainti.
; *** Installation phase messages
SetupAborted=Asennusta ei suoritettu loppuun.%n%nKorjaa ongelma ja suorita Asennus uudelleen.
AbortRetryIgnoreSelectAction=Valitse toiminto
AbortRetryIgnoreRetry=&Yrit� uudelleen
AbortRetryIgnoreIgnore=&Jatka virheest� huolimatta
AbortRetryIgnoreCancel=Peruuta asennus
; *** Installation status messages
StatusClosingApplications=Suljetaan sovellukset...
StatusCreateDirs=Luodaan hakemistoja...
StatusExtractFiles=Puretaan tiedostoja...
StatusCreateIcons=Luodaan pikakuvakkeita...
StatusCreateIniEntries=Luodaan INI-merkint�j�...
StatusCreateRegistryEntries=Luodaan rekisterimerkint�j�...
StatusRegisterFiles=Rekister�id��n tiedostoja...
StatusSavingUninstall=Tallennetaan Asennuksen poiston tietoja...
StatusRunProgram=Viimeistell��n asennusta...
StatusRestartingApplications=Uudelleenk�ynnistet��n sovellukset...
StatusRollback=Peruutetaan tehdyt muutokset...
; *** Misc. errors
ErrorInternal2=Sis�inen virhe: %1
ErrorFunctionFailedNoCode=%1 ep�onnistui
ErrorFunctionFailed=%1 ep�onnistui; virhekoodi %2
ErrorFunctionFailedWithMessage=%1 ep�onnistui; virhekoodi %2.%n%3
ErrorExecutingProgram=Virhe suoritettaessa tiedostoa%n%1
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Asennetaan %1.
ShutdownBlockReasonUninstallingApp=Poistetaan %1.
; *** Registry errors
ErrorRegOpenKey=Virhe avattaessa rekisteriavainta%n%1\%2
ErrorRegCreateKey=Virhe luotaessa rekisteriavainta%n%1\%2
ErrorRegWriteKey=Virhe kirjoitettaessa rekisteriavaimeen%n%1\%2
; *** INI errors
ErrorIniEntry=Virhe luotaessa INI-merkint�� tiedostoon "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Ohita t�m� tiedosto (ei suositeltavaa)
FileAbortRetryIgnoreIgnoreNotRecommended=&Jatka virheest� huolimatta (ei suositeltavaa)
SourceIsCorrupted=L�hdetiedosto on vaurioitunut
SourceDoesntExist=L�hdetiedostoa "%1" ei ole olemassa
ExistingFileReadOnly2=Nykyist� tiedostoa ei voitu korvata, koska se on Vain luku -tiedosto.
ExistingFileReadOnlyRetry=&Poista Vain luku -asetus ja yrit� uudelleen
ExistingFileReadOnlyKeepExisting=&S�ilyt� nykyinen tiedosto
ErrorReadingExistingDest=Virhe luettaessa nykyist� tiedostoa:
FileExistsSelectAction=Valitse toiminto
FileExists2=Tiedosto on jo olemassa.
FileExistsOverwriteExisting=Korvaa &olemassa oleva tiedosto
FileExistsKeepExisting=&S�ilyt� olemassa oleva tiedosto
FileExistsOverwriteOrKeepAll=&Hoida muut vastaavat tilanteet samalla tavalla
ExistingFileNewerSelectAction=Valitse toiminto
ExistingFileNewer2=Olemassa oleva tiedosto on uudempi kuin Asennuksen sis�lt�m� tiedosto.
ExistingFileNewerOverwriteExisting=Korvaa &olemassa oleva tiedosto
ExistingFileNewerKeepExisting=&S�ilyt� olemassa oleva tiedosto (suositeltavaa)
ExistingFileNewerOverwriteOrKeepAll=&Hoida muut vastaavat tilanteet samalla tavalla
ErrorChangingAttr=Virhe vaihdettaessa nykyisen tiedoston m��ritteit�:
ErrorCreatingTemp=Virhe luotaessa tiedostoa kohdehakemistoon:
ErrorReadingSource=Virhe luettaessa l�hdetiedostoa:
ErrorCopying=Virhe kopioitaessa tiedostoa:
ErrorReplacingExistingFile=Virhe korvattaessa nykyist� tiedostoa:
ErrorRestartReplace=RestartReplace-komento ep�onnistui:
ErrorRenamingTemp=Virhe uudelleennimett�ess� tiedostoa kohdehakemistossa:
ErrorRegisterServer=DLL/OCX -laajennuksen rekister�inti ep�onnistui: %1
ErrorRegSvr32Failed=RegSvr32-toiminto ep�onnistui. Virhekoodi: %1
ErrorRegisterTypeLib=Tyyppikirjaston rekister�iminen ep�onnistui: %1
; *** Uninstall display name markings
UninstallDisplayNameMark=%1 (%2)
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bittinen
UninstallDisplayNameMark64Bit=64-bittinen
UninstallDisplayNameMarkAllUsers=Kaikki k�ytt�j�t
UninstallDisplayNameMarkCurrentUser=T�m�nhetkinen k�ytt�j�
; *** Post-installation errors
ErrorOpeningReadme=Virhe avattaessa LUEMINUT-tiedostoa.
ErrorRestartingComputer=Koneen uudelleenk�ynnist�minen ei onnistunut. Suorita uudelleenk�ynnistys itse.
; *** Uninstaller messages
UninstallNotFound=Tiedostoa "%1" ei l�ytynyt. Asennuksen poisto ei onnistu.
UninstallOpenError=Tiedostoa "%1" ei voitu avata. Asennuksen poisto ei onnistu.
UninstallUnsupportedVer=T�m� versio Asennuksen poisto-ohjelmasta ei pysty lukemaan lokitiedostoa "%1". Asennuksen poisto ei onnistu
UninstallUnknownEntry=Asennuksen poisto-ohjelman lokitiedostosta l�ytyi tuntematon merkint� (%1)
ConfirmUninstall=Haluatko varmasti suorittaa %1 asennuksen poistoty�kalun?
UninstallOnlyOnWin64=T�m� ohjelma voidaan poistaa vain 64-bittisest� Windowsista k�sin.
OnlyAdminCanUninstall=T�m�n asennuksen poistaminen vaatii j�rjestelm�nvalvojan oikeudet.
UninstallStatusLabel=Odota, kun %1 poistetaan koneeltasi.
UninstalledAll=%1 poistettiin onnistuneesti.
UninstalledMost=%1 poistettiin koneelta.%n%nJoitakin osia ei voitu poistaa. Voit poistaa osat itse.
UninstalledAndNeedsRestart=Kone t�ytyy k�ynnist�� uudelleen, jotta %1 voidaan poistaa kokonaan.%n%nHaluatko k�ynnist�� koneen uudeelleen nyt?
UninstallDataCorrupted=Tiedosto "%1" on vaurioitunut. Asennuksen poisto ei onnistu.
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Poistetaanko jaettu tiedosto?
ConfirmDeleteSharedFile2=J�rjestelm�n mukaan seuraava jaettu tiedosto ei ole en�� mink��n muun sovelluksen k�yt�ss�. Poistetaanko tiedosto?%n%nJos jotkut sovellukset k�ytt�v�t viel� t�t� tiedostoa ja se poistetaan, ne eiv�t v�ltt�m�tt� toimi en�� kunnolla. Jos olet ep�varma, valitse Ei. Tiedoston j�tt�minen koneelle ei aiheuta ongelmia.
SharedFileNameLabel=Tiedoston nimi:
SharedFileLocationLabel=Sijainti:
WizardUninstalling=Asennuksen poiston tila
StatusUninstalling=Poistetaan %1...
[CustomMessages]
NameAndVersion=%1 versio %2
AdditionalIcons=Lis�kuvakkeet:
CreateDesktopIcon=Lu&o kuvake ty�p�yd�lle
CreateQuickLaunchIcon=Luo kuvake &pikak�ynnistyspalkkiin
ProgramOnTheWeb=%1 Internetiss�
UninstallProgram=Poista %1
LaunchProgram=&K�ynnist� %1
AssocFileExtension=&Yhdist� %1 tiedostop��tteeseen %2
AssocingFileExtension=Yhdistet��n %1 tiedostop��tteeseen %2 ...
AutoStartProgramGroupDescription=K�ynnistys:
AutoStartProgram=K�ynnist� %1 automaattisesti
AddonHostProgramNotFound=%1 ei ole valitsemassasi kansiossa.%n%nHaluatko jatkaa t�st� huolimatta?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Valitse asennustila
SelectSetupInstallModeDesc=VCMI voidaan asentaa kaikille k�ytt�jille tai vain sinulle.
SelectSetupInstallModeSubTitle=Valitse haluamasi asennustila:
InstallForAllUsers=Asenna kaikille k�ytt�jille
InstallForAllUsers1=Vaatii j�rjestelm�nvalvojan oikeudet
InstallForMeOnly=Asenna vain minulle
InstallForMeOnly1=Palomuurikehote ilmestyy pelin ensimm�isen k�ynnistyksen yhteydess�
InstallForMeOnly2=LAN-pelit eiv�t toimi, jos palomuuris��nt�� ei voida sallia
SystemIntegration=J�rjestelm�integraatio
CreateDesktopShortcuts=Luo ty�p�yt�kuvakkeet
CreateStartMenuShortcuts=Luo kuvakkeet K�ynnist�-valikkoon
AssociateH3MFiles=Liit� .h3m-tiedostot VCMI-karttaeditoriin
AssociateVCMIMapFiles=Liit� .vmap- ja .vcmp-tiedostot VCMI-karttaeditoriin
VCMISettings=VCMI-asetukset
AddFirewallRules=Lis�� palomuuris��nn�t VCMI:lle
CopyH3Files=Kopioi automaattisesti Heroes III:n vaaditut tiedostot VCMI:hin
RunVCMILauncherAfterInstall=K�ynnist� VCMI Launcher
ShortcutMapEditor=VCMI Karttaeditori
ShortcutLauncher=VCMI Launcher
ShortcutWebPage=VCMI-verkkosivu
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=K�ynnist� VCMI Launcher
ShortcutMapEditorComment=Avaa VCMI Karttaeditori
ShortcutWebPageComment=Vieraile VCMI:n virallisella verkkosivustolla
ShortcutDiscordComment=Vieraile VCMI:n virallisella Discord-kanavalla
DeleteUserData=Poista k�ytt�j�tiedot
Uninstall=Poista asennus
Warning=Varoitus
VMAPDescription=VCMI Karttatiedosto
VCMPDescription=VCMI Kampanjatiedosto
H3MDescription=Heroes 3 Karttatiedosto

View File

@ -0,0 +1,437 @@
; *** Inno Setup version 6.1.0+ French messages ***
;
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
;
; Maintained by Pierre Yager (pierre@levosgien.net)
;
; Contributors : Frédéric Bonduelle, Francis Pallini, Lumina, Pascal Peyrot
;
; Changes :
; + Accents on uppercase letters
; http://www.academie-francaise.fr/langue/questions.html#accentuation (lumina)
; + Typography quotes [see ISBN: 978-2-7433-0482-9]
; http://fr.wikipedia.org/wiki/Guillemet (lumina)
; + Binary units (Kio, Mio) [IEC 80000-13:2008]
; http://fr.wikipedia.org/wiki/Octet (lumina)
; + Reverted to standard units (Ko, Mo) to follow Windows Explorer Standard
; http://blogs.msdn.com/b/oldnewthing/archive/2009/06/11/9725386.aspx
; + Use more standard verbs for click and retry
; "click": "Clicker" instead of "Appuyer"
; "retry": "Recommencer" au lieu de "Réessayer"
; + Added new 6.0.0 messages
; + Added new 6.1.0 messages
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Français
LanguageID=$040C
LanguageCodePage=1252
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Installation
SetupWindowTitle=Installation - %1
UninstallAppTitle=Désinstallation
UninstallAppFullTitle=Désinstallation - %1
; *** Misc. common
InformationTitle=Information
ConfirmTitle=Confirmation
ErrorTitle=Erreur
; *** SetupLdr messages
SetupLdrStartupMessage=Cet assistant va installer %1. Voulez-vous continuer ?
LdrCannotCreateTemp=Impossible de créer un fichier temporaire. Abandon de l'installation
LdrCannotExecTemp=Impossible d'exécuter un fichier depuis le dossier temporaire. Abandon de l'installation
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nErreur %2 : %3
SetupFileMissing=Le fichier %1 est absent du dossier d'installation. Veuillez corriger le problème ou vous procurer une nouvelle copie du programme.
SetupFileCorrupt=Les fichiers d'installation sont altérés. Veuillez vous procurer une nouvelle copie du programme.
SetupFileCorruptOrWrongVer=Les fichiers d'installation sont altérés ou ne sont pas compatibles avec cette version de l'assistant d'installation. Veuillez corriger le problème ou vous procurer une nouvelle copie du programme.
InvalidParameter=Un paramètre non valide a été passé à la ligne de commande :%n%n%1
SetupAlreadyRunning=L'assistant d'installation est déjà en cours d'exécution.
WindowsVersionNotSupported=Ce programme ne peut pas s'exécuter sur votre version de Windows. Veuillez vous assurer d'utiliser l'architecture Windows correcte (32 bits ou 64 bits) et la version adaptée de ce programme.
WindowsServicePackRequired=Ce programme a besoin de %1 Service Pack %2 ou d'une version plus récente.
NotOnThisPlatform=Ce programme ne fonctionne pas sous %1.
OnlyOnThisPlatform=Ce programme ne peut fonctionner que sous %1.
OnlyOnTheseArchitectures=Ce programme ne peut être installé que sur des versions de Windows qui supportent ces architectures : %n%n%1
WinVersionTooLowError=Ce programme requiert la version %2 ou supérieure de %1.
WinVersionTooHighError=Ce programme ne peut pas être installé sous %1 version %2 ou supérieure.
AdminPrivilegesRequired=Vous devez disposer des droits d'administration de cet ordinateur pour installer ce programme.
PowerUserPrivilegesRequired=Vous devez disposer des droits d'administration ou faire partie du groupe « Utilisateurs avec pouvoir » de cet ordinateur pour installer ce programme.
SetupAppRunningError=L'assistant d'installation a détecté que %1 est actuellement en cours d'exécution.%n%nVeuillez fermer toutes les instances de cette application puis cliquer sur OK pour continuer, ou bien cliquer sur Annuler pour abandonner l'installation.
UninstallAppRunningError=La procédure de désinstallation a détecté que %1 est actuellement en cours d'exécution.%n%nVeuillez fermer toutes les instances de cette application puis cliquer sur OK pour continuer, ou bien cliquer sur Annuler pour abandonner la désinstallation.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Choix du Mode d'Installation
PrivilegesRequiredOverrideInstruction=Choisissez le mode d'installation
PrivilegesRequiredOverrideText1=%1 peut être installé pour tous les utilisateurs (nécessite des privilèges administrateur), ou seulement pour vous.
PrivilegesRequiredOverrideText2=%1 peut-être installé seulement pour vous, ou pour tous les utilisateurs (nécessite des privilèges administrateur).
PrivilegesRequiredOverrideAllUsers=Installer pour &tous les utilisateurs
PrivilegesRequiredOverrideAllUsersRecommended=Installer pour &tous les utilisateurs (recommandé)
PrivilegesRequiredOverrideCurrentUser=Installer seulement pour &moi
PrivilegesRequiredOverrideCurrentUserRecommended=Installer seulement pour &moi (recommandé)
; *** Misc. errors
ErrorCreatingDir=L'assistant d'installation n'a pas pu créer le dossier "%1"
ErrorTooManyFilesInDir=L'assistant d'installation n'a pas pu créer un fichier dans le dossier "%1" car celui-ci contient trop de fichiers
; *** Setup common messages
ExitSetupTitle=Quitter l'installation
ExitSetupMessage=L'installation n'est pas terminée. Si vous abandonnez maintenant, le programme ne sera pas installé.%n%nVous devrez relancer cet assistant pour finir l'installation.%n%nVoulez-vous quand même quitter l'assistant d'installation ?
AboutSetupMenuItem=À &propos...
AboutSetupTitle=À Propos de l'assistant d'installation
AboutSetupMessage=%1 version %2%n%3%n%nPage d'accueil de %1 :%n%4
AboutSetupNote=
TranslatorNote=Traduction française maintenue par Pierre Yager (pierre@levosgien.net)
; *** Buttons
ButtonBack=< &Précédent
ButtonNext=&Suivant >
ButtonInstall=&Installer
ButtonOK=OK
ButtonCancel=Annuler
ButtonYes=&Oui
ButtonYesToAll=Oui pour &tout
ButtonNo=&Non
ButtonNoToAll=N&on pour tout
ButtonFinish=&Terminer
ButtonBrowse=Pa&rcourir...
ButtonWizardBrowse=Pa&rcourir...
ButtonNewFolder=Nouveau &dossier
; *** "Select Language" dialog messages
SelectLanguageTitle=Langue de l'assistant d'installation
SelectLanguageLabel=Veuillez sélectionner la langue qui sera utilisée par l'assistant d'installation.
; *** Common wizard text
ClickNext=Cliquez sur Suivant pour continuer ou sur Annuler pour abandonner l'installation.
BeveledLabel=
BrowseDialogTitle=Parcourir les dossiers
BrowseDialogLabel=Veuillez choisir un dossier de destination, puis cliquez sur OK.
NewFolderName=Nouveau dossier
; *** "Welcome" wizard page
WelcomeLabel1=Bienvenue dans l'assistant d'installation de [name]
WelcomeLabel2=Cet assistant va vous guider dans l'installation de [name/ver] sur votre ordinateur.%n%nIl est recommandé de fermer toutes les applications actives avant de continuer.
; *** "Password" wizard page
WizardPassword=Mot de passe
PasswordLabel1=Cette installation est protégée par un mot de passe.
PasswordLabel3=Veuillez saisir le mot de passe (attention à la distinction entre majuscules et minuscules) puis cliquez sur Suivant pour continuer.
PasswordEditLabel=&Mot de passe :
IncorrectPassword=Le mot de passe saisi n'est pas valide. Veuillez essayer à nouveau.
; *** "License Agreement" wizard page
WizardLicense=Accord de licence
LicenseLabel=Les informations suivantes sont importantes. Veuillez les lire avant de continuer.
LicenseLabel3=Veuillez lire le contrat de licence suivant. Vous devez en accepter tous les termes avant de continuer l'installation.
LicenseAccepted=Je comprends et j'&accepte les termes du contrat de licence
LicenseNotAccepted=Je &refuse les termes du contrat de licence
; *** "Information" wizard pages
WizardInfoBefore=Information
InfoBeforeLabel=Les informations suivantes sont importantes. Veuillez les lire avant de continuer.
InfoBeforeClickLabel=Lorsque vous êtes prêt à continuer, cliquez sur Suivant.
WizardInfoAfter=Information
InfoAfterLabel=Les informations suivantes sont importantes. Veuillez les lire avant de continuer.
InfoAfterClickLabel=Lorsque vous êtes prêt à continuer, cliquez sur Suivant.
; *** "User Information" wizard page
WizardUserInfo=Informations sur l'Utilisateur
UserInfoDesc=Veuillez saisir les informations qui vous concernent.
UserInfoName=&Nom d'utilisateur :
UserInfoOrg=&Organisation :
UserInfoSerial=Numéro de &série :
UserInfoNameRequired=Vous devez au moins saisir un nom.
; *** "Select Destination Location" wizard page
WizardSelectDir=Dossier de destination
SelectDirDesc=Où [name] doit-il être installé ?
SelectDirLabel3=L'assistant va installer [name] dans le dossier suivant.
SelectDirBrowseLabel=Pour continuer, cliquez sur Suivant. Si vous souhaitez choisir un dossier différent, cliquez sur Parcourir.
DiskSpaceGBLabel=Le programme requiert au moins [gb] Go d'espace disque disponible.
DiskSpaceMBLabel=Le programme requiert au moins [mb] Mo d'espace disque disponible.
CannotInstallToNetworkDrive=L'assistant ne peut pas installer sur un disque réseau.
CannotInstallToUNCPath=L'assistant ne peut pas installer sur un chemin UNC.
InvalidPath=Vous devez saisir un chemin complet avec sa lettre de lecteur ; par exemple :%n%nC:\APP%n%nou un chemin réseau de la forme :%n%n\\serveur\partage
InvalidDrive=L'unité ou l'emplacement réseau que vous avez sélectionné n'existe pas ou n'est pas accessible. Veuillez choisir une autre destination.
DiskSpaceWarningTitle=Espace disponible insuffisant
DiskSpaceWarning=L'assistant a besoin d'au moins %1 Ko d'espace disponible pour effectuer l'installation, mais l'unité que vous avez sélectionnée ne dispose que de %2 Ko d'espace disponible.%n%nSouhaitez-vous continuer malgré tout ?
DirNameTooLong=Le nom ou le chemin du dossier est trop long.
InvalidDirName=Le nom du dossier est invalide.
BadDirName32=Le nom du dossier ne doit contenir aucun des caractères suivants :%n%n%1
DirExistsTitle=Dossier existant
DirExists=Le dossier :%n%n%1%n%nexiste déjà. Souhaitez-vous installer dans ce dossier malgré tout ?
DirDoesntExistTitle=Le dossier n'existe pas
DirDoesntExist=Le dossier %n%n%1%n%nn'existe pas. Souhaitez-vous que ce dossier soit créé ?
; *** "Select Components" wizard page
WizardSelectComponents=Composants à installer
SelectComponentsDesc=Quels composants de l'application souhaitez-vous installer ?
SelectComponentsLabel2=Sélectionnez les composants que vous désirez installer ; décochez les composants que vous ne désirez pas installer. Cliquez ensuite sur Suivant pour continuer l'installation.
FullInstallation=Installation complète
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Installation compacte
CustomInstallation=Installation personnalisée
NoUninstallWarningTitle=Composants existants
NoUninstallWarning=L'assistant d'installation a détecté que les composants suivants sont déjà installés sur votre système :%n%n%1%n%nDésélectionner ces composants ne les désinstallera pas pour autant.%n%nVoulez-vous continuer malgré tout ?
ComponentSize1=%1 Ko
ComponentSize2=%1 Mo
ComponentsDiskSpaceGBLabel=Les composants sélectionnés nécessitent au moins [gb] Go d'espace disponible.
ComponentsDiskSpaceMBLabel=Les composants sélectionnés nécessitent au moins [mb] Mo d'espace disponible.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Tâches supplémentaires
SelectTasksDesc=Quelles sont les tâches supplémentaires qui doivent être effectuées ?
SelectTasksLabel2=Sélectionnez les tâches supplémentaires que l'assistant d'installation doit effectuer pendant l'installation de [name], puis cliquez sur Suivant.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Sélection du dossier du menu Démarrer
SelectStartMenuFolderDesc=Où l'assistant d'installation doit-il placer les raccourcis du programme ?
SelectStartMenuFolderLabel3=L'assistant va créer les raccourcis du programme dans le dossier du menu Démarrer indiqué ci-dessous.
SelectStartMenuFolderBrowseLabel=Cliquez sur Suivant pour continuer. Cliquez sur Parcourir si vous souhaitez sélectionner un autre dossier du menu Démarrer.
MustEnterGroupName=Vous devez saisir un nom de dossier du menu Démarrer.
GroupNameTooLong=Le nom ou le chemin du dossier est trop long.
InvalidGroupName=Le nom du dossier n'est pas valide.
BadGroupName=Le nom du dossier ne doit contenir aucun des caractères suivants :%n%n%1
NoProgramGroupCheck2=Ne pas créer de &dossier dans le menu Démarrer
; *** "Ready to Install" wizard page
WizardReady=Prêt à installer
ReadyLabel1=L'assistant dispose à présent de toutes les informations pour installer [name] sur votre ordinateur.
ReadyLabel2a=Cliquez sur Installer pour procéder à l'installation ou sur Précédent pour revoir ou modifier une option d'installation.
ReadyLabel2b=Cliquez sur Installer pour procéder à l'installation.
ReadyMemoUserInfo=Informations sur l'utilisateur :
ReadyMemoDir=Dossier de destination :
ReadyMemoType=Type d'installation :
ReadyMemoComponents=Composants sélectionnés :
ReadyMemoGroup=Dossier du menu Démarrer :
ReadyMemoTasks=Tâches supplémentaires :
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Téléchargement de fichiers supplémentaires...
ButtonStopDownload=&Arrêter le téléchargement
StopDownload=Êtes-vous sûr de vouloir arrêter le téléchargement ?
ErrorDownloadAborted=Téléchargement annulé
ErrorDownloadFailed=Le téléchargement a échoué : %1 %2
ErrorDownloadSizeFailed=La récupération de la taille du fichier a échouée : %1 %2
ErrorFileHash1=Le calcul de l'empreinte du fichier a échoué : %1
ErrorFileHash2=Empreinte du fichier invalide : attendue %1, trouvée %2
ErrorProgress=Progression invalide : %1 sur %2
ErrorFileSize=Taille du fichier invalide : attendue %1, trouvée %2
; *** "Preparing to Install" wizard page
WizardPreparing=Préparation de l'installation
PreparingDesc=L'assistant d'installation prépare l'installation de [name] sur votre ordinateur.
PreviousInstallNotCompleted=L'installation ou la suppression d'un programme précédent n'est pas totalement achevée. Veuillez redémarrer votre ordinateur pour achever cette installation ou suppression.%n%nUne fois votre ordinateur redémarré, veuillez relancer cet assistant pour reprendre l'installation de [name].
CannotContinue=L'assistant ne peut pas continuer. Veuillez cliquer sur Annuler pour abandonner l'installation.
ApplicationsFound=Les applications suivantes utilisent des fichiers qui doivent être mis à jour par l'assistant. Il est recommandé d'autoriser l'assistant à fermer ces applications automatiquement.
ApplicationsFound2=Les applications suivantes utilisent des fichiers qui doivent être mis à jour par l'assistant. Il est recommandé d'autoriser l'assistant à fermer ces applications automatiquement. Une fois l'installation terminée, l'assistant essaiera de relancer ces applications.
CloseApplications=&Arrêter les applications automatiquement
DontCloseApplications=&Ne pas arrêter les applications
ErrorCloseApplications=L'assistant d'installation n'a pas pu arrêter toutes les applications automatiquement. Nous vous recommandons de fermer toutes les applications qui utilisent des fichiers devant être mis à jour par l'assistant d'installation avant de continuer.
PrepareToInstallNeedsRestart=L'assistant d'installation doit redémarrer votre ordinateur. Une fois votre ordinateur redémarré, veuillez relancer cet assistant d'installation pour terminer l'installation de [name].%n%nVoulez-vous redémarrer votre ordinateur maintenant ?
; *** "Installing" wizard page
WizardInstalling=Installation en cours
InstallingLabel=Veuillez patienter pendant que l'assistant installe [name] sur votre ordinateur.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Fin de l'installation de [name]
FinishedLabelNoIcons=L'assistant a terminé l'installation de [name] sur votre ordinateur.
FinishedLabel=L'assistant a terminé l'installation de [name] sur votre ordinateur. L'application peut être lancée à l'aide des icônes créées sur le Bureau par l'installation.
ClickFinish=Veuillez cliquer sur Terminer pour quitter l'assistant d'installation.
FinishedRestartLabel=L'assistant doit redémarrer votre ordinateur pour terminer l'installation de [name].%n%nVoulez-vous redémarrer maintenant ?
FinishedRestartMessage=L'assistant doit redémarrer votre ordinateur pour terminer l'installation de [name].%n%nVoulez-vous redémarrer maintenant ?
ShowReadmeCheck=Oui, je souhaite lire le fichier LISEZMOI
YesRadio=&Oui, redémarrer mon ordinateur maintenant
NoRadio=&Non, je préfère redémarrer mon ordinateur plus tard
; used for example as 'Run MyProg.exe'
RunEntryExec=Exécuter %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Voir %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=L'assistant a besoin du disque suivant
SelectDiskLabel2=Veuillez insérer le disque %1 et cliquer sur OK.%n%nSi les fichiers de ce disque se trouvent à un emplacement différent de celui indiqué ci-dessous, veuillez saisir le chemin correspondant ou cliquez sur Parcourir.
PathLabel=&Chemin :
FileNotInDir2=Le fichier "%1" ne peut pas être trouvé dans "%2". Veuillez insérer le bon disque ou sélectionner un autre dossier.
SelectDirectoryLabel=Veuillez indiquer l'emplacement du disque suivant.
; *** Installation phase messages
SetupAborted=L'installation n'est pas terminée.%n%nVeuillez corriger le problème et relancer l'installation.
AbortRetryIgnoreSelectAction=Choisissez une action
AbortRetryIgnoreRetry=&Recommencer
AbortRetryIgnoreIgnore=&Ignorer l'erreur et continuer
AbortRetryIgnoreCancel=Annuler l'installation
; *** Installation status messages
StatusClosingApplications=Ferme les applications...
StatusCreateDirs=Création des dossiers...
StatusExtractFiles=Extraction des fichiers...
StatusCreateIcons=Création des raccourcis...
StatusCreateIniEntries=Création des entrées du fichier INI...
StatusCreateRegistryEntries=Création des entrées de registre...
StatusRegisterFiles=Enregistrement des fichiers...
StatusSavingUninstall=Sauvegarde des informations de désinstallation...
StatusRunProgram=Finalisation de l'installation...
StatusRestartingApplications=Relance les applications...
StatusRollback=Annulation des modifications...
; *** Misc. errors
ErrorInternal2=Erreur interne : %1
ErrorFunctionFailedNoCode=%1 a échoué
ErrorFunctionFailed=%1 a échoué ; code %2
ErrorFunctionFailedWithMessage=%1 a échoué ; code %2.%n%3
ErrorExecutingProgram=Impossible d'exécuter le fichier :%n%1
; *** Registry errors
ErrorRegOpenKey=Erreur lors de l'ouverture de la clé de registre :%n%1\%2
ErrorRegCreateKey=Erreur lors de la création de la clé de registre :%n%1\%2
ErrorRegWriteKey=Erreur lors de l'écriture de la clé de registre :%n%1\%2
; *** INI errors
ErrorIniEntry=Erreur d'écriture d'une entrée dans le fichier INI "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Ignorer ce fichier (non recommandé)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorer l'erreur et continuer (non recommandé)
SourceIsCorrupted=Le fichier source est altéré
SourceDoesntExist=Le fichier source "%1" n'existe pas
ExistingFileReadOnly2=Le fichier existant ne peut pas être remplacé parce qu'il est protégé par l'attribut lecture seule.
ExistingFileReadOnlyRetry=&Supprimer l'attribut lecture seule et réessayer
ExistingFileReadOnlyKeepExisting=&Conserver le fichier existant
ErrorReadingExistingDest=Une erreur s'est produite lors de la tentative de lecture du fichier existant :
FileExistsSelectAction=Choisissez une action
FileExists2=Le fichier existe déjà.
FileExistsOverwriteExisting=&Ecraser le fichier existant
FileExistsKeepExisting=&Conserver le fichier existant
FileExistsOverwriteOrKeepAll=&Faire ceci pour les conflits à venir
ExistingFileNewerSelectAction=Choisissez une action
ExistingFileNewer2=Le fichier existant est plus récent que celui que l'assistant d'installation est en train d'installer.
ExistingFileNewerOverwriteExisting=&Ecraser le fichier existant
ExistingFileNewerKeepExisting=&Conserver le fichier existant (recommandé)
ExistingFileNewerOverwriteOrKeepAll=&Faire ceci pour les conflits à venir
ErrorChangingAttr=Une erreur est survenue en essayant de modifier les attributs du fichier existant :
ErrorCreatingTemp=Une erreur est survenue en essayant de créer un fichier dans le dossier de destination :
ErrorReadingSource=Une erreur est survenue lors de la lecture du fichier source :
ErrorCopying=Une erreur est survenue lors de la copie d'un fichier :
ErrorReplacingExistingFile=Une erreur est survenue lors du remplacement d'un fichier existant :
ErrorRestartReplace=Le marquage d'un fichier pour remplacement au redémarrage de l'ordinateur a échoué :
ErrorRenamingTemp=Une erreur est survenue en essayant de renommer un fichier dans le dossier de destination :
ErrorRegisterServer=Impossible d'enregistrer la bibliothèque DLL/OCX : %1
ErrorRegSvr32Failed=RegSvr32 a échoué et a retourné le code d'erreur %1
ErrorRegisterTypeLib=Impossible d'enregistrer la bibliothèque de type : %1
; *** Nom d'affichage pour la désinstallaton
; par exemple 'Mon Programme (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; ou par exemple 'Mon Programme (32-bit, Tous les utilisateurs)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=Tous les utilisateurs
UninstallDisplayNameMarkCurrentUser=Utilisateur courant
; *** Post-installation errors
ErrorOpeningReadme=Une erreur est survenue à l'ouverture du fichier LISEZMOI.
ErrorRestartingComputer=L'installation n'a pas pu redémarrer l'ordinateur. Merci de bien vouloir le faire vous-même.
; *** Uninstaller messages
UninstallNotFound=Le fichier "%1" n'existe pas. Impossible de désinstaller.
UninstallOpenError=Le fichier "%1" n'a pas pu être ouvert. Impossible de désinstaller
UninstallUnsupportedVer=Le format du fichier journal de désinstallation "%1" n'est pas reconnu par cette version de la procédure de désinstallation. Impossible de désinstaller
UninstallUnknownEntry=Une entrée inconnue (%1) a été rencontrée dans le fichier journal de désinstallation
ConfirmUninstall=Êtes-vous sûr de vouloir exécuter l'assistant de désinstallation %1 ?
UninstallOnlyOnWin64=La désinstallation de ce programme ne fonctionne qu'avec une version 64 bits de Windows.
OnlyAdminCanUninstall=Ce programme ne peut être désinstallé que par un utilisateur disposant des droits d'administration.
UninstallStatusLabel=Veuillez patienter pendant que %1 est retiré de votre ordinateur.
UninstalledAll=%1 a été correctement désinstallé de cet ordinateur.
UninstalledMost=La désinstallation de %1 est terminée.%n%nCertains éléments n'ont pas pu être supprimés automatiquement. Vous pouvez les supprimer manuellement.
UninstalledAndNeedsRestart=Vous devez redémarrer l'ordinateur pour terminer la désinstallation de %1.%n%nVoulez-vous redémarrer maintenant ?
UninstallDataCorrupted=Le ficher "%1" est altéré. Impossible de désinstaller
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Supprimer les fichiers partagés ?
ConfirmDeleteSharedFile2=Le système indique que le fichier partagé suivant n'est plus utilisé par aucun programme. Souhaitez-vous que la désinstallation supprime ce fichier partagé ?%n%nSi des programmes utilisent encore ce fichier et qu'il est supprimé, ces programmes ne pourront plus fonctionner correctement. Si vous n'êtes pas sûr, choisissez Non. Laisser ce fichier dans votre système ne posera pas de problème.
SharedFileNameLabel=Nom du fichier :
SharedFileLocationLabel=Emplacement :
WizardUninstalling=État de la désinstallation
StatusUninstalling=Désinstallation de %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Installe %1.
ShutdownBlockReasonUninstallingApp=Désinstalle %1.
; Les messages personnalisés suivants ne sont pas utilisé par l'installation
; elle-même, mais si vous les utilisez dans vos scripts, vous devez les
; traduire
[CustomMessages]
NameAndVersion=%1 version %2
AdditionalIcons=Icônes supplémentaires :
CreateDesktopIcon=Créer une icône sur le &Bureau
CreateQuickLaunchIcon=Créer une icône dans la barre de &Lancement rapide
ProgramOnTheWeb=Page d'accueil de %1
UninstallProgram=Désinstaller %1
LaunchProgram=Exécuter %1
AssocFileExtension=&Associer %1 avec l'extension de fichier %2
AssocingFileExtension=Associe %1 avec l'extension de fichier %2...
AutoStartProgramGroupDescription=Démarrage :
AutoStartProgram=Démarrer automatiquement %1
AddonHostProgramNotFound=%1 n'a pas été trouvé dans le dossier que vous avez choisi.%n%nVoulez-vous continuer malgré tout ?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Choisissez le mode d'installation
SelectSetupInstallModeDesc=VCMI peut être installé pour tous les utilisateurs ou seulement pour vous.
SelectSetupInstallModeSubTitle=Saisissez votre mode d'installation préféré :
InstallForAllUsers=Installer pour tous les utilisateurs
InstallForAllUsers1=Nécessite des privilèges administratifs
InstallForMeOnly=Installer uniquement pour moi
InstallForMeOnly1=Un message du pare-feu apparaîtra lors du premier lancement du jeu
InstallForMeOnly2=Les jeux en réseau local ne fonctionneront pas si la règle du pare-feu ne peut pas être autorisée
SystemIntegration=Intégration système
CreateDesktopShortcuts=Créer des raccourcis sur le bureau
CreateStartMenuShortcuts=Créer des raccourcis dans le menu Démarrer
AssociateH3MFiles=Associer les fichiers .h3m avec l'éditeur de cartes VCMI
AssociateVCMIMapFiles=Associer les fichiers .vmap et .vcmp avec l'éditeur de cartes VCMI
VCMISettings=Configuration de VCMI
AddFirewallRules=Ajouter des règles de pare-feu pour VCMI
CopyH3Files=Copier automatiquement les fichiers nécessaires de Heroes III vers VCMI
RunVCMILauncherAfterInstall=Lancer le lanceur VCMI
ShortcutMapEditor=Éditeur de cartes VCMI
ShortcutLauncher=Lanceur VCMI
ShortcutWebPage=Site officiel de VCMI
ShortcutDiscord=Discord officiel de VCMI
ShortcutLauncherComment=Lancer le lanceur VCMI
ShortcutMapEditorComment=Ouvrir l'éditeur de cartes VCMI
ShortcutWebPageComment=Visiter le site officiel de VCMI
ShortcutDiscordComment=Visiter le Discord officiel de VCMI
DeleteUserData=Supprimer les données utilisateur
Uninstall=Désinstaller
Warning=Avertissement
VMAPDescription=Fichier de carte VCMI
VCMPDescription=Fichier de campagne VCMI
H3MDescription=Fichier de carte Heroes 3

View File

@ -0,0 +1,438 @@
; ******************************************************
; *** ***
; *** Inno Setup version 6.1.0+ German messages ***
; *** ***
; *** Changes 6.0.0+ Author: ***
; *** ***
; *** Jens Brand (jens.brand@wolf-software.de) ***
; *** ***
; *** Original Authors: ***
; *** ***
; *** Peter Stadler (Peter.Stadler@univie.ac.at) ***
; *** Michael Reitz (innosetup@assimilate.de) ***
; *** ***
; *** Contributors: ***
; *** ***
; *** Roland Ruder (info@rr4u.de) ***
; *** Hans Sperber (Hans.Sperber@de.bosch.com) ***
; *** LaughingMan (puma.d@web.de) ***
; *** ***
; ******************************************************
;
; Diese Übersetzung hält sich an die neue deutsche Rechtschreibung.
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Deutsch
LanguageID=$0407
LanguageCodePage=1252
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Setup
SetupWindowTitle=Setup - %1
UninstallAppTitle=Entfernen
UninstallAppFullTitle=%1 entfernen
; *** Misc. common
InformationTitle=Information
ConfirmTitle=Bestätigen
ErrorTitle=Fehler
; *** SetupLdr messages
SetupLdrStartupMessage=%1 wird jetzt installiert. Möchten Sie fortfahren?
LdrCannotCreateTemp=Es konnte keine temporäre Datei erstellt werden. Das Setup wurde abgebrochen
LdrCannotExecTemp=Die Datei konnte nicht im temporären Ordner ausgeführt werden. Das Setup wurde abgebrochen
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nFehler %2: %3
SetupFileMissing=Die Datei %1 fehlt im Installationsordner. Bitte beheben Sie das Problem oder besorgen Sie sich eine neue Kopie des Programms.
SetupFileCorrupt=Die Setup-Dateien sind beschädigt. Besorgen Sie sich bitte eine neue Kopie des Programms.
SetupFileCorruptOrWrongVer=Die Setup-Dateien sind beschädigt oder inkompatibel zu dieser Version des Setups. Bitte beheben Sie das Problem oder besorgen Sie sich eine neue Kopie des Programms.
InvalidParameter=Ein ungültiger Parameter wurde auf der Kommandozeile übergeben:%n%n%1
SetupAlreadyRunning=Setup läuft bereits.
WindowsVersionNotSupported=Dieses Programm kann auf Ihrer Windows-Version nicht ausgeführt werden. Stellen Sie sicher, dass Sie die richtige Windows-Architektur (32-Bit oder 64-Bit) und die entsprechende Version dieses Programms verwenden.
WindowsServicePackRequired=Dieses Programm benötigt %1 Service Pack %2 oder höher.
NotOnThisPlatform=Dieses Programm kann nicht unter %1 ausgeführt werden.
OnlyOnThisPlatform=Dieses Programm muss unter %1 ausgeführt werden.
OnlyOnTheseArchitectures=Dieses Programm kann nur auf Windows-Versionen installiert werden, die folgende Prozessor-Architekturen unterstützen:%n%n%1
WinVersionTooLowError=Dieses Programm benötigt %1 Version %2 oder höher.
WinVersionTooHighError=Dieses Programm kann nicht unter %1 Version %2 oder höher installiert werden.
AdminPrivilegesRequired=Sie müssen als Administrator angemeldet sein, um dieses Programm installieren zu können.
PowerUserPrivilegesRequired=Sie müssen als Administrator oder als Mitglied der Hauptbenutzer-Gruppe angemeldet sein, um dieses Programm installieren zu können.
SetupAppRunningError=Das Setup hat entdeckt, dass %1 zurzeit ausgeführt wird.%n%nBitte schließen Sie jetzt alle laufenden Instanzen und klicken Sie auf "OK", um fortzufahren, oder auf "Abbrechen", um zu beenden.
UninstallAppRunningError=Die Deinstallation hat entdeckt, dass %1 zurzeit ausgeführt wird.%n%nBitte schließen Sie jetzt alle laufenden Instanzen und klicken Sie auf "OK", um fortzufahren, oder auf "Abbrechen", um zu beenden.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Installationsmodus auswählen
PrivilegesRequiredOverrideInstruction=Bitte wählen Sie den Installationsmodus
PrivilegesRequiredOverrideText1=%1 kann für alle Benutzer (erfordert Administrationsrechte) oder nur für Sie installiert werden.
PrivilegesRequiredOverrideText2=%1 kann nur für Sie oder für alle Benutzer (erfordert Administrationsrechte) installiert werden.
PrivilegesRequiredOverrideAllUsers=Installation für &alle Benutzer
PrivilegesRequiredOverrideAllUsersRecommended=Installation für &alle Benutzer (empfohlen)
PrivilegesRequiredOverrideCurrentUser=Installation nur für &Sie
PrivilegesRequiredOverrideCurrentUserRecommended=Installation nur für &Sie (empfohlen)
; *** Misc. errors
ErrorCreatingDir=Das Setup konnte den Ordner "%1" nicht erstellen.
ErrorTooManyFilesInDir=Das Setup konnte eine Datei im Ordner "%1" nicht erstellen, weil er zu viele Dateien enthält.
; *** Setup common messages
ExitSetupTitle=Setup verlassen
ExitSetupMessage=Das Setup ist noch nicht abgeschlossen. Wenn Sie jetzt beenden, wird das Programm nicht installiert.%n%nSie können das Setup zu einem späteren Zeitpunkt nochmals ausführen, um die Installation zu vervollständigen.%n%nSetup verlassen?
AboutSetupMenuItem=&Über das Setup ...
AboutSetupTitle=Über das Setup
AboutSetupMessage=%1 Version %2%n%3%n%n%1 Webseite:%n%4
AboutSetupNote=
TranslatorNote=German translation maintained by Jens Brand (jens.brand@wolf-software.de)
; *** Buttons
ButtonBack=< &Zurück
ButtonNext=&Weiter >
ButtonInstall=&Installieren
ButtonOK=OK
ButtonCancel=Abbrechen
ButtonYes=&Ja
ButtonYesToAll=J&a für Alle
ButtonNo=&Nein
ButtonNoToAll=N&ein für Alle
ButtonFinish=&Fertigstellen
ButtonBrowse=&Durchsuchen ...
ButtonWizardBrowse=Du&rchsuchen ...
ButtonNewFolder=&Neuen Ordner erstellen
; *** "Select Language" dialog messages
SelectLanguageTitle=Setup-Sprache auswählen
SelectLanguageLabel=Wählen Sie die Sprache aus, die während der Installation benutzt werden soll:
; *** Common wizard text
ClickNext="Weiter" zum Fortfahren, "Abbrechen" zum Verlassen.
BeveledLabel=
BrowseDialogTitle=Ordner suchen
BrowseDialogLabel=Wählen Sie einen Ordner aus und klicken Sie danach auf "OK".
NewFolderName=Neuer Ordner
; *** "Welcome" wizard page
WelcomeLabel1=Willkommen zum [name] Setup-Assistenten
WelcomeLabel2=Dieser Assistent wird jetzt [name/ver] auf Ihrem Computer installieren.%n%nSie sollten alle anderen Anwendungen beenden, bevor Sie mit dem Setup fortfahren.
; *** "Password" wizard page
WizardPassword=Passwort
PasswordLabel1=Diese Installation wird durch ein Passwort geschützt.
PasswordLabel3=Bitte geben Sie das Passwort ein und klicken Sie danach auf "Weiter". Achten Sie auf korrekte Groß-/Kleinschreibung.
PasswordEditLabel=&Passwort:
IncorrectPassword=Das eingegebene Passwort ist nicht korrekt. Bitte versuchen Sie es noch einmal.
; *** "License Agreement" wizard page
WizardLicense=Lizenzvereinbarung
LicenseLabel=Lesen Sie bitte folgende wichtige Informationen, bevor Sie fortfahren.
LicenseLabel3=Lesen Sie bitte die folgenden Lizenzvereinbarungen. Benutzen Sie bei Bedarf die Bildlaufleiste oder drücken Sie die "Bild Ab"-Taste.
LicenseAccepted=Ich &akzeptiere die Vereinbarung
LicenseNotAccepted=Ich &lehne die Vereinbarung ab
; *** "Information" wizard pages
WizardInfoBefore=Information
InfoBeforeLabel=Lesen Sie bitte folgende wichtige Informationen, bevor Sie fortfahren.
InfoBeforeClickLabel=Klicken Sie auf "Weiter", sobald Sie bereit sind, mit dem Setup fortzufahren.
WizardInfoAfter=Information
InfoAfterLabel=Lesen Sie bitte folgende wichtige Informationen, bevor Sie fortfahren.
InfoAfterClickLabel=Klicken Sie auf "Weiter", sobald Sie bereit sind, mit dem Setup fortzufahren.
; *** "User Information" wizard page
WizardUserInfo=Benutzerinformationen
UserInfoDesc=Bitte tragen Sie Ihre Daten ein.
UserInfoName=&Name:
UserInfoOrg=&Organisation:
UserInfoSerial=&Seriennummer:
UserInfoNameRequired=Sie müssen einen Namen eintragen.
; *** "Select Destination Location" wizard page
WizardSelectDir=Ziel-Ordner wählen
SelectDirDesc=Wohin soll [name] installiert werden?
SelectDirLabel3=Das Setup wird [name] in den folgenden Ordner installieren.
SelectDirBrowseLabel=Klicken Sie auf "Weiter", um fortzufahren. Klicken Sie auf "Durchsuchen", falls Sie einen anderen Ordner auswählen möchten.
DiskSpaceGBLabel=Mindestens [gb] GB freier Speicherplatz ist erforderlich.
DiskSpaceMBLabel=Mindestens [mb] MB freier Speicherplatz ist erforderlich.
CannotInstallToNetworkDrive=Das Setup kann nicht in einen Netzwerk-Pfad installieren.
CannotInstallToUNCPath=Das Setup kann nicht in einen UNC-Pfad installieren. Wenn Sie auf ein Netzlaufwerk installieren möchten, müssen Sie dem Netzwerkpfad einen Laufwerksbuchstaben zuordnen.
InvalidPath=Sie müssen einen vollständigen Pfad mit einem Laufwerksbuchstaben angeben, z. B.:%n%nC:\Beispiel%n%noder einen UNC-Pfad in der Form:%n%n\\Server\Freigabe
InvalidDrive=Das angegebene Laufwerk bzw. der UNC-Pfad existiert nicht oder es kann nicht darauf zugegriffen werden. Wählen Sie bitte einen anderen Ordner.
DiskSpaceWarningTitle=Nicht genug freier Speicherplatz
DiskSpaceWarning=Das Setup benötigt mindestens %1 KB freien Speicherplatz zum Installieren, aber auf dem ausgewählten Laufwerk sind nur %2 KB verfügbar.%n%nMöchten Sie trotzdem fortfahren?
DirNameTooLong=Der Ordnername/Pfad ist zu lang.
InvalidDirName=Der Ordnername ist nicht gültig.
BadDirName32=Ordnernamen dürfen keine der folgenden Zeichen enthalten:%n%n%1
DirExistsTitle=Ordner existiert bereits
DirExists=Der Ordner:%n%n%1%n%n existiert bereits. Möchten Sie trotzdem in diesen Ordner installieren?
DirDoesntExistTitle=Ordner ist nicht vorhanden
DirDoesntExist=Der Ordner:%n%n%1%n%nist nicht vorhanden. Soll der Ordner erstellt werden?
; *** "Select Components" wizard page
WizardSelectComponents=Komponenten auswählen
SelectComponentsDesc=Welche Komponenten sollen installiert werden?
SelectComponentsLabel2=Wählen Sie die Komponenten aus, die Sie installieren möchten. Klicken Sie auf "Weiter", wenn Sie bereit sind, fortzufahren.
FullInstallation=Vollständige Installation
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Kompakte Installation
CustomInstallation=Benutzerdefinierte Installation
NoUninstallWarningTitle=Komponenten vorhanden
NoUninstallWarning=Das Setup hat festgestellt, dass die folgenden Komponenten bereits auf Ihrem Computer installiert sind:%n%n%1%n%nDiese nicht mehr ausgewählten Komponenten werden nicht vom Computer entfernt.%n%nMöchten Sie trotzdem fortfahren?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Die aktuelle Auswahl erfordert mindestens [gb] GB Speicherplatz.
ComponentsDiskSpaceMBLabel=Die aktuelle Auswahl erfordert mindestens [mb] MB Speicherplatz.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Zusätzliche Aufgaben auswählen
SelectTasksDesc=Welche zusätzlichen Aufgaben sollen ausgeführt werden?
SelectTasksLabel2=Wählen Sie die zusätzlichen Aufgaben aus, die das Setup während der Installation von [name] ausführen soll, und klicken Sie danach auf "Weiter".
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Startmenü-Ordner auswählen
SelectStartMenuFolderDesc=Wo soll das Setup die Programm-Verknüpfungen erstellen?
SelectStartMenuFolderLabel3=Das Setup wird die Programm-Verknüpfungen im folgenden Startmenü-Ordner erstellen.
SelectStartMenuFolderBrowseLabel=Klicken Sie auf "Weiter", um fortzufahren. Klicken Sie auf "Durchsuchen", falls Sie einen anderen Ordner auswählen möchten.
MustEnterGroupName=Sie müssen einen Ordnernamen eingeben.
GroupNameTooLong=Der Ordnername/Pfad ist zu lang.
InvalidGroupName=Der Ordnername ist nicht gültig.
BadGroupName=Der Ordnername darf keine der folgenden Zeichen enthalten:%n%n%1
NoProgramGroupCheck2=&Keinen Ordner im Startmenü erstellen
; *** "Ready to Install" wizard page
WizardReady=Bereit zur Installation.
ReadyLabel1=Das Setup ist jetzt bereit, [name] auf Ihrem Computer zu installieren.
ReadyLabel2a=Klicken Sie auf "Installieren", um mit der Installation zu beginnen, oder auf "Zurück", um Ihre Einstellungen zu überprüfen oder zu ändern.
ReadyLabel2b=Klicken Sie auf "Installieren", um mit der Installation zu beginnen.
ReadyMemoUserInfo=Benutzerinformationen:
ReadyMemoDir=Ziel-Ordner:
ReadyMemoType=Setup-Typ:
ReadyMemoComponents=Ausgewählte Komponenten:
ReadyMemoGroup=Startmenü-Ordner:
ReadyMemoTasks=Zusätzliche Aufgaben:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Lade zusätzliche Dateien herunter...
ButtonStopDownload=Download &abbrechen
StopDownload=Sind Sie sicher, dass Sie den Download abbrechen wollen?
ErrorDownloadAborted=Download abgebrochen
ErrorDownloadFailed=Download fehlgeschlagen: %1 %2
ErrorDownloadSizeFailed=Fehler beim Ermitteln der Größe: %1 %2
ErrorFileHash1=Fehler beim Ermitteln der Datei-Prüfsumme: %1
ErrorFileHash2=Ungültige Datei-Prüfsumme: erwartet %1, gefunden %2
ErrorProgress=Ungültiger Fortschritt: %1 von %2
ErrorFileSize=Ungültige Dateigröße: erwartet %1, gefunden %2
; *** "Preparing to Install" wizard page
WizardPreparing=Vorbereitung der Installation
PreparingDesc=Das Setup bereitet die Installation von [name] auf diesem Computer vor.
PreviousInstallNotCompleted=Eine vorherige Installation/Deinstallation eines Programms wurde nicht abgeschlossen. Der Computer muss neu gestartet werden, um die Installation/Deinstallation zu beenden.%n%nStarten Sie das Setup nach dem Neustart Ihres Computers erneut, um die Installation von [name] durchzuführen.
CannotContinue=Das Setup kann nicht fortfahren. Bitte klicken Sie auf "Abbrechen" zum Verlassen.
ApplicationsFound=Die folgenden Anwendungen benutzen Dateien, die aktualisiert werden müssen. Es wird empfohlen, Setup zu erlauben, diese Anwendungen zu schließen.
ApplicationsFound2=Die folgenden Anwendungen benutzen Dateien, die aktualisiert werden müssen. Es wird empfohlen, Setup zu erlauben, diese Anwendungen zu schließen. Nachdem die Installation fertiggestellt wurde, versucht Setup, diese Anwendungen wieder zu starten.
CloseApplications=&Schließe die Anwendungen automatisch
DontCloseApplications=Schließe die A&nwendungen nicht
ErrorCloseApplications=Das Setup konnte nicht alle Anwendungen automatisch schließen. Es wird empfohlen, alle Anwendungen zu schließen, die Dateien benutzen, die vom Setup vor einer Fortsetzung aktualisiert werden müssen.
PrepareToInstallNeedsRestart=Das Setup muss Ihren Computer neu starten. Führen Sie nach dem Neustart Setup erneut aus, um die Installation von [name] abzuschließen.%n%nWollen Sie jetzt neu starten?
; *** "Installing" wizard page
WizardInstalling=Installiere ...
InstallingLabel=Warten Sie bitte, während [name] auf Ihrem Computer installiert wird.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Beenden des [name] Setup-Assistenten
FinishedLabelNoIcons=Das Setup hat die Installation von [name] auf Ihrem Computer abgeschlossen.
FinishedLabel=Das Setup hat die Installation von [name] auf Ihrem Computer abgeschlossen. Die Anwendung kann über die installierten Programm-Verknüpfungen gestartet werden.
ClickFinish=Klicken Sie auf "Fertigstellen", um das Setup zu beenden.
FinishedRestartLabel=Um die Installation von [name] abzuschließen, muss das Setup Ihren Computer neu starten. Möchten Sie jetzt neu starten?
FinishedRestartMessage=Um die Installation von [name] abzuschließen, muss das Setup Ihren Computer neu starten.%n%nMöchten Sie jetzt neu starten?
ShowReadmeCheck=Ja, ich möchte die LIESMICH-Datei sehen
YesRadio=&Ja, Computer jetzt neu starten
NoRadio=&Nein, ich werde den Computer später neu starten
; used for example as 'Run MyProg.exe'
RunEntryExec=%1 starten
; used for example as 'View Readme.txt'
RunEntryShellExec=%1 anzeigen
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Nächsten Datenträger einlegen
SelectDiskLabel2=Legen Sie bitte Datenträger %1 ein und klicken Sie auf "OK".%n%nWenn sich die Dateien von diesem Datenträger in einem anderen als dem angezeigten Ordner befinden, dann geben Sie bitte den korrekten Pfad ein oder klicken auf "Durchsuchen".
PathLabel=&Pfad:
FileNotInDir2=Die Datei "%1" befindet sich nicht in "%2". Bitte Ordner ändern oder richtigen Datenträger einlegen.
SelectDirectoryLabel=Geben Sie bitte an, wo der nächste Datenträger eingelegt wird.
; *** Installation phase messages
SetupAborted=Das Setup konnte nicht abgeschlossen werden.%n%nBeheben Sie bitte das Problem und starten Sie das Setup erneut.
AbortRetryIgnoreSelectAction=Bitte auswählen
AbortRetryIgnoreRetry=&Nochmals versuchen
AbortRetryIgnoreIgnore=&Den Fehler ignorieren und fortfahren
AbortRetryIgnoreCancel=Installation abbrechen
; *** Installation status messages
StatusClosingApplications=Anwendungen werden geschlossen ...
StatusCreateDirs=Ordner werden erstellt ...
StatusExtractFiles=Dateien werden entpackt ...
StatusCreateIcons=Verknüpfungen werden erstellt ...
StatusCreateIniEntries=INI-Einträge werden erstellt ...
StatusCreateRegistryEntries=Registry-Einträge werden erstellt ...
StatusRegisterFiles=Dateien werden registriert ...
StatusSavingUninstall=Deinstallationsinformationen werden gespeichert ...
StatusRunProgram=Installation wird beendet ...
StatusRestartingApplications=Neustart der Anwendungen ...
StatusRollback=Änderungen werden rückgängig gemacht ...
; *** Misc. errors
ErrorInternal2=Interner Fehler: %1
ErrorFunctionFailedNoCode=%1 schlug fehl
ErrorFunctionFailed=%1 schlug fehl; Code %2
ErrorFunctionFailedWithMessage=%1 schlug fehl; Code %2.%n%3
ErrorExecutingProgram=Datei kann nicht ausgeführt werden:%n%1
; *** Registry errors
ErrorRegOpenKey=Registry-Schlüssel konnte nicht geöffnet werden:%n%1\%2
ErrorRegCreateKey=Registry-Schlüssel konnte nicht erstellt werden:%n%1\%2
ErrorRegWriteKey=Fehler beim Schreiben des Registry-Schlüssels:%n%1\%2
; *** INI errors
ErrorIniEntry=Fehler beim Erstellen eines INI-Eintrages in der Datei "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=Diese Datei &überspringen (nicht empfohlen)
FileAbortRetryIgnoreIgnoreNotRecommended=Den Fehler &ignorieren und fortfahren (nicht empfohlen)
SourceIsCorrupted=Die Quelldatei ist beschädigt
SourceDoesntExist=Die Quelldatei "%1" existiert nicht
ExistingFileReadOnly2=Die vorhandene Datei kann nicht ersetzt werden, da sie schreibgeschützt ist.
ExistingFileReadOnlyRetry=&Den Schreibschutz entfernen und noch einmal versuchen
ExistingFileReadOnlyKeepExisting=Die &vorhandene Datei behalten
ErrorReadingExistingDest=Lesefehler in Datei:
FileExistsSelectAction=Aktion auswählen
FileExists2=Die Datei ist bereits vorhanden.
FileExistsOverwriteExisting=Vorhandene Datei &überschreiben
FileExistsKeepExisting=Vorhandene Datei &behalten
FileExistsOverwriteOrKeepAll=&Dies auch für die nächsten Konflikte ausführen
ExistingFileNewerSelectAction=Aktion auswählen
ExistingFileNewer2=Die vorhandene Datei ist neuer als die Datei, die installiert werden soll.
ExistingFileNewerOverwriteExisting=Vorhandene Datei &überschreiben
ExistingFileNewerKeepExisting=Vorhandene Datei &behalten (empfohlen)
ExistingFileNewerOverwriteOrKeepAll=&Dies auch für die nächsten Konflikte ausführen
ErrorChangingAttr=Fehler beim Ändern der Datei-Attribute:
ErrorCreatingTemp=Fehler beim Erstellen einer Datei im Ziel-Ordner:
ErrorReadingSource=Fehler beim Lesen der Quelldatei:
ErrorCopying=Fehler beim Kopieren einer Datei:
ErrorReplacingExistingFile=Fehler beim Ersetzen einer vorhandenen Datei:
ErrorRestartReplace="Ersetzen nach Neustart" fehlgeschlagen:
ErrorRenamingTemp=Fehler beim Umbenennen einer Datei im Ziel-Ordner:
ErrorRegisterServer=DLL/OCX konnte nicht registriert werden: %1
ErrorRegSvr32Failed=RegSvr32-Aufruf scheiterte mit Exit-Code %1
ErrorRegisterTypeLib=Typen-Bibliothek konnte nicht registriert werden: %1
; *** Uninstall display name markings
; used for example as 'Mein Programm (32 Bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'Mein Programm (32 Bit, Alle Benutzer)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32 Bit
UninstallDisplayNameMark64Bit=64 Bit
UninstallDisplayNameMarkAllUsers=Alle Benutzer
UninstallDisplayNameMarkCurrentUser=Aktueller Benutzer
; *** Post-installation errors
ErrorOpeningReadme=Fehler beim Öffnen der LIESMICH-Datei.
ErrorRestartingComputer=Das Setup konnte den Computer nicht neu starten. Bitte führen Sie den Neustart manuell durch.
; *** Uninstaller messages
UninstallNotFound=Die Datei "%1" existiert nicht. Entfernen der Anwendung fehlgeschlagen.
UninstallOpenError=Die Datei "%1" konnte nicht geöffnet werden. Entfernen der Anwendung fehlgeschlagen.
UninstallUnsupportedVer=Das Format der Deinstallationsdatei "%1" konnte nicht erkannt werden. Entfernen der Anwendung fehlgeschlagen.
UninstallUnknownEntry=In der Deinstallationsdatei wurde ein unbekannter Eintrag (%1) gefunden.
ConfirmUninstall=Möchten Sie den %1 Deinstallationsassistenten wirklich ausführen?
UninstallOnlyOnWin64=Diese Installation kann nur unter 64-Bit-Windows-Versionen entfernt werden.
OnlyAdminCanUninstall=Diese Installation kann nur von einem Benutzer mit Administrator-Rechten entfernt werden.
UninstallStatusLabel=Warten Sie bitte, während %1 von Ihrem Computer entfernt wird.
UninstalledAll=%1 wurde erfolgreich von Ihrem Computer entfernt.
UninstalledMost=Entfernen von %1 beendet.%n%nEinige Komponenten konnten nicht entfernt werden. Diese können von Ihnen manuell gelöscht werden.
UninstalledAndNeedsRestart=Um die Deinstallation von %1 abzuschließen, muss Ihr Computer neu gestartet werden.%n%nMöchten Sie jetzt neu starten?
UninstallDataCorrupted="%1"-Datei ist beschädigt. Entfernen der Anwendung fehlgeschlagen.
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Gemeinsame Datei entfernen?
ConfirmDeleteSharedFile2=Das System zeigt an, dass die folgende gemeinsame Datei von keinem anderen Programm mehr benutzt wird. Möchten Sie diese Datei entfernen lassen?%nSollte es doch noch Programme geben, die diese Datei benutzen und sie wird entfernt, funktionieren diese Programme vielleicht nicht mehr richtig. Wenn Sie unsicher sind, wählen Sie "Nein", um die Datei im System zu belassen. Es schadet Ihrem System nicht, wenn Sie die Datei behalten.
SharedFileNameLabel=Dateiname:
SharedFileLocationLabel=Ordner:
WizardUninstalling=Entfernen (Status)
StatusUninstalling=Entferne %1 ...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Installation von %1.
ShutdownBlockReasonUninstallingApp=Deinstallation von %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 Version %2
AdditionalIcons=Zusätzliche Symbole:
CreateDesktopIcon=&Desktop-Symbol erstellen
CreateQuickLaunchIcon=Symbol in der Schnellstartleiste erstellen
ProgramOnTheWeb=%1 im Internet
UninstallProgram=%1 entfernen
LaunchProgram=%1 starten
AssocFileExtension=&Registriere %1 mit der %2-Dateierweiterung
AssocingFileExtension=%1 wird mit der %2-Dateierweiterung registriert...
AutoStartProgramGroupDescription=Beginn des Setups:
AutoStartProgram=Starte automatisch %1
AddonHostProgramNotFound=%1 konnte im ausgewählten Ordner nicht gefunden werden.%n%nMöchten Sie dennoch fortfahren?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Wählen Sie den Installationsmodus
SelectSetupInstallModeDesc=VCMI kann für alle Benutzer oder nur für Sie installiert werden.
SelectSetupInstallModeSubTitle=Wählen Sie den bevorzugten Installationsmodus:
InstallForAllUsers=Für alle Benutzer installieren
InstallForAllUsers1=Erfordert Administratorrechte
InstallForMeOnly=Nur für mich installieren
InstallForMeOnly1=Beim ersten Start des Spiels erscheint eine Firewall-Benachrichtigung
InstallForMeOnly2=LAN-Spiele funktionieren nicht, wenn die Firewall-Regel nicht zugelassen werden kann
SystemIntegration=Systemintegration
CreateDesktopShortcuts=Desktop-Verknüpfungen erstellen
CreateStartMenuShortcuts=Verknüpfungen im Startmenü erstellen
AssociateH3MFiles=.h3m-Dateien mit dem VCMI-Karteneditor verknüpfen
AssociateVCMIMapFiles=.vmap- und .vcmp-Dateien mit dem VCMI-Karteneditor verknüpfen
VCMISettings=VCMI-Konfiguration
AddFirewallRules=Firewall-Regeln für VCMI hinzufügen
CopyH3Files=Erforderliche Heroes-III-Dateien automatisch in VCMI kopieren
RunVCMILauncherAfterInstall=VCMI Launcher starten
ShortcutMapEditor=VCMI Karteneditor
ShortcutLauncher=VCMI Launcher
ShortcutWebPage=VCMI Webseite
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=VCMI Launcher starten
ShortcutMapEditorComment=VCMI Karteneditor öffnen
ShortcutWebPageComment=Offizielle VCMI-Webseite besuchen
ShortcutDiscordComment=Offiziellen VCMI Discord besuchen
DeleteUserData=Benutzerdaten löschen
Uninstall=Deinstallieren
Warning=Warnung
VMAPDescription=VCMI-Kartendatei
VCMPDescription=VCMI-Kampagnendatei
H3MDescription=Heroes-3-Kartendatei

View File

@ -0,0 +1,419 @@
; *** Inno Setup version 6.1.0+ Hungarian messages ***
; Based on the translation of Kornél Pál, kornelpal@gmail.com
; István Szabó, E-mail: istvanszabo890629@gmail.com
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Magyar
LanguageID=$040E
LanguageCodePage=1250
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial CE
;TitleFontSize=29
;CopyrightFontName=Arial CE
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Telepítő
SetupWindowTitle=%1 - Telepítő
UninstallAppTitle=Eltávolító
UninstallAppFullTitle=%1 - Eltávolító
; *** Misc. common
InformationTitle=Információk
ConfirmTitle=Megerősít
ErrorTitle=Hiba
; *** SetupLdr messages
SetupLdrStartupMessage=%1 telepítve lesz. Szeretné folytatni?
LdrCannotCreateTemp=Átmeneti fájl létrehozása nem lehetséges. A telepítés megszakítva
LdrCannotExecTemp=Fájl futattása nem lehetséges az átmeneti könyvtárban. A telepítés megszakítva
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nHiba %2: %3
SetupFileMissing=A(z) %1 fájl hiányzik a telepítő könyvtárából. Kérem hárítsa el a problémát, vagy szerezzen be egy másik példányt a programból!
SetupFileCorrupt=A telepítési fájlok sérültek. Kérem, szerezzen be új másolatot a programból!
SetupFileCorruptOrWrongVer=A telepítési fájlok sérültek, vagy inkompatibilisek a telepítő ezen verziójával. Hárítsa el a problémát, vagy szerezzen be egy másik példányt a programból!
InvalidParameter=A parancssorba átadott paraméter érvénytelen:%n%n%1
SetupAlreadyRunning=A Telepítő már fut.
WindowsVersionNotSupported=Ez a program nem futtatható az Ön Windows-verzióján. Kérjük, győződjön meg arról, hogy a megfelelő Windows-architektúrát (32 bites vagy 64 bites) és a program helyes verzióját használja.
WindowsServicePackRequired=A program futtatásához %1 Service Pack %2 vagy újabb szükséges.
NotOnThisPlatform=Ez a program nem futtatható %1 alatt.
OnlyOnThisPlatform=Ezt a programot %1 alatt kell futtatni.
OnlyOnTheseArchitectures=A program kizárólag a következő processzor architektúrákhoz tervezett Windows-on telepíthető:%n%n%1
WinVersionTooLowError=A program futtatásához %1 %2 verziója vagy későbbi szükséges.
WinVersionTooHighError=Ez a program nem telepíthető %1 %2 vagy későbbire.
AdminPrivilegesRequired=Csak rendszergazdai módban telepíthető ez a program.
PowerUserPrivilegesRequired=Csak rendszergazdaként vagy kiemelt felhasználóként telepíthető ez a program.
SetupAppRunningError=A telepítő úgy észlelte %1 jelenleg fut.%n%nZárja be az összes példányt, majd kattintson az 'OK'-ra a folytatáshoz, vagy a 'Mégse'-re a kilépéshez.
UninstallAppRunningError=Az eltávolító úgy észlelte %1 jelenleg fut.%n%nZárja be az összes példányt, majd kattintson az 'OK'-ra a folytatáshoz, vagy a 'Mégse'-re a kilépéshez.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Telepítési mód kiválasztása
PrivilegesRequiredOverrideInstruction=Válasszon telepítési módot
PrivilegesRequiredOverrideText1=%1 telepíthető az összes felhasználónak (rendszergazdai jogok szükségesek), vagy csak magának.
PrivilegesRequiredOverrideText2=%1 csak magának telepíthető, vagy az összes felhasználónak (rendszergazdai jogok szükségesek).
PrivilegesRequiredOverrideAllUsers=Telepítés &mindenkinek
PrivilegesRequiredOverrideAllUsersRecommended=Telepítés &mindenkinek (ajánlott)
PrivilegesRequiredOverrideCurrentUser=Telepítés csak &nekem
PrivilegesRequiredOverrideCurrentUserRecommended=Telepítés csak &nekem (ajánlott)
; *** Misc. errors
ErrorCreatingDir=A Telepítő nem tudta létrehozni a(z) "%1" könyvtárat
ErrorTooManyFilesInDir=Nem hozható létre fájl a(z) "%1" könyvtárban, mert az már túl sok fájlt tartalmaz
; *** Setup common messages
ExitSetupTitle=Kilépés a telepítőből
ExitSetupMessage=A telepítés még folyamatban van. Ha most kilép, a program nem kerül telepítésre.%n%nMásik alkalommal is futtatható a telepítés befejezéséhez%n%nKilép a telepítőből?
AboutSetupMenuItem=&Névjegy...
AboutSetupTitle=Telepítő névjegye
AboutSetupMessage=%1 %2 verzió%n%3%n%nAz %1 honlapja:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< &Vissza
ButtonNext=&Tovább >
ButtonInstall=&Telepít
ButtonOK=OK
ButtonCancel=Mégse
ButtonYes=&Igen
ButtonYesToAll=&Mindet
ButtonNo=&Nem
ButtonNoToAll=&Egyiket se
ButtonFinish=&Befejezés
ButtonBrowse=&Tallózás...
ButtonWizardBrowse=T&allózás...
ButtonNewFolder=Új &könyvtár
; *** "Select Language" dialog messages
SelectLanguageTitle=Telepítő nyelvi beállítás
SelectLanguageLabel=Válassza ki a telepítés alatt használt nyelvet.
; *** Common wizard text
ClickNext=A folytatáshoz kattintson a 'Tovább'-ra, a kilépéshez a 'Mégse'-re.
BeveledLabel=
BrowseDialogTitle=Válasszon könyvtárt
BrowseDialogLabel=Válasszon egy könyvtárat az alábbi listából, majd kattintson az 'OK'-ra.
NewFolderName=Új könyvtár
; *** "Welcome" wizard page
WelcomeLabel1=Üdvözli a(z) [name] Telepítővarázslója.
WelcomeLabel2=A(z) [name/ver] telepítésre kerül a számítógépén.%n%nAjánlott minden, egyéb futó alkalmazás bezárása a folytatás előtt.
; *** "Password" wizard page
WizardPassword=Jelszó
PasswordLabel1=Ez a telepítés jelszóval védett.
PasswordLabel3=Kérem adja meg a jelszót, majd kattintson a 'Tovább'-ra. A jelszavak kis- és nagy betű érzékenyek lehetnek.
PasswordEditLabel=&Jelszó:
IncorrectPassword=Az ön által megadott jelszó helytelen. Próbálja újra.
; *** "License Agreement" wizard page
WizardLicense=Licencszerződés
LicenseLabel=Olvassa el figyelmesen az információkat folytatás előtt.
LicenseLabel3=Kérem, olvassa el az alábbi licencszerződést. A telepítés folytatásához, el kell fogadnia a szerződést.
LicenseAccepted=&Elfogadom a szerződést
LicenseNotAccepted=&Nem fogadom el a szerződést
; *** "Information" wizard pages
WizardInfoBefore=Információk
InfoBeforeLabel=Olvassa el a következő fontos információkat a folytatás előtt.
InfoBeforeClickLabel=Ha készen áll, kattintson a 'Tovább'-ra.
WizardInfoAfter=Információk
InfoAfterLabel=Olvassa el a következő fontos információkat a folytatás előtt.
InfoAfterClickLabel=Ha készen áll, kattintson a 'Tovább'-ra.
; *** "User Information" wizard page
WizardUserInfo=Felhasználó adatai
UserInfoDesc=Kérem, adja meg az adatait!
UserInfoName=&Felhasználónév:
UserInfoOrg=&Szervezet:
UserInfoSerial=&Sorozatszám:
UserInfoNameRequired=Meg kell adnia egy nevet!
; *** "Select Destination Location" wizard page
WizardSelectDir=Válasszon célkönyvtárat
SelectDirDesc=Hova települjön a(z) [name]?
SelectDirLabel3=A(z) [name] az alábbi könyvtárba lesz telepítve.
SelectDirBrowseLabel=A folytatáshoz, kattintson a 'Tovább'-ra. Ha másik könyvtárat választana, kattintson a 'Tallózás'-ra.
DiskSpaceGBLabel=Legalább [gb] GB szabad területre van szükség.
DiskSpaceMBLabel=Legalább [mb] MB szabad területre van szükség.
CannotInstallToNetworkDrive=A Telepítő nem tud hálózati meghajtóra telepíteni.
CannotInstallToUNCPath=A Telepítő nem tud hálózati UNC elérési útra telepíteni.
InvalidPath=Teljes útvonalat adjon meg, a meghajtó betűjelével; például:%n%nC:\Alkalmazás%n%nvagy egy hálózati útvonalat a következő alakban:%n%n\\kiszolgáló\megosztás
InvalidDrive=A kiválasztott meghajtó vagy hálózati megosztás nem létezik vagy nem elérhető. Válasszon egy másikat.
DiskSpaceWarningTitle=Nincs elég szabad terület
DiskSpaceWarning=A Telepítőnek legalább %1 KB szabad lemezterületre van szüksége, viszont a kiválasztott meghajtón csupán %2 KB áll rendelkezésre.%n%nMindenképpen folytatja?
DirNameTooLong=A könyvtár neve vagy az útvonal túl hosszú.
InvalidDirName=A könyvtár neve érvénytelen.
BadDirName32=A könyvtárak nevei ezen karakterek egyikét sem tartalmazhatják:%n%n%1
DirExistsTitle=A könyvtár már létezik
DirExists=A könyvtár:%n%n%1%n%nmár létezik. Mindenképp ide akar telepíteni?
DirDoesntExistTitle=A könyvtár nem létezik
DirDoesntExist=A könyvtár:%n%n%1%n%nnem létezik. Szeretné létrehozni?
; *** "Select Components" wizard page
WizardSelectComponents=Összetevők kiválasztása
SelectComponentsDesc=Mely összetevők kerüljenek telepítésre?
SelectComponentsLabel2=Jelölje ki a telepítendő összetevőket; törölje a telepíteni nem kívánt összetevőket. Kattintson a 'Tovább'-ra, ha készen áll a folytatásra.
FullInstallation=Teljes telepítés
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Szokásos telepítés
CustomInstallation=Egyéni telepítés
NoUninstallWarningTitle=Létező összetevő
NoUninstallWarning=A telepítő úgy találta, hogy a következő összetevők már telepítve vannak a számítógépre:%n%n%1%n%nEzen összetevők kijelölésének törlése, nem távolítja el azokat a számítógépről.%n%nMindenképpen folytatja?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=A jelenlegi kijelölés legalább [gb] GB lemezterületet igényel.
ComponentsDiskSpaceMBLabel=A jelenlegi kijelölés legalább [mb] MB lemezterületet igényel.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=További feladatok
SelectTasksDesc=Mely kiegészítő feladatok kerüljenek végrehajtásra?
SelectTasksLabel2=Jelölje ki, mely kiegészítő feladatokat hajtsa végre a Telepítő a(z) [name] telepítése során, majd kattintson a 'Tovább'-ra.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Start Menü könyvtára
SelectStartMenuFolderDesc=Hova helyezze a Telepítő a program parancsikonjait?
SelectStartMenuFolderLabel3=A Telepítő a program parancsikonjait a Start menü következő mappájában fogja létrehozni.
SelectStartMenuFolderBrowseLabel=A folytatáshoz kattintson a 'Tovább'-ra. Ha másik mappát választana, kattintson a 'Tallózás'-ra.
MustEnterGroupName=Meg kell adnia egy mappanevet.
GroupNameTooLong=A könyvtár neve vagy az útvonal túl hosszú.
InvalidGroupName=A könyvtár neve érvénytelen.
BadGroupName=A könyvtárak nevei ezen karakterek egyikét sem tartalmazhatják:%n%n%1
NoProgramGroupCheck2=&Ne hozzon létre mappát a Start menüben
; *** "Ready to Install" wizard page
WizardReady=Készen állunk a telepítésre
ReadyLabel1=A Telepítő készen áll, a(z) [name] számítógépre telepítéshez.
ReadyLabel2a=Kattintson a 'Telepítés'-re a folytatáshoz, vagy a "Vissza"-ra a beállítások áttekintéséhez vagy megváltoztatásához.
ReadyLabel2b=Kattintson a 'Telepítés'-re a folytatáshoz.
ReadyMemoUserInfo=Felhasználó adatai:
ReadyMemoDir=Telepítés célkönyvtára:
ReadyMemoType=Telepítés típusa:
ReadyMemoComponents=Választott összetevők:
ReadyMemoGroup=Start menü mappája:
ReadyMemoTasks=Kiegészítő feladatok:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=További fájlok letöltése...
ButtonStopDownload=&Letöltés megállítása
StopDownload=Biztos, hogy leakarja állítani a letöltést?
ErrorDownloadAborted=Letöltés megszakítva
ErrorDownloadFailed=A letöltés meghiúsult: %1 %2
ErrorDownloadSizeFailed=Hiba a fájlméret lekérése során: %1 %2
ErrorFileHash1=Fájl Hash (hasítóérték) hiba: %1
ErrorFileHash2=Érvénytelen hash fájl, várt érték: %1, számított: %2
ErrorProgress=Érvénytelen folyamat: %1 : %2
ErrorFileSize=Érvénytelen fájlméret, várt méret %1, számított: %2
; *** "Preparing to Install" wizard page
WizardPreparing=Felkészülés a telepítésre
PreparingDesc=A Telepítő felkészül a(z) [name] számítógépre történő telepítéshez.
PreviousInstallNotCompleted=Egy korábbi program telepítése/eltávolítása nem fejeződött be. Újra kell indítania a számítógépét a másik telepítés befejezéséhez.%n%nA számítógépe újraindítása után ismét futtassa a Telepítőt a(z) [name] telepítésének befejezéséhez.
CannotContinue=A telepítés nem folytatható. A kilépéshez kattintson a 'Mégse'-re.
ApplicationsFound=A következő alkalmazások olyan fájlokat használnak, amelyeket a Telepítőnek frissíteni kell. Ajánlott, hogy engedélyezze a Telepítőnek ezen alkalmazások automatikus bezárását.
ApplicationsFound2=A következő alkalmazások olyan fájlokat használnak, amelyeket a Telepítőnek frissíteni kell. Ajánlott, hogy engedélyezze a Telepítőnek ezen alkalmazások automatikus bezárását. A telepítés befejezése után, a Telepítő megkísérli az alkalmazások újraindítását.
CloseApplications=&Alkalmazások automatikus bezárása
DontCloseApplications=&Ne zárja be az alkalmazásokat
ErrorCloseApplications=A Telepítő nem tudott minden alkalmazást automatikusan bezárni. A folytatás előtt ajánlott minden, a Telepítő által frissítendő fájlokat használó alkalmazást bezárni.
PrepareToInstallNeedsRestart=A telepítőnek most újra kell indítania a számítógépet. Az újraindítás után, futtassa újból ezt a telepítőt, hogy befejezze a [name] telepítését.%n%nÚjra szeretné most indítani a gépet?
; *** "Installing" wizard page
WizardInstalling=Telepítés
InstallingLabel=Kérem várjon, amíg a(z) [name] telepítése zajlik.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=A(z) [name] telepítésének befejezése
FinishedLabelNoIcons=A Telepítő végzett a(z) [name] telepítésével.
FinishedLabel=A Telepítő végzett a(z) [name] telepítésével. Az alkalmazást a létrehozott ikonok kiválasztásával indíthatja.
ClickFinish=Kattintson a 'Befejezés'-re a kilépéshez.
FinishedRestartLabel=A(z) [name] telepítésének befejezéséhez újra kell indítani a számítógépet. Újraindítja most?
FinishedRestartMessage=A(z) [name] telepítésének befejezéséhez, a Telepítőnek újra kell indítani a számítógépet.%n%nÚjraindítja most?
ShowReadmeCheck=Igen, szeretném elolvasni a FONTOS fájlt
YesRadio=&Igen, újraindítás most
NoRadio=&Nem, később indítom újra
; used for example as 'Run MyProg.exe'
RunEntryExec=%1 futtatása
; used for example as 'View Readme.txt'
RunEntryShellExec=%1 megtekintése
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=A Telepítőnek szüksége van a következő lemezre
SelectDiskLabel2=Helyezze be a(z) %1. lemezt és kattintson az 'OK'-ra.%n%nHa a fájlok a lemez egy a megjelenítettől különböző mappájában találhatók, írja be a helyes útvonalat vagy kattintson a 'Tallózás'-ra.
PathLabel=Ú&tvonal:
FileNotInDir2=A(z) "%1" fájl nem található a következő helyen: "%2". Helyezze be a megfelelő lemezt vagy válasszon egy másik mappát.
SelectDirectoryLabel=Adja meg a következő lemez helyét.
; *** Installation phase messages
SetupAborted=A telepítés nem fejeződött be.%n%nHárítsa el a hibát és futtassa újból a Telepítőt.
AbortRetryIgnoreSelectAction=Válasszon műveletet
AbortRetryIgnoreRetry=&Újra
AbortRetryIgnoreIgnore=&Hiba elvetése és folytatás
AbortRetryIgnoreCancel=Telepítés megszakítása
; *** Installation status messages
StatusClosingApplications=Alkalmazások bezárása...
StatusCreateDirs=Könyvtárak létrehozása...
StatusExtractFiles=Fájlok kibontása...
StatusCreateIcons=Parancsikonok létrehozása...
StatusCreateIniEntries=INI bejegyzések létrehozása...
StatusCreateRegistryEntries=Rendszerleíró bejegyzések létrehozása...
StatusRegisterFiles=Fájlok regisztrálása...
StatusSavingUninstall=Eltávolító információk mentése...
StatusRunProgram=Telepítés befejezése...
StatusRestartingApplications=Alkalmazások újraindítása...
StatusRollback=Változtatások visszavonása...
; *** Misc. errors
ErrorInternal2=Belső hiba: %1
ErrorFunctionFailedNoCode=Sikertelen %1
ErrorFunctionFailed=Sikertelen %1; kód: %2
ErrorFunctionFailedWithMessage=Sikertelen %1; kód: %2.%n%3
ErrorExecutingProgram=Nem hajtható végre a fájl:%n%1
; *** Registry errors
ErrorRegOpenKey=Nem nyitható meg a rendszerleíró kulcs:%n%1\%2
ErrorRegCreateKey=Nem hozható létre a rendszerleíró kulcs:%n%1\%2
ErrorRegWriteKey=Nem módosítható a rendszerleíró kulcs:%n%1\%2
; *** INI errors
ErrorIniEntry=Hiba lépett fel az INI bejegyzés során, ebben a fájlban: "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Fájl kihagyása (nem ajánlott)
FileAbortRetryIgnoreIgnoreNotRecommended=&Hiba elvetése és folytatás (nem ajánlott)
SourceIsCorrupted=A forrásfájl megsérült
SourceDoesntExist=A(z) "%1" forrásfájl nem létezik
ExistingFileReadOnly2=A fájl csak olvashatóként van jelölve, ezért nem cserélhető le.
ExistingFileReadOnlyRetry=Csak &olvasható tulajdonság eltávolítása és újra próbálkozás
ExistingFileReadOnlyKeepExisting=&Létező fájl megtartása
ErrorReadingExistingDest=Hiba lépett fel a fájl olvasása közben:
FileExistsSelectAction=Mit tegyünk?
FileExists2=A fájl már létezik.
FileExistsOverwriteExisting=A &létező fájl felülírása
FileExistsKeepExisting=A &már létező fájl megtartása
FileExistsOverwriteOrKeepAll=&Tegyük ezt, a következő fájlütközések esetén is
ExistingFileNewerSelectAction=Mit kíván tenni?
ExistingFileNewer2=A létező fájl újabb a telepítésre kerülőnél
ExistingFileNewerOverwriteExisting=A &létező fájl felülírása
ExistingFileNewerKeepExisting=&Tartsuk meg a létező fájlt (ajánlott)
ExistingFileNewerOverwriteOrKeepAll=&Tegyük ezt, a következő fájlütközések esetén is
ErrorChangingAttr=Hiba lépett fel a fájl attribútumának módosítása közben:
ErrorCreatingTemp=Hiba lépett fel a fájl telepítési könyvtárban történő létrehozása közben:
ErrorReadingSource=Hiba lépett fel a forrásfájl olvasása közben:
ErrorCopying=Hiba lépett fel a fájl másolása közben:
ErrorReplacingExistingFile=Hiba lépett fel a létező fájl cseréje közben:
ErrorRestartReplace=A fájl cseréje az újraindítás után sikertelen volt:
ErrorRenamingTemp=Hiba lépett fel fájl telepítési könyvtárban történő átnevezése közben:
ErrorRegisterServer=Nem lehet regisztrálni a DLL-t/OCX-et: %1
ErrorRegSvr32Failed=Sikertelen RegSvr32. A visszaadott kód: %1
ErrorRegisterTypeLib=Nem lehet regisztrálni a típustárat: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=Minden felhasználó
UninstallDisplayNameMarkCurrentUser=Jelenlegi felhasználó
; *** Post-installation errors
ErrorOpeningReadme=Hiba lépett fel a FONTOS fájl megnyitása közben.
ErrorRestartingComputer=A Telepítő nem tudta újraindítani a számítógépet. Indítsa újra kézileg.
; *** Uninstaller messages
UninstallNotFound=A(z) "%1" fájl nem létezik. Nem távolítható el.
UninstallOpenError=A(z) "%1" fájl nem nyitható meg. Nem távolítható el
UninstallUnsupportedVer=A(z) "%1" eltávolítási naplófájl formátumát nem tudja felismerni az eltávolító jelen verziója. Az eltávolítás nem folytatható
UninstallUnknownEntry=Egy ismeretlen bejegyzés (%1) található az eltávolítási naplófájlban
ConfirmUninstall=Biztosan futtatni szeretné a %1 eltávolítási varázslót?
UninstallOnlyOnWin64=Ezt a telepítést csak 64-bites Windows operációs rendszerről lehet eltávolítani.
OnlyAdminCanUninstall=Ezt a telepítést csak adminisztrációs jogokkal rendelkező felhasználó távolíthatja el.
UninstallStatusLabel=Legyen türelemmel, amíg a(z) %1 számítógépéről történő eltávolítása befejeződik.
UninstalledAll=A(z) %1 sikeresen el lett távolítva a számítógépről.
UninstalledMost=A(z) %1 eltávolítása befejeződött.%n%nNéhány elemet nem lehetettet eltávolítani. Törölje kézileg.
UninstalledAndNeedsRestart=A(z) %1 eltávolításának befejezéséhez újra kell indítania a számítógépét.%n%nÚjraindítja most?
UninstallDataCorrupted=A(z) "%1" fájl sérült. Nem távolítható el.
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Törli a megosztott fájlt?
ConfirmDeleteSharedFile2=A rendszer azt jelzi, hogy a következő megosztott fájlra már nincs szüksége egyetlen programnak sem. Eltávolítja a megosztott fájlt?%n%nHa más programok még mindig használják a megosztott fájlt, akkor az eltávolítása után lehet, hogy nem fognak megfelelően működni. Ha bizonytalan, válassza a Nemet. A fájl megtartása nem okoz problémát a rendszerben.
SharedFileNameLabel=Fájlnév:
SharedFileLocationLabel=Helye:
WizardUninstalling=Eltávolítás állapota
StatusUninstalling=%1 eltávolítása...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=%1 telepítése.
ShutdownBlockReasonUninstallingApp=%1 eltávolítása.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1, verzió: %2
AdditionalIcons=További parancsikonok:
CreateDesktopIcon=&Asztali ikon létrehozása
CreateQuickLaunchIcon=&Gyorsindító parancsikon létrehozása
ProgramOnTheWeb=%1 az interneten
UninstallProgram=Eltávolítás - %1
LaunchProgram=Indítás %1
AssocFileExtension=A(z) %1 &társítása a(z) %2 fájlkiterjesztéssel
AssocingFileExtension=A(z) %1 társítása a(z) %2 fájlkiterjesztéssel...
AutoStartProgramGroupDescription=Indítópult:
AutoStartProgram=%1 automatikus indítása
AddonHostProgramNotFound=A(z) %1 nem található a kiválasztott könyvtárban.%n%nMindenképpen folytatja?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Wählen Sie den Installationsmodus
SelectSetupInstallModeDesc=VCMI kann für alle Benutzer oder nur für Sie installiert werden.
SelectSetupInstallModeSubTitle=Wählen Sie den bevorzugten Installationsmodus:
InstallForAllUsers=Für alle Benutzer installieren
InstallForAllUsers1=Erfordert Administratorrechte
InstallForMeOnly=Nur für mich installieren
InstallForMeOnly1=Beim ersten Start des Spiels erscheint eine Firewall-Benachrichtigung
InstallForMeOnly2=LAN-Spiele funktionieren nicht, wenn die Firewall-Regel nicht zugelassen werden kann
SystemIntegration=Systemintegration
CreateDesktopShortcuts=Desktop-Verknüpfungen erstellen
CreateStartMenuShortcuts=Verknüpfungen im Startmenü erstellen
AssociateH3MFiles=.h3m-Dateien mit dem VCMI-Karteneditor verknüpfen
AssociateVCMIMapFiles=.vmap- und .vcmp-Dateien mit dem VCMI-Karteneditor verknüpfen
VCMISettings=VCMI-Konfiguration
AddFirewallRules=Firewall-Regeln für VCMI hinzufügen
CopyH3Files=Erforderliche Heroes-III-Dateien automatisch in VCMI kopieren
RunVCMILauncherAfterInstall=VCMI Launcher starten
ShortcutMapEditor=VCMI Karteneditor
ShortcutLauncher=VCMI Launcher
ShortcutWebPage=VCMI Webseite
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=VCMI Launcher starten
ShortcutMapEditorComment=VCMI Karteneditor öffnen
ShortcutWebPageComment=Offizielle VCMI-Webseite besuchen
ShortcutDiscordComment=Offiziellen VCMI Discord besuchen
DeleteUserData=Benutzerdaten löschen
Uninstall=Deinstallieren
Warning=Warnung
VMAPDescription=VCMI-Kartendatei
VCMPDescription=VCMI-Kampagnendatei
H3MDescription=Heroes-3-Kartendatei

View File

@ -0,0 +1,423 @@
; bovirus@gmail.com
; *** Inno Setup version 6.1.0+ Italian messages ***
;
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
;
; isl - Last Update: 25.07.2020 by bovirus (bovirus@gmail.com)
;
; Translator name: bovirus
; Translator e-mail: bovirus@gmail.com
; Based on previous translations of Rinaldo M. aka Whiteshark (based on ale5000 5.1.11+ translation)
;
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Italiano
LanguageID=$0410
LanguageCodePage=1252
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Installazione
SetupWindowTitle=Installazione di %1
UninstallAppTitle=Disinstallazione
UninstallAppFullTitle=Disinstallazione di %1
; *** Misc. common
InformationTitle=Informazioni
ConfirmTitle=Conferma
ErrorTitle=Errore
; *** SetupLdr messages
SetupLdrStartupMessage=Questa è l'installazione di %1.%n%nVuoi continuare?
LdrCannotCreateTemp=Impossibile creare un file temporaneo.%n%nInstallazione annullata.
LdrCannotExecTemp=Impossibile eseguire un file nella cartella temporanea.%n%nInstallazione annullata.
; *** Startup error messages
LastErrorMessage=%1.%n%nErrore %2: %3
SetupFileMissing=File %1 non trovato nella cartella di installazione.%n%nCorreggi il problema o richiedi una nuova copia del programma.
SetupFileCorrupt=I file di installazione sono danneggiati.%n%nRichiedi una nuova copia del programma.
SetupFileCorruptOrWrongVer=I file di installazione sono danneggiati, o sono incompatibili con questa versione del programma di installazione.%n%nCorreggi il problema o richiedi una nuova copia del programma.
InvalidParameter=È stato inserito nella riga di comando un parametro non valido:%n%n%1
SetupAlreadyRunning=Il processo di installazione è già in funzione.
WindowsVersionNotSupported=Questo programma non può essere eseguito sulla versione di Windows in uso. Assicurati di utilizzare l'architettura corretta di Windows (32-bit o 64-bit) e la versione corretta di questo programma.
WindowsServicePackRequired=Questo programma richiede %1 Service Pack %2 o successivo.
NotOnThisPlatform=Questo programma non è compatibile con %1.
OnlyOnThisPlatform=Questo programma richiede %1.
OnlyOnTheseArchitectures=Questo programma può essere installato solo su versioni di Windows progettate per le seguenti architetture della CPU:%n%n%1
WinVersionTooLowError=Questo programma richiede %1 versione %2 o successiva.
WinVersionTooHighError=Questo programma non può essere installato su %1 versione %2 o successiva.
AdminPrivilegesRequired=Per installare questo programma sono richiesti privilegi di amministratore.
PowerUserPrivilegesRequired=Per poter installare questo programma sono richiesti i privilegi di amministratore o di Power Users.
SetupAppRunningError=%1 è attualmente in esecuzione.%n%nChiudi adesso tutte le istanze del programma e poi seleziona "OK", o seleziona "Annulla" per uscire.
UninstallAppRunningError=%1 è attualmente in esecuzione.%n%nChiudi adesso tutte le istanze del programma e poi seleziona "OK", o seleziona "Annulla" per uscire.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Seleziona modo installazione
PrivilegesRequiredOverrideInstruction=Seleziona modo installazione
PrivilegesRequiredOverrideText1=%1 può essere installato per tutti gli utenti (richiede privilegi di amministratore), o solo per l'utente attuale.
PrivilegesRequiredOverrideText2=%1 può essere installato solo per l'utente attuale, o per tutti gli utenti (richiede privilegi di amministratore).
PrivilegesRequiredOverrideAllUsers=Inst&alla per tutti gli utenti
PrivilegesRequiredOverrideAllUsersRecommended=Inst&alla per tutti gli utenti (suggerito)
PrivilegesRequiredOverrideCurrentUser=Installa solo per l'&utente attuale
PrivilegesRequiredOverrideCurrentUserRecommended=Installa solo per l'&utente attuale (suggerito)
; *** Misc. errors
ErrorCreatingDir=Impossibile creare la cartella "%1"
ErrorTooManyFilesInDir=Impossibile creare i file nella cartella "%1" perché contiene troppi file.
; *** Setup common messages
ExitSetupTitle=Uscita dall'installazione
ExitSetupMessage=L'installazione non è completa.%n%nUscendo dall'installazione in questo momento, il programma non sarà installato.%n%nÈ possibile eseguire l'installazione in un secondo tempo.%n%nVuoi uscire dall'installazione?
AboutSetupMenuItem=&Informazioni sull'installazione...
AboutSetupTitle=Informazioni sull'installazione
AboutSetupMessage=%1 versione %2%n%3%n%n%1 sito web:%n%4
AboutSetupNote=
TranslatorNote=Traduzione italiana a cura di Rinaldo M. aka Whiteshark e bovirus (v. 11.09.2018)
; *** Buttons
ButtonBack=< &Indietro
ButtonNext=&Avanti >
ButtonInstall=Inst&alla
ButtonOK=OK
ButtonCancel=Annulla
ButtonYes=&Si
ButtonYesToAll=Sì a &tutto
ButtonNo=&No
ButtonNoToAll=N&o a tutto
ButtonFinish=&Fine
ButtonBrowse=&Sfoglia...
ButtonWizardBrowse=S&foglia...
ButtonNewFolder=&Crea nuova cartella
; *** "Select Language" dialog messages
SelectLanguageTitle=Seleziona la lingua dell'installazione
SelectLanguageLabel=Seleziona la lingua da usare durante l'installazione.
; *** Common wizard text
ClickNext=Seleziona "Avanti" per continuare, o "Annulla" per uscire.
BeveledLabel=
BrowseDialogTitle=Sfoglia cartelle
BrowseDialogLabel=Seleziona una cartella nell'elenco, e quindi seleziona "OK".
NewFolderName=Nuova cartella
; *** "Welcome" wizard page
WelcomeLabel1=Installazione di [name]
WelcomeLabel2=[name/ver] sarà installato sul computer.%n%nPrima di procedere chiudi tutte le applicazioni attive.
; *** "Password" wizard page
WizardPassword=Password
PasswordLabel1=Questa installazione è protetta da password.
PasswordLabel3=Inserisci la password, quindi per continuare seleziona "Avanti".%nLe password sono sensibili alle maiuscole/minuscole.
PasswordEditLabel=&Password:
IncorrectPassword=La password inserita non è corretta. Riprova.
; *** "License Agreement" wizard page
WizardLicense=Contratto di licenza
LicenseLabel=Prima di procedere leggi con attenzione le informazioni che seguono.
LicenseLabel3=Leggi il seguente contratto di licenza.%nPer procedere con l'installazione è necessario accettare tutti i termini del contratto.
LicenseAccepted=Accetto i termini del &contratto di licenza
LicenseNotAccepted=&Non accetto i termini del contratto di licenza
; *** "Information" wizard pages
WizardInfoBefore=Informazioni
InfoBeforeLabel=Prima di procedere leggi le importanti informazioni che seguono.
InfoBeforeClickLabel=Quando sei pronto per proseguire, seleziona "Avanti".
WizardInfoAfter=Informazioni
InfoAfterLabel=Prima di procedere leggi le importanti informazioni che seguono.
InfoAfterClickLabel=Quando sei pronto per proseguire, seleziona "Avanti".
; *** "User Information" wizard page
WizardUserInfo=Informazioni utente
UserInfoDesc=Inserisci le seguenti informazioni.
UserInfoName=&Nome:
UserInfoOrg=&Società:
UserInfoSerial=&Numero di serie:
UserInfoNameRequired=È necessario inserire un nome.
; *** "Select Destination Location" wizard page
WizardSelectDir=Selezione cartella di installazione
SelectDirDesc=Dove vuoi installare [name]?
SelectDirLabel3=[name] sarà installato nella seguente cartella.
SelectDirBrowseLabel=Per continuare seleziona "Avanti".%nPer scegliere un'altra cartella seleziona "Sfoglia".
DiskSpaceGBLabel=Sono richiesti almeno [gb] GB di spazio libero nel disco.
DiskSpaceMBLabel=Sono richiesti almeno [mb] MB di spazio libero nel disco.
CannotInstallToNetworkDrive=Non è possibile effettuare l'installazione in un disco in rete.
CannotInstallToUNCPath=Non è possibile effettuare l'installazione in un percorso UNC.
InvalidPath=Va inserito un percorso completo di lettera di unità; per esempio:%n%nC:\APP%n%no un percorso di rete nella forma:%n%n\\server\condivisione
InvalidDrive=L'unità o il percorso di rete selezionato non esiste o non è accessibile.%n%nSelezionane un altro.
DiskSpaceWarningTitle=Spazio su disco insufficiente
DiskSpaceWarning=L'installazione richiede per eseguire l'installazione almeno %1 KB di spazio libero, ma l'unità selezionata ha solo %2 KB disponibili.%n%nVuoi continuare comunque?
DirNameTooLong=Il nome della cartella o il percorso sono troppo lunghi.
InvalidDirName=Il nome della cartella non è valido.
BadDirName32=Il nome della cartella non può includere nessuno dei seguenti caratteri:%n%n%1
DirExistsTitle=Cartella già esistente
DirExists=La cartella%n%n %1%n%nesiste già.%n%nVuoi comunque installare l'applicazione in questa cartella?
DirDoesntExistTitle=Cartella inesistente
DirDoesntExist=La cartella%n%n %1%n%nnon esiste. Vuoi creare la cartella?
; *** "Select Components" wizard page
WizardSelectComponents=Selezione componenti
SelectComponentsDesc=Quali componenti vuoi installare?
SelectComponentsLabel2=Seleziona i componenti da installare, deseleziona quelli che non vuoi installare.%nPer continuare seleziona "Avanti".
FullInstallation=Installazione completa
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Installazione compatta
CustomInstallation=Installazione personalizzata
NoUninstallWarningTitle=Componente esistente
NoUninstallWarning=I seguenti componenti sono già installati nel computer:%n%n%1%n%nDeselezionando questi componenti essi non verranno rimossi.%n%nVuoi continuare comunque?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=La selezione attuale richiede almeno [gb] GB di spazio nel disco.
ComponentsDiskSpaceMBLabel=La selezione attuale richiede almeno [mb] MB di spazio nel disco.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Selezione processi aggiuntivi
SelectTasksDesc=Quali processi aggiuntivi vuoi eseguire?
SelectTasksLabel2=Seleziona i processi aggiuntivi che verranno eseguiti durante l'installazione di [name], quindi seleziona "Avanti".
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Selezione della cartella nel menu Avvio/Start
SelectStartMenuFolderDesc=Dove vuoi inserire i collegamenti al programma?
SelectStartMenuFolderLabel3=Verranno creati i collegamenti al programma nella seguente cartella del menu Avvio/Start.
SelectStartMenuFolderBrowseLabel=Per continuare, seleziona "Avanti".%nPer selezionare un'altra cartella, seleziona "Sfoglia".
MustEnterGroupName=Devi inserire il nome della cartella.
GroupNameTooLong=Il nome della cartella o il percorso sono troppo lunghi.
InvalidGroupName=Il nome della cartella non è valido.
BadGroupName=Il nome della cartella non può includere nessuno dei seguenti caratteri:%n%n%1
NoProgramGroupCheck2=&Non creare una cartella nel menu Avvio/Start
; *** "Ready to Install" wizard page
WizardReady=Pronto per l'installazione
ReadyLabel1=Il programma è pronto per iniziare l'installazione di [name] nel computer.
ReadyLabel2a=Seleziona "Installa" per continuare con l'installazione, o "Indietro" per rivedere o modificare le impostazioni.
ReadyLabel2b=Per procedere con l'installazione seleziona "Installa".
ReadyMemoUserInfo=Informazioni utente:
ReadyMemoDir=Cartella di installazione:
ReadyMemoType=Tipo di installazione:
ReadyMemoComponents=Componenti selezionati:
ReadyMemoGroup=Cartella del menu Avvio/Start:
ReadyMemoTasks=Processi aggiuntivi:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Download file aggiuntivi...
ButtonStopDownload=&Stop download
StopDownload=Sei sicuro di voler interrompere il download?
ErrorDownloadAborted=Download annullato
ErrorDownloadFailed=Download fallito: %1 %2
ErrorDownloadSizeFailed=Rilevamento dimensione fallito: %1 %2
ErrorFileHash1=Errore hash file: %1
ErrorFileHash2=Hash file non valido: atteso %1, trovato %2
ErrorProgress=Progresso non valido: %1 di %2
ErrorFileSize=Dimensione file non valida: attesa %1, trovata %2
; *** "Preparing to Install" wizard page
WizardPreparing=Preparazione all'installazione
PreparingDesc=Preparazione all'installazione di [name] nel computer.
PreviousInstallNotCompleted=L'installazione/rimozione precedente del programma non è stata completata.%n%nÈ necessario riavviare il sistema per completare l'installazione.%n%nDopo il riavvio del sistema esegui di nuovo l'installazione di [name].
CannotContinue=L'installazione non può continuare. Seleziona "Annulla" per uscire.
ApplicationsFound=Le seguenti applicazioni stanno usando file che devono essere aggiornati dall'installazione.%n%nTi consigliamo di permettere al processo di chiudere automaticamente queste applicazioni.
ApplicationsFound2=Le seguenti applicazioni stanno usando file che devono essere aggiornati dall'installazione.%n%nTi consigliamo di permettere al processo di chiudere automaticamente queste applicazioni.%n%nAl completamento dell'installazione, il processo tenterà di riavviare le applicazioni.
CloseApplications=Chiudi &automaticamente le applicazioni
DontCloseApplications=&Non chiudere le applicazioni
ErrorCloseApplications=L'installazione non è riuscita a chiudere automaticamente tutte le applicazioni.%n%nPrima di proseguire ti raccomandiamo di chiudere tutte le applicazioni che usano file che devono essere aggiornati durante l'installazione.
PrepareToInstallNeedsRestart=Il programma di installazione deve riavviare il computer.%nDopo aver riavviato il computer esegui di nuovo il programma di installazione per completare l'installazione di [name].%n%nVuoi riavviare il computer ora?
; *** "Installing" wizard page
WizardInstalling=Installazione in corso
InstallingLabel=Attendi il completamento dell'installazione di [name] nel computer.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Installazione di [name] completata
FinishedLabelNoIcons=Installazione di [name] completata.
FinishedLabel=Installazione di [name] completata.%n%nL'applicazione può essere eseguita selezionando le relative icone.
ClickFinish=Seleziona "Fine" per uscire dall'installazione.
FinishedRestartLabel=Per completare l'installazione di [name], è necessario riavviare il sistema.%n%nVuoi riavviare adesso?
FinishedRestartMessage=Per completare l'installazione di [name], è necessario riavviare il sistema.%n%nVuoi riavviare adesso?
ShowReadmeCheck=Si, visualizza ora il file LEGGIMI
YesRadio=&Si, riavvia il sistema adesso
NoRadio=&No, riavvia il sistema più tardi
; used for example as 'Run MyProg.exe'
RunEntryExec=Esegui %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Visualizza %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=L'installazione necessita del disco successivo
SelectDiskLabel2=Inserisci il disco %1 e seleziona "OK".%n%nSe i file di questo disco si trovano in una cartella diversa da quella visualizzata sotto, inserisci il percorso corretto o seleziona "Sfoglia".
PathLabel=&Percorso:
FileNotInDir2=Il file "%1" non è stato trovato in "%2".%n%nInserisci il disco corretto o seleziona un'altra cartella.
SelectDirectoryLabel=Specifica il percorso del prossimo disco.
; *** Installation phase messages
SetupAborted=L'installazione non è stata completata.%n%nCorreggi il problema e riesegui nuovamente l'installazione.
AbortRetryIgnoreSelectAction=Seleziona azione
AbortRetryIgnoreRetry=&Riprova
AbortRetryIgnoreIgnore=&Ignora questo errore e continua
AbortRetryIgnoreCancel=Annulla installazione
; *** Installation status messages
StatusClosingApplications=Chiusura applicazioni...
StatusCreateDirs=Creazione cartelle...
StatusExtractFiles=Estrazione file...
StatusCreateIcons=Creazione icone...
StatusCreateIniEntries=Creazione voci nei file INI...
StatusCreateRegistryEntries=Creazione voci di registro...
StatusRegisterFiles=Registrazione file...
StatusSavingUninstall=Salvataggio delle informazioni di disinstallazione...
StatusRunProgram=Termine dell'installazione...
StatusRestartingApplications=Riavvio applicazioni...
StatusRollback=Recupero delle modifiche...
; *** Misc. errors
ErrorInternal2=Errore interno %1
ErrorFunctionFailedNoCode=%1 fallito
ErrorFunctionFailed=%1 fallito; codice %2
ErrorFunctionFailedWithMessage=%1 fallito; codice %2.%n%3
ErrorExecutingProgram=Impossibile eseguire il file:%n%1
; *** Registry errors
ErrorRegOpenKey=Errore di apertura della chiave di registro:%n%1\%2
ErrorRegCreateKey=Errore di creazione della chiave di registro:%n%1\%2
ErrorRegWriteKey=Errore di scrittura della chiave di registro:%n%1\%2
; *** INI errors
ErrorIniEntry=Errore nella creazione delle voci INI nel file "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Salta questo file (non suggerito)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignora questo errore e continua (non suggerito)
SourceIsCorrupted=Il file sorgente è danneggiato
SourceDoesntExist=Il file sorgente "%1" non esiste
ExistingFileReadOnly2=Il file esistente non può essere sostituito in quanto segnato come in sola lettura.
ExistingFileReadOnlyRetry=&Rimuovi attributo di sola lettura e riprova
ExistingFileReadOnlyKeepExisting=&Mantieni il file esistente
ErrorReadingExistingDest=Si è verificato un errore durante la lettura del file esistente:
FileExistsSelectAction=Seleziona azione
FileExists2=Il file esiste già.
FileExistsOverwriteExisting=S&ovrascrivi il file esistente
FileExistsKeepExisting=&Mantieni il file esistente
FileExistsOverwriteOrKeepAll=&Applica questa azione per i prossimi conflitti
ExistingFileNewerSelectAction=Seleziona azione
ExistingFileNewer2=Il file esistente è più recente del file che si sta cercando di installare.
ExistingFileNewerOverwriteExisting=S&ovrascrivi il file esistente
ExistingFileNewerKeepExisting=&Mantieni il file esistente (suggerito)
ExistingFileNewerOverwriteOrKeepAll=&Applica questa azione per i prossimi conflitti
ErrorChangingAttr=Si è verificato un errore durante il tentativo di modifica dell'attributo del file esistente:
ErrorCreatingTemp=Si è verificato un errore durante la creazione di un file nella cartella di installazione:
ErrorReadingSource=Si è verificato un errore durante la lettura del file sorgente:
ErrorCopying=Si è verificato un errore durante la copia di un file:
ErrorReplacingExistingFile=Si è verificato un errore durante la sovrascrittura del file esistente:
ErrorRestartReplace=Errore durante riavvio o sostituzione:
ErrorRenamingTemp=Si è verificato un errore durante il tentativo di rinominare un file nella cartella di installazione:
ErrorRegisterServer=Impossibile registrare la DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 è fallito con codice di uscita %1
ErrorRegisterTypeLib=Impossibile registrare la libreria di tipo: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32bit
UninstallDisplayNameMark64Bit=64bit
UninstallDisplayNameMarkAllUsers=Tutti gli utenti
UninstallDisplayNameMarkCurrentUser=Utente attuale
; *** Post-installation errors
ErrorOpeningReadme=Si è verificato un errore durante l'apertura del file LEGGIMI.
ErrorRestartingComputer=Impossibile riavviare il sistema. Riavvia il sistema manualmente.
; *** Uninstaller messages
UninstallNotFound=Il file "%1" non esiste.%n%nImpossibile disinstallare.
UninstallOpenError=Il file "%1" non può essere aperto.%n%nImpossibile disinstallare
UninstallUnsupportedVer=Il file registro di disinstallazione "%1" è in un formato non riconosciuto da questa versione del programma di disinstallazione.%n%nImpossibile disinstallare
UninstallUnknownEntry=Trovata una voce sconosciuta (%1) nel file registro di disinstallazione
ConfirmUninstall=Sei sicuro di voler eseguire l'assistente di disinstallazione di %1?
UninstallOnlyOnWin64=Questa applicazione può essere disinstallata solo in Windows a 64-bit.
OnlyAdminCanUninstall=Questa applicazione può essere disinstallata solo da un utente con privilegi di amministratore.
UninstallStatusLabel=Attendi fino a che %1 è stato rimosso dal computer.
UninstalledAll=Disinstallazione di %1 completata.
UninstalledMost=Disinstallazione di %1 completata.%n%nAlcuni elementi non possono essere rimossi.%n%nDovranno essere rimossi manualmente.
UninstalledAndNeedsRestart=Per completare la disinstallazione di %1, è necessario riavviare il sistema.%n%nVuoi riavviare il sistema adesso?
UninstallDataCorrupted=Il file "%1" è danneggiato. Impossibile disinstallare
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Vuoi rimuovere il file condiviso?
ConfirmDeleteSharedFile2=Il sistema indica che il seguente file condiviso non è più usato da nessun programma.%nVuoi rimuovere questo file condiviso?%nSe qualche programma usasse questo file, potrebbe non funzionare più correttamente.%nSe non sei sicuro, seleziona "No".%nLasciare il file nel sistema non può causare danni.
SharedFileNameLabel=Nome del file:
SharedFileLocationLabel=Percorso:
WizardUninstalling=Stato disinstallazione
StatusUninstalling=Disinstallazione di %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Installazione di %1.
ShutdownBlockReasonUninstallingApp=Disinstallazione di %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 versione %2
AdditionalIcons=Icone aggiuntive:
CreateDesktopIcon=Crea un'icona sul &desktop
CreateQuickLaunchIcon=Crea un'icona nella &barra 'Avvio veloce'
ProgramOnTheWeb=Sito web di %1
UninstallProgram=Disinstalla %1
LaunchProgram=Avvia %1
AssocFileExtension=&Associa i file con estensione %2 a %1
AssocingFileExtension=Associazione dei file con estensione %2 a %1...
AutoStartProgramGroupDescription=Esecuzione automatica:
AutoStartProgram=Esegui automaticamente %1
AddonHostProgramNotFound=Impossibile individuare %1 nella cartella selezionata.%n%nVuoi continuare ugualmente?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Scegli il tipo di installazione
SelectSetupInstallModeDesc=VCMI può essere installato per tutti gli utenti o solo per te.
SelectSetupInstallModeSubTitle=Seleziona il tipo di installazione preferito:
InstallForAllUsers=Installa per tutti gli utenti
InstallForAllUsers1=Richiede privilegi amministrativi
InstallForMeOnly=Installa solo per me
InstallForMeOnly1=Quando il gioco viene avviato per la prima volta, apparirà un avviso del firewall
InstallForMeOnly2=I giochi LAN non funzioneranno se la regola del firewall non può essere consentita
SystemIntegration=Integrazione di sistema
CreateDesktopShortcuts=Crea collegamenti sul desktop
CreateStartMenuShortcuts=Crea collegamenti nel menu Start
AssociateH3MFiles=Associa i file .h3m all'Editor Mappe VCMI
AssociateVCMIMapFiles=Associa i file .vmap e .vcmp all'Editor Mappe VCMI
VCMISettings=Configurazione VCMI
AddFirewallRules=Aggiungi regole del firewall per VCMI
CopyH3Files=Copia automaticamente i file richiesti di Heroes III in VCMI
RunVCMILauncherAfterInstall=Avvia il Launcher di VCMI
ShortcutMapEditor=Editor Mappe VCMI
ShortcutLauncher=Launcher VCMI
ShortcutWebPage=Sito Web di VCMI
ShortcutDiscord=Discord VCMI
ShortcutLauncherComment=Avvia il Launcher di VCMI
ShortcutMapEditorComment=Apri l'Editor Mappe VCMI
ShortcutWebPageComment=Visita il sito ufficiale di VCMI
ShortcutDiscordComment=Visita il Discord ufficiale di VCMI
DeleteUserData=Elimina i dati utente
Uninstall=Disinstalla
Warning=Avviso
VMAPDescription=File mappa VCMI
VCMPDescription=File campagna VCMI
H3MDescription=File mappa Heroes 3

View File

@ -0,0 +1,424 @@
; *** Inno Setup version 6.1.0+ Korean messages ***
; ▒ 6.2.2+ Translator: VenusGirl (venusgirl@outlook.com)
; ▒ 6.2.0+ Translator: Logan.Hwang (logan.hwang@blueant.kr)
; ▒ 6.0.3+ Translator: SungDong Kim (acroedit@gmail.com)
; ▒ 5.5.3+ Translator: Domddol (domddol@gmail.com)
; ▒ Contributors: Hansoo KIM (iryna7@gmail.com), Woong-Jae An (a183393@hanmail.net)
; ▒ 이 번역은 한국어 맞춤법을 준수합니다.
;
; 이 파일의 사용자 제공 번역을 다운로드하려면 다음으로 이동하십시오:
; https://jrsoftware.org/files/istrans/
; 참고: 이 텍스트를 번역할 때는 InnoSetup 메시지에
; 마침표가 자동으로 추가되므로 아직 없는 메시지의 끝에
; 마침표(.)를 추가하지 마십시오 (마침표를 추가하면
; 두 개의 마침표가 표시됩니다).
[LangOptions]
; 다음 세 항목은 매우 중요합니다. 도움말 파일의
; '[LangOptions] 섹션' 항목을 읽고 이해하십시오.
LanguageName=한국어
LanguageID=$0412
LanguageCodePage=949
; 번역할 언어가 특수 글꼴 또는 크기를 필요로 하는 경우
; 다음 항목 중 하나를 주석 해제하고 적절하게 변경하십시오.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=설치
SetupWindowTitle=%1 설치
UninstallAppTitle=제거
UninstallAppFullTitle=%1 제거
; *** Misc. common
InformationTitle=정보
ConfirmTitle=확인
ErrorTitle=오류
; *** SetupLdr messages
SetupLdrStartupMessage=%1을(를) 설치합니다, 계속하시겠습니까?
LdrCannotCreateTemp=임시 파일을 만들 수 없습니다. 설치가 중단되었습니다.
LdrCannotExecTemp=임시 디렉터리에서 파일을 실행할 수 없습니다. 설치가 중단되었습니다.
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%n오류 %2: %3
SetupFileMissing=%1 파일이 설치 디렉터리에 없습니다. 문제를 해결하거나 프로그램의 새 사본을 구하십시오.
SetupFileCorrupt=설치 파일이 손상되었습니다. 프로그램의 새 사본을 구하십시오.
SetupFileCorruptOrWrongVer=설치 파일이 손상되었거나 이 버전의 설치 프로그램과 호환되지 않습니다. 문제를 해결하거나 프로그램의 새 복사본을 구하십시오.
InvalidParameter=명령줄에 잘못된 매개변수가 전달되었습니다:%n%n%1
SetupAlreadyRunning=설치가 이미 실행 중입니다.
WindowsVersionNotSupported=이 프로그램은 현재 사용 중인 Windows 버전에서 실행할 수 없습니다. 올바른 Windows 아키텍처(32비트 또는 64비트)와 이 프로그램의 올바른 버전을 사용하는지 확인하십시오.
WindowsServicePackRequired=이 프로그램을 사용하려면 %1 서비스 팩 %2 이상이 필요합니다.
NotOnThisPlatform=이 프로그램은 %1에서 실행되지 않습니다.
OnlyOnThisPlatform=이 프로그램은 %1에서 실행되어야 합니다.
OnlyOnTheseArchitectures=이 프로그램은 다음 프로세서 아키텍처용으로 설계된 Windows 버전에만 설치할 수 있습니다:%n%n%1
WinVersionTooLowError=이 프로그램에는 %1 버전 %2 이상이 필요합니다.
WinVersionTooHighError=%1 버전 %2 이상에 이 프로그램을 설치할 수 없습니다.
AdminPrivilegesRequired=이 프로그램을 설치할 때 관리자로 로그인해야 합니다.
PowerUserPrivilegesRequired=이 프로그램을 설치할 때 관리자 또는 Power Users 그룹의 구성원으로 로그인해야 합니다.
SetupAppRunningError=설치에서 %1이(가) 현재 실행 중임을 감지했습니다.%n%n지금 모든 인스턴스를 닫은 다음 확인을 클릭하여 계속하거나 취소를 클릭하여 종료하십시오.
UninstallAppRunningError=제거에서 %1이(가) 현재 실행 중임을 감지했습니다.%n%n지금 모든 인스턴스를 닫은 다음 확인을 클릭하여 계속하거나 취소를 클릭하여 종료하십시오.
; *** Startup questions
PrivilegesRequiredOverrideTitle=설치 모드 선택
PrivilegesRequiredOverrideInstruction=설치 모드를 선택해 주십시오
PrivilegesRequiredOverrideText1=%1은 모든 사용자 (관리자 권한 필요) 또는 사용자용으로 설치합니다.
PrivilegesRequiredOverrideText2=%1은 현재 사용자 또는 모든 사용자 (관리자 권한 필요)용으로 설치합니다.
PrivilegesRequiredOverrideAllUsers=모든 사용자용으로 설치(&A)
PrivilegesRequiredOverrideAllUsersRecommended=모든 사용자용으로 설치 (추천)(&A)
PrivilegesRequiredOverrideCurrentUser=현재 사용자용으로 설치(&M)
PrivilegesRequiredOverrideCurrentUserRecommended=현재 사용자용으로 설치 (추천)(&M)
; *** Misc. errors
ErrorCreatingDir=설치 프로그램에서 "%1" 디렉터리를 만들지 못했습니다.
ErrorTooManyFilesInDir="%1" 디렉터리에 파일이 너무 많아서 파일을 만들 수 없습니다
; *** Setup common messages
ExitSetupTitle=설치 종료
ExitSetupMessage=설치가 완료되지 않았습니다. 지금 종료하면 프로그램이 설치되지 않습니다.%n%n설치를 다시 실행하여 설치를 완료할 수 있습니다.%n%n설치를 종료하시겠습니까?
AboutSetupMenuItem=설치 정보(&A)...
AboutSetupTitle=설치 정보
AboutSetupMessage=%1 버전 %2%n%3%n%n%1 홈 페이지:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< 뒤로(&B)
ButtonNext=다음(&N) >
ButtonInstall=설치(&I)
ButtonOK=확인
ButtonCancel=취소
ButtonYes=예(&Y)
ButtonYesToAll=모두 예(&A)
ButtonNo=아니오(&N)
ButtonNoToAll=모두 아니오(&O)
ButtonFinish=마침(&F)
ButtonBrowse=찾아보기(&B)...
ButtonWizardBrowse=찾아보기(&R)...
ButtonNewFolder=새 폴더 만들기(&M)
; *** "Select Language" dialog messages
SelectLanguageTitle=설치 언어 선택
SelectLanguageLabel=설치 중에 사용할 언어를 선택하십시오.
; *** Common wizard text
ClickNext=다음을 클릭하여 계속하거나 취소를 클릭하여 설치를 종료합니다.
BeveledLabel=
BrowseDialogTitle=폴더 찾아보기
BrowseDialogLabel=아래 목록에서 폴더를 선택한 후 확인을 클릭하십시오.
NewFolderName=새 폴더
; *** "Welcome" wizard page
WelcomeLabel1=[name] 설치 마법사에 오신 것을 환영합니다
WelcomeLabel2=컴퓨터에 [name/ver]가 설치됩니다.%n%n계속하기 전에 다른 모든 응용 프로그램을 닫는 것이 좋습니다.
; *** "Password" wizard page
WizardPassword=암호
PasswordLabel1=이 설치는 암호로 보호됩니다.
PasswordLabel3=암호를 입력한 후 다음을 클릭하여 계속하십시오. 암호는 대소문자를 구분합니다.
PasswordEditLabel=암호(&P):
IncorrectPassword=입력한 암호가 올바르지 않습니다. 다시 시도하십시오.
; *** "License Agreement" wizard page
WizardLicense=사용권 계약
LicenseLabel=계속하기 전에 다음 중요한 정보를 읽어보십시오.
LicenseLabel3=다음 사용권 계약을 읽어보십시오. 설치를 계속하기 전에 이 계약 조건에 동의해야 합니다.
LicenseAccepted=동의합니다(&A)
LicenseNotAccepted=동의하지 않습니다(&D)
; *** "Information" wizard pages
WizardInfoBefore=정보
InfoBeforeLabel=계속하기 전에 다음 중요한 정보를 읽어보십시오.
InfoBeforeClickLabel=설치를 계속할 준비가 되었으면 다음을 클릭합니다.
WizardInfoAfter=정보
InfoAfterLabel=계속하기 전에 다음 중요한 정보를 읽어보십시오.
InfoAfterClickLabel=설치를 계속할 준비가 되었으면 다음을 클릭합니다.
; *** "User Information" wizard page
WizardUserInfo=사용자 정보
UserInfoDesc=사용자 정보를 입력하십시오.
UserInfoName=사용자 이름(&U):
UserInfoOrg=조직(&O):
UserInfoSerial=일련 번호:(&S):
UserInfoNameRequired=이름을 입력해야 합니다.
; *** "Select Destination Location" wizard page
WizardSelectDir=대상 위치 선택
SelectDirDesc=[name]을(를) 어디에 설치하시겠습니까?
SelectDirLabel3=다음 폴더에 [name]을(를) 설치합니다.
SelectDirBrowseLabel=계속하려면 다음을 클릭합니다. 다른 폴더를 선택하려면 찾아보기를 클릭합니다.
DiskSpaceGBLabel=이 프로그램은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
DiskSpaceMBLabel=이 프로그램은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
CannotInstallToNetworkDrive=네트워크 드라이브에 설치할 수 없습니다.
CannotInstallToUNCPath=UNC 경로에 설치할 수 없습니다.
InvalidPath=드라이브 문자를 포함한 전체 경로를 입력해야 합니다. 예:%n%nC:\APP%n%n 또는 UNC 경로 형식:%n%n\\server\share
InvalidDrive=선택한 드라이브 또는 UNC 공유가 존재하지 않거나 액세스할 수 없습니다, 다른 경로를 선택하십시오.
DiskSpaceWarningTitle=디스크 공간이 부족합니다
DiskSpaceWarning=설치 시 최소 %1 KB 디스크 공간이 필요하지만, 선택한 드라이브의 여유 공간은 %2 KB 밖에 없습니다.%n%n그래도 계속하시겠습니까?
DirNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
InvalidDirName=폴더 이름이 유효하지 않습니다.
BadDirName32=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
DirExistsTitle=폴더가 존재합니다
DirExists=폴더 %n%n%1%n%n이(가) 이미 존재합니다, 그래도 해당 폴더에 설치하시겠습니까?
DirDoesntExistTitle=폴더가 존재하지 않습니다
DirDoesntExist=폴더 %n%n%1%n%n이(가) 존재하지 않습니다, 폴더를 만드시겠습니까?
; *** "Select Components" wizard page
WizardSelectComponents=구성 요소 선택
SelectComponentsDesc=어떤 구성 요소를 설치해야 합니까?
SelectComponentsLabel2=설치할 구성 요소를 선택하고 설치하지 않을 구성 요소를 지웁니다. 계속할 준비가 되면 다음을 클릭합니다.
FullInstallation=모두 설치
; 가능하면 'Compact'를 'Minimal'로 번역하지 마십시오 (귀하의 언어로 '최소'를 의미합니다).
CompactInstallation=최소 설치
CustomInstallation=사용자 지정 설치
NoUninstallWarningTitle=구성 요소가 존재합니다
NoUninstallWarning=다음 구성 요소가 컴퓨터에 이미 설치되어 있습니다: %n%n%1%n%n이러한 구성 요소를 선택해도 제거되지 않습니다.%n%n계속하시겠습니까?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=현재 선택은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
ComponentsDiskSpaceMBLabel=현재 선택은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=추가 작업 선택
SelectTasksDesc=어떤 추가 작업을 수행해야 합니까?
SelectTasksLabel2=[name]을(를) 설치하는 동안 수행할 추가 작업을 선택하고 다음을 클릭합니다.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=시작 메뉴 폴더 선택
SelectStartMenuFolderDesc=프로그램의 바로가기를 어디에 설치하시겠습니까?
SelectStartMenuFolderLabel3=설치는 다음 시작 메뉴 폴더에 프로그램 바로가기를 만듭니다.
SelectStartMenuFolderBrowseLabel=계속하려면 다음을 클릭합니다. 다른 폴더를 선택하려면 찾아보기를 클릭합니다.
MustEnterGroupName=폴더 이름을 입력하십시오.
GroupNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
InvalidGroupName=폴더 이름이 유효하지 않습니다.
BadGroupName=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
NoProgramGroupCheck2=시작 메뉴 폴더를 만들지 않음(&D)
; *** "Ready to Install" wizard page
WizardReady=설치 준비 완료
ReadyLabel1=[name]을(를) 컴퓨터에 설치할 준비가 되었습니다.
ReadyLabel2a=설치를 클릭하여 설치를 계속하거나 설정을 검토하거나 변경하려면 뒤로를 클릭합니다.
ReadyLabel2b=설치를 클릭하여 설치를 계속합니다.
ReadyMemoUserInfo=사용자 정보:
ReadyMemoDir=대상 위치:
ReadyMemoType=설치 유형:
ReadyMemoComponents=선택한 구성 요소:
ReadyMemoGroup=시작 메뉴 폴더:
ReadyMemoTasks=추가 작업:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=추가 파일 다운로드 중...
ButtonStopDownload=다운로드 중지(&S)
StopDownload=다운로드를 중지하시겠습니까?
ErrorDownloadAborted=다운로드가 중지되었습니다
ErrorDownloadFailed=다운로드에 실패했습니다: %1 %2
ErrorDownloadSizeFailed=크기를 가져오지 못했습니다: %1 %2
ErrorFileHash1=파일 해시에 실패했습니다: %1
ErrorFileHash2=잘못된 파일 해시: 예상 %1, 찾음 %2
ErrorProgress=잘못된 진행 상황: %1 / %2
ErrorFileSize=잘못된 파일 크기: 예상 %1, 찾음 %2
; *** "Preparing to Install" wizard page
WizardPreparing=설치 준비 중
PreparingDesc=컴퓨터에 [name] 설치를 준비하는 중입니다.
PreviousInstallNotCompleted=이전 프로그램의 설치/제거가 완료되지 않았습니다. 설치를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n컴퓨터를 재시작한 후 설치를 다시 실행하여 [name] 설치를 완료하십시오.
CannotContinue=설치를 계속할 수 없습니다. 종료하려면 취소를 클릭하십시오.
ApplicationsFound=다음 응용 프로그램에서 설치 프로그램에서 업데이트해야 하는 파일을 사용하고 있습니다. 이러한 응용 프로그램을 자동으로 닫도록 허용하는 것이 좋습니다.
ApplicationsFound2=다음 응용 프로그램에서 설치 프로그램에서 업데이트해야 하는 파일을 사용하고 있습니다. 이러한 응용 프로그램을 자동으로 닫도록 허용하는 것이 좋습니다. 설치가 완료되면 응용 프로그램을 다시 시작하려고 시도합니다.
CloseApplications=응용 프로그램 자동 닫기(&A)
DontCloseApplications=응용 프로그램을 닫지 않음(&D)
ErrorCloseApplications=모든 응용 프로그램을 자동으로 닫지 못했습니다. 계속하기 전에 설치 프로그램에서 업데이트해야 하는 파일을 사용하여 모든 응용 프로그램을 닫는 것이 좋습니다.
PrepareToInstallNeedsRestart=컴퓨터를 다시 시작해야 합니다. 컴퓨터를 다시 시작한 후 설치를 다시 실행하여 [name] 설치를 완료하십시오.%n%n지금 다시 시작하시겠습니까?
; *** "Installing" wizard page
WizardInstalling=설치 중
InstallingLabel=컴퓨터에 [name]을(를) 설치하는 동안 잠시 기다려 주십시오.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=[name] 설치 마법사 완료
FinishedLabelNoIcons=컴퓨터에 [name] 설치를 완료했습니다.
FinishedLabel=컴퓨터에 [name] 설치를 완료했습니다. 설치된 바로가기를 선택하여 응용 프로그램을 시작할 수 있습니다.
ClickFinish=설치를 종료하려면 마침을 클릭하십시오.
FinishedRestartLabel=[name] 설치를 완료하려면 컴퓨터를 다시 시작해야 합니다. 지금 다시 시작하시겠습니까?
FinishedRestartMessage=[name] 설치를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
ShowReadmeCheck=예, README 파일을 보고 싶습니다.
YesRadio=예, 지금 컴퓨터를 다시 시작합니다(&Y)
NoRadio=아니오, 나중에 컴퓨터를 다시 시작하겠습니다(&N)
; 예를 들어 'Run MyProg.exe'로 사용됩니다'
RunEntryExec=%1 실행
; 예를 들어 'Readme.txt 보기'로 사용됩니다'
RunEntryShellExec=%1 보기
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=설치에 다음 디스크가 필요합니다
SelectDiskLabel2=디스크 %1을(를) 삽입하고 확인을 클릭하십시오.%n%n이 디스크의 파일을 아래에 표시된 폴더 이외의 폴더에서 찾을 수 있으면 올바른 경로를 입력하거나 찾아보기를 클릭하십시오.
PathLabel=경로(&P):
FileNotInDir2="%1" 파일을 "%2"에서 찾을 수 없습니다. 올바른 디스크를 넣거나 다른 폴더를 선택하십시오.
SelectDirectoryLabel=다음 디스크의 위치를 지정하십시오.
; *** Installation phase messages
SetupAborted=설치가 완료되지 않았습니다.%n%n문제를 해결한 후 설치를 다시 실행하십시오.
AbortRetryIgnoreSelectAction=작업 선택
AbortRetryIgnoreRetry=재시도(&T)
AbortRetryIgnoreIgnore=오류를 무시하고 진행(&I)
AbortRetryIgnoreCancel=설치 취소
; *** Installation status messages
StatusClosingApplications=응용 프로그램을 닫는 중...
StatusCreateDirs=디렉터리를 만드는 중...
StatusExtractFiles=파일을 추출하는 중...
StatusCreateIcons=바로가기를 만드는 중...
StatusCreateIniEntries=INI 항목을 만드는 중...
StatusCreateRegistryEntries=레지스트리 항목을 만드는 중...
StatusRegisterFiles=파일을 등록하는 중...
StatusSavingUninstall=제거 정보를 저장하는 중...
StatusRunProgram=설치를 완료하는 중...
StatusRestartingApplications=응용 프로그램을 다시 시작하는 중...
StatusRollback=변경 내용을 롤백하는 중...
; *** Misc. errors
ErrorInternal2=내부 오류: %1
ErrorFunctionFailedNoCode=%1 실패
ErrorFunctionFailed=%1 실패; 코드 %2
ErrorFunctionFailedWithMessage=%1 실패, 코드: %2.%n%3
ErrorExecutingProgram=파일 실행 오류:%n%1
; *** Registry errors
ErrorRegOpenKey=레지스트리 키 열기 오류:%n%1\%2
ErrorRegCreateKey=레지스트리 키 생성 오류:%n%1\%2
ErrorRegWriteKey=레지스트리 키 쓰기 오류:%n%1\%2
; *** INI errors
ErrorIniEntry="%1" 파일에 INI 항목 만들기 오류입니다.
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=이 파일 건너뛰기 (추천하지 않음)(&S)
FileAbortRetryIgnoreIgnoreNotRecommended=오류를 무시하고 계속 (추천하지 않음)(&I)
SourceIsCorrupted=원본 파일이 손상되었습니다
SourceDoesntExist=원본 파일 "%1"이(가) 없습니다
ExistingFileReadOnly2=읽기 전용으로 표시되어 있으므로 기존 파일을 교체할 수 없습니다.
ExistingFileReadOnlyRetry=읽기 전용 속성을 제거하고 다시 시도(&R)
ExistingFileReadOnlyKeepExisting=기존 파일 유지(&K)
ErrorReadingExistingDest=기존 파일을 읽는 동안 오류 발생:
FileExistsSelectAction=작업 선택
FileExists2=파일이 이미 존재합니다.
FileExistsOverwriteExisting=기존 파일 덮어쓰기(&O)
FileExistsKeepExisting=기존 파일 유지(&K)
FileExistsOverwriteOrKeepAll=다음 충돌에 대해 이 작업 수행(&D)
ExistingFileNewerSelectAction=작업 선택
ExistingFileNewer2=설치 프로그램에서 설치하려는 파일보다 기존 파일이 더 최신입니다.
ExistingFileNewerOverwriteExisting=기존 파일 덮어쓰기(&O)
ExistingFileNewerKeepExisting=기존 파일 유지 (추천)(&K)
ExistingFileNewerOverwriteOrKeepAll=다음 충돌에 대해 이 작업 수행(&D)
ErrorChangingAttr=기존 파일의 속성을 변경하는 동안 오류 발생:
ErrorCreatingTemp=대상 디렉터리에 파일을 만드는 동안 오류 발생:
ErrorReadingSource=원본 파일을 읽는 동안 오류 발생:
ErrorCopying=파일을 복사하는 동안 오류 발생:
ErrorReplacingExistingFile=기존 파일을 교체하는 동안 오류 발생:
ErrorRestartReplace=RestartReplace 실패:
ErrorRenamingTemp=대상 디렉터리 내의 파일 이름을 바꾸는 동안 오류 발생:
ErrorRegisterServer=DLL/OCX를 등록할 수 없습니다: %1
ErrorRegSvr32Failed=종료 코드 %1로 인해 RegSvr32가 실패했습니다
ErrorRegisterTypeLib=유형 라이브러리를 등록할 수 없습니다: %1
; *** Uninstall display name markings
; 예를 들어 '내 프로그램'으로 사용됩니다 (32비트)'
UninstallDisplayNameMark=%1 (%2)비트
; 예를 들어 '내 프로그램'으로 사용됩니다 (32비트, 모든 사용자)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32비트
UninstallDisplayNameMark64Bit=64비트
UninstallDisplayNameMarkAllUsers=모든 사용자
UninstallDisplayNameMarkCurrentUser=현재 사용자
; *** Post-installation errors
ErrorOpeningReadme=README 파일을 여는 동안 오류가 발생했습니다.
ErrorRestartingComputer=컴퓨터를 다시 시작하지 못했습니다. 이 작업을 수동으로 수행하십시오.
; *** Uninstaller messages
UninstallNotFound="%1" 파일이 없습니다. 제거할 수 없습니다.
UninstallOpenError="%1" 파일을 열 수 없습니다. 제거할 수 없습니다
UninstallUnsupportedVer="%1" 제거 로그 파일이 현재 버전의 제거 프로그램에서 인식할 수 없는 형식입니다. 제거할 수 없습니다
UninstallUnknownEntry=제거 로그에 알 수 없는 항목 (%1)이 있습니다
ConfirmUninstall=%1 제거 마법사를 실행하시겠습니까?
UninstallOnlyOnWin64=이 설치는 64비트 Windows에서만 제거할 수 있습니다.
OnlyAdminCanUninstall=이 설치는 관리자 권한이 있는 사용자만 제거할 수 있습니다.
UninstallStatusLabel=%1이(가) 컴퓨터에서 제거되는 동안 기다려 주십시오.
UninstalledAll=%1이(가) 컴퓨터에서 성공적으로 제거되었습니다.
UninstalledMost=%1 제거가 완료되었습니다.%n%n일부 요소를 제거할 수 없습니다. 수동으로 제거할 수 있습니다.
UninstalledAndNeedsRestart=%1 제거를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
UninstallDataCorrupted="%1" 파일이 손상되었습니다. 제거할 수 없습니다.
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=공유 파일을 제거하시겠습니까?
ConfirmDeleteSharedFile2=시스템에 다음 공유 파일이 더 이상 어떤 프로그램에서도 사용되지 않는 것으로 표시됩니다. 제거에서 이 공유 파일을 제거하시겠습니까?%n%n이 파일을 계속 사용하고 있고 파일이 제거된 프로그램이 있으면 해당 프로그램이 제대로 작동하지 않을 수 있습니다. 확실하지 않은 경우 아니요를 선택합니다. 파일을 시스템에 남겨두어도 아무런 해가 되지 않습니다.
SharedFileNameLabel=파일 이름:
SharedFileLocationLabel=위치:
WizardUninstalling=제거 상태
StatusUninstalling=%1을(를) 제거하는 중...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=%1을(를) 설치하는 중입니다.
ShutdownBlockReasonUninstallingApp=%1을(를) 제거하는 중입니다.
; 아래 사용자 지정 메시지는 설치 프로그램 자체에서 사용하지 않지만
; 스크립트에서 사용할 경우 해당 메시지를 번역할 수 있습니다.
[CustomMessages]
NameAndVersion=%1 버전 %2
AdditionalIcons=바로가기 추가:
CreateDesktopIcon=바탕 화면에 바로가기 만들기(&D)
CreateQuickLaunchIcon=빠른 실행 아이콘 만들기(&Q)
ProgramOnTheWeb=%1 웹페이지
UninstallProgram=%1 제거
LaunchProgram=%1 실행
AssocFileExtension=%1을 %2 파일 확장자에 연결
AssocingFileExtension=%1을 %2 파일 확장자와 연결하는 중...
AutoStartProgramGroupDescription=시작:
AutoStartProgram=%1 자동 시작
AddonHostProgramNotFound=%1을(를) 선택한 폴더에서 찾을 수 없습니다.%n%n계속하시겠습니까?
; VCMI Custom Messages
SelectSetupInstallModeTitle=설치 모드 선택
SelectSetupInstallModeDesc=VCMI는 모든 사용자 또는 본인만을 위해 설치할 수 있습니다.
SelectSetupInstallModeSubTitle=선호하는 설치 모드를 선택하세요:
InstallForAllUsers=모든 사용자에게 설치
InstallForAllUsers1=관리자 권한이 필요합니다
InstallForMeOnly=본인만을 위해 설치
InstallForMeOnly1=게임을 처음 실행할 때 방화벽 알림이 표시됩니다
InstallForMeOnly2=방화벽 규칙을 허용하지 않으면 LAN 게임이 작동하지 않습니다
SystemIntegration=시스템 통합
CreateDesktopShortcuts=바탕 화면 바로 가기 생성
CreateStartMenuShortcuts=시작 메뉴 바로 가기 생성
AssociateH3MFiles=.h3m 파일을 VCMI 맵 에디터와 연결
AssociateVCMIMapFiles=.vmap 및 .vcmp 파일을 VCMI 맵 에디터와 연결
VCMISettings=VCMI 설정
AddFirewallRules=VCMI를 위한 방화벽 규칙 추가
CopyH3Files=필요한 Heroes III 파일을 VCMI로 자동 복사
RunVCMILauncherAfterInstall=VCMI 런처 실행
ShortcutMapEditor=VCMI 맵 에디터
ShortcutLauncher=VCMI 런처
ShortcutWebPage=VCMI 웹사이트
ShortcutDiscord=VCMI 디스코드
ShortcutLauncherComment=VCMI 런처 실행
ShortcutMapEditorComment=VCMI 맵 에디터 열기
ShortcutWebPageComment=VCMI 공식 웹사이트 방문
ShortcutDiscordComment=VCMI 공식 디스코드 방문
DeleteUserData=사용자 데이터 삭제
Uninstall=제거
Warning=경고
VMAPDescription=VCMI 맵 파일
VCMPDescription=VCMI 캠페인 파일
H3MDescription=Heroes 3 맵 파일

View File

@ -0,0 +1,410 @@
; *** Inno Setup version 6.1.0+ Polish messages ***
; Krzysztof Cynarski <krzysztof at cynarski.net>
; Proofreading, corrections and 5.5.7-6.1.0+ updates:
; �ukasz Abramczuk <lukasz.abramczuk at gmail.com>
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
; last update: 2020/07/26
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Polski
LanguageID=$0415
LanguageCodePage=1250
[Messages]
; *** Application titles
SetupAppTitle=Instalator
SetupWindowTitle=Instalacja - %1
UninstallAppTitle=Dezinstalator
UninstallAppFullTitle=Dezinstalacja - %1
; *** Misc. common
InformationTitle=Informacja
ConfirmTitle=Potwierd�
ErrorTitle=B��d
; *** SetupLdr messages
SetupLdrStartupMessage=Ten program zainstaluje aplikacj� %1. Czy chcesz kontynuowa�?
LdrCannotCreateTemp=Nie mo�na utworzy� pliku tymczasowego. Instalacja przerwana
LdrCannotExecTemp=Nie mo�na uruchomi� pliku z folderu tymczasowego. Instalacja przerwana
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nB��d %2: %3
SetupFileMissing=W folderze instalacyjnym brakuje pliku %1.%nProsz� o przywr�cenie brakuj�cych plik�w lub uzyskanie nowej kopii programu instalacyjnego.
SetupFileCorrupt=Pliki instalacyjne s� uszkodzone. Zaleca si� uzyskanie nowej kopii programu instalacyjnego.
SetupFileCorruptOrWrongVer=Pliki instalacyjne s� uszkodzone lub niezgodne z t� wersj� instalatora. Prosz� rozwi�za� problem lub uzyska� now� kopi� programu instalacyjnego.
InvalidParameter=W linii komend przekazano nieprawid�owy parametr:%n%n%1
SetupAlreadyRunning=Instalator jest ju� uruchomiony.
WindowsVersionNotSupported=Ten program nie moze zostac uruchomiony na uzywanej wersji systemu Windows. Upewnij sie, ze uzywasz odpowiedniej architektury systemu Windows (32-bitowej lub 64-bitowej) i wlasciwej wersji tego programu.
WindowsServicePackRequired=Ta aplikacja wymaga systemu %1 z dodatkiem Service Pack %2 lub nowszym.
NotOnThisPlatform=Tej aplikacji nie mo�na uruchomi� w systemie %1.
OnlyOnThisPlatform=Ta aplikacja wymaga systemu %1.
OnlyOnTheseArchitectures=Ta aplikacja mo�e by� uruchomiona tylko w systemie Windows zaprojektowanym dla procesor�w o architekturze:%n%n%1
WinVersionTooLowError=Ta aplikacja wymaga systemu %1 w wersji %2 lub nowszej.
WinVersionTooHighError=Ta aplikacja nie mo�e by� zainstalowana w systemie %1 w wersji %2 lub nowszej.
AdminPrivilegesRequired=Aby przeprowadzi� instalacj� tej aplikacji, konto u�ytkownika systemu musi posiada� uprawnienia administratora.
PowerUserPrivilegesRequired=Aby przeprowadzi� instalacj� tej aplikacji, konto u�ytkownika systemu musi posiada� uprawnienia administratora lub u�ytkownika zaawansowanego.
SetupAppRunningError=Instalator wykry�, i� aplikacja %1 jest aktualnie uruchomiona.%n%nPrzed wci�ni�ciem przycisku OK zamknij wszystkie procesy aplikacji. Kliknij przycisk Anuluj, aby przerwa� instalacj�.
UninstallAppRunningError=Dezinstalator wykry�, i� aplikacja %1 jest aktualnie uruchomiona.%n%nPrzed wci�ni�ciem przycisku OK zamknij wszystkie procesy aplikacji. Kliknij przycisk Anuluj, aby przerwa� dezinstalacj�.
; *** Startup questions ---
PrivilegesRequiredOverrideTitle=Wybierz typ instalacji aplikacji
PrivilegesRequiredOverrideInstruction=Wybierz typ instalacji
PrivilegesRequiredOverrideText1=Aplikacja %1 mo�e zosta� zainstalowana dla wszystkich u�ytkownik�w (wymagane s� uprawnienia administratora) lub tylko dla bie��cego u�ytkownika.
PrivilegesRequiredOverrideText2=Aplikacja %1 mo�e zosta� zainstalowana dla bie��cego u�ytkownika lub wszystkich u�ytkownik�w (wymagane s� uprawnienia administratora).
PrivilegesRequiredOverrideAllUsers=Zainstaluj dla &wszystkich u�ytkownik�w
PrivilegesRequiredOverrideAllUsersRecommended=Zainstaluj dla &wszystkich u�ytkownik�w (zalecane)
PrivilegesRequiredOverrideCurrentUser=Zainstaluj dla &bie��cego u�ytkownika
PrivilegesRequiredOverrideCurrentUserRecommended=Zainstaluj dla &bie��cego u�ytkownika (zalecane)
; *** Misc. errors
ErrorCreatingDir=Instalator nie m�g� utworzy� katalogu "%1"
ErrorTooManyFilesInDir=Nie mo�na utworzy� pliku w katalogu "%1", poniewa� zawiera on zbyt wiele plik�w
; *** Setup common messages
ExitSetupTitle=Zako�cz instalacj�
ExitSetupMessage=Instalacja nie zosta�a zako�czona. Je�eli przerwiesz j� teraz, aplikacja nie zostanie zainstalowana. Mo�na ponowi� instalacj� p��niej poprzez uruchamianie instalatora.%n%nCzy chcesz przerwa� instalacj�?
AboutSetupMenuItem=&O instalatorze...
AboutSetupTitle=O instalatorze
AboutSetupMessage=%1 wersja %2%n%3%n%n Strona domowa %1:%n%4
AboutSetupNote=
TranslatorNote=Wersja polska: Krzysztof Cynarski%n<krzysztof at cynarski.net>%nOd wersji 5.5.7: �ukasz Abramczuk%n<lukasz.abramczuk at gmail.com>
; *** Buttons
ButtonBack=< &Wstecz
ButtonNext=&Dalej >
ButtonInstall=&Instaluj
ButtonOK=OK
ButtonCancel=Anuluj
ButtonYes=&Tak
ButtonYesToAll=Tak na &wszystkie
ButtonNo=&Nie
ButtonNoToAll=N&ie na wszystkie
ButtonFinish=&Zako�cz
ButtonBrowse=&Przegl�daj...
ButtonWizardBrowse=P&rzegl�daj...
ButtonNewFolder=&Utw�rz nowy folder
; *** "Select Language" dialog messages
SelectLanguageTitle=J�zyk instalacji
SelectLanguageLabel=Wybierz j�zyk u�ywany podczas instalacji:
; *** Common wizard text
ClickNext=Kliknij przycisk Dalej, aby kontynuowa�, lub Anuluj, aby zako�czy� instalacj�.
BeveledLabel=
BrowseDialogTitle=Wska� folder
BrowseDialogLabel=Wybierz folder z poni�szej listy, a nast�pnie kliknij przycisk OK.
NewFolderName=Nowy folder
; *** "Welcome" wizard page
WelcomeLabel1=Witamy w instalatorze aplikacji [name]
WelcomeLabel2=Aplikacja [name/ver] zostanie teraz zainstalowana na komputerze.%n%nZalecane jest zamkni�cie wszystkich innych uruchomionych program�w przed rozpocz�ciem procesu instalacji.
; *** "Password" wizard page
WizardPassword=Has�o
PasswordLabel1=Ta instalacja jest zabezpieczona has�em.
PasswordLabel3=Podaj has�o, a nast�pnie kliknij przycisk Dalej, aby kontynuowa�. W has�ach rozr��niane s� wielkie i ma�e litery.
PasswordEditLabel=&Has�o:
IncorrectPassword=Wprowadzone has�o jest nieprawid�owe. Spr�buj ponownie.
; *** "License Agreement" wizard page
WizardLicense=Umowa Licencyjna
LicenseLabel=Przed kontynuacj� nale�y zapozna� si� z poni�sz� wa�n� informacj�.
LicenseLabel3=Prosz� przeczyta� tekst Umowy Licencyjnej. Przed kontynuacj� instalacji nale�y zaakceptowa� warunki umowy.
LicenseAccepted=&Akceptuj� warunki umowy
LicenseNotAccepted=&Nie akceptuj� warunk�w umowy
; *** "Information" wizard pages
WizardInfoBefore=Informacja
InfoBeforeLabel=Przed kontynuacj� nale�y zapozna� si� z poni�sz� informacj�.
InfoBeforeClickLabel=Kiedy b�dziesz gotowy do instalacji, kliknij przycisk Dalej.
WizardInfoAfter=Informacja
InfoAfterLabel=Przed kontynuacj� nale�y zapozna� si� z poni�sz� informacj�.
InfoAfterClickLabel=Gdy b�dziesz gotowy do zako�czenia instalacji, kliknij przycisk Dalej.
; *** "User Information" wizard page
WizardUserInfo=Dane u�ytkownika
UserInfoDesc=Prosz� poda� swoje dane.
UserInfoName=Nazwa &u�ytkownika:
UserInfoOrg=&Organizacja:
UserInfoSerial=Numer &seryjny:
UserInfoNameRequired=Nazwa u�ytkownika jest wymagana.
; *** "Select Destination Location" wizard page
WizardSelectDir=Lokalizacja docelowa
SelectDirDesc=Gdzie ma zosta� zainstalowana aplikacja [name]?
SelectDirLabel3=Instalator zainstaluje aplikacj� [name] do wskazanego poni�ej folderu.
SelectDirBrowseLabel=Kliknij przycisk Dalej, aby kontynuowa�. Je�li chcesz wskaza� inny folder, kliknij przycisk Przegl�daj.
DiskSpaceGBLabel=Instalacja wymaga przynajmniej [gb] GB wolnego miejsca na dysku.
DiskSpaceMBLabel=Instalacja wymaga przynajmniej [mb] MB wolnego miejsca na dysku.
CannotInstallToNetworkDrive=Instalator nie mo�e zainstalowa� aplikacji na dysku sieciowym.
CannotInstallToUNCPath=Instalator nie mo�e zainstalowa� aplikacji w �cie�ce UNC.
InvalidPath=Nale�y wprowadzi� pe�n� �cie�k� wraz z liter� dysku, np.:%n%nC:\PROGRAM%n%nlub �cie�k� sieciow� (UNC) w formacie:%n%n\\serwer\udzia�
InvalidDrive=Wybrany dysk lub udost�pniony folder sieciowy nie istnieje. Prosz� wybra� inny.
DiskSpaceWarningTitle=Niewystarczaj�ca ilo�� wolnego miejsca na dysku
DiskSpaceWarning=Instalator wymaga co najmniej %1 KB wolnego miejsca na dysku. Wybrany dysk posiada tylko %2 KB dost�pnego miejsca.%n%nCzy mimo to chcesz kontynuowa�?
DirNameTooLong=Nazwa folderu lub �cie�ki jest za d�uga.
InvalidDirName=Niepoprawna nazwa folderu.
BadDirName32=Nazwa folderu nie mo�e zawiera� �adnego z nast�puj�cych znak�w:%n%n%1
DirExistsTitle=Folder ju� istnieje
DirExists=Poni�szy folder ju� istnieje:%n%n%1%n%nCzy mimo to chcesz zainstalowa� aplikacj� w tym folderze?
DirDoesntExistTitle=Folder nie istnieje
DirDoesntExist=Poni�szy folder nie istnieje:%n%n%1%n%nCzy chcesz, aby zosta� utworzony?
; *** "Select Components" wizard page
WizardSelectComponents=Komponenty instalacji
SelectComponentsDesc=Kt�re komponenty maj� zosta� zainstalowane?
SelectComponentsLabel2=Zaznacz komponenty, kt�re chcesz zainstalowa� i odznacz te, kt�rych nie chcesz zainstalowa�. Kliknij przycisk Dalej, aby kontynuowa�.
FullInstallation=Instalacja pe�na
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Instalacja podstawowa
CustomInstallation=Instalacja u�ytkownika
NoUninstallWarningTitle=Zainstalowane komponenty
NoUninstallWarning=Instalator wykry�, �e na komputerze s� ju� zainstalowane nast�puj�ce komponenty:%n%n%1%n%nOdznaczenie kt�regokolwiek z nich nie spowoduje ich dezinstalacji.%n%nCzy pomimo tego chcesz kontynuowa�?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Wybrane komponenty wymagaj� co najmniej [gb] GB na dysku.
ComponentsDiskSpaceMBLabel=Wybrane komponenty wymagaj� co najmniej [mb] MB na dysku.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Zadania dodatkowe
SelectTasksDesc=Kt�re zadania dodatkowe maj� zosta� wykonane?
SelectTasksLabel2=Zaznacz dodatkowe zadania, kt�re instalator ma wykona� podczas instalacji aplikacji [name], a nast�pnie kliknij przycisk Dalej, aby kontynuowa�.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Folder Menu Start
SelectStartMenuFolderDesc=Gdzie maj� zosta� umieszczone skr�ty do aplikacji?
SelectStartMenuFolderLabel3=Instalator utworzy skr�ty do aplikacji we wskazanym poni�ej folderze Menu Start.
SelectStartMenuFolderBrowseLabel=Kliknij przycisk Dalej, aby kontynuowa�. Je�li chcesz wskaza� inny folder, kliknij przycisk Przegl�daj.
MustEnterGroupName=Musisz wprowadzi� nazw� folderu.
GroupNameTooLong=Nazwa folderu lub �cie�ki jest za d�uga.
InvalidGroupName=Niepoprawna nazwa folderu.
BadGroupName=Nazwa folderu nie mo�e zawiera� �adnego z nast�puj�cych znak�w:%n%n%1
NoProgramGroupCheck2=&Nie tw�rz folderu w Menu Start
; *** "Ready to Install" wizard page
WizardReady=Gotowy do rozpocz�cia instalacji
ReadyLabel1=Instalator jest ju� gotowy do rozpocz�cia instalacji aplikacji [name] na komputerze.
ReadyLabel2a=Kliknij przycisk Instaluj, aby rozpocz�� instalacj� lub Wstecz, je�li chcesz przejrze� lub zmieni� ustawienia.
ReadyLabel2b=Kliknij przycisk Instaluj, aby kontynuowa� instalacj�.
ReadyMemoUserInfo=Dane u�ytkownika:
ReadyMemoDir=Lokalizacja docelowa:
ReadyMemoType=Rodzaj instalacji:
ReadyMemoComponents=Wybrane komponenty:
ReadyMemoGroup=Folder w Menu Start:
ReadyMemoTasks=Dodatkowe zadania:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Pobieranie dodatkowych plik�w...
ButtonStopDownload=&Zatrzymaj pobieranie
StopDownload=Czy na pewno chcesz zatrzyma� pobieranie?
ErrorDownloadAborted=Pobieranie przerwane
ErrorDownloadFailed=B��d pobierania: %1 %2
ErrorDownloadSizeFailed=Pobieranie informacji o rozmiarze nie powiod�o si�: %1 %2
ErrorFileHash1=B��d sumy kontrolnej pliku: %1
ErrorFileHash2=Nieprawid�owa suma kontrolna pliku: oczekiwano %1, otrzymano %2
ErrorProgress=Nieprawid�owy post�p: %1 z %2
ErrorFileSize=Nieprawid�owy rozmiar pliku: oczekiwano %1, otrzymano %2
; *** "Preparing to Install" wizard page
WizardPreparing=Przygotowanie do instalacji
PreparingDesc=Instalator przygotowuje instalacj� aplikacji [name] na komputerze.
PreviousInstallNotCompleted=Instalacja/dezinstalacja poprzedniej wersji aplikacji nie zosta�a zako�czona. Aby zako�czy� instalacj�, nale�y ponownie uruchomi� komputer. %n%nNast�pnie ponownie uruchom instalator, aby zako�czy� instalacj� aplikacji [name].
CannotContinue=Instalator nie mo�e kontynuowa�. Kliknij przycisk Anuluj, aby przerwa� instalacj�.
ApplicationsFound=Poni�sze aplikacje u�ywaj� plik�w, kt�re musz� zosta� uaktualnione przez instalator. Zaleca si� zezwoli� na automatyczne zamkni�cie tych aplikacji przez program instalacyjny.
ApplicationsFound2=Poni�sze aplikacje u�ywaj� plik�w, kt�re musz� zosta� uaktualnione przez instalator. Zaleca si� zezwoli� na automatyczne zamkni�cie tych aplikacji przez program instalacyjny. Po zako�czonej instalacji instalator podejmie pr�b� ich ponownego uruchomienia.
CloseApplications=&Automatycznie zamknij aplikacje
DontCloseApplications=&Nie zamykaj aplikacji
ErrorCloseApplications=Instalator nie by� w stanie automatycznie zamkn�� wymaganych aplikacji. Zalecane jest zamkni�cie wszystkich aplikacji, kt�re aktualnie u�ywaj� uaktualnianych przez program instalacyjny plik�w.
PrepareToInstallNeedsRestart=Instalator wymaga ponownego uruchomienia komputera. Po restarcie komputera uruchom instalator ponownie, by doko�czy� proces instalacji aplikacji [name].%n%nCzy chcesz teraz uruchomi� komputer ponownie?
; *** "Installing" wizard page
WizardInstalling=Instalacja
InstallingLabel=Poczekaj, a� instalator zainstaluje aplikacj� [name] na komputerze.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Zako�czono instalacj� aplikacji [name]
FinishedLabelNoIcons=Instalator zako�czy� instalacj� aplikacji [name] na komputerze.
FinishedLabel=Instalator zako�czy� instalacj� aplikacji [name] na komputerze. Aplikacja mo�e by� uruchomiona poprzez u�ycie zainstalowanych skr�t�w.
ClickFinish=Kliknij przycisk Zako�cz, aby zako�czy� instalacj�.
FinishedRestartLabel=Aby zako�czy� instalacj� aplikacji [name], instalator musi ponownie uruchomi� komputer. Czy chcesz teraz uruchomi� komputer ponownie?
FinishedRestartMessage=Aby zako�czy� instalacj� aplikacji [name], instalator musi ponownie uruchomi� komputer.%n%nCzy chcesz teraz uruchomi� komputer ponownie?
ShowReadmeCheck=Tak, chc� przeczyta� dodatkowe informacje
YesRadio=&Tak, uruchom ponownie teraz
NoRadio=&Nie, uruchomi� ponownie p��niej
; used for example as 'Run MyProg.exe'
RunEntryExec=Uruchom aplikacj� %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Wy�wietl plik %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Instalator potrzebuje kolejnego archiwum
SelectDiskLabel2=Prosz� w�o�y� dysk %1 i klikn�� przycisk OK.%n%nJe�li wymieniony poni�ej folder nie okre�la po�o�enia plik�w z tego dysku, prosz� wprowadzi� poprawn� �cie�k� lub klikn�� przycisk Przegl�daj.
PathLabel=�&cie�ka:
FileNotInDir2=�cie�ka "%2" nie zawiera pliku "%1". Prosz� w�o�y� w�a�ciwy dysk lub wybra� inny folder.
SelectDirectoryLabel=Prosz� okre�li� lokalizacj� kolejnego archiwum instalatora.
; *** Installation phase messages
SetupAborted=Instalacja nie zosta�a zako�czona.%n%nProsz� rozwi�za� problem i ponownie rozpocz�� instalacj�.
AbortRetryIgnoreSelectAction=Wybierz operacj�
AbortRetryIgnoreRetry=Spr�buj &ponownie
AbortRetryIgnoreIgnore=Z&ignoruj b��d i kontynuuj
AbortRetryIgnoreCancel=Przerwij instalacj�
; *** Installation status messages
StatusClosingApplications=Zamykanie aplikacji...
StatusCreateDirs=Tworzenie folder�w...
StatusExtractFiles=Dekompresja plik�w...
StatusCreateIcons=Tworzenie skr�t�w aplikacji...
StatusCreateIniEntries=Tworzenie zapis�w w plikach INI...
StatusCreateRegistryEntries=Tworzenie zapis�w w rejestrze...
StatusRegisterFiles=Rejestracja plik�w...
StatusSavingUninstall=Zapisywanie informacji o dezinstalacji...
StatusRunProgram=Ko�czenie instalacji...
StatusRestartingApplications=Ponowne uruchamianie aplikacji...
StatusRollback=Cofanie zmian...
; *** Misc. errors
ErrorInternal2=Wewn�trzny b��d: %1
ErrorFunctionFailedNoCode=B��d podczas wykonywania %1
ErrorFunctionFailed=B��d podczas wykonywania %1; kod %2
ErrorFunctionFailedWithMessage=B��d podczas wykonywania %1; kod %2.%n%3
ErrorExecutingProgram=Nie mo�na uruchomi�:%n%1
; *** Registry errors
ErrorRegOpenKey=B��d podczas otwierania klucza rejestru:%n%1\%2
ErrorRegCreateKey=B��d podczas tworzenia klucza rejestru:%n%1\%2
ErrorRegWriteKey=B��d podczas zapisu do klucza rejestru:%n%1\%2
; *** INI errors
ErrorIniEntry=B��d podczas tworzenia pozycji w pliku INI: "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Pomi� plik (niezalecane)
FileAbortRetryIgnoreIgnoreNotRecommended=Z&ignoruj b��d i kontynuuj (niezalecane)
SourceIsCorrupted=Plik �r�d�owy jest uszkodzony
SourceDoesntExist=Plik �r�d�owy "%1" nie istnieje
ExistingFileReadOnly2=Istniej�cy plik nie mo�e zosta� zast�piony, gdy� jest oznaczony jako "Tylko do odczytu".
ExistingFileReadOnlyRetry=&Usu� atrybut "Tylko do odczytu" i spr�buj ponownie
ExistingFileReadOnlyKeepExisting=&Zachowaj istniej�cy plik
ErrorReadingExistingDest=Wyst�pi� b��d podczas pr�by odczytu istniej�cego pliku:
FileExistsSelectAction=Wybierz czynno��
FileExists2=Plik ju� istnieje.
FileExistsOverwriteExisting=&Nadpisz istniej�cy plik
FileExistsKeepExisting=&Zachowaj istniej�cy plik
FileExistsOverwriteOrKeepAll=&Wykonaj t� czynno�� dla kolejnych przypadk�w
ExistingFileNewerSelectAction=Wybierz czynno��
ExistingFileNewer2=Istniej�cy plik jest nowszy ni� ten, kt�ry instalator pr�buje skopiowa�.
ExistingFileNewerOverwriteExisting=&Nadpisz istniej�cy plik
ExistingFileNewerKeepExisting=&Zachowaj istniej�cy plik (zalecane)
ExistingFileNewerOverwriteOrKeepAll=&Wykonaj t� czynno�� dla kolejnych przypadk�w
ErrorChangingAttr=Wyst�pi� b��d podczas pr�by zmiany atrybut�w pliku docelowego:
ErrorCreatingTemp=Wyst�pi� b��d podczas pr�by utworzenia pliku w folderze docelowym:
ErrorReadingSource=Wyst�pi� b��d podczas pr�by odczytu pliku �r�d�owego:
ErrorCopying=Wyst�pi� b��d podczas pr�by kopiowania pliku:
ErrorReplacingExistingFile=Wyst�pi� b��d podczas pr�by zamiany istniej�cego pliku:
ErrorRestartReplace=Pr�ba zast�pienia plik�w przy ponownym uruchomieniu komputera nie powiod�a si�.
ErrorRenamingTemp=Wyst�pi� b��d podczas pr�by zmiany nazwy pliku w folderze docelowym:
ErrorRegisterServer=Nie mo�na zarejestrowa� DLL/OCX: %1
ErrorRegSvr32Failed=Funkcja RegSvr32 zako�czy�a si� z kodem b��du %1
ErrorRegisterTypeLib=Nie mog� zarejestrowa� biblioteki typ�w: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=wersja 32-bitowa
UninstallDisplayNameMark64Bit=wersja 64-bitowa
UninstallDisplayNameMarkAllUsers=wszyscy u�ytkownicy
UninstallDisplayNameMarkCurrentUser=bie��cy u�ytkownik
; *** Post-installation errors
ErrorOpeningReadme=Wyst�pi� b��d podczas pr�by otwarcia pliku z informacjami dodatkowymi.
ErrorRestartingComputer=Instalator nie m�g� ponownie uruchomi� tego komputera. Prosz� wykona� t� czynno�� samodzielnie.
; *** Uninstaller messages
UninstallNotFound=Plik "%1" nie istnieje. Nie mo�na przeprowadzi� dezinstalacji.
UninstallOpenError=Plik "%1" nie m�g� zosta� otwarty. Nie mo�na przeprowadzi� dezinstalacji.
UninstallUnsupportedVer=Ta wersja programu dezinstalacyjnego nie rozpoznaje formatu logu dezinstalacji w pliku "%1". Nie mo�na przeprowadzi� dezinstalacji.
UninstallUnknownEntry=W logu dezinstalacji wyst�pi�a nieznana pozycja (%1)
ConfirmUninstall=Czy na pewno chcesz uruchomic kreatora deinstalacji %1?
UninstallOnlyOnWin64=Ta aplikacja mo�e by� odinstalowana tylko w 64-bitowej wersji systemu Windows.
OnlyAdminCanUninstall=Ta instalacja mo�e by� odinstalowana tylko przez u�ytkownika z uprawnieniami administratora.
UninstallStatusLabel=Poczekaj, a� aplikacja %1 zostanie usuni�ta z komputera.
UninstalledAll=Aplikacja %1 zosta�a usuni�ta z komputera.
UninstalledMost=Dezinstalacja aplikacji %1 zako�czy�a si�.%n%nNiekt�re elementy nie mog�y zosta� usuni�te. Nale�y usun�� je samodzielnie.
UninstalledAndNeedsRestart=Komputer musi zosta� ponownie uruchomiony, aby zako�czy� proces dezinstalacji aplikacji %1.%n%nCzy chcesz teraz ponownie uruchomi� komputer?
UninstallDataCorrupted=Plik "%1" jest uszkodzony. Nie mo�na przeprowadzi� dezinstalacji.
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Usun�� plik wsp��dzielony?
ConfirmDeleteSharedFile2=System wskazuje, i� nast�puj�cy plik nie jest ju� u�ywany przez �aden program. Czy chcesz odinstalowa� ten plik wsp��dzielony?%n%nJe�li inne programy nadal u�ywaj� tego pliku, a zostanie on usuni�ty, mog� one przesta� dzia�a� prawid�owo. W przypadku braku pewno�ci, kliknij przycisk Nie. Pozostawienie tego pliku w systemie nie spowoduje �adnych szk�d.
SharedFileNameLabel=Nazwa pliku:
SharedFileLocationLabel=Po�o�enie:
WizardUninstalling=Stan dezinstalacji
StatusUninstalling=Dezinstalacja aplikacji %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Instalacja aplikacji %1.
ShutdownBlockReasonUninstallingApp=Dezinstalacja aplikacji %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 (wersja %2)
AdditionalIcons=Dodatkowe skr�ty:
CreateDesktopIcon=Utw�rz skr�t na &pulpicie
CreateQuickLaunchIcon=Utw�rz skr�t na pasku &szybkiego uruchamiania
ProgramOnTheWeb=Strona internetowa aplikacji %1
UninstallProgram=Dezinstalacja aplikacji %1
LaunchProgram=Uruchom aplikacj� %1
AssocFileExtension=&Przypisz aplikacj� %1 do rozszerzenia pliku %2
AssocingFileExtension=Przypisywanie aplikacji %1 do rozszerzenia pliku %2...
AutoStartProgramGroupDescription=Autostart:
AutoStartProgram=Automatycznie uruchamiaj aplikacj� %1
AddonHostProgramNotFound=Aplikacja %1 nie zosta�a znaleziona we wskazanym przez Ciebie folderze.%n%nCzy pomimo tego chcesz kontynuowa�?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Wybierz tryb instalacji
SelectSetupInstallModeDesc=VCMI moze zostac zainstalowane dla wszystkich uzytkownik�w lub tylko dla Ciebie.
SelectSetupInstallModeSubTitle=Wybierz preferowany tryb instalacji:
InstallForAllUsers=Zainstaluj dla wszystkich uzytkownik�w
InstallForAllUsers1=Wymagane uprawnienia administratora
InstallForMeOnly=Zainstaluj tylko dla mnie
InstallForMeOnly1=Podczas pierwszego uruchomienia gry pojawi sie komunikat zapory
InstallForMeOnly2=Gry LAN nie beda dzialac, jesli regula zapory nie zostanie zaakceptowana
SystemIntegration=Integracja z systemem
CreateDesktopShortcuts=Utw�rz skr�ty na pulpicie
CreateStartMenuShortcuts=Utw�rz skr�ty w menu Start
AssociateH3MFiles=Powiaz pliki .h3m z Edytorem Map VCMI
AssociateVCMIMapFiles=Powiaz pliki .vmap i .vcmp z Edytorem Map VCMI
VCMISettings=Konfiguracja VCMI
AddFirewallRules=Dodaj reguly zapory dla VCMI
CopyH3Files=Automatycznie skopiuj wymagane pliki Heroes III do VCMI
RunVCMILauncherAfterInstall=Uruchom Launcher VCMI
ShortcutMapEditor=Edytor Map VCMI
ShortcutLauncher=Launcher VCMI
ShortcutWebPage=Strona internetowa VCMI
ShortcutDiscord=Discord VCMI
ShortcutLauncherComment=Uruchom Launcher VCMI
ShortcutMapEditorComment=Otw�rz Edytor Map VCMI
ShortcutWebPageComment=Odwiedz oficjalna strone VCMI
ShortcutDiscordComment=Odwiedz oficjalny Discord VCMI
DeleteUserData=Usun dane uzytkownika
Uninstall=Odinstaluj
Warning=Ostrzezenie
VMAPDescription=Plik mapy VCMI
VCMPDescription=Plik kampanii VCMI
H3MDescription=Plik mapy Heroes 3

View File

@ -0,0 +1,403 @@
; *** Inno Setup version 6.1.0+ Russian messages ***
;
; Translated from English by Dmitry Kann, yktooo at gmail.com
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
LanguageName=<0420><0443><0441><0441><043A><0438><0439>
LanguageID=$0419
LanguageCodePage=1251
[Messages]
; *** Application titles
SetupAppTitle=���������
SetupWindowTitle=��������� � %1
UninstallAppTitle=�������������
UninstallAppFullTitle=������������� � %1
; *** Misc. common
InformationTitle=����������
ConfirmTitle=�������������
ErrorTitle=������
; *** SetupLdr messages
SetupLdrStartupMessage=������ ��������� ��������� %1 �� ��� ���������, ����������?
LdrCannotCreateTemp=���������� ������� ��������� ����. ��������� ��������
LdrCannotExecTemp=���������� ��������� ���� �� ��������� ��������. ��������� ��������
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%n������ %2: %3
SetupFileMissing=���� %1 ����������� � ����� ���������. ����������, ��������� �������� ��� �������� ����� ������ ���������.
SetupFileCorrupt=������������ ����� ����������. ����������, �������� ����� ����� ���������.
SetupFileCorruptOrWrongVer=��� ������������ ����� ���������� ��� ������������ � ������ ������� ��������� ���������. ����������, ��������� �������� ��� �������� ����� ����� ���������.
InvalidParameter=��������� ������ �������� ������������ ��������:%n%n%1
SetupAlreadyRunning=��������� ��������� ��� ��������.
WindowsVersionNotSupported=��� ��������� �� ����� �������� � ����� ������� Windows. ���������, ��� �� ����������� ���������� ����������� Windows (32-������ ��� 64-������) � ��������������� ������ ���������.
WindowsServicePackRequired=��� ��������� ������� %1 Service Pack %2 ��� ����� ������� ������.
NotOnThisPlatform=��� ��������� �� ����� �������� � %1.
OnlyOnThisPlatform=��� ��������� ����� ��������� ������ � %1.
OnlyOnTheseArchitectures=��������� ���� ��������� �������� ������ � ������� Windows ��� ��������� ���������� �����������:%n%n%1
WinVersionTooLowError=��� ��������� ������� %1 ������ %2 ��� ����.
WinVersionTooHighError=��������� �� ����� ���� ����������� � %1 ������ %2 ��� ����.
AdminPrivilegesRequired=����� ���������� ������ ���������, �� ������ ��������� ���� � ������� ��� �������������.
PowerUserPrivilegesRequired=����� ���������� ��� ���������, �� ������ ��������� ���� � ������� ��� ������������� ��� ���� ������ �������� ������������� (Power Users).
SetupAppRunningError=��������� ���������� ��������� %1.%n%n����������, �������� ��� ���������� ����������, ����� ������� �OK�, ����� ����������, ��� ��������, ����� �����.
UninstallAppRunningError=������������� ��������� ���������� ��������� %1.%n%n����������, �������� ��� ���������� ����������, ����� ������� �OK�, ����� ����������, ��� ��������, ����� �����.
; *** Startup questions
PrivilegesRequiredOverrideTitle=����� ������ ���������
PrivilegesRequiredOverrideInstruction=�������� ����� ���������
PrivilegesRequiredOverrideText1=%1 ����� ���� ����������� ���� ��� ���� ������������� (��������� ���������� ��������������), ���� ������ ��� ���.
PrivilegesRequiredOverrideText2=%1 ����� ���� ����������� ���� ������ ��� ���, ���� ��� ���� ������������� (��������� ���������� ��������������).
PrivilegesRequiredOverrideAllUsers=���������� ��� &���� �������������
PrivilegesRequiredOverrideAllUsersRecommended=���������� ��� &���� ������������� (�������������)
PrivilegesRequiredOverrideCurrentUser=���������� ������ ��� &����
PrivilegesRequiredOverrideCurrentUserRecommended=���������� ������ ��� &���� (�������������)
; *** Misc. errors
ErrorCreatingDir=���������� ������� ����� "%1"
ErrorTooManyFilesInDir=���������� ������� ���� � �������� "%1", ��� ��� � ��� ������� ����� ������
; *** Setup common messages
ExitSetupTitle=����� �� ��������� ���������
ExitSetupMessage=��������� �� ���������. ���� �� �������, ��������� �� ����� �����������.%n%n�� ������� ��������� ���������, �������� ��������� ��������� �����.%n%n����� �� ��������� ���������?
AboutSetupMenuItem=&� ���������...
AboutSetupTitle=� ���������
AboutSetupMessage=%1, ������ %2%n%3%n%n���� %1:%n%4
AboutSetupNote=
TranslatorNote=Russian translation by Dmitry Kann, http://www.dk-soft.org/
; *** Buttons
ButtonBack=< &�����
ButtonNext=&����� >
ButtonInstall=&����������
ButtonOK=OK
ButtonCancel=������
ButtonYes=&��
ButtonYesToAll=�� ��� &����
ButtonNo=&���
ButtonNoToAll=�&�� ��� ����
ButtonFinish=&���������
ButtonBrowse=&�����...
ButtonWizardBrowse=&�����...
ButtonNewFolder=&������� �����
; *** "Select Language" dialog messages
SelectLanguageTitle=�������� ���� ���������
SelectLanguageLabel=�������� ����, ������� ����� ����������� � �������� ���������.
; *** Common wizard text
ClickNext=������� �������, ����� ����������, ��� ��������, ����� ����� �� ��������� ���������.
BeveledLabel=
BrowseDialogTitle=����� �����
BrowseDialogLabel=�������� ����� �� ������ � ������� ��ʻ.
NewFolderName=����� �����
; *** "Welcome" wizard page
WelcomeLabel1=��� ������������ ������ ��������� [name]
WelcomeLabel2=��������� ��������� [name/ver] �� ��� ���������.%n%n������������� ������� ��� ������ ���������� ����� ���, ��� ����������.
; *** "Password" wizard page
WizardPassword=������
PasswordLabel1=��� ��������� �������� �������.
PasswordLabel3=����������, �������� ������, ����� ������� �������. ������ ���������� ������� � ������ ��������.
PasswordEditLabel=&������:
IncorrectPassword=��������� ���� ������ �������. ����������, ���������� �����.
; *** "License Agreement" wizard page
WizardLicense=������������ ����������
LicenseLabel=����������, �������� ��������� ������ ���������� ����� ���, ��� ����������.
LicenseLabel3=����������, �������� ��������� ������������ ����������. �� ������ ������� ������� ����� ���������� ����� ���, ��� ����������.
LicenseAccepted=� &�������� ������� ����������
LicenseNotAccepted=� &�� �������� ������� ����������
; *** "Information" wizard pages
WizardInfoBefore=����������
InfoBeforeLabel=����������, ���������� ��������� ������ ���������� ����� ���, ��� ����������.
InfoBeforeClickLabel=����� �� ������ ������ ���������� ���������, ������� �������.
WizardInfoAfter=����������
InfoAfterLabel=����������, ���������� ��������� ������ ���������� ����� ���, ��� ����������.
InfoAfterClickLabel=����� �� ������ ������ ���������� ���������, ������� �������.
; *** "User Information" wizard page
WizardUserInfo=���������� � ������������
UserInfoDesc=����������, ������� ������ � ����.
UserInfoName=&��� � ������� ������������:
UserInfoOrg=&�����������:
UserInfoSerial=&�������� �����:
UserInfoNameRequired=�� ������ ������ ���.
; *** "Select Destination Location" wizard page
WizardSelectDir=����� ����� ���������
SelectDirDesc=� ����� ����� �� ������ ���������� [name]?
SelectDirLabel3=��������� ��������� [name] � ��������� �����.
SelectDirBrowseLabel=������� �������, ����� ����������. ���� �� ������ ������� ������ �����, ������� �������.
DiskSpaceGBLabel=��������� ��� ������� [gb] �� ���������� ��������� ������������.
DiskSpaceMBLabel=��������� ��� ������� [mb] �� ���������� ��������� ������������.
CannotInstallToNetworkDrive=��������� �� ����� ������������� �� ������� ����.
CannotInstallToUNCPath=��������� �� ����� ������������� � ����� �� UNC-����.
InvalidPath=�� ������ ������� ������ ���� � ������ �����; ��������:%n%nC:\APP%n%n��� � ����� UNC:%n%n\\���_�������\���_�������
InvalidDrive=��������� ���� ���� ��� ������� ���� �� ���������� ��� ����������. ����������, �������� ������.
DiskSpaceWarningTitle=������������ ����� �� �����
DiskSpaceWarning=��������� ������� �� ����� %1 �� ���������� �����, � �� ��������� ���� ����� �������� ������ %2 ��.%n%n�� ������� ��� �� ����� ���������� ���������?
DirNameTooLong=��� ����� ��� ���� � ��� ��������� ���������� �����.
InvalidDirName=��������� ��� ����� �����������.
BadDirName32=��� ����� �� ����� ��������� ��������: %n%n%1
DirExistsTitle=����� ����������
DirExists=�����%n%n%1%n%n��� ����������. ��� ����� ���������� � ��� �����?
DirDoesntExistTitle=����� �� ����������
DirDoesntExist=�����%n%n%1%n%n�� ����������. �� ������ ������� ��?
; *** "Select Components" wizard page
WizardSelectComponents=����� �����������
SelectComponentsDesc=����� ���������� ������ ���� �����������?
SelectComponentsLabel2=�������� ����������, ������� �� ������ ����������; ������� ������ � �����������, ������������� ������� �� ���������. ������� �������, ����� �� ������ ������ ����������.
FullInstallation=������ ���������
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=���������� ���������
CustomInstallation=���������� ���������
NoUninstallWarningTitle=������������� ����������
NoUninstallWarning=��������� ��������� ����������, ��� ��������� ���������� ��� ����������� �� ����� ����������:%n%n%1%n%n������ ������ ���� ����������� �� ������ ��.%n%n����������?
ComponentSize1=%1 ��
ComponentSize2=%1 ��
ComponentsDiskSpaceGBLabel=������� ����� ������� �� ����� [gb] �� �� �����.
ComponentsDiskSpaceMBLabel=������� ����� ������� �� ����� [mb] �� �� �����.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=�������� �������������� ������
SelectTasksDesc=����� �������������� ������ ���������� ���������?
SelectTasksLabel2=�������� �������������� ������, ������� ������ ����������� ��� ��������� [name], ����� ����� ������� �������:
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=�������� ����� � ���� ������
SelectStartMenuFolderDesc=��� ��������� ��������� ������ ������� ������?
SelectStartMenuFolderLabel3=��������� ������� ������ � ��������� ����� ���� ������.
SelectStartMenuFolderBrowseLabel=������� �������, ����� ����������. ���� �� ������ ������� ������ �����, ������� �������.
MustEnterGroupName=�� ������ ������ ��� �����.
GroupNameTooLong=��� ����� ������ ��� ���� � ��� ��������� ���������� �����.
InvalidGroupName=��������� ��� ����� �����������.
BadGroupName=��� ����� �� ����� ��������� ��������:%n%n%1
NoProgramGroupCheck2=&�� ��������� ����� � ���� ������
; *** "Ready to Install" wizard page
WizardReady=��� ������ � ���������
ReadyLabel1=��������� ��������� ������ ������ ��������� [name] �� ��� ���������.
ReadyLabel2a=������� ������������, ����� ����������, ��� �������, ���� �� ������ ����������� ��� �������� ����� ���������.
ReadyLabel2b=������� ������������, ����� ����������.
ReadyMemoUserInfo=���������� � ������������:
ReadyMemoDir=����� ���������:
ReadyMemoType=��� ���������:
ReadyMemoComponents=��������� ����������:
ReadyMemoGroup=����� � ���� ������:
ReadyMemoTasks=�������������� ������:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=�������� �������������� ������...
ButtonStopDownload=&�������� ��������
StopDownload=�� ������������� ������ ���������� ��������?
ErrorDownloadAborted=�������� ��������
ErrorDownloadFailed=������ ��������: %1 %2
ErrorDownloadSizeFailed=������ ��������� �������: %1 %2
ErrorFileHash1=������ ���� �����: %1
ErrorFileHash2=�������� ��� �����: �������� %1, ������� %2
ErrorProgress=������ ����������: %1 �� %2
ErrorFileSize=�������� ������ �����: �������� %1, ������� %2
; *** "Preparing to Install" wizard page
WizardPreparing=���������� � ���������
PreparingDesc=��������� ��������� ���������������� � ��������� [name] �� ��� ���������.
PreviousInstallNotCompleted=��������� ��� �������� ���������� ��������� �� ���� ���������. ��� ����������� ������������� ���������, ����� ��������� �� ���������.%n%n����� ������������ ��������� ����� ��������� ���������, ����� ��������� ��������� [name].
CannotContinue=���������� ���������� ���������. ������� �������� ��� ������ �� ���������.
ApplicationsFound=��������� ���������� ���������� �����, ������� ��������� ��������� ������ ��������. ������������� ��������� ��������� ��������� ������������� ������� ��� ����������.
ApplicationsFound2=��������� ���������� ���������� �����, ������� ��������� ��������� ������ ��������. ������������� ��������� ��������� ��������� ������������� ������� ��� ����������. ����� ��������� ����� ���������, ��������� ��������� ���������� ����� ��������� ��.
CloseApplications=&������������� ������� ��� ����������
DontCloseApplications=&�� ��������� ��� ����������
ErrorCloseApplications=��������� ��������� �� ������� ������������� ������� ��� ����������. ������������� ������� ��� ����������, ������� ���������� ���������� ���������� �����, ������ ��� ���������� ���������.
PrepareToInstallNeedsRestart=��������� ��������� ��������� ������������� ��� ���������. ����� ������������ ����������, ����������, ��������� ��������� ��������� �����, ����� ��������� ������� ��������� [name].%n%n���������� ������������ ������?
; *** "Installing" wizard page
WizardInstalling=���������...
InstallingLabel=����������, ���������, ���� [name] ����������� �� ��� ���������.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=���������� ������� ��������� [name]
FinishedLabelNoIcons=��������� [name] ����������� �� ��� ���������.
FinishedLabel=��������� [name] ����������� �� ��� ���������. ���������� ����� ��������� � ������� ���������������� ������.
ClickFinish=������� �����������, ����� ����� �� ��������� ���������.
FinishedRestartLabel=��� ���������� ��������� [name] ��������� ������������� ���������. ���������� ������������ ������?
FinishedRestartMessage=��� ���������� ��������� [name] ��������� ������������� ���������.%n%n���������� ������������ ������?
ShowReadmeCheck=� ���� ����������� ���� README
YesRadio=&��, ������������� ��������� ������
NoRadio=&���, � ��������� ������������ �����
; used for example as 'Run MyProg.exe'
RunEntryExec=��������� %1
; used for example as 'View Readme.txt'
RunEntryShellExec=����������� %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=���������� �������� ��������� ����
SelectDiskLabel2=����������, �������� ���� %1 � ������� �OK�.%n%n���� ����� ����� ����� ����� ���� ������� � �����, ������������ �� ���������� ����, ������� ���������� ���� ��� ������� �������.
PathLabel=&����:
FileNotInDir2=���� "%1" �� ������ � "%2". ����������, �������� ���������� ���� ��� �������� ������ �����.
SelectDirectoryLabel=����������, ������� ���� � ���������� �����.
; *** Installation phase messages
SetupAborted=��������� �� ���� ���������.%n%n����������, ��������� �������� � ��������� ��������� �����.
AbortRetryIgnoreSelectAction=�������� ��������
AbortRetryIgnoreRetry=����������� &�����
AbortRetryIgnoreIgnore=&������������ ������ � ����������
AbortRetryIgnoreCancel=�������� ���������
; *** Installation status messages
StatusClosingApplications=�������� ����������...
StatusCreateDirs=�������� �����...
StatusExtractFiles=���������� ������...
StatusCreateIcons=�������� ������� ���������...
StatusCreateIniEntries=�������� INI-������...
StatusCreateRegistryEntries=�������� ������� �������...
StatusRegisterFiles=����������� ������...
StatusSavingUninstall=���������� ���������� ��� �������������...
StatusRunProgram=���������� ���������...
StatusRestartingApplications=���������� ����������...
StatusRollback=����� ���������...
; *** Misc. errors
ErrorInternal2=���������� ������: %1
ErrorFunctionFailedNoCode=%1: ����
ErrorFunctionFailed=%1: ����; ��� %2
ErrorFunctionFailedWithMessage=%1: ����; ��� %2.%n%3
ErrorExecutingProgram=���������� ��������� ����:%n%1
; *** Registry errors
ErrorRegOpenKey=������ �������� ����� �������:%n%1\%2
ErrorRegCreateKey=������ �������� ����� �������:%n%1\%2
ErrorRegWriteKey=������ ������ � ���� �������:%n%1\%2
; *** INI errors
ErrorIniEntry=������ �������� ������ � INI-����� "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&���������� ���� ���� (�� �������������)
FileAbortRetryIgnoreIgnoreNotRecommended=&������������ ������ � ���������� (�� �������������)
SourceIsCorrupted=�������� ���� ���������
SourceDoesntExist=�������� ���� "%1" �� ����������
ExistingFileReadOnly2=���������� �������� ������������ ����, ��� ��� �� ������� ��� ����� ������ ��� �������.
ExistingFileReadOnlyRetry=&������� ��������������� ��� ������� � ��������� �������
ExistingFileReadOnlyKeepExisting=&�������� ���� �� �����
ErrorReadingExistingDest=��������� ������ ��� ������� ������ ������������� �����:
FileExistsSelectAction=�������� ��������
FileExists2=���� ��� ����������.
FileExistsOverwriteExisting=&�������� ������������ ����
FileExistsKeepExisting=&��������� ������������ ����
FileExistsOverwriteOrKeepAll=&��������� �������� ��� ���� ����������� ����������
ExistingFileNewerSelectAction=�������� ��������
ExistingFileNewer2=������������ ���� ����� �����, ��� ���������������.
ExistingFileNewerOverwriteExisting=&�������� ������������ ����
ExistingFileNewerKeepExisting=&��������� ������������ ���� (�������������)
ExistingFileNewerOverwriteOrKeepAll=&��������� �������� ��� ���� ����������� ����������
ErrorChangingAttr=��������� ������ ��� ������� ��������� ��������� ������������� �����:
ErrorCreatingTemp=��������� ������ ��� ������� �������� ����� � ����� ����������:
ErrorReadingSource=��������� ������ ��� ������� ������ ��������� �����:
ErrorCopying=��������� ������ ��� ������� ����������� �����:
ErrorReplacingExistingFile=��������� ������ ��� ������� ������ ������������� �����:
ErrorRestartReplace=������ RestartReplace:
ErrorRenamingTemp=��������� ������ ��� ������� �������������� ����� � ����� ����������:
ErrorRegisterServer=���������� ���������������� DLL/OCX: %1
ErrorRegSvr32Failed=������ ��� ���������� RegSvr32, ��� �������� %1
ErrorRegisterTypeLib=���������� ���������������� ���������� ����� (Type Library): %1
; *** Uninstall display name markings
UninstallDisplayNameMark=%1 (%2)
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32 ����
UninstallDisplayNameMark64Bit=64 ����
UninstallDisplayNameMarkAllUsers=��� ������������
UninstallDisplayNameMarkCurrentUser=������� ������������
; *** Post-installation errors
ErrorOpeningReadme=��������� ������ ��� ������� �������� ����� README.
ErrorRestartingComputer=��������� ��������� �� ������� ������������� ���������. ����������, ��������� ��� ��������������.
; *** Uninstaller messages
UninstallNotFound=���� "%1" �� ����������, ������������� ����������.
UninstallOpenError=���������� ������� ���� "%1". ������������� ����������
UninstallUnsupportedVer=���� ��������� ��� ������������� "%1" �� ��������� ������ ������� ���������-��������������. ������������� ����������
UninstallUnknownEntry=���������� ����������� ����� (%1) � ����� ��������� ��� �������������
ConfirmUninstall=�� �������, ��� ������ ��������� ������ �������� %1?
UninstallOnlyOnWin64=������ ��������� �������� ���������������� ������ � ����� 64-������ Windows.
OnlyAdminCanUninstall=��� ��������� ����� ���� ���������������� ������ ������������� � ����������������� ������������.
UninstallStatusLabel=����������, ���������, ���� %1 ����� ������� � ������ ����������.
UninstalledAll=��������� %1 ���� ��������� ������� � ������ ����������.
UninstalledMost=������������� %1 ���������.%n%n����� ��������� �� ������� �������. �� ������ ������� �� ��������������.
UninstalledAndNeedsRestart=��� ���������� ������������� %1 ���������� ���������� ������������ ������ ����������.%n%n��������� ������������ ������?
UninstallDataCorrupted=���� "%1" ���������. ������������� ����������
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=������� ��������� ������������ ����?
ConfirmDeleteSharedFile2=������� ���������, ��� ��������� ��������� ������������ ���� ������ �� ������������ �������� ������� ������������. ������������� �������� �����?%n%n���� �����-���� ��������� ��� ��� ���������� ���� ����, � �� ����� ������, ��� �� ������ �������� ���������. ���� �� �� �������, �������� �����. ����������� ���� �� �������� ����� �������.
SharedFileNameLabel=��� �����:
SharedFileLocationLabel=������������:
WizardUninstalling=��������� �������������
StatusUninstalling=������������� %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=��������� %1.
ShutdownBlockReasonUninstallingApp=������������� %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1, ������ %2
AdditionalIcons=�������������� ������:
CreateDesktopIcon=������� ������ �� &������� �����
CreateQuickLaunchIcon=������� ������ � &������ �������� �������
ProgramOnTheWeb=���� %1 � ���������
UninstallProgram=���������������� %1
LaunchProgram=��������� %1
AssocFileExtension=��&����� %1 � �������, �������� ���������� %2
AssocingFileExtension=���������� %1 � ������� %2...
AutoStartProgramGroupDescription=����������:
AutoStartProgram=������������� ��������� %1
AddonHostProgramNotFound=%1 �� ������ � ��������� ���� �����.%n%n�� ��� ����� ������ ����������?
; VCMI Custom Messages
SelectSetupInstallModeTitle=�������� ����� ���������
SelectSetupInstallModeDesc=VCMI ����� ���������� ��� ���� ������������� ��� ������ ��� ���.
SelectSetupInstallModeSubTitle=�������� ���������������� ����� ���������:
InstallForAllUsers=���������� ��� ���� �������������
InstallForAllUsers1=��������� ����� ��������������
InstallForMeOnly=���������� ������ ��� ����
InstallForMeOnly1=��� ������ ������� ���� �������� ������ �� �����������
InstallForMeOnly2=LAN-���� �� ����� ��������, ���� ������� ����������� �� ����� ���������
SystemIntegration=���������� � ��������
CreateDesktopShortcuts=������� ������ �� ������� �����
CreateStartMenuShortcuts=������� ������ � ���� ����
AssociateH3MFiles=������������� ����� .h3m � ���������� ���� VCMI
AssociateVCMIMapFiles=������������� ����� .vmap � .vcmp � ���������� ���� VCMI
VCMISettings=��������� VCMI
AddFirewallRules=�������� ������� ����������� ��� VCMI
CopyH3Files=������������� ����������� ����������� ����� Heroes III � VCMI
RunVCMILauncherAfterInstall=��������� VCMI Launcher
ShortcutMapEditor=�������� ���� VCMI
ShortcutLauncher=���������� VCMI
ShortcutWebPage=����������� ���� VCMI
ShortcutDiscord=Discord VCMI
ShortcutLauncherComment=��������� VCMI Launcher
ShortcutMapEditorComment=������� �������� ���� VCMI
ShortcutWebPageComment=�������� ����������� ���� VCMI
ShortcutDiscordComment=�������� ����������� Discord VCMI
DeleteUserData=������� ���������������� ������
Uninstall=�������
Warning=��������������
VMAPDescription=���� ����� VCMI
VCMPDescription=���� �������� VCMI
H3MDescription=���� ����� Heroes 3

View File

@ -0,0 +1,416 @@
; *** Inno Setup version 6.1.0+ Spanish messages ***
;
; Maintained by Jorge Andres Brugger (jbrugger@ideaworks.com.ar)
; isl version 1.5.2 (20211123)
; Default.isl version 6.1.0
;
; Thanks to Germ�n Giraldo, Jordi Latorre, Ximo Tamarit, Emiliano Llano,
; Ram�n Verduzco, Graciela Garc�a, Carles Millan and Rafael Barranco-Droege
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Espa<00F1>ol
LanguageID=$0c0a
LanguageCodePage=1252
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Instalar
SetupWindowTitle=Instalar - %1
UninstallAppTitle=Desinstalar
UninstallAppFullTitle=Desinstalar - %1
; *** Misc. common
InformationTitle=Informaci�n
ConfirmTitle=Confirmar
ErrorTitle=Error
; *** SetupLdr messages
SetupLdrStartupMessage=Este programa instalar� %1. �Desea continuar?
LdrCannotCreateTemp=Imposible crear archivo temporal. Instalaci�n interrumpida
LdrCannotExecTemp=Imposible ejecutar archivo en la carpeta temporal. Instalaci�n interrumpida
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nError %2: %3
SetupFileMissing=El archivo %1 no se encuentra en la carpeta de instalaci�n. Por favor, solucione el problema u obtenga una copia nueva del programa.
SetupFileCorrupt=Los archivos de instalaci�n est�n da�ados. Por favor, obtenga una copia nueva del programa.
SetupFileCorruptOrWrongVer=Los archivos de instalaci�n est�n da�ados o son incompatibles con esta versi�n del programa de instalaci�n. Por favor, solucione el problema u obtenga una copia nueva del programa.
InvalidParameter=Se ha utilizado un par�metro no v�lido en la l�nea de comandos:%n%n%1
SetupAlreadyRunning=El programa de instalaci�n a�n est� ejecut�ndose.
WindowsVersionNotSupported=Este programa no puede ejecutarse en su versi�n de Windows. Aseg�rese de estar utilizando la arquitectura correcta de Windows (32 bits o 64 bits) y la versi�n adecuada de este programa.
WindowsServicePackRequired=Este programa requiere %1 Service Pack %2 o posterior.
NotOnThisPlatform=Este programa no se ejecutar� en %1.
OnlyOnThisPlatform=Este programa debe ejecutarse en %1.
OnlyOnTheseArchitectures=Este programa solo puede instalarse en versiones de Windows dise�adas para las siguientes arquitecturas de procesadores:%n%n%1
WinVersionTooLowError=Este programa requiere %1 versi�n %2 o posterior.
WinVersionTooHighError=Este programa no puede instalarse en %1 versi�n %2 o posterior.
AdminPrivilegesRequired=Debe iniciar la sesi�n como administrador para instalar este programa.
PowerUserPrivilegesRequired=Debe iniciar la sesi�n como administrador o como miembro del grupo de Usuarios Avanzados para instalar este programa.
SetupAppRunningError=El programa de instalaci�n ha detectado que %1 est� ejecut�ndose.%n%nPor favor, ci�rrelo ahora, luego haga clic en Aceptar para continuar o en Cancelar para salir.
UninstallAppRunningError=El desinstalador ha detectado que %1 est� ejecut�ndose.%n%nPor favor, ci�rrelo ahora, luego haga clic en Aceptar para continuar o en Cancelar para salir.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Selecci�n del Modo de Instalaci�n
PrivilegesRequiredOverrideInstruction=Seleccione el modo de instalaci�n
PrivilegesRequiredOverrideText1=%1 puede ser instalado para todos los usuarios (requiere privilegios administrativos), o solo para Ud.
PrivilegesRequiredOverrideText2=%1 puede ser instalado solo para Ud, o para todos los usuarios (requiere privilegios administrativos).
PrivilegesRequiredOverrideAllUsers=Instalar para &todos los usuarios
PrivilegesRequiredOverrideAllUsersRecommended=Instalar para &todos los usuarios (recomendado)
PrivilegesRequiredOverrideCurrentUser=Instalar para &m� solamente
PrivilegesRequiredOverrideCurrentUserRecommended=Instalar para &m� solamente (recomendado)
; *** Misc. errors
ErrorCreatingDir=El programa de instalaci�n no pudo crear la carpeta "%1"
ErrorTooManyFilesInDir=Imposible crear un archivo en la carpeta "%1" porque contiene demasiados archivos
; *** Setup common messages
ExitSetupTitle=Salir de la Instalaci�n
ExitSetupMessage=La instalaci�n no se ha completado a�n. Si cancela ahora, el programa no se instalar�.%n%nPuede ejecutar nuevamente el programa de instalaci�n en otra ocasi�n para completarla.%n%n�Salir de la instalaci�n?
AboutSetupMenuItem=&Acerca de Instalar...
AboutSetupTitle=Acerca de Instalar
AboutSetupMessage=%1 versi�n %2%n%3%n%n%1 sitio Web:%n%4
AboutSetupNote=
TranslatorNote=Spanish translation maintained by Jorge Andres Brugger (jbrugger@gmx.net)
; *** Buttons
ButtonBack=< &Atr�s
ButtonNext=&Siguiente >
ButtonInstall=&Instalar
ButtonOK=Aceptar
ButtonCancel=Cancelar
ButtonYes=&S�
ButtonYesToAll=S� a &Todo
ButtonNo=&No
ButtonNoToAll=N&o a Todo
ButtonFinish=&Finalizar
ButtonBrowse=&Examinar...
ButtonWizardBrowse=&Examinar...
ButtonNewFolder=&Crear Nueva Carpeta
; *** "Select Language" dialog messages
SelectLanguageTitle=Seleccione el Idioma de la Instalaci�n
SelectLanguageLabel=Seleccione el idioma a utilizar durante la instalaci�n.
; *** Common wizard text
ClickNext=Haga clic en Siguiente para continuar o en Cancelar para salir de la instalaci�n.
BeveledLabel=
BrowseDialogTitle=Buscar Carpeta
BrowseDialogLabel=Seleccione una carpeta y luego haga clic en Aceptar.
NewFolderName=Nueva Carpeta
; *** "Welcome" wizard page
WelcomeLabel1=Bienvenido al asistente de instalaci�n de [name]
WelcomeLabel2=Este programa instalar� [name/ver] en su sistema.%n%nSe recomienda cerrar todas las dem�s aplicaciones antes de continuar.
; *** "Password" wizard page
WizardPassword=Contrase�a
PasswordLabel1=Esta instalaci�n est� protegida por contrase�a.
PasswordLabel3=Por favor, introduzca la contrase�a y haga clic en Siguiente para continuar. En las contrase�as se hace diferencia entre may�sculas y min�sculas.
PasswordEditLabel=&Contrase�a:
IncorrectPassword=La contrase�a introducida no es correcta. Por favor, int�ntelo nuevamente.
; *** "License Agreement" wizard page
WizardLicense=Acuerdo de Licencia
LicenseLabel=Es importante que lea la siguiente informaci�n antes de continuar.
LicenseLabel3=Por favor, lea el siguiente acuerdo de licencia. Debe aceptar las cl�usulas de este acuerdo antes de continuar con la instalaci�n.
LicenseAccepted=A&cepto el acuerdo
LicenseNotAccepted=&No acepto el acuerdo
; *** "Information" wizard pages
WizardInfoBefore=Informaci�n
InfoBeforeLabel=Es importante que lea la siguiente informaci�n antes de continuar.
InfoBeforeClickLabel=Cuando est� listo para continuar con la instalaci�n, haga clic en Siguiente.
WizardInfoAfter=Informaci�n
InfoAfterLabel=Es importante que lea la siguiente informaci�n antes de continuar.
InfoAfterClickLabel=Cuando est� listo para continuar, haga clic en Siguiente.
; *** "User Information" wizard page
WizardUserInfo=Informaci�n de Usuario
UserInfoDesc=Por favor, introduzca sus datos.
UserInfoName=Nombre de &Usuario:
UserInfoOrg=&Organizaci�n:
UserInfoSerial=N�mero de &Serie:
UserInfoNameRequired=Debe introducir un nombre.
; *** "Select Destination Location" wizard page
WizardSelectDir=Seleccione la Carpeta de Destino
SelectDirDesc=�D�nde debe instalarse [name]?
SelectDirLabel3=El programa instalar� [name] en la siguiente carpeta.
SelectDirBrowseLabel=Para continuar, haga clic en Siguiente. Si desea seleccionar una carpeta diferente, haga clic en Examinar.
DiskSpaceGBLabel=Se requieren al menos [gb] GB de espacio libre en el disco.
DiskSpaceMBLabel=Se requieren al menos [mb] MB de espacio libre en el disco.
CannotInstallToNetworkDrive=El programa de instalaci�n no puede realizar la instalaci�n en una unidad de red.
CannotInstallToUNCPath=El programa de instalaci�n no puede realizar la instalaci�n en una ruta de acceso UNC.
InvalidPath=Debe introducir una ruta completa con la letra de la unidad; por ejemplo:%n%nC:\APP%n%no una ruta de acceso UNC de la siguiente forma:%n%n\\servidor\compartido
InvalidDrive=La unidad o ruta de acceso UNC que seleccion� no existe o no es accesible. Por favor, seleccione otra.
DiskSpaceWarningTitle=Espacio Insuficiente en Disco
DiskSpaceWarning=La instalaci�n requiere al menos %1 KB de espacio libre, pero la unidad seleccionada solo cuenta con %2 KB disponibles.%n%n�Desea continuar de todas formas?
DirNameTooLong=El nombre de la carpeta o la ruta son demasiado largos.
InvalidDirName=El nombre de la carpeta no es v�lido.
BadDirName32=Los nombres de carpetas no pueden incluir los siguientes caracteres:%n%n%1
DirExistsTitle=La Carpeta Ya Existe
DirExists=La carpeta:%n%n%1%n%nya existe. �Desea realizar la instalaci�n en esa carpeta de todas formas?
DirDoesntExistTitle=La Carpeta No Existe
DirDoesntExist=La carpeta:%n%n%1%n%nno existe. �Desea crear esa carpeta?
; *** "Select Components" wizard page
WizardSelectComponents=Seleccione los Componentes
SelectComponentsDesc=�Qu� componentes deben instalarse?
SelectComponentsLabel2=Seleccione los componentes que desea instalar y desmarque los componentes que no desea instalar. Haga clic en Siguiente cuando est� listo para continuar.
FullInstallation=Instalaci�n Completa
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Instalaci�n Compacta
CustomInstallation=Instalaci�n Personalizada
NoUninstallWarningTitle=Componentes Encontrados
NoUninstallWarning=El programa de instalaci�n ha detectado que los siguientes componentes ya est�n instalados en su sistema:%n%n%1%n%nDesmarcar estos componentes no los desinstalar�.%n%n�Desea continuar de todos modos?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=La selecci�n actual requiere al menos [gb] GB de espacio en disco.
ComponentsDiskSpaceMBLabel=La selecci�n actual requiere al menos [mb] MB de espacio en disco.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Seleccione las Tareas Adicionales
SelectTasksDesc=�Qu� tareas adicionales deben realizarse?
SelectTasksLabel2=Seleccione las tareas adicionales que desea que se realicen durante la instalaci�n de [name] y haga clic en Siguiente.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Seleccione la Carpeta del Men� Inicio
SelectStartMenuFolderDesc=�D�nde deben colocarse los accesos directos del programa?
SelectStartMenuFolderLabel3=El programa de instalaci�n crear� los accesos directos del programa en la siguiente carpeta del Men� Inicio.
SelectStartMenuFolderBrowseLabel=Para continuar, haga clic en Siguiente. Si desea seleccionar una carpeta distinta, haga clic en Examinar.
MustEnterGroupName=Debe proporcionar un nombre de carpeta.
GroupNameTooLong=El nombre de la carpeta o la ruta son demasiado largos.
InvalidGroupName=El nombre de la carpeta no es v�lido.
BadGroupName=El nombre de la carpeta no puede incluir ninguno de los siguientes caracteres:%n%n%1
NoProgramGroupCheck2=&No crear una carpeta en el Men� Inicio
; *** "Ready to Install" wizard page
WizardReady=Listo para Instalar
ReadyLabel1=Ahora el programa est� listo para iniciar la instalaci�n de [name] en su sistema.
ReadyLabel2a=Haga clic en Instalar para continuar con el proceso o haga clic en Atr�s si desea revisar o cambiar alguna configuraci�n.
ReadyLabel2b=Haga clic en Instalar para continuar con el proceso.
ReadyMemoUserInfo=Informaci�n del usuario:
ReadyMemoDir=Carpeta de Destino:
ReadyMemoType=Tipo de Instalaci�n:
ReadyMemoComponents=Componentes Seleccionados:
ReadyMemoGroup=Carpeta del Men� Inicio:
ReadyMemoTasks=Tareas Adicionales:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Descargando archivos adicionales...
ButtonStopDownload=&Detener descarga
StopDownload=�Est� seguiro que desea detener la descarga?
ErrorDownloadAborted=Descarga cancelada
ErrorDownloadFailed=Fall� descarga: %1 %2
ErrorDownloadSizeFailed=Fall� obtenci�n de tama�o: %1 %2
ErrorFileHash1=Fall� hash del archivo: %1
ErrorFileHash2=Hash de archivo no v�lido: esperado %1, encontrado %2
ErrorProgress=Progreso no v�lido: %1 de %2
ErrorFileSize=Tama�o de archivo no v�lido: esperado %1, encontrado %2
; *** "Preparing to Install" wizard page
WizardPreparing=Prepar�ndose para Instalar
PreparingDesc=El programa de instalaci�n est� prepar�ndose para instalar [name] en su sistema.
PreviousInstallNotCompleted=La instalaci�n/desinstalaci�n previa de un programa no se complet�. Deber� reiniciar el sistema para completar esa instalaci�n.%n%nUna vez reiniciado el sistema, ejecute el programa de instalaci�n nuevamente para completar la instalaci�n de [name].
CannotContinue=El programa de instalaci�n no puede continuar. Por favor, presione Cancelar para salir.
ApplicationsFound=Las siguientes aplicaciones est�n usando archivos que necesitan ser actualizados por el programa de instalaci�n. Se recomienda que permita al programa de instalaci�n cerrar autom�ticamente estas aplicaciones.
ApplicationsFound2=Las siguientes aplicaciones est�n usando archivos que necesitan ser actualizados por el programa de instalaci�n. Se recomienda que permita al programa de instalaci�n cerrar autom�ticamente estas aplicaciones. Al completarse la instalaci�n, el programa de instalaci�n intentar� reiniciar las aplicaciones.
CloseApplications=&Cerrar autom�ticamente las aplicaciones
DontCloseApplications=&No cerrar las aplicaciones
ErrorCloseApplications=El programa de instalaci�n no pudo cerrar de forma autom�tica todas las aplicaciones. Se recomienda que, antes de continuar, cierre todas las aplicaciones que utilicen archivos que necesitan ser actualizados por el programa de instalaci�n.
PrepareToInstallNeedsRestart=El programa de instalaci�n necesita reiniciar el sistema. Una vez que se haya reiniciado ejecute nuevamente el programa de instalaci�n para completar la instalaci�n de [name].%n%n�Desea reiniciar el sistema ahora?
; *** "Installing" wizard page
WizardInstalling=Instalando
InstallingLabel=Por favor, espere mientras se instala [name] en su sistema.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Completando la instalaci�n de [name]
FinishedLabelNoIcons=El programa complet� la instalaci�n de [name] en su sistema.
FinishedLabel=El programa complet� la instalaci�n de [name] en su sistema. Puede ejecutar la aplicaci�n utilizando los accesos directos creados.
ClickFinish=Haga clic en Finalizar para salir del programa de instalaci�n.
FinishedRestartLabel=Para completar la instalaci�n de [name], su sistema debe reiniciarse. �Desea reiniciarlo ahora?
FinishedRestartMessage=Para completar la instalaci�n de [name], su sistema debe reiniciarse.%n%n�Desea reiniciarlo ahora?
ShowReadmeCheck=S�, deseo ver el archivo L�AME
YesRadio=&S�, deseo reiniciar el sistema ahora
NoRadio=&No, reiniciar� el sistema m�s tarde
; used for example as 'Run MyProg.exe'
RunEntryExec=Ejecutar %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Ver %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=El Programa de Instalaci�n Necesita el Siguiente Disco
SelectDiskLabel2=Por favor, inserte el Disco %1 y haga clic en Aceptar.%n%nSi los archivos pueden ser hallados en una carpeta diferente a la indicada abajo, introduzca la ruta correcta o haga clic en Examinar.
PathLabel=&Ruta:
FileNotInDir2=El archivo "%1" no se ha podido hallar en "%2". Por favor, inserte el disco correcto o seleccione otra carpeta.
SelectDirectoryLabel=Por favor, especifique la ubicaci�n del siguiente disco.
; *** Installation phase messages
SetupAborted=La instalaci�n no se ha completado.%n%nPor favor solucione el problema y ejecute nuevamente el programa de instalaci�n.
AbortRetryIgnoreSelectAction=Seleccione acci�n
AbortRetryIgnoreRetry=&Reintentar
AbortRetryIgnoreIgnore=&Ignorar el error y continuar
AbortRetryIgnoreCancel=Cancelar instalaci�n
; *** Installation status messages
StatusClosingApplications=Cerrando aplicaciones...
StatusCreateDirs=Creando carpetas...
StatusExtractFiles=Extrayendo archivos...
StatusCreateIcons=Creando accesos directos...
StatusCreateIniEntries=Creando entradas INI...
StatusCreateRegistryEntries=Creando entradas de registro...
StatusRegisterFiles=Registrando archivos...
StatusSavingUninstall=Guardando informaci�n para desinstalar...
StatusRunProgram=Terminando la instalaci�n...
StatusRestartingApplications=Reiniciando aplicaciones...
StatusRollback=Deshaciendo cambios...
; *** Misc. errors
ErrorInternal2=Error interno: %1
ErrorFunctionFailedNoCode=%1 fall�
ErrorFunctionFailed=%1 fall�; c�digo %2
ErrorFunctionFailedWithMessage=%1 fall�; c�digo %2.%n%3
ErrorExecutingProgram=Imposible ejecutar el archivo:%n%1
; *** Registry errors
ErrorRegOpenKey=Error al abrir la clave del registro:%n%1\%2
ErrorRegCreateKey=Error al crear la clave del registro:%n%1\%2
ErrorRegWriteKey=Error al escribir la clave del registro:%n%1\%2
; *** INI errors
ErrorIniEntry=Error al crear entrada INI en el archivo "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Omitir este archivo (no recomendado)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorar el error y continuar (no recomendado)
SourceIsCorrupted=El archivo de origen est� da�ado
SourceDoesntExist=El archivo de origen "%1" no existe
ExistingFileReadOnly2=El archivo existente no puede ser reemplazado debido a que est� marcado como solo-lectura.
ExistingFileReadOnlyRetry=&Elimine el atributo de solo-lectura y reintente
ExistingFileReadOnlyKeepExisting=&Mantener el archivo existente
ErrorReadingExistingDest=Ocurri� un error mientras se intentaba leer el archivo:
FileExistsSelectAction=Seleccione acci�n
FileExists2=El archivo ya existe.
FileExistsOverwriteExisting=&Sobreescribir el archivo existente
FileExistsKeepExisting=&Mantener el archivo existente
FileExistsOverwriteOrKeepAll=&Hacer lo mismo para lo siguientes conflictos
ExistingFileNewerSelectAction=Seleccione acci�n
ExistingFileNewer2=El archivo existente es m�s reciente que el que se est� tratando de instalar.
ExistingFileNewerOverwriteExisting=&Sobreescribir el archivo existente
ExistingFileNewerKeepExisting=&Mantener el archivo existente (recomendado)
ExistingFileNewerOverwriteOrKeepAll=&Hacer lo mismo para lo siguientes conflictos
ErrorChangingAttr=Ocurri� un error al intentar cambiar los atributos del archivo:
ErrorCreatingTemp=Ocurri� un error al intentar crear un archivo en la carpeta de destino:
ErrorReadingSource=Ocurri� un error al intentar leer el archivo de origen:
ErrorCopying=Ocurri� un error al intentar copiar el archivo:
ErrorReplacingExistingFile=Ocurri� un error al intentar reemplazar el archivo existente:
ErrorRestartReplace=Fall� reintento de reemplazar:
ErrorRenamingTemp=Ocurri� un error al intentar renombrar un archivo en la carpeta de destino:
ErrorRegisterServer=Imposible registrar el DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 fall� con el c�digo de salida %1
ErrorRegisterTypeLib=Imposible registrar la librer�a de tipos: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=Todos los usuarios
UninstallDisplayNameMarkCurrentUser=Usuario actual
; *** Post-installation errors
ErrorOpeningReadme=Ocurri� un error al intentar abrir el archivo L�AME.
ErrorRestartingComputer=El programa de instalaci�n no pudo reiniciar el equipo. Por favor, h�galo manualmente.
; *** Uninstaller messages
UninstallNotFound=El archivo "%1" no existe. Imposible desinstalar.
UninstallOpenError=El archivo "%1" no pudo ser abierto. Imposible desinstalar
UninstallUnsupportedVer=El archivo de registro para desinstalar "%1" est� en un formato no reconocido por esta versi�n del desinstalador. Imposible desinstalar
UninstallUnknownEntry=Se encontr� una entrada desconocida (%1) en el registro de desinstalaci�n
ConfirmUninstall=�Est� seguro de que desea ejecutar el asistente de desinstalaci�n de %1?
UninstallOnlyOnWin64=Este programa solo puede ser desinstalado en Windows de 64-bits.
OnlyAdminCanUninstall=Este programa solo puede ser desinstalado por un usuario con privilegios administrativos.
UninstallStatusLabel=Por favor, espere mientras %1 es desinstalado de su sistema.
UninstalledAll=%1 se desinstal� satisfactoriamente de su sistema.
UninstalledMost=La desinstalaci�n de %1 ha sido completada.%n%nAlgunos elementos no pudieron eliminarse, pero podr� eliminarlos manualmente si lo desea.
UninstalledAndNeedsRestart=Para completar la desinstalaci�n de %1, su sistema debe reiniciarse.%n%n�Desea reiniciarlo ahora?
UninstallDataCorrupted=El archivo "%1" est� da�ado. No puede desinstalarse
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=�Eliminar Archivo Compartido?
ConfirmDeleteSharedFile2=El sistema indica que el siguiente archivo compartido no es utilizado por ning�n otro programa. �Desea eliminar este archivo compartido?%n%nSi elimina el archivo y hay programas que lo utilizan, esos programas podr�an dejar de funcionar correctamente. Si no est� seguro, elija No. Dejar el archivo en su sistema no producir� ning�n da�o.
SharedFileNameLabel=Archivo:
SharedFileLocationLabel=Ubicaci�n:
WizardUninstalling=Estado de la Desinstalaci�n
StatusUninstalling=Desinstalando %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Instalando %1.
ShutdownBlockReasonUninstallingApp=Desinstalando %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 versi�n %2
AdditionalIcons=Accesos directos adicionales:
CreateDesktopIcon=Crear un acceso directo en el &escritorio
CreateQuickLaunchIcon=Crear un acceso directo en &Inicio R�pido
ProgramOnTheWeb=%1 en la Web
UninstallProgram=Desinstalar %1
LaunchProgram=Ejecutar %1
AssocFileExtension=&Asociar %1 con la extensi�n de archivo %2
AssocingFileExtension=Asociando %1 con la extensi�n de archivo %2...
AutoStartProgramGroupDescription=Inicio:
AutoStartProgram=Iniciar autom�ticamente %1
AddonHostProgramNotFound=%1 no pudo ser localizado en la carpeta seleccionada.%n%n�Desea continuar de todas formas?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Elige el modo de instalaci�n
SelectSetupInstallModeDesc=VCMI puede instalarse para todos los usuarios o solo para ti.
SelectSetupInstallModeSubTitle=Selecciona el modo de instalaci�n preferido:
InstallForAllUsers=Instalar para todos los usuarios
InstallForAllUsers1=Requiere privilegios administrativos
InstallForMeOnly=Instalar solo para m�
InstallForMeOnly1=Aparecer� una advertencia del firewall al iniciar el juego por primera vez
InstallForMeOnly2=Los juegos en LAN no funcionar�n si no se permite la regla del firewall
SystemIntegration=Integraci�n con el sistema
CreateDesktopShortcuts=Crear accesos directos en el escritorio
CreateStartMenuShortcuts=Crear accesos directos en el men� Inicio
AssociateH3MFiles=Asociar archivos .h3m con el Editor de Mapas de VCMI
AssociateVCMIMapFiles=Asociar archivos .vmap y .vcmp con el Editor de Mapas de VCMI
VCMISettings=Configuraci�n de VCMI
AddFirewallRules=A�adir reglas de firewall para VCMI
CopyH3Files=Copiar autom�ticamente los archivos necesarios de Heroes III a VCMI
RunVCMILauncherAfterInstall=Iniciar el Launcher de VCMI
ShortcutMapEditor=Editor de Mapas de VCMI
ShortcutLauncher=Launcher de VCMI
ShortcutWebPage=Sitio web oficial de VCMI
ShortcutDiscord=Discord oficial de VCMI
ShortcutLauncherComment=Iniciar el Launcher de VCMI
ShortcutMapEditorComment=Abrir el Editor de Mapas de VCMI
ShortcutWebPageComment=Visitar el sitio web oficial de VCMI
ShortcutDiscordComment=Visitar el Discord oficial de VCMI
DeleteUserData=Eliminar datos de usuario
Uninstall=Desinstalar
Warning=Advertencia
VMAPDescription=Archivo de mapa de VCMI
VCMPDescription=Archivo de campa�a de VCMI
H3MDescription=Archivo de mapa de Heroes 3

View File

@ -0,0 +1,559 @@
; *** Inno Setup version 6.1.0+ Swedish messages ***
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
;
; Translated by stefan@bodingh.se (Stefan Bodingh)
;
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
[LangOptions]
LanguageName=Svenska
LanguageID=$041D
LanguageCodePage=1252
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
; *** Application titles
[Messages]
SetupAppTitle=Installationsprogram
SetupWindowTitle=Installationsprogram f�r %1
UninstallAppTitle=Avinstallation
UninstallAppFullTitle=%1 Avinstallation
; *** Misc. common
InformationTitle=Information
ConfirmTitle=Bekr�fta
ErrorTitle=Fel
; *** SetupLdr messages
SetupLdrStartupMessage=%1 kommer att installeras. Vill du forts�tta?
LdrCannotCreateTemp=Kan inte skapa en tempor�r fil. Installationen avbryts
LdrCannotExecTemp=Kan inte k�ra fil i tempor�r katalog. Installationen avbryts
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nFel %2: %3
SetupFileMissing=Filen %1 saknas i installationskatalogen. R�tta till problemet eller h�mta en ny kopia av programmet.
SetupFileCorrupt=Installationsfilerna �r felaktiga. H�mta en ny kopia av programmet
SetupFileCorruptOrWrongVer=Installationsfilerna �r felaktiga, eller st�mmer ej �verens med denna version av installationsprogrammet. R�tta till felet eller h�mta en ny programkopia.
InvalidParameter=En ogiltig parameter angavs p� kommandoraden:%n%n%1
SetupAlreadyRunning=Setup k�rs redan.
WindowsVersionNotSupported=Det h�r programmet kan inte k�ras p� din version av Windows. Se till att du anv�nder r�tt Windows-arkitektur (32-bitars eller 64-bitars) och r�tt version av programmet.
WindowsServicePackRequired=Programmet kr�ver %1 Service Pack %2 eller nyare.
NotOnThisPlatform=Detta program kan ej k�ras p� %1.
OnlyOnThisPlatform=Detta program m�ste ha %1.
OnlyOnTheseArchitectures=Detta program kan bara installeras p� Windows versioner med f�ljande processorarkitekturer:%n%n%1
WinVersionTooLowError=Detta program kr�ver %1, version %2 eller senare.
WinVersionTooHighError=Programmet kan inte installeras p� %1 version %2 eller senare.
AdminPrivilegesRequired=Du m�ste vara inloggad som administrat�r n�r du installerar detta program.
PowerUserPrivilegesRequired=Du m�ste vara inloggad som administrat�r eller medlem av gruppen Privilegierade anv�ndare (Power Users) n�r du installerar detta program.
SetupAppRunningError=Installationsprogrammet har uppt�ckt att %1 �r ig�ng.%n%nAvsluta det angivna programmet nu. Klicka sedan p� OK f�r att g� vidare, eller p� Avbryt f�r att avsluta.
UninstallAppRunningError=Avinstalleraren har uppt�ckt att %1 k�rs f�r tillf�llet.%n%nSt�ng all �ppna instanser av det nu, klicka sedan p� OK f�r att g� vidare, eller p� Avbryt f�r att avsluta.
PrivilegesRequiredOverrideTitle=Installationstyp
PrivilegesRequiredOverrideInstruction=V�lj installationstyp
PrivilegesRequiredOverrideText1=%1 kan installeras f�r alla anv�ndare (kr�ver administratons-r�ttigheter), eller bara f�r dig.
PrivilegesRequiredOverrideText2=%1 kan installeras bara f�r dig, eller f�r alla anv�ndare (kr�ver administratons-r�ttigheter).
PrivilegesRequiredOverrideAllUsers=Installera f�r &alla anv�ndare
PrivilegesRequiredOverrideAllUsersRecommended=Installera f�r &alla anv�ndare (rekommenderas)
PrivilegesRequiredOverrideCurrentUser=Installera f�r &mig enbart
PrivilegesRequiredOverrideCurrentUserRecommended=Installera f�r &mig enbart (rekommenderas)
; *** Misc. errors
ErrorCreatingDir=Kunde inte skapa katalogen "%1"
ErrorTooManyFilesInDir=Kunde inte skapa en fil i katalogen "%1" d�rf�r att den inneh�ller f�r m�nga filer
; *** Setup common messages
ExitSetupTitle=Avsluta installationen
ExitSetupMessage=Installationen �r inte f�rdig. Om du avslutar nu, kommer programmet inte att installeras.%n%nDu kan k�ra installationsprogrammet vid ett senare tillf�lle f�r att slutf�ra installationen.%n%nVill du avbryta installationen?
AboutSetupMenuItem=&Om installationsprogrammet...
AboutSetupTitle=Om installationsprogrammet
AboutSetupMessage=%1 version %2%n%3%n%n%1 hemsida:%n%4
AboutSetupNote=Svensk �vers�ttning �r gjord av dickg@go.to 1999, 2002%n%nUppdatering till 3.0.2+ av peter@peterandlinda.com, 4.+ av stefan@bodingh.se
TranslatorNote=
; *** Buttons
ButtonBack=< &Tillbaka
ButtonNext=&N�sta >
ButtonInstall=&Installera
ButtonOK=OK
ButtonCancel=Avbryt
ButtonYes=&Ja
ButtonYesToAll=Ja till &Allt
ButtonNo=&Nej
ButtonNoToAll=N&ej till allt
ButtonFinish=&Slutf�r
ButtonBrowse=&Bl�ddra...
ButtonWizardBrowse=&Bl�ddra...
ButtonNewFolder=Skapa ny katalog
; *** "Select Language" dialog messages
SelectLanguageTitle=V�lj spr�k f�r installationen
SelectLanguageLabel=V�lj spr�k som skall anv�ndas under installationen:
; *** Common wizard text
ClickNext=Klicka p� N�sta f�r att forts�tta eller p� Avbryt f�r att avsluta installationen.
BeveledLabel=
BrowseDialogTitle=V�lj katalog
BrowseDialogLabel=V�lj en katalog i listan nedan, klicka sedan p� OK.
NewFolderName=Ny katalog
; *** "Welcome" wizard page
WelcomeLabel1=V�lkommen till installationsprogrammet f�r [name].
WelcomeLabel2=Detta kommer att installera [name/ver] p� din dator.%n%nDet rekommenderas att du avslutar alla andra program innan du forts�tter. Det f�rebygger konflikter under installationens g�ng.
; *** "Password" wizard page
WizardPassword=L�senord
PasswordLabel1=Denna installation �r skyddad med l�senord.
PasswordLabel3=Var god ange l�senordet, klicka sedan p� N�sta f�r att forts�tta. L�senord skiljer p� versaler/gemener.
PasswordEditLabel=&L�senord:
IncorrectPassword=L�senordet du angav �r inkorrekt. F�rs�k igen.
; *** "License Agreement" wizard page
WizardLicense=Licensavtal
LicenseLabel=Var god och l�s f�ljande viktiga information innan du forts�tter.
LicenseLabel3=Var god och l�s f�ljande licensavtal. Du m�ste acceptera villkoren i avtalet innan du kan forts�tta med installationen.
LicenseAccepted=Jag &accepterar avtalet
LicenseNotAccepted=Jag accepterar &inte avtalet
; *** "Information" wizard pages
WizardInfoBefore=Information
InfoBeforeLabel=Var god l�s f�ljande viktiga information innan du forts�tter.
InfoBeforeClickLabel=N�r du �r klar att forts�tta med installationen klickar du p� N�sta.
WizardInfoAfter=Information
InfoAfterLabel=Var god l�s f�ljande viktiga information innan du forts�tter.
InfoAfterClickLabel=N�r du �r klar att forts�tta med installationen klickar du p� N�sta.
; *** "User Information" wizard page
WizardUserInfo=Anv�ndarinformation
UserInfoDesc=Var god och fyll i f�ljande uppgifter.
UserInfoName=&Namn:
UserInfoOrg=&Organisation:
UserInfoSerial=&Serienummer:
UserInfoNameRequired=Du m�ste fylla i ett namn.
; *** "Select Destination Directory" wizard page
WizardSelectDir=V�lj installationsplats
SelectDirDesc=Var skall [name] installeras?
SelectDirLabel3=Installationsprogrammet kommer att installera [name] i f�ljande katalog
SelectDirBrowseLabel=F�r att forts�tta klickar du p� N�sta. Om du vill v�lja en annan katalog klickar du p� Bl�ddra.
DiskSpaceGBLabel=Programmet kr�ver minst [gb] MB h�rddiskutrymme.
DiskSpaceMBLabel=Programmet kr�ver minst [mb] MB h�rddiskutrymme.
CannotInstallToNetworkDrive=Setup kan inte installeras p� n�tverksdisk.
CannotInstallToUNCPath=Setup kan inte installeras p� UNC s�kv�g.
InvalidPath=Du m�ste skriva en fullst�ndig s�kv�g med enhetsbeteckning; till exempel:%n%nC:\Program%n%neller en UNC-s�kv�g i formatet:%n%n\\server\resurs
InvalidDrive=Enheten du har valt finns inte eller �r inte tillg�nglig. V�lj en annan.
DiskSpaceWarningTitle=Ej tillr�ckligt med diskutrymme
DiskSpaceWarning=Installationsprogrammet beh�ver �tminstone %1 KB ledigt diskutrymme f�r installationen, men den valda enheten har bara %2 KB tillg�ngligt.%n%nVill du forts�tta �nd�?
DirNameTooLong=Katalogens namn eller s�kv�g �r f�r l�ng.
InvalidDirName=Katalogen du har valt �r inte tillg�nglig.
BadDirName32=Katalogens namn f�r ej inneh�lla n�got av f�ljande tecken:%n%n%1
DirExistsTitle=Katalogen finns
DirExists=Katalogen:%n%n%1%n%nfinns redan. Vill du �nd� forts�tta installationen till den valda katalogen?
DirDoesntExistTitle=Katalogen finns inte
DirDoesntExist=Katalogen:%n%n%1%n%nfinns inte. Vill du skapa den?
; *** "Select Components" wizard page
WizardSelectComponents=V�lj komponenter
SelectComponentsDesc=Vilka komponenter skall installeras?
SelectComponentsLabel2=V�lj de komponenter som du vill ska installeras; avmarkera de komponenter som du inte vill ha. Klicka sedan p� N�sta n�r du �r klar att forts�tta.
FullInstallation=Fullst�ndig installation
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Kompakt installation
CustomInstallation=Anpassad installation
NoUninstallWarningTitle=Komponenter finns
NoUninstallWarning=Installationsprogrammet har uppt�ckt att f�ljande komponenter redan finns installerade p� din dator:%n%n%1%n%nAtt avmarkera dessa komponenter kommer inte att avinstallera dom.%n%nVill du forts�tta �nd�?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Aktuella val kr�ver minst [gb] GB diskutrymme.
ComponentsDiskSpaceMBLabel=Aktuella val kr�ver minst [mb] MB diskutrymme.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=V�lj extra uppgifter
SelectTasksDesc=Vilka extra uppgifter skall utf�ras?
SelectTasksLabel2=Markera ytterligare uppgifter att utf�ra vid installation av [name], tryck sedan p� N�sta.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=V�lj Startmenykatalogen
SelectStartMenuFolderDesc=Var skall installationsprogrammet placera programmets genv�gar?
SelectStartMenuFolderLabel3=Installationsprogrammet kommer att skapa programmets genv�gar i f�ljande katalog.
SelectStartMenuFolderBrowseLabel=F�r att forts�tta klickar du p� N�sta. Om du vill v�lja en annan katalog, klickar du p� Bl�ddra.
MustEnterGroupName=Du m�ste ange en katalog.
GroupNameTooLong=Katalogens namn eller s�kv�g �r f�r l�ng.
InvalidGroupName=Katalogen du har valt �r inte tillg�nglig.
BadGroupName=Katalognamnet kan inte inneh�lla n�gon av f�ljande tecken:%n%n%1
NoProgramGroupCheck2=&Skapa ingen Startmenykatalog
; *** "Ready to Install" wizard page
WizardReady=Redo att installera
ReadyLabel1=Installationsprogrammet �r nu redo att installera [name] p� din dator.
ReadyLabel2a=Tryck p� Installera om du vill forts�tta, eller p� g� Tillbaka om du vill granska eller �ndra p� n�got.
ReadyLabel2b=V�lj Installera f�r att p�b�rja installationen.
ReadyMemoUserInfo=Anv�ndarinformation:
ReadyMemoDir=Installationsplats:
ReadyMemoType=Installationstyp:
ReadyMemoComponents=Valda komponenter:
ReadyMemoGroup=Startmenykatalog:
ReadyMemoTasks=Extra uppgifter:
DownloadingLabel=Laddar ner ytterligare filer...
ButtonStopDownload=&Stoppa nedladdning
StopDownload=�r du s�ker p� att du vill stoppa nedladdningen?
ErrorDownloadAborted=Nedladdningen avbruten
ErrorDownloadFailed=Nedladdningen misslyckades: %1 %2
ErrorDownloadSizeFailed=F� storlek misslyckades: %1 %2
ErrorFileHash1=Filhash misslyckades: %1
ErrorFileHash2=Ogiltig filhash: f�rv�ntat %1, hittat %2
ErrorProgress=Ogiltig framfart: %1 of %2
ErrorFileSize=Ogiltig filstorlek: f�rv�ntad %1, hittad %2
; *** "Preparing to Install" wizard page
WizardPreparing=F�rbereder installationen
PreparingDesc=Installationsprogrammet f�rbereder installationen av [name] p� din dator.
PreviousInstallNotCompleted=Installationen/avinstallationen av ett tidigare program har inte slutf�rts. Du m�ste starta om datorn f�r att avsluta den installationen.%n%nEfter att ha startat om datorn k�r du installationsprogrammet igen f�r att slutf�ra installationen av [name].
CannotContinue=Installationsprogrammet kan inte forts�tta. Klicka p� Avbryt f�r att avsluta.
ApplicationsFound=F�ljande program anv�nder filer som m�ste uppdateras av Setup. Vi rekommenderar att du l�ter Setup automatiskt st�nga dessa program.
ApplicationsFound2=F�ljande program anv�nder filer som m�ste uppdateras av Setup. Vi rekommenderar att du l�ter Setup automatiskt st�nga dessa program. Efter installationen kommer Setup att f�rs�ka starta programmen igen.
CloseApplications=&St�ng programmen automatiskt
DontCloseApplications=&St�ng inte programmen
ErrorCloseApplications=Installationsprogrammet kunde inte st�nga alla program. Innan installationen forts�tter rekommenderar vi att du st�nger alla program som anv�nder filer som Setup beh�ver uppdatera.
PrepareToInstallNeedsRestart=Installationen m�ste starta om din dator. N�r du har startat om datorn k�r du Setup igen f�r att slutf�ra installationen av [name].%n%nVill du starta om nu?
; *** "Installing" wizard page
WizardInstalling=Installerar
InstallingLabel=V�nta medan [name] installeras p� din dator.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Avslutar installationen av [name]
FinishedLabelNoIcons=[name] har nu installerats p� din dator.
FinishedLabel=[name] har nu installerats p� din dator. Programmet kan startas genom att v�lja n�gon av ikonerna.
ClickFinish=V�lj Slutf�r f�r att avsluta installationen.
FinishedRestartLabel=F�r att slutf�ra installationen av [name], m�ste datorn startas om. Vill du starta om nu?
FinishedRestartMessage=F�r att slutf�ra installationen av [name], m�ste datorn startas om.%n%nVill du starta om datorn nu?
ShowReadmeCheck=Ja, jag vill se filen L�S MIG
YesRadio=&Ja, jag vill starta om datorn nu
NoRadio=&Nej, jag startar sj�lv om datorn senare
; used for example as 'Run MyProg.exe'
RunEntryExec=K�r %1
; used for example as 'View Readme.txt'
RunEntryShellExec=L�s %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Installationsprogrammet beh�ver n�sta diskett
SelectDiskLabel2=Var god s�tt i diskett %1 och tryck OK.%n%nOm filerna kan hittas i en annan katalog �n den som visas nedan, skriv in r�tt s�kv�g eller v�lj Bl�ddra.
PathLabel=&S�kv�g:
FileNotInDir2=Kunde inte hitta filen "%1" i "%2". Var god s�tt i korrekt diskett eller v�lj en annan katalog.
SelectDirectoryLabel=Var god ange s�kv�gen f�r n�sta diskett.
; *** Installation phase messages
SetupAborted=Installationen slutf�rdes inte.%n%nVar god r�tta till felet och k�r installationen igen.
AbortRetryIgnoreSelectAction=V�lj �tg�rd
AbortRetryIgnoreRetry=&F�rs�k igen
AbortRetryIgnoreIgnore=&Ignorera felet och forts�tt
AbortRetryIgnoreCancel=Avbryt installationen
; *** Installation status messages
StatusClosingApplications=St�nger program...
StatusCreateDirs=Skapar kataloger...
StatusExtractFiles=Packar upp filer...
StatusCreateIcons=Skapar programikoner...
StatusCreateIniEntries=Skriver INI-v�rden...
StatusCreateRegistryEntries=Skriver register-v�rden...
StatusRegisterFiles=Registrerar filer...
StatusSavingUninstall=Sparar information f�r avinstallation...
StatusRunProgram=Slutf�r installationen...
StatusRestartingApplications=Startar om program...
StatusRollback=�terst�ller �ndringar...
; *** Misc. errors
ErrorInternal2=Internt fel: %1
ErrorFunctionFailedNoCode=%1 misslyckades
ErrorFunctionFailed=%1 misslyckades; kod %2
ErrorFunctionFailedWithMessage=%1 misslyckades; kod %2.%n%3
ErrorExecutingProgram=Kan inte k�ra filen:%n%1
; *** Registry errors
ErrorRegOpenKey=Fel vid �ppning av registernyckel:%n%1\%2
ErrorRegCreateKey=Kan ej skapa registernyckel:%n%1\%2
ErrorRegWriteKey=Kan ej skriva till registernyckel:%n%1\%2
; *** INI errors
ErrorIniEntry=Kan inte skriva nytt INI-v�rde i filen "%1".
FileAbortRetryIgnoreSkipNotRecommended=&Hoppa �ver den h�r filen (rekommenderas inte)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorera felet och forts�tt (rekommenderas inte)
SourceIsCorrupted=K�llfilen �r felaktig
SourceDoesntExist=K�llfilen "%1" finns inte
ExistingFileReadOnly2=Den befintliga filen kunde inte bytas ut eftersom den �r markerad skrivskyddad.
ExistingFileReadOnlyRetry=&Ta bort skrivskyddad attributet och f�rs�k igen
ExistingFileReadOnlyKeepExisting=&Beh�ll den befintliga filen
ErrorReadingExistingDest=Ett fel uppstod vid f�rs�k att l�sa den befintliga filen:
FileExistsSelectAction=V�lj �tg�rd
FileExists2=Filen finns redan.
FileExistsOverwriteExisting=&Skriv �ver den befintliga filen
FileExistsKeepExisting=&Beh�ll befintlig fil
FileExistsOverwriteOrKeepAll=&G�r detta f�r n�sta konflikt
ExistingFileNewerSelectAction=V�lj �tg�rd
ExistingFileNewer2=Den befintliga filen �r nyare �n den som Setup f�rs�ker installera.
ExistingFileNewerOverwriteExisting=&Skriv �ver den befintliga filen
ExistingFileNewerKeepExisting=&Beh�ll befintlig fil (rekommenderas)
ExistingFileNewerOverwriteOrKeepAll=&G�r detta f�r n�sta konflikt
ErrorChangingAttr=Ett fel uppstod vid f�rs�k att �ndra attribut p� den befintliga filen:
ErrorCreatingTemp=Ett fel uppstod vid ett f�rs�k att skapa installationskatalogen:
ErrorReadingSource=Ett fel uppstod vid ett f�rs�k att l�sa k�llfilen:
ErrorCopying=Ett fel uppstod vid kopiering av filen:
ErrorReplacingExistingFile=Ett fel uppstod vid ett f�rs�k att ers�tta den befintliga filen:
ErrorRestartReplace=�terstartaErs�tt misslyckades:
ErrorRenamingTemp=Ett fel uppstod vid ett f�rs�k att byta namn p� en fil i installationskatalogen:
ErrorRegisterServer=Kunde inte registrera DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 misslyckades med felkod %1
ErrorRegisterTypeLib=Kunde inte registrera typbibliotek: %1
UninstallDisplayNameMark=%1 (%2)
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=Alla anv�ndare
UninstallDisplayNameMarkCurrentUser=Nuvarande anv�ndare
; *** Post-installation errors
ErrorOpeningReadme=Ett fel uppstod vid �ppnandet av L�S MIG-filen.
ErrorRestartingComputer=Installationsprogrammet kunde inte starta om datorn. Var god g�r det manuellt.
; *** Uninstaller messages
UninstallNotFound=Filen "%1" finns inte. Kan inte avinstallera.
UninstallOpenError=Filen "%1" kan inte �ppnas. Kan inte avinstallera.
UninstallUnsupportedVer=Avinstallationsloggen "%1" �r i ett format som denna version inte k�nner igen. Kan ej avinstallera
UninstallUnknownEntry=En ok�nd rad (%1) hittades i avinstallationsloggen
ConfirmUninstall=�r du s�ker p� att du vill k�ra avinstallationsguiden f�r %1?
UninstallOnlyOnWin64=Denna installation kan endast avinstalleras p� en 64-bitarsversion av Windows.
OnlyAdminCanUninstall=Denna installation kan endast avinstalleras av en anv�ndare med administrativa r�ttigheter.
UninstallStatusLabel=Var god och v�nta medan %1 tas bort fr�n din dator.
UninstalledAll=%1 �r nu borttaget fr�n din dator.
UninstalledMost=Avinstallationen av %1 �r nu klar.%n%nEn del filer/kataloger gick ej att ta bort. Dessa kan tas bort manuellt.
UninstalledAndNeedsRestart=F�r att slutf�ra avinstallationen av %1 m�ste datorn startas om.%n%nVill du starta om nu?
UninstallDataCorrupted=Filen "%1" �r felaktig. Kan inte avinstallera
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Ta bort delad fil?
ConfirmDeleteSharedFile2=Systemet indikerar att f�ljande delade fil inte l�ngre anv�nds av n�gra program. Vill du ta bort den delade filen?%n%n%1%n%nOm n�got program fortfarande anv�nder denna fil och den raderas, kommer programmet kanske att sluta fungera. Om du �r os�ker, v�lj Nej. Att l�ta filen ligga kvar i systemet kommer inte att orsaka n�gon skada.
SharedFileNameLabel=Filnamn:
SharedFileLocationLabel=Plats:
WizardUninstalling=Avinstallationsstatus
StatusUninstalling=Avinstallerar %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Installerar %1.
ShutdownBlockReasonUninstallingApp=Avinstallerar %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 version %2
AdditionalIcons=�terst�ende ikoner:
CreateDesktopIcon=Skapa en genv�g p� skrivbordet
CreateQuickLaunchIcon=Skapa en genv�g i Snabbstartf�ltet
ProgramOnTheWeb=%1 p� Webben
UninstallProgram=Avinstallera %1
LaunchProgram=Starta %1
AssocFileExtension=Associera %1 med %2 filnamnstill�gg
AssocingFileExtension=Associerar %1 med %2 filnamnstill�gg...
AutoStartProgramGroupDescription=Autostart:
AutoStartProgram=Starta automatiskt %1
AddonHostProgramNotFound=%1 kunde inte hittas i katalogen du valde.%n%nVill du forts�tta �nd�?
; VCMI Custom Messages
SelectSetupInstallModeTitle=V�lj installationsl�ge
SelectSetupInstallModeDesc=VCMI kan installeras f�r alla anv�ndare eller bara f�r dig.
SelectSetupInstallModeSubTitle=V�lj �nskat installationsl�ge:
InstallForAllUsers=Installera f�r alla anv�ndare
InstallForAllUsers1=Kr�ver administrat�rsbeh�righeter
InstallForMeOnly=Installera endast f�r mig
InstallForMeOnly1=En brandv�ggsvarning visas f�rsta g�ngen spelet startas
InstallForMeOnly2=LAN-spel fungerar inte om brandv�ggsregeln inte kan godk�nnas
SystemIntegration=Systemintegration
CreateDesktopShortcuts=Skapa genv�gar p� skrivbordet
CreateStartMenuShortcuts=Skapa genv�gar i Start-menyn
AssociateH3MFiles=Associera .h3m-filer med VCMI Kartredigeraren
AssociateVCMIMapFiles=Associera .vmap- och .vcmp-filer med VCMI Kartredigeraren
VCMISettings=VCMI-konfiguration
AddFirewallRules=L�gg till brandv�ggsregler f�r VCMI
CopyH3Files=Kopiera automatiskt n�dv�ndiga Heroes III-filer till VCMI
RunVCMILauncherAfterInstall=Starta VCMI Launcher
ShortcutMapEditor=VCMI Kartredigerare
ShortcutLauncher=VCMI Launcher
ShortcutWebPage=VCMI Webbplats
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=Starta VCMI Launcher
ShortcutMapEditorComment=�ppna VCMI Kartredigerare
ShortcutWebPageComment=Bes�k den officiella VCMI-webbplatsen
ShortcutDiscordComment=Bes�k den officiella VCMI Discord
DeleteUserData=Radera anv�ndardata
Uninstall=Avinstallera
Warning=Varning
VMAPDescription=VCMI Kartfil
VCMPDescription=VCMI Kampanjfil
H3MDescription=Heroes 3 Kartfil

View File

@ -0,0 +1,417 @@
; *** Inno Setup version 6.1.0+ Turkish messages ***
; Language "Turkce" Turkish Translate by "Ceviren" Kaya Zeren translator@zeron.net
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=T<00FC>rk<00E7>e
LanguageID=$041f
LanguageCodePage=1254
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Uygulama ba�l�klar�
SetupAppTitle=Kurulum yard�mc�s�
SetupWindowTitle=%1 - Kurulum yard�mc�s�
UninstallAppTitle=Kald�rma yard�mc�s�
UninstallAppFullTitle=%1 kald�rma yard�mc�s�
; *** �e�itli ortak metinler
InformationTitle=Bilgi
ConfirmTitle=Onay
ErrorTitle=Hata
; *** Kurulum y�kleyici iletileri
SetupLdrStartupMessage=%1 uygulamas� kurulacak. �lerlemek istiyor musunuz?
LdrCannotCreateTemp=Ge�ici dosya olu�turulamad���ndan kurulum iptal edildi
LdrCannotExecTemp=Ge�ici klas�rdeki dosya �al��t�r�lamad���ndan kurulum iptal edildi
HelpTextNote=
; *** Ba�lang�� hata iletileri
LastErrorMessage=%1.%n%nHata %2: %3
SetupFileMissing=Kurulum klas�r�nde %1 dosyas� eksik. L�tfen sorunu ��z�n ya da uygulaman�n yeni bir kopyas�yla yeniden deneyin.
SetupFileCorrupt=Kurulum dosyalar� bozulmu�. L�tfen uygulaman�n yeni bir kopyas�yla yeniden kurmay� deneyin.
SetupFileCorruptOrWrongVer=Kurulum dosyalar� bozulmu� ya da bu kurulum yard�mc�s� s�r�m� ile uyumlu de�il. L�tfen sorunu ��z�n ya da uygulaman�n yeni bir kopyas�yla yeniden kurmay� deneyin.
InvalidParameter=Komut sat�r�nda ge�ersiz bir parametre yaz�lm��:%n%n%1
SetupAlreadyRunning=Kurulum yard�mc�s� zaten �al���yor.
WindowsVersionNotSupported=Bu program, Windows s�r�m�n�zde �alistirilamaz. L�tfen dogru Windows mimarisini (32-bit veya 64-bit) ve bu programa uygun s�r�m� kullandiginizdan emin olun.
WindowsServicePackRequired=Bu uygulama, %1 hizmet paketi %2 ve �zerindeki s�r�mler ile �al���r.
NotOnThisPlatform=Bu uygulama, %1 �zerinde �al��maz.
OnlyOnThisPlatform=Bu uygulama, %1 �zerinde �al��t�r�lmal�d�r.
OnlyOnTheseArchitectures=Bu uygulama, yaln�zca �u i�lemci mimarileri i�in tasarlanm�� Windows s�r�mleriyle �al���r:%n%n%1
WinVersionTooLowError=Bu uygulama i�in %1 s�r�m %2 ya da �zeri gereklidir.
WinVersionTooHighError=Bu uygulama, '%1' s�r�m '%2' ya da �zerine kurulamaz.
AdminPrivilegesRequired=Bu uygulamay� kurmak i�in Y�netici yetkileri olan bir kullan�c� ile oturum a��lm�� olmal�d�r.
PowerUserPrivilegesRequired=Bu uygulamay� kurarken, Y�netici ya da G��l� Kullan�c�lar grubundaki bir kullan�c� ile oturum a��lm�� olmas� gereklidir.
SetupAppRunningError=Kurulum yard�mc�s� %1 uygulamas�n�n �al��makta oldu�unu alg�lad�.%n%nL�tfen uygulaman�n �al��an t�m kopyalar�n� kapat�p, ilerlemek i�in Tamam, kurulum yard�mc�s�ndan ��kmak i�in �ptal �zerine t�klay�n.
UninstallAppRunningError=Kald�rma yard�mc�s�, %1 uygulamas�n�n �al��makta oldu�unu alg�lad�.%n%nL�tfen uygulaman�n �al��an t�m kopyalar�n� kapat�p, ilerlemek i�in Tamam ya da kald�rma yard�mc�s�ndan ��kmak i�in �ptal �zerine t�klay�n.
; *** Ba�lang�� sorular�
PrivilegesRequiredOverrideTitle=Kurulum kipini se�in
PrivilegesRequiredOverrideInstruction=Kurulum kipini se�in
PrivilegesRequiredOverrideText1=%1 t�m kullan�c�lar i�in (y�netici izinleri gerekir) ya da yaln�zca sizin hesab�n�z i�in kurulabilir.
PrivilegesRequiredOverrideText2=%1 yaln�zca sizin hesab�n�z i�in ya da t�m kullan�c�lar i�in (y�netici izinleri gerekir) kurulabilir.
PrivilegesRequiredOverrideAllUsers=&T�m kullan�c�lar i�in kurulsun
PrivilegesRequiredOverrideAllUsersRecommended=&T�m kullan�c�lar i�in kurulsun (�nerilir)
PrivilegesRequiredOverrideCurrentUser=&Yaln�zca ge�erli kullan�c� i�in kurulsun
PrivilegesRequiredOverrideCurrentUserRecommended=&Yaln�zca ge�erli kullan�c� i�in kurulsun (�nerilir)
; *** �e�itli hata metinleri
ErrorCreatingDir=Kurulum yard�mc�s� "%1" klas�r�n� olu�turamad�.
ErrorTooManyFilesInDir="%1" klas�r� i�inde �ok say�da dosya oldu�undan bir dosya olu�turulamad�
; *** Ortak kurulum iletileri
ExitSetupTitle=Kurulum yard�mc�s�ndan ��k
ExitSetupMessage=Kurulum tamamlanmad�. �imdi ��karsan�z, uygulama kurulmayacak.%n%nKurulumu tamamlamak i�in istedi�iniz zaman kurulum yard�mc�s�n� yeniden �al��t�rabilirsiniz.%n%nKurulum yard�mc�s�ndan ��k�ls�n m�?
AboutSetupMenuItem=Kurulum h&akk�nda...
AboutSetupTitle=Kurulum hakk�nda
AboutSetupMessage=%1 %2 s�r�m�%n%3%n%n%1 ana sayfa:%n%4
AboutSetupNote=
TranslatorNote=
; *** D��meler
ButtonBack=< �&nceki
ButtonNext=&Sonraki >
ButtonInstall=&Kur
ButtonOK=Tamam
ButtonCancel=�ptal
ButtonYes=E&vet
ButtonYesToAll=&T�m�ne evet
ButtonNo=&Hay�r
ButtonNoToAll=T�m�ne ha&y�r
ButtonFinish=&Bitti
ButtonBrowse=&G�z at...
ButtonWizardBrowse=G�z a&t...
ButtonNewFolder=Ye&ni klas�r olu�tur
; *** "Kurulum dilini se�in" sayfas� iletileri
SelectLanguageTitle=Kurulum Yard�mc�s� dilini se�in
SelectLanguageLabel=Kurulum s�resince kullan�lacak dili se�in.
; *** Ortak metinler
ClickNext=�lerlemek i�in Sonraki, ��kmak i�in �ptal �zerine t�klay�n.
BeveledLabel=
BrowseDialogTitle=Klas�re g�z at
BrowseDialogLabel=A�a��daki listeden bir klas�r se�ip, Tamam �zerine t�klay�n.
NewFolderName=Yeni klas�r
; *** "Kar��lama" sayfas�
WelcomeLabel1=[name] Kurulum yard�mc�s�na ho� geldiniz.
WelcomeLabel2=Bilgisayar�n�za [name/ver] uygulamas� kurulacak.%n%n�lerlemeden �nce �al��an di�er t�m uygulamalar� kapatman�z �nerilir.
; *** "Parola" sayfas�
WizardPassword=Parola
PasswordLabel1=Bu kurulum parola korumal�d�r.
PasswordLabel3=L�tfen parolay� yaz�n ve ilerlemek i�in Sonraki �zerine t�klay�n. Parolalar b�y�k k���k harflere duyarl�d�r.
PasswordEditLabel=&Parola:
IncorrectPassword=Yazd���n�z parola do�ru de�il. L�tfen yeniden deneyin.
; *** "Lisans anla�mas�" sayfas�
WizardLicense=Lisans anla�mas�
LicenseLabel=L�tfen ilerlemeden �nce a�a��daki �nemli bilgileri okuyun.
LicenseLabel3=L�tfen a�a��daki lisans anla�mas�n� okuyun. Uygulamay� kurmak i�in bu anla�may� kabul etmelisiniz.
LicenseAccepted=Anla�may� kabul &ediyorum.
LicenseNotAccepted=Anla�may� kabul et&miyorum.
; *** "Bilgiler" sayfas�
WizardInfoBefore=Bilgiler
InfoBeforeLabel=L�tfen ilerlemeden �nce a�a��daki �nemli bilgileri okuyun.
InfoBeforeClickLabel=Uygulamay� kurmaya haz�r oldu�unuzda Sonraki �zerine t�klay�n.
WizardInfoAfter=Bilgiler
InfoAfterLabel=L�tfen ilerlemeden �nce a�a��daki �nemli bilgileri okuyun.
InfoAfterClickLabel=Uygulamay� kurmaya haz�r oldu�unuzda Sonraki �zerine t�klay�n.
; *** "Kullan�c� bilgileri" sayfas�
WizardUserInfo=Kullan�c� bilgileri
UserInfoDesc=L�tfen bilgilerinizi yaz�n.
UserInfoName=K&ullan�c� ad�:
UserInfoOrg=Ku&rum:
UserInfoSerial=&Seri numaras�:
UserInfoNameRequired=Bir ad yazmal�s�n�z.
; *** "Kurulum konumunu se�in" sayfas�
WizardSelectDir=Kurulum konumunu se�in
SelectDirDesc=[name] nereye kurulsun?
SelectDirLabel3=[name] uygulamas� �u klas�re kurulacak.
SelectDirBrowseLabel=�lerlemek icin Sonraki �zerine t�klay�n. Farkl� bir klas�r se�mek i�in G�z at �zerine t�klay�n.
DiskSpaceGBLabel=En az [gb] GB bo� disk alan� gereklidir.
DiskSpaceMBLabel=En az [mb] MB bo� disk alan� gereklidir.
CannotInstallToNetworkDrive=Uygulama bir a� s�r�c�s� �zerine kurulamaz.
CannotInstallToUNCPath=Uygulama bir UNC yolu �zerine (\\yol gibi) kurulamaz.
InvalidPath=S�r�c� ad� ile tam yolu yazmal�s�n�z. �rnek: %n%nC:\APP%n%n ya da �u �ekilde bir UNC yolu:%n%n\\sunucu\payla��m
InvalidDrive=S�r�c� ya da UNC payla��m� yok ya da eri�ilemiyor. L�tfen ba�ka bir tane se�in.
DiskSpaceWarningTitle=Yeterli bo� disk alan� yok
DiskSpaceWarning=Kurulum i�in %1 KB bo� alan gerekli, ancak se�ilmi� s�r�c�de yaln�zca %2 KB bo� alan var.%n%nGene de ilerlemek istiyor musunuz?
DirNameTooLong=Klas�r ad� ya da yol �ok uzun.
InvalidDirName=Klas�r ad� ge�ersiz.
BadDirName32=Klas�r adlar�nda �u karakterler bulunamaz:%n%n%1
DirExistsTitle=Klas�r zaten var
DirExists=Klas�r:%n%n%1%n%nzaten var. Kurulum i�in bu klas�r� kullanmak ister misiniz?
DirDoesntExistTitle=Klas�r bulunamad�
DirDoesntExist=Klas�r:%n%n%1%n%nbulunamad�.Klas�r�n olu�turmas�n� ister misiniz?
; *** "Bile�enleri se�in" sayfas�
WizardSelectComponents=Bile�enleri se�in
SelectComponentsDesc=Hangi bile�enler kurulacak?
SelectComponentsLabel2=Kurmak istedi�iniz bile�enleri se�in; kurmak istemedi�iniz bile�enlerin i�aretini kald�r�n. �lerlemeye haz�r oldu�unuzda Sonraki �zerine t�klay�n.
FullInstallation=Tam kurulum
; Olabiliyorsa 'Compact' ifadesini kendi dilinizde 'Minimal' anlam�nda �evirmeyin
CompactInstallation=Normal kurulum
CustomInstallation=�zel kurulum
NoUninstallWarningTitle=Bile�enler zaten var
NoUninstallWarning=�u bile�enlerin bilgisayar�n�zda zaten kurulu oldu�u alg�land�:%n%n%1%n%n Bu bile�enlerin i�aretlerinin kald�r�lmas� bile�enleri kald�rmaz.%n%nGene de ilerlemek istiyor musunuz?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Se�ilmi� bile�enler i�in diskte en az [gb] GB bo� alan bulunmas� gerekli.
ComponentsDiskSpaceMBLabel=Se�ilmi� bile�enler i�in diskte en az [mb] MB bo� alan bulunmas� gerekli.
; *** "Ek i�lemleri se�in" sayfas�
WizardSelectTasks=Ek i�lemleri se�in
SelectTasksDesc=Ba�ka hangi i�lemler yap�ls�n?
SelectTasksLabel2=[name] kurulumu s�ras�nda yap�lmas�n� istedi�iniz ek i�leri se�in ve Sonraki �zerine t�klay�n.
; *** "Ba�lat men�s� klas�r�n� se�in" sayfas�
WizardSelectProgramGroup=Ba�lat men�s� klas�r�n� se�in
SelectStartMenuFolderDesc=Uygulaman�n k�sayollar� nereye eklensin?
SelectStartMenuFolderLabel3=Kurulum yard�mc�s� uygulama k�sayollar�n� a�a��daki Ba�lat men�s� klas�r�ne ekleyecek.
SelectStartMenuFolderBrowseLabel=�lerlemek i�in Sonraki �zerine t�klay�n. Farkl� bir klas�r se�mek i�in G�z at �zerine t�klay�n.
MustEnterGroupName=Bir klas�r ad� yazmal�s�n�z.
GroupNameTooLong=Klas�r ad� ya da yol �ok uzun.
InvalidGroupName=Klas�r ad� ge�ersiz.
BadGroupName=Klas�r ad�nda �u karakterler bulunamaz:%n%n%1
NoProgramGroupCheck2=Ba�lat men�s� klas�r� &olu�turulmas�n
; *** "Kurulmaya haz�r" sayfas�
WizardReady=Kurulmaya haz�r
ReadyLabel1=[name] bilgisayar�n�za kurulmaya haz�r.
ReadyLabel2a=Kuruluma ba�lamak i�in Sonraki �zerine, ayarlar� g�zden ge�irip de�i�tirmek i�in �nceki �zerine t�klay�n.
ReadyLabel2b=Kuruluma ba�lamak i�in Sonraki �zerine t�klay�n.
ReadyMemoUserInfo=Kullan�c� bilgileri:
ReadyMemoDir=Kurulum konumu:
ReadyMemoType=Kurulum t�r�:
ReadyMemoComponents=Se�ilmi� bile�enler:
ReadyMemoGroup=Ba�lat men�s� klas�r�:
ReadyMemoTasks=Ek i�lemler:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Ek dosyalar indiriliyor...
ButtonStopDownload=�ndirmeyi &durdur
StopDownload=�ndirmeyi durdurmak istedi�inize emin misiniz?
ErrorDownloadAborted=�ndirme durduruldu
ErrorDownloadFailed=�ndirilemedi: %1 %2
ErrorDownloadSizeFailed=Boyut al�namad�: %1 %2
ErrorFileHash1=Dosya karmas� do�rulanamad�: %1
ErrorFileHash2=Dosya karmas� ge�ersiz: %1 olmas� gerekirken %2
ErrorProgress=Ad�m ge�ersiz: %1 / %2
ErrorFileSize=Dosya boyutu ge�ersiz: %1 olmas� gerekirken %2
; *** "Kuruluma haz�rlan�l�yor" sayfas�
WizardPreparing=Kuruluma haz�rlan�l�yor
PreparingDesc=[name] bilgisayar�n�za kurulmaya haz�rlan�yor.
PreviousInstallNotCompleted=�nceki uygulama kurulumu ya da kald�r�lmas� tamamlanmam��. Bu kurulumun tamamlanmas� i�in bilgisayar�n�z� yeniden ba�latmal�s�n�z.%n%nBilgisayar�n�z� yeniden ba�latt�ktan sonra i�lemi tamamlamak i�in [name] kurulum yard�mc�s�n� yeniden �al��t�r�n.
CannotContinue=Kurulum yap�lamad�. ��kmak i�in �ptal �zerine t�klay�n.
ApplicationsFound=Kurulum yard�mc�s� taraf�ndan g�ncellenmesi gereken dosyalar, �u uygulamalar taraf�ndan kullan�yor. Kurulum yard�mc�s�n�n bu uygulamalar� otomatik olarak kapatmas�na izin vermeniz �nerilir.
ApplicationsFound2=Kurulum yard�mc�s� taraf�ndan g�ncellenmesi gereken dosyalar, �u uygulamalar taraf�ndan kullan�yor. Kurulum yard�mc�s�n�n bu uygulamalar� otomatik olarak kapatmas�na izin vermeniz �nerilir. Kurulum tamamland�ktan sonra, uygulamalar yeniden ba�lat�lmaya �al���lacak.
CloseApplications=&Uygulamalar kapat�ls�n
DontCloseApplications=Uygulamalar &kapat�lmas�n
ErrorCloseApplications=Kurulum yard�mc�s� uygulamalar� kapatamad�. Kurulum yard�mc�s� taraf�ndan g�ncellenmesi gereken dosyalar� kullanan uygulamalar� el ile kapatman�z �nerilir.
PrepareToInstallNeedsRestart=Kurulum i�in bilgisayar�n yeniden ba�lat�lmas� gerekiyor. Bilgisayar� yeniden ba�latt�ktan sonra [name] kurulumunu tamamlamak i�in kurulum yard�mc�s�n� yeniden �al��t�r�n.%n%nBilgisayar� �imdi yeniden ba�latmak ister misiniz?
; *** "Kuruluyor" sayfas�
WizardInstalling=Kuruluyor
InstallingLabel=L�tfen [name] bilgisayar�n�za kurulurken bekleyin.
; *** "Kurulum Tamamland�" sayfas�
FinishedHeadingLabel=[name] kurulum yard�mc�s� tamamlan�yor
FinishedLabelNoIcons=Bilgisayar�n�za [name] kurulumu tamamland�.
FinishedLabel=Bilgisayar�n�za [name] kurulumu tamamland�. Simgeleri y�klemeyi se�tiyseniz, simgelere t�klayarak uygulamay� ba�latabilirsiniz.
ClickFinish=Kurulum yard�mc�s�ndan ��kmak i�in Bitti �zerine t�klay�n.
FinishedRestartLabel=[name] kurulumunun tamamlanmas� i�in, bilgisayar�n�z yeniden ba�lat�lmal�. �imdi yeniden ba�latmak ister misiniz?
FinishedRestartMessage=[name] kurulumunun tamamlanmas� i�in, bilgisayar�n�z yeniden ba�lat�lmal�.%n%n�imdi yeniden ba�latmak ister misiniz?
ShowReadmeCheck=Evet README dosyas� g�r�nt�lensin
YesRadio=&Evet, bilgisayar �imdi yeniden ba�lat�ls�n
NoRadio=&Hay�r, bilgisayar� daha sonra yeniden ba�lataca��m
; used for example as 'Run MyProg.exe'
RunEntryExec=%1 �al��t�r�ls�n
; used for example as 'View Readme.txt'
RunEntryShellExec=%1 g�r�nt�lensin
; *** "Kurulum i�in s�radaki disk gerekli" iletileri
ChangeDiskTitle=Kurulum yard�mc�s� s�radaki diske gerek duyuyor
SelectDiskLabel2=L�tfen %1 numaral� diski tak�p Tamam �zerine t�klay�n.%n%nDiskteki dosyalar a�a��dakinden farkl� bir klas�rde bulunuyorsa, do�ru yolu yaz�n ya da G�z at �zerine t�klayarak do�ru klas�r� se�in.
PathLabel=&Yol:
FileNotInDir2="%1" dosyas� "%2" i�inde bulunamad�. L�tfen do�ru diski tak�n ya da ba�ka bir klas�r se�in.
SelectDirectoryLabel=L�tfen sonraki diskin konumunu belirtin.
; *** Kurulum a�amas� iletileri
SetupAborted=Kurulum tamamlanamad�.%n%nL�tfen sorunu d�zelterek kurulum yard�mc�s�n� yeniden �al��t�r�n.
AbortRetryIgnoreSelectAction=Yap�lacak i�lemi se�in
AbortRetryIgnoreRetry=&Yeniden denensin
AbortRetryIgnoreIgnore=&Sorun yok say�l�p ilerlensin
AbortRetryIgnoreCancel=Kurulum iptal edilsin
; *** Kurulum durumu iletileri
StatusClosingApplications=Uygulamalar kapat�l�yor...
StatusCreateDirs=Klas�rler olu�turuluyor...
StatusExtractFiles=Dosyalar ay�klan�yor...
StatusCreateIcons=K�sayollar olu�turuluyor...
StatusCreateIniEntries=INI kay�tlar� olu�turuluyor...
StatusCreateRegistryEntries=Kay�t Defteri kay�tlar� olu�turuluyor...
StatusRegisterFiles=Dosyalar kaydediliyor...
StatusSavingUninstall=Kald�rma bilgileri kaydediliyor...
StatusRunProgram=Kurulum tamamlan�yor...
StatusRestartingApplications=Uygulamalar yeniden ba�lat�l�yor...
StatusRollback=De�i�iklikler geri al�n�yor...
; *** �e�itli hata iletileri
ErrorInternal2=�� hata: %1
ErrorFunctionFailedNoCode=%1 tamamlanamad�.
ErrorFunctionFailed=%1 tamamlanamad�; kod %2
ErrorFunctionFailedWithMessage=%1 tamamlanamad�; kod %2.%n%3
ErrorExecutingProgram=�u dosya y�r�t�lemedi:%n%1
; *** Kay�t defteri hatalar�
ErrorRegOpenKey=Kay�t defteri anahtar� a��l�rken bir sorun ��kt�:%n%1%2
ErrorRegCreateKey=Kay�t defteri anahtar� eklenirken bir sorun ��kt�:%n%1%2
ErrorRegWriteKey=Kay�t defteri anahtar� yaz�l�rken bir sorun ��kt�:%n%1%2
; *** INI hatalar�
ErrorIniEntry="%1" dosyas�na INI kayd� eklenirken bir sorun ��kt�.
; *** Dosya kopyalama hatalar�
FileAbortRetryIgnoreSkipNotRecommended=&Bu dosya atlans�n (�nerilmez)
FileAbortRetryIgnoreIgnoreNotRecommended=&Sorun yok say�l�p ilerlensin (�nerilmez)
SourceIsCorrupted=Kaynak dosya bozulmu�
SourceDoesntExist="%1" kaynak dosyas� bulunamad�
ExistingFileReadOnly2=Var olan dosya salt okunabilir olarak i�aretlenmi� oldu�undan �zerine yaz�lamad�.
ExistingFileReadOnlyRetry=&Salt okunur i�areti kald�r�l�p yeniden denensin
ExistingFileReadOnlyKeepExisting=&Var olan dosya korunsun
ErrorReadingExistingDest=Var olan dosya okunmaya �al���l�rken bir sorun ��kt�.
FileExistsSelectAction=Yap�lacak i�lemi se�in
FileExists2=Dosya zaten var.
FileExistsOverwriteExisting=&Var olan dosyan�n �zerine yaz�ls�n
FileExistsKeepExisting=Var &olan dosya korunsun
FileExistsOverwriteOrKeepAll=&Sonraki �ak��malarda da bu i�lem yap�ls�n
ExistingFileNewerSelectAction=Yap�lacak i�lemi se�in
ExistingFileNewer2=Var olan dosya, kurulum yard�mc�s� taraf�ndan yaz�lmaya �al���landan daha yeni.
ExistingFileNewerOverwriteExisting=&Var olan dosyan�n �zerine yaz�ls�n
ExistingFileNewerKeepExisting=Var &olan dosya korunsun (�nerilir)
ExistingFileNewerOverwriteOrKeepAll=&Sonraki �ak��malarda bu i�lem yap�ls�n
ErrorChangingAttr=Var olan dosyan�n �znitelikleri de�i�tirilirken bir sorun ��kt�:
ErrorCreatingTemp=Kurulum klas�r�nde bir dosya olu�turulurken sorun ��kt�:
ErrorReadingSource=Kaynak dosya okunurken sorun ��kt�:
ErrorCopying=Dosya kopyalan�rken sorun ��kt�:
ErrorReplacingExistingFile=Var olan dosya de�i�tirilirken sorun ��kt�:
ErrorRestartReplace=Yeniden ba�latmada �zerine yaz�lamad�:
ErrorRenamingTemp=Kurulum klas�r�ndeki bir dosyan�n ad� de�i�tirilirken sorun ��kt�:
ErrorRegisterServer=DLL/OCX kay�t edilemedi: %1
ErrorRegSvr32Failed=RegSvr32 i�lemi �u kod ile tamamlanamad�: %1
ErrorRegisterTypeLib=T�r kitapl��� kay�t defterine eklenemedi: %1
; *** Kald�rma s�ras�nda g�r�nt�lenecek ad i�aretleri
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32 bit
UninstallDisplayNameMark64Bit=64 bit
UninstallDisplayNameMarkAllUsers=T�m kullan�c�lar
UninstallDisplayNameMarkCurrentUser=Ge�erli kullan�c�
; *** Kurulum sonras� hatalar�
ErrorOpeningReadme=README dosyas� a��l�rken sorun ��kt�.
ErrorRestartingComputer=Kurulum yard�mc�s� bilgisayar�n�z� yeniden ba�latam�yor. L�tfen bilgisayar�n�z� yeniden ba�lat�n.
; *** Kald�rma yard�mc�s� iletileri
UninstallNotFound="%1" dosyas� bulunamad�. Uygulama kald�r�lam�yor.
UninstallOpenError="%1" dosyas� a��lamad�. Uygulama kald�r�lam�yor.
UninstallUnsupportedVer="%1" uygulama kald�rma g�nl�k dosyas�n�n bi�imi, bu kald�rma yard�mc�s� s�r�m� taraf�ndan anla��lamad�. Uygulama kald�r�lam�yor.
UninstallUnknownEntry=Kald�rma g�nl���nde bilinmeyen bir kay�t (%1) bulundu.
ConfirmUninstall=%1 kaldirma sihirbazini �alistirmak istediginizden emin misiniz?
UninstallOnlyOnWin64=Bu kurulum yaln�zca 64 bit Windows �zerinden kald�r�labilir.
OnlyAdminCanUninstall=Bu kurulum yaln�zca y�netici yetkileri olan bir kullan�c� taraf�ndan kald�r�labilir.
UninstallStatusLabel=L�tfen %1 uygulamas� bilgisayar�n�zdan kald�r�l�rken bekleyin.
UninstalledAll=%1 uygulamas� bilgisayar�n�zdan kald�r�ld�.
UninstalledMost=%1 uygulamas� kald�r�ld�.%n%nBaz� bile�enler kald�r�lamad�. Bunlar� el ile silebilirsiniz.
UninstalledAndNeedsRestart=%1 kald�rma i�leminin tamamlanmas� i�in bilgisayar�n�z�n yeniden ba�lat�lmas� gerekli.%n%n�imdi yeniden ba�latmak ister misiniz?
UninstallDataCorrupted="%1" dosyas� bozulmu�. Kald�r�lam�yor.
; *** Kald�rma a�amas� iletileri
ConfirmDeleteSharedFileTitle=Payla��lan dosya silinsin mi?
ConfirmDeleteSharedFile2=Sisteme g�re, payla��lan �u dosya ba�ka bir uygulama taraf�ndan kullan�lm�yor ve kald�r�labilir. Bu payla��lm�� dosyay� silmek ister misiniz?%n%nBu dosya, ba�ka herhangi bir uygulama taraf�ndan kullan�l�yor ise, silindi�inde di�er uygulama d�zg�n �al��mayabilir. Emin de�ilseniz Hay�r �zerine t�klay�n. Dosyay� sisteminizde b�rakman�n bir zarar� olmaz.
SharedFileNameLabel=Dosya ad�:
SharedFileLocationLabel=Konum:
WizardUninstalling=Kald�rma durumu
StatusUninstalling=%1 kald�r�l�yor...
; *** Kapatmay� engelleme nedenleri
ShutdownBlockReasonInstallingApp=%1 kuruluyor.
ShutdownBlockReasonUninstallingApp=%1 kald�r�l�yor.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 %2 s�r�m�
AdditionalIcons=Ek simgeler:
CreateDesktopIcon=Masa�st� simg&esi olu�turulsun
CreateQuickLaunchIcon=H�zl� ba�lat simgesi &olu�turulsun
ProgramOnTheWeb=%1 sitesi
UninstallProgram=%1 uygulamas�n� kald�r
LaunchProgram=%1 uygulamas�n� �al��t�r
AssocFileExtension=%1 &uygulamas� ile %2 dosya uzant�s� ili�kilendirilsin
AssocingFileExtension=%1 uygulamas� ile %2 dosya uzant�s� ili�kilendiriliyor...
AutoStartProgramGroupDescription=Ba�lang��:
AutoStartProgram=%1 otomatik olarak ba�lat�ls�n
AddonHostProgramNotFound=%1 se�ti�iniz klas�rde bulunamad�.%n%nYine de ilerlemek istiyor musunuz?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Kurulum Modunu Se�in
SelectSetupInstallModeDesc=VCMI t�m kullanicilar i�in veya sadece sizin i�in kurulabilir.
SelectSetupInstallModeSubTitle=Tercih ettiginiz kurulum modunu se�in:
InstallForAllUsers=T�m kullanicilar i�in y�kle
InstallForAllUsers1=Y�netici yetkileri gerektirir
InstallForMeOnly=Sadece benim i�in y�kle
InstallForMeOnly1=Oyunu ilk kez baslattiginizda bir g�venlik duvari uyarisi g�r�nt�lenecek
InstallForMeOnly2=G�venlik duvari kuralina izin verilmezse LAN oyunlari �alismaz
SystemIntegration=Sistem Entegrasyonu
CreateDesktopShortcuts=Masa�st� kisayollari olustur
CreateStartMenuShortcuts=Baslat Men�s�ne kisayollar ekle
AssociateH3MFiles=.h3m dosyalarini VCMI Harita Edit�r� ile iliskilendir
AssociateVCMIMapFiles=.vmap ve .vcmp dosyalarini VCMI Harita Edit�r� ile iliskilendir
VCMISettings=VCMI Ayarlari
AddFirewallRules=VCMI i�in g�venlik duvari kurallari ekle
CopyH3Files=Gerekli Heroes III dosyalarini VCMI'ya otomatik olarak kopyala
RunVCMILauncherAfterInstall=VCMI Baslaticiyi �alistir
ShortcutMapEditor=VCMI Harita Edit�r�
ShortcutLauncher=VCMI Baslatici
ShortcutWebPage=VCMI Web Sitesi
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=VCMI Baslaticiyi �alistir
ShortcutMapEditorComment=VCMI Harita Edit�r�n� A�
ShortcutWebPageComment=VCMI Resmi Web Sitesini Ziyaret Et
ShortcutDiscordComment=VCMI Resmi Discord Sunucusunu Ziyaret Et
DeleteUserData=Kullanici verilerini sil
Uninstall=Kaldir
Warning=Uyari
VMAPDescription=VCMI Harita Dosyasi
VCMPDescription=VCMI Kampanya Dosyasi
H3MDescription=Heroes 3 Harita Dosyasi

View File

@ -0,0 +1,418 @@
; *** Inno Setup version 6.1.0+ Ukrainian messages ***
; Author: Dmytro Onyshchuk
; E-Mail: mrlols3@gmail.com
; Please report all spelling/grammar errors, and observations.
; Version 2020.08.04
; *** ����������� �������� Inno Setup ��� ������ 6.1.0 �� ����***
; ����� ���������: ������ ������
; E-Mail: mrlols3@gmail.com
; ���� �����, ������������ ��� ��� �������� ������� �� ����������.
; ������ ��������� 2020.08.04
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=<0423><043A><0440><0430><0457><043D><0441><044C><043A><0430>
LanguageID=$0422
LanguageCodePage=1251
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** ��������� ��������
SetupAppTitle=������������
SetupWindowTitle=������������ � %1
UninstallAppTitle=���������
UninstallAppFullTitle=��������� � %1
; *** Misc. common
InformationTitle=����������
ConfirmTitle=ϳ�����������
ErrorTitle=�������
; *** SetupLdr messages
SetupLdrStartupMessage=�� �������� ���������� %1 �� ��� ����'����, ������� ����������?
LdrCannotCreateTemp=��������� �������� ���������� ����. ������������ ���������
LdrCannotExecTemp=��������� �������� ���� � ���������� �����. ������������ ���������
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%n������� %2: %3
SetupFileMissing=���� %1 ��������� � ����� ������������. ���� �����, �������� �� ������� ��� ��������� ���� ����� ��������.
SetupFileCorrupt=����� ������������ ����������. ���� �����, ��������� ���� ����� ��������.
SetupFileCorruptOrWrongVer=����� ������������ ���������� ��� ��������� � ���� ������� �������� ������������. ���� �����, �������� �� ������� ��� ��������� ���� ����� ��������.
InvalidParameter=��������� ����� ������� ������������ ��������:%n%n%1
SetupAlreadyRunning=�������� ������������ ��� ��������.
WindowsVersionNotSupported=�� �������� �� ���� ��������� �� ����� ������ Windows. �������������, �� �� �������������� ��������� ����������� Windows (32-�������� ��� 64-��������) �� ���������� ������ ��������.
WindowsServicePackRequired=�� �������� ������� %1 Service Pack %2 ��� ����� ����� ������.
NotOnThisPlatform=�� �������� �� ���� ��������� ��� %1.
OnlyOnThisPlatform=�� �������� ������� ���� �������� ��� %1.
OnlyOnTheseArchitectures=�� �������� ���� ���� ����������� ���� �� ����'������ ��� ����������� Windows ��� ��������� ���������� ����������:%n%n%1
WinVersionTooLowError=�� �������� ������� %1 ������ %2 ��� ����� ����� ������.
WinVersionTooHighError=�� �������� �� ���� ���� ����������� �� %1 ������ %2 ��� ����� ����� ������.
AdminPrivilegesRequired=��� ���������� �� �������� �� ������� ������ �� ������� �� �������������.
PowerUserPrivilegesRequired=��� ���������� �� �������� �� ������� ������ �� ������� �� ������������� ��� �� ���� ����� ����������� ������������.
SetupAppRunningError=��������, �� %1 ��� ��������.%n%n���� �����, �������� ��� ��ﳿ �������� �� ��������� �OK� ��� �����������, ��� ����������� ��� ������.
UninstallAppRunningError=��������, �� %1 ��� ��������.%n%n���� �����, �������� ��� ��ﳿ �������� �� ��������� �OK� ��� �����������, ��� ����������� ��� ������.
; *** Startup questions
PrivilegesRequiredOverrideTitle=����� ������ ������������
PrivilegesRequiredOverrideInstruction=�������� ����� ������������
PrivilegesRequiredOverrideText1=%1 ���� ���� ����������� ��� ���� ������������ (�������� ����� ��������������), ��� ������ ��� ���.
PrivilegesRequiredOverrideText2=%1 ���� ���� ����������� ������ ��� ���, ��� ��� ���� ������������ (�������� ����� ��������������).
PrivilegesRequiredOverrideAllUsers=���������� ��� &���� ������������
PrivilegesRequiredOverrideAllUsersRecommended=���������� ��� &���� ������������ (��������������)
PrivilegesRequiredOverrideCurrentUser=���������� ������ ��� ����
PrivilegesRequiredOverrideCurrentUserRecommended=���������� ������ ��� &���� (��������������)
; *** �� �������
ErrorCreatingDir=�������� ������������ �� ������� �������� ����� "%1"
ErrorTooManyFilesInDir=�������� ������������ �� ������� �������� ���� � ����� "%1", ���� �� � ����� ������� ������ ������
; *** ������� ������������ ��������
ExitSetupTitle=����� � �������� ������������
ExitSetupMessage=������������ �� ���������. ���� �� ������� �����, �������� �� ���� �����������.%n%n�� ������ �������� �������� ������������ � ����� �����.%n%n����� � �������� ������������?
AboutSetupMenuItem=&��� �������� ������������...
AboutSetupTitle=��� �������� ������������
AboutSetupMessage=%1 ������ %2%n%3%n%n%1 ������� ��������:%n%4
AboutSetupNote=
TranslatorNote=Ukrainian translation by Dmytro Onyshchuk
; *** ������
ButtonBack=< &�����
ButtonNext=&���� >
ButtonInstall=&����������
ButtonOK=OK
ButtonCancel=���������
ButtonYes=&���
ButtonYesToAll=��� ��� &����
ButtonNo=&ͳ
ButtonNoToAll=�&� ��� ����
ButtonFinish=&������
ButtonBrowse=&�����...
ButtonWizardBrowse=�&����...
ButtonNewFolder=&�������� �����
; *** ij������� ������������ "����� ����"
SelectLanguageTitle=�������� ���� ������������
SelectLanguageLabel=�������� ����, ��� ���� ����������������� ��� ��� ������������.
; *** �������� ���� ��������
ClickNext=��������� ���볻, ��� ����������, ��� ����������� ��� ������ � �������� ������������.
BeveledLabel=
BrowseDialogTitle=����� �����
BrowseDialogLabel=�������� ����� �� ������ �� ��������� ��ʻ.
NewFolderName=���� �����
; *** �������� "����������"
WelcomeLabel1=������� ������� �� �������� ������������ [name].
WelcomeLabel2=�� �������� ���������� [name/ver] �� ��� ���������.%n%n�������������� ������� ��� ���� �������� ����� ������������.
; *** �������� "������"
WizardPassword=������
PasswordLabel1=�� �������� ������������ �������� �������.
PasswordLabel3=���� �����, ������� ������ �� ��������� ���볻, ��� ����������. ������ �������� �� ��������.
PasswordEditLabel=&������:
IncorrectPassword=�� ����� ������������ ������. ���� �����, ��������� �� ���.
; *** �������� "˳�������� �����"
WizardLicense=˳�������� �����
LicenseLabel=���� �����, ���������� ���������� �����.
LicenseLabel3=���� �����, ���������� ���������� �����. �� ������� �������� ����� ���� �����, ���� ��� ���������� ������������.
LicenseAccepted=� &������� ����� �����
LicenseNotAccepted=� &�� ������� ����� �����
; *** �������� "����������"
WizardInfoBefore=����������
InfoBeforeLabel=���� �����, ���������� �������� ������� ����������, ���� ��� ����������.
InfoBeforeClickLabel=���� �� ������ ���������� ������������, ��������� ���볻.
WizardInfoAfter=����������
InfoAfterLabel=���� �����, ���������� �������� ������� ����������, ���� ��� ����������.
InfoAfterClickLabel=���� �� ������ ���������� ������������, ��������� ���볻.
; *** �������� "���������� ��� �����������"
WizardUserInfo=���������� ��� �����������
UserInfoDesc=���� �����, ������� ���� ��� ����.
UserInfoName=&���� �����������:
UserInfoOrg=&�����������:
UserInfoSerial=&�������� �����:
UserInfoNameRequired=�� ������� ������ ��'�.
; *** �������� "����� ����� ������������"
WizardSelectDir=����� ����� ������������
SelectDirDesc=���� �� ������� ���������� [name]?
SelectDirLabel3=�������� ���������� [name] � �������� �����.
SelectDirBrowseLabel=��������� ���볻, ��� ����������. ���� �� ������� ������� ���� �����, ��������� �������.
DiskSpaceGBLabel=��������� �� ������� [gb] �� �������� ��������� ��������.
DiskSpaceMBLabel=��������� �� ������� [mb] M� �������� ��������� ��������.
CannotInstallToNetworkDrive=������������ �� ���� ����������� �� ��������� ����.
CannotInstallToUNCPath=������������ �� ���� ����������� �� ���������� �����.
InvalidPath=�� ������� ������� ������ ���� � ������ �����, ���������:%n%nC:\APP%n%n��� � ������� UNC:%n%n\\������\������
InvalidDrive=������� ���� ���� �� ��������� ���� �� �����, ��� �� ���������. ���� �����, �������� �����.
DiskSpaceWarningTitle=����������� ��������� ��������
DiskSpaceWarning=��� ������������ ��������� �� ������� %1 �� �������� ��������, � �� ��������� ����� �������� ���� %2 ��.%n%n�� ��� ���� ������� ����������?
DirNameTooLong=��'� ����� ��� ���� �� ��� ����������� ��������� �������.
InvalidDirName=������� ���� ����� �����������.
BadDirName32=��'� ����� �� ���� �������� �������� �������:%n%n%1
DirExistsTitle=����� �����
DirExists=�����:%n%n%1%n%n��� �����. �� ��� ���� ������� ���������� � �� �����?
DirDoesntExistTitle=����� �� �����
DirDoesntExist=�����:%n%n%1%n%n�� �����. �� ������� �������� ��?
; *** �������� "����� �����������"
WizardSelectComponents=����� �����������
SelectComponentsDesc=��� ���������� �� ������� ����������?
SelectComponentsLabel2=�������� ���������� ��� �� ������� ����������; ������� �������� � ����������� ��� �� �� ������� �������������. ��������� ���볻, ��� ����������.
FullInstallation=����� ������������
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=��������� ������������
CustomInstallation=��������� ������������
NoUninstallWarningTitle=���������� �������
NoUninstallWarning=��������, �� �������� ���������� ��� ������������ �� ������ ����������:%n%n%1%n%n³����� ������ ��� ����������� �� �������� ��.%n%n�� ������� ����������?
ComponentSize1=%1 K�
ComponentSize2=%1 M�
ComponentsDiskSpaceGBLabel=����� ����� ������� �� ������� [gb] �� ��������� ��������.
ComponentsDiskSpaceMBLabel=����� ����� ������� �� ������� [mb] M� ��������� ��������.
; *** �������� "����� ���������� �������"
WizardSelectTasks=����� ���������� �������
SelectTasksDesc=��� ��������� �������� �� ������� ��������?
SelectTasksLabel2=�������� ��������� �������� ��� �������� ������������ [name] ������� ��������, ����� ��������� ���볻.
; *** �������� "����� ����� � ���� ������"
WizardSelectProgramGroup=����� ����� � ���� ������
SelectStartMenuFolderDesc=�� �� ������� �������� ������?
SelectStartMenuFolderLabel3=�������� ������������ �������� ������ � ��������� ����� ���� ������.
SelectStartMenuFolderBrowseLabel=��������� ���볻, ��� ����������. ���� �� ������� ������� ���� �����, ��������� �������.
MustEnterGroupName=�� ������� ������ ��'� �����.
GroupNameTooLong=���� ����� ��� ���� �� ��� ����������� ��������� �������.
InvalidGroupName=������� ���� ����� �����������.
BadGroupName=��'� ����� �� ���� �������� �������� �������:%n%n%1
NoProgramGroupCheck2=&�� ���������� ����� � ���� ������
; *** �������� "��� ������ �� ������������"
WizardReady=��� ������ �� ������������
ReadyLabel1=�������� ������ ��������� ������������ [name] �� ��� ���������.
ReadyLabel2a=��������� ������������ ��� ����������� ������������, ��� �������, ���� �� ������� ����������� ��� ������� ������������ ������������.
ReadyLabel2b=��������� ������������ ��� �����������.
ReadyMemoUserInfo=���� ��� �����������:
ReadyMemoDir=���� ������������:
ReadyMemoType=��� ������������:
ReadyMemoComponents=������� ����������:
ReadyMemoGroup=����� � ���� ������:
ReadyMemoTasks=��������� ��������:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=������������ ���������� ������...
ButtonStopDownload=&��������� ������������
StopDownload=�� ������ ������� ��������� ������������?
ErrorDownloadAborted=������������ ���������
ErrorDownloadFailed=������� ������������: %1 %2
ErrorDownloadSizeFailed=������� ��������� �������: %1 %2
ErrorFileHash1=������� ���� �����: %1
ErrorFileHash2=�������� ��� �����: ���������� %1, ��������� %2
ErrorProgress=������� ���������: %1 � %2
ErrorFileSize=�������� ������ �����: ���������� %1, ��������� %2
; *** �������� "ϳ�������� �� ������������"
WizardPreparing=ϳ�������� �� ������������
PreparingDesc=�������� ������������ ��������� �� ������������ [name] �� ��� ���������.
PreviousInstallNotCompleted=������������ ��� ��������� ����������� �������� �� ���� ���������. ��� �������� ��������������� ��� ��������� ��� ���������� �������� ������������.%n%nϳ��� ���������������� ��������� �������� ������������ �����, ��� ��������� ������������ [name].
CannotContinue=������������ ��������� ����������. ���� �����, ��������� ����������� ��� ������.
ApplicationsFound=�������� �������� �������������� �����, ��� ������� ���� �������� ��������� ������������. �������������� ��������� �������� ������������ ����������� ������� �� ��������.
ApplicationsFound2=�������� �������� �������������� �����, ��� ������� ���� �������� ��������� ������������. �������������� ��������� �������� ������������ ����������� ������� �� ��������. ϳ��� ���������� ������������, �������� ������������ ������� ����� ��������� ��.
CloseApplications=&����������� ������� ��������
DontCloseApplications=&�� ��������� ��������
ErrorCloseApplications=�������� ������������ �� ���� ����������� ������� ��� ��������. �������������� ������� ��� ��������, �� �������������� �����, ��� ������� ���� �������� ��������� ������������, ���� ��� ����������.
PrepareToInstallNeedsRestart=�������� ������������ ��������� ��������������� ��� ��. ϳ��� ���������������� ��, ��������� ������������ ����� ��� ���������� ������������ [name]%n%n�� ������� ��������������� �����?
; *** �������� "������������"
WizardInstalling=������������
InstallingLabel=���� �����, ���������, ���� [name] ������������ �� ��� ����'����.
; *** �������� "������������ ���������"
FinishedHeadingLabel=���������� ������������ [name]
FinishedLabelNoIcons=������������ [name] �� ��� ��������� ���������.
FinishedLabel=������������ [name] �� ��� ��������� ���������. ����������� �������� ����� �������� �� ��������� ��������� �������.
ClickFinish=��������� �������� ��� ������ � �������� ������������.
FinishedRestartLabel=��� ���������� ������������ [name] ��������� ��������������� ��� ���������. ��������������� ��������� �����?
FinishedRestartMessage=��� ���������� ������������ [name] ��������� ��������������� ��� ���������.%n%n��������������� ��������� �����?
ShowReadmeCheck=���, � ���� ����������� ���� README
YesRadio=&���, ��������������� ��������� �����
NoRadio=&ͳ, � ������������� ��������� �������
; used for example as 'Run MyProg.exe'
RunEntryExec=³������ %1
; used for example as 'View Readme.txt'
RunEntryShellExec=����������� %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=��������� �������� ��������� ����
SelectDiskLabel2=���� �����, ������� ���� %1 � ��������� �OK�.%n%n���� �������� ����� ������ ����������� � ����� �����, �� ������� ��� �������� �����, ������� ���������� ���� ��� ��������� �������.
PathLabel=&����:
FileNotInDir2=���� "%1" �� ��������� � "%2". ���� �����, ������� �������� ���� ��� ������� ���� �����.
SelectDirectoryLabel=���� �����, ������� ���� �� ���������� �����.
; *** Installation phase messages
SetupAborted=������������ �� ���������.%n%n���� �����, ������� �������� � ��������� �������� ������������ �����.
AbortRetryIgnoreSelectAction=�������� ���
AbortRetryIgnoreRetry=&���������� �����
AbortRetryIgnoreIgnore=&���������� ������� �� ����������
AbortRetryIgnoreCancel=³������� ������������
; *** ������������ ����� ������������
StatusClosingApplications=�������� �������...
StatusCreateDirs=��������� �����...
StatusExtractFiles=������������ ������...
StatusCreateIcons=��������� �������...
StatusCreateIniEntries=��������� INI �������...
StatusCreateRegistryEntries=��������� ������� �������...
StatusRegisterFiles=���������� ������...
StatusSavingUninstall=���������� ���������� ��� ���������...
StatusRunProgram=���������� ������������...
StatusRestartingApplications=���������� �������...
StatusRollback=���������� ����...
; *** �� �������
ErrorInternal2=��������� �������: %1
ErrorFunctionFailedNoCode=%1 ����
ErrorFunctionFailed=%1 ����; ��� %2
ErrorFunctionFailedWithMessage=%1 ����; ��� %2.%n%3
ErrorExecutingProgram=��������� �������� ����:%n%1
; *** ������� �������
ErrorRegOpenKey=������� ��������� ����� �������:%n%1\%2
ErrorRegCreateKey=������� ��������� ����� �������:%n%1\%2
ErrorRegWriteKey=������� ������ � ���� �������:%n%1\%2
; *** ������� INI
ErrorIniEntry=������� ��� ��������� ������ � INI-����� "%1".
; *** ������� ���������� ������
FileAbortRetryIgnoreSkipNotRecommended=&���������� ���� (�� ��������������)
FileAbortRetryIgnoreIgnoreNotRecommended=&���������� ������� �� ���������� (�� ��������������)
SourceIsCorrupted=�������� ���� �����������
SourceDoesntExist=�������� ���� "%1" �� �����
ExistingFileReadOnly2=��������� �������� �������� ����, �������� ��� ���������� ���� ��� �������.
ExistingFileReadOnlyRetry=&�������� ������� "���� �������" �� ���������� �����
ExistingFileReadOnlyKeepExisting=&�������� �������� ����
ErrorReadingExistingDest=������� ������� ��� ������ ������� ��������� �����:
FileExistsSelectAction=�������� ���
FileExists2=���� ��� �����.
FileExistsOverwriteExisting=&�������� �������� ����
FileExistsKeepExisting=&�������� �������� ����
FileExistsOverwriteOrKeepAll=&��������� ��� ��� ���� ��������� ����������
ExistingFileNewerSelectAction=�������� ���
ExistingFileNewer2=�������� ���� �������, ��� ���������������.
ExistingFileNewerOverwriteExisting=&�������� �������� ����
ExistingFileNewerKeepExisting=&�������� �������� ���� (��������������)
ExistingFileNewerOverwriteOrKeepAll=&��������� ��� ��� ���� ��������� ����������
ErrorChangingAttr=������� ������� ��� ������ ����� ��������� ��������� �����:
ErrorCreatingTemp=������� ������� ��� ������ ��������� ����� � ����� ������������:
ErrorReadingSource=������� ������� ��� ������ ������� ��������� �����:
ErrorCopying=������� ������� ��� ������ ���������� �����:
ErrorReplacingExistingFile=������� ������� ��� ������ ������ ��������� �����:
ErrorRestartReplace=������� RestartReplace:
ErrorRenamingTemp=������� ������� ��� ������ �������������� ����� � ����� ������������:
ErrorRegisterServer=��������� ������������� DLL/OCX: %1
ErrorRegSvr32Failed=������� ��� ��������� RegSvr32, ��� ���������� %1
ErrorRegisterTypeLib=��������� ������������� ���������� �����: %1
; *** Uninstall display name markings
UninstallDisplayNameMark=%1 (%2)
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-���
UninstallDisplayNameMark64Bit=64-���
UninstallDisplayNameMarkAllUsers=��� �����������
UninstallDisplayNameMarkCurrentUser=�������� ����������
; *** Post-installation errors
ErrorOpeningReadme=������� ������� ��� ������ ��������� ����� README.
ErrorRestartingComputer=�������� ������������ �� ������� ��������������� ����'����. ���� �����, ��������� �� ����������.
; *** ������������ ���������
UninstallNotFound=���� "%1" �� �����, ��������� ���������.
UninstallOpenError=��������� �������� ���� "%1". ��������� ���������
UninstallUnsupportedVer=���� ��������� ��� ��������� "%1" �� ����������� ����� ������� �������� ���������. ��������� ���������
UninstallUnknownEntry=��������� ����� (%1) � ����� ��������� ��� ���������
ConfirmUninstall=�� ��������, �� ������ ��������� ������� ��������� %1?
UninstallOnlyOnWin64=�� �������� ������� �������� ���� � ���������� 64-������ ������ Windows.
OnlyAdminCanUninstall=�� �������� ���� ���� �������� ���� ������������ � ������� ��������������.
UninstallStatusLabel=���� �����, ���������, ���� %1 ���������� � ������ ����'�����.
UninstalledAll=%1 ������� �������� � ������ ����'�����.
UninstalledMost=��������� %1 ���������.%n%n����� ������� ��������� ��������. �� ������ �������� �� ������.
UninstalledAndNeedsRestart=��� ���������� ��������� %1 ��������� ��������������� ��� ���������.%n%n��������������� ��������� �����?
UninstallDataCorrupted=���� "%1" �����������. ��������� ���������
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=�������� �������� �����?
ConfirmDeleteSharedFile2=������� ��������, �� ��������� �������� ���� ������ �� ���������������� ������ ����������. �� ������� �������� ��� �������� ����?%n%n���� ���� �������� ��� �� �������������� ��� ���� � ��� ����������, �� �� �������� ������ ������������� �����������. ���� �� �� ��������, �������� �ͳ�. ��������� ���� �� ��������� ����� �������.
SharedFileNameLabel=��'� �����:
SharedFileLocationLabel=����������:
WizardUninstalling=���� ���������
StatusUninstalling=��������� %1...
; *** ������� ���������� ���������
ShutdownBlockReasonInstallingApp=������������ %1.
ShutdownBlockReasonUninstallingApp=��������� %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1, ������ %2
AdditionalIcons=��������� ������:
CreateDesktopIcon=�������� ������ �� &�������� �����
CreateQuickLaunchIcon=�������� ������ �� &������ �������� �������
ProgramOnTheWeb=���� %1 � ���������
UninstallProgram=�������� %1
LaunchProgram=³������ %1
AssocFileExtension=&���������� %1 � ����������� ����� %2
AssocingFileExtension=����������� %1 � ����������� ����� %2...
AutoStartProgramGroupDescription=����������������:
AutoStartProgram=����������� ������������� %1
AddonHostProgramNotFound=%1 �� ��������� � �������� ���� �����%n%n�� ��� ���� ������� ����������?
; VCMI Custom Messages
SelectSetupInstallModeTitle=�������� ����� ������������
SelectSetupInstallModeDesc=VCMI ����� ���������� ��� ���� ������������ ��� ���� ��� ���.
SelectSetupInstallModeSubTitle=�������� ������� ����� ������������:
InstallForAllUsers=���������� ��� ���� ������������
InstallForAllUsers1=�������� ���� ��������������
InstallForMeOnly=���������� ���� ��� ����
InstallForMeOnly1=��� ������� ������� ��� �'������� ������������ �����������
InstallForMeOnly2=LAN-���� �� �������������, ���� ������� ����������� �� ���� ���������
SystemIntegration=���������� � ��������
CreateDesktopShortcuts=�������� ������ �� �������� �����
CreateStartMenuShortcuts=�������� ������ � ���� ����
AssociateH3MFiles=��'����� ����� .h3m � ���������� ���� VCMI
AssociateVCMIMapFiles=��'����� ����� .vmap � .vcmp � ���������� ���� VCMI
VCMISettings=������������ VCMI
AddFirewallRules=������ ������� ����������� ��� VCMI
CopyH3Files=����������� ���������� ��������� ����� Heroes III �� VCMI
RunVCMILauncherAfterInstall=��������� VCMI Launcher
ShortcutMapEditor=�������� ���� VCMI
ShortcutLauncher=���������� VCMI
ShortcutWebPage=��������� ���� VCMI
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=��������� VCMI Launcher
ShortcutMapEditorComment=³������ �������� ���� VCMI
ShortcutWebPageComment=³������� ��������� ���� VCMI
ShortcutDiscordComment=³������� ��������� Discord VCMI
DeleteUserData=�������� ���� �����������
Uninstall=��������
Warning=������������
VMAPDescription=���� ����� VCMI
VCMPDescription=���� �������� VCMI
H3MDescription=���� ����� Heroes 3

View File

@ -0,0 +1,417 @@
; *** Inno Setup version 6.1.0+ Vietnamese messages ***
; Translated by Vu Khac Hiep (email: vukhachiep@gmail.com)
; To download user-contributed translations of this file, go to:
; https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Vietnamese
LanguageID=$042A
LanguageCodePage=0
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Cài đặt
SetupWindowTitle=Cài đặt - %1
UninstallAppTitle=Gỡ cài đặt
UninstallAppFullTitle=Gỡ cài đặt - %1
; *** Misc. common
InformationTitle=Thông tin
ConfirmTitle=Xác nhận
ErrorTitle=Lỗi
; *** SetupLdr messages
SetupLdrStartupMessage=Chương trình này sẽ cài đặt %1. Bạn có muốn tiếp tục không?
LdrCannotCreateTemp=Không thể tạo tệp tạm thời. Cài đặt bị hủy bỏ
LdrCannotExecTemp=Không thể chạy tệp trong thư mục tạm thời. Cài đặt bị hủy bỏ
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nLỗi %2: %3
SetupFileMissing=Tệp %1 bị thiếu trong thư mục cài đặt. Hãy sửa lỗi hoặc lấy một bản sao mới của chương trình.
SetupFileCorrupt=Các tệp cài đặt đã bị hỏng. Hãy sửa lỗi hoặc lấy một bản sao của chương trình.
SetupFileCorruptOrWrongVer=Các tệp cài đặt bị hỏng, hoặc không tương thích với bản cài đặt này. Hãy sửa lỗi hoặc lấy một bản sao mới của chương trình.
InvalidParameter=Một thông số không hợp lệ đã được đưa vào dòng lệnh:%n%n%1
SetupAlreadyRunning=Cài đặt này đang chạy.
WindowsVersionNotSupported=Chương trình này không thể chạy trên phiên bản Windows của bạn. Vui lòng đảm bảo rằng bạn đang sử dụng kiến trúc Windows đúng (32-bit hoặc 64-bit) và phiên bản phù hợp của chương trình này.
WindowsServicePackRequired=Chương trình này yêu cầu %1 Service Pack %2 hoặc mới hơn.
NotOnThisPlatform=Chương trình này sẽ không chạy trên %1.
OnlyOnThisPlatform=Chương trình này phải chạy trên %1.
OnlyOnTheseArchitectures=Chương trình này chỉ có thể được cài đặt trên phiên bản Windows được thiết kế cho các hệ vi xử lí:%n%n%1
WinVersionTooLowError=Chương trình này yêu cầu %1 phiên bản %2 hoặc mới hơn.
WinVersionTooHighError=Chương trình này không thể được cài đặt trên %1 phiên bản %2 hoặc mới hơn.
AdminPrivilegesRequired=Bạn phải được đăng nhập như người quản trị khi cài đặt chương trình này.
PowerUserPrivilegesRequired=Bạn phải được đăng nhập như người quản trị hoặc thành viên trong nhóm Người dùng mạnh khi cài đặt chương trình này.
SetupAppRunningError=Cài đặt phát hiện %1 đang chạy.%n%nHãy đóng tất cả các tiến trình của nó ngay, rồi click OK để tiếp tục, hoặc Hủy để thoát.
UninstallAppRunningError=Gỡ cài đặt phát hiện %1 đang chạy.%n%nHãy đóng tất cả các tiến trình của nó ngay, rồi click OK để tiếp tục, hoặc Hủy để thoát.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Select Setup Install Mode
PrivilegesRequiredOverrideInstruction=Select install mode
PrivilegesRequiredOverrideText1=%1 can be installed for all users (requires administrative privileges), or for you only.
PrivilegesRequiredOverrideText2=%1 can be installed for you only, or for all users (requires administrative privileges).
PrivilegesRequiredOverrideAllUsers=Install for &all users
PrivilegesRequiredOverrideAllUsersRecommended=Install for &all users (recommended)
PrivilegesRequiredOverrideCurrentUser=Install for &me only
PrivilegesRequiredOverrideCurrentUserRecommended=Install for &me only (recommended)
; *** Misc. errors
ErrorCreatingDir=Cài đặt không thể tạo ra thư mục "%1"
ErrorTooManyFilesInDir=Không thể tạo một tệp trong thư mục "%1" vì nó chứa quá nhiều tệp
; *** Setup common messages
ExitSetupTitle=Thoát cài đặt
ExitSetupMessage=Cài đặt chưa hoàn thành. Nếu bạn thoát bây giờ, chương trình sẽ không được cài đặt.%n%nBạn có thể chạy lại Cài đặt một lần khác để hoàn thành cài đặt.%n%nThoát ngay?
AboutSetupMenuItem=&Về trình cài đặt...
AboutSetupTitle=Về trình cài đặt
AboutSetupMessage=%1 phiên bản %2%n%3%n%n%1 trang chủ:%n%4
AboutSetupNote=
TranslatorNote=Giao diện người dùng tiếng Việt bởi: Vũ Khắc Hiệp
; *** Buttons
ButtonBack=< &Trước
ButtonNext=T&iếp >
ButtonInstall=&Cài đặt
ButtonOK=OK
ButtonCancel=Hủy
ButtonYes=&Có
ButtonYesToAll=Có c&ho tất cả
ButtonNo=&Không
ButtonNoToAll=Khô&ng cho tất cả
ButtonFinish=&Hoàn thành
ButtonBrowse=&Duyệt...
ButtonWizardBrowse=D&uyệt...
ButtonNewFolder=Tạ&o thư mục mới
; *** "Select Language" dialog messages
SelectLanguageTitle=Chọn ngôn ngữ cài đặt
SelectLanguageLabel=Chọn ngôn ngữ để sử dụng khi cài đặt:
; *** Common wizard text
ClickNext=Nhấn Tiếp để tiếp tục, hoặc Hủy để thoát cài đặt
BeveledLabel=
BrowseDialogTitle=Tìm thư mục
BrowseDialogLabel=Chọn một thư mục trong danh sách sau rồi ấn OK.
NewFolderName=Tạo thư mục mới
; *** "Welcome" wizard page
WelcomeLabel1=Chào mừng tới trình cài đặt [name]
WelcomeLabel2=Chương trình này sẽ cài [name/ver] trên máy tính của bạn.%n%nChúng tôi khuyên bạn đóng mọi chương trình khác lại trước khi cài đặt.
; *** "Password" wizard page
WizardPassword=Mật khẩu
PasswordLabel1=Việc cài đặt được bảo vệ bằng mật khẩu.
PasswordLabel3=Hãy nhập mật khẩu, rồi nhấn Tiếp để tiếp tục. Mật khẩu phân biệt chữ hoa/thường.
PasswordEditLabel=&Mật khẩu:
IncorrectPassword=Mật khẩu bạn đã nhập không đúng. Hãy thử lại.
; *** "License Agreement" wizard page
WizardLicense=Thỏa thuận cấp phép
LicenseLabel=Hãy đọc những thông tin quan trọng sau trước khi tiếp tục.
LicenseLabel3=Hãy đọc Thỏa thuận cấp phép sau. Bạn phải chấp nhận các điều khoản của cài đặt này trước khi tiếp tục.
LicenseAccepted=Tô&i chấp nhận thỏa thuận
LicenseNotAccepted=Tôi khôn&g chấp nhận thỏa thuận
; *** "Information" wizard pages
WizardInfoBefore=Thông tin
InfoBeforeLabel=Hãy đọc những thông tin quan trọng sau trước khi tiếp tục.
InfoBeforeClickLabel=Khi bạn đã sẵn sàng cài đặt tiếp, click Tiếp.
WizardInfoAfter=Thông tin
InfoAfterLabel=Hãy đọc những thông tin quan trọng sau trước khi tiếp tục.
InfoAfterClickLabel=Khi bạn đã sẵn sàng cài đặt tiếp, click Tiếp.
; *** "User Information" wizard page
WizardUserInfo=Thông tin người dùng
UserInfoDesc=Hãy nhập thông tin của bạn.
UserInfoName=Tên n&gười dùng:
UserInfoOrg=Tổ c&hức:
UserInfoSerial=&Số serial:
UserInfoNameRequired=Bạn phải nhập một tên.
; *** "Select Destination Location" wizard page
WizardSelectDir=Chọn vị trí cài đặt
SelectDirDesc=[name] nên được cài đặt ở đâu?
SelectDirLabel3=[name] sẽ được cài đặt vào thư mục sau:
SelectDirBrowseLabel=Để tiếp tục. nhấn Tiếp. Nếu bạn muốn chọn một thư mục khác, nhấn Duyệt.
DiskSpaceGBLabel=Cần có ít nhất [gb] GB ổ đĩa trống.
DiskSpaceMBLabel=Cần có ít nhất [mb] MB ổ đĩa trống.
CannotInstallToNetworkDrive=Cài đặt không thể cài vào một ổ đĩa mạng.
CannotInstallToUNCPath=Cài đặt không thể cài vào đường dẫn UNC.
InvalidPath=Bạn phải nhập đường dẫn đầy đủ với chữ cái ổ đĩa, ví dụ:%n%nC:\APP%n%nhoặc một đường dẫn UNC theo mẫu:%n%n\\server\share
InvalidDrive=Ổ đĩa hoặc chia sẻ UNC bạn đã chọn không tồn tại hoặc không truy cập được. Hãy chọn cái khác.
DiskSpaceWarningTitle=Không đủ dung lượng đĩa
DiskSpaceWarning=Cài đặt yêu cầu ít nhất %1 KB dung lượng trống để cài đặt, nhưng ổ đĩa đã chọn chỉ còn %2KB.%n%nBạn muốn tiếp tục bằng mọi giá?
DirNameTooLong=Tên thư mục hoặc đường dẫn quá dài.
InvalidDirName=Tên thư mục không hợp lệ.
BadDirName32=Tên thư mục không được chứa các kí tự sau:%n%n%1
DirExistsTitle=Thư mục đã tồn tại
DirExists=Thư mục:%n%n%1%n%nđã tồn tại. Bạn có muốn cài đặt vào thư mục đó bằng mọi giá?
DirDoesntExistTitle=Thư mục không tồn tại
DirDoesntExist=Thư mục:%n%n%1%n%nkhông tồn tại. Bạn có muốn tạo thư mục không?
; *** "Select Components" wizard page
WizardSelectComponents=Chọn các thành phần
SelectComponentsDesc=Những thành phần nào nên được cài đặt?
SelectComponentsLabel2=Chọn các thành phần bạn muốn cài đặt, bỏ chọn các thành phần bạn không muốn. Click Tiếp khi bạn đã sẵn sàng để tiếp tục.
FullInstallation=Cài đặt đầy đủ
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Cài đặt rút gọn
CustomInstallation=Cài đặt tủy chỉnh
NoUninstallWarningTitle=Thành phần đã tồn tại
NoUninstallWarning=Cài đặt phát hiện các thành phần sau đã được cài đặt trên máy tính của bạn:%n%n%1%n%nBỏ chọn những thành phần này sẽ không cài đặt chúng.%n%nBạn có muốn tiếp tục bằng mọi giá?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Lựa chọn này yêu cầu ít nhất [gb] GB không gian đĩa.
ComponentsDiskSpaceMBLabel=Lựa chọn này yêu cầu ít nhất [mb] MB không gian đĩa.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Chọn các tác vụ bổ sung
SelectTasksDesc=Các tác vụ bổ sung nào nên được thực hiện?
SelectTasksLabel2=Chọn các tác vụ bổ sung mà bạn muốn cài đặt thực hiện khi cài đặt [name], rồi nhấn Tiếp.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Chọn thư mục bắt đầu
SelectStartMenuFolderDesc=Các lối tắt đến chương trình nên được đặt ở đâu?
SelectStartMenuFolderLabel3=Cài đặt sẽ tạo các lối tắt đến chương trình trong thư mục bắt đầu sau.
SelectStartMenuFolderBrowseLabel=Để tiếp tục, click Tiếp. Nếu bạn muốn chọn thư mục khác, click Duyệt.
MustEnterGroupName=Bạn phải nhập tên một thư mục.
GroupNameTooLong=Tên thư mục hoặc đường dẫn quá dài.
InvalidGroupName=Tên thư mục không hợp lệ.
BadGroupName=Tên thư mục không được chứa các kí tự sau:%n%n%1
NoProgramGroupCheck2=&Không tạo thư mục bắt đầu
; *** "Ready to Install" wizard page
WizardReady=Sẵn sàng cài đặt
ReadyLabel1=[name] đã sẵn sàng để dược cài đặt trên máy tính của bạn.
ReadyLabel2a=Click Cài đặt để tiếp tục, hoặc click Trước nếu bạn muốn xem lại/thay đổi bất kì cài đặt nào.
ReadyLabel2b=Click Cài đặt để tiếp tục cài đặt.
ReadyMemoUserInfo=Thông tin người dùng:
ReadyMemoDir=Vị trí đích:
ReadyMemoType=Kiểu cài đặt:
ReadyMemoComponents=Các thành phần được chọn:
ReadyMemoGroup=Thư mục bắt đầu:
ReadyMemoTasks=Các tác vụ bổ sung:
; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Đang tải các tập tin bổ sung...
ButtonStopDownload=&Dừng tải xuống
StopDownload=Bạn có chắc chắn muốn dừng tải xuống không?
ErrorDownloadAborted=Tải xuống bị hủy bỏ
ErrorDownloadFailed=Tải xuống không thành công: %1 %2
ErrorDownloadSizeFailed=Getting size failed: %1 %2
ErrorFileHash1=File hash failed: %1
ErrorFileHash2=Invalid file hash: expected %1, found %2
ErrorProgress=Invalid progress: %1 of %2
ErrorFileSize=Invalid file size: expected %1, found %2
; *** "Preparing to Install" wizard page
WizardPreparing=Chuẩn bị cài đặt
PreparingDesc=[name] đang chuẩn bị được cài đặt trên máy tính của bạn.
PreviousInstallNotCompleted=Việc cài đặt/gỡ bỏ một chương trình chưa được hoàn tất trước đó. Bạn sẽ phải khởi động lại máy tính để hoàn tất cài đặt đó.%n%nSau khi chởi động lại, chạy Cài đặt một lần nữa để hoàn tất cài đặt [name].
CannotContinue=Cài đặt không thể tiếp tục. Nhấn Hủy để thoát.
ApplicationsFound=Những chương trình sau đang sử dụng các tệp cần được cập nhật bởi trình cài đặt. Chúng tôi khuyên bạn cho phép Cài đặt đóng các chương trình này.
ApplicationsFound2=Những chương trình sau đang sử dụng các tệp cần được cập nhật bởi trình cài đặt. Chúng tôi khuyên bạn cho phép Cài đặt đóng các chương trình này. Sau khi hoàn thành cài đặt, chúng tôi sẽ thử khởi động lại các chương trình này.
CloseApplications=Tự độn&g đóng các chương trình này
DontCloseApplications=Không đóng các chương t&rình này
ErrorCloseApplications=Cài đặt không thể đóng mọi chương trình. Chúng tôi khuyên bạn đóng các chương trình đang sử dụng các tệp cần được cập nhật bởi Cài đặt một cách thủ công trước khi tiếp tục.
PrepareToInstallNeedsRestart=Setup must restart your computer. After restarting your computer, run Setup again to complete the installation of [name].%n%nWould you like to restart now?
; *** "Installing" wizard page
WizardInstalling=Đang cài đặt
InstallingLabel=Hãy đợi khi [name] đang được cài đặt trên máy tính của bạn.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Hoàn thành cài đặt [name]
FinishedLabelNoIcons=[name] đã được cài đặt xong trên máy tính của bạn.
FinishedLabel=[name] đã được cài đặt xong trên máy tính của bạn. Chương trình có thể được khởi động bằng cách click vào lối tắt đến chương trình.
ClickFinish=Click Hoàn thành để thoát Cài đặt.
FinishedRestartLabel=Để hoàn thành cài đặt [name], máy tính của bạn cần đươc khởi động lại. Bạn có muốn khởi động lại ngay?
FinishedRestartMessage=Để hoàn thành cài đặt [name], máy tính của bạn cần đươc khởi động lại.%n%nBạn có muốn khởi động lại ngay?
ShowReadmeCheck=Có, tôi muốn xem tệp README
YesRadio=&Có, khởi động lại máy tính ngay
NoRadio=&Không, tôi sẽ khởi động lại máy tính sau
; used for example as 'Run MyProg.exe'
RunEntryExec=Chạy %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Xem %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Cài đặt cần đĩa tiếp theo
SelectDiskLabel2=Hãy chèn đĩa %1 và click OK.%n%nNếu các tệp trên đĩa này có thể được tìm thấy trên một thư mục khác với được hiển thị dưới đây, nhập đường dẫn hoặc click Duyệt.
PathLabel=Đườ&ng dẫn:
FileNotInDir2=Tệp "%1" không thể được xác định trong "%2". Hãy chọn đia xđúng hoặc chọn thư mục khác.
SelectDirectoryLabel=Hãy chọn vị trí của đĩa tiếp theo.
; *** Installation phase messages
SetupAborted=Cài đặt không được hoàn thành.%n%nHãy sửa lỗi và chạy Cài đặt lại.
AbortRetryIgnoreSelectAction=Chọn hành động
AbortRetryIgnoreRetry=&Thử lại
AbortRetryIgnoreIgnore=&Bỏ qua lỗi và tiếp tục
AbortRetryIgnoreCancel=Hủy
; *** Installation status messages
StatusClosingApplications=Đang đóng các chương trình...
StatusCreateDirs=Đang tạo các thư mục...
StatusExtractFiles=Đang giải nén các tệp...
StatusCreateIcons=Đang tạo các lối tắt...
StatusCreateIniEntries=Đang tạo các đầu vào INI...
StatusCreateRegistryEntries=Đang tạo các đầu vào registry...
StatusRegisterFiles=Đang đăng kí các tệp...
StatusSavingUninstall=Đang lưu thông tin gỡ cài đặt...
StatusRunProgram=Đang hoàn thành cài đặt...
StatusRestartingApplications=Đang khởi động lại các chương trình...
StatusRollback=Đang hoàn lại các thay đổi...
; *** Misc. errors
ErrorInternal2=Lỗi nội bộ: %1
ErrorFunctionFailedNoCode=%1 thất bại
ErrorFunctionFailed=%1 thất bại với mã lỗi %2
ErrorFunctionFailedWithMessage=%1 thất bại với mã lỗi %2.%n%3
ErrorExecutingProgram=Không thể chạy tệp:%n%1
; *** Registry errors
ErrorRegOpenKey=Lỗi khi mở registry:%n%1\%2
ErrorRegCreateKey=Lỗi khi tạo registry:%n%1\%2
ErrorRegWriteKey=Lỗi khi viết registry:%n%1\%2
; *** INI errors
ErrorIniEntry=Lỗi tạo đầu vào INI cho tệp "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Bỏ qua tệp này (không khuyến nghị)
FileAbortRetryIgnoreIgnoreNotRecommended=&Bỏ qua để tiếp tục bằng mọi giá (không khuyến nghị)
SourceIsCorrupted=Tệp nguồn bị hỏng
SourceDoesntExist=Tệp nguồn "%1" không tồn tại
ExistingFileReadOnly2=Tệp đã tồn tại với đánh dấu chỉ đọc.
ExistingFileReadOnlyRetry=&Xóa thuộc tính chỉ đọc và thử lại
ExistingFileReadOnlyKeepExisting=&Giữ tập tin hiện có
ErrorReadingExistingDest=Một lỗi đã xảy ra khi đọc tệp:
FileExistsSelectAction=Select action
FileExists2=Tệp đã tồn tại.
FileExistsOverwriteExisting=G&hi đè tệp hiện có
FileExistsKeepExisting=&Giữ tệp hiện có
FileExistsOverwriteOrKeepAll=&Do this for the next conflicts
ExistingFileNewerSelectAction=Select action
ExistingFileNewer2=Tệp hiện có mới hơn tệp mà Thiết lập đang cố gắng cài đặt.
ExistingFileNewerOverwriteExisting=&Ghi đè tệp hiện có
ExistingFileNewerKeepExisting=&Giữ tệp hiện có (khuyến nghị)
ExistingFileNewerOverwriteOrKeepAll=&Do this for the next conflicts
ErrorChangingAttr=Một lỗi đã xảy ra khi thay đổi thuộc tính của tệp sau:
ErrorCreatingTemp=Một lỗi đã xảy ra khi tạo một tệp trong thư mục đích:
ErrorReadingSource=Một lỗi đã xảy ra khi đọc tệp nguồn:
ErrorCopying=Một lỗi đã xảy ra khi sao chép tệp:
ErrorReplacingExistingFile=Một lỗi đã xảy ra khi thay thế tệp:
ErrorRestartReplace=Khởi động lại & Thay thế (RestartReplace) thất bại:
ErrorRenamingTemp=Một lỗi đã xảy ra khi đổi tên tệp trong thư mục đích:
ErrorRegisterServer=Không thể đăng kí DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 thất bại với mã thoát %1
ErrorRegisterTypeLib=Không thể đăng kí thư viện kiểu: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=All users
UninstallDisplayNameMarkCurrentUser=Current user
; *** Post-installation errors
ErrorOpeningReadme=Một lỗi đã xảy ra khi mở tệp README.
ErrorRestartingComputer=Cài đặt không thể khởi động lại máy tính. Hãy làm việc này một cách thủ công.
; *** Uninstaller messages
UninstallNotFound=Tệp "%1" không tồn tại. Không thể gỡ cài đặt.
UninstallOpenError=Tệp "%1" không thể được mở. Không thể gỡ cài đặt
UninstallUnsupportedVer=Tệp nhật kí gỡ cài đặt "%1" có định dạng không thể được xác định bởi phiên bản gỡ cài đặt này. Không thể gỡ cài đặt
UninstallUnknownEntry=Một đầu vào không xác định (%1) đã bị phát hiện trong nhật kí gỡ cài đặt
ConfirmUninstall=Bạn có chắc chắn muốn chạy trình gỡ cài đặt %1 không?
UninstallOnlyOnWin64=Cài đặt này chỉ có thể được gỡ bỏ trên Windows 64 bit.
OnlyAdminCanUninstall=Cài đặt này chỉ có thể được gỡ bỏ bằng một người dùng có quyền người quản trị.
UninstallStatusLabel=Hãy đợi khi %1 được gỡ khỏi máy tính của bạn.
UninstalledAll=%1 đã được gỡ bỏ thành công khỏi máy tính của bạn.
UninstalledMost=%1 đã được gỡ bỏ thành công.%n%nMột số thành phần không thể được gỡ bỏ. Hãy làm việc này một cách thủ công.
UninstalledAndNeedsRestart=Để hoàn thành việc gỡ cài đặt %1, bạn phải khởi động lại máy tính.%n%nBạn có muốn khởi động lại ngay?
UninstallDataCorrupted=Tệp "%1" bị hỏng. Không thể gỡ cài đặt
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Gỡ bỏ tệp được chia sẻ?
ConfirmDeleteSharedFile2=Hệ thống chỉ ra các tệp được chia sẻ sau không được sử dụng bởi chương trình nào. Bạn có muốn gỡ bỏ tệp này?%n%nNếu có một chương trình vẫn sử dụng tệp này mà tệp bị gỡ bỏ, chúng có thể không chạy tốt. Nếu bạn không chắc chắn, chọn Không. Để lại tệp trên hệ thống của bạn sẽ không gây ra tổn hại.
SharedFileNameLabel=Tên tệp:
SharedFileLocationLabel=Vị trí:
WizardUninstalling=Trạng thái gỡ cài đặt
StatusUninstalling=Đang gỡ cài đặt %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Đang cài đặt %1.
ShutdownBlockReasonUninstallingApp=Đang gỡ cài đặt %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 phiên bản %2
AdditionalIcons=Các lối tắt bổ sung:
CreateDesktopIcon=Tạo một &lối tắt trên Desktop
CreateQuickLaunchIcon=Tạo một lối tắt &Khởi động nhanh
ProgramOnTheWeb=%1 trên Web
UninstallProgram=Gỡ cài đặt %1
LaunchProgram=Khởi động %1
AssocFileExtension=&Gán %1 với đuôi tệp %2
AssocingFileExtension=Đang gán %1 với đuôi tệp %2...
AutoStartProgramGroupDescription=Khởi động:
AutoStartProgram=Tự động khởi động %1
AddonHostProgramNotFound=%1 không thể được xác định trong thư mục bạn đã chọn.%n%nBạn có muốn tiếp tục bằng mọi giá?
; VCMI Custom Messages
SelectSetupInstallModeTitle=Chọn Chế độ Cài đặt
SelectSetupInstallModeDesc=VCMI có thể được cài đặt cho tất cả người dùng hoặc chỉ dành cho bạn.
SelectSetupInstallModeSubTitle=Chọn chế độ cài đặt bạn muốn:
InstallForAllUsers=Cài đặt cho tất cả người dùng
InstallForAllUsers1=Yêu cầu quyền quản trị
InstallForMeOnly=Chỉ cài đặt cho tôi
InstallForMeOnly1=Khi khởi chạy trò chơi lần đầu tiên, sẽ xuất hiện thông báo tường lửa
InstallForMeOnly2=Trò chơi LAN sẽ không hoạt động nếu không thể cho phép quy tắc tường lửa
SystemIntegration=Tích hợp hệ thống
CreateDesktopShortcuts=Tạo phím tắt trên màn hình
CreateStartMenuShortcuts=Tạo phím tắt trong menu Bắt đầu
AssociateH3MFiles=Liên kết các tệp .h3m với Trình chỉnh sửa Bản đồ VCMI
AssociateVCMIMapFiles=Liên kết các tệp .vmap và .vcmp với Trình chỉnh sửa Bản đồ VCMI
VCMISettings=Cấu hình VCMI
AddFirewallRules=Thêm quy tắc tường lửa cho VCMI
CopyH3Files=Tự động sao chép các tệp cần thiết của Heroes III vào VCMI
RunVCMILauncherAfterInstall=Khởi chạy VCMI Launcher
ShortcutMapEditor=Trình chỉnh sửa Bản đồ VCMI
ShortcutLauncher=VCMI Launcher
ShortcutWebPage=Trang web chính thức của VCMI
ShortcutDiscord=VCMI Discord
ShortcutLauncherComment=Khởi chạy VCMI Launcher
ShortcutMapEditorComment=Mở Trình chỉnh sửa Bản đồ VCMI
ShortcutWebPageComment=Truy cập trang web chính thức của VCMI
ShortcutDiscordComment=Truy cập Discord chính thức của VCMI
DeleteUserData=Xóa dữ liệu người dùng
Uninstall=Gỡ cài đặt
Warning=Cảnh báo
VMAPDescription=Tệp bản đồ VCMI
VCMPDescription=Tệp chiến dịch VCMI
H3MDescription=Tệp bản đồ Heroes 3

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -109,6 +109,8 @@ include(CMakeDependentOption)
cmake_dependent_option(ENABLE_INNOEXTRACT "Enable innoextract for GOG file extraction in launcher" ON "ENABLE_LAUNCHER" OFF) cmake_dependent_option(ENABLE_INNOEXTRACT "Enable innoextract for GOG file extraction in launcher" ON "ENABLE_LAUNCHER" OFF)
cmake_dependent_option(ENABLE_GITVERSION "Enable Version.cpp with Git commit hash" ON "NOT ENABLE_GOLDMASTER" OFF) cmake_dependent_option(ENABLE_GITVERSION "Enable Version.cpp with Git commit hash" ON "NOT ENABLE_GOLDMASTER" OFF)
option(VCMI_PORTMASTER "PortMaster build" OFF)
############################################ ############################################
# Miscellaneous options # # Miscellaneous options #
############################################ ############################################

View File

@ -319,6 +319,25 @@
"cacheVariables": { "cacheVariables": {
"ANDROID_GRADLE_PROPERTIES": "applicationIdSuffix=.daily;signingConfig=dailySigning;applicationLabel=VCMI daily;applicationVariant=daily" "ANDROID_GRADLE_PROPERTIES": "applicationIdSuffix=.daily;signingConfig=dailySigning;applicationLabel=VCMI daily;applicationVariant=daily"
} }
},
{
"name": "portmaster-release",
"displayName": "PortMaster",
"description": "VCMI PortMaster",
"inherits": "default-release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_INSTALL_PREFIX": ".",
"ENABLE_DEBUG_CONSOLE": "OFF",
"ENABLE_EDITOR": "OFF",
"ENABLE_GITVERSION": "OFF",
"ENABLE_LAUNCHER": "OFF",
"ENABLE_SERVER": "OFF",
"ENABLE_TRANSLATIONS": "OFF",
"FORCE_BUNDLED_FL": "ON",
"ENABLE_GOLDMASTER": "ON",
"VCMI_PORTMASTER": "ON"
}
} }
], ],
"buildPresets": [ "buildPresets": [
@ -447,6 +466,12 @@
"name": "android-daily-release", "name": "android-daily-release",
"configurePreset": "android-daily-release", "configurePreset": "android-daily-release",
"inherits": "android-conan-ninja-release" "inherits": "android-conan-ninja-release"
},
{
"name": "portmaster-release",
"configurePreset": "portmaster-release",
"inherits": "default-release",
"configuration": "Release"
} }
], ],
"testPresets": [ "testPresets": [

View File

@ -1,5 +1,128 @@
# VCMI Project Changelog # VCMI Project Changelog
## 1.6.7 -> 1.7.0
* Added support for configuring icons for bonus icons in creature window per bonus subtype or per bonus value
* Heroes that are marked as unavailable for specific player will now be correctly blocked from use as starting heroes
* Added support for loading h3m maps from HotA 1.7 (also needs support from HotA mod)
* Added BASE_TILE_MOVEMENT_COST bonus that allows configuring minimal cost for moving between tiles for heroes
* Commanders will now automatically gain no melee penalty bonus on receiving ranged attack
## 1.6.6 -> 1.6.7
### Stability
* Fixed regression causing crash when trying to create lobby room
* Fixed regression causing crash when upscaling image in background thread on some systems
* Fixed possible crash on opening Custom Campaigns window while having campaign with unsupported format in maps directory
* Fixed possible crash on misconfigured `compatibilityIdentifiers` field in mods
* Fixed rare crash on AI turn that could sometimes happen after AI dismissed a hero
### General
* Added alternative layout for global lobby window that supports H3-like 4:3 screen ratio
* Added option in launcher to disable in-game overlay available with Alt or two-finger touch.
* Game will now save and restore map zoom level between sessions.
* Fixed regression that caused Brotherhood of the Sword to open the Thieves' Guild window instead of the Tavern window when clicked.
* Fixed regression causing black pixels on some city building sprites from mods when played without upscaling filter
* Improved handling of very slow taps on mobile systems
* Added snapping of marker when mouse cursor is next to data point for easy selection in game statistics window
* Fixed some graphical artifacts in the game statistics window.
* Fixed client not checking if submod is compatible with current VCMI version
## 1.6.5 -> 1.6.6
### General
* Game no longer requires local network connection for single player games
* Reduced size of obstacle-filled junction zones in Coldshadow Fantasy template
* Upscaling filter xbrz x2 is now enabled by default on mobile systems
* Fixes failure to import Chronicles on Windows with non-ascii characters in username
* Added support for importing Chronicles using old All-in-One installer from gog.com
* It is now possible to enable portrait mode on mobile systems.
* Fixed grey bar at top of screen when returning to app while in game on Android
### Stability
* Fixed possible crash on opening unit description with unavailable upgrades
* Fixed crash on winning game after last player loses the game due to not controlling a town for 7 days
### Interface
* Pressing Q during hero exchange will now swap both army and artifacts and will no longer trigger a quest log
* Spellbook search is no longer enabled by default, allowing standard h3 shortcuts to work. Search can now be activated by pressing Tab
* Ctrl/Shift + click on arrow buttons below creature slots during hero exchange now works in the familiar way from hd mod
* On mobile systems, clicking on a blocked tile of a visitable object on the adventure map will now build a path to it
* It is now possible to activate the adventure map overlay on the mobile system using the two-finger tap gesture
* Fixed incorrect pinch event calculation that caused problems when zooming with touchscreen gestures
* Game now displays both total cost in movement points and estimated time to arrive in turns when hovering over an accessible location
* Artifact sort buttons in the Hero Backpack window now have correct text describing the sort order
* Fixed non-standard color handling for shadows under selection highlight in creature animations from mods such as HotA's Iron Golem
* Effects such as Bloodlust, Clone, and Petrify will now display correctly when xbrz is in use
* Fixed broken Chronicles campaign screen available with new main menu themes mod
* Fixed empty bonus shown in unit info window when unit is in Necropolis with Cover of Darkness built
* Right-clicking on the difficulty button will now display the difficulty description popup
* Fixed regression causing two minus signs in Fountain of Fortune description
* Added option to upgrade all creatures in the radial menu when in town
* Added option to display remaining unit health in the form of a health bar
* Fixed regression that caused unavailable tiles to be displayed on the left and right sides of the battlefield when hovering with the mouse
* Fixed regression that caused all spells to be displayed as having a duration of 16 rounds
* Scrolling in the lobby window now only happens when hovering over the appropriate item, instead of scrolling all scrollable widgets at once
* Fixed regression that caused black pixels on some hero portraits in mods that use 8-bit palette images
* Fixed memory leak when upscaling images with xbrz filter
* Fixed creature windows text align and buttons background
### Mechanics
* It is no longer possible to attack heroes standing on a visitable object from blocked tiles or from water when the attacker uses Fly
* Fixed regression from 1.6 that caused multiple taverns in towns of the same faction to not be counted towards the level of information available for the thieves' guild
* Fixed regression that caused Cove towns placed on map to be replaced with Castles on HotA maps
* The amount of gold a player can receive from a bonfire is now always equal to the amount of rare resources received multiplied by 100
* Disabled default victory conditions on all Elixir of Life campaign maps that require an artifact to be found, in line with H3
### Nullkiller AI
* Improved scoring of town buildings by the AI
* AI will now prefer to give faster units to its scout heroes to optimize their movement points in future turns
* Fixed AI not constructing prerequisites for town buildings in some cases, like not building Stables when attempting to build Training Grounds
* AI will now avoid recruiting heroes if AI is low on gold or if the town is threatened by an enemy hero
* AI will no longer attempt to use more than one hero to defend a town
* AI will now devalue non-flying units when attacking towns with fortifications to prevent suicides against castles
* Increased the priority of building unupgraded dwellings, as they provide units that can be hired immediately, rather than next week like citadels and castles
* When multiple cities are threatened, the AI will now prefer to defend the one that takes the least number of turns to reach
* Fixed AI attempting to restore mana points in town without a mage guild built
* Reduced AI prioritization of army merging to the same level as general gathering
* AI will now prioritize army merging before attacking enemies
* Increased AI defense prioritization
* AI will no longer leave the defense of a threatened town in order to bring the army to another hero
* AI will no longer send heroes to die outside of towns that already have a garrisoning hero inside, if there's a stronger enemy hero lurking around the town
* AI will no longer focus excessively on reaching Keymaster tents
* AI will no longer rush towns that don't have a citadel or better if there is a strong enemy hero in the area
* AI will no longer try to maximize defenses by using the strongest defender possible, but will instead try to use the most appropriate defender
* Heroes that are currently threatened will be braver and not worry about attacking things that are also threatened if nothing safe is in range
### Launcher
* Added context menu for mod lists that allows disabling, enabling, installing, uninstalling, updating, opening installed mod location, and opening mod repository
## 1.6.4 -> 1.6.5
### General
* Fixed corrupted graphics of generated assets like water tiles on mobile systems
* All generated assets are now used directly from memory without saving them to disk
* Launcher will now correctly show screenshots for already installed mods
* Fixed broken icons in commander information dialog
### Stability
* Fixed regression causing crashes in combat when touchscreen input is in use
* Fixed regression causing crash on attempt to upscale empty image
* Fixed crash on some creature abilities from mods that cast targeted spells on unit with battle propagator
* Fixed crash on accepting next turn in multiplayer when local player has game settings window open
* Fixed crash in multiplayer when one player changes his starting options while another player has hero overview window open
* Fixed crash on double-clicking login to global lobby button
## 1.6.3 -> 1.6.4 ## 1.6.3 -> 1.6.4
### General ### General

View File

@ -116,11 +116,12 @@ static_assert(sizeof(bool) == 1, "Bool needs to be 1 byte in size.");
#include <atomic> #include <atomic>
#include <bitset> #include <bitset>
#include <cassert> #include <cassert>
#include <chrono>
#include <climits> #include <climits>
#include <cmath> #include <cmath>
#include <codecvt> #include <condition_variable>
#include <cstdlib>
#include <cstdio> #include <cstdio>
#include <cstdlib>
#include <fstream> #include <fstream>
#include <functional> #include <functional>
#include <iomanip> #include <iomanip>
@ -188,9 +189,6 @@ static_assert(sizeof(bool) == 1, "Bool needs to be 1 byte in size.");
#include <boost/range/adaptor/reversed.hpp> #include <boost/range/adaptor/reversed.hpp>
#include <boost/range/algorithm.hpp> #include <boost/range/algorithm.hpp>
#include <boost/thread/thread_only.hpp> #include <boost/thread/thread_only.hpp>
#include <boost/thread/shared_mutex.hpp>
#include <boost/thread/recursive_mutex.hpp>
#include <boost/thread/once.hpp>
#ifndef M_PI #ifndef M_PI
# define M_PI 3.14159265358979323846 # define M_PI 3.14159265358979323846

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -1,7 +1,7 @@
{ {
"images" : "images" :
[ [
{ "frame" : 0, "file" : "SECSK32:69"}, { "frame" : 0, "defFile" : "SECSK32", "defFrame" : 69 },
{ "frame" : 1, "file" : "SECSK32:28"} { "frame" : 1, "defFile" : "SECSK32", "defFrame" : 28 }
] ]
} }

View File

@ -23,8 +23,6 @@
"vcmi.adventureMap.noTownWithTavern" : "没有酒馆可供查看。", "vcmi.adventureMap.noTownWithTavern" : "没有酒馆可供查看。",
"vcmi.adventureMap.spellUnknownProblem" : "无此魔法的信息。", "vcmi.adventureMap.spellUnknownProblem" : "无此魔法的信息。",
"vcmi.adventureMap.playerAttacked" : "玩家遭受攻击: %s", "vcmi.adventureMap.playerAttacked" : "玩家遭受攻击: %s",
"vcmi.adventureMap.moveCostDetails" : "移动点数 - 花费: %TURNS 轮 + %POINTS 点移动力, 剩余移动力: %REMAINING",
"vcmi.adventureMap.moveCostDetailsNoTurns" : "移动点数 - 花费: %POINTS 点移动力, 剩余移动力: %REMAINING",
"vcmi.adventureMap.movementPointsHeroInfo" : "(移动点数: %REMAINING / %POINTS)", "vcmi.adventureMap.movementPointsHeroInfo" : "(移动点数: %REMAINING / %POINTS)",
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "抱歉,重放对手行动功能目前暂未实现!", "vcmi.adventureMap.replayOpponentTurnNotImplemented" : "抱歉,重放对手行动功能目前暂未实现!",
@ -177,7 +175,7 @@
"vcmi.lobby.match.solo" : "单人游戏", "vcmi.lobby.match.solo" : "单人游戏",
"vcmi.lobby.match.duel" : "与 %s 的游戏", // %s -> nickname of another player "vcmi.lobby.match.duel" : "与 %s 的游戏", // %s -> nickname of another player
"vcmi.lobby.match.multi" : "%d 个玩家", "vcmi.lobby.match.multi" : "%d 个玩家",
"vcmi.lobby.room.create" : "创建房间", "vcmi.lobby.room.create.hover" : "创建房间",
"vcmi.lobby.room.players.limit" : "玩家限制", "vcmi.lobby.room.players.limit" : "玩家限制",
"vcmi.lobby.room.description.public" : "任何玩家都可以加入公开房间。", "vcmi.lobby.room.description.public" : "任何玩家都可以加入公开房间。",
"vcmi.lobby.room.description.private" : "只有被邀请的玩家能加入私有房间。", "vcmi.lobby.room.description.private" : "只有被邀请的玩家能加入私有房间。",
@ -422,11 +420,11 @@
"vcmi.heroWindow.openBackpack.hover" : "开启宝物背包界面", "vcmi.heroWindow.openBackpack.hover" : "开启宝物背包界面",
"vcmi.heroWindow.openBackpack.help" : "用更大的界面显示所有获得的宝物", "vcmi.heroWindow.openBackpack.help" : "用更大的界面显示所有获得的宝物",
"vcmi.heroWindow.sortBackpackByCost.hover" : "按价格排序", "vcmi.heroWindow.sortBackpackByCost.hover" : "按价格排序",
"vcmi.heroWindow.sortBackpackByCost.help" : "将行囊里的宝物按价格排序。", "vcmi.heroWindow.sortBackpackByCost.help" : "{按价格排序}\n\n将行囊里的宝物按价格排序。",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "按装备槽排序", "vcmi.heroWindow.sortBackpackBySlot.hover" : "按装备槽排序",
"vcmi.heroWindow.sortBackpackBySlot.help" : "将行囊里的宝物按装备槽排序。", "vcmi.heroWindow.sortBackpackBySlot.help" : "{按装备槽排序}\n\n将行囊里的宝物按装备槽排序。",
"vcmi.heroWindow.sortBackpackByClass.hover" : "按类型排序", "vcmi.heroWindow.sortBackpackByClass.hover" : "按类型排序",
"vcmi.heroWindow.sortBackpackByClass.help" : "将行囊里的宝物按装备槽排序:低级宝物、中级宝物、高级宝物、圣物。", "vcmi.heroWindow.sortBackpackByClass.help" : "{按类型排序}\n\n将行囊里的宝物按装备槽排序:低级宝物、中级宝物、高级宝物、圣物。",
"vcmi.heroWindow.fusingArtifact.fusing" : "你已拥有融合%s所需的全部组件,想现在进行融合吗?{所有组件在融合后将被消耗。}", "vcmi.heroWindow.fusingArtifact.fusing" : "你已拥有融合%s所需的全部组件,想现在进行融合吗?{所有组件在融合后将被消耗。}",
"vcmi.tavernWindow.inviteHero" : "邀请英雄", "vcmi.tavernWindow.inviteHero" : "邀请英雄",

View File

@ -23,9 +23,9 @@
"vcmi.adventureMap.noTownWithTavern" : "Nejsou dostupná žádná města s putykou!", "vcmi.adventureMap.noTownWithTavern" : "Nejsou dostupná žádná města s putykou!",
"vcmi.adventureMap.spellUnknownProblem" : "Neznámý problém s tímto kouzlem! Další informace nejsou k dispozici.", "vcmi.adventureMap.spellUnknownProblem" : "Neznámý problém s tímto kouzlem! Další informace nejsou k dispozici.",
"vcmi.adventureMap.playerAttacked" : "Hráč byl napaden: %s", "vcmi.adventureMap.playerAttacked" : "Hráč byl napaden: %s",
"vcmi.adventureMap.moveCostDetails" : "Body pohybu - Cena: %TURNS tahů + %POINTS bodů, zbylé body: %REMAINING", "vcmi.adventureMap.moveCostDetails" : "Přesun sem tě bude stát {%TOTAL} bodů (za {%TURNS} tahů a {%POINTS} bodů). Po přesunu ti zbyde {%REMAINING} bodů.",
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Body pohybu - Cena: %POINTS bodů, zbylé body: %REMAINING", "vcmi.adventureMap.moveCostDetailsNoTurns" : "Přesun sem tě bude stát {%POINTS} bodů. Po přesunu ti zbyde {%REMAINING} bodů.",
"vcmi.adventureMap.movementPointsHeroInfo" : "(Body pohybu: %REMAINING / %POINTS)", "vcmi.adventureMap.movementPointsHeroInfo" : "(Body pohybu: %REMAINING / %POINTS)",
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Omlouváme se, přehrání tahu soupeře ještě není implementováno!", "vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Omlouváme se, přehrání tahu soupeře ještě není implementováno!",
"vcmi.bonusSource.artifact" : "Artefakt", "vcmi.bonusSource.artifact" : "Artefakt",
@ -68,6 +68,7 @@
"vcmi.radialWheel.heroGetArtifacts" : "Získat artefakty od jiného hrdiny", "vcmi.radialWheel.heroGetArtifacts" : "Získat artefakty od jiného hrdiny",
"vcmi.radialWheel.heroSwapArtifacts" : "Vyměnit artefakty s jiným hrdinou", "vcmi.radialWheel.heroSwapArtifacts" : "Vyměnit artefakty s jiným hrdinou",
"vcmi.radialWheel.heroDismiss" : "Propustit hrdinu", "vcmi.radialWheel.heroDismiss" : "Propustit hrdinu",
"vcmi.radialWheel.upgradeCreatures" : "Vylepšit všechny jednotky",
"vcmi.radialWheel.moveTop" : "Přesunout nahoru", "vcmi.radialWheel.moveTop" : "Přesunout nahoru",
"vcmi.radialWheel.moveUp" : "Posunout výše", "vcmi.radialWheel.moveUp" : "Posunout výše",
@ -86,9 +87,9 @@
"vcmi.spellBook.search" : "Hledat", "vcmi.spellBook.search" : "Hledat",
"vcmi.spellResearch.canNotAfford" : "Nemáte dostatek prostředků k nahrazení {%SPELL1} za {%SPELL2}. Stále však můžete toto kouzlo zrušit a pokračovat ve výzkumu dalších kouzel.", "vcmi.spellResearch.canNotAfford" : "Nemáš dostatek prostředků na výměnu kouzla {%SPELL1} za {%SPELL2}. Můžeš ho však odstranit a pokračovat ve výzkumu.",
"vcmi.spellResearch.comeAgain" : "Výzkum už byl dnes proveden. Vraťte se zítra.", "vcmi.spellResearch.comeAgain" : "Výzkum už byl dnes proveden. Vrať se zítra.",
"vcmi.spellResearch.pay" : "Chcete nahradit {%SPELL1} za {%SPELL2}? Nebo zrušit toto kouzlo a pokračovat ve výzkumu dalších kouzel?", "vcmi.spellResearch.pay" : "Chceš nahradit {%SPELL1} za {%SPELL2}? Nebo zrušit toto kouzlo a pokračovat ve výzkumu dalších kouzel?",
"vcmi.spellResearch.research" : "Prozkoumat toto kouzlo", "vcmi.spellResearch.research" : "Prozkoumat toto kouzlo",
"vcmi.spellResearch.skip" : "Přeskočit toto kouzlo", "vcmi.spellResearch.skip" : "Přeskočit toto kouzlo",
"vcmi.spellResearch.abort" : "Přerušit", "vcmi.spellResearch.abort" : "Přerušit",
@ -168,16 +169,16 @@
"vcmi.lobby.login.as" : "Přihlásit se jako %s", "vcmi.lobby.login.as" : "Přihlásit se jako %s",
"vcmi.lobby.login.spectator" : "Divák", "vcmi.lobby.login.spectator" : "Divák",
"vcmi.lobby.header.rooms" : "Herní místnosti - %d", "vcmi.lobby.header.rooms" : "Herní místnosti - %d",
"vcmi.lobby.header.channels" : "Kanály konverzace", "vcmi.lobby.header.channels" : "Kanály chatu",
"vcmi.lobby.header.chat.global" : "Globální konverzace hry - %s", // %s -> language name "vcmi.lobby.header.chat.global" : "Globální chat hry - %s", // %s -> language name
"vcmi.lobby.header.chat.match" : "Konverzace předchozí hry %s", // %s -> game start date & time "vcmi.lobby.header.chat.match" : "Chat 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.chat.player" : "Soukromý chat s %s", // %s -> nickname of another player
"vcmi.lobby.header.history" : "Vaše předchozí hry", "vcmi.lobby.header.history" : "Vaše předchozí hry",
"vcmi.lobby.header.players" : "Online hráči - %d", "vcmi.lobby.header.players" : "Online hráči - %d",
"vcmi.lobby.match.solo" : "Hra jednoho hráče", "vcmi.lobby.match.solo" : "Hra jednoho hráče",
"vcmi.lobby.match.duel" : "Hra s %s", // %s -> nickname of another player "vcmi.lobby.match.duel" : "Hra s %s", // %s -> nickname of another player
"vcmi.lobby.match.multi" : "%d hráčů", "vcmi.lobby.match.multi" : "%d hráčů",
"vcmi.lobby.room.create" : "Vytvořit novou místnost", "vcmi.lobby.room.create.hover" : "Vytvořit novou místnost",
"vcmi.lobby.room.players.limit" : "Omezení počtu hráčů", "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.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.private" : "Pouze pozvaní hráči se mohou připojit do soukromé místnosti.",
@ -185,7 +186,7 @@
"vcmi.lobby.room.description.load" : "Pro start hry načtěte uloženou hru.", "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.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.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.invite.notification" : "Hráč vás pozval do své soukromé místnosti. Nyní se k ní můžete připojit.",
"vcmi.lobby.preview.title" : "Připojit se do herní místnosti", "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.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.version" : "Verze hry:",
@ -199,6 +200,7 @@
"vcmi.lobby.preview.error.invite" : "Nebyl jste pozván do této mísnosti.", "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.mods" : "Použváte jinou sadu modifikací.",
"vcmi.lobby.preview.error.version" : "Používáte jinou verzi VCMI.", "vcmi.lobby.preview.error.version" : "Používáte jinou verzi VCMI.",
"vcmi.lobby.channel.add" : "Přidat kanál",
"vcmi.lobby.room.new" : "Nová hra", "vcmi.lobby.room.new" : "Nová hra",
"vcmi.lobby.room.load" : "Načíst hru", "vcmi.lobby.room.load" : "Načíst hru",
"vcmi.lobby.room.type" : "Druh místnosti", "vcmi.lobby.room.type" : "Druh místnosti",
@ -215,9 +217,9 @@
"vcmi.lobby.pvp.coin.hover" : "Mince", "vcmi.lobby.pvp.coin.hover" : "Mince",
"vcmi.lobby.pvp.coin.help" : "Hodí mincí", "vcmi.lobby.pvp.coin.help" : "Hodí mincí",
"vcmi.lobby.pvp.randomTown.hover" : "Náhodné město", "vcmi.lobby.pvp.randomTown.hover" : "Náhodné město",
"vcmi.lobby.pvp.randomTown.help" : "Napsat náhodné město do konvezace", "vcmi.lobby.pvp.randomTown.help" : "Napsat náhodné město do chatu",
"vcmi.lobby.pvp.randomTownVs.hover" : "Náhodné město vs.", "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.randomTownVs.help" : "Napsat 2 náhodná města do chatu",
"vcmi.lobby.pvp.versus" : "vs.", "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.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",
@ -305,6 +307,8 @@
"vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Velká kniha kouzel}\n\nPovolí větší knihu kouzel, do které se vejde více kouzel na jednu stranu. Animace změny stránek s tímto nastavením nefunguje.", "vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Velká kniha kouzel}\n\nPovolí větší knihu kouzel, do které se vejde více kouzel na jednu stranu. Animace změny stránek s tímto nastavením nefunguje.",
"vcmi.systemOptions.audioMuteFocus.hover" : "Ztlumit při neaktivitě", "vcmi.systemOptions.audioMuteFocus.hover" : "Ztlumit při neaktivitě",
"vcmi.systemOptions.audioMuteFocus.help" : "{Ztlumit při neaktivitě}\n\nZtlumit zvuk, pokud je okno hry v pozadí. Výjimkou jsou zprávy ve hře a zvuk nového tahu.", "vcmi.systemOptions.audioMuteFocus.help" : "{Ztlumit při neaktivitě}\n\nZtlumit zvuk, pokud je okno hry v pozadí. Výjimkou jsou zprávy ve hře a zvuk nového tahu.",
"vcmi.systemOptions.enableOverlayButton.hover" : "Povolit zobrazení informací",
"vcmi.systemOptions.enableOverlayButton.help" : "{Povolit zobrazení informací}\n\nZapne vrstvu zobrazující dodatečné informace, například názvy budov, pomocí klávesy ALT nebo gesta dvěma prsty.",
"vcmi.adventureOptions.infoBarPick.hover" : "Zobrazit zprávy v panelu informací", "vcmi.adventureOptions.infoBarPick.hover" : "Zobrazit zprávy v panelu informací",
"vcmi.adventureOptions.infoBarPick.help" : "{Zobrazit zprávy v panelu informací}\n\nKdyž bude možné, herní zprávy z návštěv míst na mapě budou zobrazeny v panelu informací místo ve zvláštním okně.", "vcmi.adventureOptions.infoBarPick.help" : "{Zobrazit zprávy v panelu informací}\n\nKdyž bude možné, herní zprávy z návštěv míst na mapě budou zobrazeny v panelu informací místo ve zvláštním okně.",
@ -326,9 +330,9 @@
"vcmi.adventureOptions.smoothDragging.help" : "{Plynulé posouvání mapy}\n\nPokud je tato možnost aktivována, posouvání mapy bude plynulé.", "vcmi.adventureOptions.smoothDragging.help" : "{Plynulé posouvání mapy}\n\nPokud je tato možnost aktivována, posouvání mapy bude plynulé.",
"vcmi.adventureOptions.skipAdventureMapAnimations.hover" : "Přeskočit efekty mizení", "vcmi.adventureOptions.skipAdventureMapAnimations.hover" : "Přeskočit efekty mizení",
"vcmi.adventureOptions.skipAdventureMapAnimations.help" : "{Přeskočit efekty mizení}\n\nKdyž je povoleno, přeskočí se efekty mizení objektů a podobné efekty (sběr surovin, nalodění atd.). V některých případech zrychlí uživatelské rozhraní na úkor estetiky. Obzvláště užitečné v PvP hrách. Pro maximální rychlost pohybu je toto nastavení aktivní bez ohledu na další volby.", "vcmi.adventureOptions.skipAdventureMapAnimations.help" : "{Přeskočit efekty mizení}\n\nKdyž je povoleno, přeskočí se efekty mizení objektů a podobné efekty (sběr surovin, nalodění atd.). V některých případech zrychlí uživatelské rozhraní na úkor estetiky. Obzvláště užitečné v PvP hrách. Pro maximální rychlost pohybu je toto nastavení aktivní bez ohledu na další volby.",
"vcmi.adventureOptions.mapScrollSpeed1.hover": "", "vcmi.adventureOptions.mapScrollSpeed1.hover" : "",
"vcmi.adventureOptions.mapScrollSpeed5.hover": "", "vcmi.adventureOptions.mapScrollSpeed5.hover" : "",
"vcmi.adventureOptions.mapScrollSpeed6.hover": "", "vcmi.adventureOptions.mapScrollSpeed6.hover" : "",
"vcmi.adventureOptions.mapScrollSpeed1.help" : "Nastavit posouvání mapy na velmi pomalé", "vcmi.adventureOptions.mapScrollSpeed1.help" : "Nastavit posouvání mapy na velmi pomalé",
"vcmi.adventureOptions.mapScrollSpeed5.help" : "Nastavit posouvání mapy na velmi rychlé", "vcmi.adventureOptions.mapScrollSpeed5.help" : "Nastavit posouvání mapy na velmi rychlé",
"vcmi.adventureOptions.mapScrollSpeed6.help" : "Nastavit posouvání mapy na okamžité", "vcmi.adventureOptions.mapScrollSpeed6.help" : "Nastavit posouvání mapy na okamžité",
@ -337,16 +341,16 @@
"vcmi.battleOptions.queueSizeLabel.hover" : "Zobrazit frontu pořadí tahů", "vcmi.battleOptions.queueSizeLabel.hover" : "Zobrazit frontu pořadí tahů",
"vcmi.battleOptions.queueSizeNoneButton.hover" : "VYPNUTO", "vcmi.battleOptions.queueSizeNoneButton.hover" : "VYPNUTO",
"vcmi.battleOptions.queueSizeAutoButton.hover": "AUTO", "vcmi.battleOptions.queueSizeAutoButton.hover" : "AUTO",
"vcmi.battleOptions.queueSizeSmallButton.hover" : "MALÁ", "vcmi.battleOptions.queueSizeSmallButton.hover" : "MALÁ",
"vcmi.battleOptions.queueSizeBigButton.hover" : "VELKÁ", "vcmi.battleOptions.queueSizeBigButton.hover" : "VELKÁ",
"vcmi.battleOptions.queueSizeNoneButton.help" : "Nezobrazovat frontu pořadí tahů.", "vcmi.battleOptions.queueSizeNoneButton.help" : "Nezobrazovat frontu pořadí tahů.",
"vcmi.battleOptions.queueSizeAutoButton.help" : "Nastavit automaticky velikost fronty pořadí tahů podle rozlišení obrazovky hry (Při výšce herního rozlišení menší než 700 pixelů je použita velikost MALÁ, jinak velikost VELKÁ)", "vcmi.battleOptions.queueSizeAutoButton.help" : "Nastavit automaticky velikost fronty pořadí tahů podle rozlišení obrazovky hry (Při výšce herního rozlišení menší než 700 pixelů je použita velikost MALÁ, jinak velikost VELKÁ)",
"vcmi.battleOptions.queueSizeSmallButton.help" : "Zobrazit MALOU frontu pořadí tahů.", "vcmi.battleOptions.queueSizeSmallButton.help" : "Zobrazit MALOU frontu pořadí tahů.",
"vcmi.battleOptions.queueSizeBigButton.help" : "Zobrazit VELKOU frontu pořadí tahů (není podporováno, pokud výška rozlišení hry není alespoň 700 pixelů).", "vcmi.battleOptions.queueSizeBigButton.help" : "Zobrazit VELKOU frontu pořadí tahů (není podporováno, pokud výška rozlišení hry není alespoň 700 pixelů).",
"vcmi.battleOptions.animationsSpeed1.hover": "", "vcmi.battleOptions.animationsSpeed1.hover" : "",
"vcmi.battleOptions.animationsSpeed5.hover": "", "vcmi.battleOptions.animationsSpeed5.hover" : "",
"vcmi.battleOptions.animationsSpeed6.hover": "", "vcmi.battleOptions.animationsSpeed6.hover" : "",
"vcmi.battleOptions.animationsSpeed1.help" : "Nastavit rychlost animací na velmi pomalé.", "vcmi.battleOptions.animationsSpeed1.help" : "Nastavit rychlost animací na velmi pomalé.",
"vcmi.battleOptions.animationsSpeed5.help" : "Nastavit rychlost animací na velmi rychlé.", "vcmi.battleOptions.animationsSpeed5.help" : "Nastavit rychlost animací na velmi rychlé.",
"vcmi.battleOptions.animationsSpeed6.help" : "Nastavit rychlost animací na okamžité.", "vcmi.battleOptions.animationsSpeed6.help" : "Nastavit rychlost animací na okamžité.",
@ -362,6 +366,8 @@
"vcmi.battleOptions.endWithAutocombat.help" : "{Přeskočit bitvu}\n\nAutomatický boj okamžitě dohraje bitvu do konce.", "vcmi.battleOptions.endWithAutocombat.help" : "{Přeskočit bitvu}\n\nAutomatický boj okamžitě dohraje bitvu do konce.",
"vcmi.battleOptions.showQuickSpell.hover" : "Zobrazit rychlý panel kouzel", "vcmi.battleOptions.showQuickSpell.hover" : "Zobrazit rychlý panel kouzel",
"vcmi.battleOptions.showQuickSpell.help" : "{Zobrazit rychlý panel kouzel}\n\nZobrazí panel pro rychlý výběr kouzel.", "vcmi.battleOptions.showQuickSpell.help" : "{Zobrazit rychlý panel kouzel}\n\nZobrazí panel pro rychlý výběr kouzel.",
"vcmi.battleOptions.showHealthBar.hover": "Zobrazit ukazatel zdraví",
"vcmi.battleOptions.showHealthBar.help": "{Zobrazit ukazatel zdraví}\n\nZobrazí ukazatel, který znázorňuje, kolik zdraví zbývá, než jednotka zemře.",
"vcmi.adventureMap.revisitObject.hover" : "Znovu navštívit objekt", "vcmi.adventureMap.revisitObject.hover" : "Znovu navštívit objekt",
"vcmi.adventureMap.revisitObject.help" : "{Znovu navštívit objekt}\n\nPokud hrdina právě stojí na objektu na mapě, může toto místo znovu navštívit.", "vcmi.adventureMap.revisitObject.help" : "{Znovu navštívit objekt}\n\nPokud hrdina právě stojí na objektu na mapě, může toto místo znovu navštívit.",
@ -414,6 +420,9 @@
"vcmi.townStructure.bank.borrow" : "Vstupujete do banky. Bankéř vás spatří a říká: \"Máme pro vás speciální nabídku. Můžete si vzít půjčku 2500 zlata na 5 dní. Každý den budete muset splácet 500 zlata.\"", "vcmi.townStructure.bank.borrow" : "Vstupujete do banky. Bankéř vás spatří a říká: \"Máme pro vás speciální nabídku. Můžete si vzít půjčku 2500 zlata na 5 dní. Každý den budete muset splácet 500 zlata.\"",
"vcmi.townStructure.bank.payBack" : "Vstupujete do banky. Bankéř vás spatří a říká: \"Již jste si vzali půjčku. Nejprve ji splaťte, než si vezmete další.\"", "vcmi.townStructure.bank.payBack" : "Vstupujete do banky. Bankéř vás spatří a říká: \"Již jste si vzali půjčku. Nejprve ji splaťte, než si vezmete další.\"",
"vcmi.townWindow.upgradeAll.notAllUpgradable" : "Nemáte dostatek surovin na vylepšení všech jednotek. Chcete vylepšit následující jednotky?",
"vcmi.townWindow.upgradeAll.notUpgradable" : "Nemáte dostatek surovin na vylepšení žádné z jednotek.",
"vcmi.logicalExpressions.anyOf" : "Nějaké z následujících:", "vcmi.logicalExpressions.anyOf" : "Nějaké z následujících:",
"vcmi.logicalExpressions.allOf" : "Všechny následující:", "vcmi.logicalExpressions.allOf" : "Všechny následující:",
"vcmi.logicalExpressions.noneOf" : "Žádné z následujících:", "vcmi.logicalExpressions.noneOf" : "Žádné z následujících:",
@ -423,11 +432,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Otevřít okno s artefakty", "vcmi.heroWindow.openBackpack.hover" : "Otevřít okno s artefakty",
"vcmi.heroWindow.openBackpack.help" : "Otevře okno, které umožňuje snadnější správu artefaktů v batohu.", "vcmi.heroWindow.openBackpack.help" : "Otevře okno, které umožňuje snadnější správu artefaktů v batohu.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Seřadit podle ceny", "vcmi.heroWindow.sortBackpackByCost.hover" : "Seřadit podle ceny",
"vcmi.heroWindow.sortBackpackByCost.help" : "Seřadí artefakty v batohu podle ceny.", "vcmi.heroWindow.sortBackpackByCost.help" : "{Seřadit podle ceny}\n\nSeřadí artefakty v batohu podle ceny.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Seřadit podle slotu", "vcmi.heroWindow.sortBackpackBySlot.hover" : "Seřadit podle slotu",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Seřadí artefakty v batohu podle přiřazeného slotu.", "vcmi.heroWindow.sortBackpackBySlot.help" : "{Seřadit podle slotu}\n\nSeřadí artefakty v batohu podle přiřazeného slotu.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Seřadit podle třídy", "vcmi.heroWindow.sortBackpackByClass.hover" : "Seřadit podle třídy",
"vcmi.heroWindow.sortBackpackByClass.help" : "Seřadí artefakty v batohu podle třídy artefaktu. Poklad, Menší, Větší, Relikvie.", "vcmi.heroWindow.sortBackpackByClass.help" : "{Seřadit podle třídy}\n\nSeřadí artefakty v batohu podle třídy artefaktu. Poklad, Menší, Větší, Relikvie.",
"vcmi.heroWindow.fusingArtifact.fusing" : "Máte všechny potřebné části k vytvoření %s. Chcete provést sloučení? {Při sloučení budou použity všechny části.}", "vcmi.heroWindow.fusingArtifact.fusing" : "Máte všechny potřebné části k vytvoření %s. Chcete provést sloučení? {Při sloučení budou použity všechny části.}",
"vcmi.tavernWindow.inviteHero" : "Pozvat hrdinu", "vcmi.tavernWindow.inviteHero" : "Pozvat hrdinu",
@ -762,28 +771,28 @@
"core.bonus.MECHANICAL.name" : "Mechanický", "core.bonus.MECHANICAL.name" : "Mechanický",
"core.bonus.PRISM_HEX_ATTACK_BREATH.name" : "Trojitý dech", "core.bonus.PRISM_HEX_ATTACK_BREATH.name" : "Trojitý dech",
"core.bonus.PRISM_HEX_ATTACK_BREATH.description" : "Útok trojitým dechem (útok přes 3 směry)", "core.bonus.PRISM_HEX_ATTACK_BREATH.description" : "Útok trojitým dechem (útok přes 3 směry)",
"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Odolnost vůči kouzlům", "core.bonus.SPELL_DAMAGE_REDUCTION.name" : "Odolnost vůči kouzlům",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Odolnost vůči kouzlům vzduchu", "core.bonus.SPELL_DAMAGE_REDUCTION.name.air" : "Odolnost vůči kouzlům vzduchu",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Odolnost vůči kouzlům ohně", "core.bonus.SPELL_DAMAGE_REDUCTION.name.fire" : "Odolnost vůči kouzlům ohně",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.water": "Odolnost vůči kouzlům vody", "core.bonus.SPELL_DAMAGE_REDUCTION.name.water" : "Odolnost vůči kouzlům vody",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.earth": "Odolnost vůči kouzlům země", "core.bonus.SPELL_DAMAGE_REDUCTION.name.earth" : "Odolnost vůči kouzlům země",
"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Poškození ze všech kouzel sníženo o ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description" : "Poškození ze všech kouzel sníženo o ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.air": "Poškození kouzel magie vzduchu sníženo o ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.air" : "Poškození kouzel magie vzduchu sníženo o ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Poškození kouzel magie ohně sníženo o ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.fire" : "Poškození kouzel magie ohně sníženo o ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Poškození kouzel magie vody sníženo o ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.water" : "Poškození kouzel magie vody sníženo o ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Poškození kouzel magie země sníženo o ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.earth" : "Poškození kouzel magie země sníženo o ${val}%.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Imunita vůči kouzlům", "core.bonus.SPELL_SCHOOL_IMMUNITY.name" : "Imunita vůči kouzlům",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Vzdušná imunita", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.air" : "Vzdušná imunita",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Ohnivá imunita", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire" : "Ohnivá imunita",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Vodní imunita", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.water" : "Vodní imunita",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Zemská imunita", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth" : "Zemská imunita",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Jednotka je imunní vůči všem kouzlům.", "core.bonus.SPELL_SCHOOL_IMMUNITY.description" : "Jednotka je imunní vůči všem kouzlům.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "Jednotka je imunní vůči všem kouzlům magie vzduchu.", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.air" : "Jednotka je imunní vůči všem kouzlům magie vzduchu.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "Jednotka je imunní vůči všem kouzlům magie ohně.", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire" : "Jednotka je imunní vůči všem kouzlům magie ohně.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "Jednotka je imunní vůči všem kouzlům magie vody.", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.water" : "Jednotka je imunní vůči všem kouzlům magie vody.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "Jednotka je imunní vůči všem kouzlům magie země.", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth" : "Jednotka je imunní vůči všem kouzlům magie země.",
"core.bonus.OPENING_BATTLE_SPELL.name": "Začíná kouzlem", "core.bonus.OPENING_BATTLE_SPELL.name" : "Začíná kouzlem",
"core.bonus.OPENING_BATTLE_SPELL.description": "Sesílá ${subtype.spell} na začátku bitvy.", "core.bonus.OPENING_BATTLE_SPELL.description" : "Sesílá ${subtype.spell} na začátku bitvy.",
"spell.core.castleMoat.name" : "Hradní příkop", "spell.core.castleMoat.name" : "Hradní příkop",
"spell.core.castleMoatTrigger.name" : "Hradní příkop", "spell.core.castleMoatTrigger.name" : "Hradní příkop",

View File

@ -23,16 +23,16 @@
"vcmi.adventureMap.noTownWithTavern" : "There are no available towns with taverns!", "vcmi.adventureMap.noTownWithTavern" : "There are no available towns with taverns!",
"vcmi.adventureMap.spellUnknownProblem" : "There is an unknown problem with this spell! No more information is available.", "vcmi.adventureMap.spellUnknownProblem" : "There is an unknown problem with this spell! No more information is available.",
"vcmi.adventureMap.playerAttacked" : "Player has been attacked: %s", "vcmi.adventureMap.playerAttacked" : "Player has been attacked: %s",
"vcmi.adventureMap.moveCostDetails" : "Movement points - Cost: %TURNS turns + %POINTS points, Remaining points: %REMAINING", "vcmi.adventureMap.moveCostDetails" : "Moving here will cost {%TOTAL} points in total ({%TURNS} turns and {%POINTS} points). {%REMAINING} points will remain after moving.",
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Movement points - Cost: %POINTS points, Remaining points: %REMAINING", "vcmi.adventureMap.moveCostDetailsNoTurns" : "Moving here will cost {%POINTS} points. {%REMAINING} points will remain after moving.",
"vcmi.adventureMap.movementPointsHeroInfo" : "(Movement points: %REMAINING / %POINTS)", "vcmi.adventureMap.movementPointsHeroInfo" : "(Movement points: %REMAINING / %POINTS)",
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Sorry, replay opponent turn is not implemented yet!", "vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Sorry, replay opponent turn is not implemented yet!",
"vcmi.bonusSource.artifact" : "Artifact", "vcmi.bonusSource.artifact" : "Artifact",
"vcmi.bonusSource.creature" : "Ability", "vcmi.bonusSource.creature" : "Ability",
"vcmi.bonusSource.spell" : "Spell", "vcmi.bonusSource.spell" : "Spell",
"vcmi.bonusSource.hero" : "Hero", "vcmi.bonusSource.hero" : "Hero",
"vcmi.bonusSource.commander" : "Commander", "vcmi.bonusSource.commander" : "Command.",
"vcmi.bonusSource.other" : "Other", "vcmi.bonusSource.other" : "Other",
"vcmi.capitalColors.0" : "Red", "vcmi.capitalColors.0" : "Red",
@ -68,6 +68,7 @@
"vcmi.radialWheel.heroGetArtifacts" : "Get artifacts from other hero", "vcmi.radialWheel.heroGetArtifacts" : "Get artifacts from other hero",
"vcmi.radialWheel.heroSwapArtifacts" : "Swap artifacts with other hero", "vcmi.radialWheel.heroSwapArtifacts" : "Swap artifacts with other hero",
"vcmi.radialWheel.heroDismiss" : "Dismiss hero", "vcmi.radialWheel.heroDismiss" : "Dismiss hero",
"vcmi.radialWheel.upgradeCreatures" : "Upgrade all creatures",
"vcmi.radialWheel.moveTop" : "Move to top", "vcmi.radialWheel.moveTop" : "Move to top",
"vcmi.radialWheel.moveUp" : "Move up", "vcmi.radialWheel.moveUp" : "Move up",
@ -177,7 +178,8 @@
"vcmi.lobby.match.solo" : "Singleplayer Game", "vcmi.lobby.match.solo" : "Singleplayer Game",
"vcmi.lobby.match.duel" : "Game with %s", // %s -> nickname of another player "vcmi.lobby.match.duel" : "Game with %s", // %s -> nickname of another player
"vcmi.lobby.match.multi" : "%d players", "vcmi.lobby.match.multi" : "%d players",
"vcmi.lobby.room.create" : "Create New Room", "vcmi.lobby.room.create.hover" : "Create New Room",
"vcmi.lobby.room.create.help" : "Create a new room in the online lobby that other players can join.",
"vcmi.lobby.room.players.limit" : "Players Limit", "vcmi.lobby.room.players.limit" : "Players Limit",
"vcmi.lobby.room.description.public" : "Any player can join public room.", "vcmi.lobby.room.description.public" : "Any player can join public room.",
"vcmi.lobby.room.description.private" : "Only invited players can join private room.", "vcmi.lobby.room.description.private" : "Only invited players can join private room.",
@ -200,6 +202,8 @@
"vcmi.lobby.preview.error.mods" : "You are using different set of mods.", "vcmi.lobby.preview.error.mods" : "You are using different set of mods.",
"vcmi.lobby.preview.error.version" : "You are using different version of VCMI.", "vcmi.lobby.preview.error.version" : "You are using different version of VCMI.",
"vcmi.lobby.channel.add" : "Add Channel", "vcmi.lobby.channel.add" : "Add Channel",
"vcmi.lobby.channel.sendMessage.hover" : "Send message",
"vcmi.lobby.channel.sendMessage.help" : "Send message",
"vcmi.lobby.room.new" : "New Game", "vcmi.lobby.room.new" : "New Game",
"vcmi.lobby.room.load" : "Load Game", "vcmi.lobby.room.load" : "Load Game",
"vcmi.lobby.room.type" : "Room Type", "vcmi.lobby.room.type" : "Room Type",
@ -306,6 +310,8 @@
"vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Large Spell Book}\n\nEnables larger spell book that fits more spells per page. Spell book page change animation does not work with this setting enabled.", "vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Large Spell Book}\n\nEnables larger spell book that fits more spells per page. Spell book page change animation does not work with this setting enabled.",
"vcmi.systemOptions.audioMuteFocus.hover" : "Mute on inactivity", "vcmi.systemOptions.audioMuteFocus.hover" : "Mute on inactivity",
"vcmi.systemOptions.audioMuteFocus.help" : "{Mute on inactivity}\n\nMute audio on inactive window focus. Exceptions are ingame messages and new turn sound.", "vcmi.systemOptions.audioMuteFocus.help" : "{Mute on inactivity}\n\nMute audio on inactive window focus. Exceptions are ingame messages and new turn sound.",
"vcmi.systemOptions.enableOverlayButton.hover" : "Enable Overlay",
"vcmi.systemOptions.enableOverlayButton.help" : "{Enable Overlay}\n\nEnable overlays for showing additional infos such as building names using the ALT key or the two finger gesture.",
"vcmi.adventureOptions.infoBarPick.hover" : "Show Messages in Info Panel", "vcmi.adventureOptions.infoBarPick.hover" : "Show Messages in Info Panel",
"vcmi.adventureOptions.infoBarPick.help" : "{Show Messages in Info Panel}\n\nWhenever possible, game messages from visiting map objects will be shown in the info panel, instead of popping up in a separate window.", "vcmi.adventureOptions.infoBarPick.help" : "{Show Messages in Info Panel}\n\nWhenever possible, game messages from visiting map objects will be shown in the info panel, instead of popping up in a separate window.",
@ -327,42 +333,44 @@
"vcmi.adventureOptions.smoothDragging.help" : "{Smooth Map Dragging}\n\nWhen enabled, map dragging has a modern run out effect.", "vcmi.adventureOptions.smoothDragging.help" : "{Smooth Map Dragging}\n\nWhen enabled, map dragging has a modern run out effect.",
"vcmi.adventureOptions.skipAdventureMapAnimations.hover" : "Skip fading effects", "vcmi.adventureOptions.skipAdventureMapAnimations.hover" : "Skip fading effects",
"vcmi.adventureOptions.skipAdventureMapAnimations.help" : "{Skip fading effects}\n\nWhen enabled, Skips object fadeout and similar effects (resource collection, ship embark etc). Makes UI more reactive in some cases at the expense of aesthetics. Especially useful in PvP games. For maximum movement speed skipping is active regardless of this setting.", "vcmi.adventureOptions.skipAdventureMapAnimations.help" : "{Skip fading effects}\n\nWhen enabled, Skips object fadeout and similar effects (resource collection, ship embark etc). Makes UI more reactive in some cases at the expense of aesthetics. Especially useful in PvP games. For maximum movement speed skipping is active regardless of this setting.",
"vcmi.adventureOptions.mapScrollSpeed1.hover": "", "vcmi.adventureOptions.mapScrollSpeed1.hover" : "",
"vcmi.adventureOptions.mapScrollSpeed5.hover": "", "vcmi.adventureOptions.mapScrollSpeed5.hover" : "",
"vcmi.adventureOptions.mapScrollSpeed6.hover": "", "vcmi.adventureOptions.mapScrollSpeed6.hover" : "",
"vcmi.adventureOptions.mapScrollSpeed1.help": "Set the map scrolling speed to very slow.", "vcmi.adventureOptions.mapScrollSpeed1.help" : "Set the map scrolling speed to very slow.",
"vcmi.adventureOptions.mapScrollSpeed5.help": "Set the map scrolling speed to very fast.", "vcmi.adventureOptions.mapScrollSpeed5.help" : "Set the map scrolling speed to very fast.",
"vcmi.adventureOptions.mapScrollSpeed6.help": "Set the map scrolling speed to instantaneous.", "vcmi.adventureOptions.mapScrollSpeed6.help" : "Set the map scrolling speed to instantaneous.",
"vcmi.adventureOptions.hideBackground.hover" : "Hide Background", "vcmi.adventureOptions.hideBackground.hover" : "Hide Background",
"vcmi.adventureOptions.hideBackground.help" : "{Hide Background}\n\nHide the adventuremap in the background and show a texture instead.", "vcmi.adventureOptions.hideBackground.help" : "{Hide Background}\n\nHide the adventuremap in the background and show a texture instead.",
"vcmi.battleOptions.queueSizeLabel.hover": "Show Turn Order Queue", "vcmi.battleOptions.queueSizeLabel.hover" : "Show Turn Order Queue",
"vcmi.battleOptions.queueSizeNoneButton.hover": "OFF", "vcmi.battleOptions.queueSizeNoneButton.hover" : "OFF",
"vcmi.battleOptions.queueSizeAutoButton.hover": "AUTO", "vcmi.battleOptions.queueSizeAutoButton.hover" : "AUTO",
"vcmi.battleOptions.queueSizeSmallButton.hover": "SMALL", "vcmi.battleOptions.queueSizeSmallButton.hover" : "SMALL",
"vcmi.battleOptions.queueSizeBigButton.hover": "BIG", "vcmi.battleOptions.queueSizeBigButton.hover" : "BIG",
"vcmi.battleOptions.queueSizeNoneButton.help": "Do not display Turn Order Queue.", "vcmi.battleOptions.queueSizeNoneButton.help" : "Do not display Turn Order Queue.",
"vcmi.battleOptions.queueSizeAutoButton.help": "Automatically adjust the size of the turn order queue based on the game's resolution(SMALL size is used when playing the game on a resolution with a height lower than 700 pixels, BIG size is used otherwise).", "vcmi.battleOptions.queueSizeAutoButton.help" : "Automatically adjust the size of the turn order queue based on the game's resolution(SMALL size is used when playing the game on a resolution with a height lower than 700 pixels, BIG size is used otherwise).",
"vcmi.battleOptions.queueSizeSmallButton.help": "Sets turn order queue size to SMALL.", "vcmi.battleOptions.queueSizeSmallButton.help" : "Sets turn order queue size to SMALL.",
"vcmi.battleOptions.queueSizeBigButton.help": "Sets turn order queue size to BIG (not supported if game resolution height is less than 700 pixels).", "vcmi.battleOptions.queueSizeBigButton.help" : "Sets turn order queue size to BIG (not supported if game resolution height is less than 700 pixels).",
"vcmi.battleOptions.animationsSpeed1.hover": "", "vcmi.battleOptions.animationsSpeed1.hover" : "",
"vcmi.battleOptions.animationsSpeed5.hover": "", "vcmi.battleOptions.animationsSpeed5.hover" : "",
"vcmi.battleOptions.animationsSpeed6.hover": "", "vcmi.battleOptions.animationsSpeed6.hover" : "",
"vcmi.battleOptions.animationsSpeed1.help": "Set animation speed to very slow.", "vcmi.battleOptions.animationsSpeed1.help" : "Set animation speed to very slow.",
"vcmi.battleOptions.animationsSpeed5.help": "Set animation speed to very fast.", "vcmi.battleOptions.animationsSpeed5.help" : "Set animation speed to very fast.",
"vcmi.battleOptions.animationsSpeed6.help": "Set animation speed to instantaneous.", "vcmi.battleOptions.animationsSpeed6.help" : "Set animation speed to instantaneous.",
"vcmi.battleOptions.movementHighlightOnHover.hover": "Movement Highlight on Hover", "vcmi.battleOptions.movementHighlightOnHover.hover" : "Movement Highlight on Hover",
"vcmi.battleOptions.movementHighlightOnHover.help": "{Movement Highlight on Hover}\n\nHighlight unit's movement range when you hover over it.", "vcmi.battleOptions.movementHighlightOnHover.help" : "{Movement Highlight on Hover}\n\nHighlight unit's movement range when you hover over it.",
"vcmi.battleOptions.rangeLimitHighlightOnHover.hover": "Show range limits for shooters", "vcmi.battleOptions.rangeLimitHighlightOnHover.hover" : "Show range limits for shooters",
"vcmi.battleOptions.rangeLimitHighlightOnHover.help": "{Show range limits for shooters on Hover}\n\nShow shooter's range limits when you hover over it.", "vcmi.battleOptions.rangeLimitHighlightOnHover.help" : "{Show range limits for shooters on Hover}\n\nShow shooter's range limits when you hover over it.",
"vcmi.battleOptions.showStickyHeroInfoWindows.hover": "Show heroes statistics windows", "vcmi.battleOptions.showStickyHeroInfoWindows.hover" : "Show heroes statistics windows",
"vcmi.battleOptions.showStickyHeroInfoWindows.help": "{Show heroes statistics windows}\n\nPermanently toggle on heroes statistics windows that show primary stats and spell points.", "vcmi.battleOptions.showStickyHeroInfoWindows.help" : "{Show heroes statistics windows}\n\nPermanently toggle on heroes statistics windows that show primary stats and spell points.",
"vcmi.battleOptions.skipBattleIntroMusic.hover": "Skip Intro Music", "vcmi.battleOptions.skipBattleIntroMusic.hover" : "Skip Intro Music",
"vcmi.battleOptions.skipBattleIntroMusic.help": "{Skip Intro Music}\n\nAllow actions during the intro music that plays at the beginning of each battle.", "vcmi.battleOptions.skipBattleIntroMusic.help" : "{Skip Intro Music}\n\nAllow actions during the intro music that plays at the beginning of each battle.",
"vcmi.battleOptions.endWithAutocombat.hover": "Ends battle", "vcmi.battleOptions.endWithAutocombat.hover" : "Ends battle",
"vcmi.battleOptions.endWithAutocombat.help": "{Ends battle}\n\nAuto-Combat plays battle to end instant", "vcmi.battleOptions.endWithAutocombat.help" : "{Ends battle}\n\nAuto-Combat plays battle to end instant",
"vcmi.battleOptions.showQuickSpell.hover": "Show Quickspell panel", "vcmi.battleOptions.showQuickSpell.hover" : "Show Quickspell panel",
"vcmi.battleOptions.showQuickSpell.help": "{Show Quickspell panel}\n\nShow panel for quick selecting spells", "vcmi.battleOptions.showQuickSpell.help" : "{Show Quickspell panel}\n\nShow panel for quick selecting spells",
"vcmi.battleOptions.showHealthBar.hover" : "Show health bar",
"vcmi.battleOptions.showHealthBar.help" : "{Show health bar}\n\nShow health bar indicating remaining health before one unit dies.",
"vcmi.adventureMap.revisitObject.hover" : "Revisit Object", "vcmi.adventureMap.revisitObject.hover" : "Revisit Object",
"vcmi.adventureMap.revisitObject.help" : "{Revisit Object}\n\nIf a hero currently stands on a Map Object, he can revisit the location.", "vcmi.adventureMap.revisitObject.help" : "{Revisit Object}\n\nIf a hero currently stands on a Map Object, he can revisit the location.",
@ -406,8 +414,8 @@
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.help" : "{Show Available Creatures}\n\nShow the number of creatures available to purchase instead of their growth in town summary (bottom-left corner of town screen).", "vcmi.otherOptions.availableCreaturesAsDwellingLabel.help" : "{Show Available Creatures}\n\nShow the number of creatures available to purchase instead of their growth in town summary (bottom-left corner of town screen).",
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.hover" : "Show Weekly Growth of Creatures", "vcmi.otherOptions.creatureGrowthAsDwellingLabel.hover" : "Show Weekly Growth of Creatures",
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.help" : "{Show Weekly Growth of Creatures}\n\nShow creatures' weekly growth instead of available amount in town summary (bottom-left corner of town screen).", "vcmi.otherOptions.creatureGrowthAsDwellingLabel.help" : "{Show Weekly Growth of Creatures}\n\nShow creatures' weekly growth instead of available amount in town summary (bottom-left corner of town screen).",
"vcmi.otherOptions.compactTownCreatureInfo.hover": "Compact Creature Info", "vcmi.otherOptions.compactTownCreatureInfo.hover" : "Compact Creature Info",
"vcmi.otherOptions.compactTownCreatureInfo.help": "{Compact Creature Info}\n\nShow smaller information for town creatures in town summary (bottom-left corner of town screen).", "vcmi.otherOptions.compactTownCreatureInfo.help" : "{Compact Creature Info}\n\nShow smaller information for town creatures in town summary (bottom-left corner of town screen).",
"vcmi.townHall.missingBase" : "Base building %s must be built first", "vcmi.townHall.missingBase" : "Base building %s must be built first",
"vcmi.townHall.noCreaturesToRecruit" : "There are no creatures to recruit!", "vcmi.townHall.noCreaturesToRecruit" : "There are no creatures to recruit!",
@ -415,6 +423,9 @@
"vcmi.townStructure.bank.borrow" : "You enter the bank. A banker sees you and says: \"We have made a special offer for you. You can take a loan of 2500 gold from us for 5 days. You will have to repay 500 gold every day.\"", "vcmi.townStructure.bank.borrow" : "You enter the bank. A banker sees you and says: \"We have made a special offer for you. You can take a loan of 2500 gold from us for 5 days. You will have to repay 500 gold every day.\"",
"vcmi.townStructure.bank.payBack" : "You enter the bank. A banker sees you and says: \"You have already got your loan. Pay it back before taking a new one.\"", "vcmi.townStructure.bank.payBack" : "You enter the bank. A banker sees you and says: \"You have already got your loan. Pay it back before taking a new one.\"",
"vcmi.townWindow.upgradeAll.notAllUpgradable" : "Not enough resources to upgrade all creatures. Do you want to upgrade following creatures?",
"vcmi.townWindow.upgradeAll.notUpgradable" : "Not enough resources to upgrade any creature.",
"vcmi.logicalExpressions.anyOf" : "Any of the following:", "vcmi.logicalExpressions.anyOf" : "Any of the following:",
"vcmi.logicalExpressions.allOf" : "All of the following:", "vcmi.logicalExpressions.allOf" : "All of the following:",
"vcmi.logicalExpressions.noneOf" : "None of the following:", "vcmi.logicalExpressions.noneOf" : "None of the following:",
@ -423,12 +434,12 @@
"vcmi.heroWindow.openCommander.help" : "Shows details about the commander of this hero.", "vcmi.heroWindow.openCommander.help" : "Shows details about the commander of this hero.",
"vcmi.heroWindow.openBackpack.hover" : "Open artifact backpack window", "vcmi.heroWindow.openBackpack.hover" : "Open artifact backpack window",
"vcmi.heroWindow.openBackpack.help" : "Opens window that allows easier artifact backpack management.", "vcmi.heroWindow.openBackpack.help" : "Opens window that allows easier artifact backpack management.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Sort by cost", "vcmi.heroWindow.sortBackpackByCost.hover" : "By value",
"vcmi.heroWindow.sortBackpackByCost.help" : "Sort artifacts in backpack by cost.", "vcmi.heroWindow.sortBackpackByCost.help" : "{Sort by cost}\n\nSort artifacts in backpack by cost.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Sort by slot", "vcmi.heroWindow.sortBackpackBySlot.hover" : "By slot",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Sort artifacts in backpack by equipped slot.", "vcmi.heroWindow.sortBackpackBySlot.help" : "{Sort by slot}\n\nSort artifacts in backpack by equipped slot.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Sort by class", "vcmi.heroWindow.sortBackpackByClass.hover" : "By class",
"vcmi.heroWindow.sortBackpackByClass.help" : "Sort artifacts in backpack by artifact class. Treasure, Minor, Major, Relic", "vcmi.heroWindow.sortBackpackByClass.help" : "{Sort by class}\n\nSort artifacts in backpack by artifact class. Treasure, Minor, Major, Relic",
"vcmi.heroWindow.fusingArtifact.fusing" : "You possess all of the components needed for the fusion of the %s. Do you wish to perform the fusion? {All components will be consumed upon fusion.}", "vcmi.heroWindow.fusingArtifact.fusing" : "You possess all of the components needed for the fusion of the %s. Do you wish to perform the fusion? {All components will be consumed upon fusion.}",
"vcmi.tavernWindow.inviteHero" : "Invite hero", "vcmi.tavernWindow.inviteHero" : "Invite hero",
@ -609,182 +620,182 @@
"mapObject.core.hillFort.object.description" : "Upgrades creatures. Levels 1 - 4 are less expensive than in associated town.", "mapObject.core.hillFort.object.description" : "Upgrades creatures. Levels 1 - 4 are less expensive than in associated town.",
"core.bonus.ADDITIONAL_ATTACK.name": "Double Strike", "core.bonus.ADDITIONAL_ATTACK.name" : "Double Strike",
"core.bonus.ADDITIONAL_ATTACK.description": "Attacks twice", "core.bonus.ADDITIONAL_ATTACK.description" : "Attacks twice",
"core.bonus.ADDITIONAL_RETALIATION.name": "Additional retaliations", "core.bonus.ADDITIONAL_RETALIATION.name" : "Additional retaliations",
"core.bonus.ADDITIONAL_RETALIATION.description": "May retaliate ${val} extra times", "core.bonus.ADDITIONAL_RETALIATION.description" : "May retaliate ${val} extra times",
"core.bonus.AIR_IMMUNITY.name": "Air immunity", "core.bonus.AIR_IMMUNITY.name" : "Air immunity",
"core.bonus.AIR_IMMUNITY.description": "Immune to all spells from the school of Air magic", "core.bonus.AIR_IMMUNITY.description" : "Immune to all spells from the school of Air magic",
"core.bonus.ATTACKS_ALL_ADJACENT.name": "Attack all around", "core.bonus.ATTACKS_ALL_ADJACENT.name" : "Attack all around",
"core.bonus.ATTACKS_ALL_ADJACENT.description": "Attacks all adjacent enemies", "core.bonus.ATTACKS_ALL_ADJACENT.description" : "Attacks all adjacent enemies",
"core.bonus.BLOCKS_RETALIATION.name": "No retaliation", "core.bonus.BLOCKS_RETALIATION.name" : "No retaliation",
"core.bonus.BLOCKS_RETALIATION.description": "Enemy cannot retaliate", "core.bonus.BLOCKS_RETALIATION.description" : "Enemy cannot retaliate",
"core.bonus.BLOCKS_RANGED_RETALIATION.name": "No ranged retaliation", "core.bonus.BLOCKS_RANGED_RETALIATION.name" : "No ranged retaliation",
"core.bonus.BLOCKS_RANGED_RETALIATION.description": "Enemy cannot retaliate by using a ranged attack", "core.bonus.BLOCKS_RANGED_RETALIATION.description" : "Enemy cannot retaliate by using a ranged attack",
"core.bonus.CATAPULT.name": "Catapult", "core.bonus.CATAPULT.name" : "Catapult",
"core.bonus.CATAPULT.description": "Attacks siege walls", "core.bonus.CATAPULT.description" : "Attacks siege walls",
"core.bonus.CHANGES_SPELL_COST_FOR_ALLY.name": "Reduce Casting Cost (${val})", "core.bonus.CHANGES_SPELL_COST_FOR_ALLY.name" : "Reduce Casting Cost (${val})",
"core.bonus.CHANGES_SPELL_COST_FOR_ALLY.description": "Reduces the spellcasting cost for the hero by ${val}", "core.bonus.CHANGES_SPELL_COST_FOR_ALLY.description" : "Reduces the spellcasting cost for the hero by ${val}",
"core.bonus.CHANGES_SPELL_COST_FOR_ENEMY.name": "Magic Damper (${val})", "core.bonus.CHANGES_SPELL_COST_FOR_ENEMY.name" : "Magic Damper (${val})",
"core.bonus.CHANGES_SPELL_COST_FOR_ENEMY.description": "Increases spellcasting cost of enemy spells by ${val}", "core.bonus.CHANGES_SPELL_COST_FOR_ENEMY.description" : "Increases spellcasting cost of enemy spells by ${val}",
"core.bonus.CHARGE_IMMUNITY.name": "Immune to Charge", "core.bonus.CHARGE_IMMUNITY.name" : "Immune to Charge",
"core.bonus.CHARGE_IMMUNITY.description": "Immune to Cavalier's and Champion's Charge", "core.bonus.CHARGE_IMMUNITY.description" : "Immune to Cavalier's and Champion's Charge",
"core.bonus.DARKNESS.name": "Darkness cover", "core.bonus.DARKNESS.name" : "Darkness cover",
"core.bonus.DARKNESS.description": "Creates a shroud of darkness with a ${val} radius", "core.bonus.DARKNESS.description" : "Creates a shroud of darkness with a ${val} radius",
"core.bonus.DEATH_STARE.name": "Death Stare (${val}%)", "core.bonus.DEATH_STARE.name" : "Death Stare (${val}%)",
"core.bonus.DEATH_STARE.description": "Has a ${val}% chance to kill a single creature", "core.bonus.DEATH_STARE.description" : "Has a ${val}% chance to kill a single creature",
"core.bonus.DEFENSIVE_STANCE.name": "Defense Bonus", "core.bonus.DEFENSIVE_STANCE.name" : "Defense Bonus",
"core.bonus.DEFENSIVE_STANCE.description": "+${val} Defense when defending", "core.bonus.DEFENSIVE_STANCE.description" : "+${val} Defense when defending",
"core.bonus.DESTRUCTION.name": "Destruction", "core.bonus.DESTRUCTION.name" : "Destruction",
"core.bonus.DESTRUCTION.description": "Has ${val}% chance to kill extra units after attack", "core.bonus.DESTRUCTION.description" : "Has ${val}% chance to kill extra units after attack",
"core.bonus.DOUBLE_DAMAGE_CHANCE.name": "Death Blow", "core.bonus.DOUBLE_DAMAGE_CHANCE.name" : "Death Blow",
"core.bonus.DOUBLE_DAMAGE_CHANCE.description": "Has a ${val}% chance of dealing double base damage when attacking", "core.bonus.DOUBLE_DAMAGE_CHANCE.description" : "Has a ${val}% chance of dealing double base damage when attacking",
"core.bonus.DRAGON_NATURE.name": "Dragon", "core.bonus.DRAGON_NATURE.name" : "Dragon",
"core.bonus.DRAGON_NATURE.description": "Creature has a Dragon Nature", "core.bonus.DRAGON_NATURE.description" : "Creature has a Dragon Nature",
"core.bonus.EARTH_IMMUNITY.name": "Earth immunity", "core.bonus.EARTH_IMMUNITY.name" : "Earth immunity",
"core.bonus.EARTH_IMMUNITY.description": "Immune to all spells from the school of Earth magic", "core.bonus.EARTH_IMMUNITY.description" : "Immune to all spells from the school of Earth magic",
"core.bonus.ENCHANTER.name": "Enchanter", "core.bonus.ENCHANTER.name" : "Enchanter",
"core.bonus.ENCHANTER.description": "Can cast mass ${subtype.spell} every turn", "core.bonus.ENCHANTER.description" : "Can cast mass ${subtype.spell} every turn",
"core.bonus.ENCHANTED.name": "Enchanted", "core.bonus.ENCHANTED.name" : "Enchanted",
"core.bonus.ENCHANTED.description": "Affected by permanent ${subtype.spell}", "core.bonus.ENCHANTED.description" : "Affected by permanent ${subtype.spell}",
"core.bonus.ENEMY_ATTACK_REDUCTION.name": "Ignore Attack (${val}%)", "core.bonus.ENEMY_ATTACK_REDUCTION.name" : "Ignore Attack (${val}%)",
"core.bonus.ENEMY_ATTACK_REDUCTION.description": "When being attacked, ${val}% of the attacker's attack is ignored", "core.bonus.ENEMY_ATTACK_REDUCTION.description" : "When being attacked, ${val}% of the attacker's attack is ignored",
"core.bonus.ENEMY_DEFENCE_REDUCTION.name": "Ignore Defense (${val}%)", "core.bonus.ENEMY_DEFENCE_REDUCTION.name" : "Ignore Defense (${val}%)",
"core.bonus.ENEMY_DEFENCE_REDUCTION.description": "When attacking, ${val}% of the defender's defense is ignored", "core.bonus.ENEMY_DEFENCE_REDUCTION.description" : "When attacking, ${val}% of the defender's defense is ignored",
"core.bonus.FIRE_IMMUNITY.name": "Fire immunity", "core.bonus.FIRE_IMMUNITY.name" : "Fire immunity",
"core.bonus.FIRE_IMMUNITY.description": "Immune to all spells from the school of Fire magic", "core.bonus.FIRE_IMMUNITY.description" : "Immune to all spells from the school of Fire magic",
"core.bonus.FIRE_SHIELD.name": "Fire Shield (${val}%)", "core.bonus.FIRE_SHIELD.name" : "Fire Shield (${val}%)",
"core.bonus.FIRE_SHIELD.description": "Reflects part of melee damage", "core.bonus.FIRE_SHIELD.description" : "Reflects part of melee damage",
"core.bonus.FIRST_STRIKE.name": "First Strike", "core.bonus.FIRST_STRIKE.name" : "First Strike",
"core.bonus.FIRST_STRIKE.description": "This creature retaliates before being attacked", "core.bonus.FIRST_STRIKE.description" : "This creature retaliates before being attacked",
"core.bonus.FEAR.name": "Fear", "core.bonus.FEAR.name" : "Fear",
"core.bonus.FEAR.description": "Causes Fear on an enemy stack", "core.bonus.FEAR.description" : "Causes Fear on an enemy stack",
"core.bonus.FEARLESS.name": "Fearless", "core.bonus.FEARLESS.name" : "Fearless",
"core.bonus.FEARLESS.description": "Immune to Fear ability", "core.bonus.FEARLESS.description" : "Immune to Fear ability",
"core.bonus.FEROCITY.name": "Ferocity", "core.bonus.FEROCITY.name" : "Ferocity",
"core.bonus.FEROCITY.description": "Attacks ${val} additional times if killed anybody", "core.bonus.FEROCITY.description" : "Attacks ${val} additional times if killed anybody",
"core.bonus.FLYING.name": "Fly", "core.bonus.FLYING.name" : "Fly",
"core.bonus.FLYING.description": "Flies when moving (ignores obstacles)", "core.bonus.FLYING.description" : "Flies when moving (ignores obstacles)",
"core.bonus.FREE_SHOOTING.name": "Shoot Close", "core.bonus.FREE_SHOOTING.name" : "Shoot Close",
"core.bonus.FREE_SHOOTING.description": "Can use ranged attacks at melee range", "core.bonus.FREE_SHOOTING.description" : "Can use ranged attacks at melee range",
"core.bonus.GARGOYLE.name": "Gargoyle", "core.bonus.GARGOYLE.name" : "Gargoyle",
"core.bonus.GARGOYLE.description": "Cannot be raised or healed", "core.bonus.GARGOYLE.description" : "Cannot be raised or healed",
"core.bonus.GENERAL_DAMAGE_REDUCTION.name": "Reduce Damage (${val}%)", "core.bonus.GENERAL_DAMAGE_REDUCTION.name" : "Reduce Damage (${val}%)",
"core.bonus.GENERAL_DAMAGE_REDUCTION.description": "Reduces physical damage from ranged or melee attacks", "core.bonus.GENERAL_DAMAGE_REDUCTION.description" : "Reduces physical damage from ranged or melee attacks",
"core.bonus.HATE.name": "Hates ${subtype.creature}", "core.bonus.HATE.name" : "Hates ${subtype.creature}",
"core.bonus.HATE.description": "Does ${val}% more damage to ${subtype.creature}", "core.bonus.HATE.description" : "Does ${val}% more damage to ${subtype.creature}",
"core.bonus.HEALER.name": "Healer", "core.bonus.HEALER.name" : "Healer",
"core.bonus.HEALER.description": "Heals allied units", "core.bonus.HEALER.description" : "Heals allied units",
"core.bonus.HP_REGENERATION.name": "Regeneration", "core.bonus.HP_REGENERATION.name" : "Regeneration",
"core.bonus.HP_REGENERATION.description": "Heals ${val} hit points every round", "core.bonus.HP_REGENERATION.description" : "Heals ${val} hit points every round",
"core.bonus.JOUSTING.name": "Champion charge", "core.bonus.JOUSTING.name" : "Champion charge",
"core.bonus.JOUSTING.description": "+${val}% damage for each hex travelled", "core.bonus.JOUSTING.description" : "+${val}% damage for each hex travelled",
"core.bonus.KING.name": "King", "core.bonus.KING.name" : "King",
"core.bonus.KING.description": "Vulnerable to SLAYER level ${val} or higher", "core.bonus.KING.description" : "Vulnerable to SLAYER level ${val} or higher",
"core.bonus.LEVEL_SPELL_IMMUNITY.name": "Spell immunity 1-${val}", "core.bonus.LEVEL_SPELL_IMMUNITY.name" : "Spell immunity 1-${val}",
"core.bonus.LEVEL_SPELL_IMMUNITY.description": "Immune to spells of levels 1-${val}", "core.bonus.LEVEL_SPELL_IMMUNITY.description" : "Immune to spells of levels 1-${val}",
"core.bonus.LIMITED_SHOOTING_RANGE.name" : "Limited shooting range", "core.bonus.LIMITED_SHOOTING_RANGE.name" : "Limited shooting range",
"core.bonus.LIMITED_SHOOTING_RANGE.description" : "Unable to target units farther than ${val} hexes", "core.bonus.LIMITED_SHOOTING_RANGE.description" : "Unable to target units farther than ${val} hexes",
"core.bonus.LIFE_DRAIN.name": "Drain life (${val}%)", "core.bonus.LIFE_DRAIN.name" : "Drain life (${val}%)",
"core.bonus.LIFE_DRAIN.description": "Drains ${val}% of damage dealt", "core.bonus.LIFE_DRAIN.description" : "Drains ${val}% of damage dealt",
"core.bonus.MANA_CHANNELING.name": "Magic Channel ${val}%", "core.bonus.MANA_CHANNELING.name" : "Magic Channel ${val}%",
"core.bonus.MANA_CHANNELING.description": "Gives your hero ${val}% of the mana spent by the enemy", "core.bonus.MANA_CHANNELING.description" : "Gives your hero ${val}% of the mana spent by the enemy",
"core.bonus.MANA_DRAIN.name": "Mana Drain", "core.bonus.MANA_DRAIN.name" : "Mana Drain",
"core.bonus.MANA_DRAIN.description": "Drains ${val} mana every turn", "core.bonus.MANA_DRAIN.description" : "Drains ${val} mana every turn",
"core.bonus.MAGIC_MIRROR.name": "Magic Mirror (${val}%)", "core.bonus.MAGIC_MIRROR.name" : "Magic Mirror (${val}%)",
"core.bonus.MAGIC_MIRROR.description": "Has a ${val}% chance to redirect an offensive spell to an enemy unit", "core.bonus.MAGIC_MIRROR.description" : "Has a ${val}% chance to redirect an offensive spell to an enemy unit",
"core.bonus.MAGIC_RESISTANCE.name": "Magic Resistance (${val}%)", "core.bonus.MAGIC_RESISTANCE.name" : "Magic Resistance (${val}%)",
"core.bonus.MAGIC_RESISTANCE.description": "Has a ${val}% chance to resist an enemy spell", "core.bonus.MAGIC_RESISTANCE.description" : "Has a ${val}% chance to resist an enemy spell",
"core.bonus.MIND_IMMUNITY.name": "Mind Spell Immunity", "core.bonus.MIND_IMMUNITY.name" : "Mind Spell Immunity",
"core.bonus.MIND_IMMUNITY.description": "Immune to Mind-type spells", "core.bonus.MIND_IMMUNITY.description" : "Immune to Mind-type spells",
"core.bonus.NO_DISTANCE_PENALTY.name": "No distance penalty", "core.bonus.NO_DISTANCE_PENALTY.name" : "No distance penalty",
"core.bonus.NO_DISTANCE_PENALTY.description": "Does full damage at any distance", "core.bonus.NO_DISTANCE_PENALTY.description" : "Does full damage at any distance",
"core.bonus.NO_MELEE_PENALTY.name": "No melee penalty", "core.bonus.NO_MELEE_PENALTY.name" : "No melee penalty",
"core.bonus.NO_MELEE_PENALTY.description": "Creature has no Melee Penalty", "core.bonus.NO_MELEE_PENALTY.description" : "Creature has no Melee Penalty",
"core.bonus.NO_MORALE.name": "Neutral Morale", "core.bonus.NO_MORALE.name" : "Neutral Morale",
"core.bonus.NO_MORALE.description": "Creature is immune to morale effects", "core.bonus.NO_MORALE.description" : "Creature is immune to morale effects",
"core.bonus.NO_WALL_PENALTY.name": "No wall penalty", "core.bonus.NO_WALL_PENALTY.name" : "No wall penalty",
"core.bonus.NO_WALL_PENALTY.description": "Full damage during siege", "core.bonus.NO_WALL_PENALTY.description" : "Full damage during siege",
"core.bonus.NON_LIVING.name": "Non living", "core.bonus.NON_LIVING.name" : "Non living",
"core.bonus.NON_LIVING.description": "Immunity to many effects", "core.bonus.NON_LIVING.description" : "Immunity to many effects",
"core.bonus.RANDOM_SPELLCASTER.name": "Random spellcaster", "core.bonus.RANDOM_SPELLCASTER.name" : "Random spellcaster",
"core.bonus.RANDOM_SPELLCASTER.description": "Can cast random spell", "core.bonus.RANDOM_SPELLCASTER.description" : "Can cast random spell",
"core.bonus.RANGED_RETALIATION.name": "Ranged retaliation", "core.bonus.RANGED_RETALIATION.name" : "Ranged retaliation",
"core.bonus.RANGED_RETALIATION.description": "Can perform ranged counterattack", "core.bonus.RANGED_RETALIATION.description" : "Can perform ranged counterattack",
"core.bonus.RECEPTIVE.name": "Receptive", "core.bonus.RECEPTIVE.name" : "Receptive",
"core.bonus.RECEPTIVE.description": "No Immunity to Friendly Spells", "core.bonus.RECEPTIVE.description" : "No Immunity to Friendly Spells",
"core.bonus.REBIRTH.name": "Rebirth (${val}%)", "core.bonus.REBIRTH.name" : "Rebirth (${val}%)",
"core.bonus.REBIRTH.description": "${val}% of stack will rise after death", "core.bonus.REBIRTH.description" : "${val}% of stack will rise after death",
"core.bonus.RETURN_AFTER_STRIKE.name": "Attack and Return", "core.bonus.RETURN_AFTER_STRIKE.name" : "Attack and Return",
"core.bonus.RETURN_AFTER_STRIKE.description": "Returns after melee attack", "core.bonus.RETURN_AFTER_STRIKE.description" : "Returns after melee attack",
"core.bonus.REVENGE.name": "Revenge", "core.bonus.REVENGE.name" : "Revenge",
"core.bonus.REVENGE.description": "Deals extra damage based on attacker's lost health in battle", "core.bonus.REVENGE.description" : "Deals extra damage based on attacker's lost health in battle",
"core.bonus.SHOOTER.name": "Ranged", "core.bonus.SHOOTER.name" : "Ranged",
"core.bonus.SHOOTER.description": "Creature can shoot", "core.bonus.SHOOTER.description" : "Creature can shoot",
"core.bonus.SHOOTS_ALL_ADJACENT.name": "Shoot all around", "core.bonus.SHOOTS_ALL_ADJACENT.name" : "Shoot all around",
"core.bonus.SHOOTS_ALL_ADJACENT.description": "This creature's ranged attacks strike all targets in a small area", "core.bonus.SHOOTS_ALL_ADJACENT.description" : "This creature's ranged attacks strike all targets in a small area",
"core.bonus.SOUL_STEAL.name": "Soul Steal", "core.bonus.SOUL_STEAL.name" : "Soul Steal",
"core.bonus.SOUL_STEAL.description": "Gains ${val} new creatures for each enemy killed", "core.bonus.SOUL_STEAL.description" : "Gains ${val} new creatures for each enemy killed",
"core.bonus.SPELLCASTER.name": "Spellcaster", "core.bonus.SPELLCASTER.name" : "Spellcaster",
"core.bonus.SPELLCASTER.description": "Can cast ${subtype.spell}", "core.bonus.SPELLCASTER.description" : "Can cast ${subtype.spell}",
"core.bonus.SPELL_AFTER_ATTACK.name": "Cast After Attack", "core.bonus.SPELL_AFTER_ATTACK.name" : "Cast After Attack",
"core.bonus.SPELL_AFTER_ATTACK.description": "Has a ${val}% chance to cast ${subtype.spell} after it attacks", "core.bonus.SPELL_AFTER_ATTACK.description" : "Has a ${val}% chance to cast ${subtype.spell} after it attacks",
"core.bonus.SPELL_BEFORE_ATTACK.name": "Cast Before Attack", "core.bonus.SPELL_BEFORE_ATTACK.name" : "Cast Before Attack",
"core.bonus.SPELL_BEFORE_ATTACK.description": "Has a ${val}% chance to cast ${subtype.spell} before it attacks", "core.bonus.SPELL_BEFORE_ATTACK.description" : "Has a ${val}% chance to cast ${subtype.spell} before it attacks",
"core.bonus.SPELL_IMMUNITY.name": "Spell immunity", "core.bonus.SPELL_IMMUNITY.name" : "Spell immunity",
"core.bonus.SPELL_IMMUNITY.description": "Immune to ${subtype.spell}", "core.bonus.SPELL_IMMUNITY.description" : "Immune to ${subtype.spell}",
"core.bonus.SPELL_LIKE_ATTACK.name": "Spell-like attack", "core.bonus.SPELL_LIKE_ATTACK.name" : "Spell-like attack",
"core.bonus.SPELL_LIKE_ATTACK.description": "Attacks with ${subtype.spell}", "core.bonus.SPELL_LIKE_ATTACK.description" : "Attacks with ${subtype.spell}",
"core.bonus.SPELL_RESISTANCE_AURA.name": "Aura of Resistance", "core.bonus.SPELL_RESISTANCE_AURA.name" : "Aura of Resistance",
"core.bonus.SPELL_RESISTANCE_AURA.description": "Nearby stacks get ${val}% magic resistance", "core.bonus.SPELL_RESISTANCE_AURA.description" : "Nearby stacks get ${val}% magic resistance",
"core.bonus.SUMMON_GUARDIANS.name": "Summon guardians", "core.bonus.SUMMON_GUARDIANS.name" : "Summon guardians",
"core.bonus.SUMMON_GUARDIANS.description": "At the start of battle summons ${subtype.creature} (${val}%)", "core.bonus.SUMMON_GUARDIANS.description" : "At the start of battle summons ${subtype.creature} (${val}%)",
"core.bonus.SYNERGY_TARGET.name": "Synergizable", "core.bonus.SYNERGY_TARGET.name" : "Synergizable",
"core.bonus.SYNERGY_TARGET.description": "This creature is vulnerable to synergy effect", "core.bonus.SYNERGY_TARGET.description" : "This creature is vulnerable to synergy effect",
"core.bonus.TWO_HEX_ATTACK_BREATH.name": "Breath", "core.bonus.TWO_HEX_ATTACK_BREATH.name" : "Breath",
"core.bonus.TWO_HEX_ATTACK_BREATH.description": "Breath Attack (2-hex range)", "core.bonus.TWO_HEX_ATTACK_BREATH.description" : "Breath Attack (2-hex range)",
"core.bonus.THREE_HEADED_ATTACK.name": "Three-headed attack", "core.bonus.THREE_HEADED_ATTACK.name" : "Three-headed attack",
"core.bonus.THREE_HEADED_ATTACK.description": "Attacks three adjacent units", "core.bonus.THREE_HEADED_ATTACK.description" : "Attacks three adjacent units",
"core.bonus.TRANSMUTATION.name": "Transmutation", "core.bonus.TRANSMUTATION.name" : "Transmutation",
"core.bonus.TRANSMUTATION.description": "${val}% chance to transform attacked unit to a different type", "core.bonus.TRANSMUTATION.description" : "${val}% chance to transform attacked unit to a different type",
"core.bonus.UNDEAD.name": "Undead", "core.bonus.UNDEAD.name" : "Undead",
"core.bonus.UNDEAD.description": "Creature is Undead", "core.bonus.UNDEAD.description" : "Creature is Undead",
"core.bonus.UNLIMITED_RETALIATIONS.name": "Unlimited retaliations", "core.bonus.UNLIMITED_RETALIATIONS.name" : "Unlimited retaliations",
"core.bonus.UNLIMITED_RETALIATIONS.description": "Can retaliate against an unlimited number of attacks", "core.bonus.UNLIMITED_RETALIATIONS.description" : "Can retaliate against an unlimited number of attacks",
"core.bonus.WATER_IMMUNITY.name": "Water immunity", "core.bonus.WATER_IMMUNITY.name" : "Water immunity",
"core.bonus.WATER_IMMUNITY.description": "Immune to all spells from the school of Water magic", "core.bonus.WATER_IMMUNITY.description" : "Immune to all spells from the school of Water magic",
"core.bonus.WIDE_BREATH.name": "Wide breath", "core.bonus.WIDE_BREATH.name" : "Wide breath",
"core.bonus.WIDE_BREATH.description": "Wide breath attack (multiple hexes)", "core.bonus.WIDE_BREATH.description" : "Wide breath attack (multiple hexes)",
"core.bonus.DISINTEGRATE.name": "Disintegrate", "core.bonus.DISINTEGRATE.name" : "Disintegrate",
"core.bonus.DISINTEGRATE.description": "No corpse remains after death", "core.bonus.DISINTEGRATE.description" : "No corpse remains after death",
"core.bonus.INVINCIBLE.name": "Invincible", "core.bonus.INVINCIBLE.name" : "Invincible",
"core.bonus.INVINCIBLE.description": "Cannot be affected by anything", "core.bonus.INVINCIBLE.description" : "Cannot be affected by anything",
"core.bonus.MECHANICAL.name": "Mechanical", "core.bonus.MECHANICAL.name" : "Mechanical",
"core.bonus.MECHANICAL.description": "Immunity to many effects, repairable", "core.bonus.MECHANICAL.description" : "Immunity to many effects, repairable",
"core.bonus.PRISM_HEX_ATTACK_BREATH.name": "Prism Breath", "core.bonus.PRISM_HEX_ATTACK_BREATH.name" : "Prism Breath",
"core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prism Breath Attack (three directions)", "core.bonus.PRISM_HEX_ATTACK_BREATH.description" : "Prism Breath Attack (three directions)",
"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Spell Resistance", "core.bonus.SPELL_DAMAGE_REDUCTION.name" : "Spell Resistance",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Air Spells Resistance", "core.bonus.SPELL_DAMAGE_REDUCTION.name.air" : "Air Spells Resistance",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Fire Spells Resistance", "core.bonus.SPELL_DAMAGE_REDUCTION.name.fire" : "Fire Spells Resistance",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.water": "Water Spells Resistance", "core.bonus.SPELL_DAMAGE_REDUCTION.name.water" : "Water Spells Resistance",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.earth": "Earth Spells Resistance", "core.bonus.SPELL_DAMAGE_REDUCTION.name.earth" : "Earth Spells Resistance",
"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Damage from all spells reduced by ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description" : "Damage from all spells reduced by ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.air": "Damage from all Air spells reduced by ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.air" : "Damage from all Air spells reduced by ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Damage from all Fire spells reduced by ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.fire" : "Damage from all Fire spells reduced by ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Damage from all Water spells reduced by ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.water" : "Damage from all Water spells reduced by ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Damage from all Earth spells reduced by ${val}%.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.earth" : "Damage from all Earth spells reduced by ${val}%.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Spell immunity", "core.bonus.SPELL_SCHOOL_IMMUNITY.name" : "Spell immunity",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Air immunity", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.air" : "Air immunity",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Fire immunity", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire" : "Fire immunity",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Water immunity", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.water" : "Water immunity",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Earth immunity", "core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth" : "Earth immunity",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "This unit is immune to all spells", "core.bonus.SPELL_SCHOOL_IMMUNITY.description" : "This unit is immune to all spells",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "This unit is immune to all Air school spells", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.air" : "This unit is immune to all Air school spells",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "This unit is immune to all Fire school spells", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire" : "This unit is immune to all Fire school spells",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "This unit is immune to all Water school spells", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.water" : "This unit is immune to all Water school spells",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "This unit is immune to all Earth school spells", "core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth" : "This unit is immune to all Earth school spells",
"core.bonus.OPENING_BATTLE_SPELL.name": "Starts with spell", "core.bonus.OPENING_BATTLE_SPELL.name" : "Starts with spell",
"core.bonus.OPENING_BATTLE_SPELL.description": "Casts ${subtype.spell} on battle start", "core.bonus.OPENING_BATTLE_SPELL.description" : "Casts ${subtype.spell} on battle start",
"spell.core.castleMoat.name" : "Moat", "spell.core.castleMoat.name" : "Moat",
"spell.core.castleMoatTrigger.name" : "Moat", "spell.core.castleMoatTrigger.name" : "Moat",

View File

@ -0,0 +1,3 @@
{
}

View File

@ -18,8 +18,6 @@
"vcmi.adventureMap.noTownWithTavern" : "Il n'y a pas de villes disponibles avec des tavernes !", "vcmi.adventureMap.noTownWithTavern" : "Il n'y a pas de villes disponibles avec des tavernes !",
"vcmi.adventureMap.spellUnknownProblem" : "Il y a un problème inconnu avec ce sort ! Pas plus d'informations sont disponibles.", "vcmi.adventureMap.spellUnknownProblem" : "Il y a un problème inconnu avec ce sort ! Pas plus d'informations sont disponibles.",
"vcmi.adventureMap.playerAttacked" : "Le joueur a été attaqué : %s", "vcmi.adventureMap.playerAttacked" : "Le joueur a été attaqué : %s",
"vcmi.adventureMap.moveCostDetails" : "Points de mouvement - Coût : %TURNS tours + %POINTS points, Points restants : %REMAINING",
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Points de mouvement - Coût : %POINTS points, Points restants : %REMAINING",
"vcmi.capitalColors.0" : "Rouge", "vcmi.capitalColors.0" : "Rouge",
"vcmi.capitalColors.1" : "Bleu", "vcmi.capitalColors.1" : "Bleu",

View File

@ -23,16 +23,16 @@
"vcmi.adventureMap.noTownWithTavern" : "Keine Stadt mit Taverne verfügbar!", "vcmi.adventureMap.noTownWithTavern" : "Keine Stadt mit Taverne verfügbar!",
"vcmi.adventureMap.spellUnknownProblem" : "Unbekanntes Problem mit diesem Zauberspruch, keine weiteren Informationen verfügbar.", "vcmi.adventureMap.spellUnknownProblem" : "Unbekanntes Problem mit diesem Zauberspruch, keine weiteren Informationen verfügbar.",
"vcmi.adventureMap.playerAttacked" : "Spieler wurde attackiert: %s", "vcmi.adventureMap.playerAttacked" : "Spieler wurde attackiert: %s",
"vcmi.adventureMap.moveCostDetails" : "Bewegungspunkte - Kosten: %TURNS Runden + %POINTS Punkte, Verbleibende Punkte: %REMAINING", "vcmi.adventureMap.moveCostDetails" : "Eine Bewegung hierher kostet insgesamt {%TOTAL} Punkte ({%TURNS} Runden und {%POINTS} Punkte). Nach der Bewegung bleiben {%REMAINING} Punkte übrig.",
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Bewegungspunkte - Kosten: %POINTS Punkte, Verbleibende Punkte: %REMAINING", "vcmi.adventureMap.moveCostDetailsNoTurns" : "Eine Bewegung hierher kostet {%POINTS} Punkte. Nach der Bewegung bleiben {%REMAINING} Punkte übrig.",
"vcmi.adventureMap.movementPointsHeroInfo" : "(Bewegungspunkte: %REMAINING / %POINTS)", "vcmi.adventureMap.movementPointsHeroInfo" : "(Bewegungspunkte: %REMAINING / %POINTS)",
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Das Wiederholen des gegnerischen Zuges ist aktuell noch nicht implementiert!", "vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Das Wiederholen des gegnerischen Zuges ist aktuell noch nicht implementiert!",
"vcmi.bonusSource.artifact" : "Artefakt", "vcmi.bonusSource.artifact" : "Artefakt",
"vcmi.bonusSource.creature" : "Fähigkeit", "vcmi.bonusSource.creature" : "Fähigkeit",
"vcmi.bonusSource.spell" : "Zauber", "vcmi.bonusSource.spell" : "Zauber",
"vcmi.bonusSource.hero" : "Held", "vcmi.bonusSource.hero" : "Held",
"vcmi.bonusSource.commander" : "Commander", "vcmi.bonusSource.commander" : "Command.",
"vcmi.bonusSource.other" : "Anderes", "vcmi.bonusSource.other" : "Anderes",
"vcmi.capitalColors.0" : "Rot", "vcmi.capitalColors.0" : "Rot",
@ -68,6 +68,7 @@
"vcmi.radialWheel.heroGetArtifacts" : "Artefakte von anderen Helden erhalten", "vcmi.radialWheel.heroGetArtifacts" : "Artefakte von anderen Helden erhalten",
"vcmi.radialWheel.heroSwapArtifacts" : "Tausche Artefakte mit anderen Helden", "vcmi.radialWheel.heroSwapArtifacts" : "Tausche Artefakte mit anderen Helden",
"vcmi.radialWheel.heroDismiss" : "Held entlassen", "vcmi.radialWheel.heroDismiss" : "Held entlassen",
"vcmi.radialWheel.upgradeCreatures" : "Alle Kreaturen aufrüsten",
"vcmi.radialWheel.moveTop" : "Ganz nach oben bewegen", "vcmi.radialWheel.moveTop" : "Ganz nach oben bewegen",
"vcmi.radialWheel.moveUp" : "Nach oben bewegen", "vcmi.radialWheel.moveUp" : "Nach oben bewegen",
@ -177,7 +178,8 @@
"vcmi.lobby.match.solo" : "Einzelspieler-Spiel", "vcmi.lobby.match.solo" : "Einzelspieler-Spiel",
"vcmi.lobby.match.duel" : "Spiel mit %s", // %s -> nickname of another player "vcmi.lobby.match.duel" : "Spiel mit %s", // %s -> nickname of another player
"vcmi.lobby.match.multi" : "%d Spieler", "vcmi.lobby.match.multi" : "%d Spieler",
"vcmi.lobby.room.create" : "Neuen Spiel-Raum erstellen", "vcmi.lobby.room.create.hover" : "Neuen Spiel-Raum erstellen",
"vcmi.lobby.room.create.help" : "Erstelle einen neuen Raum in der Online-Lobby, dem andere Spieler beitreten können.",
"vcmi.lobby.room.players.limit" : "Spieler Limit", "vcmi.lobby.room.players.limit" : "Spieler Limit",
"vcmi.lobby.room.description.public" : "Jeder Spieler kann dem öffentlichen Raum beitreten.", "vcmi.lobby.room.description.public" : "Jeder Spieler kann dem öffentlichen Raum beitreten.",
"vcmi.lobby.room.description.private" : "Nur eingeladene Spieler können den privaten Raum betreten.", "vcmi.lobby.room.description.private" : "Nur eingeladene Spieler können den privaten Raum betreten.",
@ -200,6 +202,8 @@
"vcmi.lobby.preview.error.mods" : "Ihr verwendet andere Mods.", "vcmi.lobby.preview.error.mods" : "Ihr verwendet andere Mods.",
"vcmi.lobby.preview.error.version" : "Ihr verwendet eine andere Version von VCMI.", "vcmi.lobby.preview.error.version" : "Ihr verwendet eine andere Version von VCMI.",
"vcmi.lobby.channel.add" : "Kanal hinzufügen", "vcmi.lobby.channel.add" : "Kanal hinzufügen",
"vcmi.lobby.channel.sendMessage.hover" : "Nachricht senden",
"vcmi.lobby.channel.sendMessage.help" : "Nachricht senden",
"vcmi.lobby.room.new" : "Neues Spiel", "vcmi.lobby.room.new" : "Neues Spiel",
"vcmi.lobby.room.load" : "Spiel laden", "vcmi.lobby.room.load" : "Spiel laden",
"vcmi.lobby.room.type" : "Raumtyp", "vcmi.lobby.room.type" : "Raumtyp",
@ -306,6 +310,8 @@
"vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Großes Zauberbuch}\n\nErmöglicht ein größeres Zauberbuch, in das mehr Zaubersprüche pro Seite passen. Die Animation des Seitenwechsels im Zauberbuch funktioniert nicht, wenn diese Einstellung aktiviert ist.", "vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Großes Zauberbuch}\n\nErmöglicht ein größeres Zauberbuch, in das mehr Zaubersprüche pro Seite passen. Die Animation des Seitenwechsels im Zauberbuch funktioniert nicht, wenn diese Einstellung aktiviert ist.",
"vcmi.systemOptions.audioMuteFocus.hover" : "Stumm bei Inaktivität", "vcmi.systemOptions.audioMuteFocus.hover" : "Stumm bei Inaktivität",
"vcmi.systemOptions.audioMuteFocus.help" : "{Stumm bei Inaktivität}\n\nSchaltet Audio bei inaktiven Fenster-Fokus stumm. Ausnahmen sind Ingame-Nachrichten und der Neuer-Zug-Sound.", "vcmi.systemOptions.audioMuteFocus.help" : "{Stumm bei Inaktivität}\n\nSchaltet Audio bei inaktiven Fenster-Fokus stumm. Ausnahmen sind Ingame-Nachrichten und der Neuer-Zug-Sound.",
"vcmi.systemOptions.enableOverlayButton.hover" : "Overlay aktivieren",
"vcmi.systemOptions.enableOverlayButton.help" : "{Overlay aktivieren}\n\nAktiviere Overlays, die zusätzliche Infos, wie Gebäudenamen anzeigen, wenn die ALT-Taste gedrückt oder die Zwei-Finger-Geste genutzt wird.",
"vcmi.adventureOptions.infoBarPick.hover" : "Meldungen im Infobereich anzeigen", "vcmi.adventureOptions.infoBarPick.hover" : "Meldungen im Infobereich anzeigen",
"vcmi.adventureOptions.infoBarPick.help" : "{Meldungen im Infobereich anzeigen}\n\nWann immer möglich, werden Spielnachrichten von besuchten Kartenobjekten in der Infoleiste angezeigt, anstatt als Popup-Fenster zu erscheinen", "vcmi.adventureOptions.infoBarPick.help" : "{Meldungen im Infobereich anzeigen}\n\nWann immer möglich, werden Spielnachrichten von besuchten Kartenobjekten in der Infoleiste angezeigt, anstatt als Popup-Fenster zu erscheinen",
@ -363,6 +369,8 @@
"vcmi.battleOptions.endWithAutocombat.help": "{Kampf beenden}\n\nAutokampf spielt den Kampf sofort zu Ende", "vcmi.battleOptions.endWithAutocombat.help": "{Kampf beenden}\n\nAutokampf spielt den Kampf sofort zu Ende",
"vcmi.battleOptions.showQuickSpell.hover": "Schnellzauber-Panel anzeigen", "vcmi.battleOptions.showQuickSpell.hover": "Schnellzauber-Panel anzeigen",
"vcmi.battleOptions.showQuickSpell.help": "{Schnellzauber-Panel anzeigen}\n\nZeigt ein Panel, auf dem schnell Zauber ausgewählt werden können", "vcmi.battleOptions.showQuickSpell.help": "{Schnellzauber-Panel anzeigen}\n\nZeigt ein Panel, auf dem schnell Zauber ausgewählt werden können",
"vcmi.battleOptions.showHealthBar.hover": "Gesundheits-Balken anzeigen",
"vcmi.battleOptions.showHealthBar.help": "{Gesundheits-Balken anzeigen}\n\nAnzeige eines Gesundheitsbalkens, der die verbleibende Gesundheit anzeigt, bevor eine Einheit stirbt.",
"vcmi.adventureMap.revisitObject.hover" : "Objekt erneut besuchen", "vcmi.adventureMap.revisitObject.hover" : "Objekt erneut besuchen",
"vcmi.adventureMap.revisitObject.help" : "{Objekt erneut besuchen}\n\nSteht ein Held gerade auf einem Kartenobjekt, kann er den Ort erneut aufsuchen.", "vcmi.adventureMap.revisitObject.help" : "{Objekt erneut besuchen}\n\nSteht ein Held gerade auf einem Kartenobjekt, kann er den Ort erneut aufsuchen.",
@ -415,6 +423,9 @@
"vcmi.townStructure.bank.borrow" : "Ihr betretet die Bank. Ein Bankangestellter sieht Euch und sagt: \"Wir haben ein spezielles Angebot für Euch gemacht. Ihr könnt bei uns einen Kredit von 2500 Gold für 5 Tage aufnehmen. Ihr werdet jeden Tag 500 Gold zurückzahlen müssen.\"", "vcmi.townStructure.bank.borrow" : "Ihr betretet die Bank. Ein Bankangestellter sieht Euch und sagt: \"Wir haben ein spezielles Angebot für Euch gemacht. Ihr könnt bei uns einen Kredit von 2500 Gold für 5 Tage aufnehmen. Ihr werdet jeden Tag 500 Gold zurückzahlen müssen.\"",
"vcmi.townStructure.bank.payBack" : "Ihr betretet die Bank. Ein Bankangestellter sieht Euch und sagt: \"Ihr habt Euren Kredit bereits erhalten. Zahlt Ihn ihn zurück, bevor Ihr einen neuen aufnehmt.\"", "vcmi.townStructure.bank.payBack" : "Ihr betretet die Bank. Ein Bankangestellter sieht Euch und sagt: \"Ihr habt Euren Kredit bereits erhalten. Zahlt Ihn ihn zurück, bevor Ihr einen neuen aufnehmt.\"",
"vcmi.townWindow.upgradeAll.notAllUpgradable" : "Nicht genügend Ressourcen um alle Kreaturen aufzurüsten. Folgende Kreaturen aufrüsten?",
"vcmi.townWindow.upgradeAll.notUpgradable" : "Nicht genügend Ressourcen um mindestens eine Kreatur aufzurüsten.",
"vcmi.logicalExpressions.anyOf" : "Eines der folgenden:", "vcmi.logicalExpressions.anyOf" : "Eines der folgenden:",
"vcmi.logicalExpressions.allOf" : "Alles der folgenden:", "vcmi.logicalExpressions.allOf" : "Alles der folgenden:",
"vcmi.logicalExpressions.noneOf" : "Keines der folgenden:", "vcmi.logicalExpressions.noneOf" : "Keines der folgenden:",
@ -424,11 +435,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Artefakt-Rucksack-Fenster öffnen", "vcmi.heroWindow.openBackpack.hover" : "Artefakt-Rucksack-Fenster öffnen",
"vcmi.heroWindow.openBackpack.help" : "Öffnet ein Fenster, das die Verwaltung des Artefakt-Rucksacks erleichtert", "vcmi.heroWindow.openBackpack.help" : "Öffnet ein Fenster, das die Verwaltung des Artefakt-Rucksacks erleichtert",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Nach Kosten sortieren", "vcmi.heroWindow.sortBackpackByCost.hover" : "Nach Kosten sortieren",
"vcmi.heroWindow.sortBackpackByCost.help" : "Artefakte im Rucksack nach Kosten sortieren.", "vcmi.heroWindow.sortBackpackByCost.help" : "{Nach Kosten sortieren}\n\nArtefakte im Rucksack nach Kosten sortieren.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Nach Slot sortieren", "vcmi.heroWindow.sortBackpackBySlot.hover" : "Nach Slot sortieren",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Artefakte im Rucksack nach Ausrüstungsslot sortieren.", "vcmi.heroWindow.sortBackpackBySlot.help" : "{Nach Slot sortieren}\n\nArtefakte im Rucksack nach Ausrüstungsslot sortieren.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Nach Klasse sortieren", "vcmi.heroWindow.sortBackpackByClass.hover" : "Nach Klasse sortieren",
"vcmi.heroWindow.sortBackpackByClass.help" : "Artefakte im Rucksack nach Artefaktklasse sortieren. Schatz, Klein, Groß, Relikt", "vcmi.heroWindow.sortBackpackByClass.help" : "{Nach Klasse sortieren}\n\nArtefakte im Rucksack nach Artefaktklasse sortieren. Schatz, Klein, Groß, Relikt",
"vcmi.heroWindow.fusingArtifact.fusing" : "Ihr verfügt über alle Komponenten, die für die Fusion der %s benötigt werden. Möchtet Ihr die Verschmelzung durchführen? {Alle Komponenten werden bei der Fusion verbraucht.}", "vcmi.heroWindow.fusingArtifact.fusing" : "Ihr verfügt über alle Komponenten, die für die Fusion der %s benötigt werden. Möchtet Ihr die Verschmelzung durchführen? {Alle Komponenten werden bei der Fusion verbraucht.}",
"vcmi.tavernWindow.inviteHero" : "Helden einladen", "vcmi.tavernWindow.inviteHero" : "Helden einladen",
@ -608,7 +619,7 @@
"core.seerhut.quest.reachDate.visit.5" : "Geschlossen bis %s.", "core.seerhut.quest.reachDate.visit.5" : "Geschlossen bis %s.",
"mapObject.core.hillFort.object.description" : "Aufwertungen von Kreaturen. Die Stufen 1 - 4 sind billiger als in der zugehörigen Stadt.", "mapObject.core.hillFort.object.description" : "Aufwertungen von Kreaturen. Die Stufen 1 - 4 sind billiger als in der zugehörigen Stadt.",
"core.bonus.ADDITIONAL_ATTACK.name": "Doppelschlag", "core.bonus.ADDITIONAL_ATTACK.name": "Doppelschlag",
"core.bonus.ADDITIONAL_ATTACK.description": "Greift zweimal an", "core.bonus.ADDITIONAL_ATTACK.description": "Greift zweimal an",
"core.bonus.ADDITIONAL_RETALIATION.name": "Zusätzliche Vergeltungsmaßnahmen", "core.bonus.ADDITIONAL_RETALIATION.name": "Zusätzliche Vergeltungsmaßnahmen",
@ -763,16 +774,6 @@
"core.bonus.MECHANICAL.description": "Immunität gegen viele Effekte, reparierbar", "core.bonus.MECHANICAL.description": "Immunität gegen viele Effekte, reparierbar",
"core.bonus.PRISM_HEX_ATTACK_BREATH.name": "Prisma-Atem", "core.bonus.PRISM_HEX_ATTACK_BREATH.name": "Prisma-Atem",
"core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prisma-Atem-Angriff (drei Richtungen)", "core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prisma-Atem-Angriff (drei Richtungen)",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Zauber-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Immunität gegen alle Zauber-Schulen",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Luft-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Feuer-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Wasser-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Erde-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "Immunität gegen Zauber der Luft-Schule",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "Immunität gegen Zauber der Feuer-Schule",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "Immunität gegen Zauber der Wasser-Schule",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "Immunität gegen Zauber der Erde-Schule",
"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Zauberwiderstand", "core.bonus.SPELL_DAMAGE_REDUCTION.name": "Zauberwiderstand",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Luft-Zauberwiderstand", "core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Luft-Zauberwiderstand",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Feuer-Zauberwiderstand", "core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Feuer-Zauberwiderstand",
@ -783,6 +784,38 @@
"core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Schaden von Feuer-Zaubern um ${val}% reduziert.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Schaden von Feuer-Zaubern um ${val}% reduziert.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Schaden von Wasser-Zaubern um ${val}% reduziert.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Schaden von Wasser-Zaubern um ${val}% reduziert.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Schaden von Erde-Zaubern um ${val}% reduziert.", "core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Schaden von Erde-Zaubern um ${val}% reduziert.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Zauber-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Luft-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Feuer-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Wasser-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Erde-Immunität",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Immunität gegen alle Zauber-Schulen",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "Immunität gegen Zauber der Luft-Schule",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "Immunität gegen Zauber der Feuer-Schule",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "Immunität gegen Zauber der Wasser-Schule",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "Immunität gegen Zauber der Erde-Schule",
"core.bonus.OPENING_BATTLE_SPELL.name": "Startet mit Zauber", "core.bonus.OPENING_BATTLE_SPELL.name": "Startet mit Zauber",
"core.bonus.OPENING_BATTLE_SPELL.description": "Wirkt ${subtype.spell} beim Start des Kampfes" "core.bonus.OPENING_BATTLE_SPELL.description": "Wirkt ${subtype.spell} beim Start des Kampfes",
"spell.core.castleMoat.name" : "Graben",
"spell.core.castleMoatTrigger.name" : "Graben",
"spell.core.catapultShot.name" : "Katapultschuss",
"spell.core.cyclopsShot.name" : "Belagerungsschuss",
"spell.core.dungeonMoat.name" : "Siedeöl",
"spell.core.dungeonMoatTrigger.name" : "Siedeöl",
"spell.core.fireWallTrigger.name" : "Feuerwand",
"spell.core.firstAid.name" : "Erste Hilfe",
"spell.core.fortressMoat.name" : "Siedender Teer",
"spell.core.fortressMoatTrigger.name" : "Siedender Teer",
"spell.core.infernoMoat.name" : "Lava",
"spell.core.infernoMoatTrigger.name" : "Lava",
"spell.core.landMineTrigger.name" : "Landmine",
"spell.core.necropolisMoat.name" : "Knochenplatz",
"spell.core.necropolisMoatTrigger.name" : "Knochenplatz",
"spell.core.rampartMoat.name" : "Brombeeren",
"spell.core.rampartMoatTrigger.name" : "Brombeeren",
"spell.core.strongholdMoat.name" : "Holzspieße",
"spell.core.strongholdMoatTrigger.name" : "Holzspieße",
"spell.core.summonDemons.name" : "Dämonen beschwören",
"spell.core.towerMoat.name" : "Landmine"
} }

View File

@ -0,0 +1,3 @@
{
}

View File

@ -23,8 +23,6 @@
"vcmi.adventureMap.noTownWithTavern" : "Nincsenek elérhető kocsmával rendelkező városok!", "vcmi.adventureMap.noTownWithTavern" : "Nincsenek elérhető kocsmával rendelkező városok!",
"vcmi.adventureMap.spellUnknownProblem" : "Ismeretlen probléma van ezzel a varázslattal! További információ nem érhető el.", "vcmi.adventureMap.spellUnknownProblem" : "Ismeretlen probléma van ezzel a varázslattal! További információ nem érhető el.",
"vcmi.adventureMap.playerAttacked" : "A játékost megtámadták: %s", "vcmi.adventureMap.playerAttacked" : "A játékost megtámadták: %s",
"vcmi.adventureMap.moveCostDetails" : "Mozgáspontok - Költség: %TURNS kör + %POINTS pont, Hátralévő pontok: %REMAINING",
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Mozgáspontok - Költség: %POINTS pont, Hátralévő pontok: %REMAINING",
"vcmi.adventureMap.movementPointsHeroInfo" : "(Mozgáspontok: %REMAINING / %POINTS)", "vcmi.adventureMap.movementPointsHeroInfo" : "(Mozgáspontok: %REMAINING / %POINTS)",
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Sajnáljuk, az ellenfél körének visszajátszása még nincs megvalósítva!", "vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Sajnáljuk, az ellenfél körének visszajátszása még nincs megvalósítva!",
@ -177,7 +175,7 @@
"vcmi.lobby.match.solo" : "Egyszemélyes játék", "vcmi.lobby.match.solo" : "Egyszemélyes játék",
"vcmi.lobby.match.duel" : "Játék %s-szel", // %s -> nickname of another player "vcmi.lobby.match.duel" : "Játék %s-szel", // %s -> nickname of another player
"vcmi.lobby.match.multi" : "%d játékos", "vcmi.lobby.match.multi" : "%d játékos",
"vcmi.lobby.room.create" : "Új szoba létrehozása", "vcmi.lobby.room.create.hover" : "Új szoba létrehozása",
"vcmi.lobby.room.players.limit" : "Játékosok száma", "vcmi.lobby.room.players.limit" : "Játékosok száma",
"vcmi.lobby.room.description.public" : "Bárki csatlakozhat a nyilvános szobához.", "vcmi.lobby.room.description.public" : "Bárki csatlakozhat a nyilvános szobához.",
"vcmi.lobby.room.description.private" : "Csak meghívott játékosok csatlakozhatnak a privát szobához.", "vcmi.lobby.room.description.private" : "Csak meghívott játékosok csatlakozhatnak a privát szobához.",
@ -424,11 +422,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Műtárgy hátizsák ablak megnyitása", "vcmi.heroWindow.openBackpack.hover" : "Műtárgy hátizsák ablak megnyitása",
"vcmi.heroWindow.openBackpack.help" : "Az ablak megnyitása, amely megkönnyíti a műtárgy hátizsák kezelését.", "vcmi.heroWindow.openBackpack.help" : "Az ablak megnyitása, amely megkönnyíti a műtárgy hátizsák kezelését.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Rendezés ár szerint", "vcmi.heroWindow.sortBackpackByCost.hover" : "Rendezés ár szerint",
"vcmi.heroWindow.sortBackpackByCost.help" : "A műtárgyak ár szerinti rendezése a hátizsákban.", "vcmi.heroWindow.sortBackpackByCost.help" : "{Rendezés ár szerint}\n\nA műtárgyak ár szerinti rendezése a hátizsákban.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Rendezés nyílás szerint", "vcmi.heroWindow.sortBackpackBySlot.hover" : "Rendezés nyílás szerint",
"vcmi.heroWindow.sortBackpackBySlot.help" : "A műtárgyak nyílás szerinti rendezése a hátizsákban.", "vcmi.heroWindow.sortBackpackBySlot.help" : "{Rendezés nyílás szerint}\n\nA műtárgyak nyílás szerinti rendezése a hátizsákban.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Rendezés osztály szerint", "vcmi.heroWindow.sortBackpackByClass.hover" : "Rendezés osztály szerint",
"vcmi.heroWindow.sortBackpackByClass.help" : "A műtárgyak osztály szerinti rendezése a hátizsákban. Kincs, Kisebb, Nagyobb, Relikvia", "vcmi.heroWindow.sortBackpackByClass.help" : "{Rendezés osztály szerint}\n\nA műtárgyak osztály szerinti rendezése a hátizsákban. Kincs, Kisebb, Nagyobb, Relikvia",
"vcmi.heroWindow.fusingArtifact.fusing" : "Ön birtokában van az összes szükséges komponensnek a(z) %s összeolvasztásához. Szeretné elvégezni az összeolvasztást? {Minden komponens elfogy az összeolvasztás során.}", "vcmi.heroWindow.fusingArtifact.fusing" : "Ön birtokában van az összes szükséges komponensnek a(z) %s összeolvasztásához. Szeretné elvégezni az összeolvasztást? {Minden komponens elfogy az összeolvasztás során.}",
"vcmi.tavernWindow.inviteHero" : "Hős meghívása", "vcmi.tavernWindow.inviteHero" : "Hős meghívása",

View File

@ -0,0 +1,809 @@
{
"vcmi.adventureMap.monsterThreat.title" : "\n\nMinaccia: ",
"vcmi.adventureMap.monsterThreat.levels.0" : "Facile",
"vcmi.adventureMap.monsterThreat.levels.1" : "Molto Debole",
"vcmi.adventureMap.monsterThreat.levels.2" : "Debole",
"vcmi.adventureMap.monsterThreat.levels.3" : "Un po' più debole",
"vcmi.adventureMap.monsterThreat.levels.4" : "Uguale",
"vcmi.adventureMap.monsterThreat.levels.5" : "Un po' più forte",
"vcmi.adventureMap.monsterThreat.levels.6" : "Forte",
"vcmi.adventureMap.monsterThreat.levels.7" : "Molto Forte",
"vcmi.adventureMap.monsterThreat.levels.8" : "Difficile",
"vcmi.adventureMap.monsterThreat.levels.9" : "Schiacciante",
"vcmi.adventureMap.monsterThreat.levels.10" : "Mortale",
"vcmi.adventureMap.monsterThreat.levels.11" : "Impossibile",
"vcmi.adventureMap.monsterLevel" : "\n\nUnità di livello %LEVEL %TOWN %ATTACK_TYPE",
"vcmi.adventureMap.monsterMeleeType" : "corpo a corpo",
"vcmi.adventureMap.monsterRangedType" : "a distanza",
"vcmi.adventureMap.search.hover" : "Cerca oggetto sulla mappa",
"vcmi.adventureMap.search.help" : "Seleziona un oggetto da cercare sulla mappa.",
"vcmi.adventureMap.confirmRestartGame" : "Sei sicuro di voler riavviare il gioco?",
"vcmi.adventureMap.noTownWithMarket" : "Non ci sono mercati disponibili!",
"vcmi.adventureMap.noTownWithTavern" : "Non ci sono città disponibili con taverne!",
"vcmi.adventureMap.spellUnknownProblem" : "C'è un problema sconosciuto con questo incantesimo! Nessuna informazione aggiuntiva disponibile.",
"vcmi.adventureMap.playerAttacked" : "Il giocatore è stato attaccato: %s",
"vcmi.adventureMap.moveCostDetails" : "Punti movimento - Costo: %TURNS turni + %POINTS punti, Punti rimanenti: %REMAINING",
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Punti movimento - Costo: %POINTS punti, Punti rimanenti: %REMAINING",
"vcmi.adventureMap.movementPointsHeroInfo" : "(Punti movimento: %REMAINING / %POINTS)",
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Spiacente, la riproduzione del turno avversario non è ancora implementata!",
"vcmi.bonusSource.artifact" : "Artefatto",
"vcmi.bonusSource.creature" : "Abilità",
"vcmi.bonusSource.spell" : "Incantesimo",
"vcmi.bonusSource.hero" : "Eroe",
"vcmi.bonusSource.commander" : "Comandante",
"vcmi.bonusSource.other" : "Altro",
"vcmi.capitalColors.0" : "Rosso",
"vcmi.capitalColors.1" : "Blu",
"vcmi.capitalColors.2" : "Marrone",
"vcmi.capitalColors.3" : "Verde",
"vcmi.capitalColors.4" : "Arancione",
"vcmi.capitalColors.5" : "Viola",
"vcmi.capitalColors.6" : "Turchese",
"vcmi.capitalColors.7" : "Rosa",
"vcmi.heroOverview.startingArmy" : "Unità Iniziali",
"vcmi.heroOverview.warMachine" : "Macchine da Guerra",
"vcmi.heroOverview.secondarySkills" : "Abilità Secondarie",
"vcmi.heroOverview.spells" : "Incantesimi",
"vcmi.quickExchange.moveUnit" : "Sposta Unità",
"vcmi.quickExchange.moveAllUnits" : "Sposta Tutte le Unità",
"vcmi.quickExchange.swapAllUnits" : "Scambia Eserciti",
"vcmi.quickExchange.moveAllArtifacts" : "Sposta Tutti gli Artefatti",
"vcmi.quickExchange.swapAllArtifacts" : "Scambia Artefatti",
"vcmi.radialWheel.mergeSameUnit" : "Unisci creature dello stesso tipo",
"vcmi.radialWheel.fillSingleUnit" : "Riempi con creature singole",
"vcmi.radialWheel.splitSingleUnit" : "Dividi una singola creatura",
"vcmi.radialWheel.splitUnitEqually" : "Dividi equamente le creature",
"vcmi.radialWheel.moveUnit" : "Sposta creature in un altro esercito",
"vcmi.radialWheel.splitUnit" : "Dividi creatura in un altro slot",
"vcmi.radialWheel.heroGetArmy" : "Prendi l'esercito da un altro eroe",
"vcmi.radialWheel.heroSwapArmy" : "Scambia l'esercito con un altro eroe",
"vcmi.radialWheel.heroExchange" : "Apri scambio eroe",
"vcmi.radialWheel.heroGetArtifacts" : "Prendi artefatti da un altro eroe",
"vcmi.radialWheel.heroSwapArtifacts" : "Scambia artefatti con un altro eroe",
"vcmi.radialWheel.heroDismiss" : "Congeda l'eroe",
"vcmi.radialWheel.moveTop" : "Sposta in alto",
"vcmi.radialWheel.moveUp" : "Sposta su",
"vcmi.radialWheel.moveDown" : "Sposta giù",
"vcmi.radialWheel.moveBottom" : "Sposta in basso",
"vcmi.randomMap.description" : "Mappa creata dal Generatore di Mappe Casuali.\nIl modello era %s, dimensione %dx%d, livelli %d, giocatori %d, computer %d, acqua %s, mostri %s, mappa VCMI",
"vcmi.randomMap.description.isHuman" : ", %s è un umano",
"vcmi.randomMap.description.townChoice" : ", la scelta della città di %s è %s",
"vcmi.randomMap.description.water.none" : "nessuna",
"vcmi.randomMap.description.water.normal" : "normale",
"vcmi.randomMap.description.water.islands" : "isole",
"vcmi.randomMap.description.monster.weak" : "debole",
"vcmi.randomMap.description.monster.normal" : "normale",
"vcmi.randomMap.description.monster.strong" : "forte",
"vcmi.spellBook.search" : "cerca...",
"vcmi.spellResearch.canNotAfford" : "Non puoi permetterti di sostituire {%SPELL1} con {%SPELL2}. Ma puoi comunque scartare questo incantesimo e continuare la ricerca.",
"vcmi.spellResearch.comeAgain" : "La ricerca è già stata fatta oggi. Torna domani.",
"vcmi.spellResearch.pay" : "Vuoi sostituire {%SPELL1} con {%SPELL2}? Oppure scartare questo incantesimo e continuare la ricerca?",
"vcmi.spellResearch.research" : "Ricerca questo Incantesimo",
"vcmi.spellResearch.skip" : "Salta questo Incantesimo",
"vcmi.spellResearch.abort" : "Annulla",
"vcmi.spellResearch.noMoreSpells" : "Non ci sono più incantesimi disponibili per la ricerca.",
"vcmi.mainMenu.serverConnecting" : "Connessione in corso...",
"vcmi.mainMenu.serverAddressEnter" : "Inserisci indirizzo:",
"vcmi.mainMenu.serverConnectionFailed" : "Connessione fallita",
"vcmi.mainMenu.serverClosing" : "Chiusura in corso...",
"vcmi.mainMenu.hostTCP" : "Ospita una partita TCP/IP",
"vcmi.mainMenu.joinTCP" : "Unisciti a una partita TCP/IP",
"vcmi.lobby.filepath" : "Percorso file",
"vcmi.lobby.creationDate" : "Data di creazione",
"vcmi.lobby.scenarioName" : "Nome dello scenario",
"vcmi.lobby.mapPreview" : "Anteprima mappa",
"vcmi.lobby.noPreview" : "nessuna anteprima",
"vcmi.lobby.noUnderground" : "nessun sotterraneo",
"vcmi.lobby.sortDate" : "Ordina le mappe per data di modifica",
"vcmi.lobby.backToLobby" : "Ritorna alla lobby",
"vcmi.lobby.author" : "Autore",
"vcmi.lobby.handicap" : "Handicap",
"vcmi.lobby.handicap.resource" : "Dà ai giocatori risorse appropriate per iniziare oltre a quelle normali. I valori negativi sono consentiti, ma limitati a 0 (il giocatore non inizia mai con risorse negative).",
"vcmi.lobby.handicap.income" : "Modifica le entrate del giocatore in percentuale. Arrotondato per eccesso.",
"vcmi.lobby.handicap.growth" : "Modifica la crescita delle creature nelle città possedute dal giocatore. Arrotondato per eccesso.",
"vcmi.lobby.deleteUnsupportedSave" : "{Salvataggi non supportati trovati}\n\nVCMI ha trovato %d salvataggi non più supportati, probabilmente a causa di differenze tra le versioni di VCMI.\n\nVuoi eliminarli?",
"vcmi.lobby.deleteSaveGameTitle" : "Seleziona un salvataggio da eliminare",
"vcmi.lobby.deleteMapTitle" : "Seleziona uno scenario da eliminare",
"vcmi.lobby.deleteFile" : "Vuoi eliminare il seguente file?",
"vcmi.lobby.deleteFolder" : "Vuoi eliminare la seguente cartella?",
"vcmi.lobby.deleteMode" : "Passa alla modalità elimina e torna indietro",
"vcmi.broadcast.failedLoadGame" : "Impossibile caricare la partita",
"vcmi.broadcast.command" : "Usa '!help' per elencare i comandi disponibili",
"vcmi.broadcast.simturn.end" : "I turni simultanei sono terminati",
"vcmi.broadcast.simturn.endBetween" : "I turni simultanei tra i giocatori %s e %s sono terminati",
"vcmi.broadcast.serverProblem" : "Il server ha riscontrato un problema",
"vcmi.broadcast.gameTerminated" : "la partita è stata terminata",
"vcmi.broadcast.gameSavedAs" : "partita salvata come",
"vcmi.broadcast.noCheater" : "Nessun baro registrato!",
"vcmi.broadcast.playerCheater" : "Il giocatore %s ha usato i trucchi!",
"vcmi.broadcast.statisticFile" : "I file delle statistiche possono essere trovati nella directory %s",
"vcmi.broadcast.help.commands" : "Comandi disponibili per l'host:",
"vcmi.broadcast.help.exit" : "'!exit' - termina immediatamente la partita in corso",
"vcmi.broadcast.help.kick" : "'!kick <player>' - espelle il giocatore specificato dalla partita",
"vcmi.broadcast.help.save" : "'!save <filename>' - salva la partita con il nome specificato",
"vcmi.broadcast.help.statistic" : "'!statistic' - salva le statistiche della partita come file CSV",
"vcmi.broadcast.help.commandsAll" : "Comandi disponibili per tutti i giocatori:",
"vcmi.broadcast.help.help" : "'!help' - mostra questo aiuto",
"vcmi.broadcast.help.cheaters" : "'!cheaters' - elenca i giocatori che hanno usato trucchi durante la partita",
"vcmi.broadcast.help.vote" : "'!vote' - consente di modificare alcune impostazioni di gioco se tutti i giocatori sono d'accordo",
"vcmi.broadcast.vote.allow" : "'!vote simturns allow X' - consente turni simultanei per un numero specificato di giorni, o fino al contatto",
"vcmi.broadcast.vote.force" : "'!vote simturns force X' - forza turni simultanei per un numero specificato di giorni, bloccando i contatti tra giocatori",
"vcmi.broadcast.vote.abort" : "'!vote simturns abort' - interrompe i turni simultanei alla fine di questo turno",
"vcmi.broadcast.vote.timer" : "'!vote timer prolong X' - prolunga il timer di base per tutti i giocatori del numero specificato di secondi",
"vcmi.broadcast.vote.noActive" : "Nessuna votazione attiva!",
"vcmi.broadcast.vote.yes" : "sì",
"vcmi.broadcast.vote.no" : "no",
"vcmi.broadcast.vote.notRecognized" : "Comando di votazione non riconosciuto!",
"vcmi.broadcast.vote.success.untilContacts" : "Votazione riuscita. I turni simultanei dureranno ancora %s giorni, o fino al contatto",
"vcmi.broadcast.vote.success.contactsBlocked" : "Votazione riuscita. I turni simultanei dureranno ancora %s giorni. I contatti sono bloccati",
"vcmi.broadcast.vote.success.nextDay" : "Votazione riuscita. I turni simultanei termineranno il giorno successivo",
"vcmi.broadcast.vote.success.timer" : "Votazione riuscita. Il timer per tutti i giocatori è stato prolungato di %s secondi",
"vcmi.broadcast.vote.aborted" : "Un giocatore ha votato contro la modifica. Votazione annullata",
"vcmi.broadcast.vote.start.untilContacts" : "Votazione avviata per consentire turni simultanei per altri %s giorni",
"vcmi.broadcast.vote.start.contactsBlocked" : "Votazione avviata per forzare turni simultanei per altri %s giorni",
"vcmi.broadcast.vote.start.nextDay" : "Votazione avviata per terminare i turni simultanei dal giorno successivo",
"vcmi.broadcast.vote.start.timer" : "Votazione avviata per prolungare il timer per tutti i giocatori di %s secondi",
"vcmi.broadcast.vote.hint" : "Digita '!vote yes' per accettare la modifica o '!vote no' per rifiutarla",
"vcmi.lobby.login.title" : "VCMI Lobby Online",
"vcmi.lobby.login.username" : "Nome utente:",
"vcmi.lobby.login.connecting" : "Connessione in corso...",
"vcmi.lobby.login.error" : "Errore di connessione: %s",
"vcmi.lobby.login.create" : "Nuovo Account",
"vcmi.lobby.login.login" : "Accedi",
"vcmi.lobby.login.as" : "Accedi come %s",
"vcmi.lobby.login.spectator" : "Spettatore",
"vcmi.lobby.header.rooms" : "Stanze di gioco - %d",
"vcmi.lobby.header.channels" : "Canali chat",
"vcmi.lobby.header.chat.global" : "Chat globale - %s", // %s -> language name
"vcmi.lobby.header.chat.match" : "Chat dalla partita precedente su %s", // %s -> game start date & time
"vcmi.lobby.header.chat.player" : "Chat privata con %s", // %s -> nickname of another player
"vcmi.lobby.header.history" : "Le tue partite precedenti",
"vcmi.lobby.header.players" : "Giocatori online - %d",
"vcmi.lobby.match.solo" : "Partita in singolo",
"vcmi.lobby.match.duel" : "Partita con %s", // %s -> nickname of another player
"vcmi.lobby.match.multi" : "%d giocatori",
"vcmi.lobby.room.create.hover" : "Crea nuova stanza",
"vcmi.lobby.room.players.limit" : "Limite giocatori",
"vcmi.lobby.room.description.public" : "Qualsiasi giocatore può entrare in una stanza pubblica.",
"vcmi.lobby.room.description.private" : "Solo i giocatori invitati possono entrare in una stanza privata.",
"vcmi.lobby.room.description.new" : "Per avviare la partita, seleziona uno scenario o imposta una mappa casuale.",
"vcmi.lobby.room.description.load" : "Per avviare la partita, usa uno dei tuoi salvataggi.",
"vcmi.lobby.room.description.limit" : "Fino a %d giocatori possono entrare nella tua stanza, incluso te.",
"vcmi.lobby.invite.header" : "Invita giocatori",
"vcmi.lobby.invite.notification" : "Un giocatore ti ha invitato nella sua stanza di gioco. Ora puoi unirti alla sua stanza privata.",
"vcmi.lobby.preview.title" : "Unisciti alla stanza di gioco",
"vcmi.lobby.preview.subtitle" : "Partita su %s, ospitata da %s", //TL Note: 1) name of map or RMG template 2) nickname of game host
"vcmi.lobby.preview.version" : "Versione di gioco:",
"vcmi.lobby.preview.players" : "Giocatori:",
"vcmi.lobby.preview.mods" : "Mod utilizzate:",
"vcmi.lobby.preview.allowed" : "Vuoi unirti alla stanza di gioco?",
"vcmi.lobby.preview.error.header" : "Impossibile unirsi a questa stanza.",
"vcmi.lobby.preview.error.playing" : "Devi prima uscire dalla tua partita attuale.",
"vcmi.lobby.preview.error.full" : "La stanza è già piena.",
"vcmi.lobby.preview.error.busy" : "La stanza non accetta più nuovi giocatori.",
"vcmi.lobby.preview.error.invite" : "Non sei stato invitato a questa stanza.",
"vcmi.lobby.preview.error.mods" : "Stai usando un set di mod diverso.",
"vcmi.lobby.preview.error.version" : "Stai usando una versione diversa di VCMI.",
"vcmi.lobby.room.new" : "Nuova partita",
"vcmi.lobby.room.load" : "Carica partita",
"vcmi.lobby.room.type" : "Tipo di stanza",
"vcmi.lobby.room.mode" : "Modalità di gioco",
"vcmi.lobby.room.state.public" : "Pubblica",
"vcmi.lobby.room.state.private" : "Privata",
"vcmi.lobby.room.state.busy" : "In gioco",
"vcmi.lobby.room.state.invited" : "Invitato",
"vcmi.lobby.mod.state.compatible" : "Compatibile",
"vcmi.lobby.mod.state.disabled" : "Deve essere attivato",
"vcmi.lobby.mod.state.version" : "Versione incompatibile",
"vcmi.lobby.mod.state.excessive" : "Deve essere disattivato",
"vcmi.lobby.mod.state.missing" : "Non installato",
"vcmi.lobby.pvp.coin.hover" : "Lancia la moneta",
"vcmi.lobby.pvp.coin.help" : "Lancia una moneta",
"vcmi.lobby.pvp.randomTown.hover" : "Città casuale",
"vcmi.lobby.pvp.randomTown.help" : "Scrivi una città casuale in chat",
"vcmi.lobby.pvp.randomTownVs.hover" : "Città casuale vs.",
"vcmi.lobby.pvp.randomTownVs.help" : "Scrivi due città casuali in chat",
"vcmi.lobby.pvp.versus" : "vs.",
"vcmi.client.errors.invalidMap" : "{Mappa o campagna non valida}\n\nImpossibile avviare la partita! La mappa o la campagna selezionata potrebbe essere non valida o corrotta. Motivo:\n%s",
"vcmi.client.errors.missingCampaigns" : "{File dati mancanti}\n\nI file dati delle campagne non sono stati trovati! Potresti avere file dati incompleti o corrotti di Heroes 3. Reinstalla i dati del gioco.",
"vcmi.client.errors.modLoadingFailure" : "{Errore di caricamento delle mod}\n\nSono stati rilevati problemi critici durante il caricamento delle mod! Il gioco potrebbe non funzionare correttamente o bloccarsi! Aggiorna o disattiva le seguenti mod:\n\n",
"vcmi.server.errors.disconnected" : "{Errore di rete}\n\nLa connessione al server di gioco è stata persa!",
"vcmi.server.errors.playerLeft" : "{Giocatore disconnesso}\n\nIl giocatore %s si è disconnesso dalla partita!", //%s -> player color
"vcmi.server.errors.existingProcess" : "Un altro processo del server VCMI è in esecuzione. Terminarlo prima di avviare una nuova partita.",
"vcmi.server.errors.modsToEnable" : "{Le seguenti mod sono richieste}",
"vcmi.server.errors.modsToDisable" : "{Le seguenti mod devono essere disattivate}",
"vcmi.server.errors.unknownEntity" : "Impossibile caricare il salvataggio! Entità sconosciuta '%s' trovata nel salvataggio! Il salvataggio potrebbe non essere compatibile con la versione attualmente installata delle mod!",
"vcmi.server.errors.wrongIdentified" : "Sei stato identificato come giocatore %s mentre ci si aspettava %s",
"vcmi.server.errors.notAllowed" : "Non ti è permesso eseguire questa azione!",
"vcmi.dimensionDoor.seaToLandError" : "Non è possibile teletrasportarsi dal mare alla terraferma o viceversa con la Porta Dimensionale.",
"vcmi.settingsMainWindow.generalTab.hover" : "Generale",
"vcmi.settingsMainWindow.generalTab.help" : "Passa alla scheda Opzioni generali, che contiene le impostazioni relative al comportamento generale del client di gioco.",
"vcmi.settingsMainWindow.battleTab.hover" : "Battaglia",
"vcmi.settingsMainWindow.battleTab.help" : "Passa alla scheda Opzioni di battaglia, che consente di configurare il comportamento del gioco durante le battaglie.",
"vcmi.settingsMainWindow.adventureTab.hover" : "Mappa Avventura",
"vcmi.settingsMainWindow.adventureTab.help" : "Passa alla scheda Opzioni Mappa Avventura (la mappa dell'avventura è la sezione del gioco in cui i giocatori controllano i movimenti degli eroi).",
"vcmi.systemOptions.videoGroup" : "Impostazioni video",
"vcmi.systemOptions.audioGroup" : "Impostazioni audio",
"vcmi.systemOptions.otherGroup" : "Altre impostazioni", // unused right now
"vcmi.systemOptions.townsGroup" : "Schermata della città",
"vcmi.statisticWindow.statistics" : "Statistiche",
"vcmi.statisticWindow.tsvCopy" : "Dati negli appunti",
"vcmi.statisticWindow.selectView" : "Seleziona vista",
"vcmi.statisticWindow.value" : "Valore",
"vcmi.statisticWindow.title.overview" : "Panoramica",
"vcmi.statisticWindow.title.resources" : "Risorse",
"vcmi.statisticWindow.title.income" : "Entrate",
"vcmi.statisticWindow.title.numberOfHeroes" : "Numero di eroi",
"vcmi.statisticWindow.title.numberOfTowns" : "Numero di città",
"vcmi.statisticWindow.title.numberOfArtifacts" : "Numero di artefatti",
"vcmi.statisticWindow.title.numberOfDwellings" : "Numero di dimore",
"vcmi.statisticWindow.title.numberOfMines" : "Numero di miniere",
"vcmi.statisticWindow.title.armyStrength" : "Forza dell'esercito",
"vcmi.statisticWindow.title.experience" : "Esperienza",
"vcmi.statisticWindow.title.resourcesSpentArmy" : "Costi dell'esercito",
"vcmi.statisticWindow.title.resourcesSpentBuildings" : "Costi degli edifici",
"vcmi.statisticWindow.title.mapExplored" : "Percentuale di mappa esplorata",
"vcmi.statisticWindow.param.playerName" : "Nome giocatore",
"vcmi.statisticWindow.param.daysSurvived" : "Giorni sopravvissuti",
"vcmi.statisticWindow.param.maxHeroLevel" : "Livello massimo dell'eroe",
"vcmi.statisticWindow.param.battleWinRatioHero" : "Tasso di vittoria (vs. eroe)",
"vcmi.statisticWindow.param.battleWinRatioNeutral" : "Tasso di vittoria (vs. neutrali)",
"vcmi.statisticWindow.param.battlesHero" : "Battaglie (vs. eroe)",
"vcmi.statisticWindow.param.battlesNeutral" : "Battaglie (vs. neutrali)",
"vcmi.statisticWindow.param.maxArmyStrength" : "Massima forza dell'esercito totale",
"vcmi.statisticWindow.param.tradeVolume" : "Volume di scambio",
"vcmi.statisticWindow.param.obeliskVisited" : "Obelisco visitato",
"vcmi.statisticWindow.icon.townCaptured" : "Città conquistate",
"vcmi.statisticWindow.icon.strongestHeroDefeated" : "Eroe più forte dell'avversario sconfitto",
"vcmi.statisticWindow.icon.grailFound" : "Graal trovato",
"vcmi.statisticWindow.icon.defeated" : "Sconfitto",
"vcmi.systemOptions.fullscreenBorderless.hover" : "Schermo intero (senza bordi)",
"vcmi.systemOptions.fullscreenBorderless.help" : "{Schermo intero senza bordi}\n\nSe selezionato, VCMI verrà eseguito in modalità schermo intero senza bordi. In questa modalità, il gioco utilizzerà sempre la stessa risoluzione del desktop, ignorando la risoluzione selezionata.",
"vcmi.systemOptions.fullscreenExclusive.hover" : "Schermo intero (esclusivo)",
"vcmi.systemOptions.fullscreenExclusive.help" : "{Schermo intero}\n\nSe selezionato, VCMI verrà eseguito in modalità schermo intero esclusiva. In questa modalità, il gioco cambierà la risoluzione del monitor con quella selezionata.",
"vcmi.systemOptions.resolutionButton.hover" : "Risoluzione: %wx%h",
"vcmi.systemOptions.resolutionButton.help" : "{Seleziona risoluzione}\n\nModifica la risoluzione dello schermo di gioco.",
"vcmi.systemOptions.resolutionMenu.hover" : "Seleziona risoluzione",
"vcmi.systemOptions.resolutionMenu.help" : "Modifica la risoluzione dello schermo di gioco.",
"vcmi.systemOptions.scalingButton.hover" : "Scala interfaccia: %p%",
"vcmi.systemOptions.scalingButton.help" : "{Scala interfaccia}\n\nModifica la scala dell'interfaccia di gioco.",
"vcmi.systemOptions.scalingMenu.hover" : "Seleziona scala interfaccia",
"vcmi.systemOptions.scalingMenu.help" : "Modifica la scala dell'interfaccia di gioco.",
"vcmi.systemOptions.longTouchButton.hover" : "Intervallo di tocco lungo: %d ms",
"vcmi.systemOptions.longTouchButton.help" : "{Intervallo di tocco lungo}\n\nQuando si utilizza il touchscreen, le finestre popup appariranno dopo aver toccato lo schermo per la durata specificata in millisecondi.",
"vcmi.systemOptions.longTouchMenu.hover" : "Seleziona intervallo di tocco lungo",
"vcmi.systemOptions.longTouchMenu.help" : "Modifica la durata dell'intervallo di tocco lungo.",
"vcmi.systemOptions.longTouchMenu.entry" : "%d millisecondi",
"vcmi.systemOptions.framerateButton.hover" : "Mostra FPS",
"vcmi.systemOptions.framerateButton.help" : "{Mostra FPS}\n\nAttiva o disattiva la visibilità del contatore dei fotogrammi al secondo nell'angolo della finestra di gioco.",
"vcmi.systemOptions.hapticFeedbackButton.hover" : "Feedback aptico",
"vcmi.systemOptions.hapticFeedbackButton.help" : "{Feedback aptico}\n\nAttiva o disattiva il feedback aptico sugli input tattili.",
"vcmi.systemOptions.enableUiEnhancementsButton.hover" : "Miglioramenti interfaccia",
"vcmi.systemOptions.enableUiEnhancementsButton.help" : "{Miglioramenti interfaccia}\n\nAttiva vari miglioramenti della qualità della vita nell'interfaccia. Ad esempio, un pulsante per lo zaino, ecc. Disabilitalo per un'esperienza più classica.",
"vcmi.systemOptions.enableLargeSpellbookButton.hover" : "Libro degli incantesimi grande",
"vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Libro degli incantesimi grande}\n\nAbilita un libro degli incantesimi più grande che mostra più incantesimi per pagina. L'animazione del cambio pagina non funziona con questa impostazione attivata.",
"vcmi.systemOptions.audioMuteFocus.hover" : "Silenzioso quando inattivo",
"vcmi.systemOptions.audioMuteFocus.help" : "{Silenzioso quando inattivo}\n\nDisattiva l'audio quando la finestra del gioco non è attiva. Fanno eccezione i messaggi di gioco e il suono del nuovo turno.",
"vcmi.adventureOptions.infoBarPick.hover" : "Mostra messaggi nel pannello informazioni",
"vcmi.adventureOptions.infoBarPick.help" : "{Mostra messaggi nel pannello informazioni}\n\nQuando possibile, i messaggi del gioco provenienti dagli oggetti sulla mappa saranno mostrati nel pannello informazioni, invece che comparire in una finestra separata.",
"vcmi.adventureOptions.numericQuantities.hover" : "Quantità di creature numeriche",
"vcmi.adventureOptions.numericQuantities.help" : "{Quantità di creature numeriche}\n\nMostra la quantità approssimativa di creature nemiche nel formato numerico A-B.",
"vcmi.adventureOptions.forceMovementInfo.hover" : "Mostra sempre il costo del movimento",
"vcmi.adventureOptions.forceMovementInfo.help" : "{Mostra sempre il costo del movimento}\n\nMostra sempre i dati dei punti movimento nella barra di stato (invece di visualizzarli solo quando si tiene premuto il tasto ALT).",
"vcmi.adventureOptions.showGrid.hover" : "Mostra griglia",
"vcmi.adventureOptions.showGrid.help" : "{Mostra griglia}\n\nMostra la griglia di sovrapposizione, evidenziando i confini tra le caselle della mappa avventura.",
"vcmi.adventureOptions.borderScroll.hover" : "Scorrimento ai bordi",
"vcmi.adventureOptions.borderScroll.help" : "{Scorrimento ai bordi}\n\nScorri la mappa avventura quando il cursore è vicino al bordo della finestra. Può essere disattivato tenendo premuto il tasto CTRL.",
"vcmi.adventureOptions.infoBarCreatureManagement.hover" : "Gestione creature nel pannello informazioni",
"vcmi.adventureOptions.infoBarCreatureManagement.help" : "{Gestione creature nel pannello informazioni}\n\nConsente di riordinare le creature nel pannello informazioni invece di alternarle tra i componenti predefiniti.",
"vcmi.adventureOptions.leftButtonDrag.hover" : "Trascinamento con clic sinistro",
"vcmi.adventureOptions.leftButtonDrag.help" : "{Trascinamento con clic sinistro}\n\nQuando attivato, spostando il mouse con il tasto sinistro premuto si trascina la visuale della mappa avventura.",
"vcmi.adventureOptions.rightButtonDrag.hover" : "Trascinamento con clic destro",
"vcmi.adventureOptions.rightButtonDrag.help" : "{Trascinamento con clic destro}\n\nQuando attivato, spostando il mouse con il tasto destro premuto si trascina la visuale della mappa avventura.",
"vcmi.adventureOptions.smoothDragging.hover" : "Trascinamento della mappa fluido",
"vcmi.adventureOptions.smoothDragging.help" : "{Trascinamento della mappa fluido}\n\nQuando attivato, il trascinamento della mappa ha un effetto di scorrimento fluido moderno.",
"vcmi.adventureOptions.skipAdventureMapAnimations.hover" : "Salta effetti di dissolvenza",
"vcmi.adventureOptions.skipAdventureMapAnimations.help" : "{Salta effetti di dissolvenza}\n\nQuando attivato, salta la dissolvenza degli oggetti e altri effetti simili (raccolta risorse, imbarco su navi, ecc.). Rende l'interfaccia più reattiva in alcuni casi, a scapito dell'estetica. Utile soprattutto nei giochi PvP. Per una velocità di movimento massima, la dissolvenza è sempre saltata indipendentemente da questa impostazione.",
"vcmi.adventureOptions.mapScrollSpeed1.hover": "",
"vcmi.adventureOptions.mapScrollSpeed5.hover": "",
"vcmi.adventureOptions.mapScrollSpeed6.hover": "",
"vcmi.adventureOptions.mapScrollSpeed1.help": "Imposta la velocità di scorrimento della mappa su molto lenta.",
"vcmi.adventureOptions.mapScrollSpeed5.help": "Imposta la velocità di scorrimento della mappa su molto veloce.",
"vcmi.adventureOptions.mapScrollSpeed6.help": "Imposta la velocità di scorrimento della mappa su istantanea.",
"vcmi.adventureOptions.hideBackground.hover" : "Nascondi Sfondo",
"vcmi.adventureOptions.hideBackground.help" : "{Nascondi Sfondo}\n\nNasconde la mappa dell'avventura nello sfondo e mostra una texture al suo posto.",
"vcmi.battleOptions.queueSizeLabel.hover": "Mostra coda dell'ordine di turno",
"vcmi.battleOptions.queueSizeNoneButton.hover": "SPENTO",
"vcmi.battleOptions.queueSizeAutoButton.hover": "AUTO",
"vcmi.battleOptions.queueSizeSmallButton.hover": "PICCOLO",
"vcmi.battleOptions.queueSizeBigButton.hover": "GRANDE",
"vcmi.battleOptions.queueSizeNoneButton.help": "Non visualizzare la coda dell'ordine di turno.",
"vcmi.battleOptions.queueSizeAutoButton.help": "Regola automaticamente la dimensione della coda dell'ordine di turno in base alla risoluzione del gioco (PICCOLO viene utilizzato se l'altezza della risoluzione è inferiore a 700 pixel, GRANDE viene usato altrimenti).",
"vcmi.battleOptions.queueSizeSmallButton.help": "Imposta la dimensione della coda dell'ordine di turno su PICCOLO.",
"vcmi.battleOptions.queueSizeBigButton.help": "Imposta la dimensione della coda dell'ordine di turno su GRANDE (non supportato se l'altezza della risoluzione del gioco è inferiore a 700 pixel).",
"vcmi.battleOptions.animationsSpeed1.hover": "",
"vcmi.battleOptions.animationsSpeed5.hover": "",
"vcmi.battleOptions.animationsSpeed6.hover": "",
"vcmi.battleOptions.animationsSpeed1.help": "Imposta la velocità dell'animazione su molto lenta.",
"vcmi.battleOptions.animationsSpeed5.help": "Imposta la velocità dell'animazione su molto veloce.",
"vcmi.battleOptions.animationsSpeed6.help": "Imposta la velocità dell'animazione su istantanea.",
"vcmi.battleOptions.movementHighlightOnHover.hover": "Evidenzia il movimento al passaggio del mouse",
"vcmi.battleOptions.movementHighlightOnHover.help": "{Evidenzia il movimento al passaggio del mouse}\n\nEvidenzia il raggio di movimento dell'unità quando ci passi sopra con il cursore.",
"vcmi.battleOptions.rangeLimitHighlightOnHover.hover": "Mostra limiti di gittata per tiratori",
"vcmi.battleOptions.rangeLimitHighlightOnHover.help": "{Mostra limiti di gittata per tiratori}\n\nMostra i limiti di gittata del tiratore quando ci passi sopra con il cursore.",
"vcmi.battleOptions.showStickyHeroInfoWindows.hover": "Mostra finestre statistiche degli eroi",
"vcmi.battleOptions.showStickyHeroInfoWindows.help": "{Mostra finestre statistiche degli eroi}\n\nAttiva in modo permanente le finestre statistiche degli eroi che mostrano le statistiche primarie e i punti incantesimo.",
"vcmi.battleOptions.skipBattleIntroMusic.hover": "Salta musica introduttiva",
"vcmi.battleOptions.skipBattleIntroMusic.help": "{Salta musica introduttiva}\n\nPermette di compiere azioni durante la musica introduttiva che viene riprodotta all'inizio di ogni battaglia.",
"vcmi.battleOptions.endWithAutocombat.hover": "Termina la battaglia",
"vcmi.battleOptions.endWithAutocombat.help": "{Termina la battaglia}\n\nL'Auto-Combat gioca la battaglia fino alla fine immediatamente.",
"vcmi.battleOptions.showQuickSpell.hover": "Mostra pannello incantesimi rapidi",
"vcmi.battleOptions.showQuickSpell.help": "{Mostra pannello incantesimi rapidi}\n\nMostra il pannello per la selezione rapida degli incantesimi.",
"vcmi.adventureMap.revisitObject.hover" : "Rivisita oggetto",
"vcmi.adventureMap.revisitObject.help" : "{Rivisita oggetto}\n\nSe un eroe si trova su un oggetto della mappa, può rivisitare la posizione.",
"vcmi.battleWindow.pressKeyToSkipIntro" : "Premi un tasto qualsiasi per iniziare immediatamente la battaglia",
"vcmi.battleWindow.damageEstimation.melee" : "Attacca %CREATURE (%DAMAGE).",
"vcmi.battleWindow.damageEstimation.meleeKills" : "Attacca %CREATURE (%DAMAGE, %KILLS).",
"vcmi.battleWindow.damageEstimation.ranged" : "Spara a %CREATURE (%SHOTS, %DAMAGE).",
"vcmi.battleWindow.damageEstimation.rangedKills" : "Spara a %CREATURE (%SHOTS, %DAMAGE, %KILLS).",
"vcmi.battleWindow.damageEstimation.shots" : "%d colpi rimasti",
"vcmi.battleWindow.damageEstimation.shots.1" : "%d colpo rimasto",
"vcmi.battleWindow.damageEstimation.damage" : "%d danni",
"vcmi.battleWindow.damageEstimation.damage.1" : "%d danni",
"vcmi.battleWindow.damageEstimation.kills" : "%d periranno",
"vcmi.battleWindow.damageEstimation.kills.1" : "%d perirà",
"vcmi.battleWindow.damageRetaliation.will" : "Contrattaccherà",
"vcmi.battleWindow.damageRetaliation.may" : "Potrebbe contrattaccare",
"vcmi.battleWindow.damageRetaliation.never" : "Non contrattaccherà.",
"vcmi.battleWindow.damageRetaliation.damage" : "(%DAMAGE).",
"vcmi.battleWindow.damageRetaliation.damageKills" : "(%DAMAGE, %KILLS).",
"vcmi.battleWindow.killed" : "Ucciso",
"vcmi.battleWindow.accurateShot.resultDescription.0" : "%d %s sono stati uccisi da colpi precisi!",
"vcmi.battleWindow.accurateShot.resultDescription.1" : "%d %s è stato ucciso con un colpo preciso!",
"vcmi.battleWindow.accurateShot.resultDescription.2" : "%d %s sono stati uccisi da colpi precisi!",
"vcmi.battleWindow.endWithAutocombat" : "Sei sicuro di voler terminare la battaglia con il combattimento automatico?",
"vcmi.battleResultsWindow.applyResultsLabel" : "Accettare il risultato della battaglia?",
"vcmi.tutorialWindow.title" : "Introduzione touchscreen",
"vcmi.tutorialWindow.decription.RightClick" : "Tocca e tieni premuto l'elemento su cui desideri fare clic destro. Tocca un'area libera per chiudere.",
"vcmi.tutorialWindow.decription.MapPanning" : "Tocca e trascina con un dito per spostare la mappa.",
"vcmi.tutorialWindow.decription.MapZooming" : "Pizzica con due dita per modificare lo zoom della mappa.",
"vcmi.tutorialWindow.decription.RadialWheel" : "Scorrendo si apre la ruota radiale per varie azioni, come la gestione delle creature/eroi e l'ordinamento delle città.",
"vcmi.tutorialWindow.decription.BattleDirection" : "Per attaccare da una direzione specifica, scorri nella direzione da cui deve essere effettuato l'attacco.",
"vcmi.tutorialWindow.decription.BattleDirectionAbort" : "Il gesto di attacco direzionale può essere annullato se il dito è sufficientemente lontano.",
"vcmi.tutorialWindow.decription.AbortSpell" : "Tocca e tieni premuto per annullare un incantesimo.",
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.hover" : "Mostra creature disponibili",
"vcmi.otherOptions.availableCreaturesAsDwellingLabel.help" : "{Mostra creature disponibili}\n\nMostra il numero di creature disponibili per l'acquisto invece della loro crescita nel riepilogo della città (angolo in basso a sinistra della schermata della città).",
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.hover" : "Mostra crescita settimanale delle creature",
"vcmi.otherOptions.creatureGrowthAsDwellingLabel.help" : "{Mostra crescita settimanale delle creature}\n\nMostra la crescita settimanale delle creature invece della quantità disponibile nel riepilogo della città (angolo in basso a sinistra della schermata della città).",
"vcmi.otherOptions.compactTownCreatureInfo.hover": "Info compatta delle creature",
"vcmi.otherOptions.compactTownCreatureInfo.help": "{Info compatta delle creature}\n\nMostra informazioni più piccole per le creature della città nel riepilogo della città (angolo in basso a sinistra della schermata della città).",
"vcmi.townHall.missingBase" : "L'edificio base %s deve essere costruito prima",
"vcmi.townHall.noCreaturesToRecruit" : "Non ci sono creature da reclutare!",
"vcmi.townStructure.bank.borrow" : "Entri in banca. Un banchiere ti vede e dice: \"Abbiamo preparato un'offerta speciale per te. Puoi prendere un prestito di 2500 oro per 5 giorni. Dovrai restituire 500 oro ogni giorno.\"",
"vcmi.townStructure.bank.payBack" : "Entri in banca. Un banchiere ti vede e dice: \"Hai già ottenuto un prestito. Rimborsalo prima di prenderne un altro.\"",
"vcmi.logicalExpressions.anyOf" : "Qualsiasi dei seguenti:",
"vcmi.logicalExpressions.allOf" : "Tutti i seguenti:",
"vcmi.logicalExpressions.noneOf" : "Nessuno dei seguenti:",
"vcmi.heroWindow.openCommander.hover" : "Apri finestra informazioni comandante",
"vcmi.heroWindow.openCommander.help" : "Mostra i dettagli sul comandante di questo eroe.",
"vcmi.heroWindow.openBackpack.hover" : "Apri finestra zaino artefatti",
"vcmi.heroWindow.openBackpack.help" : "Apre una finestra che consente una gestione più semplice dello zaino artefatti.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Ordina per costo",
"vcmi.heroWindow.sortBackpackByCost.help" : "Ordina gli artefatti nello zaino in base al costo.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Ordina per slot",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Ordina gli artefatti nello zaino in base allo slot equipaggiato.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Ordina per classe",
"vcmi.heroWindow.sortBackpackByClass.help" : "Ordina gli artefatti nello zaino in base alla classe dell'artefatto. Tesoro, Minore, Maggiore, Reliquia",
"vcmi.heroWindow.fusingArtifact.fusing" : "Possiedi tutti i componenti necessari per la fusione del %s. Vuoi eseguire la fusione? {Tutti i componenti saranno consumati durante la fusione.}",
"vcmi.tavernWindow.inviteHero" : "Invita eroe",
"vcmi.commanderWindow.artifactMessage" : "Vuoi restituire questo artefatto all'eroe?",
"vcmi.creatureWindow.showBonuses.hover" : "Passa alla vista bonus",
"vcmi.creatureWindow.showBonuses.help" : "Mostra tutti i bonus attivi del comandante.",
"vcmi.creatureWindow.showSkills.hover" : "Passa alla vista abilità",
"vcmi.creatureWindow.showSkills.help" : "Mostra tutte le abilità apprese del comandante.",
"vcmi.creatureWindow.returnArtifact.hover" : "Restituisci artefatto",
"vcmi.creatureWindow.returnArtifact.help" : "Fai clic su questo pulsante per restituire l'artefatto allo zaino dell'eroe.",
"vcmi.questLog.hideComplete.hover" : "Nascondi missioni completate",
"vcmi.questLog.hideComplete.help" : "Nasconde tutte le missioni completate.",
"vcmi.randomMapTab.widgets.randomTemplate" : "(Casuale)",
"vcmi.randomMapTab.widgets.templateLabel" : "Modello",
"vcmi.randomMapTab.widgets.teamAlignmentsButton" : "Imposta...",
"vcmi.randomMapTab.widgets.teamAlignmentsLabel" : "Allineamenti squadra",
"vcmi.randomMapTab.widgets.roadTypesLabel" : "Tipi di strade",
"vcmi.optionsTab.turnOptions.hover" : "Opzioni turno",
"vcmi.optionsTab.turnOptions.help" : "Seleziona opzioni timer turno e turni simultanei",
"vcmi.optionsTab.chessFieldBase.hover" : "Timer base",
"vcmi.optionsTab.chessFieldTurn.hover" : "Timer turno",
"vcmi.optionsTab.chessFieldBattle.hover" : "Timer battaglia",
"vcmi.optionsTab.chessFieldUnit.hover" : "Timer unità",
"vcmi.optionsTab.chessFieldBase.help" : "Utilizzato quando {Timer turno} raggiunge 0. Impostato una sola volta all'inizio del gioco. Al raggiungimento dello zero, il turno corrente termina. Qualsiasi combattimento in corso si concluderà con una sconfitta.",
"vcmi.optionsTab.chessFieldTurnAccumulate.help" : "Utilizzato fuori dal combattimento o quando {Timer battaglia} scade. Resettato ogni turno. Il tempo residuo viene aggiunto a {Timer base} alla fine del turno.",
"vcmi.optionsTab.chessFieldTurnDiscard.help" : "Utilizzato fuori dal combattimento o quando {Timer battaglia} scade. Resettato ogni turno. Il tempo non speso viene perso.",
"vcmi.optionsTab.chessFieldBattle.help" : "Utilizzato nelle battaglie con IA o nei combattimenti PvP quando {Timer unità} scade. Resettato all'inizio di ogni combattimento.",
"vcmi.optionsTab.chessFieldUnitAccumulate.help" : "Utilizzato quando si seleziona l'azione di un'unità nei combattimenti PvP. Il tempo residuo viene aggiunto a {Timer battaglia} alla fine del turno dell'unità.",
"vcmi.optionsTab.chessFieldUnitDiscard.help" : "Utilizzato quando si seleziona l'azione di un'unità nei combattimenti PvP. Resettato all'inizio del turno di ogni unità. Il tempo non speso viene perso.",
"vcmi.optionsTab.accumulate" : "Accumula",
"vcmi.optionsTab.simturnsTitle" : "Turni simultanei",
"vcmi.optionsTab.simturnsMin.hover" : "Almeno per",
"vcmi.optionsTab.simturnsMax.hover" : "Al massimo per",
"vcmi.optionsTab.simturnsAI.hover" : "(Sperimentale) Turni simultanei IA",
"vcmi.optionsTab.simturnsMin.help" : "Gioca simultaneamente per il numero di giorni specificato. I contatti tra i giocatori durante questo periodo sono bloccati.",
"vcmi.optionsTab.simturnsMax.help" : "Gioca simultaneamente per il numero di giorni specificato o fino al contatto con un altro giocatore.",
"vcmi.optionsTab.simturnsAI.help" : "{Turni simultanei IA}\nOpzione sperimentale. Consente ai giocatori IA di agire contemporaneamente ai giocatori umani quando i turni simultanei sono abilitati.",
"vcmi.optionsTab.turnTime.select" : "Seleziona preset timer turno",
"vcmi.optionsTab.turnTime.unlimited" : "Tempo di turno illimitato",
"vcmi.optionsTab.turnTime.classic.1" : "Timer classico: 1 minuto",
"vcmi.optionsTab.turnTime.classic.2" : "Timer classico: 2 minuti",
"vcmi.optionsTab.turnTime.classic.5" : "Timer classico: 5 minuti",
"vcmi.optionsTab.turnTime.classic.10" : "Timer classico: 10 minuti",
"vcmi.optionsTab.turnTime.classic.20" : "Timer classico: 20 minuti",
"vcmi.optionsTab.turnTime.classic.30" : "Timer classico: 30 minuti",
"vcmi.optionsTab.turnTime.chess.20" : "Scacchi: 20:00 + 10:00 + 02:00 + 00:00",
"vcmi.optionsTab.turnTime.chess.16" : "Scacchi: 16:00 + 08:00 + 01:30 + 00:00",
"vcmi.optionsTab.turnTime.chess.8" : "Scacchi: 08:00 + 04:00 + 01:00 + 00:00",
"vcmi.optionsTab.turnTime.chess.4" : "Scacchi: 04:00 + 02:00 + 00:30 + 00:00",
"vcmi.optionsTab.turnTime.chess.2" : "Scacchi: 02:00 + 01:00 + 00:15 + 00:00",
"vcmi.optionsTab.turnTime.chess.1" : "Scacchi: 01:00 + 01:00 + 00:00 + 00:00",
"vcmi.optionsTab.simturns.select" : "Seleziona preset turni simultanei",
"vcmi.optionsTab.simturns.none" : "Nessun turno simultaneo",
"vcmi.optionsTab.simturns.tillContactMax" : "Turni simultanei: fino al contatto",
"vcmi.optionsTab.simturns.tillContact1" : "Turni simultanei: 1 settimana, interruzione al contatto",
"vcmi.optionsTab.simturns.tillContact2" : "Turni simultanei: 2 settimane, interruzione al contatto",
"vcmi.optionsTab.simturns.tillContact4" : "Turni simultanei: 1 mese, interruzione al contatto",
"vcmi.optionsTab.simturns.blocked1" : "Turni simultanei: 1 settimana, contatti bloccati",
"vcmi.optionsTab.simturns.blocked2" : "Turni simultanei: 2 settimane, contatti bloccati",
"vcmi.optionsTab.simturns.blocked4" : "Turni simultanei: 1 mese, contatti bloccati",
// Translation note: translate strings below using form that is correct for "0 days", "1 day" and "2 days" in your language
// Using this information, VCMI will automatically select correct plural form for every possible amount
"vcmi.optionsTab.simturns.days.0" : " %d giorni",
"vcmi.optionsTab.simturns.days.1" : " %d giorno",
"vcmi.optionsTab.simturns.days.2" : " %d giorni",
"vcmi.optionsTab.simturns.weeks.0" : " %d settimane",
"vcmi.optionsTab.simturns.weeks.1" : " %d settimana",
"vcmi.optionsTab.simturns.weeks.2" : " %d settimane",
"vcmi.optionsTab.simturns.months.0" : " %d mesi",
"vcmi.optionsTab.simturns.months.1" : " %d mese",
"vcmi.optionsTab.simturns.months.2" : " %d mesi",
"vcmi.optionsTab.extraOptions.hover" : "Opzioni extra",
"vcmi.optionsTab.extraOptions.help" : "Impostazioni aggiuntive per il gioco",
"vcmi.optionsTab.cheatAllowed.hover" : "Permetti trucchi",
"vcmi.optionsTab.unlimitedReplay.hover" : "Replay battaglia illimitato",
"vcmi.optionsTab.cheatAllowed.help" : "{Permetti trucchi}\nPermette l'inserimento di trucchi durante il gioco.",
"vcmi.optionsTab.unlimitedReplay.help" : "{Replay battaglia illimitato}\nNessun limite di riproduzione delle battaglie.",
// Custom victory conditions for H3 campaigns and HotA maps
"vcmi.map.victoryCondition.daysPassed.toOthers" : "Il nemico è riuscito a sopravvivere fino a questo giorno. La vittoria è sua!",
"vcmi.map.victoryCondition.daysPassed.toSelf" : "Congratulazioni! Sei riuscito a sopravvivere. La vittoria è tua!",
"vcmi.map.victoryCondition.eliminateMonsters.toOthers" : "Il nemico ha sconfitto tutti i mostri che infestavano questa terra e reclama la vittoria!",
"vcmi.map.victoryCondition.eliminateMonsters.toSelf" : "Congratulazioni! Hai sconfitto tutti i mostri che infestavano questa terra e puoi reclamare la vittoria!",
"vcmi.map.victoryCondition.collectArtifacts.message" : "Acquisisci tre artefatti",
"vcmi.map.victoryCondition.angelicAlliance.toSelf" : "Congratulazioni! Hai sconfitto tutti i tuoi nemici e hai l'Alleanza Angelica! La vittoria è tua!",
"vcmi.map.victoryCondition.angelicAlliance.message" : "Sconfiggi tutti i nemici e crea l'Alleanza Angelica",
"vcmi.map.victoryCondition.angelicAlliancePartLost.toSelf" : "Ahimè, hai perso parte dell'Alleanza Angelica. Tutto è perduto.",
// few strings from WoG used by vcmi
"vcmi.stackExperience.description" : "» Dettagli esperienza truppa «\n\nTipo di creatura ................... : %s\nGrado esperienza ................. : %s (%i)\nPunti esperienza ............... : %i\nPunti esperienza al livello successivo .. : %i\nEsperienza massima per battaglia ... : %i%% (%i)\nNumero di creature nello stack .... : %i\nNumero massimo di nuove reclute\n senza perdere il grado attuale .... : %i\nMoltiplicatore esperienza ........... : %.2f\nMoltiplicatore miglioramento .............. : %.2f\nEsperienza dopo il livello 10 ........ : %i\nNumero massimo di nuove reclute per mantenere il\n grado 10 se a esperienza massima : %i",
"vcmi.stackExperience.rank.0" : "Base",
"vcmi.stackExperience.rank.1" : "Principiante",
"vcmi.stackExperience.rank.2" : "Addestrato",
"vcmi.stackExperience.rank.3" : "Abile",
"vcmi.stackExperience.rank.4" : "Esperto",
"vcmi.stackExperience.rank.5" : "Veterano",
"vcmi.stackExperience.rank.6" : "Maestro",
"vcmi.stackExperience.rank.7" : "Esperto",
"vcmi.stackExperience.rank.8" : "Gran Maestro",
"vcmi.stackExperience.rank.9" : "Campione",
"vcmi.stackExperience.rank.10" : "Asso",
// Strings for HotA Seer Hut / Quest Guards
"core.seerhut.quest.heroClass.complete.0" : "Ah, sei %s. Ecco un regalo per te. Lo accetti?",
"core.seerhut.quest.heroClass.complete.1" : "Ah, sei %s. Ecco un regalo per te. Lo accetti?",
"core.seerhut.quest.heroClass.complete.2" : "Ah, sei %s. Ecco un regalo per te. Lo accetti?",
"core.seerhut.quest.heroClass.complete.3" : "Le guardie notano che sei %s e ti offrono di passare. Accetti?",
"core.seerhut.quest.heroClass.complete.4" : "Le guardie notano che sei %s e ti offrono di passare. Accetti?",
"core.seerhut.quest.heroClass.complete.5" : "Le guardie notano che sei %s e ti offrono di passare. Accetti?",
"core.seerhut.quest.heroClass.description.0" : "Invia %s a %s",
"core.seerhut.quest.heroClass.description.1" : "Invia %s a %s",
"core.seerhut.quest.heroClass.description.2" : "Invia %s a %s",
"core.seerhut.quest.heroClass.description.3" : "Invia %s ad aprire il cancello",
"core.seerhut.quest.heroClass.description.4" : "Invia %s ad aprire il cancello",
"core.seerhut.quest.heroClass.description.5" : "Invia %s ad aprire il cancello",
"core.seerhut.quest.heroClass.hover.0" : "(cerca un eroe della classe %s)",
"core.seerhut.quest.heroClass.hover.1" : "(cerca un eroe della classe %s)",
"core.seerhut.quest.heroClass.hover.2" : "(cerca un eroe della classe %s)",
"core.seerhut.quest.heroClass.hover.3" : "(cerca un eroe della classe %s)",
"core.seerhut.quest.heroClass.hover.4" : "(cerca un eroe della classe %s)",
"core.seerhut.quest.heroClass.hover.5" : "(cerca un eroe della classe %s)",
"core.seerhut.quest.heroClass.receive.0" : "Ho un regalo per %s.",
"core.seerhut.quest.heroClass.receive.1" : "Ho un regalo per %s.",
"core.seerhut.quest.heroClass.receive.2" : "Ho un regalo per %s.",
"core.seerhut.quest.heroClass.receive.3" : "Le guardie qui dicono che lasceranno passare solo %s.",
"core.seerhut.quest.heroClass.receive.4" : "Le guardie qui dicono che lasceranno passare solo %s.",
"core.seerhut.quest.heroClass.receive.5" : "Le guardie qui dicono che lasceranno passare solo %s.",
"core.seerhut.quest.heroClass.visit.0" : "Non sei %s. Non ho niente per te. Vattene!",
"core.seerhut.quest.heroClass.visit.1" : "Non sei %s. Non ho niente per te. Vattene!",
"core.seerhut.quest.heroClass.visit.2" : "Non sei %s. Non ho niente per te. Vattene!",
"core.seerhut.quest.heroClass.visit.3" : "Le guardie qui lasceranno passare solo %s.",
"core.seerhut.quest.heroClass.visit.4" : "Le guardie qui lasceranno passare solo %s.",
"core.seerhut.quest.heroClass.visit.5" : "Le guardie qui lasceranno passare solo %s.",
"core.seerhut.quest.reachDate.complete.0" : "Ora sono libero. Ecco cosa ho per te. Lo accetti?",
"core.seerhut.quest.reachDate.complete.1" : "Ora sono libero. Ecco cosa ho per te. Lo accetti?",
"core.seerhut.quest.reachDate.complete.2" : "Ora sono libero. Ecco cosa ho per te. Lo accetti?",
"core.seerhut.quest.reachDate.complete.3" : "Ora puoi passare. Vuoi attraversare?",
"core.seerhut.quest.reachDate.complete.4" : "Ora puoi passare. Vuoi attraversare?",
"core.seerhut.quest.reachDate.complete.5" : "Ora puoi passare. Vuoi attraversare?",
"core.seerhut.quest.reachDate.description.0" : "Aspetta fino a %s per %s",
"core.seerhut.quest.reachDate.description.1" : "Aspetta fino a %s per %s",
"core.seerhut.quest.reachDate.description.2" : "Aspetta fino a %s per %s",
"core.seerhut.quest.reachDate.description.3" : "Aspetta fino a %s per aprire il cancello",
"core.seerhut.quest.reachDate.description.4" : "Aspetta fino a %s per aprire il cancello",
"core.seerhut.quest.reachDate.description.5" : "Aspetta fino a %s per aprire il cancello",
"core.seerhut.quest.reachDate.hover.0" : "(Non tornare prima di %s)",
"core.seerhut.quest.reachDate.hover.1" : "(Non tornare prima di %s)",
"core.seerhut.quest.reachDate.hover.2" : "(Non tornare prima di %s)",
"core.seerhut.quest.reachDate.hover.3" : "(Non tornare prima di %s)",
"core.seerhut.quest.reachDate.hover.4" : "(Non tornare prima di %s)",
"core.seerhut.quest.reachDate.hover.5" : "(Non tornare prima di %s)",
"core.seerhut.quest.reachDate.receive.0" : "Sono occupato. Torna dopo il %s",
"core.seerhut.quest.reachDate.receive.1" : "Sono occupato. Torna dopo il %s",
"core.seerhut.quest.reachDate.receive.2" : "Sono occupato. Torna dopo il %s",
"core.seerhut.quest.reachDate.receive.3" : "Chiuso fino al %s.",
"core.seerhut.quest.reachDate.receive.4" : "Chiuso fino al %s.",
"core.seerhut.quest.reachDate.receive.5" : "Chiuso fino al %s.",
"core.seerhut.quest.reachDate.visit.0" : "Sono occupato. Torna dopo il %s.",
"core.seerhut.quest.reachDate.visit.1" : "Sono occupato. Torna dopo il %s.",
"core.seerhut.quest.reachDate.visit.2" : "Sono occupato. Torna dopo il %s.",
"core.seerhut.quest.reachDate.visit.3" : "Chiuso fino al %s.",
"core.seerhut.quest.reachDate.visit.4" : "Chiuso fino al %s.",
"core.seerhut.quest.reachDate.visit.5" : "Chiuso fino al %s.",
"mapObject.core.hillFort.object.description" : "Aggiorna le creature. I livelli 1 - 4 sono meno costosi rispetto alla città associata.",
"core.bonus.ADDITIONAL_ATTACK.name": "Doppio colpo",
"core.bonus.ADDITIONAL_ATTACK.description": "Attacca due volte",
"core.bonus.ADDITIONAL_RETALIATION.name": "Ritorsioni aggiuntive",
"core.bonus.ADDITIONAL_RETALIATION.description": "Può contrattaccare ${val} volte in più",
"core.bonus.AIR_IMMUNITY.name": "Immunità all'aria",
"core.bonus.AIR_IMMUNITY.description": "Immune a tutti gli incantesimi della scuola di magia dell'Aria",
"core.bonus.ATTACKS_ALL_ADJACENT.name": "Attacco a 360°",
"core.bonus.ATTACKS_ALL_ADJACENT.description": "Attacca tutti i nemici adiacenti",
"core.bonus.BLOCKS_RETALIATION.name": "Nessuna ritorsione",
"core.bonus.BLOCKS_RETALIATION.description": "Il nemico non può contrattaccare",
"core.bonus.BLOCKS_RANGED_RETALIATION.name": "Nessuna ritorsione a distanza",
"core.bonus.BLOCKS_RANGED_RETALIATION.description": "Il nemico non può contrattaccare con un attacco a distanza",
"core.bonus.CATAPULT.name": "Catapulta",
"core.bonus.CATAPULT.description": "Attacca le mura d'assedio",
"core.bonus.CHANGES_SPELL_COST_FOR_ALLY.name": "Riduce il costo del lancio (${val})",
"core.bonus.CHANGES_SPELL_COST_FOR_ALLY.description": "Riduce il costo del lancio degli incantesimi dell'eroe di ${val}",
"core.bonus.CHANGES_SPELL_COST_FOR_ENEMY.name": "Resistenza magica (${val}%)",
"core.bonus.CHANGES_SPELL_COST_FOR_ENEMY.description": "Aumenta il costo del lancio degli incantesimi nemici di ${val}",
"core.bonus.CHARGE_IMMUNITY.name": "Immunità alla carica",
"core.bonus.CHARGE_IMMUNITY.description": "Immune alla carica di Cavalieri e Campioni",
"core.bonus.DARKNESS.name": "Oscurità",
"core.bonus.DARKNESS.description": "Crea un velo d'oscurità con raggio ${val}",
"core.bonus.DEATH_STARE.name": "Sguardo della morte (${val}%)",
"core.bonus.DEATH_STARE.description": "Ha una probabilità del ${val}% di uccidere un'unità singola",
"core.bonus.DEFENSIVE_STANCE.name": "Bonus di difesa",
"core.bonus.DEFENSIVE_STANCE.description": "+${val} Difesa quando è in posizione difensiva",
"core.bonus.DESTRUCTION.name": "Distruzione",
"core.bonus.DESTRUCTION.description": "Ha una probabilità del ${val}% di uccidere unità extra dopo l'attacco",
"core.bonus.DOUBLE_DAMAGE_CHANCE.name": "Colpo della morte",
"core.bonus.DOUBLE_DAMAGE_CHANCE.description": "Ha una probabilità del ${val}% di infliggere il doppio dei danni base quando attacca",
"core.bonus.DRAGON_NATURE.name": "Drago",
"core.bonus.DRAGON_NATURE.description": "Creatura con Natura del Drago",
"core.bonus.EARTH_IMMUNITY.name": "Immunità alla terra",
"core.bonus.EARTH_IMMUNITY.description": "Immune a tutti gli incantesimi della scuola di magia della Terra",
"core.bonus.ENCHANTER.name": "Incantatore",
"core.bonus.ENCHANTER.description": "Può lanciare l'incantesimo ${subtype.spell} ogni turno",
"core.bonus.ENCHANTED.name": "Incantato",
"core.bonus.ENCHANTED.description": "Sotto effetto permanente di ${subtype.spell}",
"core.bonus.ENEMY_ATTACK_REDUCTION.name": "Ignora attacco (${val}%)",
"core.bonus.ENEMY_ATTACK_REDUCTION.description": "Quando viene attaccata, ignora il ${val}% dell'attacco dell'avversario",
"core.bonus.ENEMY_DEFENCE_REDUCTION.name": "Ignora difesa (${val}%)",
"core.bonus.ENEMY_DEFENCE_REDUCTION.description": "Quando attacca, ignora il ${val}% della difesa dell'avversario",
"core.bonus.FIRE_IMMUNITY.name": "Immunità al fuoco",
"core.bonus.FIRE_IMMUNITY.description": "Immune a tutti gli incantesimi della scuola di magia del Fuoco",
"core.bonus.FIRE_SHIELD.name": "Scudo di fuoco (${val}%)",
"core.bonus.FIRE_SHIELD.description": "Riflette una parte dei danni da mischia",
"core.bonus.FIRST_STRIKE.name": "Primo colpo",
"core.bonus.FIRST_STRIKE.description": "Questa creatura contrattacca prima di essere attaccata",
"core.bonus.FEAR.name": "Paura",
"core.bonus.FEAR.description": "Provoca paura su una pila nemica",
"core.bonus.FEARLESS.name": "Impavido",
"core.bonus.FEARLESS.description": "Immune all'abilità Paura",
"core.bonus.FEROCITY.name": "Ferocia",
"core.bonus.FEROCITY.description": "Attacca ${val} volte aggiuntive se uccide qualcuno",
"core.bonus.FLYING.name": "Volare",
"core.bonus.FLYING.description": "Si muove volando (ignora gli ostacoli)",
"core.bonus.FREE_SHOOTING.name": "Colpo ravvicinato",
"core.bonus.FREE_SHOOTING.description": "Può usare attacchi a distanza anche in mischia",
"core.bonus.GARGOYLE.name": "Gargoyle",
"core.bonus.GARGOYLE.description": "Non può essere rianimato o curato",
"core.bonus.GENERAL_DAMAGE_REDUCTION.name": "Riduzione danno (${val}%)",
"core.bonus.GENERAL_DAMAGE_REDUCTION.description": "Riduce il danno fisico da attacchi a distanza o corpo a corpo",
"core.bonus.HATE.name": "Odia ${subtype.creature}",
"core.bonus.HATE.description": "Infligge ${val}% di danni in più a ${subtype.creature}",
"core.bonus.HEALER.name": "Guaritore",
"core.bonus.HEALER.description": "Cura le unità alleate",
"core.bonus.HP_REGENERATION.name": "Rigenerazione",
"core.bonus.HP_REGENERATION.description": "Cura ${val} punti ferita ogni turno",
"core.bonus.JOUSTING.name": "Carica del Campione",
"core.bonus.JOUSTING.description": "+${val}% danno per ogni esagono percorso",
"core.bonus.KING.name": "Re",
"core.bonus.KING.description": "Vulnerabile a SLAUGHTER di livello ${val} o superiore",
"core.bonus.LEVEL_SPELL_IMMUNITY.name": "Immunità agli incantesimi 1-${val}",
"core.bonus.LEVEL_SPELL_IMMUNITY.description": "Immunità agli incantesimi di livello 1-${val}",
"core.bonus.LIMITED_SHOOTING_RANGE.name" : "Portata limitata",
"core.bonus.LIMITED_SHOOTING_RANGE.description" : "Impossibile attaccare unità oltre ${val} esagoni",
"core.bonus.LIFE_DRAIN.name": "Assorbimento vitale (${val}%)",
"core.bonus.LIFE_DRAIN.description": "Drena ${val}% del danno inflitto",
"core.bonus.MANA_CHANNELING.name": "Canale Magico ${val}%",
"core.bonus.MANA_CHANNELING.description": "Fornisce al tuo eroe ${val}% del mana speso dal nemico",
"core.bonus.MANA_DRAIN.name": "Drenaggio di mana",
"core.bonus.MANA_DRAIN.description": "Drena ${val} mana ogni turno",
"core.bonus.MAGIC_MIRROR.name": "Specchio Magico (${val}%)",
"core.bonus.MAGIC_MIRROR.description": "Ha una probabilità del ${val}% di reindirizzare un incantesimo offensivo su un'unità nemica",
"core.bonus.MAGIC_RESISTANCE.name": "Resistenza Magica (${val}%)",
"core.bonus.MAGIC_RESISTANCE.description": "Ha una probabilità del ${val}% di resistere a un incantesimo nemico",
"core.bonus.MIND_IMMUNITY.name": "Immunità agli incantesimi mentali",
"core.bonus.MIND_IMMUNITY.description": "Immune agli incantesimi di tipo mentale",
"core.bonus.NO_DISTANCE_PENALTY.name": "Nessuna penalità a distanza",
"core.bonus.NO_DISTANCE_PENALTY.description": "Infligge il massimo danno a qualsiasi distanza",
"core.bonus.NO_MELEE_PENALTY.name": "Nessuna penalità in mischia",
"core.bonus.NO_MELEE_PENALTY.description": "L'unità non subisce penalità in mischia",
"core.bonus.NO_MORALE.name": "Morale neutrale",
"core.bonus.NO_MORALE.description": "L'unità è immune agli effetti del morale",
"core.bonus.NO_WALL_PENALTY.name": "Nessuna penalità per le mura",
"core.bonus.NO_WALL_PENALTY.description": "Danno pieno durante l'assedio",
"core.bonus.NON_LIVING.name": "Non vivente",
"core.bonus.NON_LIVING.description": "Immunità a molti effetti",
"core.bonus.RANDOM_SPELLCASTER.name": "Random spellcaster",
"core.bonus.RANDOM_SPELLCASTER.description": "Può lanciare un incantesimo casuale",
"core.bonus.RANGED_RETALIATION.name": "Ritorsione a distanza",
"core.bonus.RANGED_RETALIATION.description": "Può effettuare un contrattacco a distanza",
"core.bonus.RECEPTIVE.name": "Ricettivo",
"core.bonus.RECEPTIVE.description": "Nessuna immunità agli incantesimi amichevoli",
"core.bonus.REBIRTH.name": "Rinascita (${val}%)",
"core.bonus.REBIRTH.description": "${val}% della pila risorgerà dopo la morte",
"core.bonus.RETURN_AFTER_STRIKE.name": "Attacco e Ritorno",
"core.bonus.RETURN_AFTER_STRIKE.description": "Ritorna dopo un attacco in mischia",
"core.bonus.REVENGE.name": "Vendetta",
"core.bonus.REVENGE.description": "Infligge danni extra in base alla salute persa dell'attaccante in battaglia",
"core.bonus.SHOOTER.name": "A distanza",
"core.bonus.SHOOTER.description": "L'unità può attaccare a distanza",
"core.bonus.SHOOTS_ALL_ADJACENT.name": "Tiro a raggio totale",
"core.bonus.SHOOTS_ALL_ADJACENT.description": "Gli attacchi a distanza di questa unità colpiscono tutti i bersagli in una piccola area",
"core.bonus.SOUL_STEAL.name": "Furto d'anima",
"core.bonus.SOUL_STEAL.description": "Ottiene ${val} nuove creature per ogni nemico ucciso",
"core.bonus.SPELLCASTER.name": "Incantatore",
"core.bonus.SPELLCASTER.description": "Può lanciare ${subtype.spell}",
"core.bonus.SPELL_AFTER_ATTACK.name": "Lancia Dopo l'Attacco",
"core.bonus.SPELL_AFTER_ATTACK.description": "Ha una probabilità del ${val}% di lanciare ${subtype.spell} dopo l'attacco",
"core.bonus.SPELL_BEFORE_ATTACK.name": "Lancia Prima dell'Attacco",
"core.bonus.SPELL_BEFORE_ATTACK.description": "Ha una probabilità del ${val}% di lanciare ${subtype.spell} prima dell'attacco",
"core.bonus.SPELL_IMMUNITY.name": "Immunità agli incantesimi",
"core.bonus.SPELL_IMMUNITY.description": "Immune a ${subtype.spell}",
"core.bonus.SPELL_LIKE_ATTACK.name": "Attacco simile a un incantesimo",
"core.bonus.SPELL_LIKE_ATTACK.description": "Attacca con ${subtype.spell}",
"core.bonus.SPELL_RESISTANCE_AURA.name": "Aura di Resistenza",
"core.bonus.SPELL_RESISTANCE_AURA.description": "Gli stack vicini ottengono ${val}% di resistenza magica",
"core.bonus.SUMMON_GUARDIANS.name": "Evoca guardiani",
"core.bonus.SUMMON_GUARDIANS.description": "All'inizio della battaglia evoca ${subtype.creature} (${val}%)",
"core.bonus.SYNERGY_TARGET.name": "Sinergizzabile",
"core.bonus.SYNERGY_TARGET.description": "Questa creatura è vulnerabile all'effetto sinergico",
"core.bonus.TWO_HEX_ATTACK_BREATH.name": "Soffio",
"core.bonus.TWO_HEX_ATTACK_BREATH.description": "Attacco a soffio (raggio di 2 esagoni)",
"core.bonus.THREE_HEADED_ATTACK.name": "Attacco a tre teste",
"core.bonus.THREE_HEADED_ATTACK.description": "Attacca tre unità adiacenti",
"core.bonus.TRANSMUTATION.name": "Trasmutazione",
"core.bonus.TRANSMUTATION.description": "${val}% di possibilità di trasformare l'unità attaccata in un altro tipo",
"core.bonus.UNDEAD.name": "Non Morto",
"core.bonus.UNDEAD.description": "L'unità è Non Morta",
"core.bonus.UNLIMITED_RETALIATIONS.name": "Ritorsioni illimitate",
"core.bonus.UNLIMITED_RETALIATIONS.description": "Può contrattaccare un numero illimitato di attacchi",
"core.bonus.WATER_IMMUNITY.name": "Immunità all'acqua",
"core.bonus.WATER_IMMUNITY.description": "Immune a tutti gli incantesimi della scuola di magia dell'Acqua",
"core.bonus.WIDE_BREATH.name": "Soffio ampio",
"core.bonus.WIDE_BREATH.description": "Attacco a soffio ampio (più esagoni)",
"core.bonus.DISINTEGRATE.name": "Disintegrazione",
"core.bonus.DISINTEGRATE.description": "Nessun cadavere rimane dopo la morte",
"core.bonus.INVINCIBLE.name": "Invincibile",
"core.bonus.INVINCIBLE.description": "Non può essere influenzato da nulla",
"core.bonus.MECHANICAL.name": "Meccanico",
"core.bonus.MECHANICAL.description": "Immunità a molti effetti, riparabile",
"core.bonus.PRISM_HEX_ATTACK_BREATH.name": "Soffio Prisma",
"core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Attacco Soffio Prisma (tre direzioni)",
"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Resistenza agli incantesimi",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Resistenza agli incantesimi dell'Aria",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Resistenza agli incantesimi di fuoco",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.water": "Resistenza agli incantesimi dell'Acqua",
"core.bonus.SPELL_DAMAGE_REDUCTION.name.earth": "Resistenza agli incantesimi della Terra",
"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Danno da tutti gli incantesimi ridotto del ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.air": "Danno da tutti gli incantesimi dell'Aria ridotto del ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Danno da tutti gli incantesimi del Fuoco ridotto del ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Danno da tutti gli incantesimi dell'Acqua ridotto del ${val}%.",
"core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Danno da tutti gli incantesimi della Terra ridotto del ${val}%.",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Immunità agli incantesimi",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Immunità all'aria",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Immunità al fuoco",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Immunità all'acqua",
"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Immunità alla terra",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Questa unità è immune a tutti gli incantesimi",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "Questa unità è immune a tutti gli incantesimi della scuola dell'Aria",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "Questa unità è immune a tutti gli incantesimi della scuola del Fuoco",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "Questa unità è immune a tutti gli incantesimi della scuola dell'Acqua",
"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "Questa unità è immune a tutti gli incantesimi della scuola della Terra",
"core.bonus.OPENING_BATTLE_SPELL.name": "Inizia con incantesimo",
"core.bonus.OPENING_BATTLE_SPELL.description": "Lancia ${subtype.spell} all'inizio della battaglia",
"spell.core.castleMoat.name" : "Fossato",
"spell.core.castleMoatTrigger.name" : "Fossato",
"spell.core.catapultShot.name" : "Colpo di Catapulta",
"spell.core.cyclopsShot.name" : "Colpo d'assedio",
"spell.core.dungeonMoat.name" : "Olio Bollente",
"spell.core.dungeonMoatTrigger.name" : "Olio Bollente",
"spell.core.fireWallTrigger.name" : "Muro di Fuoco",
"spell.core.firstAid.name" : "Pronto Soccorso",
"spell.core.fortressMoat.name" : "Catrame Bollente",
"spell.core.fortressMoatTrigger.name" : "Catrame Bollente",
"spell.core.infernoMoat.name" : "Lava",
"spell.core.infernoMoatTrigger.name" : "Lava",
"spell.core.landMineTrigger.name" : "Mina Terrestre",
"spell.core.necropolisMoat.name" : "Cimitero d'ossa",
"spell.core.necropolisMoatTrigger.name" : "Cimitero di ossa",
"spell.core.rampartMoat.name" : "Cimitero di ossa",
"spell.core.rampartMoatTrigger.name" : "Rovi",
"spell.core.strongholdMoat.name" : "Rovi",
"spell.core.strongholdMoatTrigger.name" : "Spuntoni di legno",
"spell.core.summonDemons.name" : "Spuntoni di legno",
"spell.core.towerMoat.name" : "Mina terrestre"
}

Some files were not shown because too many files have changed in this diff Show More