mirror of https://github.com/FreeCol/freecol.git
Merge branch 'master' into slim
This commit is contained in:
commit
633176a976
|
@ -1112,6 +1112,8 @@ model.ability.dressMissionary.name=Экіпіроўка місіянэра
|
||||||
model.ability.dressMissionary.shortDescription=Робіць адзінку (не экспэрта) місіянэрам.
|
model.ability.dressMissionary.shortDescription=Робіць адзінку (не экспэрта) місіянэрам.
|
||||||
model.ability.electFoundingFather.name=Выбар бацькоў-заснавальнікаў
|
model.ability.electFoundingFather.name=Выбар бацькоў-заснавальнікаў
|
||||||
model.ability.electFoundingFather.shortDescription=Гэтая нацыя мае магчымасьць выбіраць бацькоў-заснавальнікаў
|
model.ability.electFoundingFather.shortDescription=Гэтая нацыя мае магчымасьць выбіраць бацькоў-заснавальнікаў
|
||||||
|
model.ability.evadeAttack.name=Унікнуць атакі
|
||||||
|
model.ability.evadeAttack.shortDescription=Гэтая адзінка мае здольнасьць унікаць атакаў.
|
||||||
model.ability.expertMissionary.name=Дасьведчаны місіянэр
|
model.ability.expertMissionary.name=Дасьведчаны місіянэр
|
||||||
model.ability.expertMissionary.shortDescription=Гэтая адзінка можа дзейнічаць як дасьведчаны місіянэр
|
model.ability.expertMissionary.shortDescription=Гэтая адзінка можа дзейнічаць як дасьведчаны місіянэр
|
||||||
model.ability.expertPioneer.name=Здольнасьць дзейнічаць як дасьведчаны першапраходзец
|
model.ability.expertPioneer.name=Здольнасьць дзейнічаць як дасьведчаны першапраходзец
|
||||||
|
@ -1126,6 +1128,8 @@ model.ability.export.name=Экспарт тавараў
|
||||||
model.ability.export.shortDescription=Можа экспартаваць тавары непасрэдна ў Эўропу
|
model.ability.export.shortDescription=Можа экспартаваць тавары непасрэдна ў Эўропу
|
||||||
model.ability.foundColony.name=Заснаваць калёнію
|
model.ability.foundColony.name=Заснаваць калёнію
|
||||||
model.ability.foundColony.shortDescription=Гэтая адзінка можа засноўваць новыя калёніі
|
model.ability.foundColony.shortDescription=Гэтая адзінка можа засноўваць новыя калёніі
|
||||||
|
model.ability.foundInLostCity.name=Знойдзены ў загубленых гарадох
|
||||||
|
model.ability.foundInLostCity.shortDescription=Тып адзінкі, знойдзенай у загубленых гарадох
|
||||||
model.ability.foundsColonies.name=Засноўвае калёніі
|
model.ability.foundsColonies.name=Засноўвае калёніі
|
||||||
model.ability.foundsColonies.shortDescription=Гэтая нацыя мае здольнасьць засноўваць новыя калёніі.
|
model.ability.foundsColonies.shortDescription=Гэтая нацыя мае здольнасьць засноўваць новыя калёніі.
|
||||||
model.ability.hasPort.name=Выхад да мора
|
model.ability.hasPort.name=Выхад да мора
|
||||||
|
@ -1138,6 +1142,8 @@ model.ability.inciteNatives.name=Падбухторваць абарыгенаў
|
||||||
model.ability.inciteNatives.shortDescription=Гэтая адзінка можа падбухторваць абарыгенаў супраць варожай нацыі
|
model.ability.inciteNatives.shortDescription=Гэтая адзінка можа падбухторваць абарыгенаў супраць варожай нацыі
|
||||||
model.ability.independenceDeclared.name=Дэклярацыя незалежнасьці
|
model.ability.independenceDeclared.name=Дэклярацыя незалежнасьці
|
||||||
model.ability.independenceDeclared.shortDescription=Гэтая краіна абвясьціла сваю незалежнасьць
|
model.ability.independenceDeclared.shortDescription=Гэтая краіна абвясьціла сваю незалежнасьць
|
||||||
|
model.ability.independentNation.name=Незалежная нацыя
|
||||||
|
model.ability.independentNation.shortDescription=Незалежная нацыя
|
||||||
model.ability.mercenaryUnit.name=Адзінка-найміт
|
model.ability.mercenaryUnit.name=Адзінка-найміт
|
||||||
model.ability.mercenaryUnit.shortDescription=Гэтая адзінка знаходзіцца ў войску наймітаў
|
model.ability.mercenaryUnit.shortDescription=Гэтая адзінка знаходзіцца ў войску наймітаў
|
||||||
model.ability.mounted.name=Вершнік
|
model.ability.mounted.name=Вершнік
|
||||||
|
@ -1168,6 +1174,10 @@ model.ability.repairUnits.name=Рамантаваньне адзінак
|
||||||
model.ability.repairUnits.shortDescription=Можа рамантаваць вызначаныя тыпы пашкоджаных адзінак
|
model.ability.repairUnits.shortDescription=Можа рамантаваць вызначаныя тыпы пашкоджаных адзінак
|
||||||
model.ability.royalExpeditionaryForce.name=Каралеўскія экспэдыцыйныя сілы
|
model.ability.royalExpeditionaryForce.name=Каралеўскія экспэдыцыйныя сілы
|
||||||
model.ability.royalExpeditionaryForce.shortDescription=Гэтая нацыя зьяўляецца Каралеўскімі экспэдыцыйнымі сіламі
|
model.ability.royalExpeditionaryForce.shortDescription=Гэтая нацыя зьяўляецца Каралеўскімі экспэдыцыйнымі сіламі
|
||||||
|
model.ability.rumoursAlwaysPositive.name=Чуткі заўсёды станоўчыя
|
||||||
|
model.ability.rumoursAlwaysPositive.shortDescription=Дасьледаваньне чутак заўсёды мае станоўчы вынік
|
||||||
|
model.ability.seeAllColonies.name=Бачыць усе калёніі
|
||||||
|
model.ability.seeAllColonies.shortDescription=Можа бачыць усе замежныя калёніі
|
||||||
model.ability.speakWithChief.shortDescription=Гэтая адзінка можа размаўляць з правадыром індыянскага паселішча
|
model.ability.speakWithChief.shortDescription=Гэтая адзінка можа размаўляць з правадыром індыянскага паселішча
|
||||||
model.ability.spyOnColony.name=Шпіёніць за калёніяй
|
model.ability.spyOnColony.name=Шпіёніць за калёніяй
|
||||||
model.ability.spyOnColony.shortDescription=Гэтая адзінка можа шпіёніць за замежнымі калёніямі
|
model.ability.spyOnColony.shortDescription=Гэтая адзінка можа шпіёніць за замежнымі калёніямі
|
||||||
|
@ -1626,6 +1636,8 @@ model.resource.tobacco.name=Тытунь
|
||||||
model.resource.tobacco.description=Глеба гэтых лугоў выдатна падыходзіць для вырошчваньня тытуню.
|
model.resource.tobacco.description=Глеба гэтых лугоў выдатна падыходзіць для вырошчваньня тытуню.
|
||||||
model.role.name=Роля
|
model.role.name=Роля
|
||||||
model.role.default.name=Дапомна
|
model.role.default.name=Дапомна
|
||||||
|
model.role.dragoon.noequipment=няма мушкетаў
|
||||||
|
model.role.infantry.name=Пяхота
|
||||||
model.role.missionary.name=Місіянэр
|
model.role.missionary.name=Місіянэр
|
||||||
model.role.missionary.noequipment=не ўпаўнаважаны
|
model.role.missionary.noequipment=не ўпаўнаважаны
|
||||||
model.role.missionary.equipment=Біблія
|
model.role.missionary.equipment=Біблія
|
||||||
|
@ -1861,6 +1873,11 @@ model.colony.stance.war=%nation% атакуе вас пры любой магч
|
||||||
model.colony.unbuildable=%colony% ня можа пабудаваць %object% за гэты час. %object% быў выдалены з чаргі на будоўлю.
|
model.colony.unbuildable=%colony% ня можа пабудаваць %object% за гэты час. %object% быў выдалены з чаргі на будоўлю.
|
||||||
model.colony.veryBadGovernment=Урад %colony% вельмі неэфэктыўны. Уводзяцца высокія штрафы на вытворчасьць.
|
model.colony.veryBadGovernment=Урад %colony% вельмі неэфэктыўны. Уводзяцца высокія штрафы на вытворчасьць.
|
||||||
model.colony.veryGoodGovernment=Эфэктыўнасьць ураду палепшылася! Бунтоўныя настроі ў %colony% цяпер роўныя ці большыя за %number% {{plural:%number%|one=адсотак|few=адсоткі|other=адсоткаў}}.
|
model.colony.veryGoodGovernment=Эфэктыўнасьць ураду палепшылася! Бунтоўныя настроі ў %colony% цяпер роўныя ці большыя за %number% {{plural:%number%|one=адсотак|few=адсоткі|other=адсоткаў}}.
|
||||||
|
model.colonyTile.claim=(прэтэндуе на %direction%)
|
||||||
|
model.diplomaticTrade.receive.contact=Братэрскае прывітаньне ад славутай нацыі %nation%.
|
||||||
|
model.diplomaticTrade.receive.diplomatic=Давайце дамаўляцца з %nation%.
|
||||||
|
model.diplomaticTrade.receive.trade=Давайце разглядзім гандлёвую прапанову нацыі %nation%.
|
||||||
|
model.diplomaticTrade.receive.tribute=%nation% патрабуе ад нас даніну!
|
||||||
model.diplomaticTrade.send.contact=Мы сустрэлі прадстаўнікоў нацыі %nation%.
|
model.diplomaticTrade.send.contact=Мы сустрэлі прадстаўнікоў нацыі %nation%.
|
||||||
model.diplomaticTrade.send.diplomatic=Давайце абмяркуем нашую дыпляматычную сытуацыю з %nation%.
|
model.diplomaticTrade.send.diplomatic=Давайце абмяркуем нашую дыпляматычную сытуацыю з %nation%.
|
||||||
model.diplomaticTrade.send.trade=Дазвольце нам прапанаваць гандаль з нацыяй %nation% у %settlement%.
|
model.diplomaticTrade.send.trade=Дазвольце нам прапанаваць гандаль з нацыяй %nation% у %settlement%.
|
||||||
|
@ -1898,6 +1915,7 @@ model.indianSettlement.mostHatedUnknown=Невядома
|
||||||
model.indianSettlement.nameUnknown=Невядомая
|
model.indianSettlement.nameUnknown=Невядомая
|
||||||
model.indianSettlement.skillNone=Нічога
|
model.indianSettlement.skillNone=Нічога
|
||||||
model.indianSettlement.skillUnknown=Невядомае
|
model.indianSettlement.skillUnknown=Невядомае
|
||||||
|
model.indianSettlement.lastSale=Прадаў %goodsType% за %price% у %turn%
|
||||||
model.indianSettlement.tension.angry=Ваяры племені %nation% занятыя трэнаваньнем у стральбе. Жанчыны і дзеці хаваюцца ў намётах.
|
model.indianSettlement.tension.angry=Ваяры племені %nation% занятыя трэнаваньнем у стральбе. Жанчыны і дзеці хаваюцца ў намётах.
|
||||||
model.indianSettlement.tension.content=Людзі племені %nation% занятыя працаю. Іхнія дзеці весела гуляюцца ў хованкі.
|
model.indianSettlement.tension.content=Людзі племені %nation% занятыя працаю. Іхнія дзеці весела гуляюцца ў хованкі.
|
||||||
model.indianSettlement.tension.displeased=Людзі племені %nation% занятыя працаю. Іхніх дзяцей нідзе не відаць, а старыя нахмураныя.
|
model.indianSettlement.tension.displeased=Людзі племені %nation% занятыя працаю. Іхніх дзяцей нідзе не відаць, а старыя нахмураныя.
|
||||||
|
@ -1985,6 +2003,7 @@ model.nation.turkish.name={{tag:|country=Атаманская імпэрыя|peo
|
||||||
model.nation.german.name={{tag:|country=Сьвяшчэнная Рымская імпэрыя|people=Немцы|default=Нямецкі}}
|
model.nation.german.name={{tag:|country=Сьвяшчэнная Рымская імпэрыя|people=Немцы|default=Нямецкі}}
|
||||||
model.nation.prussian.name={{tag:|country=Прусія|people=Прусы|default=Прускі}}
|
model.nation.prussian.name={{tag:|country=Прусія|people=Прусы|default=Прускі}}
|
||||||
model.nation.austrian.name={{tag:|country=Аўстрыя|people=Аўстрыйцы|default=Аўстрыйскі}}
|
model.nation.austrian.name={{tag:|country=Аўстрыя|people=Аўстрыйцы|default=Аўстрыйскі}}
|
||||||
|
model.advantages.none.name=Няма
|
||||||
model.advantages.none.shortDescription=Ніякіх перавагаў для якіх-кольвек нацыяў. Галоўным чынам прызначанае для шматкарыстальніцкіх гульняў.
|
model.advantages.none.shortDescription=Ніякіх перавагаў для якіх-кольвек нацыяў. Галоўным чынам прызначанае для шматкарыстальніцкіх гульняў.
|
||||||
model.advantages.fixed.shortDescription=Усе нацыі карыстаюцца сваімі дапомнымі перавагамі. Гэта патрэбна дзеля эмуляцыі арыгінальнай гульні.
|
model.advantages.fixed.shortDescription=Усе нацыі карыстаюцца сваімі дапомнымі перавагамі. Гэта патрэбна дзеля эмуляцыі арыгінальнай гульні.
|
||||||
model.nationState.aiOnly.name=толькі кампутар
|
model.nationState.aiOnly.name=толькі кампутар
|
||||||
|
@ -2210,6 +2229,7 @@ model.unit.hardyPioneer.noMoreTools=%location%: Ваш цягавіты піян
|
||||||
error.couldNotLoad=Адбылася памылка пад час спробы загрузкі гульні з файлу %name%
|
error.couldNotLoad=Адбылася памылка пад час спробы загрузкі гульні з файлу %name%
|
||||||
error.couldNotSave=Адбылася памылка пад час спробы захаваньня гульні ў файл %name%
|
error.couldNotSave=Адбылася памылка пад час спробы захаваньня гульні ў файл %name%
|
||||||
main.defaultPlayerName=Імя гульца
|
main.defaultPlayerName=Імя гульца
|
||||||
|
main.userDir.badDir=Недаступны для запісу каталёг: %name%
|
||||||
main.userDir.badConfig=Благі каталёг канфігурацыі карыстальніка: %name%
|
main.userDir.badConfig=Благі каталёг канфігурацыі карыстальніка: %name%
|
||||||
main.userDir.badData=Благі каталёг зьвестак карыстальніка: %name%
|
main.userDir.badData=Благі каталёг зьвестак карыстальніка: %name%
|
||||||
main.userDir.badCache=Благі каталёг кэшу карыстальніка: %name%
|
main.userDir.badCache=Благі каталёг кэшу карыстальніка: %name%
|
||||||
|
@ -2388,11 +2408,13 @@ tradeRoute.loadStop.noLoad.left=%goodsList% (няма месца)
|
||||||
tradeRoute.loadStop.noLoad.noUnload=%goodsType% (няма куды выгружаць)
|
tradeRoute.loadStop.noLoad.noUnload=%goodsType% (няма куды выгружаць)
|
||||||
tradeRoute.loadStop.unexpected=На борце знойдзеныя нечаканыя %goodsList%.
|
tradeRoute.loadStop.unexpected=На борце знойдзеныя нечаканыя %goodsList%.
|
||||||
tradeRoute.prefix=%route%, %unit%:%data%
|
tradeRoute.prefix=%route%, %unit%:%data%
|
||||||
|
tradeRoute.unloadStop.unload=Разгружана %goodsList%.
|
||||||
tradeRoute.unloadStop.unload.fail=%amount% %goodsType% (нечаканая частковая загруза, %more% засталося)
|
tradeRoute.unloadStop.unload.fail=%amount% %goodsType% (нечаканая частковая загруза, %more% засталося)
|
||||||
tradeRoute.unloadStop.unload.keep=%amount% %goodsType% (%more% засталося)
|
tradeRoute.unloadStop.unload.keep=%amount% %goodsType% (%more% засталося)
|
||||||
tradeRoute.unloadStop.unload.overflow=%amount% %goodsType% (%more% перапоўнена)
|
tradeRoute.unloadStop.unload.overflow=%amount% %goodsType% (%more% перапоўнена)
|
||||||
tradeRoute.unloadStop.noUnload=Не загружана %goodsList%.
|
tradeRoute.unloadStop.noUnload=Не загружана %goodsList%.
|
||||||
tradeRoute.unloadStop.noUnload.fail=%goods% нечакана няўдала
|
tradeRoute.unloadStop.noUnload.fail=%goods% нечакана няўдала
|
||||||
|
tradeRoute.wait=Няма чаго рабіць, чакае.
|
||||||
traderoute.warehouseCapacity=Пасьля выгрузкі %unit% у %colony% сховішча калёніі будзе перапоўнена. %amount% %goods% будзе выкінута. Вы ўсё роўна жадаеце выгрузіць тавары?
|
traderoute.warehouseCapacity=Пасьля выгрузкі %unit% у %colony% сховішча калёніі будзе перапоўнена. %amount% %goods% будзе выкінута. Вы ўсё роўна жадаеце выгрузіць тавары?
|
||||||
twoTurnsPerYear=Пачынаючы з %year% за год будзе праводзіцца %amount% хадоў замест аднаго!
|
twoTurnsPerYear=Пачынаючы з %year% за год будзе праводзіцца %amount% хадоў замест аднаго!
|
||||||
connection.io=Памылка ўводу/вываду: %message%
|
connection.io=Памылка ўводу/вываду: %message%
|
||||||
|
@ -2400,13 +2422,16 @@ server.badColor=Памылковы колер: %color%
|
||||||
server.badNation=Памылковая нацыя: %nation%
|
server.badNation=Памылковая нацыя: %nation%
|
||||||
server.badNationType=Памылковы тып нацыі: %nationType%
|
server.badNationType=Памылковы тып нацыі: %nationType%
|
||||||
server.couldNotConnect=Немагчыма далучыцца да сэрвэра.
|
server.couldNotConnect=Немагчыма далучыцца да сэрвэра.
|
||||||
|
server.couldNotLogin=Немагчыма ўвасьці на сэрвэр.
|
||||||
server.errorStartingGame=Адбылася памылка пад час пачатку гульні.\n%extra%
|
server.errorStartingGame=Адбылася памылка пад час пачатку гульні.\n%extra%
|
||||||
server.incompatibleVersions=Захаваная гульня, якую Вы спрабуеце загрузіць, несумяшчальная з гэтай вэрсіяй FreeCol.
|
server.incompatibleVersions=Захаваная гульня, якую Вы спрабуеце загрузіць, несумяшчальная з гэтай вэрсіяй FreeCol.
|
||||||
|
server.initialize=Памылкі ініцыялізацыі сэрвэра
|
||||||
server.invalidPlayerNations=Перад пачаткам гульні неабходна, каб кожны гулец выбраў унікальную нацыю.
|
server.invalidPlayerNations=Перад пачаткам гульні неабходна, каб кожны гулец выбраў унікальную нацыю.
|
||||||
server.maximumPlayers=Прабачце, дасягнутая максымальная колькасьць гульцоў.
|
server.maximumPlayers=Прабачце, дасягнутая максымальная колькасьць гульцоў.
|
||||||
server.missingUserName=У запыце на ўваход бракуе імені карыстальніка.
|
server.missingUserName=У запыце на ўваход бракуе імені карыстальніка.
|
||||||
server.missingVersion=У запыце на ўваход бракуе вэрсіі FreeCol.
|
server.missingVersion=У запыце на ўваход бракуе вэрсіі FreeCol.
|
||||||
server.noRouteToServer=Сэрвэр ня можа быць публічным, бо ня зможа злучыцца з мэтасэрвэрам.
|
server.noRouteToServer=Сэрвэр ня можа быць публічным, бо ня зможа злучыцца з мэтасэрвэрам.
|
||||||
|
server.noSuchPlayer=У гульні адсутнічае гулец з назвай: %player%
|
||||||
server.notAllReady=Ня ўсе гульцы гатовыя пачаць гульню!
|
server.notAllReady=Ня ўсе гульцы гатовыя пачаць гульню!
|
||||||
server.onlyAdminCanLaunch=Прабачце, толькі адміністратар сэрвэра можа пачаць гульню.
|
server.onlyAdminCanLaunch=Прабачце, толькі адміністратар сэрвэра можа пачаць гульню.
|
||||||
server.reject=Сэрвэр ня можа гэта зрабіць.
|
server.reject=Сэрвэр ня можа гэта зрабіць.
|
||||||
|
@ -2437,7 +2462,10 @@ scoutSettlement.tributeAgree=Мы згодныя заплаціць %amount% з
|
||||||
scoutSettlement.tributeDisagree=Мы не выканаем Вашых патрабаваньняў. А цяпер пакіньце нашую зямлю!
|
scoutSettlement.tributeDisagree=Мы не выканаем Вашых патрабаваньняў. А цяпер пакіньце нашую зямлю!
|
||||||
colopedia.birthAndDeath=Нараджэньне і сьмерць
|
colopedia.birthAndDeath=Нараджэньне і сьмерць
|
||||||
colopedia.description=Апісаньне
|
colopedia.description=Апісаньне
|
||||||
|
colopedia.probability=Імавернасьць
|
||||||
|
colopedia.type=Тып
|
||||||
colopedia.buildings.autoBuilt=Будуецца аўтаматычна, пасьля заснаваньня новай калёніі.
|
colopedia.buildings.autoBuilt=Будуецца аўтаматычна, пасьля заснаваньня новай калёніі.
|
||||||
|
colopedia.buildings.basicProduction=Асноўная вытворчасьць
|
||||||
colopedia.buildings.cost=Кошт
|
colopedia.buildings.cost=Кошт
|
||||||
colopedia.buildings.modifiers={{plural:%number%|one=Мадыфікатар|few=Мадыфікатары|many=Мадыфікатараў|other=Мадыфікатары|default=Мадыфікатар}}
|
colopedia.buildings.modifiers={{plural:%number%|one=Мадыфікатар|few=Мадыфікатары|many=Мадыфікатараў|other=Мадыфікатары|default=Мадыфікатар}}
|
||||||
colopedia.buildings.notes=Заўвагі
|
colopedia.buildings.notes=Заўвагі
|
||||||
|
@ -2447,12 +2475,15 @@ colopedia.buildings.specialist=Спэцыяліст
|
||||||
colopedia.buildings.teaches=Навучае
|
colopedia.buildings.teaches=Навучае
|
||||||
colopedia.buildings.workplaces=Працоўныя месцы
|
colopedia.buildings.workplaces=Працоўныя месцы
|
||||||
colopedia.buildings.requiredPopulation=%number% {{plural:%number%|one=каляніст|few=каляністы|many=каляністаў}}
|
colopedia.buildings.requiredPopulation=%number% {{plural:%number%|one=каляніст|few=каляністы|many=каляністаў}}
|
||||||
|
colopedia.concepts.education.name=Адукацыя
|
||||||
colopedia.concepts.education.description=<html><p>Найэфэктыўнейшы спосаб навучыць вашых каляністаў — гэта пабудаваць <a href="http:///id/model.building.schoolhouse">школу</a> і прызначыць экспэртную адзінку настаўнікам. Тады настаўнік ператворыць <a href="http:///id/model.unit.freeColonist">вольнага пасяленца</a> у экспэрта таго ж тыпу. Таксама настаўнікі могуць паляпшаць <a href="http:///id/model.unit.pettyCriminal">дробных злачынцаў</a> у <a href="http:///id/model.unit.indenturedServant">найманых працаўнікоў</a>, а найманых працаўнікоў — у вольных пасяленцаў.</p><p>Некаторыя ўменьні можна яшчэ пераняць у тубыльцаў, паслаўшы вольнага пасяленца ці найманага працаўніка адзін ход пражыць у туземным паселішчы. Яшчэ некаторыя ўменьні можна атрымаць з досьведам, адаслаўшы вольнага каляніста працаваць на плітцы калёніі. Вольныя каляністы, працуючы ў палёх і лясох вакол вашых калёніяў, назапашваюць да 200 пунктаў досьведу, што складае да чатырох адсоткаў посьпеху ўдасканаленьня.</p></html>
|
colopedia.concepts.education.description=<html><p>Найэфэктыўнейшы спосаб навучыць вашых каляністаў — гэта пабудаваць <a href="http:///id/model.building.schoolhouse">школу</a> і прызначыць экспэртную адзінку настаўнікам. Тады настаўнік ператворыць <a href="http:///id/model.unit.freeColonist">вольнага пасяленца</a> у экспэрта таго ж тыпу. Таксама настаўнікі могуць паляпшаць <a href="http:///id/model.unit.pettyCriminal">дробных злачынцаў</a> у <a href="http:///id/model.unit.indenturedServant">найманых працаўнікоў</a>, а найманых працаўнікоў — у вольных пасяленцаў.</p><p>Некаторыя ўменьні можна яшчэ пераняць у тубыльцаў, паслаўшы вольнага пасяленца ці найманага працаўніка адзін ход пражыць у туземным паселішчы. Яшчэ некаторыя ўменьні можна атрымаць з досьведам, адаслаўшы вольнага каляніста працаваць на плітцы калёніі. Вольныя каляністы, працуючы ў палёх і лясох вакол вашых калёніяў, назапашваюць да 200 пунктаў досьведу, што складае да чатырох адсоткаў посьпеху ўдасканаленьня.</p></html>
|
||||||
colopedia.concepts.efficiency.name=Эфэктыўнасьць
|
colopedia.concepts.efficiency.name=Эфэктыўнасьць
|
||||||
colopedia.concepts.efficiency.description=<html><p>Эфэктыўнасьць вашых калёніяў залежыць ад папулярнасьці ў іх ідэяў незалежнасьці. Калі 50 адсоткаў каляністаў падтрымліваюць ідэю паўстаньня, калёнія атрымлівае +1 бонус вытворчасьці. Калі 100 адсоткаў каляністаў становяцца паўстанцамі, бонус вытворчасьці вырастае да +2.</p><p>Зь іншага боку, калі колькасьць раялістаў перавышае <i>мяжу благога валадараньня</i>, калёнія атрымлівае -1 страту ў вытворчасьці. Калі колькасьць раялістаў перавышае <i>мяжу вельмі благога валадараньня</i>, штраф вытворчасьці ўзрастае да -2. Гэтыя два вымярэньні залежаць ад узроўню складанасьці, іх можна спраўдзіць у <a href="http:///action/difficultyAction">справаздачы па ўзроўні складанасьці</a>.</p><p>Каб павялічыць эфэктыўнасьць калёніі, трэба зьмяншаць ейнае насельніцтва ці вырабляць больш <a href="http:///id/model.goods.bells">званоў свабоды</a>.</p></html>
|
colopedia.concepts.efficiency.description=<html><p>Эфэктыўнасьць вашых калёніяў залежыць ад папулярнасьці ў іх ідэяў незалежнасьці. Калі 50 адсоткаў каляністаў падтрымліваюць ідэю паўстаньня, калёнія атрымлівае +1 бонус вытворчасьці. Калі 100 адсоткаў каляністаў становяцца паўстанцамі, бонус вытворчасьці вырастае да +2.</p><p>Зь іншага боку, калі колькасьць раялістаў перавышае <i>мяжу благога валадараньня</i>, калёнія атрымлівае -1 страту ў вытворчасьці. Калі колькасьць раялістаў перавышае <i>мяжу вельмі благога валадараньня</i>, штраф вытворчасьці ўзрастае да -2. Гэтыя два вымярэньні залежаць ад узроўню складанасьці, іх можна спраўдзіць у <a href="http:///action/difficultyAction">справаздачы па ўзроўні складанасьці</a>.</p><p>Каб павялічыць эфэктыўнасьць калёніі, трэба зьмяншаць ейнае насельніцтва ці вырабляць больш <a href="http:///id/model.goods.bells">званоў свабоды</a>.</p></html>
|
||||||
|
colopedia.concepts.fortification.name=Умацаваньне
|
||||||
colopedia.concepts.fortification.description=<html><p>Каб павысіць уласную абароназдольнасьць, адзінкі могуць <em>умацоўваць</em> сябе на плітцы (будуючы часовыя траншыі і перашкоды). Поўнае ўмацаваньне займае адзін ход. Таксама фартыфікацыя аберагае адзінкі ад трапляньня ў засады, а ўмацаваная артылерыя не апынецца „ў адкрытым полі“, хоць напад пашкодзіць умацаваньні. Фартыфікацыя надае толькі абарончы бонус пры адсутнасьці іншых прыдатных абарончых уласьцівасьцяў, таму бонус недаступны пры ўмацаваньні на гарах ці ў калёніі, дзе існуе форт ці фартэцыя.</p></html>
|
colopedia.concepts.fortification.description=<html><p>Каб павысіць уласную абароназдольнасьць, адзінкі могуць <em>умацоўваць</em> сябе на плітцы (будуючы часовыя траншыі і перашкоды). Поўнае ўмацаваньне займае адзін ход. Таксама фартыфікацыя аберагае адзінкі ад трапляньня ў засады, а ўмацаваная артылерыя не апынецца „ў адкрытым полі“, хоць напад пашкодзіць умацаваньні. Фартыфікацыя надае толькі абарончы бонус пры адсутнасьці іншых прыдатных абарончых уласьцівасьцяў, таму бонус недаступны пры ўмацаваньні на гарах ці ў калёніі, дзе існуе форт ці фартэцыя.</p></html>
|
||||||
colopedia.concepts.independence.name=Незалежнасьць
|
colopedia.concepts.independence.name=Незалежнасьць
|
||||||
colopedia.concepts.independence.description=<html><p>Вы пачынаеце гульню дасьледнікам, маючы ў кіраваньні купку аддзелаў. Манарх разьлічвае, што вы заснуяцё ў Новым сьвеце калёнію і прывезяцё ў родны порт скарбы ды экзатычныя тавары. Але вы маеце іншыя пляны: зьбіраецеся заснаваць незалежную нацыю.</p><p>Каб абвясьціць незалежнасьць, вам трэба пераканаць у гэтым ня меней за 50% насельніцтва вашых калёніяў. Гэта можна зрабіць, вырабляючы <a href="http:///id/model.goods.bells">званы свабоды</a>, што будзе павялічваць і <a href="http:///id/colopedia.concepts.efficiency">эфэктыўнасьць</a> вашых калёніяў.</p><p>Як можна здагадацца, манарх не адпусьціць вас проста так. Пасьля абвяшчэньне незалежнасьці давядзецца змагацца з <a href="http:///id/colopedia.concepts.ref">Каралеўскімі экспэдыцыйнымі сіламі</a> (КЭС) і разьбіць іх. Калі КЭС захопіць усе вашыя ўзьбярэжныя калёніі ці прынамсі 90% вашага насельніцтва, вы прайграеце сваю барацьбу за незалежнасьць.</p></html>
|
colopedia.concepts.independence.description=<html><p>Вы пачынаеце гульню дасьледнікам, маючы ў кіраваньні купку аддзелаў. Манарх разьлічвае, што вы заснуяцё ў Новым сьвеце калёнію і прывезяцё ў родны порт скарбы ды экзатычныя тавары. Але вы маеце іншыя пляны: зьбіраецеся заснаваць незалежную нацыю.</p><p>Каб абвясьціць незалежнасьць, вам трэба пераканаць у гэтым ня меней за 50% насельніцтва вашых калёніяў. Гэта можна зрабіць, вырабляючы <a href="http:///id/model.goods.bells">званы свабоды</a>, што будзе павялічваць і <a href="http:///id/colopedia.concepts.efficiency">эфэктыўнасьць</a> вашых калёніяў.</p><p>Як можна здагадацца, манарх не адпусьціць вас проста так. Пасьля абвяшчэньне незалежнасьці давядзецца змагацца з <a href="http:///id/colopedia.concepts.ref">Каралеўскімі экспэдыцыйнымі сіламі</a> (КЭС) і разьбіць іх. Калі КЭС захопіць усе вашыя ўзьбярэжныя калёніі ці прынамсі 90% вашага насельніцтва, вы прайграеце сваю барацьбу за незалежнасьць.</p></html>
|
||||||
|
colopedia.concepts.interventionForce.name=Інтэрвэнцыйныя сілы
|
||||||
colopedia.concepts.interventionForce.description=<html><p>Любая спроба вашых калёніяў абвясьціць <a href="http:///id/colopedia.concepts.independence">незалежнасьць</a> немінуча аслабіць вашую родную краіну. Гэта будзе ў інтарэсах ворагаў вашай радзімы. З гэтай прычыны адзін зь іх выправіць <i>Сілы ўварваньня</i>, каб падтрымаць вас у <i>вайне за незалежнасьць</i> з <a href="http:///id/colopedia.concepts.ref">Каралеўскімі экспэдыцыйнымі сіламі</a> пры ўмове, што вы зможаце выпускаць дастатковую колькасьць <a href="http:///id/model.goods.bells">званоў свабоды</a>.</p><p>Цягам гульні <i>Інтэрвэнцыйныя войскі</i> і <a href="http:///id/colopedia.concepts.ref">Каралеўскія экспэдыцыйныя сілы</a> будуць папаўняцца новымі адзінкамі.</p></html>
|
colopedia.concepts.interventionForce.description=<html><p>Любая спроба вашых калёніяў абвясьціць <a href="http:///id/colopedia.concepts.independence">незалежнасьць</a> немінуча аслабіць вашую родную краіну. Гэта будзе ў інтарэсах ворагаў вашай радзімы. З гэтай прычыны адзін зь іх выправіць <i>Сілы ўварваньня</i>, каб падтрымаць вас у <i>вайне за незалежнасьць</i> з <a href="http:///id/colopedia.concepts.ref">Каралеўскімі экспэдыцыйнымі сіламі</a> пры ўмове, што вы зможаце выпускаць дастатковую колькасьць <a href="http:///id/model.goods.bells">званоў свабоды</a>.</p><p>Цягам гульні <i>Інтэрвэнцыйныя войскі</i> і <a href="http:///id/colopedia.concepts.ref">Каралеўскія экспэдыцыйныя сілы</a> будуць папаўняцца новымі адзінкамі.</p></html>
|
||||||
colopedia.concepts.ref.name=Каралеўскія экспэдыцыйныя сілы
|
colopedia.concepts.ref.name=Каралеўскія экспэдыцыйныя сілы
|
||||||
colopedia.concepts.ref.description=<html><p>Кароль не такі глупы, каб давяраць усялякаму канкістадорскаму зброду і рэлігійным фанатыкам, якія не жадаюць плаціць падаткі і схіляцца перад справядлівай каралеўскай уладай. З гэтай прычыны манарх трымае <i>Каралеўскія экспэдыцыйныя сілы</i> (КЭС), гатовыя здушыць любыя спробы абвяшчэньня <a href="http:///id/colopedia.concepts.independence">незалежнасьці</a> і выхаду з складу роднай дзяржавы.</p><p><i>Каралеўскія экспэдыцыйныя сілы</i> часткова ўраўнаважваюцца <a href="http:///id/colopedia.concepts.interventionForce">Інтэрвэнцыйнымі войскамі</a>, якія будуць накіраваныя замежнай дзяржавай, што падтрымлівае вашыя памкненьні. Гэтыя войскі рушаць, калі вы вырабіце дастатковую колькасьць <a href="http:///id/model.goods.bells">званоў свабоды</a>. Час ад часу новыя падразьдзяленьні будуць дадавацца як у <i>Каралеўскія экспэдыцыйныя сілы</i>, так і ў <a href="http:///id/colopedia.concepts.interventionForce">Інтэрвэнцыйныя войскі</a>.</p></html>
|
colopedia.concepts.ref.description=<html><p>Кароль не такі глупы, каб давяраць усялякаму канкістадорскаму зброду і рэлігійным фанатыкам, якія не жадаюць плаціць падаткі і схіляцца перад справядлівай каралеўскай уладай. З гэтай прычыны манарх трымае <i>Каралеўскія экспэдыцыйныя сілы</i> (КЭС), гатовыя здушыць любыя спробы абвяшчэньня <a href="http:///id/colopedia.concepts.independence">незалежнасьці</a> і выхаду з складу роднай дзяржавы.</p><p><i>Каралеўскія экспэдыцыйныя сілы</i> часткова ўраўнаважваюцца <a href="http:///id/colopedia.concepts.interventionForce">Інтэрвэнцыйнымі войскамі</a>, якія будуць накіраваныя замежнай дзяржавай, што падтрымлівае вашыя памкненьні. Гэтыя войскі рушаць, калі вы вырабіце дастатковую колькасьць <a href="http:///id/model.goods.bells">званоў свабоды</a>. Час ад часу новыя падразьдзяленьні будуць дадавацца як у <i>Каралеўскія экспэдыцыйныя сілы</i>, так і ў <a href="http:///id/colopedia.concepts.interventionForce">Інтэрвэнцыйныя войскі</a>.</p></html>
|
||||||
|
@ -2537,6 +2568,7 @@ report.colony.growing.description=%colony% можа вырасьці на {{plur
|
||||||
report.colony.growing.summary.description=Агульны лік каляністаў, які можа далучыцца да калёніяў на гэтым кантынэнце бяз шкоды для вытворчасьці
|
report.colony.growing.summary.description=Агульны лік каляністаў, які можа далучыцца да калёніяў на гэтым кантынэнце бяз шкоды для вытворчасьці
|
||||||
report.colony.improve.description=Адзінкі, якія могуць палепшыць вытворчасьць.
|
report.colony.improve.description=Адзінкі, якія могуць палепшыць вытворчасьць.
|
||||||
report.colony.improve.header=Палепшыць
|
report.colony.improve.header=Палепшыць
|
||||||
|
report.colony.improving.description=%colony% %location%: Каб вырабіць яшчэ %amount% %goods%, замяніце %oldUnit% на %unit%
|
||||||
report.colony.making.blocking.description=%colony%: %amount% %goods% неабходна для %buildable% {{plural:%turns%|one=на наступным %turns% ходзе|few=на наступных %turns% хадах|many=на наступных %turns% хадах}}
|
report.colony.making.blocking.description=%colony%: %amount% %goods% неабходна для %buildable% {{plural:%turns%|one=на наступным %turns% ходзе|few=на наступных %turns% хадах|many=на наступных %turns% хадах}}
|
||||||
report.colony.making.constructing.description=%colony%: %buildable% скончыцца {{plural:%turns%|one=праз %turns% ход|few=праз %turns% хады|many=праз %turns% хадоў}}
|
report.colony.making.constructing.description=%colony%: %buildable% скончыцца {{plural:%turns%|one=праз %turns% ход|few=праз %turns% хады|many=праз %turns% хадоў}}
|
||||||
report.colony.making.description=Чым займаецца калёнія
|
report.colony.making.description=Чым займаецца калёнія
|
||||||
|
@ -2548,6 +2580,7 @@ report.colony.name.header=Калёнія
|
||||||
report.colony.production.description=%colony%: вырабляецца %amount% %goods%
|
report.colony.production.description=%colony%: вырабляецца %amount% %goods%
|
||||||
report.colony.production.export.description=%colony%: вырабляецца %amount% %goods% (экспартуецца звыш %export%)
|
report.colony.production.export.description=%colony%: вырабляецца %amount% %goods% (экспартуецца звыш %export%)
|
||||||
report.colony.production.header=Агульная вытворчасьць %goods%
|
report.colony.production.header=Агульная вытворчасьць %goods%
|
||||||
|
report.colony.production.maxConsumption.description=%colony%: спажываецца %amount% %goods% (можа спажываць на %more% болей)
|
||||||
report.colony.production.waste.description=%colony%: вырабляецца %amount% %goods%, сховішча будзе перапоўненае, %waste% будзе страчана
|
report.colony.production.waste.description=%colony%: вырабляецца %amount% %goods%, сховішча будзе перапоўненае, %waste% будзе страчана
|
||||||
report.colony.tile.clearForest.header=В
|
report.colony.tile.clearForest.header=В
|
||||||
report.colony.tile.clearForest.header.description=Лік плітак калёніі, якія атрымаюць выгаду ад ачышчэньня.
|
report.colony.tile.clearForest.header.description=Лік плітак калёніі, якія атрымаюць выгаду ад ачышчэньня.
|
||||||
|
@ -2676,6 +2709,8 @@ confirmDeclarationDialog.defaultCountry=Злучаныя Штаты %nation%
|
||||||
confirmDeclarationDialog.defaultNation=Свабодныя {{tag:country|%nation%}}
|
confirmDeclarationDialog.defaultNation=Свабодныя {{tag:country|%nation%}}
|
||||||
confirmDeclarationDialog.enterCountry=З гэтага моманту наша краіна будзе вядома як
|
confirmDeclarationDialog.enterCountry=З гэтага моманту наша краіна будзе вядома як
|
||||||
confirmDeclarationDialog.enterNation=кожны грамадзянін нашай вялікай нацыі павінен ганарыцца тым, што ён будзе вядомы як
|
confirmDeclarationDialog.enterNation=кожны грамадзянін нашай вялікай нацыі павінен ганарыцца тым, што ён будзе вядомы як
|
||||||
|
flag.background.label=Фон
|
||||||
|
flag.backgroundColors.label=Колеры фону
|
||||||
flag.decoration.BEND=Тальмах
|
flag.decoration.BEND=Тальмах
|
||||||
flag.decoration.BEND_SINISTER=Левы тальмах
|
flag.decoration.BEND_SINISTER=Левы тальмах
|
||||||
flag.decoration.CHEVRON=Шаўрон
|
flag.decoration.CHEVRON=Шаўрон
|
||||||
|
@ -2719,6 +2754,10 @@ negotiationDialog.demand=%nation% патрабуе ад %otherNation%
|
||||||
negotiationDialog.exchange=у абмен на
|
negotiationDialog.exchange=у абмен на
|
||||||
negotiationDialog.offer=%nation% прапануюць %otherNation%
|
negotiationDialog.offer=%nation% прапануюць %otherNation%
|
||||||
negotiationDialog.send=Даслаць
|
negotiationDialog.send=Даслаць
|
||||||
|
negotiationDialog.title.contact=Сустрэча зь землякамі-эўрапейцамі
|
||||||
|
negotiationDialog.title.diplomatic=Дыпляматычныя перамовы
|
||||||
|
negotiationDialog.title.trade=Гандлёвыя перамовы
|
||||||
|
negotiationDialog.title.tribute=Патрабаваньне даніны
|
||||||
negotiationDialog.euBuyPrice=(%priceTotal% у Эўропе)
|
negotiationDialog.euBuyPrice=(%priceTotal% у Эўропе)
|
||||||
negotiationDialog.euSalePrice=(%priceTotal% у Эўропе)
|
negotiationDialog.euSalePrice=(%priceTotal% у Эўропе)
|
||||||
editSettlementDialog.removeSettlement=Зруйнаваць паселішча
|
editSettlementDialog.removeSettlement=Зруйнаваць паселішча
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
# Author: Steeve815
|
# Author: Steeve815
|
||||||
# Author: Strayblues
|
# Author: Strayblues
|
||||||
# Author: YaronSh
|
# Author: YaronSh
|
||||||
|
# Author: דגש
|
||||||
# Author: דגש חזק
|
# Author: דגש חזק
|
||||||
# Author: דניאל ב.
|
# Author: דניאל ב.
|
||||||
# Author: המקיסט
|
# Author: המקיסט
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,6 @@
|
||||||
# Messages for Italian (italiano)
|
# Messages for Italian (italiano)
|
||||||
# Exported from translatewiki.net
|
# Exported from translatewiki.net
|
||||||
|
# Author: Ajeje Brazorf
|
||||||
# Author: Alexmar983
|
# Author: Alexmar983
|
||||||
# Author: Aushulz
|
# Author: Aushulz
|
||||||
# Author: Beta16
|
# Author: Beta16
|
||||||
|
@ -2383,7 +2384,7 @@ highseas.no=No, restiamo in queste acque.
|
||||||
highseas.text=Siamo in alto mare, Vostra Eccellenza. Ci vorranno %number% {{plural:%number%|one=turno|other=turni}} per giungere in Europa. Dobbiamo salpare?
|
highseas.text=Siamo in alto mare, Vostra Eccellenza. Ci vorranno %number% {{plural:%number%|one=turno|other=turni}} per giungere in Europa. Dobbiamo salpare?
|
||||||
highseas.yes=Sì, per questa rotta.
|
highseas.yes=Sì, per questa rotta.
|
||||||
indianDemand.food.no=Spiacenti, i nostri depositi sono vuoti!
|
indianDemand.food.no=Spiacenti, i nostri depositi sono vuoti!
|
||||||
indianDemand.food.text=Il popolo %nation% è in ristrettezze. Chiediamo ai coloni di %colony% di condividere con noi l'abbondanza dei loro raccolti finchè dura la carestia. Per favore, dateci %amount% unità di cibo.
|
indianDemand.food.text=Il popolo %nation% è in ristrettezze. Chiediamo ai coloni di %colony% di condividere con noi l'abbondanza dei loro raccolti finché dura la carestia. Per favore, dateci %amount% unità di cibo.
|
||||||
indianDemand.food.yes=Condivideremo con piacere.
|
indianDemand.food.yes=Condivideremo con piacere.
|
||||||
indianDemand.gold.no=Andate via, ladri!
|
indianDemand.gold.no=Andate via, ladri!
|
||||||
indianDemand.gold.text=I coloni di %colony% hanno commesso innumerevoli atrocità contro il popolo %nation%. Chiediamo %amount% unità d'oro come risarcimento.
|
indianDemand.gold.text=I coloni di %colony% hanno commesso innumerevoli atrocità contro il popolo %nation%. Chiediamo %amount% unità d'oro come risarcimento.
|
||||||
|
@ -2768,7 +2769,7 @@ findSettlementPanel.displayOnlyEuropean=Trovare solo insediamenti europei
|
||||||
findSettlementPanel.displayOnlyNatives=Trovare solo insediamenti nativi
|
findSettlementPanel.displayOnlyNatives=Trovare solo insediamenti nativi
|
||||||
findSettlementPanel.name=Trova insediamento
|
findSettlementPanel.name=Trova insediamento
|
||||||
firstContactDialog.meeting.natives=Incontra i nativi
|
firstContactDialog.meeting.natives=Incontra i nativi
|
||||||
firstContactDialog.meeting.natives.tutorial=Abbiamo incontrato dei Nativi. Invia i tuoi Esploratori nei loro villaggi per saperne di più sul loro conto, e i tuoi Servitori a Contratto e Coloni Liberi affinchè imparino da essi. Invia le tue navi e le tue diligenze nei loro insediamenti, se desideri commerciare.
|
firstContactDialog.meeting.natives.tutorial=Abbiamo incontrato dei Nativi. Invia i tuoi Esploratori nei loro villaggi per saperne di più sul loro conto, e i tuoi Servitori a Contratto e Coloni Liberi affinché imparino da essi. Invia le tue navi e le tue diligenze nei loro insediamenti, se desideri commerciare.
|
||||||
firstContactDialog.welcomeOffer.text=Il popolo %nation% vi porge il benvenuto. Siamo una gloriosa nazione di %camps% %settlementType%. Per celebrare la nostra amicizia, generosamente vi offriamo in dono la terra che state occupando. Accettate il nostro trattato impegnandovi a rimanere in pace con noi come fratelli?
|
firstContactDialog.welcomeOffer.text=Il popolo %nation% vi porge il benvenuto. Siamo una gloriosa nazione di %camps% %settlementType%. Per celebrare la nostra amicizia, generosamente vi offriamo in dono la terra che state occupando. Accettate il nostro trattato impegnandovi a rimanere in pace con noi come fratelli?
|
||||||
firstContactDialog.welcomeSimple.text=Il popolo %nation% vi porge il benvenuto. Siamo una gloriosa nazione di %camps% %settlementType%. Accettate un trattato con noi per rimanere in pace come fratelli?
|
firstContactDialog.welcomeSimple.text=Il popolo %nation% vi porge il benvenuto. Siamo una gloriosa nazione di %camps% %settlementType%. Accettate un trattato con noi per rimanere in pace come fratelli?
|
||||||
abandonColony.no=Annulla
|
abandonColony.no=Annulla
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
# Author: Tark
|
# Author: Tark
|
||||||
# Author: Ti4goc
|
# Author: Ti4goc
|
||||||
# Author: Tiago Aquino <tiagoaquino007@hotmail.com>
|
# Author: Tiago Aquino <tiagoaquino007@hotmail.com>
|
||||||
|
# Author: Unamane
|
||||||
# Author: Vitorvicentevalente
|
# Author: Vitorvicentevalente
|
||||||
# Author: Waldir
|
# Author: Waldir
|
||||||
# Author: Waldyrious
|
# Author: Waldyrious
|
||||||
|
@ -2877,8 +2878,7 @@ report.trade.unitsSold=Unidades compradas ou vendidas
|
||||||
report.turn.filter=Não mostrar este tipo de mensagens (%type%)
|
report.turn.filter=Não mostrar este tipo de mensagens (%type%)
|
||||||
report.turn.ignore=Ignorar esta mensagem (Colónia: %colony%, Mercadorias: %goods%)
|
report.turn.ignore=Ignorar esta mensagem (Colónia: %colony%, Mercadorias: %goods%)
|
||||||
report.turn.playerNation={{tag:country|%nation%}} de %player%
|
report.turn.playerNation={{tag:country|%nation%}} de %player%
|
||||||
# Fuzzy
|
aboutPanel.copyright=Direitos de autor © 2002-2021 A Equipa do FreeCol
|
||||||
aboutPanel.copyright=Todos os direitos reservados © 2002-2019 A Equipa do FreeCol
|
|
||||||
aboutPanel.legalDisclaimer=O FreeCol é software livre: pode redistribuí-lo ou modificá-lo nos termos da GNU General Public License tal como publicada pela Free Software Foundation, versão 2 da Licença ou qualquer versão posterior.
|
aboutPanel.legalDisclaimer=O FreeCol é software livre: pode redistribuí-lo ou modificá-lo nos termos da GNU General Public License tal como publicada pela Free Software Foundation, versão 2 da Licença ou qualquer versão posterior.
|
||||||
aboutPanel.manual=Descarregamento do Manual do FreeCol
|
aboutPanel.manual=Descarregamento do Manual do FreeCol
|
||||||
aboutPanel.officialSite=Sítio oficial:
|
aboutPanel.officialSite=Sítio oficial:
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
# Author: Liuxinyu970226
|
# Author: Liuxinyu970226
|
||||||
# Author: Macofe
|
# Author: Macofe
|
||||||
# Author: Mark
|
# Author: Mark
|
||||||
|
# Author: Matěj Suchánek
|
||||||
# Author: McDutchie
|
# Author: McDutchie
|
||||||
# Author: Meno25
|
# Author: Meno25
|
||||||
# Author: MuratTheTurkish
|
# Author: MuratTheTurkish
|
||||||
|
@ -43,7 +44,7 @@
|
||||||
|
|
||||||
chilly=Value for:\n* {{Msg-freecol|Model.option.temperature.name}}
|
chilly=Value for:\n* {{Msg-freecol|Model.option.temperature.name}}
|
||||||
cold={{Identical|Cold}}\n\nValue for:\n* {{Msg-freecol|Model.option.temperature.name}}
|
cold={{Identical|Cold}}\n\nValue for:\n* {{Msg-freecol|Model.option.temperature.name}}
|
||||||
dry=Value for:\n* {{Msg-freecol|Model.option.humidity.name}}interplacents degress§
|
dry=Value for:\n* {{Msg-freecol|Model.option.humidity.name}}
|
||||||
hot={{Identical|Hot}}\n\nValue for:\n* {{Msg-freecol|Model.option.temperature.name}}
|
hot={{Identical|Hot}}\n\nValue for:\n* {{Msg-freecol|Model.option.temperature.name}}
|
||||||
temperate=Value for:\n* {{Msg-freecol|Model.option.temperature.name}}\n{{Identical|Temperate}}
|
temperate=Value for:\n* {{Msg-freecol|Model.option.temperature.name}}\n{{Identical|Temperate}}
|
||||||
veryDry=Value for:\n* {{Msg-freecol|Model.option.humidity.name}}
|
veryDry=Value for:\n* {{Msg-freecol|Model.option.humidity.name}}
|
||||||
|
|
|
@ -276,7 +276,7 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
|
|
||||||
// Successfully found a unit to display
|
// Successfully found a unit to display
|
||||||
if (player.hasNextActiveUnit()) {
|
if (player.hasNextActiveUnit()) {
|
||||||
getGUI().changeView(player.getNextActiveUnit());
|
getGUI().changeView(player.getNextActiveUnit(), false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,7 +311,12 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
; // If messages are displayed they probably refer to the
|
; // If messages are displayed they probably refer to the
|
||||||
// current unit, so do not update it.
|
// current unit, so do not update it.
|
||||||
} else {
|
} else {
|
||||||
if (updateUnit || active == null || !active.couldMove()
|
// Update the unit if asked to, or none present, or the
|
||||||
|
// current one is out of moves (but not in Europe or newly
|
||||||
|
// bought/trained units get immediately deselected), or has
|
||||||
|
// been captured.
|
||||||
|
if (updateUnit || active == null
|
||||||
|
|| (!active.couldMove() && !active.isInEurope())
|
||||||
|| !getMyPlayer().owns(active)) {
|
|| !getMyPlayer().owns(active)) {
|
||||||
// Tile is displayed if no new active unit is found,
|
// Tile is displayed if no new active unit is found,
|
||||||
// useful when the last unit might have died
|
// useful when the last unit might have died
|
||||||
|
@ -782,7 +787,7 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
if (getGUI().isPanelShowing()) return false; // Clear the panel first
|
if (getGUI().isPanelShowing()) return false; // Clear the panel first
|
||||||
|
|
||||||
final Player player = getMyPlayer();
|
final Player player = getMyPlayer();
|
||||||
final Unit active = getGUI().getActiveUnit();
|
Unit active = getGUI().getActiveUnit();
|
||||||
boolean ret = true;
|
boolean ret = true;
|
||||||
|
|
||||||
// Ensure the goto mode sticks.
|
// Ensure the goto mode sticks.
|
||||||
|
@ -795,7 +800,7 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
for (Unit unit : transform(player.getUnits(), tradePred,
|
for (Unit unit : transform(player.getUnits(), tradePred,
|
||||||
Function.<Unit>identity(),
|
Function.<Unit>identity(),
|
||||||
tradeRouteUnitComparator)) {
|
tradeRouteUnitComparator)) {
|
||||||
getGUI().changeView(unit);
|
getGUI().changeView(unit, false);
|
||||||
if (!moveToDestination(unit, messages)) {
|
if (!moveToDestination(unit, messages)) {
|
||||||
ret = false;
|
ret = false;
|
||||||
break;
|
break;
|
||||||
|
@ -820,15 +825,20 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
// Process all units.
|
// Process all units.
|
||||||
while (player.hasNextGoingToUnit()) {
|
while (player.hasNextGoingToUnit()) {
|
||||||
Unit unit = player.getNextGoingToUnit();
|
Unit unit = player.getNextGoingToUnit();
|
||||||
getGUI().changeView(unit);
|
getGUI().changeView(unit, false);
|
||||||
// Move the unit as much as possible
|
// Move the unit as much as possible
|
||||||
if (!moveToDestination(unit, null)) {
|
if (!moveToDestination(unit, null)) {
|
||||||
ret = false;
|
ret = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// This was the active unit, but we are confident it can not
|
||||||
|
// do anything else useful, so do not reselect it below
|
||||||
|
if (active == unit) active = null;
|
||||||
|
}
|
||||||
|
nextModelMessage(); // Might have LCR messages to display
|
||||||
|
if (ret) { // If no unit issues, restore previously active unit
|
||||||
|
getGUI().changeView(active, false);
|
||||||
}
|
}
|
||||||
// Might have LCR messages to display
|
|
||||||
nextModelMessage();
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -893,24 +903,29 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
* @param unit The {@code Unit} to move.
|
* @param unit The {@code Unit} to move.
|
||||||
* @param messages An optional list in which to retain any
|
* @param messages An optional list in which to retain any
|
||||||
* trade route {@code ModelMessage}s generated.
|
* trade route {@code ModelMessage}s generated.
|
||||||
* @return True if automatic movement can proceed.
|
* @return True if all is well with the unit, false if the unit
|
||||||
|
* should be selected and examined by the user.
|
||||||
*/
|
*/
|
||||||
private boolean moveToDestination(Unit unit, List<ModelMessage> messages) {
|
private boolean moveToDestination(Unit unit, List<ModelMessage> messages) {
|
||||||
final Player player = getMyPlayer();
|
final Player player = getMyPlayer();
|
||||||
Location destination;
|
Location destination = unit.getDestination();
|
||||||
PathNode path;
|
PathNode path;
|
||||||
|
boolean ret;
|
||||||
if (!requireOurTurn()
|
if (!requireOurTurn()
|
||||||
|| unit.isAtSea()
|
|| unit.isAtSea()
|
||||||
|| unit.getMovesLeft() <= 0
|
|| unit.getMovesLeft() <= 0
|
||||||
|| unit.getState() == UnitState.SKIPPED) {
|
|| unit.getState() == UnitState.SKIPPED) {
|
||||||
return true;
|
ret = true; // invalid, should not be here
|
||||||
} else if (unit.getTradeRoute() != null) {
|
} else if (unit.getTradeRoute() != null) {
|
||||||
return followTradeRoute(unit, messages);
|
ret = followTradeRoute(unit, messages);
|
||||||
} else if ((destination = unit.getDestination()) == null) {
|
} else if (destination == null) {
|
||||||
return true;
|
ret = true; // also invalid, but trade route check needed first
|
||||||
} else if (!changeState(unit, UnitState.ACTIVE)) {
|
} else if (!changeState(unit, UnitState.ACTIVE)) {
|
||||||
return true;
|
ret = true; // another error case
|
||||||
} else if ((path = unit.findPath(destination)) == null) {
|
} else if ((path = unit.findPath(destination)) == null) {
|
||||||
|
// No path to destination. Give the player a chance to do
|
||||||
|
// something about it, but default to skipping this unit as
|
||||||
|
// the path blockage is most likely just transient
|
||||||
StringTemplate src = unit.getLocation()
|
StringTemplate src = unit.getLocation()
|
||||||
.getLocationLabelFor(player);
|
.getLocationLabelFor(player);
|
||||||
StringTemplate dst = destination.getLocationLabelFor(player);
|
StringTemplate dst = destination.getLocationLabelFor(player);
|
||||||
|
@ -922,26 +937,34 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
.addStringTemplate("%destination%", dst);
|
.addStringTemplate("%destination%", dst);
|
||||||
getGUI().showInformationPanel(unit, template);
|
getGUI().showInformationPanel(unit, template);
|
||||||
changeState(unit, UnitState.SKIPPED);
|
changeState(unit, UnitState.SKIPPED);
|
||||||
return false;
|
ret = false;
|
||||||
} else {
|
} else if (!movePath(unit, path)) {
|
||||||
|
ret = false; // ask the player to resolve the movePath problem
|
||||||
|
} if (unit.isAtLocation(destination)) {
|
||||||
|
final Colony colony = (unit.hasTile()) ? unit.getTile().getColony()
|
||||||
|
: null;
|
||||||
// Clear ordinary destinations if arrived.
|
// Clear ordinary destinations if arrived.
|
||||||
getGUI().changeView(unit);
|
if (!askClearGotoOrders(unit)) {
|
||||||
if (!movePath(unit, path)) return false;
|
ret = false; // Should not happen. Desync? Ask the user.
|
||||||
|
} else if (colony != null) {
|
||||||
if (unit.isAtLocation(destination)) {
|
// Always ask to be selected if arriving at a colony
|
||||||
if (!askClearGotoOrders(unit)) return false;
|
// unless the unit cashed in (and thus gone), and bring
|
||||||
|
// up the colony panel so something can be done with the
|
||||||
Colony colony = (unit.hasTile()) ? unit.getTile().getColony()
|
// unit
|
||||||
: null;
|
if (checkCashInTreasureTrain(unit)) {
|
||||||
if (colony != null) {
|
ret = true;
|
||||||
if (!checkCashInTreasureTrain(unit)) {
|
} else {
|
||||||
dispColonyPanel(colony, unit);
|
dispColonyPanel(colony, unit);
|
||||||
}
|
ret = false;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// If the unit has moves left, select it
|
||||||
|
ret = unit.getMovesLeft() == 0;
|
||||||
}
|
}
|
||||||
return true;
|
} else { // Still in transit, do not select
|
||||||
|
ret = true;
|
||||||
}
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1189,6 +1212,9 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
// the goto orders because they have failed.
|
// the goto orders because they have failed.
|
||||||
if (!askClearGotoOrders(unit)) result = false;
|
if (!askClearGotoOrders(unit)) result = false;
|
||||||
}
|
}
|
||||||
|
// Force redisplay of unit information
|
||||||
|
getGUI().changeView(unit, true);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1764,7 +1790,7 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
|
|
||||||
} else if (settlement instanceof IndianSettlement) {
|
} else if (settlement instanceof IndianSettlement) {
|
||||||
askServer().newNativeTradeSession(unit, (IndianSettlement)settlement);
|
askServer().newNativeTradeSession(unit, (IndianSettlement)settlement);
|
||||||
getGUI().changeView(unit); // Will be deselected on losing moves
|
getGUI().changeView(unit, false); // Will be deselected on losing moves
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException("Bogus settlement: "
|
throw new RuntimeException("Bogus settlement: "
|
||||||
|
@ -3947,11 +3973,11 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
|
|
||||||
invokeLater(() -> {
|
invokeLater(() -> {
|
||||||
Unit current = gui.getActiveUnit();
|
Unit current = gui.getActiveUnit();
|
||||||
gui.changeView(unit);
|
gui.changeView(unit, false);
|
||||||
UnitWas uw = new UnitWas(unit);
|
UnitWas uw = new UnitWas(unit);
|
||||||
nativeTrade(nt, act, nti, prompt);
|
nativeTrade(nt, act, nti, prompt);
|
||||||
uw.fireChanges();
|
uw.fireChanges();
|
||||||
gui.changeView(current);
|
gui.changeView(current, false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4417,7 +4443,7 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
Unit newUnit = askEmigrate(player.getEurope(),
|
Unit newUnit = askEmigrate(player.getEurope(),
|
||||||
MigrationType.migrantIndexToSlot(index));
|
MigrationType.migrantIndexToSlot(index));
|
||||||
if (newUnit != null) {
|
if (newUnit != null) {
|
||||||
getGUI().changeView(newUnit);
|
getGUI().changeView(newUnit, false);
|
||||||
updateGUI(null, false);
|
updateGUI(null, false);
|
||||||
}
|
}
|
||||||
return newUnit != null;
|
return newUnit != null;
|
||||||
|
@ -4921,7 +4947,7 @@ public final class InGameController extends FreeColClientHolder {
|
||||||
&& (newUnit = europeWas.getNewUnit()) != null;
|
&& (newUnit = europeWas.getNewUnit()) != null;
|
||||||
if (ret) {
|
if (ret) {
|
||||||
europeWas.fireChanges();
|
europeWas.fireChanges();
|
||||||
getGUI().changeView(newUnit);
|
getGUI().changeView(newUnit, false);
|
||||||
updateGUI(null, false);
|
updateGUI(null, false);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -1560,8 +1560,10 @@ public class GUI extends FreeColClientHolder {
|
||||||
* MapEditorController, TilePopup, QuickActionMenu, UnitLabel
|
* MapEditorController, TilePopup, QuickActionMenu, UnitLabel
|
||||||
*
|
*
|
||||||
* @param unit The {@code Unit} to select.
|
* @param unit The {@code Unit} to select.
|
||||||
|
* @param force Set true if the unit is the same, but *has*
|
||||||
|
* changed in some way (e.g. moves left).
|
||||||
*/
|
*/
|
||||||
public void changeView(Unit unit) {}
|
public void changeView(Unit unit, boolean force) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change to map transform mode, and select a transform.
|
* Change to map transform mode, and select a transform.
|
||||||
|
|
|
@ -674,7 +674,7 @@ public class SwingGUI extends GUI {
|
||||||
// Update the view, somehow. Try really hard to find a tile
|
// Update the view, somehow. Try really hard to find a tile
|
||||||
// to focus on
|
// to focus on
|
||||||
if (active != null) {
|
if (active != null) {
|
||||||
changeView(active);
|
changeView(active, false);
|
||||||
if (tile == null) {
|
if (tile == null) {
|
||||||
tile = active.getTile();
|
tile = active.getTile();
|
||||||
if (tile == null) {
|
if (tile == null) {
|
||||||
|
@ -684,7 +684,7 @@ public class SwingGUI extends GUI {
|
||||||
} else if (tile != null) {
|
} else if (tile != null) {
|
||||||
changeView(tile);
|
changeView(tile);
|
||||||
} else {
|
} else {
|
||||||
changeView((Unit)null);
|
changeView((Unit)null, false);
|
||||||
}
|
}
|
||||||
this.mapViewer.changeFocus(tile);
|
this.mapViewer.changeFocus(tile);
|
||||||
}
|
}
|
||||||
|
@ -1197,14 +1197,14 @@ public class SwingGUI extends GUI {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void changeView(Unit unit) {
|
public void changeView(Unit unit, boolean force) {
|
||||||
boolean change = changeViewMode(ViewMode.MOVE_UNITS);
|
boolean change = changeViewMode(ViewMode.MOVE_UNITS);
|
||||||
change |= changeActiveUnit(unit);
|
change |= changeActiveUnit(unit);
|
||||||
if (unit != null) {
|
if (unit != null) {
|
||||||
// Bring the selected tile along with the unit.
|
// Bring the selected tile along with the unit.
|
||||||
change |= changeSelectedTile(unit.getTile(), true);
|
change |= changeSelectedTile(unit.getTile(), true);
|
||||||
}
|
}
|
||||||
changeDone(change);
|
changeDone(change || force);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1326,7 +1326,7 @@ public class SwingGUI extends GUI {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
changeView(other);
|
changeView(other, false);
|
||||||
} else { // Select the tile under the unit if it is not ours
|
} else { // Select the tile under the unit if it is not ours
|
||||||
changeView(tile);
|
changeView(tile);
|
||||||
}
|
}
|
||||||
|
|
|
@ -218,7 +218,7 @@ public final class TilePopup extends JPopupMenu {
|
||||||
.template("activateAllUnits"));
|
.template("activateAllUnits"));
|
||||||
activateAllItem.addActionListener((ActionEvent ae) -> {
|
activateAllItem.addActionListener((ActionEvent ae) -> {
|
||||||
for (Unit unit : tile.getUnitList()) igc.clearOrders(unit);
|
for (Unit unit : tile.getUnitList()) igc.clearOrders(unit);
|
||||||
gui.changeView(tile.getFirstUnit());
|
gui.changeView(tile.getFirstUnit(), false);
|
||||||
});
|
});
|
||||||
add(activateAllItem);
|
add(activateAllItem);
|
||||||
}
|
}
|
||||||
|
@ -370,6 +370,7 @@ public final class TilePopup extends JPopupMenu {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a unit entry to this popup.
|
* Adds a unit entry to this popup.
|
||||||
|
*
|
||||||
* @param menu a {@code Container} value
|
* @param menu a {@code Container} value
|
||||||
* @param unit The unit that will be represented on the popup.
|
* @param unit The unit that will be represented on the popup.
|
||||||
* @param enabled The initial state for the menu item.
|
* @param enabled The initial state for the menu item.
|
||||||
|
@ -387,7 +388,7 @@ public final class TilePopup extends JPopupMenu {
|
||||||
JMenuItem menuItem = new JMenuItem(text);
|
JMenuItem menuItem = new JMenuItem(text);
|
||||||
menuItem.setFont(this.font);
|
menuItem.setFont(this.font);
|
||||||
menuItem.addActionListener((ActionEvent ae) -> {
|
menuItem.addActionListener((ActionEvent ae) -> {
|
||||||
gui.changeView(unit);
|
gui.changeView(unit, false);
|
||||||
});
|
});
|
||||||
if (indent) {
|
if (indent) {
|
||||||
menuItem.setFont(menuItem.getFont().deriveFont(Font.ITALIC));
|
menuItem.setFont(menuItem.getFont().deriveFont(Font.ITALIC));
|
||||||
|
|
|
@ -94,7 +94,7 @@ public class ChangeAction extends UnitAction {
|
||||||
if (tile.getColony() != null) {
|
if (tile.getColony() != null) {
|
||||||
getGUI().showColonyPanel(tile.getColony(), unit);
|
getGUI().showColonyPanel(tile.getColony(), unit);
|
||||||
} else if (unit.isOnCarrier()) {
|
} else if (unit.isOnCarrier()) {
|
||||||
getGUI().changeView(unit.getCarrier());
|
getGUI().changeView(unit.getCarrier(), false);
|
||||||
} else {
|
} else {
|
||||||
boolean activeUnitFound = false;
|
boolean activeUnitFound = false;
|
||||||
for (Unit u : tile.getUnitList()) {
|
for (Unit u : tile.getUnitList()) {
|
||||||
|
@ -103,7 +103,7 @@ public class ChangeAction extends UnitAction {
|
||||||
} else if (activeUnitFound
|
} else if (activeUnitFound
|
||||||
&& u.getState() == Unit.UnitState.ACTIVE
|
&& u.getState() == Unit.UnitState.ACTIVE
|
||||||
&& u.getMovesLeft() > 0) {
|
&& u.getMovesLeft() > 0) {
|
||||||
getGUI().changeView(u);
|
getGUI().changeView(u, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ public class ChangeAction extends UnitAction {
|
||||||
u -> (u != unit
|
u -> (u != unit
|
||||||
&& u.getState() == Unit.UnitState.ACTIVE
|
&& u.getState() == Unit.UnitState.ACTIVE
|
||||||
&& u.getMovesLeft() > 0));
|
&& u.getMovesLeft() > 0));
|
||||||
if (active != null) getGUI().changeView(active);
|
if (active != null) getGUI().changeView(active, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class ToggleViewModeAction extends MapboardAction {
|
||||||
gui.changeView(gui.getSelectedTile());
|
gui.changeView(gui.getSelectedTile());
|
||||||
break;
|
break;
|
||||||
case TERRAIN:
|
case TERRAIN:
|
||||||
gui.changeView(gui.getActiveUnit());
|
gui.changeView(gui.getActiveUnit(), false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -212,7 +212,7 @@ public final class EndTurnDialog extends FreeColConfirmDialog {
|
||||||
if (wrapper.unit.isInEurope()) {
|
if (wrapper.unit.isInEurope()) {
|
||||||
getGUI().showEuropePanel();
|
getGUI().showEuropePanel();
|
||||||
} else {
|
} else {
|
||||||
getGUI().changeView(wrapper.unit);
|
getGUI().changeView(wrapper.unit, false);
|
||||||
if (wrapper.unit.getColony() != null) {
|
if (wrapper.unit.getColony() != null) {
|
||||||
getGUI().showColonyPanel(wrapper.unit.getColony(),
|
getGUI().showColonyPanel(wrapper.unit.getColony(),
|
||||||
wrapper.unit);
|
wrapper.unit);
|
||||||
|
|
|
@ -333,7 +333,7 @@ public final class UnitLabel extends FreeColLabel
|
||||||
break;
|
break;
|
||||||
case ACTIVATE_UNIT:
|
case ACTIVATE_UNIT:
|
||||||
igc.changeState(this.unit, UnitState.ACTIVE);
|
igc.changeState(this.unit, UnitState.ACTIVE);
|
||||||
getGUI().changeView(this.unit);
|
getGUI().changeView(this.unit, false);
|
||||||
break;
|
break;
|
||||||
case FORTIFY:
|
case FORTIFY:
|
||||||
igc.changeState(this.unit, UnitState.FORTIFYING);
|
igc.changeState(this.unit, UnitState.FORTIFYING);
|
||||||
|
|
|
@ -108,26 +108,34 @@ public class GoodsTypePanel extends MigPanel implements DropTarget {
|
||||||
* Do not repaint, that will be done top down.
|
* Do not repaint, that will be done top down.
|
||||||
*
|
*
|
||||||
* @param label The {@code GoodsTypeLabel} to add.
|
* @param label The {@code GoodsTypeLabel} to add.
|
||||||
|
* @return True if the label was added.
|
||||||
*/
|
*/
|
||||||
public void addLabel(GoodsTypeLabel label) {
|
public boolean addLabel(GoodsTypeLabel label) {
|
||||||
if (label != null
|
if (label != null
|
||||||
&& (!this.unique || findLabel(label.getType()) == null)) {
|
&& (!this.unique || findLabel(label.getType()) == null)) {
|
||||||
add(label);
|
Component ret = super.add(label);
|
||||||
revalidate();
|
revalidate();
|
||||||
|
repaint();
|
||||||
|
return ret != null;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove labels that correspond to a given goods type.
|
* Remove labels that correspond to a given goods type.
|
||||||
*
|
*
|
||||||
* @param gt The {@code GoodsType} to remove.
|
* @param gt The {@code GoodsType} to remove.
|
||||||
|
* @return True if the goods were removed.
|
||||||
*/
|
*/
|
||||||
public void removeGoodsType(GoodsType gt) {
|
public boolean removeGoodsType(GoodsType gt) {
|
||||||
Component child = findLabel(gt);
|
Component child = findLabel(gt);
|
||||||
if (child != null) {
|
if (child != null) {
|
||||||
remove(child);
|
super.remove(child);
|
||||||
revalidate();
|
revalidate();
|
||||||
|
repaint();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implement DropTarget
|
// Implement DropTarget
|
||||||
|
@ -141,10 +149,8 @@ public class GoodsTypePanel extends MigPanel implements DropTarget {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
public Component add(Component comp, boolean editState) {
|
public Component add(Component comp, boolean editState) {
|
||||||
if (comp instanceof GoodsTypeLabel) {
|
if (comp instanceof GoodsTypeLabel
|
||||||
addLabel((GoodsTypeLabel)comp);
|
&& addLabel((GoodsTypeLabel)comp)) return comp;
|
||||||
return comp;
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -506,13 +506,21 @@ public final class InfoPanel extends FreeColPanel
|
||||||
|
|
||||||
boolean updated = false;
|
boolean updated = false;
|
||||||
InfoPanelMode oldMode = changeMode(InfoPanelMode.UNIT);
|
InfoPanelMode oldMode = changeMode(InfoPanelMode.UNIT);
|
||||||
if (oldMode != InfoPanelMode.UNIT || unit != this.unit) {
|
if (unit != this.unit) {
|
||||||
|
// Only update the PCLs when the unit changes
|
||||||
|
if (this.unit != null) {
|
||||||
|
this.unit.removePropertyChangeListener(this);
|
||||||
|
GoodsContainer gc = this.unit.getGoodsContainer();
|
||||||
|
if (gc != null) gc.removePropertyChangeListener(this);
|
||||||
|
}
|
||||||
unit.addPropertyChangeListener(this);
|
unit.addPropertyChangeListener(this);
|
||||||
GoodsContainer gc = unit.getGoodsContainer();
|
GoodsContainer gc = unit.getGoodsContainer();
|
||||||
if (gc != null) gc.addPropertyChangeListener(this);
|
if (gc != null) gc.addPropertyChangeListener(this);
|
||||||
this.unit = fillUnitPanel(unit);
|
|
||||||
updated = true;
|
|
||||||
}
|
}
|
||||||
|
// Always call fillUnitPanel because while the unit may not
|
||||||
|
// change, its annotations (such as moves left) might
|
||||||
|
this.unit = fillUnitPanel(unit);
|
||||||
|
updated = true;
|
||||||
logger.info("InfoPanel " + ((updated) ? "updated " : "maintained ")
|
logger.info("InfoPanel " + ((updated) ? "updated " : "maintained ")
|
||||||
+ oldMode + " -> " + this.mode + " with unit " + unit);
|
+ oldMode + " -> " + this.mode + " with unit " + unit);
|
||||||
}
|
}
|
||||||
|
|
|
@ -503,7 +503,7 @@ public final class QuickActionMenu extends JPopupMenu {
|
||||||
freeColClient.getInGameController()
|
freeColClient.getInGameController()
|
||||||
.changeState(tempUnit, Unit.UnitState.ACTIVE);
|
.changeState(tempUnit, Unit.UnitState.ACTIVE);
|
||||||
}
|
}
|
||||||
gui.changeView(tempUnit);
|
gui.changeView(tempUnit, false);
|
||||||
});
|
});
|
||||||
menuItem.setEnabled(!isUnitAtSea);
|
menuItem.setEnabled(!isUnitAtSea);
|
||||||
this.add(menuItem);
|
this.add(menuItem);
|
||||||
|
|
|
@ -177,7 +177,7 @@ public final class TradeRouteInputPanel extends FreeColPanel
|
||||||
private class StopGoodsTypesPanel extends GoodsTypePanel {
|
private class StopGoodsTypesPanel extends GoodsTypePanel {
|
||||||
|
|
||||||
public StopGoodsTypesPanel() {
|
public StopGoodsTypesPanel() {
|
||||||
super(false);
|
super(new MigLayout("wrap 10"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Interface DropTarget
|
// Interface DropTarget
|
||||||
|
|
|
@ -29,8 +29,12 @@ public class FreeColSeed {
|
||||||
|
|
||||||
public static final long DEFAULT_SEED = 0L;
|
public static final long DEFAULT_SEED = 0L;
|
||||||
|
|
||||||
|
/** The seed to use for pseudo-random number generators. */
|
||||||
private static long freeColSeed = DEFAULT_SEED;
|
private static long freeColSeed = DEFAULT_SEED;
|
||||||
|
|
||||||
|
/** Has a seed been set? */
|
||||||
|
private static boolean seeded = false;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the seed for the PRNG.
|
* Gets the seed for the PRNG.
|
||||||
|
@ -41,6 +45,15 @@ public class FreeColSeed {
|
||||||
return FreeColSeed.freeColSeed;
|
return FreeColSeed.freeColSeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Has the game been seeded?
|
||||||
|
*
|
||||||
|
* @return True if a seed has been set.
|
||||||
|
*/
|
||||||
|
public static boolean hasFreeColSeed() {
|
||||||
|
return FreeColSeed.seeded;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a new seed.
|
* Generate a new seed.
|
||||||
*/
|
*/
|
||||||
|
@ -57,6 +70,7 @@ public class FreeColSeed {
|
||||||
public static boolean setFreeColSeed(String arg) {
|
public static boolean setFreeColSeed(String arg) {
|
||||||
try {
|
try {
|
||||||
FreeColSeed.freeColSeed = Long.parseLong(arg);
|
FreeColSeed.freeColSeed = Long.parseLong(arg);
|
||||||
|
FreeColSeed.seeded = true;
|
||||||
return true;
|
return true;
|
||||||
} catch (NumberFormatException nfe) {}
|
} catch (NumberFormatException nfe) {}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -379,7 +379,7 @@ public class DebugUtils {
|
||||||
// Note "game" is no longer valid after reconnect.
|
// Note "game" is no longer valid after reconnect.
|
||||||
Unit unit = freeColClient.getGame()
|
Unit unit = freeColClient.getGame()
|
||||||
.getFreeColGameObject(sUnit.getId(), Unit.class);
|
.getFreeColGameObject(sUnit.getId(), Unit.class);
|
||||||
if (unit != null) gui.changeView(unit);
|
if (unit != null) gui.changeView(unit, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -538,7 +538,7 @@ public class DebugUtils {
|
||||||
server.getInGameController().debugChangeOwner(sUnit, sPlayer);
|
server.getInGameController().debugChangeOwner(sUnit, sPlayer);
|
||||||
|
|
||||||
Player myPlayer = freeColClient.getMyPlayer();
|
Player myPlayer = freeColClient.getMyPlayer();
|
||||||
if (myPlayer.owns(unit)) gui.changeView(unit);
|
if (myPlayer.owns(unit)) gui.changeView(unit, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -917,8 +917,7 @@ public class DebugUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Unit unit = units.get(0);
|
Unit unit = units.get(0);
|
||||||
gui.changeView(); // force active unit update
|
gui.changeView(unit, true);
|
||||||
gui.changeView(unit);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -106,7 +106,12 @@ public class FreeColXMLReader extends StreamReaderDelegate
|
||||||
/** The read scope to apply. */
|
/** The read scope to apply. */
|
||||||
private ReadScope readScope;
|
private ReadScope readScope;
|
||||||
|
|
||||||
/** A cache of uninterned objects. */
|
/**
|
||||||
|
* A cache of uninterned objects. Uninterned reads add to this list
|
||||||
|
* so that they can refer to sub-objects correctly. However there is no
|
||||||
|
* obvious place to clear this cache, so we do that in replaceScope
|
||||||
|
* as you can not expect to reference the same object across scopes.
|
||||||
|
*/
|
||||||
private Map<String, FreeColObject> uninterned
|
private Map<String, FreeColObject> uninterned
|
||||||
= new HashMap<String, FreeColObject>();
|
= new HashMap<String, FreeColObject>();
|
||||||
|
|
||||||
|
@ -241,6 +246,12 @@ public class FreeColXMLReader extends StreamReaderDelegate
|
||||||
*/
|
*/
|
||||||
public ReadScope replaceScope(ReadScope newReadScope) {
|
public ReadScope replaceScope(ReadScope newReadScope) {
|
||||||
ReadScope ret = this.readScope;
|
ReadScope ret = this.readScope;
|
||||||
|
|
||||||
|
if (this.readScope != newReadScope) {
|
||||||
|
// Take the opportunity to clear the uninterned object cache
|
||||||
|
// as they can not be the same across scopes
|
||||||
|
this.uninterned.clear();
|
||||||
|
}
|
||||||
this.readScope = newReadScope;
|
this.readScope = newReadScope;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -326,7 +326,13 @@ public final class FreeColServer {
|
||||||
// NationOptions will be read from the saved game.
|
// NationOptions will be read from the saved game.
|
||||||
Session.clearAll();
|
Session.clearAll();
|
||||||
|
|
||||||
|
if (FreeColSeed.hasFreeColSeed()) {
|
||||||
|
// A seed has been specified on the command line, so override
|
||||||
|
// the PRNG from savegame.
|
||||||
|
this.random = new Random(FreeColSeed.getFreeColSeed());
|
||||||
|
}
|
||||||
this.inGameController.setRandom(this.random);
|
this.inGameController.setRandom(this.random);
|
||||||
|
|
||||||
this.mapGenerator = null;
|
this.mapGenerator = null;
|
||||||
registerWithMetaServer();
|
registerWithMetaServer();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue