From ad1cc78578a53c60cad90b36a280697a3f150ecb Mon Sep 17 00:00:00 2001 From: Peter Date: Mon, 7 Oct 2019 22:39:00 +0200 Subject: [PATCH 1/2] Mobile: Translate Draft, Gauntlet and Puzzle Screens. Fixed crash in LoadGameMenu (wrong translated enum...) --- .../screens/gauntlet/NewGauntletScreen.java | 43 +++++++++---------- .../src/forge/screens/home/LoadGameMenu.java | 16 +++---- .../screens/home/puzzle/PuzzleScreen.java | 12 +++--- .../screens/limited/LoadDraftScreen.java | 24 ++++++----- .../forge/screens/limited/NewDraftScreen.java | 11 ++--- .../screens/limited/NewSealedScreen.java | 7 +-- forge-gui/res/languages/de-DE.properties | 24 +++++++++++ forge-gui/res/languages/en-US.properties | 28 +++++++++++- forge-gui/res/languages/es-ES.properties | 28 +++++++++++- forge-gui/res/languages/zh-CN.properties | 26 ++++++++++- 10 files changed, 158 insertions(+), 61 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java index ad7b5de1967..1278a1e34ac 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java @@ -23,15 +23,18 @@ import forge.toolbox.FTextArea; import forge.toolbox.GuiChoose; import forge.toolbox.ListChooser; import forge.util.Callback; +import forge.util.Localizer; import forge.util.Utils; public class NewGauntletScreen extends LaunchScreen { private static final float PADDING = Utils.scale(10); + private final Localizer localizer = Localizer.getInstance(); + private final FTextArea lblDesc = add(new FTextArea(false, - "In Gauntlet mode, you select a deck and play against multiple opponents.\n\n" + - "Configure how many opponents you wish to face and what decks or types of decks they will play.\n\n" + - "Then, try to beat all AI opponents without losing a match.")); + localizer.getMessage("lblGauntletText1") + "\n\n" + + localizer.getMessage("lblGauntletText2") + "\n\n" + + localizer.getMessage("lblGauntletText3"))); public NewGauntletScreen() { super(null, NewGameMenu.getMenu()); @@ -51,38 +54,34 @@ public class NewGauntletScreen extends LaunchScreen { @Override protected void startMatch() { - GuiChoose.oneOrNone("Select a Gauntlet Type", new String[] { - "Quick Gauntlet", - "Custom Gauntlet", - "Gauntlet Contest", + GuiChoose.oneOrNone(localizer.getMessage("lblSelectGauntletType"), new String[] { + localizer.getMessage("lblQuickGauntlet"), + localizer.getMessage("lblCustomGauntlet"), + localizer.getMessage("lblGauntletContest"), }, new Callback() { @Override public void run(String result) { if (result == null) { return; } - switch (result) { - case "Quick Gauntlet": + if (localizer.getMessage("lblQuickGauntlet").equals(result)) { createQuickGauntlet(); - break; - case "Custom Gauntlet": + } else if(localizer.getMessage("lblCustomGauntlet").equals(result)) { createCustomGauntlet(); - break; - default: + } else { createGauntletContest(); - break; } } }); } private void createQuickGauntlet() { - GuiChoose.getInteger("How many opponents are you willing to face?", 3, 50, new Callback() { + GuiChoose.getInteger(localizer.getMessage("lblHowManyOpponents"), 3, 50, new Callback() { @Override public void run(final Integer numOpponents) { if (numOpponents == null) { return; } ListChooser chooser = new ListChooser<>( - "Choose allowed deck types for opponents", 0, 11, Arrays.asList(DeckType.CUSTOM_DECK, + localizer.getMessage("lblChooseAllowedDeckTypeOpponents"), 0, 11, Arrays.asList(DeckType.CUSTOM_DECK, DeckType.PRECONSTRUCTED_DECK, DeckType.QUEST_OPPONENT_DECK, DeckType.COLOR_DECK, @@ -99,7 +98,7 @@ public class NewGauntletScreen extends LaunchScreen { return; } - FDeckChooser.promptForDeck("Select Your Deck", GameType.Gauntlet, false, new Callback() { + FDeckChooser.promptForDeck(localizer.getMessage("lblSelectYourDeck"), GameType.Gauntlet, false, new Callback() { @Override public void run(Deck userDeck) { if (userDeck == null) { @@ -118,7 +117,7 @@ public class NewGauntletScreen extends LaunchScreen { } private void createCustomGauntlet() { - GuiChoose.getInteger("How many opponents are you willing to face?", 3, 50, new Callback() { + GuiChoose.getInteger(localizer.getMessage("lblHowManyOpponents"), 3, 50, new Callback() { @Override public void run(final Integer numOpponents) { if (numOpponents == null) { return; } @@ -132,7 +131,7 @@ public class NewGauntletScreen extends LaunchScreen { private void promptForAiDeck(final GauntletData gauntlet, final int numOpponents) { final int opponentNum = gauntlet.getDecks().size() + 1; - FDeckChooser.promptForDeck("Select Deck for Opponent " + opponentNum + " / " + numOpponents, GameType.Gauntlet, true, new Callback() { + FDeckChooser.promptForDeck(localizer.getMessage("lblSelectDeckForOpponent") + " " + opponentNum + " / " + numOpponents, GameType.Gauntlet, true, new Callback() { @Override public void run(Deck aiDeck) { if (aiDeck == null) { return; } @@ -145,7 +144,7 @@ public class NewGauntletScreen extends LaunchScreen { } else { //once all ai decks have been selected, prompt for user deck - FDeckChooser.promptForDeck("Select Your Deck", GameType.Gauntlet, false, new Callback() { + FDeckChooser.promptForDeck(localizer.getMessage("lblSelectYourDeck"), GameType.Gauntlet, false, new Callback() { @Override public void run(Deck userDeck) { if (userDeck == null) { return; } @@ -170,12 +169,12 @@ public class NewGauntletScreen extends LaunchScreen { } } - GuiChoose.oneOrNone("Select Gauntlet Contest", contests, new Callback() { + GuiChoose.oneOrNone(localizer.getMessage("lblSelectGauntletContest"), contests, new Callback() { @Override public void run(final GauntletData contest) { if (contest == null) { return; } - FDeckChooser.promptForDeck("Select Your Deck", GameType.Gauntlet, false, new Callback() { + FDeckChooser.promptForDeck(localizer.getMessage("lblSelectYourDeck"), GameType.Gauntlet, false, new Callback() { @Override public void run(final Deck userDeck) { if (userDeck == null) { return; } diff --git a/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java b/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java index c38c3f6c48b..9e29a3addc1 100644 --- a/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java +++ b/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java @@ -19,15 +19,13 @@ import forge.toolbox.FEvent.FEventHandler; import forge.util.Localizer; public class LoadGameMenu extends FPopupMenu { - final static Localizer localizer = Localizer.getInstance(); - public enum LoadGameScreen { - BoosterDraft(localizer.getMessage("lblBoosterDraft"), FSkinImage.HAND, LoadDraftScreen.class), - SealedDeck(localizer.getMessage("lblSealedDeck"), FSkinImage.PACK, LoadSealedScreen.class), - QuestMode(localizer.getMessage("lblQuestMode"), FSkinImage.QUEST_ZEP, LoadQuestScreen.class), - PlanarConquest(localizer.getMessage("lblPlanarConquest"), FSkinImage.MULTIVERSE, LoadConquestScreen.class), - Gauntlet(localizer.getMessage("lblGauntlet"), FSkinImage.ALPHASTRIKE, LoadGauntletScreen.class); - + BoosterDraft("Booster Draft", FSkinImage.HAND, LoadDraftScreen.class), + SealedDeck("Sealed Deck", FSkinImage.PACK, LoadSealedScreen.class), + QuestMode("Quest Mode", FSkinImage.QUEST_ZEP, LoadQuestScreen.class), + PlanarConquest("Planar Conquest", FSkinImage.MULTIVERSE, LoadConquestScreen.class), + Gauntlet("Gauntlet", FSkinImage.ALPHASTRIKE, LoadGauntletScreen.class); + private final FMenuItem item; private final Class screenClass; private FScreen screen; @@ -47,7 +45,7 @@ public class LoadGameMenu extends FPopupMenu { if (screen == null) { //don't initialize screen until it's opened the first time try { screen = screenClass.newInstance(); - screen.setHeaderCaption(localizer.getMessage("lblLoadGame") + " - " + item.getText()); + screen.setHeaderCaption(Localizer.getInstance().getMessage("lblLoadGame") + " - " + item.getText()); } catch (Exception e) { e.printStackTrace(); diff --git a/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java b/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java index bc23e309633..a740859f49b 100644 --- a/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java @@ -18,6 +18,7 @@ import forge.toolbox.FOptionPane; import forge.toolbox.FTextArea; import forge.toolbox.GuiChoose; import forge.util.Callback; +import forge.util.Localizer; import forge.util.Utils; import java.util.ArrayList; import java.util.Collections; @@ -28,10 +29,9 @@ public class PuzzleScreen extends LaunchScreen { private static final float PADDING = Utils.scale(10); private final FTextArea lblDesc = add(new FTextArea(false, - "Puzzle Mode loads in a puzzle that you have to win in a predetermined time/way.\n\n" + - "To begin, press the Start button below, then select a puzzle from a list.\n\n" + - "Your objective will be displayed in a pop-up window when the puzzle starts and also " + - "specified on a special effect card which will be placed in your command zone.")); + Localizer.getInstance().getMessage("lblPuzzleText1") + "\n\n" + + Localizer.getInstance().getMessage("lblPuzzleText2") + "\n\n" + + Localizer.getInstance().getMessage("lblPuzzleText3"))); public PuzzleScreen() { super(null, NewGameMenu.getMenu()); @@ -54,10 +54,10 @@ public class PuzzleScreen extends LaunchScreen { final ArrayList puzzles = PuzzleIO.loadPuzzles(); Collections.sort(puzzles); - GuiChoose.one("Choose a puzzle", puzzles, new Callback() { + GuiChoose.one(Localizer.getInstance().getMessage("lblChooseAPuzzle"), puzzles, new Callback() { @Override public void run(final Puzzle chosen) { - LoadingOverlay.show("Loading the puzzle...", new Runnable() { + LoadingOverlay.show(Localizer.getInstance().getMessage("lblLoadingThePuzzle"), new Runnable() { @Override public void run() { // Load selected puzzle diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java index b3ee50cfb08..0e0d3da2fbe 100644 --- a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java @@ -30,6 +30,7 @@ import forge.match.HostedMatch; import forge.model.FModel; import forge.player.GamePlayerUtil; import forge.toolbox.FComboBox; +import forge.util.Localizer; import forge.util.gui.SGuiChoose; import java.util.ArrayList; import java.util.List; @@ -37,20 +38,20 @@ import java.util.List; public class LoadDraftScreen extends LaunchScreen { private final DeckManager lstDecks = add(new DeckManager(GameType.Draft)); private final FLabel lblTip = add(new FLabel.Builder() - .text("Double-tap to edit deck (Long-press to view)") + .text(Localizer.getInstance().getMessage("lblDoubleTapToEditDeck")) .textColor(FLabel.INLINE_LABEL_COLOR) .align(Align.center).font(FSkinFont.get(12)).build()); private final FSkinFont GAME_MODE_FONT= FSkinFont.get(12); - private final FLabel lblMode = add(new FLabel.Builder().text("Mode:").font(GAME_MODE_FONT).build()); + private final FLabel lblMode = add(new FLabel.Builder().text(Localizer.getInstance().getMessage("lblMode")).font(GAME_MODE_FONT).build()); private final FComboBox cbMode = add(new FComboBox<>()); public LoadDraftScreen() { super(null, LoadGameMenu.getMenu()); cbMode.setFont(GAME_MODE_FONT); - cbMode.addItem("Gauntlet"); - cbMode.addItem("Single Match"); + cbMode.addItem(Localizer.getInstance().getMessage("lblGauntlet")); + cbMode.addItem(Localizer.getInstance().getMessage("lblSingleMatch")); lstDecks.setup(ItemManagerConfig.DRAFT_DECKS); lstDecks.setItemActivateHandler(new FEventHandler() { @@ -98,17 +99,18 @@ public class LoadDraftScreen extends LaunchScreen { FThreads.invokeInBackgroundThread(new Runnable() { @Override public void run() { + Localizer localizer = Localizer.getInstance(); final DeckProxy humanDeck = lstDecks.getSelectedItem(); if (humanDeck == null) { - FOptionPane.showErrorDialog("You must select an existing deck or build a deck from a new booster draft game.", "No Deck"); + FOptionPane.showErrorDialog(localizer.getMessage("lblYouMustSelectExistingDeck"), localizer.getMessage("lblNoDeck")); return; } // TODO: if booster draft tournaments are supported in the future, add the possibility to choose them here - final boolean gauntlet = cbMode.getSelectedItem().equals("Gauntlet"); + final boolean gauntlet = cbMode.getSelectedItem().equals(localizer.getMessage("lblGauntlet")); if (gauntlet) { - final Integer rounds = SGuiChoose.getInteger("How many opponents are you willing to face?", + final Integer rounds = SGuiChoose.getInteger(localizer.getMessage("lblHowManyOpponents"), 1, FModel.getDecks().getDraft().get(humanDeck.getName()).getAiDecks().size()); if (rounds == null) { return; @@ -121,7 +123,7 @@ public class LoadDraftScreen extends LaunchScreen { return; } - LoadingOverlay.show("Loading new game...", new Runnable() { + LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() { @Override public void run() { FModel.getGauntletMini().resetGauntletDraft(); @@ -131,7 +133,7 @@ public class LoadDraftScreen extends LaunchScreen { } }); } else { - final Integer aiIndex = SGuiChoose.getInteger("Which opponent would you like to face?", + final Integer aiIndex = SGuiChoose.getInteger(localizer.getMessage("lblWhichOpponentWouldYouLikeToFace"), 1, FModel.getDecks().getDraft().get(humanDeck.getName()).getAiDecks().size()); if (aiIndex == null) { return; // Cancel was pressed @@ -146,7 +148,7 @@ public class LoadDraftScreen extends LaunchScreen { FThreads.invokeInEdtLater(new Runnable() { @Override public void run() { - LoadingOverlay.show("Loading new game...", new Runnable() { + LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() { @Override public void run() { if (!checkDeckLegality(humanDeck)) { @@ -177,7 +179,7 @@ public class LoadDraftScreen extends LaunchScreen { if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { String errorMessage = GameType.Draft.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck()); if (errorMessage != null) { - FOptionPane.showErrorDialog("Your deck " + errorMessage + "\nPlease edit or choose a different deck.", "Invalid Deck"); + FOptionPane.showErrorDialog(Localizer.getInstance().getMessage("lblInvalidDeckDesc").replace("%n", errorMessage), Localizer.getInstance().getMessage("lblInvalidDeck")); return false; } } diff --git a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java index b7ca199b0e2..9e96be6cb4e 100644 --- a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java @@ -11,6 +11,7 @@ import forge.screens.LoadingOverlay; import forge.screens.home.NewGameMenu; import forge.toolbox.FLabel; import forge.toolbox.FTextArea; +import forge.util.Localizer; import forge.util.ThreadUtil; import forge.util.Utils; import forge.util.gui.SGuiChoose; @@ -19,9 +20,9 @@ public class NewDraftScreen extends LaunchScreen { private static final float PADDING = Utils.scale(10); private final FTextArea lblDesc = add(new FTextArea(false, - "In Draft mode, three booster packs are rotated around eight players.\n\n" + - "Build a deck from the cards you choose. The AI will do the same.\n\n" + - "Then, play against any number of the AI opponents.")); + Localizer.getInstance().getMessage("lblDraftText1") + "\n\n" + + Localizer.getInstance().getMessage("lblDraftText2") + "\n\n" + + Localizer.getInstance().getMessage("lblDraftText3"))); public NewDraftScreen() { super(null, NewGameMenu.getMenu()); @@ -44,7 +45,7 @@ public class NewDraftScreen extends LaunchScreen { ThreadUtil.invokeInGameThread(new Runnable() { //must run in game thread to prevent blocking UI thread @Override public void run() { - final LimitedPoolType poolType = SGuiChoose.oneOrNone("Choose Draft Format", LimitedPoolType.values()); + final LimitedPoolType poolType = SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblChooseDraftFormat"), LimitedPoolType.values()); if (poolType == null) { return; } final BoosterDraft draft = BoosterDraft.createDraft(poolType); @@ -53,7 +54,7 @@ public class NewDraftScreen extends LaunchScreen { FThreads.invokeInEdtLater(new Runnable() { @Override public void run() { - LoadingOverlay.show("Loading new draft...", new Runnable() { + LoadingOverlay.show(Localizer.getInstance().getMessage("lblLoadingNewDraft"), new Runnable() { @Override public void run() { Forge.openScreen(new DraftingProcessScreen(draft, EditorType.Draft, null)); diff --git a/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java b/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java index 9207742cb8f..5b0914d515b 100644 --- a/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java @@ -12,6 +12,7 @@ import forge.screens.LaunchScreen; import forge.screens.home.NewGameMenu; import forge.toolbox.FLabel; import forge.toolbox.FTextArea; +import forge.util.Localizer; import forge.util.ThreadUtil; import forge.util.Utils; @@ -19,9 +20,9 @@ public class NewSealedScreen extends LaunchScreen { private static final float PADDING = Utils.scale(10); private final FTextArea lblDesc = add(new FTextArea(false, - "In Sealed mode, you build a deck from booster packs (maximum 10).\n\n" + - "Build a deck from the cards you receive. A number of AI opponents will do the same.\n\n" + - "Then, play against each of the AI opponents.")); + Localizer.getInstance().getMessage("lblSealedText2") + "\n\n" + + Localizer.getInstance().getMessage("lblSealedText3") + "\n\n" + + Localizer.getInstance().getMessage("lblSealedText4"))); public NewSealedScreen() { super(null, NewGameMenu.getMenu()); diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 6efc55d23f1..d163b7fd74a 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1172,3 +1172,27 @@ lblItsADraw=Es ist ein Unentschieden! lblTeamWon=Team %s hat gewonnen! lblWinnerWon=%s hat gewonnen! lblGameLog=Spiel-Aufzeichnung +#NewDraftScreen.java +lblLoadingNewDraft=Loading new draft... +#LoadDraftScreen.java +lblDoubleTapToEditDeck=Double-tap to edit deck (Long-press to view) +lblMode=Mode: +lblYouMustSelectExistingDeck=You must select an existing deck or build a deck from a new booster draft game. +lblWhichOpponentWouldYouLikeToFace=Which opponent would you like to face? +lblSingleMatch=Single Match +#NewGauntletScreen.java +lblGauntletText1=In Gauntlet mode, you select a deck and play against multiple opponents. +lblGauntletText2=Configure how many opponents you wish to face and what decks or types of decks they will play. +lblGauntletText3=Then, try to beat all AI opponents without losing a match. +lblSelectGauntletType=Select a Gauntlet Type +lblCustomGauntlet=Custom Gauntlet +lblGauntletContest=Gauntlet Contest +lblSelectYourDeck=Select Your Deck +lblSelectDeckForOpponent=Select Deck for Opponent +lblSelectGauntletContest=Select Gauntlet Contest +#PuzzleScreen.java +lblPuzzleText1=Puzzle Mode loads in a puzzle that you have to win in a predetermined time/way. +lblPuzzleText2=To begin, press the Start button below, then select a puzzle from a list. +lblPuzzleText3=Your objective will be displayed in a pop-up window when the puzzle starts and also specified on a special effect card which will be placed in your command zone. +lblChooseAPuzzle=Choose a puzzle +lblLoadingThePuzzle=Loading the puzzle... \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index f5754b44fed..825e355f149 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -628,7 +628,7 @@ titleUnlocked=%n unlocked! lblStartADuel=Start a duel. lblSelectAQuestDeck=Please select a Quest Deck. lblInvalidDeck=Invalid Deck -lblInvalidDeckDesc=Your deck %n Please edit or choose a different deck. +lblInvalidDeckDesc=Your deck %n\nPlease edit or choose a different deck. #VSubmenuQuestPrefs.java lblQuestPreferences=Quest Preferences lblRewardsError=Rewards Error @@ -1171,4 +1171,28 @@ btnQuitMatch=Quit Match lblItsADraw=It's a draw! lblTeamWon=Team %s won! lblWinnerWon=%s won! -lblGameLog=Game Log \ No newline at end of file +lblGameLog=Game Log +#NewDraftScreen.java +lblLoadingNewDraft=Loading new draft... +#LoadDraftScreen.java +lblDoubleTapToEditDeck=Double-tap to edit deck (Long-press to view) +lblMode=Mode: +lblYouMustSelectExistingDeck=You must select an existing deck or build a deck from a new booster draft game. +lblWhichOpponentWouldYouLikeToFace=Which opponent would you like to face? +lblSingleMatch=Single Match +#NewGauntletScreen.java +lblGauntletText1=In Gauntlet mode, you select a deck and play against multiple opponents. +lblGauntletText2=Configure how many opponents you wish to face and what decks or types of decks they will play. +lblGauntletText3=Then, try to beat all AI opponents without losing a match. +lblSelectGauntletType=Select a Gauntlet Type +lblCustomGauntlet=Custom Gauntlet +lblGauntletContest=Gauntlet Contest +lblSelectYourDeck=Select Your Deck +lblSelectDeckForOpponent=Select Deck for Opponent +lblSelectGauntletContest=Select Gauntlet Contest +#PuzzleScreen.java +lblPuzzleText1=Puzzle Mode loads in a puzzle that you have to win in a predetermined time/way. +lblPuzzleText2=To begin, press the Start button below, then select a puzzle from a list. +lblPuzzleText3=Your objective will be displayed in a pop-up window when the puzzle starts and also specified on a special effect card which will be placed in your command zone. +lblChooseAPuzzle=Choose a puzzle +lblLoadingThePuzzle=Loading the puzzle... \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 468a4ac6480..f942cf13fab 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -628,7 +628,7 @@ titleUnlocked=%n desbloqueado! lblStartADuel=Comienza un duelo. lblSelectAQuestDeck=Por favor, seleccione un mazo de aventura. lblInvalidDeck=Mazo no válido -lblInvalidDeckDesc=Su mazo %n Por favor, edite o elija un mazo diferente. +lblInvalidDeckDesc=Su mazo %n\nPor favor, edite o elija un mazo diferente. #VSubmenuQuestPrefs.java lblQuestPreferences=Preferencias de la Aventura lblRewardsError=Error de recompensas @@ -1171,4 +1171,28 @@ btnQuitMatch=Salir de la Partida lblItsADraw=¡Es un empate! lblTeamWon=¡El equipo %s ha ganado! lblWinnerWon=¡%s ha ganado! -lblGameLog=Registro del Juego \ No newline at end of file +lblGameLog=Registro del Juego +#NewDraftScreen.java +lblLoadingNewDraft=Cargando nuevo Draft... +#LoadDraftScreen.java +lblDoubleTapToEditDeck=Pulsa 2 veces para editar el mazo (Pulsación prologanda para ver) +lblMode=Modo: +lblYouMustSelectExistingDeck=Debes seleccionar un mazo existente o construir un mazo a partir de un nuevo juego de booster draft. +lblWhichOpponentWouldYouLikeToFace=¿A qué oponente te gustaría enfrentarte? +lblSingleMatch=Partida individual +#NewGauntletScreen.java +lblGauntletText1=En el modo Desafío, selecciona un mazo y juega contra varios oponentes. +lblGauntletText2=Configura a cuántos oponentes deseas enfrentarte y qué mazos o tipos de mazos jugarán. +lblGauntletText3=Luego, intenta derrotar a todos los oponentes de la IA sin perder una partida. +lblSelectGauntletType=Seleccione el Tipo de Desafío +lblCustomGauntlet=Desafío Personalizado +lblGauntletContest=Concurso de Desafío +lblSelectYourDeck=Seleccciona Tu Mazo +lblSelectDeckForOpponent=Seleccionar Mazo para el Oponente +lblSelectGauntletContest=Seleccionar Concurso de Desafío +#PuzzleScreen.java +lblPuzzleText1=En el Modo Puzzle se carga un rompecabezas que tienes que ganar en un tiempo/forma predeterminados. +lblPuzzleText2=Para comenzar, pulsa el botón Inicio y selecciona un puzzle de una lista. +lblPuzzleText3=Tu objetivo se mostrará en una ventana emergente cuando se inicie el puzzle y también se especificará en una carta de efectos especiales que se colocará en tu zona de comandos. +lblChooseAPuzzle=Elige un puzzle +lblLoadingThePuzzle=Cargando el puzzle... \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 012b5a945e8..1c9184ab125 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1171,4 +1171,28 @@ btnQuitMatch=退出比赛 lblItsADraw=平局! lblTeamWon=队伍%s胜利了! lblWinnerWon=%s胜利了! -lblGameLog=游戏日志 \ No newline at end of file +lblGameLog=游戏日志 +#NewDraftScreen.java +lblLoadingNewDraft=Loading new draft... +#LoadDraftScreen.java +lblDoubleTapToEditDeck=Double-tap to edit deck (Long-press to view) +lblMode=Mode: +lblYouMustSelectExistingDeck=You must select an existing deck or build a deck from a new booster draft game. +lblWhichOpponentWouldYouLikeToFace=Which opponent would you like to face? +lblSingleMatch=Single Match +#NewGauntletScreen.java +lblGauntletText1=In Gauntlet mode, you select a deck and play against multiple opponents. +lblGauntletText2=Configure how many opponents you wish to face and what decks or types of decks they will play. +lblGauntletText3=Then, try to beat all AI opponents without losing a match. +lblSelectGauntletType=Select a Gauntlet Type +lblCustomGauntlet=Custom Gauntlet +lblGauntletContest=Gauntlet Contest +lblSelectYourDeck=Select Your Deck +lblSelectDeckForOpponent=Select Deck for Opponent +lblSelectGauntletContest=Select Gauntlet Contest +#PuzzleScreen.java +lblPuzzleText1=Puzzle Mode loads in a puzzle that you have to win in a predetermined time/way. +lblPuzzleText2=To begin, press the Start button below, then select a puzzle from a list. +lblPuzzleText3=Your objective will be displayed in a pop-up window when the puzzle starts and also specified on a special effect card which will be placed in your command zone. +lblChooseAPuzzle=Choose a puzzle +lblLoadingThePuzzle=Loading the puzzle... \ No newline at end of file From 53c88f03021acb6705e9bf0f76d7d6c9d7ed23f7 Mon Sep 17 00:00:00 2001 From: Peter Date: Mon, 7 Oct 2019 22:40:45 +0200 Subject: [PATCH 2/2] Added to contributors XD --- forge-gui/release-files/CONTRIBUTORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/forge-gui/release-files/CONTRIBUTORS.txt b/forge-gui/release-files/CONTRIBUTORS.txt index 3b3915bc16d..e8072d2e3d0 100644 --- a/forge-gui/release-files/CONTRIBUTORS.txt +++ b/forge-gui/release-files/CONTRIBUTORS.txt @@ -10,6 +10,7 @@ Hanmac Indigo Dragon Jamin Collins kevlahnota +klaxnek KrazyTheFox leriomaggio Luke