diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 38394c3ea30..041fde095bf 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1874,7 +1874,7 @@ public class GameAction { // Assumes that the list of players is in APNAP order, which should be the case // Optional here as well to handle the way that mulligans do the choice // 701.17. Scry - // 701.17a To “scry N” means to look at the top N cards of your library, then put any number of them + // 701.17a To "scry N" means to look at the top N cards of your library, then put any number of them // on the bottom of your library in any order and the rest on top of your library in any order. // 701.17b If a player is instructed to scry 0, no scry event occurs. Abilities that trigger whenever a // player scries won’t trigger. diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java index a4aa12b4a72..87c150ee7b7 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java @@ -113,7 +113,8 @@ public class TriggerChangesZone extends Trigger { } // if it is a die trigger, and the hostcard is the moved one, but it doesn't has the trigger - if (leavesBattlefield && moved.equals(getHostCard()) && !moved.hasTrigger(this)) { + // only for non-static + if (!isStatic() && leavesBattlefield && moved.equals(getHostCard()) && !moved.hasTrigger(this)) { return false; } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java index 6d10443816a..0197f253336 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java @@ -735,7 +735,7 @@ public class TriggerHandler { } } } else if (kw.startsWith("Dieharmonicon")) { - // 700.4. The term dies means “is put into a graveyard from the battlefield.” + // 700.4. The term dies means "is put into a graveyard from the battlefield." if (runParams.get("Origin") instanceof String) { final String origin = (String) runParams.get("Origin"); if ("Battlefield".equals(origin) && runParams.get("Destination") instanceof String) { @@ -765,7 +765,7 @@ public class TriggerHandler { n++; } } else if (kw.startsWith("Dieharmonicon")) { - // 700.4. The term dies means “is put into a graveyard from the battlefield.” + // 700.4. The term dies means "is put into a graveyard from the battlefield." final String valid = kw.split(":")[1]; if (!table.filterCards(ImmutableList.of(ZoneType.Battlefield), ZoneType.Graveyard, valid, ck, null).isEmpty()) { 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 fccc6776dbf..eeadf3c06c5 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 @@ -128,7 +128,7 @@ public class PlayerPanel extends FPanel { this.add(avatarLabel, "spany 2, width 80px, height 80px"); createNameEditor(); - this.add(lobby.newLabel("Name:"), "w 40px, h 30px, gaptop 5px"); + this.add(lobby.newLabel(localizer.getMessage("lblName") +":"), "w 40px, h 30px, gaptop 5px"); this.add(txtPlayerName, "h 30px, pushx, growx"); nameRandomiser = createNameRandomizer(); @@ -138,7 +138,7 @@ public class PlayerPanel extends FPanel { this.add(radioHuman, "gapright 5px"); this.add(radioAi, "wrap"); - this.add(lobby.newLabel("Team:"), "w 40px, h 30px"); + this.add(lobby.newLabel(localizer.getMessage("lblTeam") + ":"), "w 40px, h 30px"); populateTeamsComboBoxes(); // Set these before action listeners are added diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/AvatarSelector.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/AvatarSelector.java index adae3368e4e..711dba75f69 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/AvatarSelector.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/AvatarSelector.java @@ -15,6 +15,7 @@ import forge.toolbox.FLabel; import forge.toolbox.FScrollPane; import forge.toolbox.FSkin; import forge.toolbox.FSkin.SkinImage; +import forge.util.Localizer; import forge.view.FDialog; @SuppressWarnings("serial") @@ -23,7 +24,9 @@ public class AvatarSelector extends FDialog { private final Map avatarMap = FSkin.getAvatars(); public AvatarSelector(final String playerName, final int currentIndex, final Collection usedIndices) { - this.setTitle("Select avatar for " + playerName); + final Localizer localizer = Localizer.getInstance(); + String s = localizer.getMessage("lblSelectAvatarFor"); + this.setTitle(s.replace("%s",playerName)); final JPanel pnlAvatarPics = new JPanel(new WrapLayout()); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/ConstructedGameMenu.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/ConstructedGameMenu.java index 31d57ec9e27..7643bc86ee6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/ConstructedGameMenu.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/ConstructedGameMenu.java @@ -4,6 +4,7 @@ import forge.menus.MenuUtil; import forge.model.FModel; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; +import forge.util.Localizer; import javax.swing.*; @@ -21,7 +22,8 @@ public final class ConstructedGameMenu { private static ForgePreferences prefs = FModel.getPreferences(); public static JMenu getMenu() { - JMenu menu = new JMenu("Game"); + final Localizer localizer = Localizer.getInstance(); + JMenu menu = new JMenu(localizer.getMessage("lblGame")); menu.setMnemonic(KeyEvent.VK_G); menu.add(getMenuItem_SingletonMode()); menu.add(getMenuItem_ArtifactsMode()); @@ -30,8 +32,9 @@ public final class ConstructedGameMenu { } private static JMenuItem getMenuItem_SmallCreaturesMode() { - JCheckBoxMenuItem menu = new JCheckBoxMenuItem("Remove Small Creatures"); - MenuUtil.setMenuHint(menu, "Remove 1/1 and 0/X creatures in generated decks."); + final Localizer localizer = Localizer.getInstance(); + JCheckBoxMenuItem menu = new JCheckBoxMenuItem(localizer.getMessage("cbRemoveSmall")); + MenuUtil.setMenuHint(menu, localizer.getMessage("lblRemoveSmallCreatures")); menu.setState(prefs.getPrefBoolean(FPref.DECKGEN_NOSMALL)); menu.addActionListener(new ActionListener() { @Override @@ -51,8 +54,9 @@ public final class ConstructedGameMenu { } private static JMenuItem getMenuItem_ArtifactsMode() { - JCheckBoxMenuItem menu = new JCheckBoxMenuItem("Remove Artifacts"); - MenuUtil.setMenuHint(menu, "Remove artifact cards in generated decks."); + final Localizer localizer = Localizer.getInstance(); + JCheckBoxMenuItem menu = new JCheckBoxMenuItem(localizer.getMessage("cbRemoveArtifacts")); + MenuUtil.setMenuHint(menu, localizer.getMessage("lblRemoveArtifacts")); menu.setState(prefs.getPrefBoolean(FPref.DECKGEN_ARTIFACTS)); menu.addActionListener(new ActionListener() { @Override @@ -73,8 +77,9 @@ public final class ConstructedGameMenu { } private static JMenuItem getMenuItem_SingletonMode() { - JCheckBoxMenuItem menu = new JCheckBoxMenuItem("Singleton Mode"); - MenuUtil.setMenuHint(menu, "Prevent non-land duplicates in generated decks."); + final Localizer localizer = Localizer.getInstance(); + JCheckBoxMenuItem menu = new JCheckBoxMenuItem(localizer.getMessage("cbSingletons")); + MenuUtil.setMenuHint(menu, localizer.getMessage("PreventNonLandDuplicates")); menu.setState(prefs.getPrefBoolean(FPref.DECKGEN_SINGLETONS)); menu.addActionListener(new ActionListener() { @Override 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 141c8fa44d4..3347ebd987b 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 @@ -431,7 +431,7 @@ public enum CSubmenuPreferences implements ICDoc { private void setPlayerNameButtonText() { final FLabel btn = view.getBtnPlayerName(); final String name = prefs.getPref(FPref.PLAYER_NAME); - btn.setText(StringUtils.isBlank(name) ? "Human" : name); + btn.setText(StringUtils.isBlank(name) ? localizer.getMessage("lblHuman") : name); } @SuppressWarnings("serial") diff --git a/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java b/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java index 05eb0e2d3b6..06c0883873c 100644 --- a/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java +++ b/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java @@ -37,6 +37,8 @@ import forge.toolbox.FSkin; import forge.toolbox.FSkin.SkinColor; import forge.toolbox.FSkin.SkinnedLabel; import forge.util.ReflectionUtil; +import forge.util.Localizer; + @SuppressWarnings("serial") public class FNavigationBar extends FTitleBarBase { @@ -71,15 +73,16 @@ public class FNavigationBar extends FTitleBarBase { } public void updateBtnCloseTooltip() { + final Localizer localizer = Localizer.getInstance(); switch (Singletons.getControl().getCloseAction()) { case NONE: - btnClose.setToolTipText("Close"); + btnClose.setToolTipText(localizer.getMessage("lblClose")); break; case CLOSE_SCREEN: btnClose.setToolTipText(this.selectedTab.screen.getCloseButtonTooltip()); break; case EXIT_FORGE: - btnClose.setToolTipText("Exit Forge"); + btnClose.setToolTipText(localizer.getMessage("lblExitForge")); break; } } diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 9efb2ce5d6b..4365dccfd1b 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1,4 +1,5 @@ language.name = English (US) +#SplashScreen.java splash.loading.examining-cards = Loading cards, examining folder splash.loading.cards-folders = Loading cards from folders splash.loading.cards-archive = Loading cards from archive @@ -242,4 +243,14 @@ lblOff=Off lblCardMouseOver=Card Mouseover lblAlwaysOn=Always On lblAutoYields=Auto-Yields -lblDeckList = Deck List \ No newline at end of file +lblDeckList = Deck List +lblClose=Close +lblExitForge=Exit 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=Name +lblTeam=Team \ No newline at end of file