From 3d324f516de3624667f5e82dfaf1a8d4317cef84 Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Sat, 7 Sep 2019 07:31:16 +0800 Subject: [PATCH 01/13] AIs are not affected by auto-production setting. --- core/src/com/unciv/logic/automation/ConstructionAutomation.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/logic/automation/ConstructionAutomation.kt b/core/src/com/unciv/logic/automation/ConstructionAutomation.kt index 782d12fedc..d602770e03 100644 --- a/core/src/com/unciv/logic/automation/ConstructionAutomation.kt +++ b/core/src/com/unciv/logic/automation/ConstructionAutomation.kt @@ -6,6 +6,7 @@ import com.unciv.UnCivGame import com.unciv.logic.city.CityConstructions import com.unciv.logic.city.SpecialConstruction import com.unciv.logic.civilization.CityAction +import com.unciv.logic.civilization.PlayerType import com.unciv.models.gamebasics.Building import com.unciv.models.gamebasics.VictoryType import com.unciv.models.stats.Stat @@ -44,7 +45,7 @@ class ConstructionAutomation(val cityConstructions: CityConstructions){ } fun chooseNextConstruction() { - if (!UnCivGame.Current.settings.autoAssignCityProduction) return + if (!UnCivGame.Current.settings.autoAssignCityProduction && civInfo.playerType== PlayerType.Human) return if (cityConstructions.getCurrentConstruction() !is SpecialConstruction) return // don't want to be stuck on these forever addFoodBuildingChoice() From c2c01adec8ec6e1d26ed7861a7cfd763965f1486 Mon Sep 17 00:00:00 2001 From: pikkolpk <54770149+pikkolpk@users.noreply.github.com> Date: Fri, 6 Sep 2019 20:36:40 +0300 Subject: [PATCH 02/13] Update Buildings.json --- .../assets/jsons/Translations/Buildings.json | 40 +++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/android/assets/jsons/Translations/Buildings.json b/android/assets/jsons/Translations/Buildings.json index e862dc00c2..381cd9fa61 100644 --- a/android/assets/jsons/Translations/Buildings.json +++ b/android/assets/jsons/Translations/Buildings.json @@ -226,6 +226,7 @@ German:"Kultur- und Goldkosten für den Erwerb neuer Felder in dieser Stadt sind um 25% reduziert" French:"Cout d'acquisition en or et en culture de nouvelle cases réduit de 25% dans cette ville" Polish:"Koszt uzyskania nowego pola (w kulturze lub złocie) zmniejszony o 25% w tym mieście" + Russian:"-25% к необходимому количеству Культура и Золото для получения клеток вокруг данного города" } "Colossus":{ @@ -233,7 +234,7 @@ Simplified_Chinese:"太阳神巨像" French:"Colosse" Polish:"Kolos rodyjski" - Russian:"Колосс" + Russian:"Колосс Родосский" } "+1 gold from worked water tiles in city":{ @@ -241,6 +242,7 @@ Simplified_Chinese:"所在城市每个水上地块+1金钱" French:"+1 or pour les cases maritimes exploitées par la ville" Polish:"+1 do złota z obsadzonych pól wodnych w tym mieście" + Russian:"+1 Золото от обрабатываемых водных клеток вокруг города" } "Temple":{ @@ -366,6 +368,7 @@ French:"+1 nourriture des cases océans et côtes" Simplified_Chinese:"每个海滨地块和海洋地块+1食物" Polish:"+1 do żywności z pól wybrzeża i oceanicznych" + Russian:"+1 Еда от клеток около берега и в океане" } "The Great Lighthouse":{ @@ -389,6 +392,7 @@ Portuguese:"Todas as unidades navais recebem +1 movimento e +1 em sua linha de visão" German:"Alle militärischen Marineeinheiten erhalten +1 Bewegung und +1 Sicht" Polish:"Każda jednostka marynarki otrzymuje +1 do ruchu i pola widzenia" + Russian:"Все военно-морские юниты получают +1 к движению и обзору" } /* @@ -423,6 +427,7 @@ French:"+15% Production lorsqu'une unité montée est produite dans cette ville" Simplified_Chinese:"组建骑乘单位时产能积累速率+15%" Polish:"+15% do produkcji jednostek kawalerii" + Russian:"+15% Производство при постройке конных юнитов в данном городе" } "Circus Maximus":{ @@ -532,6 +537,7 @@ German:"Gibt 1 extra Einheit jeder verbesserten Luxusresource in der Nähe dieser Stadt" French:"Produit un exemplaire supplémentaire de chaque ressources de luxe à côté de cette ville" Polish:"Każdy luksusowy surowiec w granicach miasta jest liczony podwójnie" + Russian:"Предоставляет копию каждого обрабатываемого редкого ресурса около данного города" } "+2 Gold for each source of Oil and oasis":{ @@ -542,6 +548,7 @@ German:"+2 Gold für jede Ölquelle oder Oase" French:"+2 or pour chaque ressources de pétrole et d'oasis" Polish:"+2 do złota z każdej oazy lub złoża ropy" + Russian:"+2 Золото от каждого источника Нефть и оазиса" } "Monastery":{ @@ -582,7 +589,7 @@ "+33% great person generation in all cities":{ Italian:"+33% di generazione di Grandi Personaggi in tutte le città" - Russian:"+ 33% к созданию великих людей во всех городах" + Russian:"+33% к созданию великих людей во всех городах" French:"+ 33% de génération de Personnages illustres dans toutes les villes" Romanian:"+33% generație de persoane mari în toate orașele" German:"+33% erhöhte Wahrscheinlichkeit für die Geburt Großer Persönlichkeiten" @@ -668,6 +675,7 @@ Simplified_Chinese:"境内敌方陆军单位在任何地块额外消耗1移动力" French:"Les unités terrestre ennemies doivent dépenser un point de déplacement supplémentaires quand elles sont dans votre territoire (rendus obsolète par la Dynamite)" Polish:"Każda lądowa jednostka wroga musi zużyć dodatkowy 1 punkt ruchu by wejść na twoje terytorium (przestarzały po odkryciu dynamitu)" + Russian:"Вражеские наземные юниты должны тратить дополнительное очко передвижения на вашей территории (устаревает при открытии Динамита)" } "Workshop":{ @@ -729,6 +737,7 @@ Portuguese:"1+ de produção de todos os recursos marítimos trabalhados pelo cidade" German:"+1 Produktion von allen Meer Ressourcen die von dieser Stadt bewirtschaftet werden" Polish:"+1 do produkcji za każdy wydobywany surowiec morski" + Russian:"+1 Производство от всех обрабатываемых городом морских клеток" } "Connects trade routes over water":{ @@ -740,6 +749,7 @@ Portuguese:"Conecta rotas comerciais pela água" German:"Verbindet Handelsrouten über Wasser" Polish:"Tworzy wodne szlaki handlowe" + Russian:"Создаёт водные торговые пути" } "University":{ @@ -804,6 +814,7 @@ French:"Fort Monghol" Polish:"Fort Mogołów" Simplified_Chinese:"莫卧儿城塞" + Russian:"Красный Форт" } "Alhambra":{ @@ -821,6 +832,7 @@ French:"Toutes les unités terrestres, montées, et renforcées produites dans cette ville recoivent la promotion Percé I" //not sure about the name of the promotion Simplified_Chinese:"所在城市新组建的近战、骑乘和装甲单位获得“操练I级”晋升" Polish:"Każdy nowo wyszkolona w tym mieście jednostka walcząca w zwarciu otrzymuje umiejętność Musztra I" + Russian:"Производимые в данном городе юниты конные, бронированные, а также ближнего боя получают повышение Муштра I" } "Angkor Wat":{ @@ -869,6 +881,7 @@ Portuguese:"Aparece um Grande Cientista grátis" German:"Ein kostenloser Großer Wissenschaftler erscheint" Polish:"Pojawia się darmowy Wielki Naukowiec" + Russian:"Появляется бесплатный Великий Учёный" } "Ironworks":{ @@ -968,6 +981,7 @@ Italian:"+5% Produzione per ogni Rotta Commerciale con una Città-Stato nell'impero" French:"+5% de production pour chaque routes commerciales connectées à une Cité état" Polish:"+5% do produkcji za każdy szlak handlowy z państwem-miastem" + Russian:"+5% Производство за каждый торговый маршрут с городом-государством" } /* @@ -1058,6 +1072,7 @@ Simplified_Chinese:"单位在境内+15%战斗力" French:"+15% de force de combat pour les unités combattants sur un territoire allié" Polish:"+15% do siły ataku jednostek walczących na przyjaznym terytorium" + Russian:"+15% к силе атаки юнитов, сражающихся на дружественной территории" } "Taj Mahal":{ @@ -1143,7 +1158,7 @@ "Free Great Artist Appears":{ Italian:"Appare un Grande Artista gratuito" - Russian:"Появляется бесплатный великий художник" + Russian:"Появляется бесплатный Великий Художник" French:"Artiste illustre gratuit apparaît" Romanian:"un Artist Mare gratuit apare" Dutch:"Een gratis geweldige artiest verschijnt" @@ -1175,6 +1190,7 @@ Portuguese:"'+1 de produção e ouro de todos os recursos navais trabalhados pela cidade" German:"+1 Produktion und Gold von allen Meeresressourcen die von der Stadt bewirtschaftet werden" Polish:"+1 do produkcji i złota ze wszystkich surowców morskich wydobywanych w mieście" + Russian:"+1 Производство и Золото от всех обрабатываемых морских клеток вокруг города" } "+15% production of naval units":{ @@ -1186,6 +1202,7 @@ Portuguese:"15% na produção de unidades marítimas" German:"+15% Produktion für Marineeinheiten" Polish:"+15% do produkcji jednostek marynarki" + Russian:"+15% Производство при постройке кораблей" } "Public School":{ @@ -1262,6 +1279,7 @@ Simplified_Chinese:"所有城市购买建造项目所需的金钱花费-15%" French:"-15% d'or pour les achats dans les villes" Polish:"-15% ceny budynków i jednostek kupowanych w złocie" + Russian:"-15% к стоимости покупки в городах" } "Cristo Redentor":{ @@ -1304,6 +1322,7 @@ Simplified_Chinese:"所有城市防御建筑建造速度+25%" French:"Les batiments de défense sont 25% plus efficace dans toutes les villes" Polski:"+25% skuteczności budowli obronnych w miastach" + Russian:"Защитные сооружения во всех городах на 25% эффективнее" } "Neuschwanstein":{ @@ -1311,7 +1330,7 @@ Simplified_Chinese:"新天鹅堡" French:"Château de Neuschwanstein" Polish:"Neuschwanstein" - Russian:"Замок Нойшванштейн" + Russian:"Замок Нойшванштайн" } "+1 happiness, +2 culture and +3 gold from every Castle":{ @@ -1319,6 +1338,7 @@ Simplified_Chinese:"每一座城堡+3金钱、+2文化和+1快乐" French:"+1 bonheur, +2 culture et +3 or produits par tous les châteaux" Polish:"+1 do zadowolenia, +2 do kultury i +3 do złota z każdego zamku" + Russian:"+1 Счастье, +2 Культура и +3 Золото от каждого замка" } "Military Academy":{ @@ -1385,6 +1405,7 @@ French:"+1 Production par spécialiste" Simplified_Chinese:"每个专业人员+1产能" Polish:"+1 do produkcji ze specjalistów" + Russian:"+1 Производство от специалистов" } "Medical Lab":{ @@ -1449,7 +1470,7 @@ "Must be next to desert":{ Italian:"Deve rasentare Deserto" - Russian:"Должно быть рядом с пустыней" + Russian:"Должно быть построено рядом с пустыней" French:"Doit être à côté d'un désert" Romanian:"Trebuie să fie lângă deșert" German:"Muss an eine Wüste grenzen" @@ -1465,6 +1486,7 @@ Simplified_Chinese:"必须紧邻山脉" French:"Doit être à côté d'une montagne" Polish:"Musi być przy górze" + Russian:"Должно быть построено рядом с горой" } "Sydney Opera House":{ @@ -1496,6 +1518,7 @@ French:"+1 population dans chaque villes" Simplified_Chinese:"每座城市+1人口" Polish:"+1 do populacji w każdym mieście" + Russian:"+1 к населению в каждом городе" } "+1 happiness in each city":{ @@ -1504,6 +1527,7 @@ French:"+1 bonheur dans chaque villes" Simplified_Chinese:"每座城市+1快乐" Polish:"+1 do zadowolenia w każdym mieście" + Russian:"+1 Счастье в каждом городе" } "Pentagon":{ @@ -1521,7 +1545,7 @@ Romanian:"Costurile în aur pentru dezvoltarea unităților militare reduse cu 33%" Simplified_Chinese:"升级军事单位所需的金钱-33%" Portuguese:"-33% custo de ouro para unidades militares" - Russian:"стоимость улучшения юнита снижается на 33%" + Russian:"Стоимость улучшения юнита снижается на 33%" German:"Goldkosten für die Verbesserung von Militäreinheiten ist um 33% reduziert" French:"Le coût en or de l'amélioration des unités militaires est réduit de 33%" Polish:"Koszt ulepszenia jednostki bojowej zmniejszony o 33%" @@ -1616,6 +1640,7 @@ French:"2 scientifiques illustres apparaissent" Simplified_Chinese:"2个免费的大科学家出现" Polish:"Pojawiają się 2 darmowi Wielcy Naukowcy" + Russian:"Появляется 2 бесплатных Великих учёных" } "Increases production of spaceship parts by 25%":{ @@ -1624,6 +1649,7 @@ French:"Améliore la production de pièces de vaisseau spatial de 25%" Simplified_Chinese:"建造太空船部件时+25%产能" Polish:"Zwiększa produkcję części statku kosmicznego o 25%" + Russian:"+25% Производство при постройке частей космического корабля" } "SS Booster":{ //no translation that I know of @@ -1711,7 +1737,7 @@ Simplified_Chinese:"需要城市附近有已开发的资源:[resource]" Portuguese:"Requer [resource] trabalhado perto da cidade" Polish:"Wymaga w mieście surowca [resource]" - Russian:"Требует добычи [buildingName] в городе" + Russian:"Требует добычи [resource] в городе" } "Wonder is being built elsewhere":{ From 45b12c7d893a6d85f5fff260d185d31d45ccdaeb Mon Sep 17 00:00:00 2001 From: pikkolpk <54770149+pikkolpk@users.noreply.github.com> Date: Fri, 6 Sep 2019 20:05:46 +0300 Subject: [PATCH 03/13] Update Diplomacy,Trade,Nations.json --- .../jsons/Translations/Diplomacy,Trade,Nations.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json index e5c0641f9a..af9bf7cfac 100644 --- a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json +++ b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json @@ -172,7 +172,7 @@ Simplified_Chinese:"我们的关系:" Portuguese:"Nossas relações" Polish:"Nasze relacje:" - Russian:"Наши отношения" + Russian:"Наши отношения: " } "We have encountered the City-State of [name]!":{ // e.g. the Cultured city state of Vienna @@ -887,7 +887,7 @@ Spanish:"+ 20% de producción hacia la construcción de maravillas." Romanian:"+ 20% producție spre construcția de mirare" Portuguese:"+ 20% de produção para construção de maravilhas" - Russian:"+20% производства на строительство чудес" + Russian:"+20% Производство при строительстве чудес" Simplified_Chinese:"建造奇观时+20%产能积累速率" } @@ -1003,7 +1003,7 @@ German:"+25% Produktion für alle Gebäude die bereits in der Hauptstadt existieren" French:"+25% de production pour tous les batiments déjà construits dans la capitale" Portuguese:"+ 25% Produção para quaisquer edifícios que já existam na Capital" - Russian:"+ 25% к любым зданиям, которые уже существуют в столице" + Russian:"+25% Производство при постройке зданий, которые уже существуют в столице" Simplified_Chinese:"在其他城市建造首都已建有的建筑时+25%产能积累" } @@ -1165,15 +1165,17 @@ French:"Corée" Portuguese:"Coréia" Simplified_Chinese:"朝鲜" - Russian:"Корея" + Russian:"Корея" } "Sejong":{ Simplified_Chinese:"李裪" + Russian:"Седжон" } "+2 Science for all specialists and Great Person tile improvements":{ Simplified_Chinese:"所有专业人员和所有伟人设施+2科研" + Russian:"+2 Наука для всех специалистов и улучшений клеток Великими людьми." } "+1 Science for all Specialists and Great Person tile improvements. Receive a tech boost each time a scientific building/Wonder is built in the Korean Capital.":{ From 76bf219abdd1f09ec5b48c9fafa636652031a381 Mon Sep 17 00:00:00 2001 From: Smashfanful <41149920+Smashfanful@users.noreply.github.com> Date: Sat, 7 Sep 2019 17:36:40 +0200 Subject: [PATCH 04/13] Update Nations_Italian.json Added Korean civ --- android/assets/jsons/Nations_Italian.json | 68 +++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/android/assets/jsons/Nations_Italian.json b/android/assets/jsons/Nations_Italian.json index 5702a36a8f..d2fa944e33 100644 --- a/android/assets/jsons/Nations_Italian.json +++ b/android/assets/jsons/Nations_Italian.json @@ -504,6 +504,40 @@ "Bodrum","Eregli","Silifke","Sivas","Amasya","Marmaris","Trabzon","Erzurum","Urfa","Izmit","Afyonkarhisar", "Bitlis","Yalova"] }, + { + name:"Korea", + translatedName:"Corea", + leaderName:"Sejong", + + startIntroPart1: "" + startIntroPart2: "" + + declaringWar:"Jip-hyun-jun (la Sala dei Giusti) non tollera più la tua insolenza. Libereremo i tuoi cittadini oppressi anche con la forza, e li illumineremo!" + attacked:"Sciocca progenie di una megera! Sarete distrutti dalla magnifica potenza scientifica del mio paese!" + defeated:"Ora resta da vedere chi proteggerà il mio popolo... Il buio è giunto." + introduction:"Benvenuto nel palazzo dei Choson, straniero. Io sono il re Sejong l'Istruito, sovrano di queste terre e di questo popolo." + + neutralHello:"Salve." + neutralLetsHearIt:["Sentiamo.","Vai avanti","Continue."] + neutralNo:["Non posso farlo.","Spiacente, ma non posso accettare."] + neutralYes:["Ciò sta bene.","Capisco...","Certamente!"] + + hateHello:"Oh, sei tu..." + hateLetsHearIt:["Cosa vorresti dire?","Dunque?","Parla pure."] + hateNo:["Il cielo me ne scampi.","Questa è follia!","Non posso far ciò."] + hateYes:["Hm... va bene, d'accordo.","Credo dovrei accettare...","Va bene..."] + + afterPeace:"Vedo che hai sviluppato delle strategie interessanti... Benissimo, credo dovremo finirla qui." + tradeRequest:"Abbiamo molte cose da discutere e tanto da guadagnare tra di noi." + + outerColor:[0,0,255], + innerColor:[255,0,0], + uniqueName:"Sapienti della Sala di Giada", + unique:"+2 Scienza per ogni specialista e ogni miglioramento da Gran Personaggio.", + cities:["Seoul","Busan","Jeonju","Daegu","Pyongyang","Kaesong","Suwon","Gwangju","Gangneung","Hamhung","Wonju","Ulsan", + "Changwon","Andong","Gongju","Haeju","Cheongju","Mokpo","Dongducheon","Geoje","Suncheon","Jinju","Sangju", + "Rason","Gyeongju","Chungju","Sacheon","Gimje","Anju"] + }, /* { name:"Mongolia", @@ -576,40 +610,6 @@ "Chondote","Canajoharie","Nedrow","Oneida Lake","Kanonwalohale","Green Bay","Southwold","Mohawk Valley","Schoharie", "Bay of Quinte","Kanawale","Kanatsiokareke","Tyendinaga","Hahta"] }, - { - name:"Korea", - translatedName:"Corea", - leaderName:"Sejong", - - startIntroPart1: "" - startIntroPart2: "" - - declaringWar:"Jip-hyun-jun (la Sala dei Giusti) non tollera più la tua insolenza. Libereremo i tuoi cittadini oppressi anche con la forza, e li illumineremo!" - attacked:"Sciocca progenie di una megera! Sarete distrutti dalla magnifica potenza scientifica del mio paese!" - defeated:"Ora resta da vedere chi proteggerà il mio popolo... Il buio è giunto." - introduction:"Benvenuto nel palazzo dei Choson, straniero. Io sono il re Sejong l'Istruito, sovrano di queste terre e di questo popolo." - - neutralHello:"Salve." - neutralLetsHearIt:["Sentiamo.","Vai avanti","Continue."] - neutralNo:["Non posso farlo.","Spiacente, ma non posso accettare."] - neutralYes:["Ciò sta bene.","Capisco...","Certamente!"] - - hateHello:"Oh, sei tu..." - hateLetsHearIt:["Cosa vorresti dire?","Dunque?","Parla pure."] - hateNo:["Il cielo me ne scampi.","Questa è follia!","Non posso far ciò."] - hateYes:["Hm... va bene, d'accordo.","Credo dovrei accettare...","Va bene..."] - - afterPeace:"Vedo che hai sviluppato delle strategie interessanti... Benissimo, credo dovremo finirla qui." - tradeRequest:"Abbiamo molte cose da discutere e tanto da guadagnare tra di noi." - - outerColor:[0,0,255], - innerColor:[255,0,0], - uniqueName:"Sapienti della Sala di Giada", - unique:"+2 Scienza per ogni miglioramento da Gran Personaggio.", - cities:["Seoul","Busan","Jeonju","Daegu","Pyongyang","Kaesong","Suwon","Gwangju","Gangneung","Hamhung","Wonju","Ulsan", - "Changwon","Andong","Gongju","Haeju","Cheongju","Mokpo","Dongducheon","Geoje","Suncheon","Jinju","Sangju", - "Rason","Gyeongju","Chungju","Sacheon","Gimje","Anju"] - }, { name:"Persian", translatedName:"Persia", From 0613c322bdea66d32e08e3cec9e5a87c7495a711 Mon Sep 17 00:00:00 2001 From: Smashfanful <41149920+Smashfanful@users.noreply.github.com> Date: Sat, 7 Sep 2019 17:52:58 +0200 Subject: [PATCH 05/13] Update NewGame,SaveGame,LoadGame,Options.json More Italian translations --- .../NewGame,SaveGame,LoadGame,Options.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json b/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json index 27f11f8654..df52f841a7 100644 --- a/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json +++ b/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json @@ -301,37 +301,48 @@ } "Multiplayer":{ + Italian:"Multigiocatore" } "Could not download game!":{ + Italian:"Impossibile scaricare partita!" } "Could not upload game!":{ + Italian:"Impossibile caricare partita" } "Join Game":{ + Italian:"Unisciti" } "Invalid game ID!":{ + Italian:"ID Partita non corretto" } "Copy User Id":{ + Italian:"Copia ID Utente" } "Copy Game Id":{ + Italian:"Copia ID Partita" } /// tutorials for multiplayer "To create a multiplayer game, check the 'multiplayer' toggle in the New Game screen, and for each human player insert that player's user ID.":{ + Italian:"Per creare una partita multigiocatore, attiva la spunta su 'Multigiocatore' nella schermata Nuova Partita, e inserisci l'ID utente per del giocatore per ogni rispettivo giocatore umano" } "You can assign your own user ID there easily, and othr players can copy their user IDs here and send them to you for you to include them in the game.":{ + Italian:"Puoi assegnarvi facilmente il tuo ID Utente, e altri giocatori possono copiarvi il loro ID Utente e mandartelo per unirsi alla partita." } "Once you've created your game, enter this screen again to copy the Game ID and send it to the other players.":{ + Italian:"Una volta creata la tua partita, ritorna in questa schermata per copiare l'ID Partita e mandala ad altri giocatori." } "Players can enter you game by copying the game ID to the clipboard, and clicking on the Join Game button":{ + Italian:"I giocatori possono entrare nella tua partita copiando il codice ID sugli appunti e cliccando il tasto Unisciti." } @@ -461,15 +472,19 @@ ////////////// Load map "Load map":{ + Italian:"Carica mappa" } "Are you sure you want to delete this map?":{ + Italian:"Vuoi davvero cancellare questa mappa?" } "Upload":{ + Italian:"Carica" } "Could not upload map!":{ + Italian:"Impossibile caricare mappa!" } ////////////// Options @@ -590,10 +605,12 @@ } "Auto-assign city production":{ + Italian:"Autoassegna produzione città" Simplified_Chinese:"自动分配城市产能" } "Fontset":{ + Italian:"Fontset" Simplified_Chinese:"字体设置" } From 4f9f11805ce3f2613ef439c8055becdb0937c8cc Mon Sep 17 00:00:00 2001 From: Smashfanful <41149920+Smashfanful@users.noreply.github.com> Date: Sat, 7 Sep 2019 17:56:53 +0200 Subject: [PATCH 06/13] Update Terrains,Resources,Improvements.json Added an Italian translation --- .../jsons/Translations/Terrains,Resources,Improvements.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android/assets/jsons/Translations/Terrains,Resources,Improvements.json b/android/assets/jsons/Translations/Terrains,Resources,Improvements.json index 91f9fb8c03..b59153e766 100644 --- a/android/assets/jsons/Translations/Terrains,Resources,Improvements.json +++ b/android/assets/jsons/Translations/Terrains,Resources,Improvements.json @@ -848,7 +848,8 @@ } "Barbarian encampment":{ + Italian:"Accampamento barbaro" Simplified_Chinese:"蛮族营地" } -} \ No newline at end of file +} From 27e28ddb819930143aa6558d73b5b5034f7852cb Mon Sep 17 00:00:00 2001 From: Smashfanful <41149920+Smashfanful@users.noreply.github.com> Date: Sat, 7 Sep 2019 17:57:36 +0200 Subject: [PATCH 07/13] Update Other.json More Italian translations --- android/assets/jsons/Translations/Other.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/android/assets/jsons/Translations/Other.json b/android/assets/jsons/Translations/Other.json index 8192158f48..42554643a5 100644 --- a/android/assets/jsons/Translations/Other.json +++ b/android/assets/jsons/Translations/Other.json @@ -30,6 +30,10 @@ German:"Bitte warten..." Japanese:"ワーキング..." } + + "Waiting for other players...":{ // Displayed when next turn is being...turned + Italian:"In attesa degli altri giocatori..." + } "in":{ // As in "Opera House in 3 turns" Italian:"tra" @@ -1411,11 +1415,11 @@ Simplified_Chinese:"奇观" Portuguese:"Maravilhas" } - /* + "National Wonders":{ // already here at line 1099 Italian:"Meraviglie Nazionali" } - */ + "Specialist Buildings":{ Italian:"Edifici specialisti" Romanian:"Clădiri specializate" @@ -1656,15 +1660,19 @@ } "You have achieved victory through the awesome power of your Culture. Your civilization's greatness - the magnificence of its monuments and the power of its artists - have astounded the world! Poets will honor you as long as beauty brings gladness to a weary heart.":{ + Italian:"Hai ottenuto la vittoria attraverso il maestoso potere della tua cultura. La grandezza della tua civiltà, la magnificenza dei suoi monumenti e il talento dei suoi artisti ha sbalordito il mondo! I poeti ti ononeranno per sempre, finché la bellezza continuerà a portare sollievo ai cuori affaticati." } "The world has been convulsed by war. May great and powerful civilizations have fallen, but you have survived - and emerged victorious! The world will long remember your glorious triumph!":{ + Italian:"Il mondo è stato straziato dalla guerra. Molte grandi e potenti civiltà sono cadute, ma tu sei sopravvissuto e se emerso vittorioso. Il mondo ricorderà a lungo il tuo glorioso trionfo!" } "You have achieved victory through mastery of Science! You have conquered the mysteries of nature and led your people on a voyage to a brave new world! Your triumph will be remembered as long as the stars burn in the night sky!":{ + Italian:"Hai ottenuto la vittoria attraverso la padronanza della scienza! Hai penetrato i misteri più arcani della natura e condotto il tuo popolo in un viaggio verso un nuovo, favoloso mondo! Il tuo trionfo sarà ricordato finch* le stelle continueranno a brillare nel firmamento!" } "You have been defeated. Your civilization has been overwhelmed by its many foes. But your people do not despair, for they know that one day you shall return - and lead them forward to victory!":{ + Italian:"Sei stato sconfitto. La tua civiltà è stata spazzata via dai suoi nemici. Ma il tuo popolo non dispera, perché sa che un giorno tornerai... e lo condurrai alla vittoria!" } "One more turn...!":{ From d56b469e6c361a7042ab1e2e69fcf5437b9d6301 Mon Sep 17 00:00:00 2001 From: Smashfanful <41149920+Smashfanful@users.noreply.github.com> Date: Sat, 7 Sep 2019 17:59:59 +0200 Subject: [PATCH 08/13] Update Diplomacy,Trade,Nations.json Another Italian translation --- android/assets/jsons/Translations/Diplomacy,Trade,Nations.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json index af9bf7cfac..e116c3e2b8 100644 --- a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json +++ b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json @@ -846,6 +846,7 @@ } "Wu Zetian":{ + Italian:"Wu Zetian" //Same as in Italian Simplified_Chinese:"武则天" Russian:"У Цзэтянь" }, @@ -1169,11 +1170,13 @@ } "Sejong":{ + Italian:"Sejong" Simplified_Chinese:"李裪" Russian:"Седжон" } "+2 Science for all specialists and Great Person tile improvements":{ + Italian:"+2 Scienza per ogni specialista e ogni miglioramento da Gran Personaggio." Simplified_Chinese:"所有专业人员和所有伟人设施+2科研" Russian:"+2 Наука для всех специалистов и улучшений клеток Великими людьми." } From 93130105fd010859fb43ffdef5da3e2e3166bc5f Mon Sep 17 00:00:00 2001 From: Smashfanful <41149920+Smashfanful@users.noreply.github.com> Date: Sat, 7 Sep 2019 18:13:26 +0200 Subject: [PATCH 09/13] Update Units,Promotions.json --- .../jsons/Translations/Units,Promotions.json | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/android/assets/jsons/Translations/Units,Promotions.json b/android/assets/jsons/Translations/Units,Promotions.json index 5132018bde..5bb3f62ef4 100644 --- a/android/assets/jsons/Translations/Units,Promotions.json +++ b/android/assets/jsons/Translations/Units,Promotions.json @@ -1163,7 +1163,8 @@ Russian:"Истребитель" } - "Zero":{ + "Zero":{//Japanese unique + Italian:"Zero" Simplified_Chinese:"零式战斗机" } @@ -1176,6 +1177,12 @@ German:"Angriffshelikopter" French:"Hélicoptère de combat" } + + /* + "Atomic Bomb":{ + Italian:"Bomba atomica" + } + */ ////// Information era - not even putting here, too far off @@ -1185,6 +1192,23 @@ French:"Robot Mortel Géant" //The most accurate should be "Robot géant de la mort" but it sound really ridiculous Simplified_Chinese:"末日机甲" } + + "Stealth Bomber":{ + Italian:"Bombardiere stealth" + } + + "Jet Fighter":{ + Italian:"Caccia Jet" + } + + "Guided Missile":{ + Italian:"Missile guidato" + } + + "Nuclear Missile":{ + Italian:"Missile nucleare" + } + */ ////// Great units From 60b031ada70bc9cc14f6ab9162e8ba06b079d51d Mon Sep 17 00:00:00 2001 From: Smashfanful <41149920+Smashfanful@users.noreply.github.com> Date: Sat, 7 Sep 2019 18:35:45 +0200 Subject: [PATCH 10/13] Update Policies.json Added projects for Patronage branch --- .../assets/jsons/Translations/Policies.json | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/android/assets/jsons/Translations/Policies.json b/android/assets/jsons/Translations/Policies.json index dab1e6a8ab..2e6bf0b6eb 100644 --- a/android/assets/jsons/Translations/Policies.json +++ b/android/assets/jsons/Translations/Policies.json @@ -658,6 +658,69 @@ French:"Réduit le cout en culture des futures doctrines de 10%" } + + +////// Patronage branch +/* + "Patronage":{ + Italian:"Mecenatismo" + } + + "Influence with City-States degrades 25% slower than normal.":{ + Italian:"L'Influenza con le Città-Stato cala il 25% più lentamente rispetto al normale." + } + + "Philantropy":{ //unlocked when adopting Patronage + Italian:"Filantropia" + } + + "Gifting Gold to a City-State generates 25% more Influence":{ + Italian:"Donare Oro a una Città-Stato genera il 25% di Influenza in più." + } + + "Aesthetics":{ //unlocked when adopting Patronage + Italian:"Estetica" + } + + "Resting point for Influence level with all City-States is increased by 20.":{ + Italian:"Il punto neutro di livello d'Influenza per tutte le Città-Stato è portato a +20." + } + + "Scholasticism":{ //Needs Philantropy + Italian:"Scolasticismo" + } + + "All Allied City-States provide a Science bonus equal to 25% of what they produce for themselves.":{ + Italian:"Le Città-Stato tue alleate ti donano un bonus scientifico del 25% rispetto a quello che producono da sole." + } + + "Cultural Diplomacy":{ //Needs Scholasticism + Italian:"Diplomazia culturale" + } + + "Happiness from gifted Luxuries increased by 50%.":{ + Italian:"+50% Felicità dalle Risorse di Lusso date dalle città che ti sono Amiche o Alleate." + } + + "Educated Elite":{ //Needs Scholasticism and Aesthetics + Italian:"Elite culturale" + } + + "Allied City-States will occasionally gift you Great People.":{ + Italian:"Le Città-Stato Alleate ti doneranno occasionalmente dei Grandi Personaggi." + } + + "Patronage Complete":{ + Italian:"Mecenatismo completo" + } + + "Influence with City-States degrades 25% slower than normal.":{ + Italian:"L'Influenza con le Città-Stato cala il 33% più lentamente rispetto al normale." + } + +*/ + + ////// Commerce branch "Commerce":{ From 53aaceb06bc597ea88b64c732267f6897868e7b6 Mon Sep 17 00:00:00 2001 From: lishaoxia1985 <49801619+lishaoxia1985@users.noreply.github.com> Date: Sun, 8 Sep 2019 02:08:36 +0800 Subject: [PATCH 11/13] =?UTF-8?q?update=20Chinese=20translation=EF=BC=8CRu?= =?UTF-8?q?ssian=20translation=20Lost=20a=20word=20("),=20please=20update?= =?UTF-8?q?=20it=20immediately=EF=BC=81=20(#1028)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * systemProp * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update --- .../BasicHelp_Simplified_Chinese.json | 2 +- .../assets/jsons/Translations/Buildings.json | 32 ++--- .../Translations/Diplomacy,Trade,Nations.json | 56 ++++++--- .../NewGame,SaveGame,LoadGame,Options.json | 18 ++- android/assets/jsons/Translations/Other.json | 32 +++-- .../jsons/Translations/Units,Promotions.json | 117 ++++++------------ .../Tutorials_Simplified_Chinese.json | 104 ++++++++-------- .../logic/civilization/CivilizationInfo.kt | 2 +- .../unciv/models/gamebasics/Translations.kt | 4 +- core/src/com/unciv/ui/VictoryScreen.kt | 14 +-- .../com/unciv/ui/newgamescreen/NationTable.kt | 2 +- .../pickerscreens/GreatPersonPickerScreen.kt | 9 +- .../src/com/unciv/ui/trade/DiplomacyScreen.kt | 14 +-- .../com/unciv/ui/worldscreen/TradePopup.kt | 3 + 14 files changed, 208 insertions(+), 201 deletions(-) diff --git a/android/assets/jsons/BasicHelp/BasicHelp_Simplified_Chinese.json b/android/assets/jsons/BasicHelp/BasicHelp_Simplified_Chinese.json index 330253822b..62c4c18ae4 100644 --- a/android/assets/jsons/BasicHelp/BasicHelp_Simplified_Chinese.json +++ b/android/assets/jsons/BasicHelp/BasicHelp_Simplified_Chinese.json @@ -13,7 +13,7 @@ }, { name:"基本资源", - description: "文明游戏中有6种基本资源:食物、产能、金钱、科研、快乐和文化。\n产能和食物的产出每个城市独立计算,而其他资源的计算是所有城市产出的总和。\n基本资源的产出由城市的工作地块和城市里的建筑或奇观决定。" + description: "文明游戏中有6种基本资源:食物、产能、金钱、科研、快乐和文化。\n产能和食物的产出每个城市独立计算,其他资源的产出则是所有城市该种资源产出总和计算。\n基本资源的产出由城市的工作地块和城市里的建筑或奇观决定。" }, { name:"食物", diff --git a/android/assets/jsons/Translations/Buildings.json b/android/assets/jsons/Translations/Buildings.json index 381cd9fa61..c7daa7ff73 100644 --- a/android/assets/jsons/Translations/Buildings.json +++ b/android/assets/jsons/Translations/Buildings.json @@ -62,8 +62,10 @@ "Must not be on plains":{ French:"Ne doit pas être sur une plaine" - Polish:"Nie może być na równinie" - Russian:"Не может быть построено на равнине" + Italian:"Non deve trovarsi su Pianura" + Polish:"Nie może być na równinach" + Russian:"Не может быть построено на равнинах" + Simplified_Chinese:"城市不能位于平原" } "Stonehenge":{ @@ -981,6 +983,7 @@ Italian:"+5% Produzione per ogni Rotta Commerciale con una Città-Stato nell'impero" French:"+5% de production pour chaque routes commerciales connectées à une Cité état" Polish:"+5% do produkcji za każdy szlak handlowy z państwem-miastem" + Simplified_Chinese:"每条通往城邦的贸易路线+5%产能" Russian:"+5% Производство за каждый торговый маршрут с городом-государством" } @@ -1059,6 +1062,10 @@ Russian:"Выбор великого человека" } + "Get ":{ + Simplified_Chinese:"获得" + } + "Himeji Castle":{ Italian:"Castello di Himeji" Simplified_Chinese:"姬路城" @@ -1118,6 +1125,7 @@ French:"Doit être sur une colline" Polish:"Nie może być na wzgórzu" Russian:"Не может быть построено на холме" + Simplified_Chinese:"城市不能位于山脉" } "Museum":{ @@ -1385,7 +1393,7 @@ German:"Gibt +1 Zufriedenheit pro Sozialgrundsatz" Dutch:"Levert 1 tevredenheid op per sociaal beleid" Spanish:"Otorga 1 felicidad por cada política social" - Simplified_Chinese:"每项社会政策+1快乐" + Simplified_Chinese:"每项已推行的社会政策+1快乐" Portuguese:"Provem 1 felicade por política social" Polish:"+1 do zadowolenia z każdego ustroju społecznego" } @@ -1476,14 +1484,14 @@ German:"Muss an eine Wüste grenzen" Dutch:"Moet aan een woestijn grenzen" Spanish:"Debe estar próximo a un desierto" - Simplified_Chinese:"必须紧邻沙漠" + Simplified_Chinese:"城市必须紧邻沙漠" Portuguese:"Nescessário que esteja proximo ao deserto" Polish:"Musi być obok pustyni" } "Must be next to mountain":{ Italian:"Deve rasentare Montagna" - Simplified_Chinese:"必须紧邻山脉" + Simplified_Chinese:"城市必须紧邻山脉" French:"Doit être à côté d'une montagne" Polish:"Musi być przy górze" Russian:"Должно быть построено рядом с горой" @@ -1785,18 +1793,4 @@ Russian:"Требуется технология: [requiredTech]" } - "Must not be on plains":{ - Italian:"Non deve trovarsi su Pianura" - Polish:"Nie może być na równinach" - Russian:"Не может быть построено на равнинах" - } - - "Must not be on hill":{//Line correction - Italian:"Non deve trovarsi su Collina" - Polish:"Nie może być na wzgórzach" - Russian:"Не может быть построено на холмах" - } - - - } diff --git a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json index e116c3e2b8..ee6f7198c4 100644 --- a/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json +++ b/android/assets/jsons/Translations/Diplomacy,Trade,Nations.json @@ -76,7 +76,7 @@ German:"[leaderName] von [nation]" Spanish:"[leaderName] de [nation]" Portuguese:"[leaderName] do [nation]" - Simplified_Chinese:"[leaderName]的[nation]" + Simplified_Chinese:"[nation]的[leaderName]" French:"[leaderName] de [nation]" Russian:"[leaderName] из [nation]" Romanian:"[leaderName] de [nation]" @@ -126,6 +126,7 @@ "Sounds good!":{ Italian:"Sta bene!" French:"Très bien!" + Simplified_Chinese:"听起来还不错。" Polish:"Bardzo dobrze!" Russian:"Звучит неплохо!" } @@ -141,7 +142,7 @@ "Excellent!":{ // AI statement after we accept a trade they proposed, and when we meet a city state, and our response when they agree to our diplomatic demand Italian:"Eccellente!" - Simplified_Chinese:"好极了!和和气气才是生财之道。" + Simplified_Chinese:"真是荣幸之至!互相尊重、平等互利是建立友好关系的第一步。" French:"Excellent!" Portuguese:"Excelente!" Polish:"Wyśmienicie!" @@ -150,7 +151,7 @@ "How about something else...":{ // Counteroffer to AI offer //shouldn't it be 'How about somenthing else?' ? Italian:"Che ne dici di questa offerta?" - Simplified_Chinese:"如果阁下再有点诚意的话,我愿意达成这笔交易。" + Simplified_Chinese:"谈判桌上的尔虞我诈才是我的兴趣所在。" French:"Pourquoi pas autre chose..." Portuguese:"Porque não algo mais..." Polish:"Oto nasza oferta." @@ -179,7 +180,8 @@ Italian:"Abbiamo incontrato la Citta-Stato di [name]!" Portuguese:"Nós encontramos a cidade-estado de [name]" French:"Nous avons rencontré la cité-état de [name]!" - Polish:"Napotkaliśmy państwo-miasto o nazwie [name]!" + Polish:"Napotkaliśmy państwo-miasto o nazwie [name]!" + Simplified_Chinese:"我们遇到了城邦--[name]!" Russian:"Мы обнаружили город-государство [name]!" } @@ -215,6 +217,7 @@ "Denounce ([numberOfTurns] turns)":{ Italian:"Denuncia ([numberOfTurns] turni)" French:"Dénoncer ([numberOfTurns] tours)" + Simplified_Chinese:"谴责([numberOfTurns]回合)" Polish:"Potęp cywilizację na [numberOfTurns] tur" Russian:"Осуждение на [numberOfTurns] ходов" } @@ -222,6 +225,7 @@ "We will remember this.":{ Italian:"Non credere che ce lo scorderemo!" French:"Nous nous en souviendrons." + Simplified_Chinese:"这种侮辱我们绝不会忘记。请好自为之!" Russian:"Мы это запомним" } @@ -286,39 +290,42 @@ // City States - "Provides [amountOfCulture] culture at 30 Influence":{ + "Provides [amountOfCulture] culture at [30] Influence":{ Italian:"Dona [amountOfCulture] punti Cultura a minimo 30 Punti Influenza" French:"Fournit [amountOfCulture] de Culture à 30 d'influence" + Simplified_Chinese:"当影响力不低于30时提供[amountOfCulture]文化" Russian:"Даёт [amountOfCulture] культуры при 30 Влияния" } "Provides 3 food in capital and 1 food in other cities at 30 Influence":{ Italian:"Dona 3 Cibo alla Capitale e 1 Cibo alle altre Città a minimo 30 Punti Influenza" French:"Fournit 3 Nourriture à la capitale et 1 nourriture pour les autres villes à 30 d'influence" + Simplified_Chinese:"当影响力不低于30时为首都提供3食物,为其他城市提供1食物" Russian:"Даёт 3 Еды в столице и 1 Еда в остальных городах при 30 Влияния" } "Provides 3 happiness at 30 Influence":{ Italian:"Dona 3 Punti Felicità a minimo 30 Punti Influenza" French:"Fournit 3 de Bonheur à 30 d'influence" + Simplified_Chinese:"当影响力不低于30时提供3快乐" Russian:"Даёт 3 Счастья при 30 Влияния" }, "Provides land units every 20 turns at 30 Influence":{ Italian:"Concede un'unità terrestre ogni 20 turni a minimo 30 Punti Influenza" French:"Fournit des unités terrestres tous les 20 tours à 30 d'influence" + Simplified_Chinese:"当影响力不低于30时每20回合提供陆军单位" Russian:"Даёт сухопутные юниты каждые 20 ходов при 30 Влияния" }, - "Gift [goldAmount] gold":{ - Italian:"Dona [goldAmount] Oro" - French:"Donner [goldAmount] ors" - Russian:"Дарит [goldAmount] золота" + "Gift [giftAmount] gold (+[influenceAmount] influence)":{ + Simplified_Chinese:"赠予[giftAmount]金钱(+[influenceAmount]影响力)" } "Relationship changes in another [turnsToRelationshipChange] turns":{ Italian:"I rapporti cambieranno tra [turnsToRelationshipChange] turni" French:"Les relations changent dans [turnsToRelationshipChange] tours" + Simplified_Chinese:"将在[turnsToRelationshipChange]回合后失去对该城邦的影响" Russian:"Отношения изменятся в следующие [turnsToRelationshipChange] ходов" } @@ -402,24 +409,28 @@ Italian:"La tua cosiddetta 'amicizia' non vale nulla!" Portuguese:"Sua chamada 'amizade' não vale nada." French:"Votre soi-disant 'amitié' ne vaut rien." + Simplified_Chinese:"你所谓的“友谊”一文不值。" Russian:"Ваше так называемое дружелюбие ничего не значит." } "You have publicly denounced us!":{ Italian:"Ci hai denunciato pubblicamente di fronte al mondo!" French:"Vous nous avez dénoncé publiquement!" + Simplified_Chinese:"批判的武器不能代替武器的批判,谴责是无力的懦夫行为。" Russian:"Вы публично осудили нас!" } "You have denounced our allies":{ Italian:"Hai denunciato i nostri alleati!" French:"Vous avez dénoncé nos alliées" + Simplified_Chinese:"对我们盟友的侮辱也是对我们的冒犯,请好自为之!" Russian:"Вы осудили наших союзников!" } "You have denounced our enemies":{ Italian:"Hai denunciato i nostri nemici!" French:"Vous avez dénoncé nos ennemies" + Simplified_Chinese:"敌人的敌人就是朋友,你的谴责是维护公正的仗义执言,我们期待听到更多。" Russian:"Вы осудили наших врагов" } @@ -427,51 +438,60 @@ "Demands":{ Italian:"Richieste" French:"Demandes" + Simplified_Chinese:"要求" Russian:"Требования" } "Please don't settle new cities near us.":{ Italian:"Smetti di fondare città vicino a noi." French:"Veuillez ne pas construire de villes proches de nous." + Simplified_Chinese:"请不要在我们附近建立新的城市。" Russian:"Пожалуйста, не закладывайте новых городов рядом с нами." } "Very well, we shall look for new lands to settle.":{ Italian:"Ti porgiamo le nostre scuse." French:"Très bien, nous chercherons d'autres terres à coloniser" + Simplified_Chinese:"好的,我们将会寻找新的建城位置。" Russian:"Хорошо, мы найдем другие земли для поселений" } "We shall do as we please.":{ Italian:"Colonizzeremo la terra che ci pare e piace." French:"Nous faisons ce que nous voulons." + Simplified_Chinese:"我们只是自己的奴隶,这里不需要弱者叽叽喳喳。" Russian:"Мы поступим, как сочтем нужным" } "You betrayed your promise to not settle cities near us":{ Italian:"Hai tradito la tua promessa di non fondare città nelle nostre vicinanze." French:"Vous avez trahis votre promesse de ne pas fonder de ville proche de nous" + Simplified_Chinese:"你背叛了不在我们附近建城的承诺,请好自为之。" Russian:"Вы нарушили ваше обещание не закладывать города рядом с нами" } "You fulfilled your promise to stop settling cities near us!":{ Italian:"Hai mantenuto la tua promessa di non fondare città nelle nostre vicinanze." French:"Vous avez tenu votre promesse de ne pas fonder de ville proche de nous!" + Simplified_Chinese:"感谢你履行了不在我们附近建城的承诺。" Russian:"Вы выполнили ваше обещание не закладывать города рядом с нами" } "You refused to stop settling cities near us":{ Italian:"Hai continuato a fondare città nelle nostre vicinanze." French:"Vous avez refusez de ne pas fonder de villes proches de nous" + Simplified_Chinese:"你拒绝停止在我们附近建城的决定是愚蠢的,好自为之!" Russian:"Вы отказались не закладывать города рядом с нами" } "We noticed your new city near our borders, despite your promise. This will have....implications.":{ Italian:"Abbiamo notato la la tua nuova città vicino ai nostri confini. E questo avrà... ripercussioni sui nostri rapporti." French:"Nous avons remarquez votre nouvelle ville à notre frontière, malgré votre promesse. Cela aura des... conséquences." + Simplified_Chinese:"尽管你答应了,我们还是注意到你在我们边境附近的新城市。如果有不好的影响...这将是你自找的!" Russian:"Мы заметили ваш новый город около наших границ. Это может повлечь... последствия." } "Your arrogant demands are in bad taste":{ Italian:"Hai fatto una richiesta arrogante." French:"Vos arrogantes demandes sont de mauvais goût" + Simplified_Chinese:"你的傲慢要求不合情理。" Russian:"Ваши высокомерные требования раздражают" } @@ -507,6 +527,14 @@ Russian:"Воинственный" } + "Type: ":{ + Simplified_Chinese:"城邦类型:" + } + + "Influence: ":{ + Simplified_Chinese:"影响力:" + } + ////// Trade "Trade":{ @@ -534,6 +562,7 @@ "Retract offer":{ Italian:"Ritira offerta" Russian:"Отменить предложение" + Simplified_Chinese:"撤回报价" } "What do you have in mind?":{ @@ -1039,7 +1068,7 @@ Italian:"Stati Uniti" Romanian:"Statele Unite" Spanish:"Estados Unidos" - Simplified_Chinese:"美国" + Simplified_Chinese:"美利坚" German:"Amerika" French:"Etats-Unis" Portuguese:"América" @@ -1181,13 +1210,6 @@ Russian:"+2 Наука для всех специалистов и улучшений клеток Великими людьми." } - "+1 Science for all Specialists and Great Person tile improvements. Receive a tech boost each time a scientific building/Wonder is built in the Korean Capital.":{ - Italian:"+1 Scienza per ogni Specialista e miglioramento Grande Personaggio. Ricevi uno sprint tecnologico ogni volta che la tua Capitale costruisce un edificio o una Meraviglia scientifica." - Portuguese:"+1 ciência por todas as melhorias de terras de especialístas e grandes pessoas. Receba um bonus de pesquisa a cada construção/maravilha ciêntifica é construida na capital" - French:"+1 Science pour chaque spécialistes et amélioration de case de personnage illustre. Reçoit un bonus de science à chaque fois qu'un batiment ou une merveille scientifique est construit dans la capitale" - Russian:"+1 Наука для всех специалистов и улучшений клеток Великими людьми. Получите бонус к исследованию каждый раз при создании научного здания/чуда в Корейской столице" - } - /* "Iroquois":{ diff --git a/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json b/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json index df52f841a7..c42ea340ff 100644 --- a/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json +++ b/android/assets/jsons/Translations/NewGame,SaveGame,LoadGame,Options.json @@ -8,7 +8,7 @@ German:"Aus Zwischenablage laden" Dutch:"Gekopieerde data laden" Spanish:"Cargar datos copiados" - Simplified_Chinese:"加载复制过的数据" + Simplified_Chinese:"加载复制的数据" Portuguese:"Carregar dados copiados" Japanese:"コピーしたデータを読み込む" } @@ -278,10 +278,12 @@ "AI":{ Italian:"IA" + Simplified_Chinese:"电脑" } "Human":{ Italian:"Umano" + Simplified_Chinese:"人类玩家" } "Hotseat":{ @@ -290,17 +292,21 @@ "User Id":{ Italian:"ID Utente" + Simplified_Chinese:"用户ID" } "Click to copy":{ Italian:"Clicca per copiare" + Simplified_Chinese:"点击复制" } "Username":{ Italian:"Nome utente" + Simplified_Chinese:"用户名" } "Multiplayer":{ + Simplified_Chinese:"多人游戏" Italian:"Multigiocatore" } @@ -429,7 +435,7 @@ German:"Spiel konnte nicht geladen werden" Dutch:"Spel kon niet geladen worden" Spanish:"Imposible cargar partida" - Simplified_Chinese:"无法读档" + Simplified_Chinese:"无法载入游戏" Portuguese:"Não foi possivel carregar a partida salva" } @@ -465,7 +471,7 @@ German:"Gespeichert um" Dutch:"Opgeslagen in" Spanish:"Guardado en" - Simplified_Chinese:"保存在" + Simplified_Chinese:"存储时间" Portuguese:"Salvo em" } @@ -473,18 +479,22 @@ "Load map":{ Italian:"Carica mappa" + Simplified_Chinese:"载入地图" } "Are you sure you want to delete this map?":{ + Simplified_Chinese:"你真想删除这张地图吗?" Italian:"Vuoi davvero cancellare questa mappa?" } "Upload":{ + Simplified_Chinese:"上传" Italian:"Carica" - } + } "Could not upload map!":{ Italian:"Impossibile caricare mappa!" + Simplified_Chinese:"无法上传地图!" } ////////////// Options diff --git a/android/assets/jsons/Translations/Other.json b/android/assets/jsons/Translations/Other.json index 42554643a5..1e59c85c10 100644 --- a/android/assets/jsons/Translations/Other.json +++ b/android/assets/jsons/Translations/Other.json @@ -230,7 +230,7 @@ German:"Automatisieren anhalten" French:"Arrêtez automatisation" Portuguese:"Pare a automação" - Simplified_Chinese:"停止自动化" + Simplified_Chinese:"停止自动工作" Romanian:"Opriți automatizarea" Russian:"Остановить автоматизацию" Japanese:"自動化を停止" @@ -396,7 +396,7 @@ Romanian:"Prădare" Dutch:"Plundering" Spanish:"Pillaje" - Simplified_Chinese:"掠夺" + Simplified_Chinese:"劫掠" } "Do you really want to disband this unit?":{ @@ -426,11 +426,13 @@ "Create [improvement]":{ // for great units, fishing boats, etc. Italian:"Costruisci [improvement]" French:"Construire [improvement]" + Simplified_Chinese:"建造[improvement]" } "Start Golden Age":{ Italian:"Inizia Età dell'Oro" French:"Commencer un Age d'Or" + Simplified_Chinese:"开启黄金时代" Russian:"Войти в золотой век" } @@ -620,7 +622,7 @@ German:"Siegesstatus" Dutch:"Overwinning Status" Spanish:"Estatus de victoria" - Simplified_Chinese:"胜利进程" + Simplified_Chinese:"胜利进度" Portuguese:"Status da vitória" Japanese:"勝利の地位" } @@ -774,6 +776,7 @@ Italian: "Scegli ora!" German: "Jetzt wählen!" French:"Choisir maintenant !" + Simplified_Chinese:"选择此项!" Russian:"Выбрать сейчас!" } @@ -1110,6 +1113,7 @@ "National Wonder":{ Italian:"Meraviglia Nazionale" French:"Merveille Nationale" + Simplified_Chinese:"国家奇观" Russian:"Национальное чудо" } @@ -1390,7 +1394,7 @@ French:"Bonheur de base" Romanian:"Fericire de bază" Spanish:"Felicidad base" - Simplified_Chinese:"基础快乐度" + Simplified_Chinese:"基础快乐" Portuguese:"Felicidade base" German:"Grundzufriedenheit" } @@ -1456,6 +1460,7 @@ "City States":{ //I think that it's already elsewhere Italian:"Città-Stato" French:"Cité état" + Simplified_Chinese:"城邦" } "Luxury resources":{ @@ -1601,7 +1606,7 @@ Italian:"Vittoria per Dominazione" German:"Dominanzsieg" French:"Victoire militaire" - Simplified_Chinese:"征服胜利 " + Simplified_Chinese:"征服胜利" Portuguese:"Vitória por conquista" } @@ -1610,7 +1615,7 @@ German:"Um zu gewinnen vervollständigen\nSie alle Raumschiffteile!" French:"Construisez toutes les parties du \n vaisseau spatial pour gagner!" Russian:"Для победы\n завершите все части космического коробля" - Simplified_Chinese:"完成建造太空飞船\n胜利 " + Simplified_Chinese:"完成建造太空飞船\n胜利!" Portuguese:"Complete todas as partes da nave para ganhar" } @@ -1697,33 +1702,38 @@ German:"Zerstöre [civName]" French:"Détruiser [civName]" Russian:"Уничтожить [civName]" - Simplified_Chinese:"摧毁[civName]文明" + Simplified_Chinese:"毁灭[civName]文明" Portuguese:"Destruir [civName]" //what's the context? as in it being a question, or a pre-requisite for conquest victory? } "Our status":{ Italian:"I tuoi progressi" French:"Notre situation" + Simplified_Chinese:"我们文明的胜利进度" } "Global status":{ Italian:"Progressi globali" French:"Situation globale" + Simplified_Chinese:"所有文明的胜利进度" } "Spaceship parts remaining":{ Italian:"Parti dell'astronave rimanenti" French:"Parties de Vaisseau spatial manquantes" + Simplified_Chinese:"未完成建造的飞船组件数量" } "Branches completed":{ Italian:"Rami completati" French:"Branches complêtées" + Simplified_Chinese:"已完全推行的社会政策数量" } "Undefeated civs":{ Italian:"Civiltà esistenti" French:"Civilization invaincues" + Simplified_Chinese:"未被征服的文明" } @@ -1732,16 +1742,19 @@ "What would you like to do with the city?":{ Italian:"Cosa vorresti farne della Città?" French:"Que voulez vous faire de cette ville?" + Simplified_Chinese:"你想如何处理这座城市?" } "Annex":{ Italian:"Annetti" French:"Annexer" + Simplified_Chinese:"吞并" } "Raze":{ Italian:"Distruggi" French:"Razer" + Simplified_Chinese:"摧毁" } @@ -1750,17 +1763,20 @@ "Remove your troops in our border immediately!":{ Italian:"Esigiamo che rimuoviate i vostri soldati dai nostri confini!" French:"Enlevez vos troupes de nos terres immédiatement!" + Simplified_Chinese:"请停止这种无理而且野蛮的行径!马上让你的单位滚出我的领土!" } "Sorry.":{ Italian:"Ti porgiamo le nostre scuse." French:"Désolé." + Simplified_Chinese:"请您原谅我的鲁莽。" } "Never!":{ Italian:"Non sia mai!" French:"Jamais!" - Russian:"Никогда!" + Russian:"Никогда!" + Simplified_Chinese:"愤怒是无能的表现。" } ////// Civilopedia texts diff --git a/android/assets/jsons/Translations/Units,Promotions.json b/android/assets/jsons/Translations/Units,Promotions.json index 5bb3f62ef4..59a3e1a851 100644 --- a/android/assets/jsons/Translations/Units,Promotions.json +++ b/android/assets/jsons/Translations/Units,Promotions.json @@ -14,6 +14,18 @@ Portuguese:"Cidadão" } + "land units":{ + Simplified_Chinese:"陆军单位" + } + + "water units":{ + Simplified_Chinese:"海军单位" + } + + "air units":{ + Simplified_Chinese:"空军单位" + } + "WaterCivilian":{ // In the file "Uints.json", every unit have the "unitType", i think we should show the "unitType" in wiki,because some units get a bonus attack to other units. Italian:"marittima civile" //Unità marittima civile Simplified_Chinese:"海上平民单位" @@ -655,6 +667,7 @@ } "Turtle Ship":{ + Spanish:"Nave tartaruga" Simplified_Chinese:"龟船" } @@ -669,10 +682,6 @@ Russian:"+1 Диапазон видимости" } - "Turtle Ship":{ - Spanish:"Nave tartaruga" - } - "Cannon":{ Italian:"Cannone" Russian:"Пушка" @@ -717,6 +726,7 @@ Italian:"Cura [amountHealed] PF quando uccide un'unità nemica" French:"Soigne [amountHealed] dégâts si il tue une unité" Russian:"Восстаналивает [amountHealed] здоровья при уничтожении юнита" + Simplified_Chinese:"消灭敌方单位后回复50点损伤" } "Minuteman":{ // american unique @@ -772,6 +782,7 @@ Italian:"Nessun costo di movimento per il saccheggio" French:"L'action pillage ne coûte pas de point de mouvement" Russian:"Разграбление не тратит очков передвижения" + Simplified_Chinese:"劫掠不消耗移动力" } @@ -819,13 +830,6 @@ French:"Cosaque" } - "Bonus vs wounded units 33%":{ - Italian:"+33% forza contro unità ferite" - French:"+33% force contre les unités montées" - Russian:"Бонус против раненых 33%" - Simplified_Chinese:"对战受伤单位时+33%战斗力" - } - "Artillery":{ Italian:"Artiglieria" Russian:"Артиллерия" @@ -992,7 +996,7 @@ "Bonus as Attacker [amount]%":{ Italian:"[amount]% Bonus in attacco" - Simplified_Chinese:"主动攻击时+75%战斗力" + Simplified_Chinese:"主动发起攻击时+[amount]%战斗力" French:"Bonus en tant qu'attaquant +[amount]%" Russian:"Бонус при атаке +[amount]%" } @@ -1036,9 +1040,13 @@ Italian:"[percent]% probabilità di intercettare attacchi aerei" French:"[percent]% chance d'intercepter une attaque aérienne" Russian:"[percent]% шанс перехвата воздушных атак" + Simplified_Chinese:"[percent]%几率拦截来袭的敌军飞机" } - + "6 tiles in every direction always visible":{ + Simplified_Chinese:"6格视野范围内可见" + } + "Great War Bomber":{ Italian:"Bombardiere della Grande Guerra" Romanian:"Bombardier din Marele Război" @@ -1366,16 +1374,9 @@ "Bonus for units in 2 tile radius 15%" :{ Italian:"15% Bonus per le unità nel raggio di 2 caselle" French:"Bonus de combat +15% pour les unités dans un rayon de 2 cases" + Simplified_Chinese:"周围两格地块内的我方所有陆军单位+15%战斗力" Russian:"Бонус к атаке юнитам в радиусе 2-х клеток" } - - /* Not in use now, but will be when we eventually add Great Admiral and split the job - "Bonus for land units in 2 tile radius 15%" :{ - Italian:"15% Bonus per le unità terrestri nel raggio di 2 caselle" - Simplified_Chinese:"周围两格地块内的我方所有陆军单位+15%战斗力" - French:"Bonus de combat +15% pour les unités terrestres dans un rayon de 2 cases" - } - */ ////// Unit Promotions @@ -1397,14 +1398,6 @@ French:" OU " } - - "Bonus vs City":{ - Italian:"Bonus contro Città" - Simplified_Chinese:"攻城加成" - French:"Bonus contre les villes" - Russian:"Бонус против городов" - } - "Bonus vs [unitType]":{ Italian:"Bonus contro unità [unitType]" // es. Bonus contro unità da tiro Russian:"Бонус против [unitType]" @@ -1413,7 +1406,7 @@ German:"Im Vorteil gegen [unitType]" // Gender sensitive --> not necessary as we talk about "types" not specific units Dutch:"Voordeel tegen [unitType]" Spanish:"Bonus contra [unitType]" - Simplified_Chinese:"对战[unitType]时战斗力加成:" + Simplified_Chinese:"对战[unitType]时战斗力+" Portuguese:"Bonus contra [unitType]" } @@ -1425,7 +1418,7 @@ German:"Im Nachteil gegen [unitType]" // Gender sensitive --> not necessary as we talk about "types" not specific units Dutch:"Nadeel tegen [unitType]" Spanish:"Penalización contra [unitType]" - Simplified_Chinese:"对战[unitType]时战斗力减成:" + Simplified_Chinese:"对战[unitType]时战斗力-" Portuguese:"Penalidade contra [unitType]" } @@ -1453,13 +1446,6 @@ Simplified_Chinese:"精准III级" } - "Bonus vs units in open terrain 15%":{ - Italian:"+15% Forza contro unità in terreno aperto" - French:"15% force contre les unités en terrain découvert" - Russian:"Бонус +15% против юнитов на открытой местности" - Simplified_Chinese:"对战开阔地形中的单位时+15%战斗力" - } - "units in open terrain":{ Italian:"unità in terreno aperto" Simplified_Chinese:"位于开阔地形的单位" @@ -1491,13 +1477,6 @@ Simplified_Chinese:"弹幕III级" } - "Bonus vs units in rough terrain 15%":{ - Italian:"+15% Forza contro unità in terreno accidentato" - French:"+15% force contre les unités en terrain accidenté" - Russian:"Бонус против юнитов на пересеченной местности 15%" - Simplified_Chinese:"对战复杂地形中的单位时+15%战斗力" - } - "Shock I":{ Italian:"Assalto I" German:"Schock I" @@ -1729,20 +1708,6 @@ Simplified_Chinese:"轰炸III级" } - "Bonus vs land units 33%":{ - Italian:"+33% forza contro unità terrestri" - French:"+33% force contre les unités terrestres" - Russian:"Бонус +33% против наземных юнитов" - Simplified_Chinese:"对战陆军单位时+33%战斗力" - } - - "Bonus vs land units 34%":{ - Italian:"+34% forza contro unità terrestri" - French:"+34% force contre les unités terrestres" - Russian:"Бонус +34% против наземных юнитов" - Simplified_Chinese:"对战陆军单位时+34%战斗力" - } - "Boarding Party I":{ Italian:"Abbordaggio I" German:"Entermannschaft I" @@ -1767,12 +1732,6 @@ Simplified_Chinese:"接舷III级" } - "Bonus vs water units 15%":{ - Italian:"+15% forza contro le unità anfibie" - French:"+15% force contre les unités navales" - Russian:"Бонус против водных юнитов +15%" - Simplified_Chinese:"对战海军单位时+15%战斗力" - } "Coastal Raider I":{ Italian:"Incursione costiera I" German:"Küstenräuber I" @@ -1864,7 +1823,7 @@ "Double movement rate through Forest and Jungle":{ Italian:"Movimento doppio attraverso Foreste e Giungle." - Simplified_Chinese:"森林和丛林移动时双倍移动力" + Simplified_Chinese:"通过森林或丛林时移动速度加倍" French:"Déplacement doublé dans la Forêt et la Jungle" Russian:"Передвижение через Лес и Джунгли тратит вдвое меньше очков действия" } @@ -2036,13 +1995,6 @@ Simplified_Chinese:"攻坚I级" } - "Bonus vs City 33%":{ //i think that it already exist somewhere - Italian:"+33% Forza contro le Città" - French:"Bonus contre les villes +33%" - Russian:"Бонус против городов +33%" - Simplified_Chinese:"攻击城市时+33%战斗力" - } - "Siege II":{ Italian:"Assedio II" French:"Siège II" @@ -2057,13 +2009,6 @@ Simplified_Chinese:"攻坚III级" } - "Bonus vs City 34%":{ - Italian:"+34% Forza contro le Città" - French:"Bonus contre les villes +34%" - Russian:"Бонус против городов +34%" - Simplified_Chinese:"攻击城市时+34%战斗力" - } - "Evasion":{ Italian:"Manovre evasive" French:"Esquive" @@ -2078,4 +2023,16 @@ Simplified_Chinese:"遭受拦截时的损伤-50%" } + "Bonus when intercepting [amount]%":{ + Simplified_Chinese:"执行拦截任务时+[amount]%战斗力" + } + + "Ambush I":{ + Simplified_Chinese:"伏击I级" + } + + "Ambush II":{ + Simplified_Chinese:"伏击II级" + } + } diff --git a/android/assets/jsons/Tutorials/Tutorials_Simplified_Chinese.json b/android/assets/jsons/Tutorials/Tutorials_Simplified_Chinese.json index 68fd473d29..4273b1e21f 100644 --- a/android/assets/jsons/Tutorials/Tutorials_Simplified_Chinese.json +++ b/android/assets/jsons/Tutorials/Tutorials_Simplified_Chinese.json @@ -60,66 +60,66 @@ "在这里可以执行分配市民、组建单位和建造建筑或奇观、购买地块、查看城市详细信息等操作。" ], [ - "Once you have your first city up and running you’ll be able to start production of a new unit", - " and you’ll be able to begin your research.", - "I’m not going to delve too deeply into the research element of the game yet – that will be handled later in the guide –", - " so let’s just talk about production." + "一旦你建立了第一座城市,便可以执行组建单位、建造建筑等操作,", + "同时还可以着手研发科技。", + "科技研究是非常复杂的,这里不作说明,稍后我们会详细介绍。下面继续我们的教程--", + "先来谈谈组建单位吧。" ], [ - "The first thing coming out of your city should be either a Scout or Warrior." - "I generally prefer the Warrior because it can be used for defense and because it can be upgraded", - " to the Swordsman unit later in the game for a relatively modest sum of gold.", - "Scouts can be effective, however, if you seem to be located in an area of dense forest and hills.", - "Scouts don’t suffer a movement penalty in this terrain." - "If you’re a veteran of the 4x strategy genre your first Warrior or Scout will be followed by a Settler.", - "Fast expanding is absolutely critical in most games of this type.", + "你的城市第一个要组建的单位应该是斥候或勇士," + "我非常喜欢勇士因为他可以用于防守,同时也是可升级的,", + "当您研发完“铁器”科技后只需花费一定数量的金钱就可以把他升级为剑士。", + "斥候是探查地图的专家,尤其是当所在区域有大片的山脉和森林时。", + "斥候在这些复杂地形移动无移动力惩罚。" + "如果您是经验丰富的4X游戏玩家,紧随勇士和斥候后组建的单位应该是移民,", + "在这一类型的游戏中快速扩张是获取胜利的有效手段。", ], ], NewGame: [ [ "您好,欢迎来到绚丽多彩的UnCiv游戏世界!", - "文明游戏是复杂的,让我们通过教程来引导您开始一段奇妙的游戏旅程。", - "Your first mission is to found your capital city.", - "This is actually an important task because your capital city will probably be your most prosperous.", - "Many game bonuses apply only to your capital city and it will probably be the center of your empire." + "文明游戏是复杂的,让我们通过教程来引导您开始一段奇妙的旅程。", + "您的第一个任务是建立首都,", + "这个任务是非常重要的,因为通常情况下首都会成为你的文明最繁荣的城市。", + "游戏中解锁政策、科技等带来的很多增益往往只对首都有效,所以首都的发展代表了您的文明的发达程度。" ], [ - "How do you know a spot is appropriate?", - "That’s not an easy question to answer, but looking for and building next to luxury resources is a good rule of thumb.", - "Luxury resources are tiles that have things like gems, cotton, or silk (indicated by a smiley next to the resource icon)", - "These resources make your civilization happy. You should also keep an eye out for resources needed to build units, such as iron." + "如何选择一个合适的首都建立位置?这不是一个容易回答的问题。", + "通常情况下,选择紧邻奢侈资源的位置是选择建立点的不二法则。", + "奢侈资源主要包括宝石、棉花、丝绸等(这些资源在地图上用一个“笑脸”标示),", + "开发这些资源可以增加您的文明的快乐。当然,你也应该留意那些组建单位时所需要的战略资源,比如铁。" ], [ - "However, cities don’t have a set area that they can work - more on that later!" - "This means you don’t have to settle cities right next to resources.", - "Let’s say, for example, that you want access to some iron – but the resource is right next to a desert." - "You don’t have to settle your city next to the desert. You can settle a few tiles away in more prosperous lands.", - "Your city will grow and eventually gain access to the resource.", - "You only need to settle right next to resources if you need them immediately – ", - " which might be the case now and then, but you’ll usually have the luxury of time." + "但是,城市的边界不是固定的,它会随着文化的积累慢慢扩张。" + "这意味着你并不一定要把城市建在太过靠近资源的位置。", + "举例来说,比如, 你需要获得战略资源铁--但悲剧的是该资源紧邻沙漠。" + "您无需把城市建立在紧邻沙漠的位置。相反的,可以选择离该资源稍远而且更加富饶的地块。", + "随着城市的不断繁荣发展和边界的扩张,城市将慢慢靠近该资源直至获得它。", + "如果需要马上获得所需的战略资源你可以选择建城在靠近资源的位置--", + "有时候这样做可能对游戏的胜利更有利,但通常情况下您都有充裕的时间选择更加合理的建立点。" ], ], HappinessGettingLow:[ [ - "As cities grow in size and influence they also are able to work more territory.", - "You also have to deal with a happiness mechanic that is no longer tied to each individual city.", - "Instead, your entire empire shares the same level of satisfaction.", - "As your cities grow in population you’ll find that it is more and more difficult to keep your empire happy." + "随着城市规模扩大,城市的可工作地块也会变得越来越多。", + "这时,你将不得不面对游戏中关于“快乐”的机制。在游戏中,快乐的产出是所有城市总和计算,", + "快乐的消耗则由城市数量和人口数量决定。", + "随着城市数量的增加和城市人口的增长您将会很快发现:保持你的文明始终处于快乐是一件越来越难的事。" ], [ - "In addition, you can’t even build any city improvements that increase happiness until you’ve done the appropriate research.", - "If your empire’s happiness ever goes below zero the growth rate of your cities will be hurt.", - "If your empire becomes severely unhappy (as indicated by the smiley-face icon at the top of the interface)", - " your armies will have a big penalty slapped on to their overall combat effectiveness." + "此外,在未研发相关科技前您将无法建造任何能增加快乐的建筑、奇观和开发可以增加快乐的奢侈资源。", + "如果您的文明处于不满,将会极大地减慢城市发展速度。", + "如果文明的不满状态非常严重(顶部信息栏用一个“哭脸”标示),", + "您的部队战斗力将会有极大的减成。" ], [ - "This means that it is very difficult to expand quickly in Unciv." - "It isn’t impossible, but as a new player you probably shouldn’t do it." - "So what should you do? Chill out, scout, and improve the land that you do have by building Workers.", - "Only build new cities once you have found a spot that you believe is appropriate." + "这意味着在Unciv游戏中快速扩张是一件非常困难的事,新手们一定要十分慎重。" + "那么究竟应该如何做呢?把目光聚焦在发展自己已有的城市上吧。" + "通过组建工人建造设施、开发资源,同时不要放松对其他文明的侦查工作,", + "只有当您在寻找到一个合适的位置后再来建立新的城市吧。" ], ] @@ -228,20 +228,20 @@ "所以等待城市的自然发展可能更经济!" ] [ - "Once you’ve settled your first two or three cities you’re probably 100 to 150 turns into the game.", - "Now is a good time to start thinking about how, exactly, you want to win – if you haven’t already." + "当您建立了两三座城市后,可能已经经过了100~150回合,", + "这时您应该思考和谋划如何赢得游戏的胜利--如果此时你还没有胜利的话!" ], [ - "There are three ways to win in Unciv. They are:", - "Cultural Victory: Complete 4 Social Policy Trees", - "Domination Victory: Survive as the last civilization", - "Science Victory: Be the first to construct a spaceship to Alpha Centauri" + "在Unciv游戏中,有三种赢得胜利的方式。分别是:", + "文化胜利---完全推行4项社会政策;", + "征服胜利---通过消灭其他文明成为世界上唯一的存在;", + "科技胜利---成为第一个建造太空飞船飞向遥远的半人马阿尔法星的文明。" ], [ - "So to sum it up, these are the basics of Unciv – ", - "Found a prosperous first city, expand slowly to manage happiness,", - " and set yourself up for the victory condition you wish to pursue.", - "Obviously, there is much more to it than that, but it is important not to jump into the deep end before you know how to swim.", + "小心谋划、认真算计、稳扎稳打、步步为营,这是游玩Unciv游戏的基本法则。", + "首先建立一座繁荣的城市,确保快乐不为负的情况下慢慢扩张,渐渐成长为一方强权,", + "向着你设定的胜利目标勇敢前进吧!", + "这是勇敢者的游戏,需要的不仅是智谋和勇气,请尽情享受吧!不过,请注意:鲁莽与草率是通向死亡的快车道!", ] ] @@ -360,10 +360,10 @@ Idle_Units:[ [ - "If you don't want to move a unit this turn, you can skip it by clicking 'Next unit' again.", - "If you won't be moving it for a while, you can have the unit enter Fortify or Sleep mode - ", - " units in Fortify or Sleep are not considered idle units.", - "If you want to disable the 'Next unit' feature entirely, you can toggle it in Menu -> Check for idle units", + "如果当前回合不想对某个单位执行任何操作,可以点击右上方“下个未行动单位”按钮来跳过该单位。", + "如果一段时间内不想对其执行任何操作,可以对该单位执行“驻守”或“休眠”指令,", + "系统执行“回合结束前查看未行动单位”指令时将自动跳过处于“驻守”或“休眠”状态的未行动单位。", + "如果想完全禁用“下个未行动单位”按钮,请进入“设置”菜单并将“回合结束前查看未行动单位”设置为“否”。", ] ] diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index 2df6171add..62d00815a6 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -262,7 +262,7 @@ class CivilizationInfo { fun isAtWar() = diplomacy.values.any { it.diplomaticStatus== DiplomaticStatus.War && !it.otherCiv().isDefeated() } fun getLeaderDisplayName(): String { - var leaderName = getTranslatedNation().getLeaderDisplayName() + var leaderName = getTranslatedNation().getLeaderDisplayName().tr() if (playerType == PlayerType.AI) leaderName += " (" + "AI".tr() + ")" else if (gameInfo.civilizations.count { it.playerType == PlayerType.Human } > 1) diff --git a/core/src/com/unciv/models/gamebasics/Translations.kt b/core/src/com/unciv/models/gamebasics/Translations.kt index e938a02aae..c35f3e2946 100644 --- a/core/src/com/unciv/models/gamebasics/Translations.kt +++ b/core/src/com/unciv/models/gamebasics/Translations.kt @@ -44,8 +44,10 @@ class Translations : HashMap>(){ val regexResult = Regex("""(Bonus|Penalty) vs (.*) (\d*)%""").matchEntire(unique) if(regexResult==null) return unique.tr() else{ + var separatorCharacter = " " + if (UnCivGame.Current.settings.language=="Simplified_Chinese")separatorCharacter = "" val start = regexResult.groups[1]!!.value+" vs ["+regexResult.groups[2]!!.value+"]" - val translatedUnique = start.tr() + " "+ regexResult.groups[3]!!.value+"%" + val translatedUnique = start.tr() + separatorCharacter + regexResult.groups[3]!!.value+"%" return translatedUnique } } diff --git a/core/src/com/unciv/ui/VictoryScreen.kt b/core/src/com/unciv/ui/VictoryScreen.kt index f671d021a7..ef58fc3b3c 100644 --- a/core/src/com/unciv/ui/VictoryScreen.kt +++ b/core/src/com/unciv/ui/VictoryScreen.kt @@ -28,10 +28,10 @@ class VictoryScreen : PickerScreen() { init { val tabsTable = Table().apply { defaults().pad(10f) } - val setMyVictoryButton = TextButton("Our status",skin) + val setMyVictoryButton = TextButton("Our status".tr(),skin) setMyVictoryButton.onClick { setMyVictoryTable() } tabsTable.add(setMyVictoryButton) - val setGlobalVictoryButton = TextButton("Global status",skin) + val setGlobalVictoryButton = TextButton("Global status".tr(),skin) setGlobalVictoryButton .onClick { setGlobalVictoryTable() } tabsTable.add(setGlobalVictoryButton) topTable.add(tabsTable) @@ -124,7 +124,7 @@ class VictoryScreen : PickerScreen() { for (key in victoryManager.requiredSpaceshipParts.keys) for (i in 0 until victoryManager.requiredSpaceshipParts[key]!!) - t.add(getMilestone(key, victoryManager.currentsSpaceshipParts[key]!! > i)).row() //(key, builtSpaceshipParts) + t.add(getMilestone(key.tr(), victoryManager.currentsSpaceshipParts[key]!! > i)).row() //(key, builtSpaceshipParts) return t } @@ -134,7 +134,7 @@ class VictoryScreen : PickerScreen() { t.defaults().pad(5f) for(branch in GameBasics.PolicyBranches.values) { val finisher = branch.policies.last().name - t.add(getMilestone(finisher, playerCivInfo.policies.isAdopted(finisher))).row() + t.add(getMilestone(finisher.tr(), playerCivInfo.policies.isAdopted(finisher))).row() } return t } @@ -175,7 +175,7 @@ class VictoryScreen : PickerScreen() { private fun getGlobalDominationVictoryColumn(majorCivs: List): Table { val dominationVictoryColumn = Table().apply { defaults().pad(10f) } - dominationVictoryColumn.add("Undefeated civs".toLabel()).row() + dominationVictoryColumn.add("Undefeated civs".tr().toLabel()).row() dominationVictoryColumn.addSeparator() for (civ in majorCivs.filter { !it.isDefeated() }) @@ -189,7 +189,7 @@ class VictoryScreen : PickerScreen() { private fun getGlobalCulturalVictoryColumn(majorCivs: List): Table { val policyVictoryColumn = Table().apply { defaults().pad(10f) } - policyVictoryColumn.add("Branches completed".toLabel()).row() + policyVictoryColumn.add("Branches completed".tr().toLabel()).row() policyVictoryColumn.addSeparator() data class civToBranchesCompleted(val civ: CivilizationInfo, val branchesCompleted: Int) @@ -206,7 +206,7 @@ class VictoryScreen : PickerScreen() { private fun getGlobalScientificVictoryColumn(majorCivs: List): Table { val scientificVictoryColumn = Table().apply { defaults().pad(10f) } - scientificVictoryColumn.add("Spaceship parts remaining".toLabel()).row() + scientificVictoryColumn.add("Spaceship parts remaining".tr().toLabel()).row() scientificVictoryColumn.addSeparator() data class civToSpaceshipPartsRemaining(val civ: CivilizationInfo, val partsRemaining: Int) diff --git a/core/src/com/unciv/ui/newgamescreen/NationTable.kt b/core/src/com/unciv/ui/newgamescreen/NationTable.kt index 5df9634ada..4cd40e5920 100644 --- a/core/src/com/unciv/ui/newgamescreen/NationTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/NationTable.kt @@ -84,7 +84,7 @@ class NationTable(val nation: Nation, width:Float, onClick:()->Unit) for (unique in unit.uniques.filterNot { it in originalUnit.uniques }) textList += " " + Translations.translateBonusOrPenalty(unique) for(unique in originalUnit.uniques.filterNot { it in unit.uniques }) - textList += " "+"Lost ability".tr()+"(vs "+originalUnit.name.tr()+"):"+Translations.translateBonusOrPenalty(unique) + textList += " "+"Lost ability".tr()+"(vs "+originalUnit.name.tr()+"): "+Translations.translateBonusOrPenalty(unique) for (promotion in unit.promotions.filter { it !in originalUnit.promotions }) textList += " " + promotion.tr() + " (" + Translations.translateBonusOrPenalty(GameBasics.UnitPromotions[promotion]!!.effect) + ")" diff --git a/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt index 783846d88e..2f2d5f07d1 100644 --- a/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt @@ -5,6 +5,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Button import com.unciv.UnCivGame import com.unciv.logic.civilization.GreatPersonManager import com.unciv.models.gamebasics.GameBasics +import com.unciv.models.gamebasics.tr import com.unciv.models.gamebasics.unit.BaseUnit import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.onClick @@ -16,7 +17,7 @@ class GreatPersonPickerScreen : PickerScreen() { init { closeButton.isVisible=false - rightSideButton.setText("Choose a free great person") + rightSideButton.setText("Choose a free great person".tr()) for (unit in GameBasics.Units.values .filter { it.name in GreatPersonManager().statToGreatPersonMapping.values || it.name == "Great General"}) { @@ -27,8 +28,10 @@ class GreatPersonPickerScreen : PickerScreen() { button.pack() button.onClick { theChosenOne = unit - pick("Get " +unit.name) - descriptionLabel.setText(unit.uniques.joinToString()) + var unitDescription=HashSet() + unit.uniques.forEach { unitDescription.add(it.tr()) } + pick("Get ".tr() +unit.name.tr()) + descriptionLabel.setText(unitDescription.joinToString()) } topTable.add(button).pad(10f).row() } diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index 1b012bafc6..6ff2f880ce 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -94,16 +94,16 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo):CameraStageBaseScreen() { val diplomacyTable = Table() diplomacyTable.defaults().pad(10f) diplomacyTable.add(otherCiv.getLeaderDisplayName().toLabel().setFontSize(24)).row() - diplomacyTable.add(("Type: " + otherCiv.getCityStateType().toString()).toLabel()).row() - diplomacyTable.add(("Influence: " + otherCivDiplomacyManager.influence.toInt() + "/30").toLabel()).row() + diplomacyTable.add(("Type: ".tr() + otherCiv.getCityStateType().toString().tr()).toLabel()).row() + diplomacyTable.add(("Influence: ".tr() + otherCivDiplomacyManager.influence.toInt() + "/30").toLabel()).row() diplomacyTable.add(getRelationshipTable(otherCivDiplomacyManager)).row() val friendBonusText = when (otherCiv.getCityStateType()) { - CityStateType.Cultured -> "Provides [" + (3 * (viewingCiv.getEra().ordinal + 1)).toString() + "] culture at [30] Influence" - CityStateType.Maritime -> "Provides 3 food in capital and 1 food in other cities at [30] Influence" - CityStateType.Mercantile -> "Provides 3 happiness at [30] Influence" - CityStateType.Militaristic -> "Provides land units every 20 turns at [30] Influence" + CityStateType.Cultured -> ("Provides [" + (3 * (viewingCiv.getEra().ordinal + 1)).toString() + "] culture at [30] Influence").tr() + CityStateType.Maritime -> "Provides 3 food in capital and 1 food in other cities at [30] Influence".tr() + CityStateType.Mercantile -> "Provides 3 happiness at [30] Influence".tr() + CityStateType.Militaristic -> "Provides land units every 20 turns at [30] Influence".tr() } val friendBonusLabel = friendBonusText.toLabel() @@ -111,7 +111,7 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo):CameraStageBaseScreen() { if (otherCivDiplomacyManager.relationshipLevel() >= RelationshipLevel.Friend) { friendBonusLabel.setFontColor(Color.GREEN) val turnsToRelationshipChange = otherCivDiplomacyManager.influence.toInt() - 30 + 1 - diplomacyTable.add("Relationship changes in another [$turnsToRelationshipChange] turns".toLabel()).row() + diplomacyTable.add("Relationship changes in another [$turnsToRelationshipChange] turns".tr().toLabel()).row() } else friendBonusLabel.setFontColor(Color.GRAY) diff --git a/core/src/com/unciv/ui/worldscreen/TradePopup.kt b/core/src/com/unciv/ui/worldscreen/TradePopup.kt index 9380323f9e..1d37a0e5a2 100644 --- a/core/src/com/unciv/ui/worldscreen/TradePopup.kt +++ b/core/src/com/unciv/ui/worldscreen/TradePopup.kt @@ -27,6 +27,9 @@ class TradePopup(worldScreen: WorldScreen): PopupTable(worldScreen){ val trade = tradeRequest.trade val tradeOffersTable = Table().apply { defaults().pad(10f) } + tradeOffersTable.add("[${translatedNation.getNameTranslation()}]'s trade offer".tr().toLabel()) + tradeOffersTable.add("Our trade offer".tr().toLabel()) + tradeOffersTable.row() for(i in 0..max(trade.theirOffers.lastIndex, trade.ourOffers.lastIndex)){ if(trade.theirOffers.lastIndex>=i) tradeOffersTable.add(trade.theirOffers[i].getOfferText().toLabel()) else tradeOffersTable.add() From c9f6ba958fffec6b76b996f5416bd94ce85af72b Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sat, 7 Sep 2019 21:24:28 +0300 Subject: [PATCH 12/13] Can no longer adopt policies after being defeated --- .../jsons/Translations/Units,Promotions.json | 4 ++++ .../unciv/logic/civilization/CivilizationInfo.kt | 7 ++++++- core/src/com/unciv/ui/VictoryScreen.kt | 16 ++++++++-------- .../unciv/ui/pickerscreens/PolicyPickerScreen.kt | 1 + core/src/com/unciv/ui/trade/DiplomacyScreen.kt | 2 +- core/src/com/unciv/ui/worldscreen/TradePopup.kt | 4 ++-- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/android/assets/jsons/Translations/Units,Promotions.json b/android/assets/jsons/Translations/Units,Promotions.json index 59a3e1a851..a315a47af1 100644 --- a/android/assets/jsons/Translations/Units,Promotions.json +++ b/android/assets/jsons/Translations/Units,Promotions.json @@ -1452,6 +1452,10 @@ French:"Unités en terrain ouvert" Russian:"юниты на открытой местности" } + + "units in rough terrain":{ + + } "Barrage I":{ Italian:"Fuoco di Fila I" diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index 62d00815a6..0f9e476376 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -395,7 +395,12 @@ class CivilizationInfo { notifications.add(Notification(text, color, action)) } - fun addGreatPerson(greatPerson: String, city:CityInfo = cities.random()) { + fun addGreatPerson(greatPerson: String){ + if(cities.isEmpty()) return + addGreatPerson(greatPerson, cities.random()) + } + + fun addGreatPerson(greatPerson: String, city:CityInfo) { placeUnitNearTile(city.location, greatPerson) addNotification("A [$greatPerson] has been born!".tr(), city.location, Color.GOLD) } diff --git a/core/src/com/unciv/ui/VictoryScreen.kt b/core/src/com/unciv/ui/VictoryScreen.kt index ef58fc3b3c..38e0557d00 100644 --- a/core/src/com/unciv/ui/VictoryScreen.kt +++ b/core/src/com/unciv/ui/VictoryScreen.kt @@ -118,13 +118,13 @@ class VictoryScreen : PickerScreen() { fun scienceVictoryColumn():Table{ val t = Table() t.defaults().pad(5f) - t.add(getMilestone("Built Apollo Program".tr(),playerCivInfo.containsBuildingUnique("Enables construction of Spaceship parts"))).row() + t.add(getMilestone("Built Apollo Program",playerCivInfo.containsBuildingUnique("Enables construction of Spaceship parts"))).row() val victoryManager= playerCivInfo.victoryManager for (key in victoryManager.requiredSpaceshipParts.keys) for (i in 0 until victoryManager.requiredSpaceshipParts[key]!!) - t.add(getMilestone(key.tr(), victoryManager.currentsSpaceshipParts[key]!! > i)).row() //(key, builtSpaceshipParts) + t.add(getMilestone(key, victoryManager.currentsSpaceshipParts[key]!! > i)).row() //(key, builtSpaceshipParts) return t } @@ -134,7 +134,7 @@ class VictoryScreen : PickerScreen() { t.defaults().pad(5f) for(branch in GameBasics.PolicyBranches.values) { val finisher = branch.policies.last().name - t.add(getMilestone(finisher.tr(), playerCivInfo.policies.isAdopted(finisher))).row() + t.add(getMilestone(finisher, playerCivInfo.policies.isAdopted(finisher))).row() } return t } @@ -147,13 +147,13 @@ class VictoryScreen : PickerScreen() { val civName = if (playerCivInfo.diplomacy.containsKey(civ.civName)) civ.civName else "???" - table.add(getMilestone("Destroy [$civName]".tr(), civ.isDefeated())).row() + table.add(getMilestone("Destroy [$civName]", civ.isDefeated())).row() } return table } fun getMilestone(text:String, achieved:Boolean): TextButton { - val textButton = TextButton(text,skin) + val textButton = TextButton(text.tr(),skin) if(achieved) textButton.color = Color.GREEN else textButton.color = Color.GRAY return textButton @@ -175,7 +175,7 @@ class VictoryScreen : PickerScreen() { private fun getGlobalDominationVictoryColumn(majorCivs: List): Table { val dominationVictoryColumn = Table().apply { defaults().pad(10f) } - dominationVictoryColumn.add("Undefeated civs".tr().toLabel()).row() + dominationVictoryColumn.add("Undefeated civs".toLabel()).row() dominationVictoryColumn.addSeparator() for (civ in majorCivs.filter { !it.isDefeated() }) @@ -189,7 +189,7 @@ class VictoryScreen : PickerScreen() { private fun getGlobalCulturalVictoryColumn(majorCivs: List): Table { val policyVictoryColumn = Table().apply { defaults().pad(10f) } - policyVictoryColumn.add("Branches completed".tr().toLabel()).row() + policyVictoryColumn.add("Branches completed".toLabel()).row() policyVictoryColumn.addSeparator() data class civToBranchesCompleted(val civ: CivilizationInfo, val branchesCompleted: Int) @@ -206,7 +206,7 @@ class VictoryScreen : PickerScreen() { private fun getGlobalScientificVictoryColumn(majorCivs: List): Table { val scientificVictoryColumn = Table().apply { defaults().pad(10f) } - scientificVictoryColumn.add("Spaceship parts remaining".tr().toLabel()).row() + scientificVictoryColumn.add("Spaceship parts remaining".toLabel()).row() scientificVictoryColumn.addSeparator() data class civToSpaceshipPartsRemaining(val civ: CivilizationInfo, val partsRemaining: Int) diff --git a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt index 57a119a52b..1c9727f7b4 100644 --- a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt @@ -80,6 +80,7 @@ class PolicyPickerScreen(val worldScreen: WorldScreen) : PickerScreen() { private fun pickPolicy(policy: Policy) { if (!worldScreen.isPlayersTurn + || viewingCiv.isDefeated() || viewingCiv.policies.isAdopted(policy.name) || policy.name.endsWith("Complete") || !viewingCiv.policies.isAdoptable(policy) diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index 6ff2f880ce..4be5e1dc6e 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -111,7 +111,7 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo):CameraStageBaseScreen() { if (otherCivDiplomacyManager.relationshipLevel() >= RelationshipLevel.Friend) { friendBonusLabel.setFontColor(Color.GREEN) val turnsToRelationshipChange = otherCivDiplomacyManager.influence.toInt() - 30 + 1 - diplomacyTable.add("Relationship changes in another [$turnsToRelationshipChange] turns".tr().toLabel()).row() + diplomacyTable.add("Relationship changes in another [$turnsToRelationshipChange] turns".toLabel()).row() } else friendBonusLabel.setFontColor(Color.GRAY) diff --git a/core/src/com/unciv/ui/worldscreen/TradePopup.kt b/core/src/com/unciv/ui/worldscreen/TradePopup.kt index 1d37a0e5a2..5f8dbdf172 100644 --- a/core/src/com/unciv/ui/worldscreen/TradePopup.kt +++ b/core/src/com/unciv/ui/worldscreen/TradePopup.kt @@ -27,8 +27,8 @@ class TradePopup(worldScreen: WorldScreen): PopupTable(worldScreen){ val trade = tradeRequest.trade val tradeOffersTable = Table().apply { defaults().pad(10f) } - tradeOffersTable.add("[${translatedNation.getNameTranslation()}]'s trade offer".tr().toLabel()) - tradeOffersTable.add("Our trade offer".tr().toLabel()) + tradeOffersTable.add("[${translatedNation.getNameTranslation()}]'s trade offer".toLabel()) + tradeOffersTable.add("Our trade offer".toLabel()) tradeOffersTable.row() for(i in 0..max(trade.theirOffers.lastIndex, trade.ourOffers.lastIndex)){ if(trade.theirOffers.lastIndex>=i) tradeOffersTable.add(trade.theirOffers[i].getOfferText().toLabel()) From 397484226593d0ee8a68fd1c49539703c957b785 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sat, 7 Sep 2019 21:31:56 +0300 Subject: [PATCH 13/13] Added error message when attempting to load a map from bad copied data --- core/src/com/unciv/ui/saves/LoadMapScreen.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/core/src/com/unciv/ui/saves/LoadMapScreen.kt b/core/src/com/unciv/ui/saves/LoadMapScreen.kt index 43cc48c77b..fac21405fa 100644 --- a/core/src/com/unciv/ui/saves/LoadMapScreen.kt +++ b/core/src/com/unciv/ui/saves/LoadMapScreen.kt @@ -11,9 +11,7 @@ import com.unciv.logic.map.TileMap import com.unciv.models.gamebasics.tr import com.unciv.ui.mapeditor.MapEditorScreen import com.unciv.ui.pickerscreens.PickerScreen -import com.unciv.ui.utils.disable -import com.unciv.ui.utils.enable -import com.unciv.ui.utils.onClick +import com.unciv.ui.utils.* import com.unciv.ui.worldscreen.optionstable.YesNoPopupTable class LoadMapScreen(previousMap: TileMap) : PickerScreen(){ @@ -42,13 +40,20 @@ class LoadMapScreen(previousMap: TileMap) : PickerScreen(){ val rightSideTable = Table().apply { defaults().pad(10f) } val loadFromClipboardButton = TextButton("Load copied data".tr(), skin) - loadFromClipboardButton .onClick { + val couldNotLoadMapLabel = "Could not load map!".toLabel().setFontColor(Color.RED).apply { isVisible=false } + loadFromClipboardButton.onClick { val clipboardContentsString = Gdx.app.clipboard.contents.trim() - val decoded = Gzip.unzip(clipboardContentsString) - val loadedMap = MapSaver().mapFromJson(decoded) - UnCivGame.Current.screen = MapEditorScreen(loadedMap) + try { + val decoded = Gzip.unzip(clipboardContentsString) + val loadedMap = MapSaver().mapFromJson(decoded) + UnCivGame.Current.screen = MapEditorScreen(loadedMap) + } + catch (ex:Exception){ + couldNotLoadMapLabel.isVisible=true + } } rightSideTable.add(loadFromClipboardButton).row() + rightSideTable.add(couldNotLoadMapLabel).row() deleteMapButton.onClick { YesNoPopupTable("Are you sure you want to delete this map?", {