Merge branch 'master' into 'master'

Moving hard-coded text to res files

See merge request core-developers/forge!1632
This commit is contained in:
swordshine
2019-05-24 00:35:11 +00:00
9 changed files with 266 additions and 189 deletions

View File

@@ -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;
}

View File

@@ -22,10 +22,9 @@ public enum VSubmenuChallenges implements IVSubmenu<CSubmenuChallenges>, 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<CSubmenuChallenges>, IVQuest
private final StartButton btnStart = new StartButton();
private final FComboBoxWrapper<String> cbxPet = new FComboBoxWrapper<String>();
private final FCheckBox cbPlant = new FCheckBox("Summon Plant");
private final FCheckBox cbPlant = new FCheckBox(localizer.getMessage("cbSummonPlant"));
private final FComboBoxWrapper<String> cbxMatchLength = new FComboBoxWrapper<String>();
private final FLabel lblZep = new FLabel.Builder().text("<html>Launch<br>Zeppelin</html>")
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<CSubmenuChallenges>, 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<CSubmenuChallenges>, IVQuest
*/
@Override
public String getMenuTitle() {
return "Challenges";
return localizer.getMessage("lblChallenges");
}
/* (non-Javadoc)

View File

@@ -110,7 +110,7 @@ public enum VSubmenuDuels implements IVSubmenu<CSubmenuDuels>, IVQuestStats {
*/
@Override
public String getMenuTitle() {
return "Duels";
return localizer.getMessage("lblDuels");
}
/* (non-Javadoc)

View File

@@ -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<CSubmenuQuestDecks> {
/** */
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<CSubmenuQuestDecks> {
*/
@Override
public String getMenuTitle() {
return "Quest Decks";
return localizer.getMessage("lblQuestDecks");
}
/* (non-Javadoc)

View File

@@ -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<CSubmenuQuestDraft>, 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<CSubmenuQuestDraft>, 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<CSubmenuQuestDraft>, 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<CSubmenuQuestDraft>, 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<CSubmenuQuestDraft>, 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<CSubmenuQuestDraft>, IQuestT
@Override
public String getMenuTitle() {
return "Tournaments";
return localizer.getMessage("lblTournaments");
}
@Override
@@ -299,7 +300,7 @@ public enum VSubmenuQuestDraft implements IVSubmenu<CSubmenuQuestDraft>, 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<CSubmenuQuestDraft>, 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");

View File

@@ -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;