From e5f16c4d67eed04184dac8f93f831cd041cccd27 Mon Sep 17 00:00:00 2001 From: add-le Date: Fri, 14 Oct 2022 18:50:10 +0200 Subject: [PATCH] label to translate color choices --- .../main/java/forge/deck/DeckRecognizer.java | 19 +++++++++++- .../ability/effects/ChooseColorEffect.java | 12 ++++--- .../home/settings/VSubmenuAchievements.java | 8 ++--- forge-gui/res/languages/de-DE.properties | 9 ++++++ forge-gui/res/languages/en-US.properties | 11 ++++++- forge-gui/res/languages/es-ES.properties | 9 ++++++ forge-gui/res/languages/fr-FR.properties | 25 ++++++++++----- forge-gui/res/languages/it-IT.properties | 31 ++++++++++++------- forge-gui/res/languages/ja-JP.properties | 9 ++++++ forge-gui/res/languages/pt-BR.properties | 11 ++++++- forge-gui/res/languages/zh-CN.properties | 9 ++++++ .../java/forge/gui/card/CardDetailUtil.java | 31 +++++++++---------- .../achievements/Achievement.java | 26 ++++++++-------- 13 files changed, 151 insertions(+), 59 deletions(-) diff --git a/forge-core/src/main/java/forge/deck/DeckRecognizer.java b/forge-core/src/main/java/forge/deck/DeckRecognizer.java index 3d4df685262..3b80a4ec6ef 100644 --- a/forge-core/src/main/java/forge/deck/DeckRecognizer.java +++ b/forge-core/src/main/java/forge/deck/DeckRecognizer.java @@ -1025,7 +1025,7 @@ public class DeckRecognizer { } } - private static String getLocalisedMagicColorName(String colorName){ + public static String getLocalisedMagicColorName(String colorName){ Localizer localizer = Localizer.getInstance(); switch(colorName.toLowerCase()){ case MagicColor.Constant.WHITE: @@ -1053,6 +1053,23 @@ public class DeckRecognizer { } } + /** + * Get the magic color by the localised/translated name. + * @param localisedName String of localised color name. + * @return The string of the magic color. + */ + public static String getColorNameByLocalisedName(String localisedName) { + Localizer localizer = Localizer.getInstance(); + + if(localisedName.equals(localizer.getMessage("lblWhite"))) return MagicColor.Constant.WHITE; + if(localisedName.equals(localizer.getMessage("lblBlue"))) return MagicColor.Constant.BLUE; + if(localisedName.equals(localizer.getMessage("lblBlack"))) return MagicColor.Constant.BLACK; + if(localisedName.equals(localizer.getMessage("lblRed"))) return MagicColor.Constant.RED; + if(localisedName.equals(localizer.getMessage("lblGreen"))) return MagicColor.Constant.GREEN; + + return ""; + } + private static Pair getManaNameAndSymbol(String matchedMana) { if (matchedMana == null) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java index 3775d25a32c..257545caf44 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseColorEffect.java @@ -1,10 +1,7 @@ package forge.game.ability.effects; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - import forge.card.MagicColor; +import forge.deck.DeckRecognizer; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.player.Player; @@ -14,6 +11,11 @@ import forge.util.Aggregates; import forge.util.Lang; import forge.util.Localizer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + public class ChooseColorEffect extends SpellAbilityEffect { @Override @@ -80,7 +82,9 @@ public class ChooseColorEffect extends SpellAbilityEffect { } noNotify = null; } else { + colorChoices = colorChoices.stream().map(DeckRecognizer::getLocalisedMagicColorName).collect(Collectors.toList()); chosenColors = p.getController().chooseColors(prompt, sa, cntMin, cntMax, colorChoices); + chosenColors = chosenColors.stream().map(DeckRecognizer::getColorNameByLocalisedName).collect(Collectors.toList()); } if (chosenColors.isEmpty()) { return; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java index ef98c956e91..d357a9531c6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java @@ -445,22 +445,22 @@ public enum VSubmenuAchievements implements IVSubmenu { } if (mythicDesc != null) { FSkin.setGraphicsColor(g2d, selectedAchievement.earnedMythic() ? TEXT_COLOR : NOT_EARNED_COLOR); - g2d.drawString(selectedAchievement.isSpecial() ? mythicDesc : "(Mythic) " + mythicDesc, x, y); //handle flavor text here too + g2d.drawString(selectedAchievement.isSpecial() ? mythicDesc : "(" + Localizer.getInstance().getMessage("lblMythic") + ") " + mythicDesc, x, y); //handle flavor text here too y += descHeight; } if (rareDesc != null) { FSkin.setGraphicsColor(g2d, selectedAchievement.earnedRare() ? TEXT_COLOR : NOT_EARNED_COLOR); - g2d.drawString("(Rare) " + rareDesc, x, y); + g2d.drawString("("+ Localizer.getInstance().getMessage("lblRare") + ") " + rareDesc, x, y); y += descHeight; } if (uncommonDesc != null) { FSkin.setGraphicsColor(g2d, selectedAchievement.earnedUncommon() ? TEXT_COLOR : NOT_EARNED_COLOR); - g2d.drawString("(Uncommon) " + uncommonDesc, x, y); + g2d.drawString("(" + Localizer.getInstance().getMessage("lblUncommon") + ") " + uncommonDesc, x, y); y += descHeight; } if (commonDesc != null) { FSkin.setGraphicsColor(g2d, selectedAchievement.earnedCommon() ? TEXT_COLOR : NOT_EARNED_COLOR); - g2d.drawString("(Common) " + commonDesc, x, y); + g2d.drawString("(" + Localizer.getInstance().getMessage("lblCommon") + ") " + commonDesc, x, y); } } diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 2e6d2fb7f6c..8b32be964a6 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -562,6 +562,7 @@ lblGreen=Grün lblRed=Rot lblWhite=Weiß lblColorless=Farblos +lblSnow=Snow lblIncludeArtifacts=mit Artefakten lblBalanced=Ausgeglichen lblTrueRandom=Wirklich zufällig @@ -2905,3 +2906,11 @@ lblLossProper=Niederlage lblWinLossRatio=Sieg/Niederlage-Quote lblHeal=Heilen lblTempHitPoints=Temporäre Trefferpunkte +#CardDetailUtil.java +lblChosenColors=Chosen colors: +#Achievement.java +lblCommon=Common +lblUncommon=Uncommon +lblRare=Rare +lblMythic=Mythic +lblAchievementEarned=Achievement Earned diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index fc334ebe981..c05cb9b8e63 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -563,6 +563,7 @@ lblGreen=Green lblRed=Red lblWhite=White lblColorless=Colorless +lblSnow=Snow lblIncludeArtifacts=Include Artifacts lblBalanced=Balanced lblTrueRandom=True Random @@ -2907,4 +2908,12 @@ lblWinProper=Win lblLossProper=Loss lblWinLossRatio=Win Loss Ratio lblHeal=Heal -lblTempHitPoints=Temporary Hit Points \ No newline at end of file +lblTempHitPoints=Temporary Hit Points +#CardDetailUtil.java +lblChosenColors=Chosen colors: +#Achievement.java +lblCommon=Common +lblUncommon=Uncommon +lblRare=Rare +lblMythic=Mythic +lblAchievementEarned=Achievement Earned diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 69e5bd4ab8f..ecb2925ae2e 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -563,6 +563,7 @@ lblGreen=Verde lblRed=Rojo lblWhite=Blanco lblColorless=Incoloro +lblSnow=Snow lblIncludeArtifacts=Incluir Artefactos lblBalanced=Balanceado lblTrueRandom=Aleatorio real @@ -2908,3 +2909,11 @@ lblLossProper=Pérdida lblWinLossRatio=Relación de pérdidas lblHeal=Curar lblTempHitPoints=Puntos de golpe temporales +#CardDetailUtil.java +lblChosenColors=Chosen colors: +#Achievement.java +lblCommon=Common +lblUncommon=Uncommon +lblRare=Rare +lblMythic=Mythic +lblAchievementEarned=Achievement Earned diff --git a/forge-gui/res/languages/fr-FR.properties b/forge-gui/res/languages/fr-FR.properties index 07eadf4359b..e2dd27d8fe9 100644 --- a/forge-gui/res/languages/fr-FR.properties +++ b/forge-gui/res/languages/fr-FR.properties @@ -159,7 +159,7 @@ nlEnforceDeckLegality=Applique la légalité du deck en fonction de chaque envir nlSideboardForAI=Permet aux utilisateurs de se sideboarder avec le deck IA et le sideboard dans des formats de jeu construits. nlPerformanceMode=Désactive les vérifications supplémentaires des capacités statiques pour accélérer le moteur de jeu. (Attention : casse certains scénarios ''comme si c''était flash'' lors du lancement de cartes appartenant à des adversaires). nlFilteredHands=Génère deux mains de départ et conserve celle dont le nombre de terrains est le plus proche de la moyenne pour le deck. (NÉCESSITE UN REDÉMARRAGE) -nlCloneImgSource=Lorsqu''il est activé, les clones utiliseront leur art original au lieu de l'''art de la carte clonée. +nlCloneImgSource=Lorsqu''il est activé, les clones utiliseront leur art original au lieu de l''art de la carte clonée. nlPromptFreeBlocks=Lorsqu''il est activé, si vous deviez payer 0 pour bloquer, payez automatiquement sans invite. nlPauseWhileMinimized=Lorsqu''il est activé, Forge s''arrête lorsqu''il est réduit (principalement pour l''IA par rapport à l''IA). nlEscapeEndsTurn=Lorsqu''elle est activée, la touche Échap fonctionne comme un raccourci alternatif pour terminer le tour en cours. @@ -221,7 +221,7 @@ nlpLandPlayed=Choisissez quand vous souhaitez recevoir des notifications visuell cbpSwitchStates=Changer les états de la carte nlSwitchStates=Afficher l''état alternatif pour chaque seconde copie dans les visualiseurs de deck. #VSubmenuAchievements.java -lblAchievements=Réalisations +lblAchievements=Succès #VSubmenuDownloaders.java btnCheckForUpdates=Vérifier les mises à jour btnDownloadSetPics=Télécharger les images de l''ensemble LQ @@ -447,7 +447,7 @@ lblDuplicateDeck=Dupliquer le jeu ? lblDuplicate=Dupliquer lblHowManyOpponents=Combien d''adversaires êtes-vous prêt à affronter ? lblChooseAllowedDeckTypeOpponents=Choisir les types de deck autorisés pour les adversaires -lblSelectOpponentDeck=Sélectionner le deck de l'''adversaire +lblSelectOpponentDeck=Sélectionner le deck de l''adversaire lblGenerateNewDeck=Générer un nouveau deck lblRandomTheme=Thème aléatoire lblTestDeck=Plateau de test @@ -563,6 +563,7 @@ lblGreen=Vert lblRed=Rouge lblWhite=Blanc lblColorless=Incolore +lblSnow=Neige lblIncludeArtifacts=Inclure les artefacts lblBalanced=Équilibré lblTrueRandom=Vrai aléatoire @@ -2090,7 +2091,7 @@ lblUntapStep=Étape de dégagement lblUpkeepStep=Étape d''entretien lblDrawStep=Étape de dessin lblMainPhase1=Phase principale, précombat -lblCombatBeginStep=Début de l'''étape de combat +lblCombatBeginStep=Début de l''étape de combat lblCombatDeclareAttackersStep=Étape de déclaration des attaquants lblCombatDeclareBlockersStep=Étape de déclaration des bloqueurs lblCombatFirstStrikeDamageStep=Première étape de dégâts de frappe @@ -2201,8 +2202,8 @@ lblPlayerFlipComesUpValue={0} retournement {1} lblPlayerActionFlip={0} {1} le retournement lblPlayerChooseValue={0} choisissez {1} lblPlayerVoteValue={0} voter {1} -lblCardEffectValueIs={0} la valeur de l'''effet est {1} -lblCardEffectToTargetValueIs=La valeur de l'''effet {0} pour {1} est {2} +lblCardEffectValueIs={0} la valeur de l''effet est {1} +lblCardEffectToTargetValueIs=La valeur de l''effet {0} pour {1} est {2} lblYou=vous #CardListChooser.java lblAreYouSureWantPickCard=Êtes-vous sûr de vouloir choisir ''{0}'' ? @@ -2325,7 +2326,7 @@ lblStartingShards=Fragments de départ lblChaosWheelShardValue=Valeur du fragment de roue du chaos lblBoosterPacks=Booster Packs lblCommons=Communs -lblUncommons=Peu commun +lblUncommons=Peu communs lblRares=Rares lblBoostersPerMythic=Boosters par Mythique lblBaseConquerReward=Récompense de conquête de base @@ -2910,4 +2911,12 @@ lblWinProper=Gagner lblLossProper=Perte lblWinLossRatio=Rapport de perte de gains lblHeal=Guérir -lblTempHitPoints=Points de vie temporaires \ No newline at end of file +lblTempHitPoints=Points de vie temporaires +#CardDetailUtil.java +lblChosenColors=Couleurs choisies : +#Achievement.java +lblCommon=Commun +lblUncommon=Peu commun +lblRare=Rare +lblMythic=Mythique +lblAchievementEarned=Succès obtenu diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 8057e4b9847..386c3d730df 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -562,6 +562,7 @@ lblGreen=Verde lblRed=Rosso lblWhite=Bianco lblColorless=Incolore +lblSnow=Snow lblIncludeArtifacts=Includi artefatti lblBalanced=Equilibrato lblTrueRandom=Puramente casuale @@ -1064,21 +1065,21 @@ nlFullScreenMode=Enable Fullscreen mode lblVideoMode=Modalità video nlVideoMode=Applies the selected video mode option. lblSelectorMode=Opzioni di selezione -nlSelectorMode=Applica la modalità selezionata all'avvio (predefinito abilita l'opzione selettore, classico o avventura apre la schermata principale all'avvio). +nlSelectorMode=Applica la modalità selezionata all''avvio (predefinito abilita l''opzione selettore, classico o avventura apre la schermata principale all''avvio). lblShowFPSDisplay=Mostra indicatore FPS nlShowFPSDisplay=Se abilitato, mostra i Frame Per Secondo (sperimentale). lblEnableUnknownCards=Abilita carte sconosciute nlEnableUnknownCards=Abilita il caricamento di carte sconosciute in espansioni sconosciute. (RIAVVIO NECESSARIO) lblEnableNonLegalCards=Abilita carte non legali nlEnableNonLegalCards=Abilita carte non legali come le espansioni ''UnSet'' e le carte di PlayTest. (RIAVVIO NECESSARIO) -lblAllowCustomCardsInDecks=Abilita l'uso di carte personalizzate +lblAllowCustomCardsInDecks=Abilita l''uso di carte personalizzate nlAllowCustomCardsInDecks=Abilita le partite con mazzi che contengono carte personalizzate (Valido solo con controllo di conformità del mazzo attivo). (RIAVVIO NECESSARIO) lblDisableCardImages=Disabilita le immagini delle carte nlDisableCardImages=Se abilitato, Forge non mostrerà alcuna immagine per le carte. lblExperimentalNetworkCompatibility=Compatibilità di rete sperimentale nlExperimentalNetworkCompatibility=Forge passa a un flusso di rete compatibile. (Nel dubbio, DISABILITARE questa opzione) lblDisposeTextures=Rimuovi Texture -nlDisposeTextures=Se abilitato, dispone la scheda Art e l'immagine della scheda Cache per salvare RAM durante la commutazione dello schermo del gioco. (Nel dubbio, DISABILITARE questa opzione) +nlDisposeTextures=Se abilitato, dispone la scheda Art e l''immagine della scheda Cache per salvare RAM durante la commutazione dello schermo del gioco. (Nel dubbio, DISABILITARE questa opzione) lblAutoCacheSize=Abilita dimensione automatica della cache nlAutoCacheSize=Se abilitato, la dimensione della cache è stabilita automaticamente all''avvio. (Nel dubbio, DISABILITARE questa opzione) lblUseLaserArrows=Use Laser Arrows @@ -2712,9 +2713,9 @@ lblIgnoreBnR=Includi nel mazzo anche le carte Bandite e Limitate ttIgnoreBnR=Se attivato, le carte Bandite e Limitate verranno normalmente aggiunte al mazzo. nlIgnoreBnR=Attenzione: Il mazzo risultante potrebbe essere non utilizzabile se il controllo di conformità del mazzo \ è attivata. -lblUseSmartCardArt=Armonizza le illustrazioni nell'elenco -ttUseSmartCardArtNoDeck=Se abilitata, le illustrazioni delle carte senza una specifica edizione saranno automaticamente scelte in linea con le altre carte dell'elenco da importare. -ttUseSmartCardArtWithDeck=Se abilitata, le illustrazioni delle carte senza una specifica edizione saranno automaticamente scelte in linea con le altre nel mazzo corrente, e nell'elenco da importare. +lblUseSmartCardArt=Armonizza le illustrazioni nell''elenco +ttUseSmartCardArtNoDeck=Se abilitata, le illustrazioni delle carte senza una specifica edizione saranno automaticamente scelte in linea con le altre carte dell''elenco da importare. +ttUseSmartCardArtWithDeck=Se abilitata, le illustrazioni delle carte senza una specifica edizione saranno automaticamente scelte in linea con le altre nel mazzo corrente, e nell''elenco da importare. lblExtraOptions=Mostra le Opzioni lblHideOptions=Nascondi le Opzioni lblCardPreview=Anteprima @@ -2727,7 +2728,7 @@ lblImportCardsCmd=Importa le carte lblCreateNewCmd=Nuovo mazzo lblErrNotAllowedCard=Edizione non permessa in {0} lblWarnLimitedCard={0} in {1} -lblErrCardEditionDate=Edizione non valida secondo l'opzione sulla data di pubblicazione selezionata +lblErrCardEditionDate=Edizione non valida secondo l''opzione sulla data di pubblicazione selezionata lblErrUnsupportedCard=Non Permesso in {0} lblWarnUnknownCardMsg=Carta Sconosciuta, o non supportata in Forge lblWarnTooManyCommanders=La Sezione {0} contiene {1} potenziali carte Commander: {2} @@ -2752,12 +2753,12 @@ nlGuideTipsText=In questa sezione è riportata una breve descrizione delle molte per personalizzare, e organizzare la propria lista di carte. \n {0} lblGuideTipsTitleCount=Numero di Copie lblGuideTipsCount={0}: È possibile indicare il numero di copie da importare di ciascuna carta aggiungendo \ - all'inizio di ciascuna riga (default: 1). \n Sia {1} che {2} sono entrambe soluzioni accettate. + all''inizio di ciascuna riga (default: 1). \n Sia {1} che {2} sono entrambe soluzioni accettate. lblGuideTipsTitleSet=Illustrazione delle Carte lblGuideTipsSet={0}: Specifica il codice di una Edizione di M:TG (subito prima o subito dopo il nome di una carta) \ per poter selezionare una specifica illustrazione. Se necessario, è anche possibile aggiungere il Numero di \ - Collezione, o l'indice dell'illustrazione, nel caso siano disponibili più di un'illustrazione di una \ - stessa carta all'interno dell'Edizione specificata (Consultare la Sezione "Esempi" per maggiori dettagli). + Collezione, o l''indice dell''illustrazione, nel caso siano disponibili più di un''illustrazione di una \ + stessa carta all''interno dell''Edizione specificata (Consultare la Sezione "Esempi" per maggiori dettagli). lblGuideTipsTitleFoil=Carte Foil lblGuideTipsFoil={0}: È possibile utilizzare il simbolo "+" come suffisso al nome di una carta per richiedere che \ questa sia importata come Foil, e.g. {1}. In alternativa, è anche possibile aggiungere il simbolo {2} \ @@ -2780,7 +2781,7 @@ lblGuideTipsDeckFormats={0}: Numerosi formati di mazzi M:TG sono attualmente sup tranne CSV); DeckStats.net; File ".dec". nlGuideExamplesTitle=Esempi lblExample1=10x Islands+ MIR 2 -nlExample1=10 "Isole" FOIL dall'edizione "Mirage", Indice Illustrazione 2\. +nlExample1=10 "Isole" FOIL dall''edizione "Mirage", Indice Illustrazione 2\. lblExample2=4 Darksteel Citadel (M15) 242 nlExample2=4 "Darksteel Citadel" da "M15", Nr. Collezione "242".\n\n \ Questo è un esempio in formato MTGArena così come esportato da TappedOut. @@ -2911,3 +2912,11 @@ lblLossProper=Perdita lblWinLossRatio=Rapporto per perdite vincenti lblHeal=Guarire lblTempHitPoints=Punti ferita temporanei +#CardDetailUtil.java +lblChosenColors=Chosen colors: +#Achievement.java +lblCommon=Common +lblUncommon=Uncommon +lblRare=Rare +lblMythic=Mythic +lblAchievementEarned=Achievement Earned diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index 1d708a81557..6ea2e2b69f0 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -563,6 +563,7 @@ lblGreen=緑 lblRed=赤 lblWhite=白 lblColorless=無色 +lblSnow=Snow lblIncludeArtifacts=アーティファクトを含める lblBalanced=バランス lblTrueRandom=ランダム @@ -2907,3 +2908,11 @@ lblLossProper=損失 lblWinLossRatio=損失率を獲得しました lblHeal=癒し lblTempHitPoints=一時的なヒットポイント +#CardDetailUtil.java +lblChosenColors=Chosen colors: +#Achievement.java +lblCommon=Common +lblUncommon=Uncommon +lblRare=Rare +lblMythic=Mythic +lblAchievementEarned=Achievement Earned diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index 4effa58683f..779b35fc2b8 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -169,7 +169,7 @@ nlGrayText=Quando ativado, o texto da habilidade com condições não cumpridas nlShowStormCount=Quando ativado, exibe os marcadores de rajadas atuais no painel de solicitação. nlRemindOnPriority=Quando ativado, pisca a área de escolha do jogador ao receber prioridade. nlPreselectPrevAbOrder=Quando ativado, pré-seleciona a última ordem de habilidade simultânea na caixa de diálogo ordenação. -nlpGraveyardOrdering=Determina quando deixar o jogador escolher a ordem das cartas colocadas simultaneamente no cemitério (nunca, sempre, ou apenas quando conjurando cartas que isto importa, por exemplo, Volrath's Shapeshifter). +nlpGraveyardOrdering=Determina quando deixar o jogador escolher a ordem das cartas colocadas simultaneamente no cemitério (nunca, sempre, ou apenas quando conjurando cartas que isto importa, por exemplo, Volrath''s Shapeshifter). nlpAutoYieldMode=Define o nível de granularidade quando resolve automático (por habilidade ou carta). RandomDeckGeneration=Geração Aleatória de Deck nlRemoveSmall=Desativa criaturas 1/1 e 0/X em decks gerados @@ -585,6 +585,7 @@ lblGreen=Verde lblRed=Vermelho lblWhite=Branco lblColorless=Incolor +lblSnow=Snow lblIncludeArtifacts=Incluir Artefatos lblBalanced=Balanceado lblTrueRandom=Aleatório Verdadeiro @@ -2997,3 +2998,11 @@ lblLossProper=Derrota lblWinLossRatio=Taxa de Vitória Derrota lblHeal=Curar lblTempHitPoints=Pontos de vida temporários +#CardDetailUtil.java +lblChosenColors=Chosen colors: +#Achievement.java +lblCommon=Common +lblUncommon=Uncommon +lblRare=Rare +lblMythic=Mythic +lblAchievementEarned=Achievement Earned diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index da05f71fffa..f25952cfc3c 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -563,6 +563,7 @@ lblGreen=绿 lblRed=红 lblWhite=白 lblColorless=无色 +lblSnow=Snow lblIncludeArtifacts=包含神器 lblBalanced=均衡 lblTrueRandom=随机 @@ -2890,3 +2891,11 @@ lblLossProper=失利 lblWinLossRatio=赢得损失比率 lblHeal=愈合 lblTempHitPoints=临时生命值 +#CardDetailUtil.java +lblChosenColors=Chosen colors: +#Achievement.java +lblCommon=Common +lblUncommon=Uncommon +lblRare=Rare +lblMythic=Mythic +lblAchievementEarned=Achievement Earned diff --git a/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java b/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java index 98c819785ca..bbb6d5a7c80 100644 --- a/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java +++ b/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java @@ -1,23 +1,14 @@ package forge.gui.card; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import forge.game.card.*; -import org.apache.commons.lang3.StringUtils; - import com.google.common.collect.Sets; - -import forge.card.CardRarity; -import forge.card.CardStateName; -import forge.card.CardType; -import forge.card.ColorSet; -import forge.card.MagicColor; +import forge.card.*; import forge.card.mana.ManaCostShard; +import forge.deck.DeckRecognizer; import forge.game.GameView; +import forge.game.card.Card; +import forge.game.card.CardView; import forge.game.card.CardView.CardStateView; +import forge.game.card.CounterType; import forge.game.zone.ZoneType; import forge.item.InventoryItemFromSet; import forge.item.PaperCard; @@ -28,6 +19,14 @@ import forge.localinstance.properties.ForgePreferences; import forge.model.FModel; import forge.util.CardTranslation; import forge.util.Lang; +import forge.util.Localizer; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.stream.Collectors; public class CardDetailUtil { @@ -436,8 +435,8 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append("(chosen colors: "); - area.append(Lang.joinHomogenous(card.getChosenColors())); + area.append("(").append(Localizer.getInstance().getMessage("lblChosenColors")).append(" "); + area.append(Lang.joinHomogenous(card.getChosenColors().stream().map(DeckRecognizer::getLocalisedMagicColorName).collect(Collectors.toList()))); area.append(")"); } diff --git a/forge-gui/src/main/java/forge/localinstance/achievements/Achievement.java b/forge-gui/src/main/java/forge/localinstance/achievements/Achievement.java index 5e335be056f..b2fccc3f35a 100644 --- a/forge-gui/src/main/java/forge/localinstance/achievements/Achievement.java +++ b/forge-gui/src/main/java/forge/localinstance/achievements/Achievement.java @@ -1,11 +1,5 @@ package forge.localinstance.achievements; -import java.text.DateFormat; -import java.util.Date; -import java.util.Locale; - -import org.w3c.dom.Element; - import forge.game.Game; import forge.game.player.Player; import forge.gui.GuiBase; @@ -14,7 +8,13 @@ import forge.localinstance.properties.ForgeConstants; import forge.localinstance.skin.FSkinProp; import forge.localinstance.skin.ISkinImage; import forge.util.Lang; +import forge.util.Localizer; import forge.util.XmlUtil; +import org.w3c.dom.Element; + +import java.text.DateFormat; +import java.util.Date; +import java.util.Locale; public abstract class Achievement { private final String key, displayName, sharedDesc, commonDesc, uncommonDesc, rareDesc, mythicDesc; @@ -181,25 +181,25 @@ public abstract class Achievement { String desc = null; if (earnedMythic()) { if (!hadEarnedMythic) { - type = "Mythic"; + type = Localizer.getInstance().getMessage("lblMythic"); desc = mythicDesc; } } else if (earnedRare()) { if (!hadEarnedRare) { - type = "Rare"; + type = Localizer.getInstance().getMessage("lblRare"); desc = rareDesc; } } else if (earnedUncommon()) { if (!hadEarnedUncommon) { - type = "Uncommon"; + type = Localizer.getInstance().getMessage("lblUncommon"); desc = uncommonDesc; } } else if (earnedCommon()) { if (!hadEarnedCommon) { - type = "Common"; + type = Localizer.getInstance().getMessage("lblCommon"); desc = commonDesc; } } @@ -208,7 +208,7 @@ public abstract class Achievement { if (sharedDesc != null) { desc = sharedDesc + " " + desc; } - GuiBase.getInterface().showImageDialog(image, displayName + " (" + type + ")\n" + desc, "Achievement Earned"); + GuiBase.getInterface().showImageDialog(image, displayName + " (" + type + ")\n" + desc, Localizer.getInstance().getMessage("lblAchievementEarned")); } return value; } @@ -254,10 +254,10 @@ public abstract class Achievement { String subTitle; if (displayNounBefore()) { - subTitle = "Best: " + getNoun() + " " + best; + subTitle = Localizer.getInstance().getMessage("lblBest") + ": " + getNoun() + " " + best; } else { - subTitle = "Best: " + best + " " + (pluralizeNoun() ? Lang.getPlural(getNoun()) : getNoun()); + subTitle = Localizer.getInstance().getMessage("lblBest") + ": " + best + " " + (pluralizeNoun() ? Lang.getPlural(getNoun()) : getNoun()); } if (includeTimestamp) { final String formattedTimestamp = getFormattedTimestamp();