label to translate color choices

This commit is contained in:
add-le
2022-10-14 18:50:10 +02:00
parent 335133f906
commit e5f16c4d67
13 changed files with 151 additions and 59 deletions

View File

@@ -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<String, String> getManaNameAndSymbol(String matchedMana) {
if (matchedMana == null)

View File

@@ -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;

View File

@@ -445,22 +445,22 @@ public enum VSubmenuAchievements implements IVSubmenu<CSubmenuAchievements> {
}
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);
}
}

View File

@@ -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

View File

@@ -563,6 +563,7 @@ lblGreen=Green
lblRed=Red
lblWhite=White
lblColorless=Colorless
lblSnow=Snow
lblIncludeArtifacts=Include Artifacts
lblBalanced=Balanced
lblTrueRandom=True Random
@@ -2908,3 +2909,11 @@ lblLossProper=Loss
lblWinLossRatio=Win Loss Ratio
lblHeal=Heal
lblTempHitPoints=Temporary Hit Points
#CardDetailUtil.java
lblChosenColors=Chosen colors:
#Achievement.java
lblCommon=Common
lblUncommon=Uncommon
lblRare=Rare
lblMythic=Mythic
lblAchievementEarned=Achievement Earned

View File

@@ -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

View File

@@ -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
@@ -2911,3 +2912,11 @@ lblLossProper=Perte
lblWinLossRatio=Rapport de perte de gains
lblHeal=Guérir
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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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(")");
}

View File

@@ -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();