diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/PuzzleGameMenu.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/PuzzleGameMenu.java index 241ca9dc5e9..e9a9e0cc28c 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/PuzzleGameMenu.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/PuzzleGameMenu.java @@ -2,6 +2,7 @@ package forge.screens.home.puzzle; import forge.model.FModel; import forge.properties.ForgePreferences; +import forge.util.Localizer; import javax.swing.*; import java.awt.event.KeyEvent; @@ -12,7 +13,8 @@ public class PuzzleGameMenu { private static ForgePreferences prefs = FModel.getPreferences(); public static JMenu getMenu() { - JMenu menu = new JMenu("Puzzle"); + final Localizer localizer = Localizer.getInstance(); + JMenu menu = new JMenu(localizer.getMessage("lblPuzzle")); menu.setMnemonic(KeyEvent.VK_G); return menu; } 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 7a0c580adc4..a2ab6a55278 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 @@ -22,10 +22,9 @@ public enum VSubmenuChallenges implements IVSubmenu, IVQuest /** */ SINGLETON_INSTANCE; final Localizer localizer = Localizer.getInstance(); - // Fields used with interface IVDoc private DragCell parentCell; - private final DragTab tab = new DragTab("Quest Challenges"); + private final DragTab tab = new DragTab(localizer.getMessage("lblQuestChallenges")); //========== INSTANTIATION private final JPanel pnlStats = new JPanel(); @@ -36,11 +35,11 @@ public enum VSubmenuChallenges implements IVSubmenu, IVQuest private final StartButton btnStart = new StartButton(); private final FComboBoxWrapper cbxPet = new FComboBoxWrapper(); - private final FCheckBox cbPlant = new FCheckBox("Summon Plant"); + private final FCheckBox cbPlant = new FCheckBox(localizer.getMessage("cbSummonPlant")); private final FComboBoxWrapper cbxMatchLength = new FComboBoxWrapper(); - private final FLabel lblZep = new FLabel.Builder().text("Launch
Zeppelin") + private final FLabel lblZep = new FLabel.Builder().text(localizer.getMessage("htmlLaunchZeppelin")) .hoverable(true).icon(FSkin.getIcon(FSkinProp.ICO_QUEST_ZEP)) .fontSize(16).build(); private final FLabel lblWorld = new FLabel.Builder() @@ -61,24 +60,24 @@ public enum VSubmenuChallenges implements IVSubmenu, IVQuest 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: Challenges"); + private final LblHeader lblTitle = new LblHeader(localizer.getMessage("lblQuestModeChallenges")); - private final FLabel lblInfo = new FLabel.Builder().text("Which challenge will you attempt?") + private final FLabel lblInfo = new FLabel.Builder().text(localizer.getMessage("lblWhichChallenge")) .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(); /** * Constructor. @@ -116,7 +115,7 @@ public enum VSubmenuChallenges implements IVSubmenu, IVQuest */ @Override public String getMenuTitle() { - return "Challenges"; + return localizer.getMessage("lblChallenges"); } /* (non-Javadoc) 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 980a5f31894..31bf71a7494 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 @@ -110,7 +110,7 @@ public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { */ @Override public String getMenuTitle() { - return "Duels"; + return localizer.getMessage("lblDuels"); } /* (non-Javadoc) 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 1083c0c4ed4..1cba8c32639 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 @@ -14,6 +14,7 @@ import forge.screens.home.VHomeUI; import forge.screens.home.VHomeUI.PnlDisplay; import forge.toolbox.FLabel; import forge.toolbox.FSkin; +import forge.util.Localizer; import net.miginfocom.swing.MigLayout; import javax.swing.*; @@ -30,39 +31,41 @@ public enum VSubmenuQuestDecks implements IVSubmenu { /** */ SINGLETON_INSTANCE; + final Localizer localizer = Localizer.getInstance(); + // Fields used with interface IVDoc private DragCell parentCell; - private final DragTab tab = new DragTab("Quest Decks"); + private final DragTab tab = new DragTab(localizer.getMessage("lblQuestDecks")); /** */ - private final LblHeader lblTitle = new LblHeader("Quest Decks"); + private final LblHeader lblTitle = new LblHeader(localizer.getMessage("lblQuestDecks")); private final DeckManager lstDecks = new DeckManager(GameType.Quest, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()); private final FLabel 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 Quest mode, you build a deck from a limited inventory.") + .text(localizer.getMessage("lblQuestDesc1")) .fontSize(12).build(); private final FLabel lblDir2 = new FLabel.Builder() - .text("Build and enhance decks from the cards in your quest inventory as it grows.") + .text(localizer.getMessage("lblQuestDesc2")) .fontSize(12).build(); private final FLabel lblDir3 = new FLabel.Builder() - .text("Then, switch to the Duels or Challenges submenu to play against AI opponents and unlock more cards.") + .text(localizer.getMessage("lblQuestDesc3")) .fontSize(12).build(); - private final FLabel btnNewDeck = new FLabel.ButtonBuilder().text("Build a New Deck").fontSize(16).build(); + private final FLabel btnNewDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblBuildaNewDeck")).fontSize(16).build(); /** * Constructor. */ VSubmenuQuestDecks() { lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); - lstDecks.setCaption("Quest Decks"); + lstDecks.setCaption(localizer.getMessage("lblQuestDecks")); } /* (non-Javadoc) @@ -100,7 +103,7 @@ public enum VSubmenuQuestDecks implements IVSubmenu { */ @Override public String getMenuTitle() { - return "Quest Decks"; + return localizer.getMessage("lblQuestDecks"); } /* (non-Javadoc) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java index 295ad9a2d79..5ddaa0ea7da 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java @@ -29,7 +29,7 @@ import forge.toolbox.FSkin.SkinColor; import forge.toolbox.FSkin.SkinImage; import forge.toolbox.JXButtonPanel; import net.miginfocom.swing.MigLayout; - +import forge.util.Localizer; import javax.swing.*; import java.awt.*; @@ -46,10 +46,11 @@ import java.awt.geom.Rectangle2D; */ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestTournamentView { SINGLETON_INSTANCE; + final Localizer localizer = Localizer.getInstance(); - private final DragTab tab = new DragTab("Tournaments"); + private final DragTab tab = new DragTab(localizer.getMessage("lblTournaments")); - private final LblHeader lblTitle = new LblHeader("Quest Mode: Draft Tournament"); + private final LblHeader lblTitle = new LblHeader(localizer.getMessage("lblQuestModeDraftTournament")); private final FLabel lblCredits = new FLabel.Builder() .icon(FSkin.getIcon(FSkinProp.ICO_QUEST_COINSTACK)) @@ -59,11 +60,11 @@ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestT private final FScrollPanel pnlTournaments = new FScrollPanel(new MigLayout("insets 0, gap 0, wrap, ax center"), true, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - private final JLabel lblInfo = new FLabel.Builder().text("Select a tournament to join:") + private final JLabel lblInfo = new FLabel.Builder().text(localizer.getMessage("lblSelectaTournament")+ ":") .fontStyle(Font.BOLD).fontSize(16) .fontAlign(SwingConstants.LEFT).build(); - private final JLabel lblNoDrafts = new FLabel.Builder().text("There are no tournaments available at this time.") + private final JLabel lblNoDrafts = new FLabel.Builder().text(localizer.getMessage("lblNoTournaments")) .fontStyle(Font.PLAIN).fontSize(16) .fontAlign(SwingConstants.LEFT).build(); @@ -84,10 +85,10 @@ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestT private final StartButton btnStartTournament = new StartButton(); private final StartButton btnStartMatch = new StartButton(); - private final FLabel btnEditDeck = new FLabel.ButtonBuilder().text("Edit Deck").fontSize(24).build(); - private final FLabel btnLeaveTournament = new FLabel.ButtonBuilder().text("Leave Tournament").fontSize(12).build(); - private final FLabel btnSpendToken = new FLabel.ButtonBuilder().text("Spend Token").fontSize(14).build(); - private final FLabel btnStartMatchSmall = new FLabel.ButtonBuilder().text("Start Next Match").fontSize(12).build(); + private final FLabel btnEditDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("btnEditDeck")).fontSize(24).build(); + private final FLabel btnLeaveTournament = new FLabel.ButtonBuilder().text(localizer.getMessage("btnLeaveTournament")).fontSize(12).build(); + private final FLabel btnSpendToken = new FLabel.ButtonBuilder().text(localizer.getMessage("btnSpendToken")).fontSize(14).build(); + private final FLabel btnStartMatchSmall = new FLabel.ButtonBuilder().text(localizer.getMessage("btnStartMatchSmall")).fontSize(12).build(); private final PnlMatchup[] matchups = new PnlMatchup[8]; @@ -102,36 +103,36 @@ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestT SkinImage avatar = FSkin.getAvatars().get(GuiBase.getInterface().getAvatarCount() - 1); matchups[0] = new PnlMatchup(PnlMatchup.LineDirection.DOWN, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL); - matchups[0].setPlayerOne("Undetermined", avatar); - matchups[0].setPlayerTwo("Undetermined", avatar); + matchups[0].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[0].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); matchups[1] = new PnlMatchup(PnlMatchup.LineDirection.UP, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL); - matchups[1].setPlayerOne("Undetermined", avatar); - matchups[1].setPlayerTwo("Undetermined", avatar); + matchups[1].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[1].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); matchups[2] = new PnlMatchup(PnlMatchup.LineDirection.DOWN, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL); - matchups[2].setPlayerOne("Undetermined", avatar); - matchups[2].setPlayerTwo("Undetermined", avatar); + matchups[2].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[2].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); matchups[3] = new PnlMatchup(PnlMatchup.LineDirection.UP, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL); - matchups[3].setPlayerOne("Undetermined", avatar); - matchups[3].setPlayerTwo("Undetermined", avatar); + matchups[3].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[3].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); matchups[4] = new PnlMatchup(PnlMatchup.LineDirection.DOWN, PnlMatchup.LineSide.BOTH, PnlMatchup.BoxSize.MEDIUM); - matchups[4].setPlayerOne("Undetermined", avatar); - matchups[4].setPlayerTwo("Undetermined", avatar); + matchups[4].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[4].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); matchups[5] = new PnlMatchup(PnlMatchup.LineDirection.UP, PnlMatchup.LineSide.BOTH, PnlMatchup.BoxSize.MEDIUM); - matchups[5].setPlayerOne("Undetermined", avatar); - matchups[5].setPlayerTwo("Undetermined", avatar); + matchups[5].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[5].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); matchups[6] = new PnlMatchup(PnlMatchup.LineDirection.STRAIGHT, PnlMatchup.LineSide.BOTH, PnlMatchup.BoxSize.LARGE); - matchups[6].setPlayerOne("Undetermined", avatar); - matchups[6].setPlayerTwo("Undetermined", avatar); + matchups[6].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[6].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); matchups[7] = new PnlMatchup(PnlMatchup.LineDirection.STRAIGHT, PnlMatchup.LineSide.LEFT, PnlMatchup.BoxSize.LARGE_SINGLE, true); - matchups[7].setPlayerOne("Undetermined", avatar); - matchups[7].setPlayerTwo("Undetermined", avatar); + matchups[7].setPlayerOne(localizer.getMessage("lblUndetermined"), avatar); + matchups[7].setPlayerTwo(localizer.getMessage("lblUndetermined"), avatar); pnlDeckImage = new ProportionalPanel(FSkin.getImage(FSkinProp.IMG_QUEST_DRAFT_DECK), 680, 475); @@ -145,7 +146,7 @@ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestT pnlStats.add(btnSpendToken, "w 150px!, h 40px!, ax center"); pnlStats.setOpaque(false); - btnSpendToken.setToolTipText("Creates a new tournament that can be played immediately."); + btnSpendToken.setToolTipText(localizer.getMessage("btnSpendTokenTT")); } @@ -249,7 +250,7 @@ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestT @Override public String getMenuTitle() { - return "Tournaments"; + return localizer.getMessage("lblTournaments"); } @Override @@ -299,7 +300,7 @@ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestT } private void populatePrepareDeck() { - lblTitle.setText("Quest Mode: Draft Tournament - " + FModel.getQuest().getAchievements().getCurrentDraft().getTitle()); + lblTitle.setText(localizer.getMessage("lblQuestModeDraftTournament")+ " - " + FModel.getQuest().getAchievements().getCurrentDraft().getTitle()); VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout( "insets 0, gap 0, ax center, wrap", "", @@ -316,7 +317,7 @@ public enum VSubmenuQuestDraft implements IVSubmenu, IQuestT } private void populateTournamentActive() { - lblTitle.setText("Quest Mode: Draft Tournament - " + FModel.getQuest().getAchievements().getCurrentDraft().getTitle()); + lblTitle.setText(localizer.getMessage("lblQuestModeDraftTournament")+ " - " + FModel.getQuest().getAchievements().getCurrentDraft().getTitle()); VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0, ax center, wrap 1")); VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblTitle, "w 80%!, h 40px!, gap 20% 0 15px 10px, ax right, span 2"); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java index 56c535e6720..ac6df8f4c47 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java @@ -52,6 +52,8 @@ import java.net.MalformedURLException; import java.util.*; import java.util.List; import java.util.Map.Entry; +import forge.util.Localizer; + /** * Assembles settings from selected or default theme as appropriate. Saves in a @@ -1155,7 +1157,8 @@ public class FSkin { if (preferredName.isEmpty()) { loadLight("default", true); } } - FView.SINGLETON_INSTANCE.setSplashProgessBarMessage("Processing image sprites: ", 8); + final Localizer localizer = Localizer.getInstance(); + FView.SINGLETON_INSTANCE.setSplashProgessBarMessage(localizer.getMessage("splash.loading.processingimagesprites") + ": ", 8); // Grab and test various sprite files. final String defaultDir = ForgeConstants.DEFAULT_SKINS_DIR; diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 16f2b0b5724..8c132fc2da5 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -4,6 +4,7 @@ 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... +splash.loading.processingimagesprites=Processing image sprites #VSubmenuPreferences.java Preferences=Einstellungen btnReset=Alles zurücksetzen @@ -13,14 +14,14 @@ 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=Leere Bildspeicher +btnTokenPreviewer=Spielstein-Vorschau btnCopyToClipboard=In Zwischenablage kopieren -cbpSelectLanguage=Language -nlSelectLanguage=Select Language (Excluded Game part. Still a work in progress) (RESTART REQUIRED) +cbpSelectLanguage=Sprache +nlSelectLanguage=Wähle Sprache (Ist noch in Arbeit und nur teilweise umgesetzt.) (Neustart ist erforderlich.) cbRemoveSmall=Entferne kleine Kreaturen cbCardBased=Nutze kartenabhängige Deckerstellung -cbSingletons=Singleton Modus +cbSingletons=Einzelkarten Modus cbRemoveArtifacts=Entferne Artefakte cbAnte=Spiele um Ante cbAnteMatchRarity=Passe Ante-Seltenheit an @@ -72,7 +73,7 @@ cbpAutoYieldMode=Automatische Bestätigung cbpCounterDisplayType=Markeranzeige Art cbpCounterDisplayLocation=Markeranzeige Ort cbpGraveyardOrdering=Genaue Reihenfolge im Friedhof einhalten -Troubleshooting=Troubleshooting +Troubleshooting=Fehlerbehebung 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) @@ -187,14 +188,14 @@ 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 +lblHeaderConstructedMode=Format: Constructed +lblGetNewRandomName=Wähle einen zufälligen Namen +lbltypeofName=Welche Art Namen möchtest du erzeugen? +lblconfirmName=Möchtest du den Namen %n nutzen, oder es neu versuchen? +lblUseThisName=Nutzen +lblTryAgain=Neu +lblAddAPlayer=Spieler hinzufügen +lblVariants=Varianten #VSubmenuConstructed.java lblConstructedMode=Constructed-Modus lblConstructed=Constructed @@ -304,151 +305,173 @@ lblSHORTCUT_MACRO_NEXT_ACTION=Duel: führe nächste Aktion im gespeicherten Makr 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 +lblHeaderBoosterDraft=Format: Booster Draft +lblPlayAnOpponent=Spiele gegen einen Gegner +lblPlayAll7opponents=Spiele gegen sieben Gegner +lblBuildorselectadeck=Erstelle oder wähle ein Deck +lblDraftText1=Im Draft Modus werden drei Booster von acht Spielern herumgereicht. +lblDraftText2=Erstelle ein Deck aus den von dir gewählten Karten. Die KI macht dasselbe. +lblDraftText3=Dann spiele gegen einen oder alle KI-Gegner. +lblNewBoosterDraftGame=Neues Spiel Booster Draft 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 +lblNoDeckSelected=Kein Spieler-Deck gewählt.\n(Du muß eventuell ein neues Deck erstellen.) +lblNoDeck=Kein Deck +lblChooseDraftFormat=Wähle 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 +lblHeaderSealed=Format: Sealed Deck +lblSealedText1=Wähle ein Spiel, oder erstelle ein neues +lblSealedText2=Im Sealed Modus erstellst du ein Deck aus max. 10 Boostern. +lblSealedText3=Erstelle ein Deck aus den erhaltenen Karten. Die KI macht dasselbe. +lblSealedText4=Dann spiele gegen einen oder alle KI-Gegner. +btnBuildNewSealedDeck=Erstelle neues Sealed Deck #FDeckChooser.java -lblViewDeck=View Deck -lblRandomDeck=Random Deck +lblViewDeck=Zeige Deck +lblRandomDeck=Zufälliges Deck #GameType.java lblSealed=Sealed lblDraft=Draft lblWinston=Winston -lblGauntlet=Gauntlet -lblTournament=Tournament +lblGauntlet=Herausforderung +lblTournament=Turnier lblQuest=Quest lblQuestDraft=QuestDraft -lblPlanarConquest=PlanarConquest -lblPuzzle=Puzzle -lblPuzzleDesc=Solve a puzzle from the given game state +lblPlanarConquest=Welteneroberung +lblPuzzle=Rätsel +lblPuzzleDesc=Löse ein Rätsel, ausgehend von einem Spielstand. lblDeckManager=Deck Manager -lblVanguardDesc=Each player has a special \"Avatar\" card that affects the game. +lblVanguardDesc=Jeder Spieler hat eine eigene spielbeeinflussende \"Avatar\"-Karte. 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. +lblCommanderDesc=Jeder Spieler hat eine legendäre \"General\"-Karte, welche (fast) jederzeit gespielt werden kann und die Farben des Decks bestimmt. +lblTinyLeaders=Kleine Anführer +lblTinyLeadersDesc=Jeder Spieler hat eine legendäre \"General\"-Karte, welche (fast) jederzeit gespielt werden kann und die Farben des Decks bestimmt. Alle Karten haben umgewandelte Manakosten von max. 3. 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. +lblBrawlDesc=Jeder Spieler hat eine legendäre \"General\"-Karte, welche (fast) jederzeit gespielt werden kann und die Farben des Decks bestimmt. Nur standardlegale Karten sind erlaubt. 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=Archenemy Rumble -lblArchenemyRumbleDesc=All players are Archenemies and can play Scheme cards. +lblPlaneswalkerDesc=Jeder Spieler hat eine Planeswalker-Karte, welche (fast) jederzeit gespielt werden kann. +lblPlanechase=Weltenjagd +lblPlanechaseDesc=Weltenkarten haben globale Effekte. Wenn ein Spieler auf dem Weltenwürfel \"Planeswalk\"wirft, wechselt die Weltenkarte. +lblArchenemyDesc=Ein Spieler ist der Erzfeind und kämpft gegen die anderen Spieler. Er hat Komplottkarten.\NEiner gegen alle. +lblArchenemyRumble=Erzfeind Rumble +lblArchenemyRumbleDesc=Alle Spieler sind Erzfeinde und haben Komplottkarten.\nJeder gegen jeden. lblMomirBasic=Momir Basic -lblMomirBasicDesc=Each player has a deck containing 60 basic lands and the Momir Vig avatar. +lblMomirBasicDesc=Jeder Spieler hat ein Deck mit 60 Standardländern und den 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. +lblMoJhoStoDesc=Jeder Spieler hat ein Deck mit 60 Standardländern und den Momir-Vig-, Jhoira-von-den-Ghitu- und den Steinhauer-Gigant-Avatar. #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 +lblQuestDuels=Quest Duelle +lblQuestModeDuels=Quest Modus: Duelle +lblSelectNextDuel=Wähle dein nächstes Duell +lblNoDuelDeck=Es wurde noch kein eigenes Deck gewählt. +lblNextChallengeNotYet=Anzahl Siege für nächste Herausforderung wurde noch nicht gewählt. +btnUnlockSets=Set freischalten +btnTravel=Reise +btnBazaar=Basar +btnSpellShop=Spruchladen +cbSummonPlant=Beschwöre Pflanze +cbLaunchZeppelin=Starte 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 +lblQuestData=Quest Daten +lblStartanewQuest=Starte neue Quest +lblOldQuestData=Alte Questdaten? Kopiere sie nach %n und starte Forge neu. +rbEasy=Einfach +rbMedium=Mittel +rbHard=Hart +rbExpert=Experte +rbFantasyMode=Fantasy Modus 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 +lblStartingWorld=Startwelt +lblStartingPool=Anfangskartensammlung +lblAllCardsAvailable=Alle Karten stehen zur Verfügung. +lblStarterEventdeck=Starter-/Event-Deck: +lblSanctionedformat=Zugelassenes Format: +lblCustomdeck=Eigenes Deck +lblDefineCustomFormat=Definiere eigenes Format +lblSelectFormat=Wähle Format +lblStartWithAllCards=Starte mit allen Karten der gewählten Sets. +lblAllowDuplicateCards=Erlaube Kartenduplikate +lblStartingPoolDistribution=Verteilung der Startkarten +lblChooseDistribution=Wähle Verteilung +lblPrizedCards=Karten-Gewinn +lblAllCardsAvailableWin=Alle Karten können gewonnen werden. +lblOnlySetsInStarting=Nur Karten aus den gewählten Startssets +lblAllowUnlockAdEd=Erlaube Freischaltung weiterer Blöcke +lblEmbark=Aufbrechen! +lblboxCompleteSet=Du startest mit je 4 Stück jeder Karte der gewählten Sets. +lblboxAllowDuplicates=In deiner Startsammlung können Karten mehrfach vorkommen. +lblSameAsStartingPool=Wie Startsammlung +lblNewLoadQuest=Neu / Lade Quest #CSubmenuQChallenges.java -lblLaunchaZeppelin=Launch a Zeppelin. -lblPlant=Plant -lblChallenges=Challenges -lblMatchBestof=Match - Best of -lblDuels=Duels +lblLaunchaZeppelin=Starte einen Zeppelin. +lblPlant=Pflanze +lblChallenges=Herausforderungen +lblMatchBestof=Turnier - Beste aus +lblDuels=Duelle #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 +lblNotFormatDefined=Du hast ein eigenes Format ohne Sets definiert.\nGewinne werden aus allen Blöcken ohne Einschränkung gewählt.\n\nFortsetzen? +lbldckStartPool=Du hast noch kein Deck ausgewählt. +lblCannotStartaQuest=Kann Quest nicht starten. +lblFromDeck=Von Deck +MsgQuestNewName=Poeten werden an deine Quest erinnern als TitQuestNewName=Quest Name -lblQuestNameEmpty=Please specify a quest name. -lblQuestExists=A quest already exists with that name. Please pick another quest name. +lblQuestNameEmpty=Bitte gib einen Namen für die Quest ein. +lblQuestExists=Der Name wird bereits verwendet. Bitte wähle einen anderen Namen. #CSubmenuQuestDecks.java -lblCreateaDeck=Create a Deck. +lblCreateaDeck=Erzeuge ein Deck. #CSubmenuQuestPrefs.java -lblEnteraNumber=Enter a number -lblSavefailed=Save failed +lblEnteraNumber=Nummer eingeben +lblSavefailed=Speichern fehlgeschlagen #DialogChooseFormats.java -cbWantReprints=Allow compatible reprints from other sets -lblChooseFormats=Choose formats -lblSanctioned=Sanctioned -lblOther=Other -lblHistoric=Historic -lblCancel=Cancel +cbWantReprints=Erlaube passende Drucke aus anderen Sets +lblChooseFormats=Wähle Format +lblSanctioned=Sanktioniert +lblOther=Andere +lblHistoric=Historisch +lblCancel=Abbrechen #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. +lblBlack=Schwarz +lblBlue=Blau +lblGreen=Grün +lblRed=Rot +lblWhite=Weiß +lblColorless=Farblos +lblIncludeArtifacts=mit Artefakten +lblBalanced=Ausgeglichen +lblTrueRandom=Wirklich zufällig +lblSurpriseMe=Überrasch mich +lblBoosters=Booster +lblClearAll=Alles löschen +lblNumberofBoosters=Anzahl Booster +lblColors=Farben +lblnoSettings=Keine Einstellungen bei dieser Auswahl. +lblDistribution=Verteilung +lblHoverforDescription=Für ausführliche Beschreibung länger länger draufzeigen. +lblradBalanced="Ausgeglichen" führt zu einer etwa gleichen Anzahl Karten der gewählten Farben. +lblradRandom="Wirklich zufällig" führt zu einer zufällig Anzahl Karten pro Farbe. Ignoriert die Farbwahl. +lblradSurpriseMe=Wie "Ausgeglichen", nur das auch die Farbwahl zufällig ist. +lblradBoosters=IgnoriertFarbwahl. Entnimmt die Karten einer gewählten Anzahl Booster. +lblcbxArtifacts=Wenn gewählt, werden Artefakte hinzugefügt, unabhängig von der Farbwahl. Imitiert das alte Erstellungsverhalten. +#VSubmenuChallenges.java +lblQuestChallenges=Quest Challenges +htmlLaunchZeppelin=Launch
Zeppelin +lblQuestModeChallenges=Quest Mode: Challenges +lblWhichChallenge=Which challenge will you attempt? +#VSubmenuQuestDraft.java +lblTournaments=Tournaments +lblQuestModeDraftTournament=Quest Mode: Draft Tournament +lblSelectaTournament=Select a tournament to join +lblNoTournaments=There are no tournaments available at this time. +btnEditDeck=Edit Deck +btnLeaveTournament=Leave Tournament +btnSpendToken=Spend Token +btnStartMatchSmall=Start Next Match +lblUndetermined=Undetermined +btnSpendTokenTT=Creates a new tournament that can be played immediately. +#VSubmenuQuestDecks.java +lblQuestDecks=Quest Decks +lblQuestDesc1=In Quest mode, you build a deck from a limited inventory. +lblQuestDesc2=Build and enhance decks from the cards in your quest inventory as it grows. +lblQuestDesc3=Then, switch to the Duels or Challenges submenu to play against AI opponents and unlock more cards. +lblBuildaNewDeck=Build a New Deck \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 53588825670..dd5b2f9ac24 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -4,6 +4,7 @@ splash.loading.examining-cards = Loading cards, examining folder splash.loading.cards-folders = Loading cards from folders splash.loading.cards-archive = Loading cards from archive splash.loading.decks = Loading decks... +splash.loading.processingimagesprites=Processing image sprites #VSubmenuPreferences.java Preferences = Preferences btnReset = Reset to Default Settings @@ -451,4 +452,26 @@ lblradBalanced=A "Balanced" distribution will provide a roughly equal number of 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 +lblcbxArtifacts=When selected, artifacts will be included in your pool regardless of color selections. This mimics the old card pool behavior. +#VSubmenuChallenges.java +lblQuestChallenges=Quest Challenges +htmlLaunchZeppelin=Launch
Zeppelin +lblQuestModeChallenges=Quest Mode: Challenges +lblWhichChallenge=Which challenge will you attempt? +#VSubmenuQuestDraft.java +lblTournaments=Tournaments +lblQuestModeDraftTournament=Quest Mode: Draft Tournament +lblSelectaTournament=Select a tournament to join +lblNoTournaments=There are no tournaments available at this time. +btnEditDeck=Edit Deck +btnLeaveTournament=Leave Tournament +btnSpendToken=Spend Token +btnStartMatchSmall=Start Next Match +lblUndetermined=Undetermined +btnSpendTokenTT=Creates a new tournament that can be played immediately. +#VSubmenuQuestDecks.java +lblQuestDecks=Quest Decks +lblQuestDesc1=In Quest mode, you build a deck from a limited inventory. +lblQuestDesc2=Build and enhance decks from the cards in your quest inventory as it grows. +lblQuestDesc3=Then, switch to the Duels or Challenges submenu to play against AI opponents and unlock more cards. +lblBuildaNewDeck=Build a New Deck \ 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 2e8a61ad78c..4b8e2432a9b 100644 --- a/forge-gui/res/languages/es-es.properties +++ b/forge-gui/res/languages/es-es.properties @@ -4,6 +4,7 @@ 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... +splash.loading.processingimagesprites=Procesando imágenes de cartas #VSubmenuPreferences.java Preferences=Preferencias btnReset=Restablecer la configuración predeterminada @@ -452,3 +453,25 @@ lblradRandom=Una distribución "Aleatorio real" se seleccionará casi completame 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. +#VSubmenuChallenges.java +lblQuestChallenges=Desafíos de la Aventura +htmlLaunchZeppelin=Lanzar
Zeppelin +lblQuestModeChallenges=Modo Aventura: Desafíos +lblWhichChallenge=¿Qué desafío vas a intentar? +#VSubmenuQuestDraft.java +lblTournaments=Torneos +lblQuestModeDraftTournament=Modo Aventura: Torneo de Draft +lblSelectaTournament=Seleccione un torneo para unirse +lblNoTournaments=No hay torneos disponibles en este momento. +btnEditDeck=Editar Mazo +btnLeaveTournament=Dejar el torneo +btnSpendToken=Gastar Token +btnStartMatchSmall=Comenzar Siguiente Partida +lblUndetermined=Sin determinar +btnSpendTokenTT=Crea un nuevo torneo que se puede jugar de inmediato. +#VSubmenuQuestDecks.java +lblQuestDecks=Mazos de la Aventura +lblQuestDesc1=En el modo Aventura, construyes un mazo a partir de un inventario limitado. +lblQuestDesc2=Construye y mejora mazos con las cartas de tu inventario de misiones a medida que crece. +lblQuestDesc3=Luego, cambia al submenú Duelos o Desafíos para jugar contra oponentes de la IA y desbloquear más cartas. +lblBuildaNewDeck=Construir un Nuevo Mazo \ No newline at end of file