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] =?UTF-8?q?update=20Chinese=20translation=EF=BC=8CRussian?= =?UTF-8?q?=20translation=20Lost=20a=20word=20("),=20please=20update=20it?= =?UTF-8?q?=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()