Merge branch 'translation09' into 'master'

Mobile: Translate Draft, Gauntlet and Puzzle Screens.

See merge request core-developers/forge!2228
This commit is contained in:
swordshine
2019-10-22 03:05:04 +00:00
11 changed files with 159 additions and 61 deletions

View File

@@ -23,15 +23,18 @@ import forge.toolbox.FTextArea;
import forge.toolbox.GuiChoose; import forge.toolbox.GuiChoose;
import forge.toolbox.ListChooser; import forge.toolbox.ListChooser;
import forge.util.Callback; import forge.util.Callback;
import forge.util.Localizer;
import forge.util.Utils; import forge.util.Utils;
public class NewGauntletScreen extends LaunchScreen { public class NewGauntletScreen extends LaunchScreen {
private static final float PADDING = Utils.scale(10); private static final float PADDING = Utils.scale(10);
private final Localizer localizer = Localizer.getInstance();
private final FTextArea lblDesc = add(new FTextArea(false, private final FTextArea lblDesc = add(new FTextArea(false,
"In Gauntlet mode, you select a deck and play against multiple opponents.\n\n" + localizer.getMessage("lblGauntletText1") + "\n\n" +
"Configure how many opponents you wish to face and what decks or types of decks they will play.\n\n" + localizer.getMessage("lblGauntletText2") + "\n\n" +
"Then, try to beat all AI opponents without losing a match.")); localizer.getMessage("lblGauntletText3")));
public NewGauntletScreen() { public NewGauntletScreen() {
super(null, NewGameMenu.getMenu()); super(null, NewGameMenu.getMenu());
@@ -51,38 +54,34 @@ public class NewGauntletScreen extends LaunchScreen {
@Override @Override
protected void startMatch() { protected void startMatch() {
GuiChoose.oneOrNone("Select a Gauntlet Type", new String[] { GuiChoose.oneOrNone(localizer.getMessage("lblSelectGauntletType"), new String[] {
"Quick Gauntlet", localizer.getMessage("lblQuickGauntlet"),
"Custom Gauntlet", localizer.getMessage("lblCustomGauntlet"),
"Gauntlet Contest", localizer.getMessage("lblGauntletContest"),
}, new Callback<String>() { }, new Callback<String>() {
@Override @Override
public void run(String result) { public void run(String result) {
if (result == null) { return; } if (result == null) { return; }
switch (result) { if (localizer.getMessage("lblQuickGauntlet").equals(result)) {
case "Quick Gauntlet":
createQuickGauntlet(); createQuickGauntlet();
break; } else if(localizer.getMessage("lblCustomGauntlet").equals(result)) {
case "Custom Gauntlet":
createCustomGauntlet(); createCustomGauntlet();
break; } else {
default:
createGauntletContest(); createGauntletContest();
break;
} }
} }
}); });
} }
private void createQuickGauntlet() { private void createQuickGauntlet() {
GuiChoose.getInteger("How many opponents are you willing to face?", 3, 50, new Callback<Integer>() { GuiChoose.getInteger(localizer.getMessage("lblHowManyOpponents"), 3, 50, new Callback<Integer>() {
@Override @Override
public void run(final Integer numOpponents) { public void run(final Integer numOpponents) {
if (numOpponents == null) { return; } if (numOpponents == null) { return; }
ListChooser<DeckType> chooser = new ListChooser<>( ListChooser<DeckType> 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.PRECONSTRUCTED_DECK,
DeckType.QUEST_OPPONENT_DECK, DeckType.QUEST_OPPONENT_DECK,
DeckType.COLOR_DECK, DeckType.COLOR_DECK,
@@ -99,7 +98,7 @@ public class NewGauntletScreen extends LaunchScreen {
return; return;
} }
FDeckChooser.promptForDeck("Select Your Deck", GameType.Gauntlet, false, new Callback<Deck>() { FDeckChooser.promptForDeck(localizer.getMessage("lblSelectYourDeck"), GameType.Gauntlet, false, new Callback<Deck>() {
@Override @Override
public void run(Deck userDeck) { public void run(Deck userDeck) {
if (userDeck == null) { if (userDeck == null) {
@@ -118,7 +117,7 @@ public class NewGauntletScreen extends LaunchScreen {
} }
private void createCustomGauntlet() { private void createCustomGauntlet() {
GuiChoose.getInteger("How many opponents are you willing to face?", 3, 50, new Callback<Integer>() { GuiChoose.getInteger(localizer.getMessage("lblHowManyOpponents"), 3, 50, new Callback<Integer>() {
@Override @Override
public void run(final Integer numOpponents) { public void run(final Integer numOpponents) {
if (numOpponents == null) { return; } if (numOpponents == null) { return; }
@@ -132,7 +131,7 @@ public class NewGauntletScreen extends LaunchScreen {
private void promptForAiDeck(final GauntletData gauntlet, final int numOpponents) { private void promptForAiDeck(final GauntletData gauntlet, final int numOpponents) {
final int opponentNum = gauntlet.getDecks().size() + 1; final int opponentNum = gauntlet.getDecks().size() + 1;
FDeckChooser.promptForDeck("Select Deck for Opponent " + opponentNum + " / " + numOpponents, GameType.Gauntlet, true, new Callback<Deck>() { FDeckChooser.promptForDeck(localizer.getMessage("lblSelectDeckForOpponent") + " " + opponentNum + " / " + numOpponents, GameType.Gauntlet, true, new Callback<Deck>() {
@Override @Override
public void run(Deck aiDeck) { public void run(Deck aiDeck) {
if (aiDeck == null) { return; } if (aiDeck == null) { return; }
@@ -145,7 +144,7 @@ public class NewGauntletScreen extends LaunchScreen {
} }
else { else {
//once all ai decks have been selected, prompt for user deck //once all ai decks have been selected, prompt for user deck
FDeckChooser.promptForDeck("Select Your Deck", GameType.Gauntlet, false, new Callback<Deck>() { FDeckChooser.promptForDeck(localizer.getMessage("lblSelectYourDeck"), GameType.Gauntlet, false, new Callback<Deck>() {
@Override @Override
public void run(Deck userDeck) { public void run(Deck userDeck) {
if (userDeck == null) { return; } if (userDeck == null) { return; }
@@ -170,12 +169,12 @@ public class NewGauntletScreen extends LaunchScreen {
} }
} }
GuiChoose.oneOrNone("Select Gauntlet Contest", contests, new Callback<GauntletData>() { GuiChoose.oneOrNone(localizer.getMessage("lblSelectGauntletContest"), contests, new Callback<GauntletData>() {
@Override @Override
public void run(final GauntletData contest) { public void run(final GauntletData contest) {
if (contest == null) { return; } if (contest == null) { return; }
FDeckChooser.promptForDeck("Select Your Deck", GameType.Gauntlet, false, new Callback<Deck>() { FDeckChooser.promptForDeck(localizer.getMessage("lblSelectYourDeck"), GameType.Gauntlet, false, new Callback<Deck>() {
@Override @Override
public void run(final Deck userDeck) { public void run(final Deck userDeck) {
if (userDeck == null) { return; } if (userDeck == null) { return; }

View File

@@ -19,15 +19,13 @@ import forge.toolbox.FEvent.FEventHandler;
import forge.util.Localizer; import forge.util.Localizer;
public class LoadGameMenu extends FPopupMenu { public class LoadGameMenu extends FPopupMenu {
final static Localizer localizer = Localizer.getInstance();
public enum LoadGameScreen { public enum LoadGameScreen {
BoosterDraft(localizer.getMessage("lblBoosterDraft"), FSkinImage.HAND, LoadDraftScreen.class), BoosterDraft("Booster Draft", FSkinImage.HAND, LoadDraftScreen.class),
SealedDeck(localizer.getMessage("lblSealedDeck"), FSkinImage.PACK, LoadSealedScreen.class), SealedDeck("Sealed Deck", FSkinImage.PACK, LoadSealedScreen.class),
QuestMode(localizer.getMessage("lblQuestMode"), FSkinImage.QUEST_ZEP, LoadQuestScreen.class), QuestMode("Quest Mode", FSkinImage.QUEST_ZEP, LoadQuestScreen.class),
PlanarConquest(localizer.getMessage("lblPlanarConquest"), FSkinImage.MULTIVERSE, LoadConquestScreen.class), PlanarConquest("Planar Conquest", FSkinImage.MULTIVERSE, LoadConquestScreen.class),
Gauntlet(localizer.getMessage("lblGauntlet"), FSkinImage.ALPHASTRIKE, LoadGauntletScreen.class); Gauntlet("Gauntlet", FSkinImage.ALPHASTRIKE, LoadGauntletScreen.class);
private final FMenuItem item; private final FMenuItem item;
private final Class<? extends FScreen> screenClass; private final Class<? extends FScreen> screenClass;
private FScreen screen; 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 if (screen == null) { //don't initialize screen until it's opened the first time
try { try {
screen = screenClass.newInstance(); screen = screenClass.newInstance();
screen.setHeaderCaption(localizer.getMessage("lblLoadGame") + " - " + item.getText()); screen.setHeaderCaption(Localizer.getInstance().getMessage("lblLoadGame") + " - " + item.getText());
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

View File

@@ -18,6 +18,7 @@ import forge.toolbox.FOptionPane;
import forge.toolbox.FTextArea; import forge.toolbox.FTextArea;
import forge.toolbox.GuiChoose; import forge.toolbox.GuiChoose;
import forge.util.Callback; import forge.util.Callback;
import forge.util.Localizer;
import forge.util.Utils; import forge.util.Utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@@ -28,10 +29,9 @@ public class PuzzleScreen extends LaunchScreen {
private static final float PADDING = Utils.scale(10); private static final float PADDING = Utils.scale(10);
private final FTextArea lblDesc = add(new FTextArea(false, 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" + Localizer.getInstance().getMessage("lblPuzzleText1") + "\n\n" +
"To begin, press the Start button below, then select a puzzle from a list.\n\n" + Localizer.getInstance().getMessage("lblPuzzleText2") + "\n\n" +
"Your objective will be displayed in a pop-up window when the puzzle starts and also " + Localizer.getInstance().getMessage("lblPuzzleText3")));
"specified on a special effect card which will be placed in your command zone."));
public PuzzleScreen() { public PuzzleScreen() {
super(null, NewGameMenu.getMenu()); super(null, NewGameMenu.getMenu());
@@ -54,10 +54,10 @@ public class PuzzleScreen extends LaunchScreen {
final ArrayList<Puzzle> puzzles = PuzzleIO.loadPuzzles(); final ArrayList<Puzzle> puzzles = PuzzleIO.loadPuzzles();
Collections.sort(puzzles); Collections.sort(puzzles);
GuiChoose.one("Choose a puzzle", puzzles, new Callback<Puzzle>() { GuiChoose.one(Localizer.getInstance().getMessage("lblChooseAPuzzle"), puzzles, new Callback<Puzzle>() {
@Override @Override
public void run(final Puzzle chosen) { public void run(final Puzzle chosen) {
LoadingOverlay.show("Loading the puzzle...", new Runnable() { LoadingOverlay.show(Localizer.getInstance().getMessage("lblLoadingThePuzzle"), new Runnable() {
@Override @Override
public void run() { public void run() {
// Load selected puzzle // Load selected puzzle

View File

@@ -30,6 +30,7 @@ import forge.match.HostedMatch;
import forge.model.FModel; import forge.model.FModel;
import forge.player.GamePlayerUtil; import forge.player.GamePlayerUtil;
import forge.toolbox.FComboBox; import forge.toolbox.FComboBox;
import forge.util.Localizer;
import forge.util.gui.SGuiChoose; import forge.util.gui.SGuiChoose;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -37,20 +38,20 @@ import java.util.List;
public class LoadDraftScreen extends LaunchScreen { public class LoadDraftScreen extends LaunchScreen {
private final DeckManager lstDecks = add(new DeckManager(GameType.Draft)); private final DeckManager lstDecks = add(new DeckManager(GameType.Draft));
private final FLabel lblTip = add(new FLabel.Builder() 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) .textColor(FLabel.INLINE_LABEL_COLOR)
.align(Align.center).font(FSkinFont.get(12)).build()); .align(Align.center).font(FSkinFont.get(12)).build());
private final FSkinFont GAME_MODE_FONT= FSkinFont.get(12); 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<String> cbMode = add(new FComboBox<>()); private final FComboBox<String> cbMode = add(new FComboBox<>());
public LoadDraftScreen() { public LoadDraftScreen() {
super(null, LoadGameMenu.getMenu()); super(null, LoadGameMenu.getMenu());
cbMode.setFont(GAME_MODE_FONT); cbMode.setFont(GAME_MODE_FONT);
cbMode.addItem("Gauntlet"); cbMode.addItem(Localizer.getInstance().getMessage("lblGauntlet"));
cbMode.addItem("Single Match"); cbMode.addItem(Localizer.getInstance().getMessage("lblSingleMatch"));
lstDecks.setup(ItemManagerConfig.DRAFT_DECKS); lstDecks.setup(ItemManagerConfig.DRAFT_DECKS);
lstDecks.setItemActivateHandler(new FEventHandler() { lstDecks.setItemActivateHandler(new FEventHandler() {
@@ -98,17 +99,18 @@ public class LoadDraftScreen extends LaunchScreen {
FThreads.invokeInBackgroundThread(new Runnable() { FThreads.invokeInBackgroundThread(new Runnable() {
@Override @Override
public void run() { public void run() {
Localizer localizer = Localizer.getInstance();
final DeckProxy humanDeck = lstDecks.getSelectedItem(); final DeckProxy humanDeck = lstDecks.getSelectedItem();
if (humanDeck == null) { 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; return;
} }
// TODO: if booster draft tournaments are supported in the future, add the possibility to choose them here // 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) { 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()); 1, FModel.getDecks().getDraft().get(humanDeck.getName()).getAiDecks().size());
if (rounds == null) { if (rounds == null) {
return; return;
@@ -121,7 +123,7 @@ public class LoadDraftScreen extends LaunchScreen {
return; return;
} }
LoadingOverlay.show("Loading new game...", new Runnable() { LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() {
@Override @Override
public void run() { public void run() {
FModel.getGauntletMini().resetGauntletDraft(); FModel.getGauntletMini().resetGauntletDraft();
@@ -131,7 +133,7 @@ public class LoadDraftScreen extends LaunchScreen {
} }
}); });
} else { } 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()); 1, FModel.getDecks().getDraft().get(humanDeck.getName()).getAiDecks().size());
if (aiIndex == null) { if (aiIndex == null) {
return; // Cancel was pressed return; // Cancel was pressed
@@ -146,7 +148,7 @@ public class LoadDraftScreen extends LaunchScreen {
FThreads.invokeInEdtLater(new Runnable() { FThreads.invokeInEdtLater(new Runnable() {
@Override @Override
public void run() { public void run() {
LoadingOverlay.show("Loading new game...", new Runnable() { LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() {
@Override @Override
public void run() { public void run() {
if (!checkDeckLegality(humanDeck)) { if (!checkDeckLegality(humanDeck)) {
@@ -177,7 +179,7 @@ public class LoadDraftScreen extends LaunchScreen {
if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) {
String errorMessage = GameType.Draft.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck()); String errorMessage = GameType.Draft.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck());
if (errorMessage != null) { 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; return false;
} }
} }

View File

@@ -11,6 +11,7 @@ import forge.screens.LoadingOverlay;
import forge.screens.home.NewGameMenu; import forge.screens.home.NewGameMenu;
import forge.toolbox.FLabel; import forge.toolbox.FLabel;
import forge.toolbox.FTextArea; import forge.toolbox.FTextArea;
import forge.util.Localizer;
import forge.util.ThreadUtil; import forge.util.ThreadUtil;
import forge.util.Utils; import forge.util.Utils;
import forge.util.gui.SGuiChoose; import forge.util.gui.SGuiChoose;
@@ -19,9 +20,9 @@ public class NewDraftScreen extends LaunchScreen {
private static final float PADDING = Utils.scale(10); private static final float PADDING = Utils.scale(10);
private final FTextArea lblDesc = add(new FTextArea(false, private final FTextArea lblDesc = add(new FTextArea(false,
"In Draft mode, three booster packs are rotated around eight players.\n\n" + Localizer.getInstance().getMessage("lblDraftText1") + "\n\n" +
"Build a deck from the cards you choose. The AI will do the same.\n\n" + Localizer.getInstance().getMessage("lblDraftText2") + "\n\n" +
"Then, play against any number of the AI opponents.")); Localizer.getInstance().getMessage("lblDraftText3")));
public NewDraftScreen() { public NewDraftScreen() {
super(null, NewGameMenu.getMenu()); 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 ThreadUtil.invokeInGameThread(new Runnable() { //must run in game thread to prevent blocking UI thread
@Override @Override
public void run() { 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; } if (poolType == null) { return; }
final BoosterDraft draft = BoosterDraft.createDraft(poolType); final BoosterDraft draft = BoosterDraft.createDraft(poolType);
@@ -53,7 +54,7 @@ public class NewDraftScreen extends LaunchScreen {
FThreads.invokeInEdtLater(new Runnable() { FThreads.invokeInEdtLater(new Runnable() {
@Override @Override
public void run() { public void run() {
LoadingOverlay.show("Loading new draft...", new Runnable() { LoadingOverlay.show(Localizer.getInstance().getMessage("lblLoadingNewDraft"), new Runnable() {
@Override @Override
public void run() { public void run() {
Forge.openScreen(new DraftingProcessScreen(draft, EditorType.Draft, null)); Forge.openScreen(new DraftingProcessScreen(draft, EditorType.Draft, null));

View File

@@ -12,6 +12,7 @@ import forge.screens.LaunchScreen;
import forge.screens.home.NewGameMenu; import forge.screens.home.NewGameMenu;
import forge.toolbox.FLabel; import forge.toolbox.FLabel;
import forge.toolbox.FTextArea; import forge.toolbox.FTextArea;
import forge.util.Localizer;
import forge.util.ThreadUtil; import forge.util.ThreadUtil;
import forge.util.Utils; import forge.util.Utils;
@@ -19,9 +20,9 @@ public class NewSealedScreen extends LaunchScreen {
private static final float PADDING = Utils.scale(10); private static final float PADDING = Utils.scale(10);
private final FTextArea lblDesc = add(new FTextArea(false, private final FTextArea lblDesc = add(new FTextArea(false,
"In Sealed mode, you build a deck from booster packs (maximum 10).\n\n" + Localizer.getInstance().getMessage("lblSealedText2") + "\n\n" +
"Build a deck from the cards you receive. A number of AI opponents will do the same.\n\n" + Localizer.getInstance().getMessage("lblSealedText3") + "\n\n" +
"Then, play against each of the AI opponents.")); Localizer.getInstance().getMessage("lblSealedText4")));
public NewSealedScreen() { public NewSealedScreen() {
super(null, NewGameMenu.getMenu()); super(null, NewGameMenu.getMenu());

View File

@@ -10,6 +10,7 @@ Hanmac
Indigo Dragon Indigo Dragon
Jamin Collins Jamin Collins
kevlahnota kevlahnota
klaxnek
KrazyTheFox KrazyTheFox
leriomaggio leriomaggio
Luke Luke

View File

@@ -1172,3 +1172,27 @@ lblItsADraw=Es ist ein Unentschieden!
lblTeamWon=Team %s hat gewonnen! lblTeamWon=Team %s hat gewonnen!
lblWinnerWon=%s hat gewonnen! lblWinnerWon=%s hat gewonnen!
lblGameLog=Spiel-Aufzeichnung 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...

View File

@@ -628,7 +628,7 @@ titleUnlocked=%n unlocked!
lblStartADuel=Start a duel. lblStartADuel=Start a duel.
lblSelectAQuestDeck=Please select a Quest Deck. lblSelectAQuestDeck=Please select a Quest Deck.
lblInvalidDeck=Invalid 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 #VSubmenuQuestPrefs.java
lblQuestPreferences=Quest Preferences lblQuestPreferences=Quest Preferences
lblRewardsError=Rewards Error lblRewardsError=Rewards Error
@@ -1171,4 +1171,28 @@ btnQuitMatch=Quit Match
lblItsADraw=It's a draw! lblItsADraw=It's a draw!
lblTeamWon=Team %s won! lblTeamWon=Team %s won!
lblWinnerWon=%s won! lblWinnerWon=%s won!
lblGameLog=Game Log 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...

View File

@@ -628,7 +628,7 @@ titleUnlocked=%n desbloqueado!
lblStartADuel=Comienza un duelo. lblStartADuel=Comienza un duelo.
lblSelectAQuestDeck=Por favor, seleccione un mazo de aventura. lblSelectAQuestDeck=Por favor, seleccione un mazo de aventura.
lblInvalidDeck=Mazo no válido 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 #VSubmenuQuestPrefs.java
lblQuestPreferences=Preferencias de la Aventura lblQuestPreferences=Preferencias de la Aventura
lblRewardsError=Error de recompensas lblRewardsError=Error de recompensas
@@ -1171,4 +1171,28 @@ btnQuitMatch=Salir de la Partida
lblItsADraw=¡Es un empate! lblItsADraw=¡Es un empate!
lblTeamWon=¡El equipo %s ha ganado! lblTeamWon=¡El equipo %s ha ganado!
lblWinnerWon=¡%s ha ganado! lblWinnerWon=¡%s ha ganado!
lblGameLog=Registro del Juego 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...

View File

@@ -1171,4 +1171,28 @@ btnQuitMatch=退出比赛
lblItsADraw=平局! lblItsADraw=平局!
lblTeamWon=队伍%s胜利了 lblTeamWon=队伍%s胜利了
lblWinnerWon=%s胜利了 lblWinnerWon=%s胜利了
lblGameLog=游戏日志 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...