From 8d94663f4a33cde85b563125040cb135e59c44c9 Mon Sep 17 00:00:00 2001 From: churrufli Date: Wed, 27 Feb 2019 20:18:39 +0100 Subject: [PATCH 1/4] Update language properties --- .../src/main/java/forge/game/GameType.java | 51 +-- .../src/main/java/forge/control/FControl.java | 16 +- .../java/forge/deckchooser/FDeckChooser.java | 7 +- .../deckchooser/IDecksComboBoxListener.java | 2 +- .../src/main/java/forge/gui/FNetOverlay.java | 2 +- .../src/main/java/forge/gui/GuiChoose.java | 4 +- .../src/main/java/forge/gui/ImportDialog.java | 4 +- .../main/java/forge/gui/framework/EDocID.java | 4 +- .../gui/framework/RectangleOfDouble.java | 4 +- .../java/forge/gui/framework/SLayoutIO.java | 4 +- .../forge/gui/framework/SOverflowUtil.java | 2 +- .../forge/gui/framework/SRearrangingUtil.java | 2 +- .../java/forge/itemmanager/ItemManager.java | 2 +- .../java/forge/screens/bazaar/CBazaarUI.java | 2 +- .../java/forge/screens/bazaar/VBazaarUI.java | 2 +- .../screens/deckeditor/CDeckEditorUI.java | 4 +- .../deckeditor/controllers/CCardCatalog.java | 2 +- .../deckeditor/controllers/CCurrentDeck.java | 2 +- .../deckeditor/views/VCardCatalog.java | 2 +- .../deckeditor/views/VCurrentDeck.java | 2 +- .../screens/deckeditor/views/VDeckgen.java | 2 +- .../deckeditor/views/VProbabilities.java | 2 +- .../screens/deckeditor/views/VStatistics.java | 2 +- .../java/forge/screens/home/EMenuGroup.java | 2 +- .../java/forge/screens/home/PlayerPanel.java | 4 +- .../main/java/forge/screens/home/VHomeUI.java | 2 +- .../main/java/forge/screens/home/VLobby.java | 28 +- .../home/gauntlet/VSubmenuGauntletBuild.java | 2 +- .../gauntlet/VSubmenuGauntletContests.java | 2 +- .../home/gauntlet/VSubmenuGauntletLoad.java | 2 +- .../home/gauntlet/VSubmenuGauntletQuick.java | 2 +- .../home/online/CSubmenuOnlineLobby.java | 1 - .../home/online/VSubmenuOnlineLobby.java | 2 +- .../home/quest/VSubmenuChallenges.java | 2 +- .../home/quest/VSubmenuQuestDecks.java | 2 +- .../home/quest/VSubmenuQuestPrefs.java | 2 +- .../home/sanctioned/CSubmenuDraft.java | 7 +- .../home/sanctioned/VSubmenuConstructed.java | 2 +- .../home/sanctioned/VSubmenuDraft.java | 28 +- .../home/sanctioned/VSubmenuSealed.java | 26 +- .../home/sanctioned/VSubmenuWinston.java | 2 +- .../home/settings/CSubmenuPreferences.java | 11 + .../home/settings/VSubmenuAchievements.java | 2 +- .../home/settings/VSubmenuAvatars.java | 2 +- .../home/settings/VSubmenuDownloaders.java | 3 +- .../home/settings/VSubmenuPreferences.java | 10 + .../java/forge/screens/match/CMatchUI.java | 4 +- .../forge/screens/match/controllers/CDev.java | 2 +- .../screens/match/controllers/CDock.java | 4 +- .../screens/match/menus/CardOverlaysMenu.java | 2 +- .../screens/match/menus/DevModeMenu.java | 6 +- .../forge/screens/workshop/CWorkshopUI.java | 2 +- .../workshop/controllers/CCardDesigner.java | 2 +- .../workshop/controllers/CCardScript.java | 4 +- .../controllers/CWorkshopCatalog.java | 2 +- .../screens/workshop/views/VCardDesigner.java | 2 +- .../screens/workshop/views/VCardScript.java | 2 +- .../workshop/views/VWorkshopCatalog.java | 2 +- .../forge/toolbox/FAbsolutePositioner.java | 2 +- .../main/java/forge/toolbox/FComboBox.java | 2 +- .../main/java/forge/toolbox/FOptionPane.java | 2 +- .../src/main/java/forge/toolbox/FOverlay.java | 2 +- .../main/java/forge/toolbox/IDisposable.java | 2 +- .../forge/toolbox/imaging/FImagePanel.java | 7 +- .../forge/toolbox/imaging/FImageUtil.java | 2 +- .../forge/toolbox/special/CardZoomer.java | 4 +- .../forge/toolbox/special/PhaseLabel.java | 6 +- .../src/main/java/forge/view/FView.java | 2 +- .../main/java/forge/view/SimulateMatch.java | 6 +- .../java/forge/view/TimeLimitedCodeBlock.java | 2 +- .../forge/view/arcane/CardPanelContainer.java | 2 +- .../java/forge/view/arcane/ListCardArea.java | 3 +- .../main/java/forge/view/arcane/PlayArea.java | 2 +- .../test/java/forge/BoosterDraft1Test.java | 6 +- .../playeractions/ActionPreCondition.java | 10 +- .../playeractions/DeclareBlockersAction.java | 2 +- .../src/test/java/forge/model/FModelTest.java | 18 +- .../PlanarConquestGeneraterGA.java | 4 +- forge-gui/res/languages/de-DE.properties | 360 ++++++++++++++++++ forge-gui/res/languages/en-US.properties | 76 +++- forge-gui/res/languages/es-es.properties | 360 ++++++++++++++++++ .../match/input/InputConfirmMulligan.java | 5 +- 82 files changed, 999 insertions(+), 194 deletions(-) create mode 100644 forge-gui/res/languages/de-DE.properties create mode 100644 forge-gui/res/languages/es-es.properties diff --git a/forge-game/src/main/java/forge/game/GameType.java b/forge-game/src/main/java/forge/game/GameType.java index bd3058af86a..7b027a1161e 100644 --- a/forge-game/src/main/java/forge/game/GameType.java +++ b/forge-game/src/main/java/forge/game/GameType.java @@ -7,28 +7,30 @@ import forge.deck.Deck; import forge.deck.DeckFormat; import forge.deck.DeckSection; import forge.game.player.RegisteredPlayer; +import forge.util.Localizer; public enum GameType { - Sealed (DeckFormat.Limited, true, true, true, "Sealed", ""), - Draft (DeckFormat.Limited, true, true, true, "Draft", ""), - Winston (DeckFormat.Limited, true, true, true, "Winston", ""), - Gauntlet (DeckFormat.Constructed, false, true, true, "Gauntlet", ""), - Tournament (DeckFormat.Constructed, false, true, true, "Tournament", ""), - Quest (DeckFormat.QuestDeck, true, true, false, "Quest", ""), - QuestDraft (DeckFormat.Limited, true, true, true, "Quest Draft", ""), - PlanarConquest (DeckFormat.PlanarConquest, true, false, false, "Planar Conquest", ""), - Puzzle (DeckFormat.Puzzle, false, false, false, "Puzzle", "Solve a puzzle from the given game state"), - Constructed (DeckFormat.Constructed, false, true, true, "Constructed", ""), - DeckManager (DeckFormat.Constructed, false, true, true, "Deck Manager", ""), - Vanguard (DeckFormat.Vanguard, true, true, true, "Vanguard", "Each player has a special \"Avatar\" card that affects the game."), - Commander (DeckFormat.Commander, false, false, false, "Commander", "Each player has a legendary \"General\" card which can be cast at any time and determines deck colors."), - TinyLeaders (DeckFormat.TinyLeaders, false, false, false, "Tiny Leaders", "Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4."), - Brawl (DeckFormat.Brawl, false, false, false, "Brawl", "Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Only cards legal in Standard may be used."), - Planeswalker (DeckFormat.PlanarConquest, false, false, true, "Planeswalker", "Each player has a Planeswalker card which can be cast at any time."), - Planechase (DeckFormat.Planechase, false, false, true, "Planechase", "Plane cards apply global effects. The Plane card changes when a player rolls \"Planeswalk\" on the planar die."), - Archenemy (DeckFormat.Archenemy, false, false, true, "Archenemy", "One player is the Archenemy and fights the other players by playing Scheme cards."), - ArchenemyRumble (DeckFormat.Archenemy, false, false, true, "Archenemy Rumble", "All players are Archenemies and can play Scheme cards."), - MomirBasic (DeckFormat.Constructed, false, false, false, "Momir Basic", "Each player has a deck containing 60 basic lands and the Momir Vig avatar.", new Function() { + + Sealed (DeckFormat.Limited, true, true, true, "lblSealed", ""), + Draft (DeckFormat.Limited, true, true, true, "lblDraft", ""), + Winston (DeckFormat.Limited, true, true, true, "lblWinston", ""), + Gauntlet (DeckFormat.Constructed, false, true, true, "lblGauntlet", ""), + Tournament (DeckFormat.Constructed, false, true, true, "lblTournament", ""), + Quest (DeckFormat.QuestDeck, true, true, false, "lblQuest", ""), + QuestDraft (DeckFormat.Limited, true, true, true, "lblQuestDraft", ""), + PlanarConquest (DeckFormat.PlanarConquest, true, false, false, "lblPlanarConquest", ""), + Puzzle (DeckFormat.Puzzle, false, false, false, "lblPuzzle", "lblPuzzleDesc"), + Constructed (DeckFormat.Constructed, false, true, true, "lblConstructed", ""), + DeckManager (DeckFormat.Constructed, false, true, true, "lblDeckManager", ""), + Vanguard (DeckFormat.Vanguard, true, true, true, "lblVanguard", "lblVanguardDesc"), + Commander (DeckFormat.Commander, false, false, false, "lblCommander", "lblCommanderDesc"), + TinyLeaders (DeckFormat.TinyLeaders, false, false, false, "lblTinyLeaders", "lblTinyLeadersDesc"), + Brawl (DeckFormat.Brawl, false, false, false, "lblBrawl", "lblBrawlDesc"), + Planeswalker (DeckFormat.PlanarConquest, false, false, true, "lblPlaneswalker", "lblPlaneswalkerDesc"), + Planechase (DeckFormat.Planechase, false, false, true, "lblPlanechase", "lblPlanechaseDesc"), + Archenemy (DeckFormat.Archenemy, false, false, true, "lblArchenemy", "lblArchenemyDesc"), + ArchenemyRumble (DeckFormat.Archenemy, false, false, true, "lblArchenemyRumble", "lblArchenemyRumbleDesc"), + MomirBasic (DeckFormat.Constructed, false, false, false, "lblMomirBasic", "lblMomirBasicDesc", new Function() { @Override public Deck apply(RegisteredPlayer player) { Deck deck = new Deck(); @@ -43,7 +45,7 @@ public enum GameType { return deck; } }), - MoJhoSto (DeckFormat.Constructed, false, false, false, "MoJhoSto", "Each player has a deck containing 60 basic lands and the Momir Vig, Jhoira of the Ghitu, and Stonehewer Giant avatars.", new Function() { + MoJhoSto (DeckFormat.Constructed, false, false, false, "lblMoJhoSto", "lblMoJhoStoDesc", new Function() { @Override public Deck apply(RegisteredPlayer player) { Deck deck = new Deck(); @@ -69,14 +71,19 @@ public enum GameType { private final Function deckAutoGenerator; private GameType(DeckFormat deckFormat0, boolean isCardPoolLimited0, boolean canSideboard0, boolean addWonCardsMidgame0, String name0, String description0) { + this(deckFormat0, isCardPoolLimited0, canSideboard0, addWonCardsMidgame0, name0, description0, null); } private GameType(DeckFormat deckFormat0, boolean isCardPoolLimited0, boolean canSideboard0, boolean addWonCardsMidgame0, String name0, String description0, Function deckAutoGenerator0) { + final Localizer localizer = forge.util.Localizer.getInstance(); deckFormat = deckFormat0; isCardPoolLimited = isCardPoolLimited0; canSideboard = canSideboard0; addWonCardsMidGame = addWonCardsMidgame0; - name = name0; + name = localizer.getMessage(name0); + if (description0.length()>0) { + description0 = localizer.getMessage(description0); + } description = description0; deckAutoGenerator = deckAutoGenerator0; } diff --git a/forge-gui-desktop/src/main/java/forge/control/FControl.java b/forge-gui-desktop/src/main/java/forge/control/FControl.java index d603c960e6c..43ce596fb32 100644 --- a/forge-gui-desktop/src/main/java/forge/control/FControl.java +++ b/forge-gui-desktop/src/main/java/forge/control/FControl.java @@ -85,10 +85,10 @@ public enum FControl implements KeyEventDispatcher { private CloseAction closeAction; private final List currentMatches = Lists.newArrayList(); - public static enum CloseAction { + public enum CloseAction { NONE, CLOSE_SCREEN, - EXIT_FORGE; + EXIT_FORGE } private boolean hasCurrentMatches() { @@ -122,7 +122,7 @@ public enum FControl implements KeyEventDispatcher { * switches between various display screens in that JFrame. Controllers are * instantiated separately by each screen's top level view class. */ - private FControl() { + FControl() { Singletons.getView().getFrame().addWindowListener(new WindowAdapter() { @Override public void windowClosing(final WindowEvent e) { @@ -187,10 +187,7 @@ public enum FControl implements KeyEventDispatcher { if (!FOptionPane.showConfirmDialog(userPrompt, action + " Forge", action, "Cancel", !hasCurrentMatches)) { //default Yes if no game active return false; } - if (!CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(true)) { - return false; - } - return true; + return CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(true); } public boolean restartForge() { @@ -395,9 +392,8 @@ public enum FControl implements KeyEventDispatcher { else { altKeyLastDown = false; if (e.getID() == KeyEvent.KEY_PRESSED) { - if (forgeMenu.handleKeyEvent(e)) { //give Forge menu the chance to handle the key event - return true; - } + //give Forge menu the chance to handle the key event + return forgeMenu.handleKeyEvent(e); } else if (e.getID() == KeyEvent.KEY_RELEASED) { if (e.getKeyCode() == KeyEvent.VK_CONTEXT_MENU) { diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java index c6366e97052..a75f9a27318 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java @@ -12,6 +12,7 @@ import com.google.common.base.Predicate; import forge.deck.*; import forge.game.GameFormat; import forge.item.PaperCard; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import org.apache.commons.lang3.StringUtils; @@ -46,7 +47,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { private boolean isForCommander; private final DeckManager lstDecks; - private final FLabel btnViewDeck = new FLabel.ButtonBuilder().text("View Deck").fontSize(14).build(); + final Localizer localizer = Localizer.getInstance(); + + private final FLabel btnViewDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblViewDeck")).fontSize(14).build(); private final FLabel btnRandom = new FLabel.ButtonBuilder().fontSize(14).build(); private boolean isAi; @@ -119,7 +122,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { lstDecks.setPool(decks); lstDecks.setup(config); - btnRandom.setText("Random Deck"); + btnRandom.setText(localizer.getMessage("lblRandomDeck")); btnRandom.setCommand(new UiCommand() { @Override public void run() { diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/IDecksComboBoxListener.java b/forge-gui-desktop/src/main/java/forge/deckchooser/IDecksComboBoxListener.java index 0e5007e3cdb..44ac9f74210 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/IDecksComboBoxListener.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/IDecksComboBoxListener.java @@ -1,5 +1,5 @@ package forge.deckchooser; public interface IDecksComboBoxListener { - public void deckTypeSelected(DecksComboBoxEvent ev); + void deckTypeSelected(DecksComboBoxEvent ev); } diff --git a/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java b/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java index fcc987405be..808480b5a31 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java +++ b/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java @@ -105,7 +105,7 @@ public enum FNetOverlay implements IOnlineChatInterface { /** * Semi-transparent overlay panel. Should be used with layered panes. */ - private FNetOverlay() { + FNetOverlay() { window.setTitle("Chat"); window.setVisible(false); window.setBackground(FSkin.getColor(FSkin.Colors.CLR_ZEBRA)); diff --git a/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java b/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java index 8070f65d3fa..070d21fd1c0 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java +++ b/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java @@ -250,7 +250,7 @@ public class GuiChoose { final Callable> callable = new Callable>() { @Override - public List call() throws Exception { + public List call() { final DualListBox dual = new DualListBox(remainingObjectsMin, remainingObjectsMax, sourceChoices, destChoices, matchUI); dual.setSecondColumnLabelText(top); @@ -290,7 +290,7 @@ public class GuiChoose { gui.setSelectables(manipulable); final Callable> callable = new Callable>() { @Override - public List call() throws Exception { + public List call() { ListCardArea tempArea = ListCardArea.show(gui,title,cards,manipulable,toTop,toBottom,toAnywhere); // tempArea.pack(); tempArea.show(); diff --git a/forge-gui-desktop/src/main/java/forge/gui/ImportDialog.java b/forge-gui-desktop/src/main/java/forge/gui/ImportDialog.java index d39116f945d..80c46b6730b 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/ImportDialog.java +++ b/forge-gui-desktop/src/main/java/forge/gui/ImportDialog.java @@ -490,7 +490,7 @@ public class ImportDialog { } @Override - protected Void doInBackground() throws Exception { + protected Void doInBackground() { Timer timer = null; try { @@ -867,7 +867,7 @@ public class ImportDialog { } @Override - protected Void doInBackground() throws Exception { + protected Void doInBackground() { try { // working with textbox text is thread safe _operationLog.setText(""); diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java b/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java index e119267e83c..5bd1a176508 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java @@ -155,12 +155,12 @@ public enum EDocID { // End enum declarations, start enum methods. private IVDoc vDoc; - private EDocID() { + EDocID() { this(null); } /** @param doc0   {@link forge.gui.framework.IVDoc} */ - private EDocID(final IVDoc doc0) { + EDocID(final IVDoc doc0) { this.vDoc = doc0; } diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/RectangleOfDouble.java b/forge-gui-desktop/src/main/java/forge/gui/framework/RectangleOfDouble.java index bf888cdb7c3..8007da5985d 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/RectangleOfDouble.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/RectangleOfDouble.java @@ -53,9 +53,7 @@ public class RectangleOfDouble { return false; if (Double.doubleToLongBits(x) != Double.doubleToLongBits(other.x)) return false; - if (Double.doubleToLongBits(y) != Double.doubleToLongBits(other.y)) - return false; - return true; + return Double.doubleToLongBits(y) == Double.doubleToLongBits(other.y); } public final double getX() { diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java index b19618578d8..b809f33f005 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SLayoutIO.java @@ -242,7 +242,7 @@ public final class SLayoutIO { } catch (final Exception e) { try { - if (reader != null) { reader.close(); }; + if (reader != null) { reader.close(); } } catch (final XMLStreamException x) { e.printStackTrace(); @@ -556,7 +556,7 @@ public final class SLayoutIO { EDocID selectedId = null; double x0 = 0, y0 = 0, w0 = 0, h0 = 0; - MapOfLists model = new HashMapOfLists(CollectionSuppliers.arrayLists()); + MapOfLists model = new HashMapOfLists(CollectionSuppliers.arrayLists()); LayoutInfo currentKey = null; while (null != reader && reader.hasNext()) { diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SOverflowUtil.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SOverflowUtil.java index 37479eb44d8..eac9bc6e99c 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/SOverflowUtil.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SOverflowUtil.java @@ -65,7 +65,7 @@ public final class SOverflowUtil { public void mouseClicked(final MouseEvent e) { final JPanel pnl = FView.SINGLETON_INSTANCE.getPnlTabOverflow(); if (pnl != null) { - pnl.setVisible(pnl.isVisible() ? false : true); + pnl.setVisible(!pnl.isVisible()); } } }; diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java index b0a5cbb5479..a8c3952e198 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java @@ -90,7 +90,7 @@ public final class SRearrangingUtil { // If only a single tab, select it, and add it to docsToMove. if (e.getSource() instanceof DragTab) { for (final IVDoc vDoc : cellSrc.getDocs()) { - if (vDoc.getTabLabel() == (DragTab) (e.getSource())) { + if (vDoc.getTabLabel() == e.getSource()) { cellSrc.setSelected(vDoc); docsToMove.add(vDoc); } diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java b/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java index 31604a9e53a..8a0f5236431 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java @@ -1130,7 +1130,7 @@ public abstract class ItemManager extends JPanel implem * @param unique - if true, the editor will be set to the "unique item names only" mode. */ public void setWantUnique(final boolean unique) { - this.wantUnique = this.alwaysNonUnique ? false : unique; + this.wantUnique = !this.alwaysNonUnique && unique; } /** diff --git a/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java b/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java index eb3896160c3..2a91e454ff6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java @@ -18,7 +18,7 @@ public enum CBazaarUI implements ICDoc { * @param v0   {@link forge.screens.bazaar.VBazaarUI} * @param bazaar */ - private CBazaarUI() { + CBazaarUI() { } /** Populate all stalls, and select first one. */ diff --git a/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java b/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java index 04d7b61e637..8ce5ad6f72b 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java @@ -33,7 +33,7 @@ public enum VBazaarUI implements IVTopLevelUI { /** Lays out containers and borders for resizeable layout and * instantiates top-level controller for bazaar UI. * @param bazaar0 */ - private VBazaarUI() { + VBazaarUI() { } /** */ diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java index c7ba09ac71e..674b9c9f191 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java @@ -66,7 +66,7 @@ public enum CDeckEditorUI implements ICDoc { private final VBrawlDecks vBrawlDecks; private final VTinyLeadersDecks vTinyLeadersDecks; - private CDeckEditorUI() { + CDeckEditorUI() { screenChildControllers = new HashMap>(); this.cDetailPicture = new CDetailPicture(); this.vAllDecks = VAllDecks.SINGLETON_INSTANCE; @@ -153,7 +153,7 @@ public enum CDeckEditorUI implements ICDoc { } private interface _MoveAction { - public void move(Iterable> items); + void move(Iterable> items); } private void moveSelectedItems(final ItemManager itemManager, final _MoveAction moveAction, final int maxQty) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCardCatalog.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCardCatalog.java index 0df527fb50d..26bc59070fc 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCardCatalog.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCardCatalog.java @@ -12,7 +12,7 @@ public enum CCardCatalog implements ICDoc { /** */ SINGLETON_INSTANCE; - private CCardCatalog() { + CCardCatalog() { } //========== Overridden methods diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCurrentDeck.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCurrentDeck.java index d1c8b08cb11..32bef0c5c29 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCurrentDeck.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCurrentDeck.java @@ -39,7 +39,7 @@ public enum CCurrentDeck implements ICDoc { //========== Overridden methods - private CCurrentDeck() { + CCurrentDeck() { final FileFilter[] defaultFilters = fileChooser.getChoosableFileFilters(); for (final FileFilter defFilter : defaultFilters) { fileChooser.removeChoosableFileFilter(defFilter); diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCardCatalog.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCardCatalog.java index 76798bd39f6..56349e757b6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCardCatalog.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCardCatalog.java @@ -30,7 +30,7 @@ public enum VCardCatalog implements IVDoc { //========== Constructor /** */ - private VCardCatalog() { + VCardCatalog() { } //========== Overridden from IVDoc diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCurrentDeck.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCurrentDeck.java index 37d8e2594af..baed1befa8e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCurrentDeck.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCurrentDeck.java @@ -88,7 +88,7 @@ public enum VCurrentDeck implements IVDoc { //========== Constructor - private VCurrentDeck() { + VCurrentDeck() { // Header area pnlHeader.setOpaque(false); pnlHeader.setLayout(new MigLayout("insets 3, gapx 3, hidemode 3")); diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VDeckgen.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VDeckgen.java index fdbde89d2fe..924ffabc641 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VDeckgen.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VDeckgen.java @@ -43,7 +43,7 @@ public enum VDeckgen implements IVDoc { .opaque(true).hoverable(true).build(); //========== Constructor - private VDeckgen() { + VDeckgen() { } //========== Overridden methods diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VProbabilities.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VProbabilities.java index f15aeb8da3a..2191837fb80 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VProbabilities.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VProbabilities.java @@ -55,7 +55,7 @@ public enum VProbabilities implements IVDoc { private final JPanel pnlLibrary = new JPanel(new MigLayout("insets 0, gap 0, wrap")); //========== Constructor - private VProbabilities() { + VProbabilities() { pnlContent.setOpaque(false); pnlHand.setOpaque(false); pnlLibrary.setOpaque(false); diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java index b8f0497d23d..ee215c8ebc9 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java @@ -86,7 +86,7 @@ public enum VStatistics implements IVDoc { private final FScrollPane scroller = new FScrollPane(pnlStats, false); //========== Constructor - private VStatistics() { + VStatistics() { scroller.getViewport().setBorder(null); // Color stats diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/EMenuGroup.java b/forge-gui-desktop/src/main/java/forge/screens/home/EMenuGroup.java index 906c8a845a0..7bc3b355148 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/EMenuGroup.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/EMenuGroup.java @@ -18,7 +18,7 @@ public enum EMenuGroup { private final String strTitle; /** @param {@link java.lang.String} */ - private EMenuGroup(final String s0) { strTitle = s0; } + EMenuGroup(final String s0) { strTitle = s0; } /** @return {@link java.lang.String} */ public String getTitle() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java b/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java index eeadf3c06c5..c41c4db5c7d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java @@ -248,7 +248,7 @@ public class PlayerPanel extends FPanel { lobby.updateVanguardList(index); } }; - }; + } /** * Listens to name text fields and gives the appropriate player focus. Also @@ -388,7 +388,7 @@ public class PlayerPanel extends FPanel { public Set getAiOptions() { return isSimulatedAi() ? ImmutableSet.of(AIOption.USE_SIMULATION) - : Collections.emptySet(); + : Collections.emptySet(); } private boolean isSimulatedAi() { return radioAi.isSelected() && radioAiUseSimulation.isSelected(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java b/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java index bfc1b2cb441..3fe77120d36 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java @@ -98,7 +98,7 @@ public enum VHomeUI implements IVTopLevelUI { .iconAlignX(SwingConstants.CENTER) .iconInBackground(true).iconScaleFactor(1.0).build(); - private VHomeUI() { + VHomeUI() { // Add main menu containing logo and menu buttons final JPanel pnlMainMenu = new JPanel(new MigLayout("w 200px!, ax center, insets 0, gap 0, wrap")); pnlMainMenu.setOpaque(false); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java index dc4000f2c21..7d3f4e85653 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java @@ -24,6 +24,7 @@ import forge.toolbox.*; import forge.toolbox.FSkin.SkinImage; import forge.util.Aggregates; import forge.util.Lang; +import forge.util.Localizer; import forge.util.NameGenerator; import forge.util.gui.SOptionPane; import net.miginfocom.swing.MigLayout; @@ -47,12 +48,13 @@ import java.util.List; public class VLobby implements ILobbyView { static final int MAX_PLAYERS = 8; + final Localizer localizer = Localizer.getInstance(); private static final ForgePreferences prefs = FModel.getPreferences(); // General variables private final GameLobby lobby; private IPlayerChangeListener playerChangeListener = null; - private final LblHeader lblTitle = new LblHeader("Sanctioned Format: Constructed"); + private final LblHeader lblTitle = new LblHeader(localizer.getMessage("lblHeaderConstructedMode")); private int activePlayersNum = 0; private int playerWithFocus = 0; // index of the player that currently has focus @@ -81,13 +83,13 @@ public class VLobby implements ILobbyView { private final FScrollPanel playersScroll = new FScrollPanel(new MigLayout("insets 0, gap 0, wrap, hidemode 3"), true); private final List playerPanels = new ArrayList(MAX_PLAYERS); - private final FLabel addPlayerBtn = new FLabel.ButtonBuilder().fontSize(14).text("Add a Player").build(); + private final FLabel addPlayerBtn = new FLabel.ButtonBuilder().fontSize(14).text(localizer.getMessage("lblAddAPlayer")).build(); // Deck frame elements private final JPanel decksFrame = new JPanel(new MigLayout("insets 0, gap 0, wrap, hidemode 3")); private final List deckChoosers = Lists.newArrayListWithCapacity(MAX_PLAYERS); - private final FCheckBox cbSingletons = new FCheckBox("Singleton Mode"); - private final FCheckBox cbArtifacts = new FCheckBox("Remove Artifacts"); + private final FCheckBox cbSingletons = new FCheckBox(localizer.getMessage("cbSingletons")); + private final FCheckBox cbArtifacts = new FCheckBox(localizer.getMessage("cbRemoveArtifacts")); private final Deck[] decks = new Deck[MAX_PLAYERS]; // Variants @@ -146,7 +148,7 @@ public class VLobby implements ILobbyView { } variantsPanel.setOpaque(false); - variantsPanel.add(newLabel("Variants:")); + variantsPanel.add(newLabel(localizer.getMessage("lblVariants"))); for (final VariantCheckBox vcb : vntBoxes) { variantsPanel.add(vcb); } @@ -431,7 +433,7 @@ public class VLobby implements ILobbyView { deckChoosers.add(mainChooser); // Scheme deck list - buildDeckPanel("Scheme Deck", playerIndex, schemeDeckLists, schemeDeckPanels, new ListSelectionListener() { + buildDeckPanel(localizer.getMessage("lblSchemeDeck"), playerIndex, schemeDeckLists, schemeDeckPanels, new ListSelectionListener() { @Override public final void valueChanged(final ListSelectionEvent e) { selectSchemeDeck(playerIndex); } @@ -479,14 +481,14 @@ public class VLobby implements ILobbyView { });*/ // Planar deck list - buildDeckPanel("Planar Deck", playerIndex, planarDeckLists, planarDeckPanels, new ListSelectionListener() { + buildDeckPanel(localizer.getMessage("lblPlanarDeck"), playerIndex, planarDeckLists, planarDeckPanels, new ListSelectionListener() { @Override public final void valueChanged(final ListSelectionEvent e) { selectPlanarDeck(playerIndex); } }); - + // Vanguard avatar list - buildDeckPanel("Vanguard Avatar", playerIndex, vgdAvatarLists, vgdPanels, new ListSelectionListener() { + buildDeckPanel(localizer.getMessage("lblVanguardAvatar"), playerIndex, vgdAvatarLists, vgdPanels, new ListSelectionListener() { @Override public final void valueChanged(final ListSelectionEvent e) { selectVanguardAvatar(playerIndex); } @@ -872,8 +874,8 @@ public class VLobby implements ILobbyView { private static final ImmutableList genderOptions = ImmutableList.of("Male", "Female", "Any"), typeOptions = ImmutableList.of("Fantasy", "Generic", "Any"); final String getNewName() { - final String title = "Get new random name"; - final String message = "What type of name do you want to generate?"; + final String title = localizer.getMessage("lblGetNewRandomName"); + final String message = localizer.getMessage("lbltypeofName"); final SkinImage icon = FOptionPane.QUESTION_ICON; final int genderIndex = FOptionPane.showOptionDialog(message, title, icon, genderOptions, 2); @@ -892,8 +894,8 @@ public class VLobby implements ILobbyView { final List usedNames = getPlayerNames(); do { newName = NameGenerator.getRandomName(gender, type, usedNames); - confirmMsg = "Would you like to use the name \"" + newName + "\", or try again?"; - } while (!FOptionPane.showConfirmDialog(confirmMsg, title, "Use this name", "Try again", true)); + confirmMsg = localizer.getMessage("lblconfirmName").replace("%n","\"" +newName + "\""); + } while (!FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true)); return newName; } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java index a6f715c2ea4..974f3365f74 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java @@ -106,7 +106,7 @@ public enum VSubmenuGauntletBuild implements IVSubmenu { .icon(FSkin.getIcon(FSkinProp.ICO_OPEN)) .text(" ").hoverable(true).build(); - private VSubmenuGauntletBuild() { + VSubmenuGauntletBuild() { lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); // File handling panel diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletContests.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletContests.java index 68f48dc66c6..aee76868438 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletContests.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletContests.java @@ -54,7 +54,7 @@ public enum VSubmenuGauntletContests implements IVSubmenu { private final StartButton btnStart = new StartButton(); - private VSubmenuGauntletLoad() { + VSubmenuGauntletLoad() { lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java index d3b7d0f2084..065233c3da5 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java @@ -78,7 +78,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { private final StartButton btnStart = new StartButton(); - private VSubmenuGauntletQuick() { + VSubmenuGauntletQuick() { lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); boxUserDecks.setSelected(true); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java index 76ecd651a30..1a843a739f7 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java @@ -54,7 +54,6 @@ public enum CSubmenuOnlineLobby implements ICDoc, IMenuProvider { } else { BugReporter.reportException(ex); } - ; } } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java index f589f204c7d..0b9c344906a 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java @@ -36,7 +36,7 @@ public enum VSubmenuOnlineLobby implements IVSubmenu, IOnli private final JPanel pnlTitle = new JPanel(new MigLayout()); private final StopButton btnStop = new StopButton(); - private VSubmenuOnlineLobby() { + VSubmenuOnlineLobby() { } public ILobbyView setLobby(final GameLobby lobby) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java index f26f22767fa..abb6b6fb5fd 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java @@ -81,7 +81,7 @@ public enum VSubmenuChallenges implements IVSubmenu, IVQuest /** * Constructor. */ - private VSubmenuChallenges() { + VSubmenuChallenges() { final String constraints = "h 30px!, gap 0 0 0 5px"; pnlStats.setLayout(new MigLayout("insets 0, gap 0, wrap, hidemode 3")); pnlStats.add(btnUnlock, "w 150px!, h 30px!, gap 0 0 0 10px"); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDecks.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDecks.java index 7c50dcaf707..1083c0c4ed4 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDecks.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDecks.java @@ -60,7 +60,7 @@ public enum VSubmenuQuestDecks implements IVSubmenu { /** * Constructor. */ - private VSubmenuQuestDecks() { + VSubmenuQuestDecks() { lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); lstDecks.setCaption("Quest Decks"); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java index 0f56c273032..2500ab4995e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java @@ -69,7 +69,7 @@ public enum VSubmenuQuestPrefs implements IVSubmenu { DIFFICULTY, /** */ BOOSTER, /** */ SHOP, /***/ - DRAFT_TOURNAMENTS; + DRAFT_TOURNAMENTS } /** diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java index e56f713e5d6..af71fda0b46 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java @@ -29,6 +29,7 @@ import forge.properties.ForgePreferences.FPref; import forge.screens.deckeditor.CDeckEditorUI; import forge.screens.deckeditor.controllers.CEditorDraftingProcess; import forge.toolbox.FOptionPane; +import forge.util.Localizer; /** * Controls the draft submenu in the home UI. @@ -114,11 +115,12 @@ public enum CSubmenuDraft implements ICDoc { } private void startGame(final GameType gameType) { + final Localizer localizer = Localizer.getInstance(); final boolean gauntlet = !VSubmenuDraft.SINGLETON_INSTANCE.isSingleSelected(); final DeckProxy humanDeck = VSubmenuDraft.SINGLETON_INSTANCE.getLstDecks().getSelectedItem(); if (humanDeck == null) { - FOptionPane.showErrorDialog("No deck selected for human.\n(You may need to build a new deck)", "No Deck"); + FOptionPane.showErrorDialog(localizer.getMessage("lblNoDeckSelected"), localizer.getMessage("lblNoDeck")); return; } @@ -179,8 +181,9 @@ public enum CSubmenuDraft implements ICDoc { /** */ private void setupDraft() { + final Localizer localizer = Localizer.getInstance(); // Determine what kind of booster draft to run - final LimitedPoolType poolType = GuiChoose.oneOrNone("Choose Draft Format", LimitedPoolType.values()); + final LimitedPoolType poolType = GuiChoose.oneOrNone(localizer.getMessage("lblChooseDraftFormat"), LimitedPoolType.values()); if (poolType == null) { return; } final BoosterDraft draft = BoosterDraft.createDraft(poolType); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java index b35671e5d1b..6ca945c0a28 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java @@ -34,7 +34,7 @@ public enum VSubmenuConstructed implements IVSubmenu { private final DragTab tab = new DragTab(localizer.getMessage("lblConstructedMode")); private final GameLobby lobby = new LocalLobby(); private final VLobby vLobby = new VLobby(lobby); - private VSubmenuConstructed() { + VSubmenuConstructed() { lobby.setListener(vLobby); vLobby.setPlayerChangeListener(new IPlayerChangeListener() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuDraft.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuDraft.java index acf39f92879..4111f83ba8b 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuDraft.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuDraft.java @@ -5,6 +5,7 @@ import java.awt.Font; import javax.swing.*; import forge.toolbox.*; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import forge.game.GameType; import forge.gui.framework.DragCell; @@ -28,50 +29,51 @@ import forge.screens.home.VHomeUI.PnlDisplay; public enum VSubmenuDraft implements IVSubmenu { /** */ SINGLETON_INSTANCE; - + final Localizer localizer = Localizer.getInstance(); // Fields used with interface IVDoc private DragCell parentCell; - private final DragTab tab = new DragTab("Booster Draft"); + + private final DragTab tab = new DragTab(localizer.getMessage("lblBoosterDraft")); /** */ - private final LblHeader lblTitle = new LblHeader("Sanctioned Format: Booster Draft"); + private final LblHeader lblTitle = new LblHeader(localizer.getMessage("lblHeaderBoosterDraft")); private final JPanel pnlStart = new JPanel(); private final StartButton btnStart = new StartButton(); private final DeckManager lstDecks = new DeckManager(GameType.Draft, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()); - private final JRadioButton radSingle = new FRadioButton("Play an opponent"); - private final JRadioButton radAll = new FRadioButton("Play all 7 opponents"); + private final JRadioButton radSingle = new FRadioButton(localizer.getMessage("lblPlayAnOpponent")); + private final JRadioButton radAll = new FRadioButton(localizer.getMessage("lblPlayAll7opponents")); private final JComboBox cbOpponent = new JComboBox(); private final JLabel lblInfo = new FLabel.Builder() .fontAlign(SwingConstants.LEFT).fontSize(16).fontStyle(Font.BOLD) - .text("Build or select a deck").build(); + .text(localizer.getMessage("lblBuildorselectadeck")).build(); private final FLabel lblDir1 = new FLabel.Builder() - .text("In Draft mode, three booster packs are rotated around eight players.") + .text(localizer.getMessage("lblDraftText1")) .fontSize(12).build(); private final FLabel lblDir2 = new FLabel.Builder() - .text("Build a deck from the cards you choose. The AI will do the same.") + .text(localizer.getMessage("lblDraftText2")) .fontSize(12).build(); private final FLabel lblDir3 = new FLabel.Builder() - .text("Then, play against one or all of the AI opponents.") + .text(localizer.getMessage("lblDraftText3")) .fontSize(12).build(); - private final FLabel btnBuildDeck = new FLabel.ButtonBuilder().text("New Booster Draft Game").fontSize(16).build(); + private final FLabel btnBuildDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblNewBoosterDraftGame")).fontSize(16).build(); /** * Constructor. */ - private VSubmenuDraft() { + VSubmenuDraft() { btnStart.setEnabled(false); lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); - lstDecks.setCaption("Draft Decks"); + lstDecks.setCaption(localizer.getMessage("lblDraftDecks")); final JXButtonPanel grpPanel = new JXButtonPanel(); grpPanel.add(radSingle, "w 200px!, h 30px!"); @@ -98,7 +100,7 @@ public enum VSubmenuDraft implements IVSubmenu { */ @Override public String getMenuTitle() { - return "Booster Draft"; + return localizer.getMessage("lblBoosterDraft"); } /* (non-Javadoc) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java index 486d16860c9..1aa9040fee7 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java @@ -12,6 +12,7 @@ import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; import forge.toolbox.*; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import forge.assets.FSkinProp; import forge.game.GameType; @@ -38,40 +39,41 @@ import forge.toolbox.FSkin.SkinnedTextPane; public enum VSubmenuSealed implements IVSubmenu { /** */ SINGLETON_INSTANCE; + final Localizer localizer = Localizer.getInstance(); // Fields used with interface IVDoc private DragCell parentCell; - private final DragTab tab = new DragTab("Sealed Deck"); + private final DragTab tab = new DragTab(localizer.getMessage("lblSealedDeck")); /** */ - private final LblHeader lblTitle = new LblHeader("Sanctioned Format: Sealed Deck"); + private final LblHeader lblTitle = new LblHeader(localizer.getMessage("lblHeaderSealed")); private final JPanel pnlStart = new JPanel(); private final StartButton btnStart = new StartButton(); private final DeckManager lstDecks = new DeckManager(GameType.Sealed, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()); - private final JRadioButton radSingle = new FRadioButton("Play an opponent"); - private final JRadioButton radAll = new FRadioButton("Play all 7 opponents"); + private final JRadioButton radSingle = new FRadioButton(localizer.getMessage("lblPlayAnOpponent")); + private final JRadioButton radAll = new FRadioButton(localizer.getMessage("lblPlayAll7opponents")); private final JComboBox cbOpponent = new JComboBox(); private final FLabel lblInfo = new FLabel.Builder() .fontAlign(SwingConstants.LEFT).fontSize(16).fontStyle(Font.BOLD) - .text("Select a game, or build a new one").build(); + .text(localizer.getMessage("lblSealedText1")).build(); private final FLabel lblDir1 = new FLabel.Builder() - .text("In Sealed mode, you build a deck from booster packs (maximum 10).") + .text(localizer.getMessage("lblSealedText2")) .fontSize(12).build(); private final FLabel lblDir2 = new FLabel.Builder() - .text("Build a deck from the cards you receive. A number of AI opponents will do the same.") + .text(localizer.getMessage("lblSealedText3")) .fontSize(12).build(); private final FLabel lblDir3 = new FLabel.Builder() - .text("Then, you may play against each of the AI opponents, or one of the opponents.") + .text(localizer.getMessage("lblSealedText4")) .fontSize(12).build(); - private final FLabel btnBuildDeck = new FLabel.ButtonBuilder().text("Build New Sealed Deck").fontSize(16).build(); + private final FLabel btnBuildDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("btnBuildNewSealedDeck")).fontSize(16).build(); private final FLabel btnDirections = new FLabel.Builder() .fontSize(16).opaque(true).hoverable(true) @@ -80,11 +82,11 @@ public enum VSubmenuSealed implements IVSubmenu { /** * Constructor. */ - private VSubmenuSealed() { + VSubmenuSealed() { btnStart.setEnabled(false); lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); - lstDecks.setCaption("Sealed Decks"); + lstDecks.setCaption(localizer.getMessage("lblSealedDecks")); } /* (non-Javadoc) @@ -135,7 +137,7 @@ public enum VSubmenuSealed implements IVSubmenu { */ @Override public String getMenuTitle() { - return "Sealed Deck"; + return localizer.getMessage("lblSealedDeck"); } /* (non-Javadoc) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuWinston.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuWinston.java index 9e6dcfafbcf..790c98f2b62 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuWinston.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuWinston.java @@ -70,7 +70,7 @@ public enum VSubmenuWinston implements IVSubmenu { /** * Constructor. */ - private VSubmenuWinston() { + VSubmenuWinston() { lstAI.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); btnStart.setEnabled(false); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index 56caa7fa3f0..47585f63f08 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -233,6 +233,8 @@ public enum CSubmenuPreferences implements ICDoc { initializeCounterDisplayLocationComboBox(); initializeGraveyardOrderingComboBox(); initializePlayerNameButton(); + initializeDefaultLanguageComboBox(); + } /* (non-Javadoc) @@ -352,6 +354,15 @@ public enum CSubmenuPreferences implements ICDoc { panel.setComboBox(comboBox, Singletons.getControl().getCloseAction()); } + private void initializeDefaultLanguageComboBox() { + + final String [] choices = {"en-US", "es-ES", "de-DE"}; + final FPref userSetting = FPref.UI_LANGUAGE; + final FComboBoxPanel panel = this.view.getCbpDefaultLanguageComboBoxPanel(); + final FComboBox comboBox = createComboBox(choices, userSetting); + final String selectedItem = this.prefs.getPref(userSetting); + panel.setComboBox(comboBox, selectedItem); + } private void initializeDefaultFontSizeComboBox() { final String [] choices = {"10", "11", "12", "13", "14", "15", "16", "17", "18"}; final FPref userSetting = FPref.UI_DEFAULT_FONT_SIZE; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java index 7ea7f2b9efc..175157e312e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java @@ -68,7 +68,7 @@ public enum VSubmenuAchievements implements IVSubmenu { private final FScrollPane scroller = new FScrollPane(trophyCase, false, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - private VSubmenuAchievements() { + VSubmenuAchievements() { lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); trophyCase.setMinimumSize(new Dimension(FSkinProp.IMG_TROPHY_SHELF.getWidth(), 0)); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAvatars.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAvatars.java index 7f91ab339d1..ce3bc02c130 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAvatars.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAvatars.java @@ -38,7 +38,7 @@ public enum VSubmenuAvatars implements IVSubmenu { private final FLabel lblAvatarAI = new FLabel.Builder().hoverable(true).selectable(true) .iconScaleFactor(0.99f).iconInBackground(true).build(); - private VSubmenuAvatars() { + VSubmenuAvatars() { populateAvatars(); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java index f1c931db72f..96e5e342a08 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java @@ -67,6 +67,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { * Constructor. */ VSubmenuDownloaders() { + final Localizer localizer = Localizer.getInstance(); final String constraintsLBL = "w 90%!, h 20px!, center, gap 0 0 3px 8px"; final String constraintsBTN = "h 30px!, w 50%!, center"; @@ -106,7 +107,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { pnlContent.add(label, "w 90%!, h 25px!, center, gap 0 0 0 36px"); } - + pnlContent.add(btnListImageData, constraintsBTN); pnlContent.add(_makeLabel(localizer.getMessage("lblListImageData")), constraintsLBL); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java index 8a1b8bc3542..b1cebaa82a6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java @@ -119,6 +119,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final FComboBoxPanel cbpCounterDisplayType = new FComboBoxPanel<>(localizer.getMessage("cbpCounterDisplayType")+":"); private final FComboBoxPanel cbpCounterDisplayLocation =new FComboBoxPanel<>(localizer.getMessage("cbpCounterDisplayLocation")+":"); private final FComboBoxPanel cbpGraveyardOrdering = new FComboBoxPanel<>(localizer.getMessage("cbpGraveyardOrdering")+":"); + private final FComboBoxPanel cbpDefaultLanguage = new FComboBoxPanel<>(localizer.getMessage("cbpSelectLanguage")+":"); /** * Constructor. @@ -152,6 +153,10 @@ public enum VSubmenuPreferences implements IVSubmenu { // General Configuration pnlPrefs.add(new SectionLabel(localizer.getMessage("GeneralConfiguration")), sectionConstraints); + // language + pnlPrefs.add(cbpDefaultLanguage, comboBoxConstraints); + pnlPrefs.add(new NoteLabel(localizer.getMessage("nlSelectLanguage")), descriptionConstraints); + pnlPrefs.add(getPlayerNamePanel(), titleConstraints + ", h 26px!"); pnlPrefs.add(new NoteLabel(localizer.getMessage("nlPlayerName")), descriptionConstraints); @@ -648,6 +653,11 @@ public enum VSubmenuPreferences implements IVSubmenu { return cbpDefaultFontSize; } + public FComboBoxPanel getCbpDefaultLanguageComboBoxPanel() { + return cbpDefaultLanguage; + } + + public FComboBoxPanel getAutoYieldModeComboBoxPanel() { return cbpAutoYieldMode; } diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java index f2d41735359..ee280f85f0b 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java @@ -155,7 +155,7 @@ public final class CMatchUI this.myDocs.put(EDocID.REPORT_COMBAT, cCombat.getView()); this.myDocs.put(EDocID.REPORT_LOG, cLog.getView()); this.myDocs.put(EDocID.DEV_MODE, getCDev().getView()); - this.myDocs.put(EDocID.BUTTON_DOCK, getCDock().getView());; + this.myDocs.put(EDocID.BUTTON_DOCK, getCDock().getView()); } private void registerDocs() { @@ -703,7 +703,7 @@ public final class CMatchUI FThreads.invokeInEdtNowOrLater(focusRoutine); } else { FThreads.invokeInEdtAndWait(focusRoutine); - }; + } } @Override diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDev.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDev.java index e6e305ed157..a0aeefb6dbc 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDev.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDev.java @@ -196,7 +196,7 @@ public final class CDev implements ICDoc { } }; public void exileCardsFromHand() { - getController().cheat().exileCardsFromHand();; + getController().cheat().exileCardsFromHand(); } private final MouseListener madAddCounter = new MouseAdapter() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDock.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDock.java index 9a120b98d4d..c2fa5676ee9 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDock.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDock.java @@ -51,7 +51,7 @@ public class CDock implements ICDoc { this.view = new VDock(this); } - public enum ArcState { OFF, MOUSEOVER, ON; } + public enum ArcState { OFF, MOUSEOVER, ON} public VDock getView() { return view; @@ -108,7 +108,7 @@ public class CDock implements ICDoc { public void setArcState(final ArcState state) { arcState = state; - while (arcStateIterator.next() != arcState) { /* Put the iterator to the correct value */ }; + while (arcStateIterator.next() != arcState) { /* Put the iterator to the correct value */ } } @Override diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/menus/CardOverlaysMenu.java b/forge-gui-desktop/src/main/java/forge/screens/match/menus/CardOverlaysMenu.java index 92243dc17b0..b18a62ac2c3 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/menus/CardOverlaysMenu.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/menus/CardOverlaysMenu.java @@ -62,7 +62,7 @@ public final class CardOverlaysMenu { toggleShowOverlaySetting(); repaintCardOverlays(); // Enable/disable overlay menu items based on state of "Show" menu. - for (Component c : ((JPopupMenu)showMenu.getParent()).getComponents()) { + for (Component c : showMenu.getParent().getComponents()) { if (c instanceof JMenuItem) { JMenuItem m = (JMenuItem)c; if (m != showMenu) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/menus/DevModeMenu.java b/forge-gui-desktop/src/main/java/forge/screens/match/menus/DevModeMenu.java index 34176d1176d..b24f9c71fca 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/menus/DevModeMenu.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/menus/DevModeMenu.java @@ -24,7 +24,7 @@ public class DevModeMenu implements ActionListener, IDevListener { public DevModeMenu(final CDev controller) { this.controller = controller; controller.addListener(this); - }; + } // Using an enum to avoid having to create multiple // ActionListeners each calling a single method. @@ -49,7 +49,7 @@ public class DevModeMenu implements ActionListener, IDevListener { DEV_CORNER("Developer's Corner"); protected String caption; - private DevMenuItem(final String value) { + DevMenuItem(final String value) { this.caption = value; } protected static DevMenuItem getValue(final String s) { @@ -60,7 +60,7 @@ public class DevModeMenu implements ActionListener, IDevListener { } return null; } - }; + } @Override public void update(final boolean playUnlimitedLands, final boolean mayViewAllCards) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/workshop/CWorkshopUI.java b/forge-gui-desktop/src/main/java/forge/screens/workshop/CWorkshopUI.java index efe34ed4f65..d0d0910394c 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/workshop/CWorkshopUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/workshop/CWorkshopUI.java @@ -41,7 +41,7 @@ public enum CWorkshopUI implements ICDoc, IMenuProvider { /** */ SINGLETON_INSTANCE; - private CWorkshopUI() { + CWorkshopUI() { } /* (non-Javadoc) diff --git a/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardDesigner.java b/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardDesigner.java index cc46cf5a4a0..9c0bc373ed0 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardDesigner.java +++ b/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardDesigner.java @@ -13,7 +13,7 @@ public enum CCardDesigner implements ICDoc { /** */ SINGLETON_INSTANCE; - private CCardDesigner() { + CCardDesigner() { VCardDesigner.SINGLETON_INSTANCE.getBtnSaveCard().setCommand(new Runnable() { @Override public final void run() { CCardScript.SINGLETON_INSTANCE.saveChanges(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardScript.java b/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardScript.java index 68524388e61..e57f61d2e45 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardScript.java +++ b/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CCardScript.java @@ -46,7 +46,7 @@ public enum CCardScript implements ICDoc { private boolean switchInProgress; private boolean refreshing; - private CCardScript() { + CCardScript() { VCardScript.SINGLETON_INSTANCE.getTxtScript().getDocument().addDocumentListener(new DocumentListener() { @Override public void removeUpdate(final DocumentEvent arg0) { @@ -103,7 +103,7 @@ public enum CCardScript implements ICDoc { refreshing = true; final JTextPane txtScript = VCardScript.SINGLETON_INSTANCE.getTxtScript(); txtScript.setText(currentScriptInfo != null ? currentScriptInfo.getText() : ""); - txtScript.setEditable(currentScriptInfo != null ? currentScriptInfo.canEdit() : false); + txtScript.setEditable(currentScriptInfo != null && currentScriptInfo.canEdit()); txtScript.setCaretPosition(0); //keep scrolled to top final StyledDocument doc = VCardScript.SINGLETON_INSTANCE.getDoc(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CWorkshopCatalog.java b/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CWorkshopCatalog.java index b07ffe9cd7d..7a33316d43b 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CWorkshopCatalog.java +++ b/forge-gui-desktop/src/main/java/forge/screens/workshop/controllers/CWorkshopCatalog.java @@ -14,7 +14,7 @@ public enum CWorkshopCatalog implements ICDoc { /** */ SINGLETON_INSTANCE; - private CWorkshopCatalog() { + CWorkshopCatalog() { } //========== Overridden methods diff --git a/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardDesigner.java b/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardDesigner.java index 59242df3921..6bb6f7771bb 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardDesigner.java +++ b/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardDesigner.java @@ -34,7 +34,7 @@ public enum VCardDesigner implements IVDoc { .build(); //========== Constructor - private VCardDesigner() { + VCardDesigner() { } public FLabel getBtnSaveCard() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardScript.java b/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardScript.java index 1eb9c113398..08377c19dee 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardScript.java +++ b/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VCardScript.java @@ -35,7 +35,7 @@ public enum VCardScript implements IVDoc { private final Style error; //========== Constructor - private VCardScript() { + VCardScript() { txtScript.setEditable(true); txtScript.setFocusable(true); doc = new DefaultStyledDocument(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VWorkshopCatalog.java b/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VWorkshopCatalog.java index 1f68112172c..02db9e8d7ca 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VWorkshopCatalog.java +++ b/forge-gui-desktop/src/main/java/forge/screens/workshop/views/VWorkshopCatalog.java @@ -36,7 +36,7 @@ public enum VWorkshopCatalog implements IVDoc { private final CDetailPicture cDetailPicture = new CDetailPicture(); //========== Constructor - private VWorkshopCatalog() { + VWorkshopCatalog() { this.cardManager = new CardManager(cDetailPicture, true, false); this.cardManager.setCaption("Catalog"); final Iterable allCards = Iterables.concat(FModel.getMagicDb().getCommonCards(), FModel.getMagicDb().getVariantCards()); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FAbsolutePositioner.java b/forge-gui-desktop/src/main/java/forge/toolbox/FAbsolutePositioner.java index bf55b8f0a14..6c531f9a8cc 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FAbsolutePositioner.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FAbsolutePositioner.java @@ -36,7 +36,7 @@ public enum FAbsolutePositioner { private final JPanel panel = new JPanel(); - private FAbsolutePositioner() { + FAbsolutePositioner() { panel.setOpaque(false); panel.setLayout(null); } diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBox.java b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBox.java index dec663ea096..f83a0e32852 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBox.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBox.java @@ -33,7 +33,7 @@ public class FComboBox extends SkinnedComboBox implements IComboBox { RIGHT (SwingConstants.RIGHT), CENTER (SwingConstants.CENTER); private int value; - private TextAlignment(final int value) { this.value = value; } + TextAlignment(final int value) { this.value = value; } public int getInt() { return value; } } private TextAlignment textAlignment = TextAlignment.LEFT; diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FOptionPane.java b/forge-gui-desktop/src/main/java/forge/toolbox/FOptionPane.java index 5e9e585fa43..1dbd4a37590 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FOptionPane.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FOptionPane.java @@ -104,7 +104,7 @@ public class FOptionPane extends FDialog { FTextField txtInput = null; FComboBox cbInput = null; if (inputOptions == null) { - txtInput = new FTextField.Builder().text(initialInput.toString()).build(); + txtInput = new FTextField.Builder().text(initialInput).build(); inputField = txtInput; } else { cbInput = new FComboBox(inputOptions); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FOverlay.java b/forge-gui-desktop/src/main/java/forge/toolbox/FOverlay.java index eb6ca487f74..e577d0fc086 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FOverlay.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FOverlay.java @@ -47,7 +47,7 @@ public enum FOverlay { /** * Semi-transparent overlay panel. Should be used with layered panes. */ - private FOverlay() { + FOverlay() { pnl.setOpaque(false); pnl.setVisible(false); pnl.setFocusCycleRoot(true); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/IDisposable.java b/forge-gui-desktop/src/main/java/forge/toolbox/IDisposable.java index e750c8334fa..c34e3559437 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/IDisposable.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/IDisposable.java @@ -1,5 +1,5 @@ package forge.toolbox; public interface IDisposable { - public void dispose(); + void dispose(); } diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImagePanel.java b/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImagePanel.java index 36e63d46f8b..1bfcdd2b460 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImagePanel.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImagePanel.java @@ -42,7 +42,8 @@ import java.awt.image.BufferedImage; public class FImagePanel extends JPanel { // See {@code setAutosizeMode} for descriptions. - public enum AutoSizeImageMode {OFF, PANEL, SOURCE}; + public enum AutoSizeImageMode {OFF, PANEL, SOURCE} + AutoSizeImageMode autoSizeMode = AutoSizeImageMode.PANEL; // The original unscaled, unrotated image. @@ -66,7 +67,7 @@ public class FImagePanel extends JPanel { public FImagePanel() { setOpaque(false); setResizeListener(); - }; + } /** * This timer is used to identify when resizing has finished. @@ -326,7 +327,7 @@ public class FImagePanel extends JPanel { if (newScale != this.imageScale) { isResampleEnabled = true; this.imageScale = newScale; - if (newScale == 0) { this.imageScale = 1; }; + if (newScale == 0) { this.imageScale = 1; } if (this.autoSizeMode == AutoSizeImageMode.SOURCE && newScale > 1) { this.imageScale = 1; } diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImageUtil.java b/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImageUtil.java index 70032ea2167..dda59e4f5e6 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImageUtil.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/imaging/FImageUtil.java @@ -143,7 +143,7 @@ public final class FImageUtil { */ public static int getRotationToNearest(int requestedRotation, int nearestRotation) { // Ensure requested rotation falls within -360..0..360 degree range first. - requestedRotation = requestedRotation - (360 * (requestedRotation / (int)360)); + requestedRotation = requestedRotation - (360 * (requestedRotation / 360)); return (int)(Math.rint((double) requestedRotation / nearestRotation) * nearestRotation); } diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/special/CardZoomer.java b/forge-gui-desktop/src/main/java/forge/toolbox/special/CardZoomer.java index aa9af422a1e..180df87dd29 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/special/CardZoomer.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/special/CardZoomer.java @@ -71,7 +71,7 @@ public enum CardZoomer { private boolean isMouseWheelEnabled = false; // ctr - private CardZoomer() { + CardZoomer() { lblFlipcard.setIcon(FSkin.getIcon(FSkinProp.ICO_FLIPCARD)); setMouseButtonListener(); setMouseWheelListener(); @@ -81,7 +81,7 @@ public enum CardZoomer { public void setCard(final CardStateView card, final boolean mayFlip) { this.thisCard = card; this.mayFlip = mayFlip; - this.isInAltState = card == null ? false : card == card.getCard().getAlternateState(); + this.isInAltState = card != null && card == card.getCard().getAlternateState(); } /** diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/special/PhaseLabel.java b/forge-gui-desktop/src/main/java/forge/toolbox/special/PhaseLabel.java index e0f63e21e70..f54b097d4cb 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/special/PhaseLabel.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/special/PhaseLabel.java @@ -36,11 +36,7 @@ public class PhaseLabel extends JLabel { this.addMouseListener(new MouseAdapter() { @Override public void mousePressed(final MouseEvent e) { - if (PhaseLabel.this.enabled) { - PhaseLabel.this.enabled = false; - } else { - PhaseLabel.this.enabled = true; - } + PhaseLabel.this.enabled = !PhaseLabel.this.enabled; } @Override diff --git a/forge-gui-desktop/src/main/java/forge/view/FView.java b/forge-gui-desktop/src/main/java/forge/view/FView.java index 36b95e8f247..7dedd44ee6d 100644 --- a/forge-gui-desktop/src/main/java/forge/view/FView.java +++ b/forge-gui-desktop/src/main/java/forge/view/FView.java @@ -65,7 +65,7 @@ public enum FView { // Tab overflow is for the +X display for extra tabs. private final JPanel pnlTabOverflow = new JPanel(new MigLayout("insets 0, gap 0, wrap")); - private FView() { + FView() { frmSplash = new SplashFrame(); frmDocument.setTitle("Forge: " + BuildInfo.getVersionString()); JOptionPane.setRootFrame(frmDocument); diff --git a/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java b/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java index 4b30c2df247..c5b9f0fad36 100644 --- a/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java +++ b/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java @@ -282,13 +282,13 @@ public class SimulateMatch { System.out.println(TextUtil.concatNoSpace("End Round - ", String.valueOf(curRound))); } curRound = tourney.getActiveRound(); - System.out.println(""); + System.out.println(); System.out.println(TextUtil.concatNoSpace("Round ", String.valueOf(curRound) ," Pairings:")); for(TournamentPairing pairing : tourney.getActivePairings()) { System.out.println(pairing.outputHeader()); } - System.out.println(""); + System.out.println(); } TournamentPairing pairing = tourney.getNextPairing(); @@ -327,7 +327,7 @@ public class SimulateMatch { pairing.setWinner(tp); lastWinner = winner.getName(); System.out.println(TextUtil.concatNoSpace("Match Winner - ", lastWinner, "!")); - System.out.println(""); + System.out.println(); break; } } diff --git a/forge-gui-desktop/src/main/java/forge/view/TimeLimitedCodeBlock.java b/forge-gui-desktop/src/main/java/forge/view/TimeLimitedCodeBlock.java index 15a3f5a188a..579a56ba143 100644 --- a/forge-gui-desktop/src/main/java/forge/view/TimeLimitedCodeBlock.java +++ b/forge-gui-desktop/src/main/java/forge/view/TimeLimitedCodeBlock.java @@ -10,7 +10,7 @@ public class TimeLimitedCodeBlock { public static void runWithTimeout(final Runnable runnable, long timeout, TimeUnit timeUnit) throws Exception { runWithTimeout(new Callable() { @Override - public Object call() throws Exception { + public Object call() { runnable.run(); return null; } diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java index a50c0da434c..9662888a354 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java @@ -463,7 +463,7 @@ public abstract class CardPanelContainer extends SkinnedPanel { } } - public static interface LayoutEventListener { + public interface LayoutEventListener { void doingLayout(); } diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/ListCardArea.java b/forge-gui-desktop/src/main/java/forge/view/arcane/ListCardArea.java index 7724bdeae25..acb07c234c3 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/ListCardArea.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/ListCardArea.java @@ -151,8 +151,7 @@ public class ListCardArea extends FloatingCardArea { for(int i=index+1-(oldIndex>index?1:0); icreate(); + blockingAssignments = ArrayListMultimap.create(); } public DeclareBlockersAction block( CardSpecification attacker, CardSpecification blocker ) { diff --git a/forge-gui-desktop/src/test/java/forge/model/FModelTest.java b/forge-gui-desktop/src/test/java/forge/model/FModelTest.java index 7f11d82e16d..786b96493b5 100644 --- a/forge-gui-desktop/src/test/java/forge/model/FModelTest.java +++ b/forge-gui-desktop/src/test/java/forge/model/FModelTest.java @@ -19,12 +19,10 @@ import java.io.IOException; public class FModelTest { /** * Set up before each test, creating a default model. - * - * @throws FileNotFoundException - * indirectly + * */ @BeforeTest - public final void setUp() throws FileNotFoundException { + public final void setUp() { // this.model = new FModel(); } @@ -61,12 +59,10 @@ public class FModelTest { /** * Test getVersion. - * - * @throws FileNotFoundException - * if something is really wrong + * */ @Test(enabled = false) - public final void test_getVersion() throws FileNotFoundException { + public final void test_getVersion() { final String version = BuildInfo.getVersionString(); Assert.assertEquals(version, "GIT", "version is default"); @@ -74,12 +70,10 @@ public class FModelTest { /** * Test getPreferences. - * - * @throws FileNotFoundException - * indirectly + * */ @Test(enabled = false) - public final void test_getPreferences() throws FileNotFoundException { + public final void test_getPreferences() { final ForgePreferences prefs = FModel.getPreferences(); Assert.assertNotNull(prefs, "prefs instance is not null"); } diff --git a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java index 7a7db24ac7f..1ff8140c537 100644 --- a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java +++ b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java @@ -218,13 +218,13 @@ public class PlanarConquestGeneraterGA extends AbstractGeneticAlgorithm { System.out.println(TextUtil.concatNoSpace("End Round - ", String.valueOf(curRound))); } curRound = tourney.getActiveRound(); - System.out.println(""); + System.out.println(); System.out.println(TextUtil.concatNoSpace("Round ", String.valueOf(curRound) ," Pairings:")); for(TournamentPairing pairing : tourney.getActivePairings()) { System.out.println(pairing.outputHeader()); } - System.out.println(""); + System.out.println(); } TournamentPairing pairing = tourney.getNextPairing(); diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties new file mode 100644 index 00000000000..15a592a69f7 --- /dev/null +++ b/forge-gui/res/languages/de-DE.properties @@ -0,0 +1,360 @@ +language.name=Deutsch (DE) +#SplashScreen.java +splash.loading.examining-cards=Lade Karten, durchsuche Verzeichnis +splash.loading.cards-folders=Lade Karten aus Verzeichnissen +splash.loading.cards-archive=Lade Karten aus Archiv +splash.loading.decks=Lade Decks... +#VSubmenuPreferences.java +Preferences=Einstellungen +btnReset=Alles zurücksetzen +btnDeleteMatchUI=Spiel-Layout zurücksetzen +btnDeleteEditorUI=Editor-Layout zurücksetzen +btnDeleteWorkshopUI=Workshop-Layout zurücksetzen +btnUserProfileUI=Öffne Benutzer-Verzeichnis +btnContentDirectoryUI=Öffne Daten-Verzeichnis +btnResetJavaFutureCompatibilityWarnings=Java-Kompatibilitätswarnung zurücksetzen +btnClearImageCache= Clear Image Cache +btnTokenPreviewer= Token Previewer +btnCopyToClipboard=In Zwischenablage kopieren +cbpSelectLanguage=Language +nlSelectLanguage=Select Language (Excluded Game part. Still a work in progress) (RESTART REQUIRED) +cbRemoveSmall=Entferne kleine Kreaturen +cbCardBased=Nutze kartenabhängige Deckerstellung +cbSingletons=Singleton Modus +cbRemoveArtifacts=Entferne Artefakte +cbAnte=Spiele um Ante +cbAnteMatchRarity=Passe Ante-Seltenheit an +cbEnableAICheats=KI darf betrügen +cbManaBurn=Manabrand +cbManaLostPrompt=Bestätige Leeren des Manapools +cbDevMode=Entwicklermodus +cbLoadCardsLazily=Lade Kartenskripte verzögert +cbLoadHistoricFormats=Aktiviere historische Formate +cbWorkshopSyntax=Workshop Syntax Checker +cbEnforceDeckLegality=Deckkonformität +cbPerformanceMode=Performance Modus +cbFilteredHands=Alternative Starthand +cbImageFetcher=Lade automatisch fehlende Kartenbilder +cbCloneImgSource=Klone zeigen eigenes Kartenbild +cbScaleLarger=Skaliere Bilder größer +cbRenderBlackCardBorders=Zeige schwarzen Rand +cbLargeCardViewers=Nutze große Kartenansicht +cbSmallDeckViewer=Nutze kleine Kartenansicht +cbDisplayFoil=Zeige Foil-Overlay +cbRandomFoil=zufällige Foil-Karten +cbRandomArtInPools=zufällige Kartenbilder in erzeugten Kartensammlungen +cbEnableSounds=Ton aktiviert +cbEnableMusic=Musik aktiviert +cbAltSoundSystem=Nutze alternatives Sound-System +cbUiForTouchScreen=Verbessere Oberfläche für Touchscreens +cbTimedTargOverlay=Aktiviere Zielpfeiloptimierung +cbCompactMainMenu=Nutze kompakteres Seitenmenü +cbDetailedPaymentDesc=Spruchbeschreibung in Bestätigungsfenster +cbPromptFreeBlocks=Freies Block-Management +cbPauseWhileMinimized=Pausiere wenn minimiert +cbCompactPrompt=Kompaktes Bestätigungsfenster +cbEscapeEndsTurn=Nutze Escape für Zugende +cbPreselectPrevAbOrder=Nutze letzte Reihenfolge von Fähigkeiten +cbHideReminderText=Verstecke Erinnerungstext +cbOpenPacksIndiv=Öffne Packs einzeln +cbTokensInSeparateRow=Zeige Spielsteine in extra Reihe +cbStackCreatures=Staple Kreaturen +cbFilterLandsByColorId=Sortiere Länder nach Farben für aktivierte Fähigkeiten +cbShowStormCount=Zeige Sturmzähler im Bestätigungsfenster +cbRemindOnPriority=Optischer Alarm bei Erhalt der Priorität +cbUseSentry=Sende automatisch Fehlerberichte +cbpGameLogEntryType=Spielberichtsumfang +cbpCloseAction=Beenden +cbpDefaultFontSize=Standard Schriftgröße +cbpAiProfiles=KI Persönlichkeit +cbpDisplayCurrentCardColors=Zeige detailierte Kartenfarben +cbpAutoYieldMode=Automatische Bestätigung +cbpCounterDisplayType=Markeranzeige Art +cbpCounterDisplayLocation=Markeranzeige Ort +cbpGraveyardOrdering=Genaue Reihenfolge im Friedhof einhalten +Troubleshooting=Troubleshooting +GeneralConfiguration=Allgemeine Einstellungen +nlPlayerName=Name unter welchem du beim Spielen geführt wirst. +nlCompactMainMenu=Aktiviere, um im Seitenmenü platzsparend immer nur eine Menügruppe anzeigen zu lassen. (Erfordert Neustart) +nlUseSentry=Aktiviere, um automatische Fehlerberichte an die Entwickler zu senden. +GamePlay=Spiel +nlpAiProfiles=Wähle die Spielweise deines KI-Gegners. +nlAnte=Entscheidet, ob um einen Einsatz (Ante) gespielt wird. +nlAnteMatchRarity=Versucht den Spieleinsatz für alle Spieler ungefähr gleich zu halten. +nlEnableAICheats=Erlaubt es der KI zu betrügen um Vorteile zu erlangen. Sofern die spezielle KI dies im Skript unterstützt. +nlManaBurn=Spiele mit Manabrand (wurde mit M10 aus den Regeln entfernt). +nlManaLostPrompt=Aktiviere, um vor Leerung des Manapools eine Warnung zu erhalten. +nlEnforceDeckLegality=Erzwingt eine Deck-Konformität zum gewählten Format (minimale Deckgröße, Anzahl pro Karte im Deck, usw.). +nlPerformanceMode=Schalten zusätzlich Prüfungen auf statische Fähigkeiten ab, um das Spiel zu beschleunigen. Warnung: Kann Probleme mit 'Aufblitzen' bei Karten von KI-Gegner verursachen! +nlFilteredHands=Erzeugt zwei Starthände, und behält die, welche am nächsten an der duchschnittlichen Länderanzahl im Deck ist. (Erfordert Neustart) +nlCloneImgSource=Zeige das originale Kartenbild des Klones statt der geklonten Karte. +nlPromptFreeBlocks=Wenn ein neuer Block nichts kosten würde, dann wird er automatisch bezahlt. +nlPauseWhileMinimized=Wenn aktiviert, pausiert Forge im minimierten Zustand (betrifft hauptsächlich KI gegen KI). +nlEscapeEndsTurn=Wenn aktiviert, funktioniert ESCape als Alternative um den Zug zu beenden. +nlDetailedPaymentDesc=Wenn aktiviert, werden deailierte Spruch-/Fähigkeitsbeschreibungen beim Auswählen von Zielen bzw. Bezahlen von Kosten angezeigt. +nlShowStormCount=Wenn aktiviert,wird ein Sturmzähler angezeigt. +nlRemindOnPriority=Wenn aktiviert, dann blinkt der Auswahlbereich des Spielers bei Erhalt der Priorität. +nlPreselectPrevAbOrder=Wenn aktiviert, wird die letzte genutze Reihenfolge von Fähigkeiten im Auswahlfenster vorbelegt. +nlpGraveyardOrdering=Entscheidet, wann auf die Reihenfolge, in welcher Karten auf den Friedhof wandern, geachtet wird. (Niemals, immer oder nur wenn bestimmte Karten es nötig machen.) +nlpAutoYieldMode=Definiert die Ebene der automatischen Bestätigung (pro Fähigkeit oder pro einzelner Karte). +RandomDeckGeneration=Zufällige Deck-Erstellung +nlRemoveSmall=Verhindert 1/1- und 0/X-Kreaturen in erzeugten Decks +nlSingletons=Verhindert Duplikate von Nicht-Landkarten in erzeugten Decks +nlRemoveArtifacts=Verhindert Artefakte in erzeugten Decks +nlCardBased=Erzeugt stimmigere zufällig erzeugte Decks (Erfordert Neustart) +DeckEditorOptions=Deck Editor Optionen +nlFilterLandsByColorId=Macht es einfacher die richtigen Länder zu finden, wenn Farbfilter genutzt werden. +AdvancedSettings=Erweiterte Optionen +nlDevMode=Ativiert ein Menü mit Funktionen, welche das Testen vereinfachen. +nlWorkshopSyntax=Aktiviert den Syntaxcheck für Kartenskripte im Workshop. Hinweis: Befindet sich noch in der Testphase! +nlGameLogEntryType=Steuert den Umfang der Daten in der Protokolldatei. Sortiert vom geringsten zum gröten Umfang. +nlCloseAction=Steuert was passiert, wenn X oben rechts gedückt wird. +nlLoadCardsLazily=Wenn aktiviert, lädt Forge Kartenscripte erst wenn sie benötigt werden, nicht bei Programmstart. Warnung: Experimental!!! +nlLoadHistoricFormats=Wenn aktiviert, lädt Forge auch ältere Spielformate. Verlängert den Programmstart. +GraphicOptions=Grafik Optionen +nlDefaultFontSize=Die Standardschriftgröße. Alle Schriftelemente werden werden relative zu dieser angepaßt. (Erfordert Neustart) +nlImageFetcher=Ermöglicht bei bestehender Onlineverbindung das automatisches Nachladen fehlender Kartenbilder. +nlDisplayFoil=Zeige FOIL-Karten mit einem optischen FOIL-Effekt. +nlRandomFoil=Zeige den FOIL-Effekt bei zufälligen Karten. +nlScaleLarger=Erlaubt Kartenbilder größer als ihre originale Größe zu zeigen. +nlRenderBlackCardBorders=Erzeuge einen schwarzen Rahmen um die Kartenbilder. +nlLargeCardViewers=Macht die Kartenansicht größer, zur besseren Nutzung bei hoher Bildschirmauflösung. Nicht für kleine Bildschirme! +nlSmallDeckViewer=Setzt die Kartenansicht auf 800x600 statt auf einen relativen Teil der Bildschirmgröße. +nlRandomArtInPools=Nimm zufällige Versionen von Kartenbildern beim Erzeugen von zufälligen Kartensammlungen. +nlUiForTouchScreen=Vergrößert einige Elemente der Benutzeroberfläche zu besseren Bedienug auf Touchscreen-Geräten. (Erfordert Neustart) +nlCompactPrompt=Entfernt Überschriften und nutzt kleinere Schriftgröße um Bedienfenster kompakter zu machen. +nlHideReminderText=Verstecke Erinnerungstext im Kartendetailfenster. +nlOpenPacksIndiv=Beim Öffnen von FatPacks und Boosterboxen werden Booster einzeln nacheinander geöffnet. +nlTokensInSeparateRow=Zeige Spielsteinein auf dem Spielfeld in einer separaten Reihe unter den Nicht-Spielsteinkreaturen. +nlStackCreatures=Stapelt identische Kreaturen auf dem Spielfeld, analog der Länder, Artefakte und Verzauberungen. +nlTimedTargOverlay=Aktiviert eine Optimierung des Zielpfeil-Overlays. Nur bei Problemen/Rucklern auf älteren System deaktivieren. Erfordert den Neustart von laufenden Spielen. +nlCounterDisplayType=Bestimmt im Spiel die Art der Anzeige von Markern auf Karten. Text-basiert zählt die Marker als Text auf. Bild-basiert zeigte die Marker als Punkte auf den Karten. Hybrid zeigt beides. +nlCounterDisplayLocation=Bestimmt die Position des Markertextes auf der Karte. +nlDisplayCurrentCardColors=Zeigt eine Übersicht der aktuellen Farbe der Karten im Kartendetailfenster. +SoundOptions=Sound Optionen +nlEnableSounds=Geräusche während des Spiels +nlEnableMusic=Hintergrundmusik während des Spiels +nlAltSoundSystem=Nutze alternatives Sound-System (nur nutzen, wenn es Probleme mit fehlenden Geräuschen gibt) +KeyboardShortcuts=Tastenkombinationen +# VSubmenuAchievements.java +Achievements=Erfolge +# VSubmenuDownloaders.java +btnDownloadSetPics=Bilder(LQ) Sets herunterladen +btnDownloadPics=Bilder(LQ) Karten herunterladen +btnDownloadQuestImages=Bilder für Quests herunterladen +btnDownloadAchievementImages=Bilder für Erfolge herunterladen +btnReportBug=Einen Fehler melden +btnListImageData=Prüfe Karten- und Bilddaten +lblListImageData=Prüfe auf von Forge nicht unterstütze Karten und fehlende Kartenbilder +btnImportPictures=Daten importieren +btnHowToPlay=Wie man spielt +btnDownloadPrices=Kartenpreise herunterladen +btnLicensing=Lizenzhinweis +lblDownloadPics=Lädt ein Standardbild pro Karte. +lblDownloadSetPics=Lädt alle Bilder pro Karte. Eines für jedes Set, in welchem die Karte auftauchte. +lblDownloadQuestImages=Lädt die Bilder für den Quest-Modus. +lblDownloadAchievementImages=Lädt die Bilder zu den möglichen Erfolgen. Verschönert die Trophäensammlung. +lblDownloadPrices=Lädt aktuelle Kartenpreise für den Kartenladen im Spiel. +lblYourVersionOfJavaIsTooOld=Deine Java-Version ist leider zu alt. +lblPleaseUpdateToTheLatestVersionOfJava=Bitte aktualisiere auf die neueste Java-Version. +lblYoureRunning=Du nutzt +lblYouNeedAtLeastJavaVersion=Du brauchst mindestens die Version 1.8.0_101. +lblImportPictures=Importiere Daten aus einem lokalen Verzeichnis. +lblReportBug=Etwas funktioniert nicht? +lblHowToPlay=Spielregeln +lblLicensing=Rechtliche Hinweise +ContentDownloaders=Inhalte herunterladen +ReleaseNotes=Versions Hinweis +# CSubmenuPreferences.java +CantChangeDevModeWhileNetworkMath=Umstellen des DEV_MODEs ist während eines Netzwerkspiles ist nicht möglich! +CompatibilityWarningsReEnabled=Kompatibilitätswarnungen reaktiviert! +AresetForgeSettingsToDefault=Dies wird alle Standardeinstellungen wiederherstellen und Forge neu starten.\n\nZurücksetzen und neu starten? +TresetForgeSettingsToDefault=Einstellungen zurücksetzen +AresetDeckEditorLayout=Dies wird das Deck-Editor-Layout zurücksetzen.\nAlle Reiter im Standard wiederhergestellt.\n\nLayout zurücksetzen? +TresetDeckEditorLayout=Deck-Editor-Layout zurücksetzen +OKresetDeckEditorLayout=Deck-Editor-Layout wurde zurückgesetzt. +AresetWorkshopLayout=Dies wird das Workshop-Layout zurücksetzen.\nAlle Reiter im Standard wiederhergestellt.\n\nLayout zurücksetzen? +TresetWorkshopLayout=Workshop-Layout zurücksetzen +OKresetWorkshopLayout=Workshop-Layout wurde zurückgesetzt. +AresetMatchScreenLayout=Dies wird das Spielfeldlayout zurücksetzen.\nFalls du vorher noch das derzeitige Layout speichern möchtest, nutze bitte Forge->Layout->File->Save Current Layout in einem laufenden Spiel.\n\nSpielfeldlayout zurücksetzen? +TresetMatchScreenLayout=Spielfeldlayout zurücksetzen +OKresetMatchScreenLayout=Spielfeldlayout wurde zurückgesetzt. +#EMenuGroup.java +lblSanctionedFormats=gültige Spielformate +lblOnlineMultiplayer=Mehrspieler (online) +lblQuestMode=Quest-Modus +lblPuzzleMode=Rätsel-Modus +lblGauntlets=Herausforderungen +lblGameSettings=Spieleinstellungen +#VLobby.java +lblHeaderConstructedMode=Sanctioned Format: Constructed +lblGetNewRandomName=Get new random name +lbltypeofName=What type of name do you want to generate? +lblconfirmName= Would you like to use the name %n, or try again? +lblUseThisName=Use this name +lblTryAgain=Try Again +lblAddAPlayer=Add a Player +lblVariants=Variants +#VSubmenuConstructed.java +lblConstructedMode=Constructed-Modus +lblConstructed=Constructed +#PlayerPanel.java +lblSelectaDeck=Wähle ein Deck +lblSelectaSchemeDeck=Wähle Komplottdeck +lblSchemeDeckEditor=Komplottdeck-Editor +lblSelectaCommanderDeck=Wähle Commanderdeck +lblSelectaPlanarDeck=Wähle Weltendeck +lblPlanarDeckEditor=Weltendeck-Editor +lblSelectaVanguardAvatar=Wähle Vanguard-Avatar +lblVanguardAvatar= Vanguard avatar +lblDeck=Deck +lblSchemeDeck=Komplottdeck +lblCommanderDeck=Commanderdeck +lblPlanarDeck=Weltendeck +lblVanguard=Vanguard +lblHuman=Mensch +lblAI=KI +lblOpen=Öffnen... +lblUseSimulation=Nutze Simulation +lblGetaNewRandomName=Zufälliger Name +lblArchenemy=Erzfeind +lblHeroes=Helden +lblRemove=Entferne +ttlblAvatar=L-Klick: Wähle Avatar. R-Klick: Zufälliger Avatar. +lblReady=Fertig +lblKick=Rauswerfen +lblReallyKick=%s wirklich rauswerfen? +#ForgeMenu.java +lblRestart=Neustart +lblExit=Beenden +#LayoutMenu.java +lblLayout=Layout +lblView=Anzeige +lblFile=Datei +lblTheme=Thema +lblBackgroundImage=Hintergrundbild +lblPanelTabs=Kartenreiter +lblSaveCurrentLayout=Sichere aktuelles Layout +lblRefresh=Aktualisieren +lblSetWindowSize=Setze Fenstergröße +lblChooseNewWindowSize=Wähle neue Fenstergröße +lblFullScreen=Vollbild +lblExitFullScreen=Vollbild verlassen +#HelpMenu.java +lblHelp=Hilfe +lblAboutForge=Über Forge +lblTroubleshooting=Fehlerbehebung +lblArticles=Artikel +lblGettingStarted=Starthilfe +lblHowtoPlay=Wie man spielt +lblForgeLicense=Forge Lizenzhinweis +lblReleaseNotes=Versionshinweise +#GameMenu.java +lblGame=Spiel +lblSoundEffects=Geräusche +lblUndo=Rückgängig +lblAlphaStrike=Alle angreifen +lblEndTurn=Zug beenden +lblTargetingArcs=Zielpfeile +lblOff=Aus +lblCardMouseOver=Bei Zeiger über Karte +lblAlwaysOn=Immer an +lblAutoYields=Automatische Bestätigung +lblDeckList=Deckliste +lblClose=Schließen +lblExitForge=Forge verlassen +#ConstructedGameMenu.java +lblSelectAvatarFor=Wähle Avatar für %s +lblRemoveSmallCreatures=Entferne 1/1- und 0/X-Kreaturen aus erzeugten Decks +lblRemoveArtifacts=Entferne Artefakte aus erzeugten Decks. +PreventNonLandDuplicates=Verhindere doppelte Nicht-Landkarten in erzeugten Decks. +#PlayerPanel.java +lblName=Name +lblTeam=Team +#InputConfirmMulligan.java +lblKeep=Behalten +lblYouAreGoingFirst=Du beginnst! +lblIsGoingFirst=beginnt. +lblYouAreGoing=Du startest +lblMulligan=Mulligan +lblDoYouWantToKeepYourHand=Starthand behalten? +lblOk=OK +lblReset=Zurück +lblAuto=Auto +#VAssignDamage.java +lbLAssignDamageDealtBy=Verteile Schaden verursacht von %s +lblLClickDamageMessage=Linksklick: Verteile 1 Schaden. (Linksklick + STRG): Verteile Schaden bis max. tödlich +lblRClickDamageMessage=Rechtsklick: 1 Schaden zurücknehmen. (Rechtsklick + STRG): Allen Schaden zurücknehmen. +lblTotalDamageText=Gesamtschaden: Unbekannt +lblAssignRemainingText=Verteile verbleibenden Schaden unter tödlich Verwundeten +lblLethal=Tödlich +#KeyboardShortcuts.java +lblSHORTCUT_SHOWSTACK=Duell: Zeige Stapelfenster +lblSHORTCUT_SHOWCOMBAT=Duell: Zeige Kampffenster +lblSHORTCUT_SHOWCONSOLE=Duell: Zeige Konsolenfenster +lblSHORTCUT_SHOWDEV=Duell: Zeige Entwicklerfenster +lblSHORTCUT_CONCEDE=Duell: Spiel aufgeben +lblSHORTCUT_ENDTURN=Duell: Priorität bis Zugende oder nächstem Ereignis abgeben +lblSHORTCUT_ALPHASTRIKE=Duell: Alpha Strike (Mit allem angreifen) +lblSHORTCUT_SHOWTARGETING=Duell: Zielpfeile umschalten +lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Duel: Auto-Bestätigen von Fähigkeiten auf dem Stapel (immer Ja) +lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Duel: Auto-Bestätigen von Fähigkeiten auf dem Stapel (immer Nein) +lblSHORTCUT_MACRO_RECORD=Duell: Aktion-Abfolge-Makro aufnehmen +lblSHORTCUT_MACRO_NEXT_ACTION=Duel: führe nächste Aktion im gespeicherten Makro aus +lblSHORTCUT_CARD_ZOOM=Duell: Zoome ausgewählte Karte +#VSubmenuDraft.java +lblBoosterDraft= Booster Draft +lblHeaderBoosterDraft=Sanctioned Format: Booster Draft +lblPlayAnOpponent=Play an opponent +lblPlayAll7opponents=Play all 7 opponents +lblBuildorselectadeck=Build or select a deck +lblDraftText1=In Draft mode, three booster packs are rotated around eight players. +lblDraftText2=Build a deck from the cards you choose. The AI will do the same. +lblDraftText3=Then, play against one or all of the AI opponents. +lblNewBoosterDraftGame=New Booster Draft Game +lblDraftDecks=Draft Decks +#CSubmenuDraft.java +lblNoDeckSelected=No deck selected for human.\n(You may need to build a new deck) +lblNoDeck=No Deck +lblChooseDraftFormat=Choose Draft Format +#VSubmenuSealed.java +lblSealedDeck=Sealed Deck +lblSealedDecks=Sealed Decks +lblHeaderSealed=Sanctioned Format: Sealed Deck +lblSealedText1=Select a game, or build a new one +lblSealedText2=In Sealed mode, you build a deck from booster packs (maximum 10). +lblSealedText3=Build a deck from the cards you receive. A number of AI opponents will do the same. +lblSealedText4=Then, you may play against each of the AI opponents, or one of the opponents. +btnBuildNewSealedDeck=Build New Sealed Deck +#FDeckChooser.java +lblViewDeck=View Deck +lblRandomDeck=Random Deck +#GameType.java +lblSealed=Sealed +lblDraft=Draft +lblWinston=Winston +lblGauntlet=Gauntlet +lblTournament=Tournament +lblQuest=Quest +lblQuestDraft=QuestDraft +lblPlanarConquest=PlanarConquest +lblPuzzle=Puzzle +lblPuzzleDesc=Solve a puzzle from the given game state +lblDeckManager= +lblVanguardDesc=Each player has a special \"Avatar\" card that affects the game. +lblCommandesDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. +lblTinyLeaders=Tiny Leaders +lblTinyLeadersDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4. +lblBrawl=Brawl +lblBrawlDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Only cards legal in Standard may be used. +lblPlaneswalker=Planeswalker +lblPlaneswalkerDesc=Each player has a Planeswalker card which can be cast at any time. +lblPlanechase=Planechase +lblPlanechaseDesc=Plane cards apply global effects. The Plane card changes when a player rolls \"Planeswalk\" on the planar die. +lblArchenemyDesc=One player is the Archenemy and fights the other players by playing Scheme cards. +lblArchenemyRumble= +lblArchenemyRumbleDesc=All players are Archenemies and can play Scheme cards. +lblMomirBasic=Momir Basic +lblMomirBasicDesc=Each player has a deck containing 60 basic lands and the Momir Vig avatar. +lblMoJhoSto=MoJhoSto +lblMoJhoStoDesc=Each player has a deck containing 60 basic lands and the Momir Vig, Jhoira of the Ghitu, and Stonehewer Giant avatars. diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index fab21b1c421..2819480c0a8 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -16,6 +16,8 @@ btnResetJavaFutureCompatibilityWarnings = Reset Java Compatibility Warnings btnClearImageCache = Clear Image Cache btnTokenPreviewer = Token Previewer btnCopyToClipboard= Copy to Clipboard +cbpSelectLanguage=Language +nlSelectLanguage=Select Language (Excluded Game part. Still a work in progress) (RESTART REQUIRED) cbRemoveSmall = Remove Small Creatures cbCardBased = Include Card-based Deck Generation cbSingletons = Singleton Mode @@ -143,6 +145,7 @@ btnDownloadQuestImages = Download Quest Images btnDownloadAchievementImages = Download Achievement Images btnReportBug =Report a Bug btnListImageData =Audit Card and Image Data +lblListImageData = Audit cards not implemented by Forge and missing card images btnImportPictures = Import Data btnHowToPlay = How To Play btnDownloadPrices = Download Card Prices @@ -154,11 +157,10 @@ lblDownloadAchievementImages = Download achievement images to really make your t lblDownloadPrices = Download up-to-date price list for in-game card shops. lblYourVersionOfJavaIsTooOld = Your version of Java is too old to use the content downloaders. lblPleaseUpdateToTheLatestVersionOfJava = Please update to the latest version of Java -lblYoureRunning = You're running +lblYoureRunning = You're running lblYouNeedAtLeastJavaVersion = You need at least version 1.8.0_101. lblImportPictures = Import data from a local directory. lblReportBug = Something broken? -lblListImageData = Audit cards not implemented by Forge and missing card images lblHowToPlay = Rules of the Game. lblLicensing = Forge legal. ContentDownloaders = Content Downloaders @@ -184,6 +186,15 @@ lblQuestMode = Quest Mode lblPuzzleMode = Puzzle Mode lblGauntlets = Gauntlets lblGameSettings = Game Settings +#VLobby.java +lblHeaderConstructedMode=Sanctioned Format: Constructed +lblGetNewRandomName=Get new random name +lbltypeofName=What type of name do you want to generate? +lblconfirmName= Would you like to use the name %n, or try again? +lblUseThisName=Use this name +lblTryAgain=Try Again +lblAddAPlayer=Add a Player +lblVariants=Variants #VSubmenuConstructed.java lblConstructedMode = Constructed Mode lblConstructed = Constructed @@ -195,6 +206,7 @@ lblSelectaCommanderDeck=Select a Commander deck lblSelectaPlanarDeck = Select a planar deck lblPlanarDeckEditor = Planar Deck Editor lblSelectaVanguardAvatar = Select a Vanguard avatar +lblVanguardAvatar = Vanguard avatar lblDeck=Deck lblSchemeDeck=Scheme Deck lblCommanderDeck= Commander Deck @@ -205,7 +217,7 @@ lblAI=AI lblOpen=Open lblUseSimulation=Use Simulation lblGetaNewRandomName=Get a new random name -lblArchenemy=Archenemy +lblArchenemy=Archenemy lblHeroes=Heroes lblRemove=Remove ttlblAvatar=L-click: Select avatar. R-click: Randomize avatar. @@ -289,4 +301,60 @@ lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Match: auto-yield ability on stack (Always Yes) lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Match: auto-yield ability on stack (Always No) lblSHORTCUT_MACRO_RECORD=Match: record a macro sequence of actions lblSHORTCUT_MACRO_NEXT_ACTION=Match: execute next action in a recorded macro -lblSHORTCUT_CARD_ZOOM=Match: zoom the currently selected card \ No newline at end of file +lblSHORTCUT_CARD_ZOOM=Match: zoom the currently selected card +#VSubmenuDraft.java +lblBoosterDraft= Booster Draft +lblHeaderBoosterDraft=Sanctioned Format: Booster Draft +lblPlayAnOpponent=Play an opponent +lblPlayAll7opponents=Play all 7 opponents +lblBuildorselectadeck=Build or select a deck +lblDraftText1=In Draft mode, three booster packs are rotated around eight players. +lblDraftText2=Build a deck from the cards you choose. The AI will do the same. +lblDraftText3=Then, play against one or all of the AI opponents. +lblNewBoosterDraftGame=New Booster Draft Game +lblDraftDecks=Draft Decks +#CSubmenuDraft.java +lblNoDeckSelected=No deck selected for human.\n(You may need to build a new deck) +lblNoDeck=No Deck +lblChooseDraftFormat=Choose Draft Format +#VSubmenuSealed.java +lblSealedDeck=Sealed Deck +lblSealedDecks=Sealed Decks +lblHeaderSealed=Sanctioned Format: Sealed Deck +lblSealedText1=Select a game, or build a new one +lblSealedText2=In Sealed mode, you build a deck from booster packs (maximum 10). +lblSealedText3=Build a deck from the cards you receive. A number of AI opponents will do the same. +lblSealedText4=Then, you may play against each of the AI opponents, or one of the opponents. +btnBuildNewSealedDeck=Build New Sealed Deck +#FDeckChooser.java +lblViewDeck=View Deck +lblRandomDeck=Random Deck +#GameType.java +lblSealed=Sealed +lblDraft=Draft +lblWinston=Winston +lblGauntlet=Gauntlet +lblTournament=Tournament +lblQuest=Quest +lblQuestDraft=QuestDraft +lblPlanarConquest=PlanarConquest +lblPuzzle=Puzzle +lblPuzzleDesc=Solve a puzzle from the given game state +lblDeckManager= +lblVanguardDesc=Each player has a special \"Avatar\" card that affects the game. +lblCommandesDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. +lblTinyLeaders=Tiny Leaders +lblTinyLeadersDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4. +lblBrawl=Brawl +lblBrawlDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Only cards legal in Standard may be used. +lblPlaneswalker=Planeswalker +lblPlaneswalkerDesc=Each player has a Planeswalker card which can be cast at any time. +lblPlanechase =Planechase +lblPlanechaseDesc=Plane cards apply global effects. The Plane card changes when a player rolls \"Planeswalk\" on the planar die. +lblArchenemyDesc=One player is the Archenemy and fights the other players by playing Scheme cards. +lblArchenemyRumble= +lblArchenemyRumbleDesc=All players are Archenemies and can play Scheme cards. +lblMomirBasic=Momir Basic +lblMomirBasicDesc=Each player has a deck containing 60 basic lands and the Momir Vig avatar. +lblMoJhoSto=MoJhoSto +lblMoJhoStoDesc=Each player has a deck containing 60 basic lands and the Momir Vig, Jhoira of the Ghitu, and Stonehewer Giant avatars. diff --git a/forge-gui/res/languages/es-es.properties b/forge-gui/res/languages/es-es.properties new file mode 100644 index 00000000000..9eb85e99a90 --- /dev/null +++ b/forge-gui/res/languages/es-es.properties @@ -0,0 +1,360 @@ +language.name=Spanish (ES) +#SplashScreen.java +splash.loading.examining-cards=Cargando cartas, examinando carpeta +splash.loading.cards-folders=Cargando cartas de carpetas +splash.loading.cards-archive=Cargando cartas del archivo +splash.loading.decks=Cargando Mazos... +#VSubmenuPreferences.java +Preferences=Preferencias +btnReset=Restablecer la configuración predeterminada +btnDeleteMatchUI=Restablecer diseño de la pantalla de Juego +btnDeleteEditorUI=Restablecer diseño de la pantalla del Editor +btnDeleteWorkshopUI=Restablecer diseño del Workshop +btnUserProfileUI=Abrir directorio de usuario +btnContentDirectoryUI=Abrir directorio del contenido +btnResetJavaFutureCompatibilityWarnings=Restablecer las advertencias de compatibilidad de Java +btnClearImageCache= +btnTokenPreviewer= +btnCopyToClipboard=Copy to Clipboard +cbpSelectLanguage=Language +nlSelectLanguage=Select Language (Excluded math part. Still a work in progress) (RESTART REQUIRED) +cbRemoveSmall=Eliminar Pequeñas Criaturas +cbCardBased=Incluye la generación de mazo basado en tarjeta +cbSingletons=Mode Singleton +cbRemoveArtifacts=Quitar artefactos +cbAnte=Jugar con apuesta (Ante) +cbAnteMatchRarity=Igualar rareza en apuesta (Ante) +cbEnableAICheats=Permitir engaños de la IA +cbManaBurn=Quemadura de maná +cbManaLostPrompt=Avisar antes de vaciar el maná en la reserva al pasar la fase +cbDevMode=Modo Desarrollador +cbLoadCardsLazily=Cargar Scripts de Cartas modo perezoso +cbLoadHistoricFormats=Cargar Formatos Históricos +cbWorkshopSyntax=Verificador de sintaxis del Taller +cbEnforceDeckLegality=Conformidad del Mazo +cbPerformanceMode=Modo de desempeño +cbFilteredHands=Manos filtradas +cbImageFetcher=Descargar automáticamente el arte de la carta si no existe +cbCloneImgSource=Clones usan el arte original de la carta +cbScaleLarger=Imagen de escala más grande +cbRenderBlackCardBorders=Renderizar bordes de cartas negras +cbLargeCardViewers=Usar visores de cartas grandes +cbSmallDeckViewer=Usar el visor de mazos pequeño +cbDisplayFoil=Mostrar Foil (efecto sobreexpuesto) +cbRandomFoil=Foil Aleatorio +cbRandomArtInPools=Aleatorizar Arte de la Carta en los pools que se generen +cbEnableSounds=Activar sonidos +cbEnableMusic=Activar música +cbAltSoundSystem=Utilizar el sistema de sonido alternativo +cbUiForTouchScreen=Mejorar la interfaz de usuario para pantallas táctiles +cbTimedTargOverlay=Habilitar optimización de superposición de capas +cbCompactMainMenu=Usar el menú de la barra lateral principal compacta +cbDetailedPaymentDesc=Descripción del hechizo en el aviso del pago +cbPromptFreeBlocks=Manejar bloqueos en el combate sí no requieren coste +cbPauseWhileMinimized=Pausa mientras minimizado +cbCompactPrompt=Ventana de aviso compacta +cbEscapeEndsTurn=Use la tecla Escape para Fin del Turno +cbPreselectPrevAbOrder=Preseleccionar el último orden de habilidades +cbHideReminderText=Ocultar texto de recordatorio +cbOpenPacksIndiv=Abrir packs individualmente +cbTokensInSeparateRow=Mostrar fichas en una fila separada +cbStackCreatures=Apilar Criaturas +cbFilterLandsByColorId=Filtrar tierras por color en habilidades activadas +cbShowStormCount=Mostrar el contador de tormenta (Storm) en el panel de aviso +cbRemindOnPriority=Alerta visual al recibir la prioridad +cbUseSentry=Enviar automáticamente informes de errores. +cbpGameLogEntryType=Verbosidad del registro del juego +cbpCloseAction=Acción al cerrar +cbpDefaultFontSize=Tamaño de fuente predeterminado +cbpAiProfiles=Personalidad de la IA +cbpDisplayCurrentCardColors=Mostrar color detallado de la carta +cbpAutoYieldMode=Auto-Ceder +cbpCounterDisplayType=Forma en la que se muestran los contadores +cbpCounterDisplayLocation=Ubicación del contador +cbpGraveyardOrdering=Permitir ordenar cartas puestas en el cementerio +Troubleshooting=Solución de problemas +GeneralConfiguration=Configuración general +nlPlayerName=Establece el nombre al que te referirá Forge durante el juego. +nlCompactMainMenu=Habilitar para una barra lateral eficiente en espacio que muestre solo un grupo de menús a la vez (REQUIERE REINICIAR). +nlUseSentry=Cuando está habilitado, envía automáticamente informes de errores a los desarrolladores. +GamePlay=Juego +nlpAiProfiles=Elige tu oponente de la IA +nlAnte=Determina si el juego se juega con apuesta o no. +nlAnteMatchRarity=Intenta crear apuesta de la misma rareza para todos los jugadores. +nlEnableAICheats=Permita que la IA haga trampa para obtener ventaja (para personalidades que tienen configuradas trampas al barajar). +nlManaBurn=Jugar con quemadura de maná (reglas previas a Magic 2010). +nlManaLostPrompt=Cuando está habilitado, recibes una advertencia si la prioridad de pase te haría perder maná en tu reserva de maná. +nlEnforceDeckLegality=Aplica la legalidad del mazo correspondiente a cada entorno (tamaño mínimo de mazo, número máximo de cartas, etc.). +nlPerformanceMode=Desactiva las comprobaciones de habilidades estáticas adicionales para acelerar el motor del juego. (Advertencia: rompe algunos escenarios 'como si tuviera flash' cuando se lanzan cartas de propiedad de los oponentes). +nlFilteredHands=Genera dos manos iniciales y mantiene la que tiene el recuento de tierras más cercano al promedio del mazo (Requiere reinicio) +nlCloneImgSource=Cuando se habilite, los clones usarán su arte original en lugar del arte de la carta clonada. +nlPromptFreeBlocks=Cuando esté habilitado, si tuviera que pagar 0 para bloquear, pague automáticamente sin aviso. +nlPauseWhileMinimized=Cuando está habilitado, Forge hace una pausa cuando está minimizado (principalmente para AI contra AI). +nlEscapeEndsTurn=Cuando está habilitada, la tecla Escape funciona como un atajo alternativo para finalizar el turno actual. +nlDetailedPaymentDesc=Cuando está habilitado, se muestran descripciones detalladas de hechizos / habilidades al elegir objetivos y pagar costos. +nlShowStormCount=Cuando está habilitado, muestra el recuento de tormentas actual en el panel de solicitud. +nlRemindOnPriority=Cuando está habilitado, parpadea el área de elección del jugador al recibir prioridad. +nlPreselectPrevAbOrder=Cuando está habilitado, preselecciona el último orden de habilidad simultáneo definido en el cuadro de diálogo de ordenación. +nlpGraveyardOrdering=Determina cuándo dejar que el jugador elija el orden de las cartas colocadas simultáneamente en el cementerio (nunca, siempre, o solo cuando juega con las cartas que le interesan, por ejemplo, Volrath's Shapeshifter) +nlpAutoYieldMode=Define el nivel de granularidad de la opción auto-ceder (por habilidad única o por carta única). +RandomDeckGeneration=Generación aleatoria de mazo +nlRemoveSmall=Deshabilita las criaturas 1/1 y 0 / X en los mazos generados. +nlSingletons=Deshabillita duplicados de no tierras en mazos generados +nlRemoveArtifacts=Deshabilita las cartas de artefactos en los mazos generados. +nlCardBased=Crea mazos aleatorios más sinérgicos (requiere reinicio) +DeckEditorOptions=Opciones del editor de mazo +nlFilterLandsByColorId=Al usar filtros de color de cartas, filtre las tierras de manera que sea más fácil encontrar tierras que produzcan ese color de maná. +AdvancedSettings=Ajustes avanzados +nlDevMode=Habilita el menú con funciones para probar durante el desarrollo. +nlWorkshopSyntax=Habilita la comprobación de sintaxis de los guiones de tarjetas en el taller. Nota: funcionalidad aún en fase de prueba! +nlGameLogEntryType=Cambia la cantidad de información que se muestra en el registro del juego. Ordenado de menos a más detallado. +nlCloseAction=Cambia lo que sucede al hacer clic en el botón X en la parte superior derecha. +nlLoadCardsLazily=Si está activado, Forge cargará los scripts de las cartas según sea necesario en lugar de al inicio. (Advertencia: Experimental) +nlLoadHistoricFormats=Si está activado, Forge cargará todas los formatos históricos, esto puede demorar un poco más en cargarse en el inicio. +GraphicOptions=Opciones gráficas +nlDefaultFontSize=El tamaño de fuente predeterminado dentro de la interfaz de usuario. Todos los elementos de fuente se escalan en relación a esto. (Necesita reinicio) +nlImageFetcher=Permite la descarga instantánea de imágenes de cartas faltantes. +nlDisplayFoil=Mostrar cartas foil con un capa que da efecto foil sobre la carta +nlRandomFoil=Agrega efecto de foil a cartas aleatorias. +nlScaleLarger=Permite que las imágenes de las cartas se amplíen más que su tamaño original. +nlRenderBlackCardBorders=Hacer bordes negros alrededor de las imágenes de las cartas. +nlLargeCardViewers=Hace que todos los visores de cartas en el programa sean mucho más grandes para usar con imágenes de alta resolución. No cabrá en pantallas más pequeñas. +nlSmallDeckViewer=Establece la ventana del visor de mazo para que sea de 800x600 en lugar de una proporción del tamaño de la pantalla. +nlRandomArtInPools=Genera cartas con arte al azar en pools generados de cartas de modo limitado. +nlUiForTouchScreen=Aumenta algunos elementos de la interfaz de usuario para proporcionar una mejor experiencia en dispositivos de pantalla táctil. (Necesita reinicio) +nlCompactPrompt=Oculte el encabezado y use una fuente más pequeña en el panel de solicitud para hacerlo más compacto. +nlHideReminderText=Ocultar el texto del recordatorio en el panel de Detalle de la Carta +nlOpenPacksIndiv=Al abrir packs de cartas (Fat Packs) y cajas de sobres, los sobres se abrirán y se mostrarán de uno en uno. +nlTokensInSeparateRow=Muestra las fichas en una fila separada en el campo de batalla debajo de las criaturas que no son fichas. +nlStackCreatures=Apila criaturas idénticas en el campo de batalla, como tierras, artefactos y encantamientos. +nlTimedTargOverlay=Habilita la optimización basada en la regulación de la superposición de objetivos para reducir el uso de la CPU (solo desactívela si experimenta interferencias en el hardware más antiguo, es necesario iniciar de nuevo el juego). +nlCounterDisplayType=Selecciona el estilo en el que se mostrarán los contadores en las cartas. En texto, en imagen o híbrido (muestra ambos a la vez). +nlCounterDisplayLocation=Determina dónde colocar los contadores basados en texto en la carta: cerca de la parte superior o cerca de la parte inferior. +nlDisplayCurrentCardColors=Muestra el color actual de las cartas en el panel de información detallada de la tarjeta. +SoundOptions=Opciones de Sonido +nlEnableSounds=Habilitar efectos de sonido durante el juego +nlEnableMusic=Habilitar música de fondo durante el juego +nlAltSoundSystem=Use el sistema de sonido alternativo (solo use si tiene problemas con el sonido que no se reproduce o desaparece) +KeyboardShortcuts=Atajos de teclado +# VSubmenuAchievements.java +Achievements=Logros +# VSubmenuDownloaders.java +btnDownloadSetPics=Descargar todos los Sets de Cartas +btnDownloadPics=Descargar todas las Cartas +btnDownloadQuestImages=Descargar Imágenes del modo Quest +btnDownloadAchievementImages=Descagar Imágenes de los Logros +btnReportBug=Reportar un error +btnListImageData=Audit Card and Image Data +lblListImageData=Audit cards not implemented by Forge and missing card images +btnImportPictures=Importar Datos +btnHowToPlay=Cómo jugar (Inglés) +btnDownloadPrices=Descargar los precios de las cartas +btnLicensing=Detalles de la licencia +lblDownloadPics=Descargar la imagen de la carta por defecto para cada carta. +lblDownloadSetPics=Descargue todas las imágenes de cada carta (una por cada set donde apareció la carta) +lblDownloadQuestImages=Descarga fichas e íconos utilizados en el modo Quest. +lblDownloadAchievementImages=Descarga imágenes de logros para que tus trofeos realmente destaquen. +lblDownloadPrices=Descargue la lista de precios actualizada para las tiendas de cartas del juego. +lblYourVersionOfJavaIsTooOld=Su versión de Java es demasiado antigua para usar los descargadores de contenido. +lblPleaseUpdateToTheLatestVersionOfJava=Por favor, actualice a la última versión de Java +lblYoureRunning=Estas corriendo +lblYouNeedAtLeastJavaVersion=Necesitas al menos la versión 1.8.0_101. +lblImportPictures=Importar datos desde un directorio local. +lblReportBug=¿Algo roto? +lblHowToPlay=Reglas del juego. +lblLicensing=Forge Aviso Legal. +ContentDownloaders=Descargadores de contenido +ReleaseNotes=Notas de la Versión +# CSubmenuPreferences.java +CantChangeDevModeWhileNetworkMath=¡No se puede cambiar a Modo Desarrollador mientras se está realizando una partida en red! +CompatibilityWarningsReEnabled=¡Advertencias de compatibilidad re-habilitadas! +AresetForgeSettingsToDefault=Esto reseteará todas las preferencias a sus valores predeterminados y reiniciará Forge.\n\ n¿Resetear y reiniciar Forge? +TresetForgeSettingsToDefault=Ajustes del Reset +AresetDeckEditorLayout=Esto restablecerá el diseño de la pantalla del Editor de Mazos.\nTodas las vistas con pestañas se restaurarán a sus posiciones predeterminadas.\n\n ¿Restablecer diseño? +TresetDeckEditorLayout=Restablecer diseño del Editor de Mazos +OKresetDeckEditorLayout=El diseño del Editor se ha reestablecido correctamente +AresetWorkshopLayout=Esto restablecerá el diseño del Taller.\nTodas las vistas con pestañas se restaurarán a sus posiciones predeterminadas. \n\n ¿Restablecer diseño? +TresetWorkshopLayout=Restablecer diseño del Taller. +OKresetWorkshopLayout=El diseño del Taller se ha restablecido. +AresetMatchScreenLayout=Esto restablecerá el diseño de la pantalla de Juego.\n Si desea guardar primero el diseño actual, use la pestaña Dock -> Guardar opción de diseño en la pantalla de Juego\n \n ¿Restablecer diseño? +TresetMatchScreenLayout=Restablecer diseño de pantalla de Juego +OKresetMatchScreenLayout=El diseño de la pantalla de Juego se ha restablecido. +#EMenuGroup.java +lblSanctionedFormats=Formatos Sancionados +lblOnlineMultiplayer=Multijugador en linea +lblQuestMode=Modo Aventura +lblPuzzleMode=Modo Puzzle +lblGauntlets=Desafíos +lblGameSettings=Configuración +#VLobby.java +lblHeaderConstructedMode=Formato Sancionado: Construido +lblGetNewRandomName=Obtener nuevo nombre aleatorio +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 +lblVariants=Variantes +#VSubmenuConstructed.java +lblConstructedMode=Modo Construido +lblConstructed=Construido +#PlayerPanel.java +lblSelectaDeck=Selecciona un mazo +lblSelectaSchemeDeck=Selecciona un Mazo de Fenómenos (Scheme) +lblSchemeDeckEditor=Editor de Mazo de Escenario (Scheme) +lblSelectaCommanderDeck=Selecciona un Mazo Commander +lblSelectaPlanarDeck=Selecciona un Mazo Planar +lblPlanarDeckEditor=Editor de Mazos Planar +lblSelectaVanguardAvatar=Selecciona un avatar para Vanguard +lblVanguardAvatar=avatar Vanguard +lblDeck=Mazo +lblSchemeDeck=Mazo de Escenario (Scheme) +lblCommanderDeck=Mazo Commander +lblPlanarDeck=Mazo Planar +lblVanguard=Vanguard +lblHuman=Humano +lblAI=IA +lblOpen=Abierto +lblUseSimulation=Usar Simulación +lblGetaNewRandomName=Obtener un nuevo nombre al azar +lblArchenemy=Archienemigo +lblHeroes=Heroes +lblRemove=Quitar +ttlblAvatar=L-click: Seleccionar avatar. R-clic: aleatorizar avatar. +lblReady=Listo +lblKick=Quitar +lblReallyKick=Quitar a %s? +#ForgeMenu.java +lblRestart=Reiniciar +lblExit=Salir +#LayoutMenu.java +lblLayout=Diseño +lblView=Ver +lblFile=Archivo +lblTheme=Tema +lblBackgroundImage=Imagen de fondo +lblPanelTabs=Pestañas de los Paneles +lblSaveCurrentLayout=Guardar el diseño actual +lblRefresh=Refrescar +lblSetWindowSize=Establecer tamaño de ventana +lblChooseNewWindowSize=Elija nuevo tamaño de ventana +lblFullScreen=Pantalla completa +lblExitFullScreen=Salir de pantalla completa +#HelpMenu.java +lblHelp=Ayuda +lblAboutForge=Sobre Forge +lblTroubleshooting=Solución de problemas +lblArticles=Artículos (Inglés) +lblGettingStarted=Empezando (Inglés) +lblHowtoPlay=Cómo jugar (Inglés) +lblForgeLicense=Licencia de Forge +lblReleaseNotes=Notas de la Versión +#GameMenu.java +lblGame=Juego +lblSoundEffects=Efectos de Sonido +lblUndo=Deshacer +lblAlphaStrike=Atacar con Todo +lblEndTurn=Finalizar Turno +lblTargetingArcs=Flechas Objetivo +lblOff=Desactivado +lblCardMouseOver=Cuando sea señalada por el ratón +lblAlwaysOn=Siempre Activado +lblAutoYields=Auto-Ceder +lblDeckList=Lista del Mazo +lblClose=Cerrar +lblExitForge=Salir de Forge +#ConstructedGameMenu.java +lblSelectAvatarFor=Select avatar for %s +lblRemoveSmallCreatures=Remove 1/1 and 0/X creatures in generated decks. +lblRemoveArtifacts=Remove artifact cards in generated decks. +PreventNonLandDuplicates=Prevent non-land duplicates in generated decks. +#PlayerPanel.java +lblName=Nombre +lblTeam=Equipo +#InputConfirmMulligan.java +lblKeep=Mantener +lblYouAreGoingFirst=tu vas primero! +lblIsGoingFirst=va primero +lblYouAreGoing=vas +lblMulligan=Mulligan +lblDoYouWantToKeepYourHand=¿Quieres quedarte tu mano? +lblOk=Ok +lblReset=Reset +lblAuto=Auto +#VAssignDamage.java +lbLAssignDamageDealtBy=Asignar daño hecho por %s +lblLClickDamageMessage=Clic izquierdo: Asigna 1 daño. (Clic izquierdo + Control): Asigna el daño restante a letal +lblRClickDamageMessage=Clic derecho: Desasignar 1 daño. (Clic derecho + Control): Desasignar todo el daño. +lblTotalDamageText=Puntos de daño disponibles: Desconocido +lblAssignRemainingText=Distribuye los puntos de daño restantes entre las entidades letalmente heridas. +lblLethal=Letal +#KeyboardShortcuts.java +lblSHORTCUT_SHOWSTACK=Match: show stack panel +lblSHORTCUT_SHOWCOMBAT=Match: show combat panel +lblSHORTCUT_SHOWCONSOLE=Match: show console panel +lblSHORTCUT_SHOWDEV=Match: show dev panel +lblSHORTCUT_CONCEDE=Match: concede game +lblSHORTCUT_ENDTURN=Match: pass priority until EOT or next stack event +lblSHORTCUT_ALPHASTRIKE=Match: Alpha Strike (attack with all available) +lblSHORTCUT_SHOWTARGETING=Match: toggle targeting visual overlay +lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Match: auto-yield ability on stack (Always Yes) +lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Match: auto-yield ability on stack (Always No) +lblSHORTCUT_MACRO_RECORD=Match: record a macro sequence of actions +lblSHORTCUT_MACRO_NEXT_ACTION=Match: execute next action in a recorded macro +lblSHORTCUT_CARD_ZOOM=Match: zoom the currently selected card +#VSubmenuDraft.java +lblBoosterDraft=Booster Draft +lblHeaderBoosterDraft=Formato sancionado: Booster Draft +lblPlayAnOpponent=Jugar contra un oponente +lblPlayAll7opponents=Juega contra los 7 oponentes +lblBuildorselectadeck=Construye o selecciona un mazo +lblDraftText1=En el modo Draft, tres sobres de cartas giran alrededor de ocho jugadores. +lblDraftText2=Construye un mazo a partir de las cartas que elijas. La IA hará lo mismo. +lblDraftText3=Luego, juega contra uno o todos los oponentes de la IA. +lblNewBoosterDraftGame=Nuevo Booster Draft +lblDraftDecks=Mazos de Draft +#CSubmenuDraft.java +lblNoDeckSelected=No deck selected for human.\n(You may need to build a new deck) +lblNoDeck=No Deck +lblChooseDraftFormat=Choose Draft Format +#VSubmenuSealed.java +lblSealedDeck=Mazo Sellado +lblSealedDecks=Mazos de Sellado +lblHeaderSealed=Formato Sancionado: Mazo Sellado +lblSealedText1=Selecciona un juego o crea uno nuevo +lblSealedText2=En modo sellado, construyes un mazo con sobres (máximo 10). +lblSealedText3=Construye un mazo con las cartas que recibas. Un número de oponentes de la IA hará lo mismo. +lblSealedText4=Luego, juega contra uno o todos los oponentes de la IA. +btnBuildNewSealedDeck=Nuevo Mazo Sellado +#FDeckChooser.java +lblViewDeck=Ver Mazo +lblRandomDeck=Mazo Aleatorio +#GameType.java +lblSealed=Sellado +lblDraft=Draft +lblWinston=Winston +lblGauntlet=Desafío +lblTournament=Torneo +lblQuest=Aventura +lblQuestDraft=Draft Aventura +lblPlanarConquest=Conquista Planar +lblPuzzle=Puzzle +lblPuzzleDesc=Resuelve un puzzle del estado del juego dado. +lblDeckManager=Gestor de Mazos +lblVanguardDesc=Cada jugador tiene una carta especial de "Avatar" que afecta el juego. +lblCommandesDesc= +lblTinyLeaders=Tiny Leaders +lblTinyLeadersDesc=Cada jugador tiene una carta legendaria "Comandante" que se puede lanzar en cualquier momento y determina los colores de la baraja. Cada carta debe tener CMC menos de 4. +lblBrawl=Brawl +lblBrawlDesc=Cada jugador tiene una carta legendaria "Comandante" que se puede lanzar en cualquier momento y determina los colores de la baraja. Solo se pueden usar cartas legales en estándar. +lblPlaneswalker=Caminante de Planos +lblPlaneswalkerDesc=Cada jugador tiene una carta de Planeswalker que se puede lanzar en cualquier momento. +lblPlanechase=Planechase +lblPlanechaseDesc=Las cartas de plano aplican efectos globales. La carta de Plano cambia cuando un jugador tira "Planeswalk" en el dado planar. +lblArchenemyDesc=Un jugador es el Archienemigo y lucha contra los otros jugadores jugando cartas de Fenómenos. +lblArchenemyRumble=Archenemy Rumble +lblArchenemyRumbleDesc=Todos los jugadores son Archienemigos y pueden jugar cartas de Fenómenos. +lblMomirBasic=Momir Basic +lblMomirBasicDesc=Each player has a deck containing 60 basic lands and the Momir Vig avatar. +lblMoJhoSto=MoJhoSto +lblMoJhoStoDesc=Cada jugador tiene un mazo que contiene 60 tierras básicas y los avatares Momir Vig, Jhoira of the Ghitu, y Stonehewer Giant avatar diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java index cd59ca3c93f..f413918e55e 100644 --- a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java +++ b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java @@ -18,7 +18,6 @@ package forge.match.input; import java.util.List; - import forge.game.Game; import forge.game.card.Card; import forge.game.card.CardCollection; @@ -29,8 +28,8 @@ import forge.game.zone.ZoneType; import forge.player.PlayerControllerHuman; import forge.util.ITriggerEvent; import forge.util.Lang; -import forge.util.Localizer; import forge.util.ThreadUtil; +import forge.util.Localizer; /** *

@@ -68,7 +67,7 @@ public class InputConfirmMulligan extends InputSyncronizedBase { } else { sb.append(startingPlayer.getName()).append(" " + localizer.getMessage("lblIsGoingFirst") +".\n"); - sb.append(player).append(", "+ localizer.getMessage("lblYouAreGoing") +"").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); + sb.append(player).append(", "+ localizer.getMessage("lblYouAreGoing") + " ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); } getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblKeep"), localizer.getMessage("lblMulligan"), true, true, true); From 3c1ccfef823ecd59a8bd39c8c64bff8777ea4234 Mon Sep 17 00:00:00 2001 From: churrufli Date: Tue, 9 Apr 2019 14:33:23 +0200 Subject: [PATCH 2/4] updating res files --- forge-gui/res/languages/de-DE.properties | 5 +++-- forge-gui/res/languages/en-US.properties | 5 +++-- forge-gui/res/languages/es-es.properties | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 15a592a69f7..58e34266650 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -340,9 +340,10 @@ lblQuestDraft=QuestDraft lblPlanarConquest=PlanarConquest lblPuzzle=Puzzle lblPuzzleDesc=Solve a puzzle from the given game state -lblDeckManager= +lblDeckManager=Deck Manager lblVanguardDesc=Each player has a special \"Avatar\" card that affects the game. -lblCommandesDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. +lblCommander=Commander +lblCommanderDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. lblTinyLeaders=Tiny Leaders lblTinyLeadersDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4. lblBrawl=Brawl diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 2819480c0a8..4912e74c6c3 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -340,9 +340,10 @@ lblQuestDraft=QuestDraft lblPlanarConquest=PlanarConquest lblPuzzle=Puzzle lblPuzzleDesc=Solve a puzzle from the given game state -lblDeckManager= +lblDeckManager=Deck Manager lblVanguardDesc=Each player has a special \"Avatar\" card that affects the game. -lblCommandesDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. +lblCommander=Commander +lblCommanderDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. lblTinyLeaders=Tiny Leaders lblTinyLeadersDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4. lblBrawl=Brawl diff --git a/forge-gui/res/languages/es-es.properties b/forge-gui/res/languages/es-es.properties index 9eb85e99a90..3ebbfd57d72 100644 --- a/forge-gui/res/languages/es-es.properties +++ b/forge-gui/res/languages/es-es.properties @@ -342,7 +342,8 @@ lblPuzzle=Puzzle lblPuzzleDesc=Resuelve un puzzle del estado del juego dado. lblDeckManager=Gestor de Mazos lblVanguardDesc=Cada jugador tiene una carta especial de "Avatar" que afecta el juego. -lblCommandesDesc= +lblCommander=Commander +lblCommanderDesc=Cada jugador tiene una carta legendaria "Comandante" que se puede lanzar en cualquier momento y determina los colores de la baraja. lblTinyLeaders=Tiny Leaders lblTinyLeadersDesc=Cada jugador tiene una carta legendaria "Comandante" que se puede lanzar en cualquier momento y determina los colores de la baraja. Cada carta debe tener CMC menos de 4. lblBrawl=Brawl From 5dd8619663b4921fe9317884fd125ff4ce7b87db Mon Sep 17 00:00:00 2001 From: churrufli Date: Wed, 10 Apr 2019 00:44:52 +0200 Subject: [PATCH 3/4] updating res files --- .../screens/home/quest/VSubmenuDuels.java | 24 +++--- .../screens/home/quest/VSubmenuQuestData.java | 73 +++++++++---------- forge-gui/res/languages/de-DE.properties | 45 +++++++++++- forge-gui/res/languages/en-US.properties | 47 +++++++++++- forge-gui/res/languages/es-es.properties | 47 +++++++++++- 5 files changed, 183 insertions(+), 53 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java index 0a55924132c..6c5f9e37025 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java @@ -8,6 +8,7 @@ import forge.interfaces.IButton; import forge.quest.IVQuestStats; import forge.screens.home.*; import forge.toolbox.*; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import javax.swing.*; @@ -21,10 +22,11 @@ import java.awt.*; public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { SINGLETON_INSTANCE; + final Localizer localizer = Localizer.getInstance(); // Fields used with interface IVDoc private DragCell parentCell; - private final DragTab tab = new DragTab("Quest Duels"); + private final DragTab tab = new DragTab(localizer.getMessage("lblQuestDuels")); // Other fields private final JPanel pnlStats = new JPanel(); @@ -35,8 +37,8 @@ public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { private final StartButton btnStart = new StartButton(); private final FComboBoxWrapper cbxPet = new FComboBoxWrapper<>(); private final FComboBoxWrapper cbxMatchLength = new FComboBoxWrapper<>(); - private final FCheckBox cbPlant = new FCheckBox("Summon Plant"); - private final FLabel lblZep = new FLabel.Builder().text("Launch Zeppelin").fontSize(14).build(); + private final FCheckBox cbPlant = new FCheckBox(localizer.getMessage("cbSummonPlant")); + private final FLabel lblZep = new FLabel.Builder().text(localizer.getMessage("cbLaunchZeppelin")).fontSize(14).build(); private final FLabel lblWorld = new FLabel.Builder() .icon(FSkin.getIcon(FSkinProp.ICO_QUEST_MAP)) @@ -56,24 +58,24 @@ public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { private final FLabel lblWinStreak = new FLabel.Builder() .icon(FSkin.getIcon(FSkinProp.ICO_QUEST_PLUSPLUS)) .fontSize(15).build(); - private final LblHeader lblTitle = new LblHeader("Quest Mode: Duels"); + private final LblHeader lblTitle = new LblHeader(localizer.getMessage("lblQuestModeDuels")); - private final FLabel lblInfo = new FLabel.Builder().text("Select your next duel.") + private final FLabel lblInfo = new FLabel.Builder().text(localizer.getMessage("lblSelectNextDuel")) .fontStyle(Font.BOLD).fontSize(16) .fontAlign(SwingConstants.LEFT).build(); private final FLabel lblCurrentDeck = new FLabel.Builder() - .text("Current deck hasn't been set yet.") + .text(localizer.getMessage("lblNoDuelDeck")) .fontSize(12).build(); private final FLabel lblNextChallengeInWins = new FLabel.Builder() - .text("Next challenge in wins hasn't been set yet.") + .text(localizer.getMessage("lblNextChallengeNotYet")) .fontSize(12).build(); - private final FLabel btnUnlock = new FLabel.ButtonBuilder().text("Unlock Sets").fontSize(16).build(); - private final FLabel btnTravel = new FLabel.ButtonBuilder().text("Travel").fontSize(16).build(); - private final FLabel btnBazaar = new FLabel.ButtonBuilder().text("Bazaar").fontSize(16).build(); - private final FLabel btnSpellShop = new FLabel.ButtonBuilder().text("Spell Shop").fontSize(16).build(); + private final FLabel btnUnlock = new FLabel.ButtonBuilder().text(localizer.getMessage("btnUnlockSets")).fontSize(16).build(); + private final FLabel btnTravel = new FLabel.ButtonBuilder().text(localizer.getMessage("btnTravel")).fontSize(16).build(); + private final FLabel btnBazaar = new FLabel.ButtonBuilder().text(localizer.getMessage("btnBazaar")).fontSize(16).build(); + private final FLabel btnSpellShop = new FLabel.ButtonBuilder().text(localizer.getMessage("btnSpellShop")).fontSize(16).build(); VSubmenuDuels() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java index 70e284faf3d..d369998731f 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java @@ -17,6 +17,7 @@ import forge.screens.home.EMenuGroup; import forge.screens.home.IVSubmenu; import forge.screens.home.VHomeUI; import forge.toolbox.*; +import forge.util.Localizer; import forge.util.storage.IStorage; import net.miginfocom.swing.MigLayout; import org.apache.commons.lang3.text.WordUtils; @@ -36,79 +37,77 @@ import java.util.Map; */ public enum VSubmenuQuestData implements IVSubmenu { SINGLETON_INSTANCE; + final Localizer localizer = Localizer.getInstance(); // Fields used with interface IVDoc private DragCell parentCell; - private final DragTab tab = new DragTab("Quest Data"); + private final DragTab tab = new DragTab(localizer.getMessage("lblQuestData")); private final FLabel lblTitle = new FLabel.Builder() .text("Load Quest Data").fontAlign(SwingConstants.CENTER) .opaque(true).fontSize(16).build(); - private final FLabel lblTitleNew = new FLabel.Builder().text("Start a new Quest") - .opaque(true).fontSize(16).build(); - - private final FLabel lblOldQuests = new FLabel.Builder().text("Old quest data? Put into \"" - + ForgeConstants.QUEST_SAVE_DIR.replace('\\', '/') + "\" and restart Forge.") - .fontAlign(SwingConstants.CENTER).fontSize(12).build(); + private final FLabel lblTitleNew = new FLabel.Builder().text(localizer.getMessage("lblStartanewQuest")).opaque(true).fontSize(16).build(); + String str=new String( ForgeConstants.QUEST_SAVE_DIR.replace('\\', '/')); + private final FLabel lblOldQuests = new FLabel.Builder().text(localizer.getMessage("lblOldQuestData").replace("%n",str)).fontAlign(SwingConstants.CENTER).fontSize(12).build(); private final QuestFileLister lstQuests = new QuestFileLister(); private final FScrollPane scrQuests = new FScrollPane(lstQuests, false); private final JPanel pnlOptions = new JPanel(); /* First column */ - private final FRadioButton radEasy = new FRadioButton("Easy"); - private final FRadioButton radMedium = new FRadioButton("Medium"); - private final FRadioButton radHard = new FRadioButton("Hard"); - private final FRadioButton radExpert = new FRadioButton("Expert"); - private final FCheckBox boxFantasy = new FCheckBox("Fantasy Mode"); - private final FCheckBox boxCommander = new FCheckBox("Commander Subformat"); + private final FRadioButton radEasy = new FRadioButton(localizer.getMessage("rbEasy")); + private final FRadioButton radMedium = new FRadioButton(localizer.getMessage("rbMedium")); + private final FRadioButton radHard = new FRadioButton(localizer.getMessage("rbHard")); + private final FRadioButton radExpert = new FRadioButton(localizer.getMessage("rbExpert")); + private final FCheckBox boxFantasy = new FCheckBox(localizer.getMessage("rbFantasyMode")); + private final FCheckBox boxCommander = new FCheckBox(localizer.getMessage("rbCommanderSubformat")); - private final FLabel lblStartingWorld = new FLabel.Builder().text("Starting world:").build(); + private final FLabel lblStartingWorld = new FLabel.Builder().text(localizer.getMessage("lblStartingWorld") + ":").build(); private final FComboBoxWrapper cbxStartingWorld = new FComboBoxWrapper<>(); /* Second column */ - private final FLabel lblStartingPool = new FLabel.Builder().text("Starting pool:").build(); + private final FLabel lblStartingPool = new FLabel.Builder().text(localizer.getMessage("lblStartingPool") + ":").build(); private final FComboBoxWrapper cbxStartingPool = new FComboBoxWrapper<>(); - private final FLabel lblUnrestricted = new FLabel.Builder().text("All cards will be available to play.").build(); + private final FLabel lblUnrestricted = new FLabel.Builder().text(localizer.getMessage("lblAllCardsAvailable")).build(); - private final FLabel lblPreconDeck = new FLabel.Builder().text("Starter/Event deck:").build(); + private final FLabel lblPreconDeck = new FLabel.Builder().text(localizer.getMessage("lblStarterEventdeck")).build(); private final FComboBoxWrapper cbxPreconDeck = new FComboBoxWrapper<>(); - private final FLabel lblFormat = new FLabel.Builder().text("Sanctioned format:").build(); + private final FLabel lblFormat = new FLabel.Builder().text(localizer.getMessage("lblSanctionedformat")).build(); private final FComboBoxWrapper cbxFormat = new FComboBoxWrapper<>(); - private final FLabel lblCustomDeck = new FLabel.Builder().text("Custom deck:").build(); + private final FLabel lblCustomDeck = new FLabel.Builder().text(localizer.getMessage("lblCustomdeck")).build(); private final FComboBoxWrapper cbxCustomDeck = new FComboBoxWrapper<>(); - private final FLabel btnDefineCustomFormat = new FLabel.Builder().opaque(true).hoverable(true).text("Define custom format").build(); - private final FLabel btnSelectFormat = new FLabel.Builder().opaque(true).hoverable(true).text("Select format").build(); + private final FLabel btnDefineCustomFormat = new FLabel.Builder().opaque(true).hoverable(true).text(localizer.getMessage("lblDefineCustomFormat")).build(); + private final FLabel btnSelectFormat = new FLabel.Builder().opaque(true).hoverable(true).text(localizer.getMessage("lblSelectFormat")).build(); - private final FCheckBox boxCompleteSet = new FCheckBox("Start with all cards in selected sets"); - private final FCheckBox boxAllowDuplicates = new FCheckBox("Allow duplicate cards"); + private final FCheckBox boxCompleteSet = new FCheckBox(localizer.getMessage("lblStartWithAllCards")); + private final FCheckBox boxAllowDuplicates = new FCheckBox(localizer.getMessage("lblAllowDuplicateCards")); - private final FLabel lblPreferredColor = new FLabel.Builder().text("Starting pool distribution:").build(); - private final FLabel btnPreferredColors = new FLabel.Builder().opaque(true).hoverable(true).text("Choose Distribution").build(); + private final FLabel lblPreferredColor = new FLabel.Builder().text(localizer.getMessage("lblStartingPoolDistribution")).build(); + private final FLabel btnPreferredColors = new FLabel.Builder().opaque(true).hoverable(true).text(localizer.getMessage("lblChooseDistribution")).build(); - private final FLabel btnPrizeDefineCustomFormat = new FLabel.Builder().opaque(true).hoverable(true).text("Define custom format").build(); + private final FLabel btnPrizeDefineCustomFormat = new FLabel.Builder().opaque(true).hoverable(true).text(localizer.getMessage("lblDefineCustomFormat")).build(); - private final FLabel btnPrizeSelectFormat = new FLabel.Builder().opaque(true).hoverable(true).text("Select format").build(); + private final FLabel btnPrizeSelectFormat = new FLabel.Builder().opaque(true).hoverable(true).text(localizer.getMessage("lblSelectFormat")).build(); - private final FLabel lblPrizedCards = new FLabel.Builder().text("Prized cards:").build(); + private final FLabel lblPrizedCards = new FLabel.Builder().text(localizer.getMessage("lblPrizedCards")).build(); private final FComboBoxWrapper cbxPrizedCards = new FComboBoxWrapper<>(); - private final FLabel lblPrizeFormat = new FLabel.Builder().text("Sanctioned format:").build(); + private final FLabel lblPrizeFormat = new FLabel.Builder().text(localizer.getMessage("lblSanctionedformat")).build(); private final FComboBoxWrapper cbxPrizeFormat = new FComboBoxWrapper<>(); - private final FLabel lblPrizeUnrestricted = new FLabel.Builder().text("All cards will be available to win.").build(); - private final FLabel lblPrizeSameAsStarting = new FLabel.Builder().text("Only sets in starting pool will be available.").build(); + private final FLabel lblPrizeUnrestricted = new FLabel.Builder().text(localizer.getMessage("lblAllCardsAvailableWin")).build(); + private final FLabel lblPrizeSameAsStarting = new FLabel.Builder().text(localizer.getMessage("lblOnlySetsInStarting")).build(); - private final FCheckBox cboAllowUnlocks = new FCheckBox("Allow unlock of additional editions"); + private final FCheckBox cboAllowUnlocks = new FCheckBox(localizer.getMessage("lblAllowUnlockAdEd")); private final FLabel btnEmbark = new FLabel.Builder().opaque(true) - .fontSize(16).hoverable(true).text("Embark!").build(); + .fontSize(16).hoverable(true).text(localizer.getMessage("lblEmbark")).build(); /* Listeners */ private final ActionListener alStartingPool = new ActionListener() { @@ -203,8 +202,8 @@ public enum VSubmenuQuestData implements IVSubmenu { difficultyPanel.add(radExpert, difficulty_constraints); radEasy.setSelected(true); - boxCompleteSet.setToolTipText("You will start the quest with 4 of each card in the sets you have selected."); - boxAllowDuplicates.setToolTipText("When your starting pool is generated, duplicates of cards may be included."); + boxCompleteSet.setToolTipText(localizer.getMessage("lblboxCompleteSet")); + boxAllowDuplicates.setToolTipText(localizer.getMessage("lblboxAllowDuplicates")); cbxStartingPool.addItem(StartingPoolType.Complete); cbxStartingPool.addItem(StartingPoolType.Sanctioned); @@ -220,7 +219,7 @@ public enum VSubmenuQuestData implements IVSubmenu { alStartingPool.actionPerformed(null); alPrizesPool.actionPerformed(null); - cbxPrizedCards.addItem("Same as starting pool"); + cbxPrizedCards.addItem(localizer.getMessage("lblSameAsStartingPool")); cbxPrizedCards.addItem(StartingPoolType.Complete); cbxPrizedCards.addItem(StartingPoolType.Sanctioned); cbxPrizedCards.addItem(StartingPoolType.Casual); @@ -395,7 +394,7 @@ public enum VSubmenuQuestData implements IVSubmenu { */ @Override public String getMenuTitle() { - return "New / Load Quest"; + return localizer.getMessage("lblNewLoadQuest"); } /* (non-Javadoc) diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 58e34266650..53e298f7a5e 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -353,9 +353,52 @@ lblPlaneswalkerDesc=Each player has a Planeswalker card which can be cast at any lblPlanechase=Planechase lblPlanechaseDesc=Plane cards apply global effects. The Plane card changes when a player rolls \"Planeswalk\" on the planar die. lblArchenemyDesc=One player is the Archenemy and fights the other players by playing Scheme cards. -lblArchenemyRumble= +lblArchenemyRumble=Archenemy Rumble lblArchenemyRumbleDesc=All players are Archenemies and can play Scheme cards. lblMomirBasic=Momir Basic lblMomirBasicDesc=Each player has a deck containing 60 basic lands and the Momir Vig avatar. lblMoJhoSto=MoJhoSto lblMoJhoStoDesc=Each player has a deck containing 60 basic lands and the Momir Vig, Jhoira of the Ghitu, and Stonehewer Giant avatars. +#VSubmenuDuels.java +lblQuestDuels=Quest Duels +lblQuestModeDuels=Quest Mode: Duels +lblSelectNextDuel=Select your next duel. +lblNoDuelDeck=Current deck hasn't been set yet. +lblNextChallengeNotYet=Next challenge in wins hasn't been set yet. +btnUnlockSets=Unlock Sets +btnTravel=Travel +btnBazaar=Bazaar +btnSpellShop=Spell Shop +cbSummonPlant=Summon Plant +cbLaunchZeppelin=Launch Zeppelin +#VSubmenuQuest.java +lblQuestData=Quest Data +lblStartanewQuest=Start a new Quest +lblOldQuestData=Old quest data? Put into %n and restart Forge. +rbEasy=Easy +rbMedium=Medium +rbHard=Hard +rbExpert=Expert +rbFantasyMode=Fantasy Mode +rbCommanderSubformat=Commander Subformat +lblStartingWorld=Starting World +lblStartingPool=Starting Pool +lblAllCardsAvailable=All cards will be available to play. +lblStarterEventdeck=Starter/Event deck: +lblSanctionedformat=Sanctioned format: +lblCustomdeck=Custom deck +lblDefineCustomFormat=Define custom format +lblSelectFormat=Select format +lblStartWithAllCards=Start with all cards in selected sets +lblAllowDuplicateCards=Allow duplicate cards +lblStartingPoolDistribution=Starting pool distribution +lblChooseDistribution=Choose Distribution +lblPrizedCards=Prized cards +lblAllCardsAvailableWin =All cards will be available to win. +lblOnlySetsInStarting="Only sets in starting pool will be available. +lblAllowUnlockAdEd=Allow unlock of additional editions +lblEmbark=Embark! +lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected. +lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included. +lblSameAsStartingPool=Same as starting pool +lblNewLoadQuest=New / Load Quest diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 4912e74c6c3..3dfad30422a 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -343,7 +343,7 @@ lblPuzzleDesc=Solve a puzzle from the given game state lblDeckManager=Deck Manager lblVanguardDesc=Each player has a special \"Avatar\" card that affects the game. lblCommander=Commander -lblCommanderDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. +lblCommanderDesc=Each player has a legendary "General" card which can be cast at any time and determines deck colors. lblTinyLeaders=Tiny Leaders lblTinyLeadersDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4. lblBrawl=Brawl @@ -353,9 +353,52 @@ lblPlaneswalkerDesc=Each player has a Planeswalker card which can be cast at any lblPlanechase =Planechase lblPlanechaseDesc=Plane cards apply global effects. The Plane card changes when a player rolls \"Planeswalk\" on the planar die. lblArchenemyDesc=One player is the Archenemy and fights the other players by playing Scheme cards. -lblArchenemyRumble= +lblArchenemyRumble=Archenemy Rumble lblArchenemyRumbleDesc=All players are Archenemies and can play Scheme cards. lblMomirBasic=Momir Basic lblMomirBasicDesc=Each player has a deck containing 60 basic lands and the Momir Vig avatar. lblMoJhoSto=MoJhoSto lblMoJhoStoDesc=Each player has a deck containing 60 basic lands and the Momir Vig, Jhoira of the Ghitu, and Stonehewer Giant avatars. +#VSubmenuDuels.java +lblQuestDuels=Quest Duels +lblQuestModeDuels=Quest Mode: Duels +lblSelectNextDuel=Select your next duel. +lblNoDuelDeck=Current deck hasn't been set yet. +lblNextChallengeNotYet=Next challenge in wins hasn't been set yet. +btnUnlockSets=Unlock Sets +btnTravel=Travel +btnBazaar=Bazaar +btnSpellShop=Spell Shop +cbSummonPlant=Summon Plant +cbLaunchZeppelin=Launch Zeppelin +#VSubmenuQuest.java +lblQuestData=Quest Data +lblStartanewQuest=Start a new Quest +lblOldQuestData=Old quest data? Put into %n and restart Forge. +rbEasy=Easy +rbMedium=Medium +rbHard=Hard +rbExpert=Expert +rbFantasyMode=Fantasy Mode +rbCommanderSubformat=Commander Subformat +lblStartingWorld=Starting World +lblStartingPool=Starting Pool +lblAllCardsAvailable=All cards will be available to play. +lblStarterEventdeck=Starter/Event deck: +lblSanctionedformat=Sanctioned format: +lblCustomdeck=Custom deck +lblDefineCustomFormat=Define custom format +lblSelectFormat=Select format +lblStartWithAllCards=Start with all cards in selected sets +lblAllowDuplicateCards=Allow duplicate cards +lblStartingPoolDistribution=Starting pool distribution +lblChooseDistribution=Choose Distribution +lblPrizedCards=Prized cards +lblAllCardsAvailableWin =All cards will be available to win. +lblOnlySetsInStarting=Only sets in starting pool will be available. +lblAllowUnlockAdEd=Allow unlock of additional editions +lblEmbark=Embark! +lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected. +lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included. +lblSameAsStartingPool=Same as starting pool +lblNewLoadQuest=New / Load Quest \ 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 3ebbfd57d72..14cb904cf41 100644 --- a/forge-gui/res/languages/es-es.properties +++ b/forge-gui/res/languages/es-es.properties @@ -356,6 +356,49 @@ lblArchenemyDesc=Un jugador es el Archienemigo y lucha contra los otros jugadore lblArchenemyRumble=Archenemy Rumble lblArchenemyRumbleDesc=Todos los jugadores son Archienemigos y pueden jugar cartas de Fenómenos. lblMomirBasic=Momir Basic -lblMomirBasicDesc=Each player has a deck containing 60 basic lands and the Momir Vig avatar. +lblMomirBasicDesc=Cada jugador tiene un mazo que contiene 60 tierras básicas y el avatar de Momir Vig. lblMoJhoSto=MoJhoSto -lblMoJhoStoDesc=Cada jugador tiene un mazo que contiene 60 tierras básicas y los avatares Momir Vig, Jhoira of the Ghitu, y Stonehewer Giant avatar +lblMoJhoStoDesc=Cada jugador tiene un mazo que contiene 60 tierras básicas y los avatares Momir Vig, Jhoira of the Ghitu, y Stonehewer Giant. +#VSubmenuDuels.java +lblQuestDuels=Duelos de Aventura +lblQuestModeDuels=Modo Quest: Duelos +lblSelectNextDuel=Select your next duel. +lblNoDuelDeck=Current deck hasn't been set yet. +lblNextChallengeNotYet=Next challenge in wins hasn't been set yet. +btnUnlockSets=Unlock Sets +btnTravel=Travel +btnBazaar=Bazaar +btnSpellShop=Spell Shop +cbSummonPlant=Summon Plant +cbLaunchZeppelin=Launch Zeppelin +#VSubmenuQuest.java +lblQuestData=Quest Data +lblStartanewQuest=Start a new Quest +lblOldQuestData=Old quest data? Put into %n and restart Forge. +rbEasy=Easy +rbMedium=Medium +rbHard=Hard +rbExpert=Expert +rbFantasyMode=Fantasy Mode +rbCommanderSubformat=Commander Subformat +lblStartingWorld=Starting World +lblStartingPool=Starting Pool +lblAllCardsAvailable=All cards will be available to play. +lblStarterEventdeck=Starter/Event deck: +lblSanctionedformat=Sanctioned format: +lblCustomdeck=Custom deck +lblDefineCustomFormat=Define custom format +lblSelectFormat=Select format +lblStartWithAllCards=Start with all cards in selected sets +lblAllowDuplicateCards=Allow duplicate cards +lblStartingPoolDistribution=Starting pool distribution +lblChooseDistribution=Choose Distribution +lblPrizedCards=Prized cards +lblAllCardsAvailableWin=All cards will be available to win. +lblOnlySetsInStarting="Only sets in starting pool will be available. +lblAllowUnlockAdEd=Allow unlock of additional editions +lblEmbark=Embark! +lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected. +lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included. +lblSameAsStartingPool=Same as starting pool +lblNewLoadQuest=New / Load Quest From b95022740be7ec7747359ccbdc737bacf522f001 Mon Sep 17 00:00:00 2001 From: churrufli Date: Sun, 14 Apr 2019 09:51:35 +0200 Subject: [PATCH 4/4] updating res files --- .../main/java/forge/screens/home/VLobby.java | 2 +- .../home/quest/CSubmenuChallenges.java | 13 +- .../screens/home/quest/CSubmenuDuels.java | 7 +- .../screens/home/quest/CSubmenuQuestData.java | 16 +- .../home/quest/CSubmenuQuestDecks.java | 5 +- .../home/quest/CSubmenuQuestPrefs.java | 8 +- .../home/quest/DialogChooseFormats.java | 16 +- .../quest/DialogChoosePoolDistribution.java | 51 ++--- .../home/quest/VSubmenuChallenges.java | 2 + .../screens/home/quest/VSubmenuDuels.java | 3 +- .../screens/home/quest/VSubmenuQuestData.java | 8 +- forge-gui/res/languages/de-DE.properties | 62 +++++- forge-gui/res/languages/en-US.properties | 56 +++++- forge-gui/res/languages/es-es.properties | 186 +++++++++++------- 14 files changed, 300 insertions(+), 135 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java index 7d3f4e85653..6c237306774 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java @@ -894,7 +894,7 @@ public class VLobby implements ILobbyView { final List usedNames = getPlayerNames(); do { newName = NameGenerator.getRandomName(gender, type, usedNames); - confirmMsg = localizer.getMessage("lblconfirmName").replace("%n","\"" +newName + "\""); + confirmMsg = localizer.getMessage("lblconfirmName").replace("%s","\"" +newName + "\""); } while (!FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true)); return newName; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java index d422d8db4a2..5b0a3ad6750 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java @@ -26,6 +26,7 @@ import forge.quest.bazaar.QuestItemType; import forge.quest.bazaar.QuestPetController; import forge.toolbox.FLabel; import forge.toolbox.JXButtonPanel; +import forge.util.Localizer; /** * Controls the quest challenges submenu in the home UI. @@ -73,7 +74,8 @@ public enum CSubmenuChallenges implements ICDoc { new UiCommand() { @Override public void run() { - if (!QuestUtil.checkActiveQuest("Launch a Zeppelin.")) { + final Localizer localizer = Localizer.getInstance(); + if (!QuestUtil.checkActiveQuest(localizer.getMessage("lblLaunchaZeppelin"))) { return; } FModel.getQuest().getAchievements().setCurrentChallenges(null); @@ -86,7 +88,8 @@ public enum CSubmenuChallenges implements ICDoc { view.getCbPlant().addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent arg0) { - quest.selectPet(0, view.getCbPlant().isSelected() ? "Plant" : null); + final Localizer localizer = Localizer.getInstance(); + quest.selectPet(0, view.getCbPlant().isSelected() ? localizer.getMessage("lblPlant") : null); quest.save(); } }); @@ -145,8 +148,8 @@ public enum CSubmenuChallenges implements ICDoc { if (qCtrl.getAchievements() == null) { return; } - - view.getLblTitle().setText("Challenges: " + qCtrl.getRank()); + final Localizer localizer = Localizer.getInstance(); + view.getLblTitle().setText(localizer.getMessage("lblChallenges") +": " + qCtrl.getRank()); view.getPnlChallenges().removeAll(); qCtrl.regenerateChallenges(); @@ -158,7 +161,7 @@ public enum CSubmenuChallenges implements ICDoc { final JXButtonPanel grpPanel = new JXButtonPanel(); StringBuilder sb = new StringBuilder(); - sb.append("Match - Best of ").append(FModel.getQuest().getMatchLength()); + sb.append(localizer.getMessage("lblMatchBestof") + " ").append(FModel.getQuest().getMatchLength()); view.getCbxMatchLength().setSelectedItem(sb.toString()); boolean haveAnyChallenges = true; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java index 3110c35131a..448f521e7e7 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java @@ -8,6 +8,7 @@ import forge.quest.QuestEventDuel; import forge.quest.QuestUtil; import forge.quest.bazaar.QuestPetController; import forge.toolbox.JXButtonPanel; +import forge.util.Localizer; import javax.swing.*; import java.awt.event.*; @@ -168,8 +169,8 @@ public enum CSubmenuDuels implements ICDoc { final VSubmenuDuels view = VSubmenuDuels.SINGLETON_INSTANCE; if (FModel.getQuest().getAchievements() != null) { - - view.getLblTitle().setText("Duels: " + FModel.getQuest().getRank()); + final Localizer localizer = Localizer.getInstance(); + view.getLblTitle().setText(localizer.getMessage("lblDuels") + ": " + FModel.getQuest().getRank()); view.getPnlDuels().removeAll(); final List duels = FModel.getQuest().getDuelsManager().generateDuels(); @@ -196,7 +197,7 @@ public enum CSubmenuDuels implements ICDoc { view.getPnlDuels().add(grpPanel, "w 100%!"); StringBuilder sb = new StringBuilder(); - sb.append("Match - Best of ").append(FModel.getQuest().getMatchLength()); + sb.append(localizer.getMessage("lblMatchBestof") + " ").append(FModel.getQuest().getMatchLength()); view.getCbxMatchLength().setSelectedItem(sb.toString()); } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestData.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestData.java index 8aa76293b55..6294c372932 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestData.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestData.java @@ -17,6 +17,7 @@ import forge.quest.data.QuestPreferences.QPref; import forge.quest.io.QuestDataIO; import forge.screens.bazaar.CBazaarUI; import forge.toolbox.FOptionPane; +import forge.util.Localizer; import javax.swing.*; import java.io.File; @@ -230,6 +231,7 @@ public enum CSubmenuQuestData implements ICDoc { * The actuator for new quests. */ private void newQuest() { + final Localizer localizer = Localizer.getInstance(); final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE; final int difficulty = view.getSelectedDifficulty(); @@ -250,7 +252,7 @@ public enum CSubmenuQuestData implements ICDoc { case Casual: case CustomFormat: if (customFormatCodes.isEmpty()) { - if (!FOptionPane.showConfirmDialog("You have defined a custom format that doesn't contain any sets.\nThis will start a game without restriction.\n\nContinue?")) { + if (!FOptionPane.showConfirmDialog(localizer.getMessage("lblNotFormatDefined"))) { return; } } @@ -262,7 +264,7 @@ public enum CSubmenuQuestData implements ICDoc { case Cube: dckStartPool = view.getSelectedDeck(); if (null == dckStartPool) { - FOptionPane.showMessageDialog("You have not selected a deck to start.", "Cannot start a quest", FOptionPane.ERROR_ICON); + FOptionPane.showMessageDialog(localizer.getMessage("lbldckStartPool"), localizer.getMessage("lblCannotStartaQuest"), FOptionPane.ERROR_ICON); return; } break; @@ -296,7 +298,7 @@ public enum CSubmenuQuestData implements ICDoc { sets.add(c.getKey().getEdition()); } } - fmtPrizes = new GameFormat("From deck", sets, null); + fmtPrizes = new GameFormat(localizer.getMessage("lblFromDeck"), sets, null); } } else { @@ -307,7 +309,7 @@ public enum CSubmenuQuestData implements ICDoc { case Casual: case CustomFormat: if (customPrizeFormatCodes.isEmpty()) { - if (!FOptionPane.showConfirmDialog("You have defined custom format as containing no sets.\nThis will choose all editions without restriction as prizes.\n\nContinue?")) { + if (!FOptionPane.showConfirmDialog(localizer.getMessage("lblNotFormatDefined"))) { return; } } @@ -325,17 +327,17 @@ public enum CSubmenuQuestData implements ICDoc { String questName; while (true) { - questName = FOptionPane.showInputDialog("Poets will remember your quest as:", "Quest Name"); + questName = FOptionPane.showInputDialog(localizer.getMessage("MsgQuestNewName") + ":", localizer.getMessage("TitQuestNewName")); if (questName == null) { return; } questName = QuestUtil.cleanString(questName); if (questName.isEmpty()) { - FOptionPane.showMessageDialog("Please specify a quest name."); + FOptionPane.showMessageDialog(localizer.getMessage("lblQuestNameEmpty")); continue; } if (getAllQuests().get(questName + ".dat") != null) { - FOptionPane.showMessageDialog("A quest already exists with that name. Please pick another quest name."); + FOptionPane.showMessageDialog(localizer.getMessage("lblQuestExists")); continue; } break; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java index 0a82eb7ca0d..cfa4e792c4d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java @@ -14,6 +14,7 @@ import forge.quest.QuestUtil; import forge.quest.data.QuestPreferences.QPref; import forge.screens.deckeditor.CDeckEditorUI; import forge.screens.deckeditor.controllers.CEditorQuest; +import forge.util.Localizer; /** * Controls the quest decks submenu in the home UI. @@ -55,10 +56,12 @@ public enum CSubmenuQuestDecks implements ICDoc { */ @Override public void initialize() { + final Localizer localizer = Localizer.getInstance(); + VSubmenuQuestDecks.SINGLETON_INSTANCE.getBtnNewDeck().setCommand(new UiCommand() { @Override public void run() { - if (!QuestUtil.checkActiveQuest("Create a Deck.")) { + if (!QuestUtil.checkActiveQuest(localizer.getMessage("lblCreateaDeck"))) { return; } Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java index d18cf775883..508982abb77 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java @@ -8,6 +8,7 @@ import forge.gui.framework.ICDoc; import forge.model.FModel; import forge.quest.data.QuestPreferences; import forge.screens.home.quest.VSubmenuQuestPrefs.PrefInput; +import forge.util.Localizer; /** * Controls the quest preferences submenu in the home UI. @@ -52,8 +53,8 @@ public enum CSubmenuQuestPrefs implements ICDoc { final Integer val = Ints.tryParse(i0.getText()); resetErrors(); - - final String validationError = val == null ? "Enter a number" : prefs.validatePreference(i0.getQPref(), val.intValue()); + final Localizer localizer = Localizer.getInstance(); + final String validationError = val == null ? localizer.getMessage("lblEnteraNumber") : prefs.validatePreference(i0.getQPref(), val.intValue()); if (validationError != null) { showError(i0, validationError); return; @@ -66,7 +67,8 @@ public enum CSubmenuQuestPrefs implements ICDoc { private static void showError(final PrefInput i0, final String s0) { final VSubmenuQuestPrefs view = VSubmenuQuestPrefs.SINGLETON_INSTANCE; - final String s = "Save failed: " + s0; + final Localizer localizer = Localizer.getInstance(); + final String s = localizer.getMessage("lblSavefailed") +":" + s0; switch(i0.getErrType()) { case BOOSTER: view.getLblErrBooster().setVisible(true); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChooseFormats.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChooseFormats.java index 378715b3a07..18806949fdc 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChooseFormats.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChooseFormats.java @@ -5,6 +5,7 @@ import forge.game.GameFormat; import forge.gui.SOverlayUtils; import forge.model.FModel; import forge.toolbox.*; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import javax.swing.*; @@ -19,7 +20,8 @@ public class DialogChooseFormats { private Runnable okCallback; private final List choices = new ArrayList<>(); - private final FCheckBox cbWantReprints = new FCheckBox("Allow compatible reprints from other sets"); + final Localizer localizer = Localizer.getInstance(); + private final FCheckBox cbWantReprints = new FCheckBox(localizer.getMessage("cbWantReprints")); public DialogChooseFormats(){ this(null); @@ -56,12 +58,12 @@ public class DialogChooseFormats { panel.setOpaque(false); panel.setBackgroundTexture(FSkin.getIcon(FSkinProp.BG_TEXTURE)); - panel.add(new FLabel.Builder().text("Choose formats").fontSize(18).build(), "center, span, wrap, gaptop 10"); + panel.add(new FLabel.Builder().text(localizer.getMessage("lblChooseFormats")).fontSize(18).build(), "center, span, wrap, gaptop 10"); String constraints = "aligny top"; - panel.add(makeCheckBoxList(sanctioned, "Sanctioned", true), constraints); - panel.add(makeCheckBoxList(casual, "Other", false), constraints); - panel.add(makeCheckBoxList(historic, "Historic", false), constraints); + panel.add(makeCheckBoxList(sanctioned, localizer.getMessage("lblSanctioned"), true), constraints); + panel.add(makeCheckBoxList(casual, localizer.getMessage("lblOther"), false), constraints); + panel.add(makeCheckBoxList(historic, localizer.getMessage("lblHistoric"), false), constraints); final JPanel overlay = FOverlay.SINGLETON_INSTANCE.getPanel(); overlay.setLayout(new MigLayout("insets 0, gap 0, wrap, ax center, ay center")); @@ -73,7 +75,7 @@ public class DialogChooseFormats { } }; - FButton btnOk = new FButton("OK"); + FButton btnOk = new FButton(localizer.getMessage("lblOk")); btnOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { @@ -82,7 +84,7 @@ public class DialogChooseFormats { } }); - FButton btnCancel = new FButton("Cancel"); + FButton btnCancel = new FButton(localizer.getMessage("lblCancel")); btnCancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java index e46e0e37420..3e851a280ae 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java @@ -6,6 +6,7 @@ import forge.card.MagicColor; import forge.gui.SOverlayUtils; import forge.quest.StartingPoolPreferences.PoolType; import forge.toolbox.*; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import javax.swing.*; @@ -17,27 +18,27 @@ import java.util.List; @SuppressWarnings("WeakerAccess") public class DialogChoosePoolDistribution { - + final Localizer localizer = Localizer.getInstance(); private final FPanel mainPanel = new FPanel(new MigLayout("insets 20, gap 25, center, wrap 2")); - private final FCheckBox cbxBlack = new FCheckBox("Black"); - private final FCheckBox cbxBlue = new FCheckBox("Blue"); - private final FCheckBox cbxGreen = new FCheckBox("Green"); - private final FCheckBox cbxRed = new FCheckBox("Red"); - private final FCheckBox cbxWhite = new FCheckBox("White"); - private final FCheckBox cbxColorless = new FCheckBox("Colorless"); - private final FCheckBox cbxArtifacts = new FCheckBox("Include Artifacts"); + private final FCheckBox cbxBlack = new FCheckBox(localizer.getMessage("lblBlack")); + private final FCheckBox cbxBlue = new FCheckBox(localizer.getMessage("lblBlue")); + private final FCheckBox cbxGreen = new FCheckBox(localizer.getMessage("lblGreen")); + private final FCheckBox cbxRed = new FCheckBox(localizer.getMessage("lblRed")); + private final FCheckBox cbxWhite = new FCheckBox(localizer.getMessage("lblWhite")); + private final FCheckBox cbxColorless = new FCheckBox(localizer.getMessage("lblColorless")); + private final FCheckBox cbxArtifacts = new FCheckBox(localizer.getMessage("lblIncludeArtifacts")); - private final FRadioButton radBalanced = new FRadioButton("Balanced"); - private final FRadioButton radRandom = new FRadioButton("True Random"); - private final FRadioButton radSurpriseMe = new FRadioButton("Surprise Me"); - private final FRadioButton radBoosters = new FRadioButton("Boosters"); + private final FRadioButton radBalanced = new FRadioButton(localizer.getMessage("lblBalanced")); + private final FRadioButton radRandom = new FRadioButton(localizer.getMessage("lblTrueRandom")); + private final FRadioButton radSurpriseMe = new FRadioButton(localizer.getMessage("lblSurpriseMe")); + private final FRadioButton radBoosters = new FRadioButton(localizer.getMessage("lblBoosters")); private final ButtonGroup poolTypeButtonGroup = new ButtonGroup(); private final FTextField numberOfBoostersField = new FTextField.Builder().text("0").maxLength(10).build(); - private final FButton btnOk = new FButton("OK"); + private final FButton btnOk = new FButton(localizer.getMessage("lblOk")); private Runnable callback; @@ -100,7 +101,7 @@ public class DialogChoosePoolDistribution { final FPanel right = new FPanel(new MigLayout(contentPanelConstraints)); right.setOpaque(false); - final FLabel clearColors = new FLabel.Builder().text("Clear All").fontSize(12).opaque(true).hoverable(true).build(); + final FLabel clearColors = new FLabel.Builder().text(localizer.getMessage("lblClearAll")).fontSize(12).opaque(true).hoverable(true).build(); clearColors.setCommand(new UiCommand() { @Override public void run() { @@ -113,9 +114,9 @@ public class DialogChoosePoolDistribution { } }); - final FLabel boosterPackLabel = new FLabel.Builder().text("Number of Boosters:").fontSize(14).build(); - final FLabel colorsLabel = new FLabel.Builder().text("Colors").fontSize(18).build(); - final FTextPane noSettingsText = new FTextPane("No settings are available for this selection."); + final FLabel boosterPackLabel = new FLabel.Builder().text(localizer.getMessage("lblNumberofBoosters") + ":").fontSize(14).build(); + final FLabel colorsLabel = new FLabel.Builder().text(localizer.getMessage("lblColors")).fontSize(18).build(); + final FTextPane noSettingsText = new FTextPane(localizer.getMessage("lblnoSettings")); if (radBoosters.isSelected()) { right.add(boosterPackLabel, "gaptop 10"); @@ -139,7 +140,7 @@ public class DialogChoosePoolDistribution { //Left Side final FPanel left = new FPanel(new MigLayout(contentPanelConstraints)); left.setOpaque(false); - left.add(new FLabel.Builder().text("Distribution").fontSize(18).build(), "gaptop 10"); + left.add(new FLabel.Builder().text(localizer.getMessage("lblDistribution")).fontSize(18).build(), "gaptop 10"); final JXButtonPanel poolTypePanel = new JXButtonPanel(); final String radioConstraints = "h 25px!, gaptop 5"; @@ -149,7 +150,7 @@ public class DialogChoosePoolDistribution { poolTypePanel.add(radBoosters, radioConstraints); left.add(poolTypePanel, "gaptop 15"); - left.add(new FTextPane("Hover over each item for a more detailed description."), "gaptop 20"); + left.add(new FTextPane(localizer.getMessage("lblHoverforDescription")), "gaptop 20"); ActionListener radioButtonListener = new ActionListener() { @Override @@ -202,11 +203,11 @@ public class DialogChoosePoolDistribution { cbxArtifacts.setVisible(!radSurpriseMe.isSelected() && !radBoosters.isSelected()); numberOfBoostersField.setVisible(radBoosters.isSelected()); - radBalanced.setToolTipText("A \"Balanced\" distribution will provide a roughly equal number of cards in each selected color."); - radRandom.setToolTipText("A \"True Random\" distribution will be almost entirely randomly selected. This ignores any color selections."); - radSurpriseMe.setToolTipText("This is the same as a \"Balanced\" distribution, except the colors picked will be random and you will not be told what they are."); - radBoosters.setToolTipText("This ignores all color settings and instead generates a card pool out of a specified number of booster packs."); - cbxArtifacts.setToolTipText("When selected, artifacts will be included in your pool regardless of color selections. This mimics the old card pool behavior."); + radBalanced.setToolTipText(localizer.getMessage("lblradBalanced")); + radRandom.setToolTipText(localizer.getMessage("lblradRandom")); + radSurpriseMe.setToolTipText(localizer.getMessage("lblradSurpriseMe")); + radBoosters.setToolTipText(localizer.getMessage("lblradBoosters")); + cbxArtifacts.setToolTipText(localizer.getMessage("lblcbxArtifacts")); radBalanced.addActionListener(radioButtonListener); radRandom.addActionListener(radioButtonListener); @@ -225,7 +226,7 @@ public class DialogChoosePoolDistribution { } }); - FButton btnCancel = new FButton("Cancel"); + FButton btnCancel = new FButton(localizer.getMessage("lblCancel")); btnCancel.setCommand(new UiCommand() { @Override public void run() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java index abb6b6fb5fd..7a0c580adc4 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java @@ -7,6 +7,7 @@ import forge.gui.framework.EDocID; import forge.quest.IVQuestStats; import forge.screens.home.*; import forge.toolbox.*; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import javax.swing.*; @@ -20,6 +21,7 @@ import java.awt.*; public enum VSubmenuChallenges implements IVSubmenu, IVQuestStats { /** */ SINGLETON_INSTANCE; + final Localizer localizer = Localizer.getInstance(); // Fields used with interface IVDoc private DragCell parentCell; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java index 6c5f9e37025..980a5f31894 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java @@ -8,9 +8,8 @@ import forge.interfaces.IButton; import forge.quest.IVQuestStats; import forge.screens.home.*; import forge.toolbox.*; -import forge.util.Localizer; import net.miginfocom.swing.MigLayout; - +import forge.util.Localizer; import javax.swing.*; import java.awt.*; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java index d369998731f..0d5d380d163 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestData.java @@ -17,8 +17,8 @@ import forge.screens.home.EMenuGroup; import forge.screens.home.IVSubmenu; import forge.screens.home.VHomeUI; import forge.toolbox.*; -import forge.util.Localizer; import forge.util.storage.IStorage; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import org.apache.commons.lang3.text.WordUtils; @@ -50,7 +50,7 @@ public enum VSubmenuQuestData implements IVSubmenu { private final FLabel lblTitleNew = new FLabel.Builder().text(localizer.getMessage("lblStartanewQuest")).opaque(true).fontSize(16).build(); String str=new String( ForgeConstants.QUEST_SAVE_DIR.replace('\\', '/')); - private final FLabel lblOldQuests = new FLabel.Builder().text(localizer.getMessage("lblOldQuestData").replace("%n",str)).fontAlign(SwingConstants.CENTER).fontSize(12).build(); + private final FLabel lblOldQuests = new FLabel.Builder().text(localizer.getMessage("lblOldQuestData").replace("%s",str)).fontAlign(SwingConstants.CENTER).fontSize(12).build(); private final QuestFileLister lstQuests = new QuestFileLister(); private final FScrollPane scrQuests = new FScrollPane(lstQuests, false); private final JPanel pnlOptions = new JPanel(); @@ -72,10 +72,10 @@ public enum VSubmenuQuestData implements IVSubmenu { private final FLabel lblUnrestricted = new FLabel.Builder().text(localizer.getMessage("lblAllCardsAvailable")).build(); - private final FLabel lblPreconDeck = new FLabel.Builder().text(localizer.getMessage("lblStarterEventdeck")).build(); + private final FLabel lblPreconDeck = new FLabel.Builder().text(localizer.getMessage("lblStarterEventdeck") +":").build(); private final FComboBoxWrapper cbxPreconDeck = new FComboBoxWrapper<>(); - private final FLabel lblFormat = new FLabel.Builder().text(localizer.getMessage("lblSanctionedformat")).build(); + private final FLabel lblFormat = new FLabel.Builder().text(localizer.getMessage("lblSanctionedformat") + "").build(); private final FComboBoxWrapper cbxFormat = new FComboBoxWrapper<>(); private final FLabel lblCustomDeck = new FLabel.Builder().text(localizer.getMessage("lblCustomdeck")).build(); diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 53e298f7a5e..16f2b0b5724 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -13,8 +13,8 @@ btnDeleteWorkshopUI=Workshop-Layout zurücksetzen btnUserProfileUI=Öffne Benutzer-Verzeichnis btnContentDirectoryUI=Öffne Daten-Verzeichnis btnResetJavaFutureCompatibilityWarnings=Java-Kompatibilitätswarnung zurücksetzen -btnClearImageCache= Clear Image Cache -btnTokenPreviewer= Token Previewer +btnClearImageCache=Clear Image Cache +btnTokenPreviewer=Token Previewer btnCopyToClipboard=In Zwischenablage kopieren cbpSelectLanguage=Language nlSelectLanguage=Select Language (Excluded Game part. Still a work in progress) (RESTART REQUIRED) @@ -190,7 +190,7 @@ lblGameSettings=Spieleinstellungen lblHeaderConstructedMode=Sanctioned Format: Constructed lblGetNewRandomName=Get new random name lbltypeofName=What type of name do you want to generate? -lblconfirmName= Would you like to use the name %n, or try again? +lblconfirmName=Would you like to use the name %n, or try again? lblUseThisName=Use this name lblTryAgain=Try Again lblAddAPlayer=Add a Player @@ -206,7 +206,7 @@ lblSelectaCommanderDeck=Wähle Commanderdeck lblSelectaPlanarDeck=Wähle Weltendeck lblPlanarDeckEditor=Weltendeck-Editor lblSelectaVanguardAvatar=Wähle Vanguard-Avatar -lblVanguardAvatar= Vanguard avatar +lblVanguardAvatar=Vanguard avatar lblDeck=Deck lblSchemeDeck=Komplottdeck lblCommanderDeck=Commanderdeck @@ -303,7 +303,7 @@ lblSHORTCUT_MACRO_RECORD=Duell: Aktion-Abfolge-Makro aufnehmen lblSHORTCUT_MACRO_NEXT_ACTION=Duel: führe nächste Aktion im gespeicherten Makro aus lblSHORTCUT_CARD_ZOOM=Duell: Zoome ausgewählte Karte #VSubmenuDraft.java -lblBoosterDraft= Booster Draft +lblBoosterDraft=Booster Draft lblHeaderBoosterDraft=Sanctioned Format: Booster Draft lblPlayAnOpponent=Play an opponent lblPlayAll7opponents=Play all 7 opponents @@ -394,7 +394,7 @@ lblAllowDuplicateCards=Allow duplicate cards lblStartingPoolDistribution=Starting pool distribution lblChooseDistribution=Choose Distribution lblPrizedCards=Prized cards -lblAllCardsAvailableWin =All cards will be available to win. +lblAllCardsAvailableWin=All cards will be available to win. lblOnlySetsInStarting="Only sets in starting pool will be available. lblAllowUnlockAdEd=Allow unlock of additional editions lblEmbark=Embark! @@ -402,3 +402,53 @@ lblboxCompleteSet=You will start the quest with 4 of each card in the sets you h lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included. lblSameAsStartingPool=Same as starting pool lblNewLoadQuest=New / Load Quest +#CSubmenuQChallenges.java +lblLaunchaZeppelin=Launch a Zeppelin. +lblPlant=Plant +lblChallenges=Challenges +lblMatchBestof=Match - Best of +lblDuels=Duels +#CSubmenuQuestData.java +lblNotFormatDefined=You have defined custom format as containing no sets.\nThis will choose all editions without restriction as prizes.\n\nContinue? +lbldckStartPool=You have not selected a deck to start. +lblCannotStartaQuest=Cannot start a quest +lblFromDeck=From deck +MsgQuestNewName=Poets will remember your quest as +TitQuestNewName=Quest Name +lblQuestNameEmpty=Please specify a quest name. +lblQuestExists=A quest already exists with that name. Please pick another quest name. +#CSubmenuQuestDecks.java +lblCreateaDeck=Create a Deck. +#CSubmenuQuestPrefs.java +lblEnteraNumber=Enter a number +lblSavefailed=Save failed +#DialogChooseFormats.java +cbWantReprints=Allow compatible reprints from other sets +lblChooseFormats=Choose formats +lblSanctioned=Sanctioned +lblOther=Other +lblHistoric=Historic +lblCancel=Cancel +#DialogChoosePoolDistribution.java +lblBlack=Black +lblBlue=Blue +lblGreen=Green +lblRed=Red +lblWhite=White +lblColorless=Colorless +lblIncludeArtifacts=Include Artifacts +lblBalanced=Balanced +lblTrueRandom=True Random +lblSurpriseMe=Surprise Me +lblBoosters=Boosters +lblClearAll=Clear All +lblNumberofBoosters=Number of Boosters +lblColors=Colors +lblnoSettings=No settings are available for this selection. +lblDistribution=Distribution +lblHoverforDescription=Hover over each item for a more detailed description. +lblradBalanced=A "Balanced" distribution will provide a roughly equal number of cards in each selected color. +lblradRandom=A "True Random" distribution will be almost entirely randomly selected. This ignores any color selections. +lblradSurpriseMe=This is the same as a "Balanced" distribution, except the colors picked will be random and you will not be told what they are. +lblradBoosters=This ignores all color settings and instead generates a card pool out of a specified number of booster packs. +lblcbxArtifacts=When selected, artifacts will be included in your pool regardless of color selections. This mimics the old card pool behavior. diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 3dfad30422a..53588825670 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -190,7 +190,7 @@ lblGameSettings = Game Settings lblHeaderConstructedMode=Sanctioned Format: Constructed lblGetNewRandomName=Get new random name lbltypeofName=What type of name do you want to generate? -lblconfirmName= Would you like to use the name %n, or try again? +lblconfirmName= Would you like to use the name %s, or try again? lblUseThisName=Use this name lblTryAgain=Try Again lblAddAPlayer=Add a Player @@ -374,7 +374,7 @@ cbLaunchZeppelin=Launch Zeppelin #VSubmenuQuest.java lblQuestData=Quest Data lblStartanewQuest=Start a new Quest -lblOldQuestData=Old quest data? Put into %n and restart Forge. +lblOldQuestData=Old quest data? Put into %s and restart Forge. rbEasy=Easy rbMedium=Medium rbHard=Hard @@ -401,4 +401,54 @@ lblEmbark=Embark! lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected. lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included. lblSameAsStartingPool=Same as starting pool -lblNewLoadQuest=New / Load Quest \ No newline at end of file +lblNewLoadQuest=New / Load Quest +#CSubmenuQChallenges.java +lblLaunchaZeppelin=Launch a Zeppelin. +lblPlant=Plant +lblChallenges=Challenges +lblMatchBestof=Match - Best of +lblDuels=Duels +#CSubmenuQuestData.java +lblNotFormatDefined=You have defined custom format as containing no sets.\nThis will choose all editions without restriction as prizes.\n\nContinue? +lbldckStartPool=You have not selected a deck to start. +lblCannotStartaQuest=Cannot start a quest +lblFromDeck=From deck +MsgQuestNewName=Poets will remember your quest as +TitQuestNewName=Quest Name +lblQuestNameEmpty=Please specify a quest name. +lblQuestExists=A quest already exists with that name. Please pick another quest name. +#CSubmenuQuestDecks.java +lblCreateaDeck=Create a Deck. +#CSubmenuQuestPrefs.java +lblEnteraNumber=Enter a number +lblSavefailed=Save failed +#DialogChooseFormats.java +cbWantReprints=Allow compatible reprints from other sets +lblChooseFormats=Choose formats +lblSanctioned=Sanctioned +lblOther=Other +lblHistoric=Historic +lblCancel=Cancel +#DialogChoosePoolDistribution.java +lblBlack=Black +lblBlue=Blue +lblGreen=Green +lblRed=Red +lblWhite=White +lblColorless=Colorless +lblIncludeArtifacts=Include Artifacts +lblBalanced=Balanced +lblTrueRandom=True Random +lblSurpriseMe=Surprise Me +lblBoosters=Boosters +lblClearAll=Clear All +lblNumberofBoosters=Number of Boosters +lblColors=Colors +lblnoSettings=No settings are available for this selection. +lblDistribution=Distribution +lblHoverforDescription=Hover over each item for a more detailed description. +lblradBalanced=A "Balanced" distribution will provide a roughly equal number of cards in each selected color. +lblradRandom=A "True Random" distribution will be almost entirely randomly selected. This ignores any color selections. +lblradSurpriseMe=This is the same as a "Balanced" distribution, except the colors picked will be random and you will not be told what they are. +lblradBoosters=This ignores all color settings and instead generates a card pool out of a specified number of booster packs. +lblcbxArtifacts=When selected, artifacts will be included in your pool regardless of color selections. This mimics the old card pool behavior. \ 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 14cb904cf41..2e8a61ad78c 100644 --- a/forge-gui/res/languages/es-es.properties +++ b/forge-gui/res/languages/es-es.properties @@ -13,11 +13,11 @@ btnDeleteWorkshopUI=Restablecer diseño del Workshop btnUserProfileUI=Abrir directorio de usuario btnContentDirectoryUI=Abrir directorio del contenido btnResetJavaFutureCompatibilityWarnings=Restablecer las advertencias de compatibilidad de Java -btnClearImageCache= -btnTokenPreviewer= -btnCopyToClipboard=Copy to Clipboard -cbpSelectLanguage=Language -nlSelectLanguage=Select Language (Excluded math part. Still a work in progress) (RESTART REQUIRED) +btnClearImageCache=Limpiar Caché de Imágenes +btnTokenPreviewer=Previsualizador de Fichas (Token) +btnCopyToClipboard=Copiar al portapapeles +cbpSelectLanguage=Idioma +nlSelectLanguage=Seleccionar idioma (excepto partida). Todavía un trabajo en progreso) (Es necesario reiniciar Forge) cbRemoveSmall=Eliminar Pequeñas Criaturas cbCardBased=Incluye la generación de mazo basado en tarjeta cbSingletons=Mode Singleton @@ -144,8 +144,8 @@ btnDownloadPics=Descargar todas las Cartas btnDownloadQuestImages=Descargar Imágenes del modo Quest btnDownloadAchievementImages=Descagar Imágenes de los Logros btnReportBug=Reportar un error -btnListImageData=Audit Card and Image Data -lblListImageData=Audit cards not implemented by Forge and missing card images +btnListImageData=Auditar Cartas y Datos de Imagen +lblListImageData=Audita cartas no implementadas por Forge e imágenes de cartas faltantes btnImportPictures=Importar Datos btnHowToPlay=Cómo jugar (Inglés) btnDownloadPrices=Descargar los precios de las cartas @@ -157,7 +157,7 @@ lblDownloadAchievementImages=Descarga imágenes de logros para que tus trofeos r lblDownloadPrices=Descargue la lista de precios actualizada para las tiendas de cartas del juego. lblYourVersionOfJavaIsTooOld=Su versión de Java es demasiado antigua para usar los descargadores de contenido. lblPleaseUpdateToTheLatestVersionOfJava=Por favor, actualice a la última versión de Java -lblYoureRunning=Estas corriendo +lblYoureRunning=Estas corriendo lblYouNeedAtLeastJavaVersion=Necesitas al menos la versión 1.8.0_101. lblImportPictures=Importar datos desde un directorio local. lblReportBug=¿Algo roto? @@ -264,10 +264,10 @@ lblDeckList=Lista del Mazo lblClose=Cerrar lblExitForge=Salir de Forge #ConstructedGameMenu.java -lblSelectAvatarFor=Select avatar for %s -lblRemoveSmallCreatures=Remove 1/1 and 0/X creatures in generated decks. -lblRemoveArtifacts=Remove artifact cards in generated decks. -PreventNonLandDuplicates=Prevent non-land duplicates in generated decks. +lblSelectAvatarFor=Seleccionar avatar para %s +lblRemoveSmallCreatures=Elimina 1/1 y 0 /X criaturas en los mazos generados. +lblRemoveArtifacts=Retira las tarjetas de artefactos en los mazos generados. +PreventNonLandDuplicates=Evitar que no se dupliquen las tierras en los mazos generadas. #PlayerPanel.java lblName=Nombre lblTeam=Equipo @@ -289,19 +289,19 @@ lblTotalDamageText=Puntos de daño disponibles: Desconocido lblAssignRemainingText=Distribuye los puntos de daño restantes entre las entidades letalmente heridas. lblLethal=Letal #KeyboardShortcuts.java -lblSHORTCUT_SHOWSTACK=Match: show stack panel -lblSHORTCUT_SHOWCOMBAT=Match: show combat panel -lblSHORTCUT_SHOWCONSOLE=Match: show console panel -lblSHORTCUT_SHOWDEV=Match: show dev panel -lblSHORTCUT_CONCEDE=Match: concede game -lblSHORTCUT_ENDTURN=Match: pass priority until EOT or next stack event -lblSHORTCUT_ALPHASTRIKE=Match: Alpha Strike (attack with all available) -lblSHORTCUT_SHOWTARGETING=Match: toggle targeting visual overlay -lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Match: auto-yield ability on stack (Always Yes) -lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Match: auto-yield ability on stack (Always No) -lblSHORTCUT_MACRO_RECORD=Match: record a macro sequence of actions -lblSHORTCUT_MACRO_NEXT_ACTION=Match: execute next action in a recorded macro -lblSHORTCUT_CARD_ZOOM=Match: zoom the currently selected card +lblSHORTCUT_SHOWSTACK=Partida: mostrar panel de pila +lblSHORTCUT_SHOWCOMBAT=Partida: mostrar panel de combate +lblSHORTCUT_SHOWCONSOLE=Partida: mostrar el panel de la consola +lblSHORTCUT_SHOWDEV=Partida: mostrar panel de desarrollo +lblSHORTCUT_CONCEDE=Partida: conceder juego +lblSHORTCUT_ENDTURN=Partida: pasa la prioridad hasta fin del turno o siguiente evento de pila +lblSHORTCUT_ALPHASTRIKE=Partida: Alpha Strike (ataque con todos los disponibles) +lblSHORTCUT_SHOWTARGETING=Partida: alternar la orientación visual de superposición +lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Partida:ceder automaticamente en cada habilidad de la pila (Siempre Si) +lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Partida:ceder automaticamente en cada habilidad de la pila (Siempre No) +lblSHORTCUT_MACRO_RECORD=Partida: Grabar una macro de secuencia de acciones +lblSHORTCUT_MACRO_NEXT_ACTION=Partida: Ejecutar siguiente acción en una macro grabada +lblSHORTCUT_CARD_ZOOM=Partida: hacer zoom en la carta seleccionada #VSubmenuDraft.java lblBoosterDraft=Booster Draft lblHeaderBoosterDraft=Formato sancionado: Booster Draft @@ -314,9 +314,9 @@ lblDraftText3=Luego, juega contra uno o todos los oponentes de la IA. lblNewBoosterDraftGame=Nuevo Booster Draft lblDraftDecks=Mazos de Draft #CSubmenuDraft.java -lblNoDeckSelected=No deck selected for human.\n(You may need to build a new deck) -lblNoDeck=No Deck -lblChooseDraftFormat=Choose Draft Format +lblNoDeckSelected=Ningún mazo seleccionado para humano.\n(Es posible que necesites construir un nuevo mazo) +lblNoDeck=No hay Mazo +lblChooseDraftFormat=Elige el Formato del Draft #VSubmenuSealed.java lblSealedDeck=Mazo Sellado lblSealedDecks=Mazos de Sellado @@ -361,44 +361,94 @@ lblMoJhoSto=MoJhoSto lblMoJhoStoDesc=Cada jugador tiene un mazo que contiene 60 tierras básicas y los avatares Momir Vig, Jhoira of the Ghitu, y Stonehewer Giant. #VSubmenuDuels.java lblQuestDuels=Duelos de Aventura -lblQuestModeDuels=Modo Quest: Duelos -lblSelectNextDuel=Select your next duel. -lblNoDuelDeck=Current deck hasn't been set yet. -lblNextChallengeNotYet=Next challenge in wins hasn't been set yet. -btnUnlockSets=Unlock Sets -btnTravel=Travel -btnBazaar=Bazaar -btnSpellShop=Spell Shop -cbSummonPlant=Summon Plant -cbLaunchZeppelin=Launch Zeppelin +lblQuestModeDuels=Modo Aventura: Duelos +lblSelectNextDuel=Selecciona tu próximo duelo. +lblNoDuelDeck=No se ha establecido todavía el mazo actual. +lblNextChallengeNotYet=El próximo desafío en victorias aún no se ha establecido. +btnUnlockSets=Desbloquear Sets +btnTravel=Viajar +btnBazaar=Bazar +btnSpellShop=Tienda de Hechizos +cbSummonPlant=Invocar Planta +cbLaunchZeppelin=Lanzar Zeppelin #VSubmenuQuest.java -lblQuestData=Quest Data -lblStartanewQuest=Start a new Quest -lblOldQuestData=Old quest data? Put into %n and restart Forge. -rbEasy=Easy -rbMedium=Medium -rbHard=Hard -rbExpert=Expert -rbFantasyMode=Fantasy Mode -rbCommanderSubformat=Commander Subformat -lblStartingWorld=Starting World -lblStartingPool=Starting Pool -lblAllCardsAvailable=All cards will be available to play. -lblStarterEventdeck=Starter/Event deck: -lblSanctionedformat=Sanctioned format: -lblCustomdeck=Custom deck -lblDefineCustomFormat=Define custom format -lblSelectFormat=Select format -lblStartWithAllCards=Start with all cards in selected sets -lblAllowDuplicateCards=Allow duplicate cards -lblStartingPoolDistribution=Starting pool distribution -lblChooseDistribution=Choose Distribution -lblPrizedCards=Prized cards -lblAllCardsAvailableWin=All cards will be available to win. -lblOnlySetsInStarting="Only sets in starting pool will be available. -lblAllowUnlockAdEd=Allow unlock of additional editions -lblEmbark=Embark! -lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected. -lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included. -lblSameAsStartingPool=Same as starting pool -lblNewLoadQuest=New / Load Quest +lblQuestData=Datos de Aventura +lblStartanewQuest=Comenzar una nueva Aventura +lblOldQuestData=Viejos datos de Aventura? Poner en %n y reiniciar Forge. +rbEasy=Fácil +rbMedium=Medio +rbHard=Difícil +rbExpert=Experto +rbFantasyMode=Modo Fantasía +rbCommanderSubformat=Subformato Commander +lblStartingWorld=Mundo de partida +lblStartingPool=Pool inicial +lblAllCardsAvailable=Todas las cartas estarán disponibles para jugar. +lblStarterEventdeck=Mazo de Inicio/Evento +lblSanctionedformat=Formato Sancionado +lblCustomdeck=Mazo Personalizado +lblDefineCustomFormat=Define mazo personalizado +lblSelectFormat=Selecciona formato +lblStartWithAllCards=Comienza con todas las cartas en set seleccionados +lblAllowDuplicateCards=Permitir cartas duplicadas +lblStartingPoolDistribution=Distribución inicial de la Pool +lblChooseDistribution=Elige Distribución +lblPrizedCards=Cartas Valiosas +lblAllCardsAvailableWin=Todas las cartas estarán disponibles para ganar. +lblOnlySetsInStarting=Solo los sets del pool inicial estarán disponibles. +lblAllowUnlockAdEd=Permite desbloquear ediciones adicionales. +lblEmbark=¡Embarcarse! +lblboxCompleteSet=Comenzarás la aventura con 4 copias de cada carta en los sets que hayas seleccionado. +lblboxAllowDuplicates=Cuando tu pool inicial se genera, se puede incluir duplicados de cartas. +lblSameAsStartingPool=Igual que el pool inicial +lblNewLoadQuest=Nueva/Cargar Aventura +#CSubmenuQChallenges.java +lblLaunchaZeppelin=Lanzar el Zeppelin. +lblPlant=Planta +lblChallenges=Desafíos +lblMatchBestof=Partida - Mejor de +lblDuels=Duelos +#CSubmenuQuestData.java +lblNotFormatDefined=Ha definido el formato personalizado sin sets\n Esto elegirá todas las ediciones sin restricción como premios. \n\n¿Continuar? +lbldckStartPool=No has seleccionado un mazo para empezar. +lblCannotStartaQuest=No se puede iniciar la aventura. +lblFromDeck=Desde el mazo +MsgQuestNewName=Los poetas recordarán tu aventura como +TitQuestNewName=Nombre Aventura +lblQuestNameEmpty=Por favor,especifica un nombre para la aventura. +lblQuestExists=Ya existe una aventura con ese nombre. Por favor, elija otro nombre de aventura. +#CSubmenuQuestDecks.java +lblCreateaDeck=Crear un Mazo. +#CSubmenuQuestPrefs.java +lblEnteraNumber=Ingrese un numero +lblSavefailed=Error al guardar +#DialogChooseFormats.java +cbWantReprints=Permitir reimpresiones compatibles de otros sets. +lblChooseFormats=Elije Formatos +lblSanctioned=Sancionado +lblOther=Otro +lblHistoric=Histórico +lblCancel=Cancelar +#DialogChoosePoolDistribution.java +lblBlack=Negro +lblBlue=Azul +lblGreen=Verde +lblRed=Rojo +lblWhite=Blanco +lblColorless=Incoloro +lblIncludeArtifacts=Incluir Artefactos +lblBalanced=Balanceado +lblTrueRandom=Aleatorio real +lblSurpriseMe=Sorpréndeme +lblBoosters=Sobres +lblClearAll=Limpiar todo +lblNumberofBoosters=Número de Sobres +lblColors=Colores +lblnoSettings=No hay configuraciones disponibles para esta selección. +lblDistribution=Distribución +lblHoverforDescription=Pase el cursor sobre cada elemento para obtener una descripción más detallada. +lblradBalanced=Una distribución "equilibrada" proporcionará una cantidad aproximadamente igual cartas tarjetas en cada color seleccionado. +lblradRandom=Una distribución "Aleatorio real" se seleccionará casi completamente al azar. Esto ignora cualquier selección de color. +lblradSurpriseMe=Esto es lo mismo que una distribución "equilibrada", excepto que los colores seleccionados serán aleatorios y no se le dirá qué son. +lblradBoosters=Esto ignora todas las configuraciones de color y en su lugar genera un conjunto de cartas de un número específico de sobres. +lblcbxArtifacts=Cuando se seleccione, los artefactos se incluirán en su grupo independientemente de las selecciones de color. Esto imita el antiguo comportamiento del conjunto de cartas.