From 16da63aa9c9e456957eb9cf88cae72d23bc603fc Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 13 Sep 2019 11:19:35 +0200 Subject: [PATCH] Mobile - Translation: Deck Chooser, Deck Editor and Match Screen. Fix compare String with equals() --- .../src/forge/deck/FDeckChooser.java | 9 +- .../src/forge/deck/FDeckEditor.java | 137 ++++++++++-------- .../src/forge/screens/match/MatchScreen.java | 28 ++-- forge-gui/res/languages/de-DE.properties | 35 ++++- forge-gui/res/languages/en-US.properties | 35 ++++- forge-gui/res/languages/es-ES.properties | 49 ++++++- forge-gui/res/languages/zh-CN.properties | 35 ++++- 7 files changed, 241 insertions(+), 87 deletions(-) diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index 06c681b5b8f..742c79d40fe 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -36,6 +36,7 @@ import forge.toolbox.ListChooser; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FOptionPane; import forge.util.Callback; +import forge.util.Localizer; import forge.util.Utils; import forge.util.storage.IStorage; @@ -63,10 +64,10 @@ public class FDeckChooser extends FScreen { private boolean refreshingDeckType; private final DeckManager lstDecks; - private final FButton btnNewDeck = new FButton("New Deck"); - private final FButton btnEditDeck = new FButton("Edit Deck"); - private final FButton btnViewDeck = new FButton("View Deck"); - private final FButton btnRandom = new FButton("Random Deck"); + private final FButton btnNewDeck = new FButton(Localizer.getInstance().getMessage("lblNewDeck")); + private final FButton btnEditDeck = new FButton(Localizer.getInstance().getMessage("btnEditDeck")); + private final FButton btnViewDeck = new FButton(Localizer.getInstance().getMessage("lblViewDeck")); + private final FButton btnRandom = new FButton(Localizer.getInstance().getMessage("lblRandomDeck")); private RegisteredPlayer player; private boolean isAi; diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index 70be5c3361e..0b6a9ab81ef 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -36,6 +36,7 @@ import forge.toolbox.FEvent.FEventType; import forge.util.Callback; import forge.util.ItemPool; import forge.util.Lang; +import forge.util.Localizer; import forge.util.Utils; import forge.util.storage.IStorage; import org.apache.commons.lang3.StringUtils; @@ -163,6 +164,7 @@ public class FDeckEditor extends TabPageScreen { } private static DeckEditorPage[] getPages(EditorType editorType) { + final Localizer localizer = Localizer.getInstance(); switch (editorType) { default: case Constructed: @@ -195,7 +197,7 @@ public class FDeckEditor extends TabPageScreen { return new DeckEditorPage[] { new CatalogPage(ItemManagerConfig.CARD_CATALOG), new DeckSectionPage(DeckSection.Main), - new DeckSectionPage(DeckSection.Commander, ItemManagerConfig.OATHBREAKER_SECTION, "Oathbreaker", FSkinImage.COMMANDER), + new DeckSectionPage(DeckSection.Commander, ItemManagerConfig.OATHBREAKER_SECTION, localizer.getMessage("lblOathbreaker"), FSkinImage.COMMANDER), new DeckSectionPage(DeckSection.Sideboard) }; case Archenemy: @@ -210,7 +212,7 @@ public class FDeckEditor extends TabPageScreen { }; case Quest: return new DeckEditorPage[] { - new CatalogPage(ItemManagerConfig.QUEST_EDITOR_POOL, "Inventory", FSkinImage.QUEST_BOX), + new CatalogPage(ItemManagerConfig.QUEST_EDITOR_POOL, localizer.getMessage("lblInventory"), FSkinImage.QUEST_BOX), new DeckSectionPage(DeckSection.Main, ItemManagerConfig.QUEST_DECK_EDITOR), new DeckSectionPage(DeckSection.Sideboard, ItemManagerConfig.QUEST_DECK_EDITOR) }; @@ -222,8 +224,8 @@ public class FDeckEditor extends TabPageScreen { }; case PlanarConquest: return new DeckEditorPage[] { - new CatalogPage(ItemManagerConfig.CONQUEST_COLLECTION, "Collection", FSkinImage.SPELLBOOK), - new DeckSectionPage(DeckSection.Main, ItemManagerConfig.CONQUEST_DECK_EDITOR, "Deck", FSkinImage.DECKLIST), + new CatalogPage(ItemManagerConfig.CONQUEST_COLLECTION, localizer.getMessage("lblCollection"), FSkinImage.SPELLBOOK), + new DeckSectionPage(DeckSection.Main, ItemManagerConfig.CONQUEST_DECK_EDITOR, localizer.getMessage("lblDeck"), FSkinImage.DECKLIST), new DeckSectionPage(DeckSection.Commander, ItemManagerConfig.COMMANDER_SECTION) }; } @@ -334,7 +336,9 @@ public class FDeckEditor extends TabPageScreen { FPopupMenu menu = new FPopupMenu() { @Override protected void buildMenu() { - addItem(new FMenuItem("Add Basic Lands", FSkinImage.LAND, new FEventHandler() { + final Localizer localizer = Localizer.getInstance(); + + addItem(new FMenuItem(localizer.getMessage("lblAddBasicLands"), FSkinImage.LAND, new FEventHandler() { @Override public void handleEvent(FEvent e) { CardEdition defaultLandSet; @@ -367,7 +371,7 @@ public class FDeckEditor extends TabPageScreen { } })); if (!isLimitedEditor()) { - addItem(new FMenuItem("Import from Clipboard", FSkinImage.OPEN, new FEventHandler() { + addItem(new FMenuItem(localizer.getMessage("lblImportFromClipboard"), FSkinImage.OPEN, new FEventHandler() { @Override public void handleEvent(FEvent e) { FDeckImportDialog dialog = new FDeckImportDialog(!deck.isEmpty(), new Callback() { @@ -386,11 +390,11 @@ public class FDeckEditor extends TabPageScreen { setSelectedPage(getMainDeckPage()); //select main deck page if needed so main deck if visible below dialog } })); - addItem(new FMenuItem("Save As...", FSkinImage.SAVEAS, new FEventHandler() { + addItem(new FMenuItem(localizer.getMessage("lblSaveAs"), FSkinImage.SAVEAS, new FEventHandler() { @Override public void handleEvent(FEvent e) { String defaultName = editorType.getController().getNextAvailableName(); - FOptionPane.showInputDialog("Enter name for new copy of deck", defaultName, new Callback() { + FOptionPane.showInputDialog(localizer.getMessage("lblNameNewCopyDeck"), defaultName, new Callback() { @Override public void run(String result) { if (!StringUtils.isEmpty(result)) { @@ -402,10 +406,10 @@ public class FDeckEditor extends TabPageScreen { })); } if (allowRename()) { - addItem(new FMenuItem("Rename Deck", FSkinImage.EDIT, new FEventHandler() { + addItem(new FMenuItem(localizer.getMessage("lblRenameDeck"), FSkinImage.EDIT, new FEventHandler() { @Override public void handleEvent(FEvent e) { - FOptionPane.showInputDialog("Enter new name for deck", deck.getName(), new Callback() { + FOptionPane.showInputDialog(localizer.getMessage("lblNewNameDeck"), deck.getName(), new Callback() { @Override public void run(String result) { editorType.getController().rename(result); @@ -415,12 +419,12 @@ public class FDeckEditor extends TabPageScreen { })); } if (allowDelete()) { - addItem(new FMenuItem("Delete Deck", FSkinImage.DELETE, new FEventHandler() { + addItem(new FMenuItem(localizer.getMessage("lblDeleteDeck"), FSkinImage.DELETE, new FEventHandler() { @Override public void handleEvent(FEvent e) { FOptionPane.showConfirmDialog( - "Are you sure you want to delete '" + deck.getName() + "'?", - "Delete Deck", "Delete", "Cancel", false, new Callback() { + localizer.getMessage("lblConfirmDelete") + " '" + deck.getName() + "'?", + localizer.getMessage("lblDeleteDeck"), localizer.getMessage("lblDelete"), localizer.getMessage("lblCancel"), false, new Callback() { @Override public void run(Boolean result) { if (result) { @@ -432,7 +436,7 @@ public class FDeckEditor extends TabPageScreen { } })); } - addItem(new FMenuItem("Copy to Clipboard", new FEventHandler() { + addItem(new FMenuItem(localizer.getMessage("btnCopyToClipboard"), new FEventHandler() { @Override public void handleEvent(FEvent e) { FDeckViewer.copyDeckToClipboard(deck); @@ -537,8 +541,9 @@ public class FDeckEditor extends TabPageScreen { protected void save(final Callback callback) { if (StringUtils.isEmpty(deck.getName())) { List commanders = deck.getCommanders(); //use commander name as default deck name - String initialInput = Lang.joinHomogenous(commanders); - FOptionPane.showInputDialog("Enter name for new deck", initialInput, new Callback() { + String initialInput = Lang.joinHomogenous(commanders); + final Localizer localizer = Localizer.getInstance(); + FOptionPane.showInputDialog(localizer.getMessage("lblNameNewDeck"), initialInput, new Callback() { @Override public void run(String result) { if (StringUtils.isEmpty(result)) { return; } @@ -566,7 +571,8 @@ public class FDeckEditor extends TabPageScreen { super.onClose(canCloseCallback); //can skip prompt if draft saved return; } - FOptionPane.showOptionDialog("Save changes to current deck?", "", + final Localizer localizer = Localizer.getInstance(); + FOptionPane.showOptionDialog(localizer.getMessage("lblSaveChangesCurrentDeck"), "", FOptionPane.QUESTION_ICON, onCloseOptions, new Callback() { @Override public void run(Integer result) { @@ -828,7 +834,8 @@ public class FDeckEditor extends TabPageScreen { callback.run(max); } else { - GuiChoose.getInteger(cardManager.getSelectedItem() + " - " + verb + " how many?", 1, max, 20, callback); + final Localizer localizer = Localizer.getInstance(); + GuiChoose.getInteger(cardManager.getSelectedItem() + " - " + verb + " " + localizer.getMessage("lblHowMany"), 1, max, 20, callback); } } })); @@ -962,7 +969,7 @@ public class FDeckEditor extends TabPageScreen { private boolean initialized, needRefreshWhenShown; protected CatalogPage(ItemManagerConfig config) { - this(config, "Catalog", FSkinImage.FOLDER); + this(config, Localizer.getInstance().getMessage("lblCatalog"), FSkinImage.FOLDER); } protected CatalogPage(ItemManagerConfig config, String caption0, FImage icon0) { super(config, caption0, icon0); @@ -993,13 +1000,14 @@ public class FDeckEditor extends TabPageScreen { } protected String getItemManagerCaption() { + final Localizer localizer = Localizer.getInstance(); switch (parentScreen.getEditorType()) { case Archenemy: - return "Schemes"; + return localizer.getMessage("lblSchemes"); case Planechase: - return "Planes"; + return localizer.getMessage("lblPlanes"); default: - return "Cards"; + return localizer.getMessage("lblCards"); } } @@ -1018,6 +1026,7 @@ public class FDeckEditor extends TabPageScreen { public void refresh() { Predicate additionalFilter = null; final EditorType editorType = parentScreen.getEditorType(); + final Localizer localizer = Localizer.getInstance(); switch (editorType) { case Archenemy: cardManager.setPool(ItemPool.createFrom(FModel.getMagicDb().getVariantCards().getAllCards(Predicates.compose(CardRulesPredicates.Presets.IS_SCHEME, PaperCard.FN_GET_RULES)), PaperCard.class), true); @@ -1047,19 +1056,19 @@ public class FDeckEditor extends TabPageScreen { switch (editorType) { case Commander: additionalFilter = DeckFormat.Commander.isLegalCommanderPredicate(); - cardManager.setCaption("Commanders"); + cardManager.setCaption(localizer.getMessage("lblCommanders")); break; case Oathbreaker: additionalFilter = DeckFormat.Oathbreaker.isLegalCommanderPredicate(); - cardManager.setCaption("Oathbreakers"); + cardManager.setCaption(localizer.getMessage("lblOathbreakers")); break; case TinyLeaders: additionalFilter = DeckFormat.TinyLeaders.isLegalCommanderPredicate(); - cardManager.setCaption("Commanders"); + cardManager.setCaption(localizer.getMessage("lblCommanders")); break; case Brawl: additionalFilter = DeckFormat.Brawl.isLegalCommanderPredicate(); - cardManager.setCaption("Commanders"); + cardManager.setCaption(localizer.getMessage("lblCommanders")); break; default: // Do nothing @@ -1083,7 +1092,7 @@ public class FDeckEditor extends TabPageScreen { default: // Do nothing } - cardManager.setCaption("Cards"); + cardManager.setCaption(localizer.getMessage("lblCards")); } // fall through to below default: @@ -1117,8 +1126,10 @@ public class FDeckEditor extends TabPageScreen { @Override protected void buildMenu(final FDropDownMenu menu, final PaperCard card) { + final Localizer localizer = Localizer.getInstance(); + if (!needsCommander() && !canOnlyBePartnerCommander(card)) { - addItem(menu, "Add", "to " + parentScreen.getMainDeckPage().cardManager.getCaption(), parentScreen.getMainDeckPage().getIcon(), true, true, new Callback() { + addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lblTo") + " " + parentScreen.getMainDeckPage().cardManager.getCaption(), parentScreen.getMainDeckPage().getIcon(), true, true, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1130,7 +1141,7 @@ public class FDeckEditor extends TabPageScreen { } }); if (parentScreen.getSideboardPage() != null) { - addItem(menu, "Add", "to Sideboard", parentScreen.getSideboardPage().getIcon(), true, true, new Callback() { + addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"), parentScreen.getSideboardPage().getIcon(), true, true, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1150,7 +1161,7 @@ public class FDeckEditor extends TabPageScreen { //add option to add or remove card from favorites final CardPreferences prefs = CardPreferences.getPrefs(card); if (prefs.getStarCount() == 0) { - menu.addItem(new FMenuItem("Add to Favorites", FSkinImage.STAR_FILLED, new FEventHandler() { + menu.addItem(new FMenuItem(localizer.getMessage("lblAddFavorites"), FSkinImage.STAR_FILLED, new FEventHandler() { @Override public void handleEvent(FEvent e) { prefs.setStarCount(1); @@ -1159,7 +1170,7 @@ public class FDeckEditor extends TabPageScreen { })); } else { - menu.addItem(new FMenuItem("Remove from Favorites", FSkinImage.STAR_OUTINE, new FEventHandler() { + menu.addItem(new FMenuItem(localizer.getMessage("lblRemoveFavorites"), FSkinImage.STAR_OUTINE, new FEventHandler() { @Override public void handleEvent(FEvent e) { prefs.setStarCount(0); @@ -1171,7 +1182,7 @@ public class FDeckEditor extends TabPageScreen { //if card has more than one art option, add item to change user's preferred art final List artOptions = FModel.getMagicDb().getCommonCards().getAllCards(card.getName()); if (artOptions != null && artOptions.size() > 1) { - menu.addItem(new FMenuItem("Change Preferred Art", FSkinImage.SETTINGS, new FEventHandler() { + menu.addItem(new FMenuItem(localizer.getMessage("lblChangePreferredArt"), FSkinImage.SETTINGS, new FEventHandler() { @Override public void handleEvent(FEvent e) { //sort options so current option is on top and selected by default @@ -1182,7 +1193,7 @@ public class FDeckEditor extends TabPageScreen { sortedOptions.add(option); } } - GuiChoose.oneOrNone("Select preferred art for " + card.getName(), sortedOptions, new Callback() { + GuiChoose.oneOrNone(localizer.getMessage("lblSelectPreferredArt") + " " + card.getName(), sortedOptions, new Callback() { @Override public void run(PaperCard result) { if (result != null) { @@ -1203,7 +1214,8 @@ public class FDeckEditor extends TabPageScreen { @Override protected void buildDeckMenu(FPopupMenu menu) { if (cardManager.getConfig().getShowUniqueCardsOption()) { - menu.addItem(new FCheckBoxMenuItem("Unique Cards Only", cardManager.getWantUnique(), new FEventHandler() { + final Localizer localizer = Localizer.getInstance(); + menu.addItem(new FCheckBoxMenuItem(localizer.getMessage("lblUniqueCardsOnly"), cardManager.getWantUnique(), new FEventHandler() { @Override public void handleEvent(FEvent e) { boolean wantUnique = !cardManager.getWantUnique(); @@ -1226,37 +1238,39 @@ public class FDeckEditor extends TabPageScreen { protected DeckSectionPage(DeckSection deckSection0, ItemManagerConfig config) { super(config, null, null); + final Localizer localizer = Localizer.getInstance(); + deckSection = deckSection0; switch (deckSection) { default: case Main: - captionPrefix = "Main"; - cardManager.setCaption("Main Deck"); + captionPrefix = localizer.getMessage("lblMain"); + cardManager.setCaption(localizer.getMessage("ttMain")); icon = MAIN_DECK_ICON; break; case Sideboard: - captionPrefix = "Side"; - cardManager.setCaption("Sideboard"); + captionPrefix = localizer.getMessage("lblSide"); + cardManager.setCaption(localizer.getMessage("lblSideboard")); icon = SIDEBOARD_ICON; break; case Commander: - captionPrefix = "Commander"; - cardManager.setCaption("Commander"); + captionPrefix = localizer.getMessage("lblCommander"); + cardManager.setCaption(localizer.getMessage("lblCommander")); icon = FSkinImage.COMMANDER; break; case Avatar: - captionPrefix = "Avatar"; - cardManager.setCaption("Avatar"); + captionPrefix = localizer.getMessage("lblAvatar"); + cardManager.setCaption(localizer.getMessage("lblAvatar")); icon = new FTextureRegionImage(FSkin.getAvatars().get(0)); break; case Planes: - captionPrefix = "Planes"; - cardManager.setCaption("Planes"); + captionPrefix = localizer.getMessage("lblPlanes"); + cardManager.setCaption(localizer.getMessage("lblPlanes")); icon = FSkinImage.CHAOS; break; case Schemes: - captionPrefix = "Schemes"; - cardManager.setCaption("Schemes"); + captionPrefix = localizer.getMessage("lblSchemes"); + cardManager.setCaption(localizer.getMessage("lblSchemes")); icon = FSkinImage.POISON; break; } @@ -1317,10 +1331,11 @@ public class FDeckEditor extends TabPageScreen { @Override protected void buildMenu(final FDropDownMenu menu, final PaperCard card) { + final Localizer localizer = Localizer.getInstance(); switch (deckSection) { default: case Main: - addItem(menu, "Add", null, FSkinImage.PLUS, true, false, new Callback() { + addItem(menu, localizer.getMessage("lblAdd"), null, FSkinImage.PLUS, true, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1335,7 +1350,7 @@ public class FDeckEditor extends TabPageScreen { } }); if (!parentScreen.isLimitedEditor()) { - addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback() { + addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1348,7 +1363,7 @@ public class FDeckEditor extends TabPageScreen { }); } if (parentScreen.getSideboardPage() != null) { - addItem(menu, "Move", "to Sideboard", parentScreen.getSideboardPage().getIcon(), false, false, new Callback() { + addItem(menu, localizer.getMessage("lblMove"), localizer.getMessage("lbltosideboard"), parentScreen.getSideboardPage().getIcon(), false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1361,7 +1376,7 @@ public class FDeckEditor extends TabPageScreen { addCommanderItems(menu, card, false, false); break; case Sideboard: - addItem(menu, "Add", null, FSkinImage.PLUS, true, false, new Callback() { + addItem(menu, localizer.getMessage("lblAdd"), null, FSkinImage.PLUS, true, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1376,7 +1391,7 @@ public class FDeckEditor extends TabPageScreen { } }); if (!parentScreen.isLimitedEditor()) { - addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback() { + addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1388,7 +1403,7 @@ public class FDeckEditor extends TabPageScreen { } }); } - addItem(menu, "Move", "to Main Deck", parentScreen.getMainDeckPage().getIcon(), false, false, new Callback() { + addItem(menu, localizer.getMessage("lblMove"), localizer.getMessage("lblToMainDeck"), parentScreen.getMainDeckPage().getIcon(), false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1401,7 +1416,7 @@ public class FDeckEditor extends TabPageScreen { break; case Commander: if (parentScreen.editorType != EditorType.PlanarConquest || isPartnerCommander(card)) { - addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback() { + addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { @@ -1416,7 +1431,7 @@ public class FDeckEditor extends TabPageScreen { } break; case Avatar: - addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback() { + addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1434,7 +1449,7 @@ public class FDeckEditor extends TabPageScreen { addCard(card, result); } }); - addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback() { + addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1444,7 +1459,7 @@ public class FDeckEditor extends TabPageScreen { }); break; case Planes: - addItem(menu, "Add", null, FSkinImage.PLUS, true, false, new Callback() { + addItem(menu, localizer.getMessage("lblAdd"), null, FSkinImage.PLUS, true, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1452,7 +1467,7 @@ public class FDeckEditor extends TabPageScreen { addCard(card, result); } }); - addItem(menu, "Remove", null, FSkinImage.MINUS, false, false, new Callback() { + addItem(menu, localizer.getMessage("lblRemove"), null, FSkinImage.MINUS, false, false, new Callback() { @Override public void run(Integer result) { if (result == null || result <= 0) { return; } @@ -1513,14 +1528,15 @@ public class FDeckEditor extends TabPageScreen { @Override protected void buildMenu(final FDropDownMenu menu, final PaperCard card) { - addItem(menu, "Add", "to Main Deck", parentScreen.getMainDeckPage().getIcon(), true, true, new Callback() { + final Localizer localizer = Localizer.getInstance(); + addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lblToMainDeck"), parentScreen.getMainDeckPage().getIcon(), true, true, new Callback() { @Override public void run(Integer result) { //ignore quantity parentScreen.getMainDeckPage().addCard(card); afterCardPicked(card); } }); - addItem(menu, "Add", "to Sideboard", parentScreen.getSideboardPage().getIcon(), true, true, new Callback() { + addItem(menu, localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"), parentScreen.getSideboardPage().getIcon(), true, true, new Callback() { @Override public void run(Integer result) { //ignore quantity parentScreen.getSideboardPage().addCard(card); @@ -1630,7 +1646,8 @@ public class FDeckEditor extends TabPageScreen { if (editor != null) { String name = this.getModelName(); if (name.isEmpty()) { - name = "[New Deck]"; + final Localizer localizer = Localizer.getInstance(); + name = "[" + localizer.getMessage("lblNewDeck") + "]"; } if (!saved) { name = "*" + name; diff --git a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java index 945f470ebae..96686e75177 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java @@ -3,6 +3,7 @@ package forge.screens.match; import java.util.*; import java.util.Map.Entry; +import forge.util.Localizer; import org.apache.commons.lang3.tuple.Pair; import com.badlogic.gdx.Input.Keys; @@ -136,17 +137,18 @@ public class MatchScreen extends FScreen { stack.setDropDownContainer(this); FMenuBar menuBar = (FMenuBar)getHeader(); + final Localizer localizer = Localizer.getInstance(); if (topPlayerPrompt == null) { - menuBar.addTab("Game", gameMenu); - menuBar.addTab("Players (" + playerPanels.size() + ")", players); - menuBar.addTab("Log", log); - menuBar.addTab("Dev", devMenu); - menuBar.addTab("Stack (0)", stack); + menuBar.addTab(localizer.getMessage("lblGame"), gameMenu); + menuBar.addTab(localizer.getMessage("lblPlayers") + " (" + playerPanels.size() + ")", players); + menuBar.addTab(localizer.getMessage("lblLog"), log); + menuBar.addTab(localizer.getMessage("lblDev"), devMenu); + menuBar.addTab( localizer.getMessage("lblStack") + " (0)", stack); } else { menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(true)); stack.setRotate90(true); - menuBar.addTab("Stack (0)", stack); + menuBar.addTab(localizer.getMessage("Stack") + " (0)", stack); menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(false)); //create fake menu tabs for other drop downs so they can be positioned as needed @@ -223,16 +225,18 @@ public class MatchScreen extends FScreen { @Override protected void buildMenu() { + final Localizer localizer = Localizer.getInstance(); + if (isTopHumanPlayerActive() == getRotate180()) { - addItem(new MenuItem("Game", gameMenu)); - addItem(new MenuItem("Players (" + playerPanels.size() + ")", players)); - addItem(new MenuItem("Log", log)); + addItem(new MenuItem(localizer.getMessage("lblGame"), gameMenu)); + addItem(new MenuItem(localizer.getMessage("lblPlayers") + " (" + playerPanels.size() + ")", players)); + addItem(new MenuItem(localizer.getMessage("lblLog"), log)); if (ForgePreferences.DEV_MODE) { - addItem(new MenuItem("Dev", devMenu)); + addItem(new MenuItem(localizer.getMessage("lblDev"), devMenu)); } } else { //TODO: Support using menu when player doesn't have priority - FMenuItem item = new FMenuItem("Must wait for priority...", null); + FMenuItem item = new FMenuItem(localizer.getMessage("lblMustWaitPriority"), null); item.setEnabled(false); addItem(item); } @@ -665,7 +669,7 @@ public class MatchScreen extends FScreen { private boolean hasActivePlane(){ if(MatchController.instance.getGameView() != null) if(MatchController.instance.getGameView().getPlanarPlayer() != null) { - return MatchController.instance.getGameView().getPlanarPlayer().getCurrentPlaneName() != ""; + return !MatchController.instance.getGameView().getPlanarPlayer().getCurrentPlaneName().equals(""); } return false; } diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index b448bad9395..71643ddb8f7 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -936,4 +936,37 @@ nlShowCardPTOverlays=Show power/toughness/loyalty overlays for cards, otherwise nlShowMatchBackground=Show match background image on battlefield, otherwise background texture shown instead. nlTheme=Sets the theme that determines how display components are skinned. nlVibrateAfterLongPress=Enable quick vibration to signify a long press, such as for card zooming. -nlVibrateWhenLosingLife=Enable vibration when your player loses life or takes damage during a game. \ No newline at end of file +nlVibrateWhenLosingLife=Enable vibration when your player loses life or takes damage during a game. +#MatchScreen.java +lblPlayers=Players +lblLog=Log +lblDev=Dev +lblStack=Stack +lblMustWaitPriority=Must wait for priority... +#FDeckEditor.java +lblImportFromClipboard=Import from Clipboard +lblSaveAs=Save As... +lblNameNewCopyDeck=Enter name for new copy of deck +lblRenameDeck=Rename Deck +lblNewNameDeck=Enter new name for deck +lblDeleteDeck=Delete Deck +lblDelete=Delete +lblConfirmDelete=Are you sure you want to delete +lblNameNewDeck=Enter name for new deck +lblSaveChangesCurrentDeck=Save changes to current deck? +lblAddFavorites=Add to Favorites +lblRemoveFavorites=Remove from Favorites +lblChangePreferredArt=Change Preferred Art +lblSelectPreferredArt=Select preferred art for +lblTo=to +lblAvatar=Avatar +lblCards=Cards +lblPlanes=Planes +lblSchemes=Schemes +lblToMainDeck=to Main Deck +lblHowMany=how many? +lblInventory=Inventory +lblCollection=Collection +lblCatalog=Catalog +lblCommanders=Commanders +lblOathbreakers=Oathbreakers \ 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 9c507126b3f..f94a7edc84c 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -936,4 +936,37 @@ nlShowCardPTOverlays=Show power/toughness/loyalty overlays for cards, otherwise nlShowMatchBackground=Show match background image on battlefield, otherwise background texture shown instead. nlTheme=Sets the theme that determines how display components are skinned. nlVibrateAfterLongPress=Enable quick vibration to signify a long press, such as for card zooming. -nlVibrateWhenLosingLife=Enable vibration when your player loses life or takes damage during a game. \ No newline at end of file +nlVibrateWhenLosingLife=Enable vibration when your player loses life or takes damage during a game. +#MatchScreen.java +lblPlayers=Players +lblLog=Log +lblDev=Dev +lblStack=Stack +lblMustWaitPriority=Must wait for priority... +#FDeckEditor.java +lblImportFromClipboard=Import from Clipboard +lblSaveAs=Save As... +lblNameNewCopyDeck=Enter name for new copy of deck +lblRenameDeck=Rename Deck +lblNewNameDeck=Enter new name for deck +lblDeleteDeck=Delete Deck +lblDelete=Delete +lblConfirmDelete=Are you sure you want to delete +lblNameNewDeck=Enter name for new deck +lblSaveChangesCurrentDeck=Save changes to current deck? +lblAddFavorites=Add to Favorites +lblRemoveFavorites=Remove from Favorites +lblChangePreferredArt=Change Preferred Art +lblSelectPreferredArt=Select preferred art for +lblTo=to +lblAvatar=Avatar +lblCards=Cards +lblPlanes=Planes +lblSchemes=Schemes +lblToMainDeck=to Main Deck +lblHowMany=how many? +lblInventory=Inventory +lblCollection=Collection +lblCatalog=Catalog +lblCommanders=Commanders +lblOathbreakers=Oathbreakers \ 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 c2d369bdbf3..5e916608fcd 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -222,7 +222,7 @@ TresetMatchScreenLayout=Restablecer diseño de pantalla de Juego OKresetMatchScreenLayout=El diseño de la pantalla de Juego se ha restablecido. #EMenuGroup.java lblSanctionedFormats=Formatos Oficiales -lblOnlineMultiplayer=Multijugador en linea +lblOnlineMultiplayer=Multijugador en línea lblQuestMode=Modo Aventura lblPuzzleMode=Modo Puzzle lblGauntlets=Desafíos @@ -230,8 +230,8 @@ lblGameSettings=Configuración #VLobby.java lblHeaderConstructedMode=Formato Oficial: Construido lblGetNewRandomName=Obtener nuevo nombre aleatorio -lbltypeofName=Qué tipo de nombre quieres generar? -lblconfirmName=Quieres usar el nombre de %n, o probar de nuevo? +lbltypeofName=¿Qué tipo de nombre quieres generar? +lblconfirmName=¿Quieres usar el nombre de %n, o probar de nuevo? lblUseThisName=Usar este nombre lblTryAgain=Probar de nuevo lblAddAPlayer=Añadir Jugador @@ -315,12 +315,12 @@ lblName=Nombre lblTeam=Equipo #InputConfirmMulligan.java lblKeep=Mantener -lblYouAreGoingFirst=tu vas primero! +lblYouAreGoingFirst=tú vas primero! lblIsGoingFirst=va primero lblYouAreGoing=vas lblMulligan=Mulligan lblDoYouWantToKeepYourHand=¿Quieres quedarte tu mano? -lblReturnForLondon=Return %d card(s) to the bottom of your library +lblReturnForLondon=Devuelve %d carta(s) en la parte inferior de tu biblioteca lblOk=Ok lblReset=Reset lblAuto=Auto @@ -545,7 +545,7 @@ lblRandomModernColorDecks=Mazos Standard Aleatorio por Color lblRandomThemeDecks=Mazos Aleatorios Temáticos lblRandomDecks=Mazos Aleatorios lblNetDecks=Mazos en línea -lblNetCommanderDecks=Mazos Commander en linea +lblNetCommanderDecks=Mazos Commander en línea #VSubmenuPuzzleSolve.java lblSolve=Resolver lblPuzzleModeSolve=Modo Puzzle: Resolver @@ -886,7 +886,7 @@ ttType=Type #HomeScreen.java lblNewGame=Nueva partida lblLoadGame=Cargar partida -lblPlayOnline=Jugar en linea +lblPlayOnline=Jugar online lblSettings=Configuración #SettingsPage.java lblAutomaticBugReports=Informes automáticos de errores @@ -936,4 +936,37 @@ nlShowCardPTOverlays=Muestra superposiciones de fuerza/resistencia/lealtad para nlShowMatchBackground=Muestra la imagen de fondo de la partida en el campo de batalla; de lo contrario, se muestra la textura de fondo. nlTheme=Establece el tema que determina el aspecto global del juego. nlVibrateAfterLongPress=Habilita la vibración rápida cuando se realice una pulsación prolongada, como p.ej. al realizar zoom de la carta. -nlVibrateWhenLosingLife=Habilita la vibración cuando tu jugador pierde vida o sufre daños durante un juego. \ No newline at end of file +nlVibrateWhenLosingLife=Habilita la vibración cuando tu jugador pierde vida o sufre daños durante un juego. +#MatchScreen.java +lblPlayers=Jugadores +lblLog=Log +lblDev=Dev +lblStack=Pila +lblMustWaitPriority=Debes esperar debido a la prioridad... +#FDeckEditor.java +lblImportFromClipboard=Importar del portapapeles +lblSaveAs=Guardar como... +lblNameNewCopyDeck=Introduce un nombre para la nueva copia del mazo +lblRenameDeck=Renombrar Mazo +lblNewNameDeck=Introduce un nuevo nombre para el mazo +lblDeleteDeck=Borrar Mazo +lblDelete=Borrar +lblConfirmDelete=¿Estás seguro que quieres borrar +lblNameNewDeck=Introduce un nombre para el nuevo mazo +lblSaveChangesCurrentDeck=¿Guardar los cambios al mazo actual? +lblAddFavorites=Añadir a Favoritos +lblRemoveFavorites=Eliminar de Favoritos +lblChangePreferredArt=Cambiar Arte Preferido +lblSelectPreferredArt=Selecciona el arte preferido para +lblTo=a +lblAvatar=Avatar +lblCards=Cartas +lblPlanes=Planos +lblSchemes=Schemes +lblToMainDeck=al Mazo Principal +lblHowMany=¿cuántos? +lblInventory=Inventario +lblCollection=Colección +lblCatalog=Catálogo +lblCommanders=Commanders +lblOathbreakers=Oathbreakers \ 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 6abc50b16bb..20d705477b4 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -936,4 +936,37 @@ nlShowCardPTOverlays=显示力量/防御/忠诚叠加层,否则他们被隐藏 nlShowMatchBackground=在战场显示背景图片,否则显示背景纹理。 nlTheme=设置显示的组件使用的外观主题。 nlVibrateAfterLongPress=启用长按触发震动,例如长按缩放卡牌图片。 -nlVibrateWhenLosingLife=启用当玩家在游戏中失去生命或收到伤害时震动。 \ No newline at end of file +nlVibrateWhenLosingLife=启用当玩家在游戏中失去生命或收到伤害时震动。 +#MatchScreen.java +lblPlayers=Players +lblLog=Log +lblDev=Dev +lblStack=Stack +lblMustWaitPriority=Must wait for priority... +#FDeckEditor.java +lblImportFromClipboard=Import from Clipboard +lblSaveAs=Save As... +lblNameNewCopyDeck=Enter name for new copy of deck +lblRenameDeck=Rename Deck +lblNewNameDeck=Enter new name for deck +lblDeleteDeck=Delete Deck +lblDelete=Delete +lblConfirmDelete=Are you sure you want to delete +lblNameNewDeck=Enter name for new deck +lblSaveChangesCurrentDeck=Save changes to current deck? +lblAddFavorites=Add to Favorites +lblRemoveFavorites=Remove from Favorites +lblChangePreferredArt=Change Preferred Art +lblSelectPreferredArt=Select preferred art for +lblTo=to +lblAvatar=Avatar +lblCards=Cards +lblPlanes=Planes +lblSchemes=Schemes +lblToMainDeck=to Main Deck +lblHowMany=how many? +lblInventory=Inventory +lblCollection=Collection +lblCatalog=Catalog +lblCommanders=Commanders +lblOathbreakers=Oathbreakers \ No newline at end of file