Merge branch 'master' into 'master'

Moving hard-coded text to en-US.properties file

See merge request core-developers/forge!1537
This commit is contained in:
swordshine
2019-04-22 04:32:33 +00:00
14 changed files with 300 additions and 135 deletions

View File

@@ -894,7 +894,7 @@ public class VLobby implements ILobbyView {
final List<String> usedNames = getPlayerNames(); final List<String> usedNames = getPlayerNames();
do { do {
newName = NameGenerator.getRandomName(gender, type, usedNames); 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)); } while (!FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true));
return newName; return newName;

View File

@@ -26,6 +26,7 @@ import forge.quest.bazaar.QuestItemType;
import forge.quest.bazaar.QuestPetController; import forge.quest.bazaar.QuestPetController;
import forge.toolbox.FLabel; import forge.toolbox.FLabel;
import forge.toolbox.JXButtonPanel; import forge.toolbox.JXButtonPanel;
import forge.util.Localizer;
/** /**
* Controls the quest challenges submenu in the home UI. * Controls the quest challenges submenu in the home UI.
@@ -73,7 +74,8 @@ public enum CSubmenuChallenges implements ICDoc {
new UiCommand() { new UiCommand() {
@Override @Override
public void run() { public void run() {
if (!QuestUtil.checkActiveQuest("Launch a Zeppelin.")) { final Localizer localizer = Localizer.getInstance();
if (!QuestUtil.checkActiveQuest(localizer.getMessage("lblLaunchaZeppelin"))) {
return; return;
} }
FModel.getQuest().getAchievements().setCurrentChallenges(null); FModel.getQuest().getAchievements().setCurrentChallenges(null);
@@ -86,7 +88,8 @@ public enum CSubmenuChallenges implements ICDoc {
view.getCbPlant().addActionListener(new ActionListener() { view.getCbPlant().addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(final ActionEvent arg0) { 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(); quest.save();
} }
}); });
@@ -145,8 +148,8 @@ public enum CSubmenuChallenges implements ICDoc {
if (qCtrl.getAchievements() == null) { if (qCtrl.getAchievements() == null) {
return; return;
} }
final Localizer localizer = Localizer.getInstance();
view.getLblTitle().setText("Challenges: " + qCtrl.getRank()); view.getLblTitle().setText(localizer.getMessage("lblChallenges") +": " + qCtrl.getRank());
view.getPnlChallenges().removeAll(); view.getPnlChallenges().removeAll();
qCtrl.regenerateChallenges(); qCtrl.regenerateChallenges();
@@ -158,7 +161,7 @@ public enum CSubmenuChallenges implements ICDoc {
final JXButtonPanel grpPanel = new JXButtonPanel(); final JXButtonPanel grpPanel = new JXButtonPanel();
StringBuilder sb = new StringBuilder(); 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()); view.getCbxMatchLength().setSelectedItem(sb.toString());
boolean haveAnyChallenges = true; boolean haveAnyChallenges = true;

View File

@@ -8,6 +8,7 @@ import forge.quest.QuestEventDuel;
import forge.quest.QuestUtil; import forge.quest.QuestUtil;
import forge.quest.bazaar.QuestPetController; import forge.quest.bazaar.QuestPetController;
import forge.toolbox.JXButtonPanel; import forge.toolbox.JXButtonPanel;
import forge.util.Localizer;
import javax.swing.*; import javax.swing.*;
import java.awt.event.*; import java.awt.event.*;
@@ -168,8 +169,8 @@ public enum CSubmenuDuels implements ICDoc {
final VSubmenuDuels view = VSubmenuDuels.SINGLETON_INSTANCE; final VSubmenuDuels view = VSubmenuDuels.SINGLETON_INSTANCE;
if (FModel.getQuest().getAchievements() != null) { if (FModel.getQuest().getAchievements() != null) {
final Localizer localizer = Localizer.getInstance();
view.getLblTitle().setText("Duels: " + FModel.getQuest().getRank()); view.getLblTitle().setText(localizer.getMessage("lblDuels") + ": " + FModel.getQuest().getRank());
view.getPnlDuels().removeAll(); view.getPnlDuels().removeAll();
final List<QuestEventDuel> duels = FModel.getQuest().getDuelsManager().generateDuels(); final List<QuestEventDuel> duels = FModel.getQuest().getDuelsManager().generateDuels();
@@ -196,7 +197,7 @@ public enum CSubmenuDuels implements ICDoc {
view.getPnlDuels().add(grpPanel, "w 100%!"); view.getPnlDuels().add(grpPanel, "w 100%!");
StringBuilder sb = new StringBuilder(); 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()); view.getCbxMatchLength().setSelectedItem(sb.toString());
} }
} }

View File

@@ -17,6 +17,7 @@ import forge.quest.data.QuestPreferences.QPref;
import forge.quest.io.QuestDataIO; import forge.quest.io.QuestDataIO;
import forge.screens.bazaar.CBazaarUI; import forge.screens.bazaar.CBazaarUI;
import forge.toolbox.FOptionPane; import forge.toolbox.FOptionPane;
import forge.util.Localizer;
import javax.swing.*; import javax.swing.*;
import java.io.File; import java.io.File;
@@ -230,6 +231,7 @@ public enum CSubmenuQuestData implements ICDoc {
* The actuator for new quests. * The actuator for new quests.
*/ */
private void newQuest() { private void newQuest() {
final Localizer localizer = Localizer.getInstance();
final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE; final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE;
final int difficulty = view.getSelectedDifficulty(); final int difficulty = view.getSelectedDifficulty();
@@ -250,7 +252,7 @@ public enum CSubmenuQuestData implements ICDoc {
case Casual: case Casual:
case CustomFormat: case CustomFormat:
if (customFormatCodes.isEmpty()) { 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; return;
} }
} }
@@ -262,7 +264,7 @@ public enum CSubmenuQuestData implements ICDoc {
case Cube: case Cube:
dckStartPool = view.getSelectedDeck(); dckStartPool = view.getSelectedDeck();
if (null == dckStartPool) { 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; return;
} }
break; break;
@@ -296,7 +298,7 @@ public enum CSubmenuQuestData implements ICDoc {
sets.add(c.getKey().getEdition()); sets.add(c.getKey().getEdition());
} }
} }
fmtPrizes = new GameFormat("From deck", sets, null); fmtPrizes = new GameFormat(localizer.getMessage("lblFromDeck"), sets, null);
} }
} }
else { else {
@@ -307,7 +309,7 @@ public enum CSubmenuQuestData implements ICDoc {
case Casual: case Casual:
case CustomFormat: case CustomFormat:
if (customPrizeFormatCodes.isEmpty()) { 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; return;
} }
} }
@@ -325,17 +327,17 @@ public enum CSubmenuQuestData implements ICDoc {
String questName; String questName;
while (true) { 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; } if (questName == null) { return; }
questName = QuestUtil.cleanString(questName); questName = QuestUtil.cleanString(questName);
if (questName.isEmpty()) { if (questName.isEmpty()) {
FOptionPane.showMessageDialog("Please specify a quest name."); FOptionPane.showMessageDialog(localizer.getMessage("lblQuestNameEmpty"));
continue; continue;
} }
if (getAllQuests().get(questName + ".dat") != null) { 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; continue;
} }
break; break;

View File

@@ -14,6 +14,7 @@ import forge.quest.QuestUtil;
import forge.quest.data.QuestPreferences.QPref; import forge.quest.data.QuestPreferences.QPref;
import forge.screens.deckeditor.CDeckEditorUI; import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.controllers.CEditorQuest; import forge.screens.deckeditor.controllers.CEditorQuest;
import forge.util.Localizer;
/** /**
* Controls the quest decks submenu in the home UI. * Controls the quest decks submenu in the home UI.
@@ -55,10 +56,12 @@ public enum CSubmenuQuestDecks implements ICDoc {
*/ */
@Override @Override
public void initialize() { public void initialize() {
final Localizer localizer = Localizer.getInstance();
VSubmenuQuestDecks.SINGLETON_INSTANCE.getBtnNewDeck().setCommand(new UiCommand() { VSubmenuQuestDecks.SINGLETON_INSTANCE.getBtnNewDeck().setCommand(new UiCommand() {
@Override @Override
public void run() { public void run() {
if (!QuestUtil.checkActiveQuest("Create a Deck.")) { if (!QuestUtil.checkActiveQuest(localizer.getMessage("lblCreateaDeck"))) {
return; return;
} }
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST); Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST);

View File

@@ -8,6 +8,7 @@ import forge.gui.framework.ICDoc;
import forge.model.FModel; import forge.model.FModel;
import forge.quest.data.QuestPreferences; import forge.quest.data.QuestPreferences;
import forge.screens.home.quest.VSubmenuQuestPrefs.PrefInput; import forge.screens.home.quest.VSubmenuQuestPrefs.PrefInput;
import forge.util.Localizer;
/** /**
* Controls the quest preferences submenu in the home UI. * 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()); final Integer val = Ints.tryParse(i0.getText());
resetErrors(); resetErrors();
final Localizer localizer = Localizer.getInstance();
final String validationError = val == null ? "Enter a number" : prefs.validatePreference(i0.getQPref(), val.intValue()); final String validationError = val == null ? localizer.getMessage("lblEnteraNumber") : prefs.validatePreference(i0.getQPref(), val.intValue());
if (validationError != null) { if (validationError != null) {
showError(i0, validationError); showError(i0, validationError);
return; return;
@@ -66,7 +67,8 @@ public enum CSubmenuQuestPrefs implements ICDoc {
private static void showError(final PrefInput i0, final String s0) { private static void showError(final PrefInput i0, final String s0) {
final VSubmenuQuestPrefs view = VSubmenuQuestPrefs.SINGLETON_INSTANCE; 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()) { switch(i0.getErrType()) {
case BOOSTER: case BOOSTER:
view.getLblErrBooster().setVisible(true); view.getLblErrBooster().setVisible(true);

View File

@@ -5,6 +5,7 @@ import forge.game.GameFormat;
import forge.gui.SOverlayUtils; import forge.gui.SOverlayUtils;
import forge.model.FModel; import forge.model.FModel;
import forge.toolbox.*; import forge.toolbox.*;
import forge.util.Localizer;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import javax.swing.*; import javax.swing.*;
@@ -19,7 +20,8 @@ public class DialogChooseFormats {
private Runnable okCallback; private Runnable okCallback;
private final List<FCheckBox> choices = new ArrayList<>(); private final List<FCheckBox> 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(){ public DialogChooseFormats(){
this(null); this(null);
@@ -56,12 +58,12 @@ public class DialogChooseFormats {
panel.setOpaque(false); panel.setOpaque(false);
panel.setBackgroundTexture(FSkin.getIcon(FSkinProp.BG_TEXTURE)); 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"; String constraints = "aligny top";
panel.add(makeCheckBoxList(sanctioned, "Sanctioned", true), constraints); panel.add(makeCheckBoxList(sanctioned, localizer.getMessage("lblSanctioned"), true), constraints);
panel.add(makeCheckBoxList(casual, "Other", false), constraints); panel.add(makeCheckBoxList(casual, localizer.getMessage("lblOther"), false), constraints);
panel.add(makeCheckBoxList(historic, "Historic", false), constraints); panel.add(makeCheckBoxList(historic, localizer.getMessage("lblHistoric"), false), constraints);
final JPanel overlay = FOverlay.SINGLETON_INSTANCE.getPanel(); final JPanel overlay = FOverlay.SINGLETON_INSTANCE.getPanel();
overlay.setLayout(new MigLayout("insets 0, gap 0, wrap, ax center, ay center")); 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() { btnOk.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent arg0) { 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() { btnCancel.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {

View File

@@ -6,6 +6,7 @@ import forge.card.MagicColor;
import forge.gui.SOverlayUtils; import forge.gui.SOverlayUtils;
import forge.quest.StartingPoolPreferences.PoolType; import forge.quest.StartingPoolPreferences.PoolType;
import forge.toolbox.*; import forge.toolbox.*;
import forge.util.Localizer;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import javax.swing.*; import javax.swing.*;
@@ -17,27 +18,27 @@ import java.util.List;
@SuppressWarnings("WeakerAccess") @SuppressWarnings("WeakerAccess")
public class DialogChoosePoolDistribution { 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 FPanel mainPanel = new FPanel(new MigLayout("insets 20, gap 25, center, wrap 2"));
private final FCheckBox cbxBlack = new FCheckBox("Black"); private final FCheckBox cbxBlack = new FCheckBox(localizer.getMessage("lblBlack"));
private final FCheckBox cbxBlue = new FCheckBox("Blue"); private final FCheckBox cbxBlue = new FCheckBox(localizer.getMessage("lblBlue"));
private final FCheckBox cbxGreen = new FCheckBox("Green"); private final FCheckBox cbxGreen = new FCheckBox(localizer.getMessage("lblGreen"));
private final FCheckBox cbxRed = new FCheckBox("Red"); private final FCheckBox cbxRed = new FCheckBox(localizer.getMessage("lblRed"));
private final FCheckBox cbxWhite = new FCheckBox("White"); private final FCheckBox cbxWhite = new FCheckBox(localizer.getMessage("lblWhite"));
private final FCheckBox cbxColorless = new FCheckBox("Colorless"); private final FCheckBox cbxColorless = new FCheckBox(localizer.getMessage("lblColorless"));
private final FCheckBox cbxArtifacts = new FCheckBox("Include Artifacts"); private final FCheckBox cbxArtifacts = new FCheckBox(localizer.getMessage("lblIncludeArtifacts"));
private final FRadioButton radBalanced = new FRadioButton("Balanced"); private final FRadioButton radBalanced = new FRadioButton(localizer.getMessage("lblBalanced"));
private final FRadioButton radRandom = new FRadioButton("True Random"); private final FRadioButton radRandom = new FRadioButton(localizer.getMessage("lblTrueRandom"));
private final FRadioButton radSurpriseMe = new FRadioButton("Surprise Me"); private final FRadioButton radSurpriseMe = new FRadioButton(localizer.getMessage("lblSurpriseMe"));
private final FRadioButton radBoosters = new FRadioButton("Boosters"); private final FRadioButton radBoosters = new FRadioButton(localizer.getMessage("lblBoosters"));
private final ButtonGroup poolTypeButtonGroup = new ButtonGroup(); private final ButtonGroup poolTypeButtonGroup = new ButtonGroup();
private final FTextField numberOfBoostersField = new FTextField.Builder().text("0").maxLength(10).build(); 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; private Runnable callback;
@@ -100,7 +101,7 @@ public class DialogChoosePoolDistribution {
final FPanel right = new FPanel(new MigLayout(contentPanelConstraints)); final FPanel right = new FPanel(new MigLayout(contentPanelConstraints));
right.setOpaque(false); 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() { clearColors.setCommand(new UiCommand() {
@Override @Override
public void run() { 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 boosterPackLabel = new FLabel.Builder().text(localizer.getMessage("lblNumberofBoosters") + ":").fontSize(14).build();
final FLabel colorsLabel = new FLabel.Builder().text("Colors").fontSize(18).build(); final FLabel colorsLabel = new FLabel.Builder().text(localizer.getMessage("lblColors")).fontSize(18).build();
final FTextPane noSettingsText = new FTextPane("No settings are available for this selection."); final FTextPane noSettingsText = new FTextPane(localizer.getMessage("lblnoSettings"));
if (radBoosters.isSelected()) { if (radBoosters.isSelected()) {
right.add(boosterPackLabel, "gaptop 10"); right.add(boosterPackLabel, "gaptop 10");
@@ -139,7 +140,7 @@ public class DialogChoosePoolDistribution {
//Left Side //Left Side
final FPanel left = new FPanel(new MigLayout(contentPanelConstraints)); final FPanel left = new FPanel(new MigLayout(contentPanelConstraints));
left.setOpaque(false); 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 JXButtonPanel poolTypePanel = new JXButtonPanel();
final String radioConstraints = "h 25px!, gaptop 5"; final String radioConstraints = "h 25px!, gaptop 5";
@@ -149,7 +150,7 @@ public class DialogChoosePoolDistribution {
poolTypePanel.add(radBoosters, radioConstraints); poolTypePanel.add(radBoosters, radioConstraints);
left.add(poolTypePanel, "gaptop 15"); 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() { ActionListener radioButtonListener = new ActionListener() {
@Override @Override
@@ -202,11 +203,11 @@ public class DialogChoosePoolDistribution {
cbxArtifacts.setVisible(!radSurpriseMe.isSelected() && !radBoosters.isSelected()); cbxArtifacts.setVisible(!radSurpriseMe.isSelected() && !radBoosters.isSelected());
numberOfBoostersField.setVisible(radBoosters.isSelected()); numberOfBoostersField.setVisible(radBoosters.isSelected());
radBalanced.setToolTipText("A \"Balanced\" distribution will provide a roughly equal number of cards in each selected color."); radBalanced.setToolTipText(localizer.getMessage("lblradBalanced"));
radRandom.setToolTipText("A \"True Random\" distribution will be almost entirely randomly selected. This ignores any color selections."); radRandom.setToolTipText(localizer.getMessage("lblradRandom"));
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."); radSurpriseMe.setToolTipText(localizer.getMessage("lblradSurpriseMe"));
radBoosters.setToolTipText("This ignores all color settings and instead generates a card pool out of a specified number of booster packs."); radBoosters.setToolTipText(localizer.getMessage("lblradBoosters"));
cbxArtifacts.setToolTipText("When selected, artifacts will be included in your pool regardless of color selections. This mimics the old card pool behavior."); cbxArtifacts.setToolTipText(localizer.getMessage("lblcbxArtifacts"));
radBalanced.addActionListener(radioButtonListener); radBalanced.addActionListener(radioButtonListener);
radRandom.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() { btnCancel.setCommand(new UiCommand() {
@Override @Override
public void run() { public void run() {

View File

@@ -7,6 +7,7 @@ import forge.gui.framework.EDocID;
import forge.quest.IVQuestStats; import forge.quest.IVQuestStats;
import forge.screens.home.*; import forge.screens.home.*;
import forge.toolbox.*; import forge.toolbox.*;
import forge.util.Localizer;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import javax.swing.*; import javax.swing.*;
@@ -20,6 +21,7 @@ import java.awt.*;
public enum VSubmenuChallenges implements IVSubmenu<CSubmenuChallenges>, IVQuestStats { public enum VSubmenuChallenges implements IVSubmenu<CSubmenuChallenges>, IVQuestStats {
/** */ /** */
SINGLETON_INSTANCE; SINGLETON_INSTANCE;
final Localizer localizer = Localizer.getInstance();
// Fields used with interface IVDoc // Fields used with interface IVDoc
private DragCell parentCell; private DragCell parentCell;

View File

@@ -8,9 +8,8 @@ import forge.interfaces.IButton;
import forge.quest.IVQuestStats; import forge.quest.IVQuestStats;
import forge.screens.home.*; import forge.screens.home.*;
import forge.toolbox.*; import forge.toolbox.*;
import forge.util.Localizer;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import forge.util.Localizer;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;

View File

@@ -17,8 +17,8 @@ import forge.screens.home.EMenuGroup;
import forge.screens.home.IVSubmenu; import forge.screens.home.IVSubmenu;
import forge.screens.home.VHomeUI; import forge.screens.home.VHomeUI;
import forge.toolbox.*; import forge.toolbox.*;
import forge.util.Localizer;
import forge.util.storage.IStorage; import forge.util.storage.IStorage;
import forge.util.Localizer;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import org.apache.commons.lang3.text.WordUtils; import org.apache.commons.lang3.text.WordUtils;
@@ -50,7 +50,7 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
private final FLabel lblTitleNew = new FLabel.Builder().text(localizer.getMessage("lblStartanewQuest")).opaque(true).fontSize(16).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('\\', '/')); 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 QuestFileLister lstQuests = new QuestFileLister();
private final FScrollPane scrQuests = new FScrollPane(lstQuests, false); private final FScrollPane scrQuests = new FScrollPane(lstQuests, false);
private final JPanel pnlOptions = new JPanel(); private final JPanel pnlOptions = new JPanel();
@@ -72,10 +72,10 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
private final FLabel lblUnrestricted = new FLabel.Builder().text(localizer.getMessage("lblAllCardsAvailable")).build(); 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<String> cbxPreconDeck = new FComboBoxWrapper<>(); private final FComboBoxWrapper<String> 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<GameFormat> cbxFormat = new FComboBoxWrapper<>(); private final FComboBoxWrapper<GameFormat> cbxFormat = new FComboBoxWrapper<>();
private final FLabel lblCustomDeck = new FLabel.Builder().text(localizer.getMessage("lblCustomdeck")).build(); private final FLabel lblCustomDeck = new FLabel.Builder().text(localizer.getMessage("lblCustomdeck")).build();

View File

@@ -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. lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included.
lblSameAsStartingPool=Same as starting pool lblSameAsStartingPool=Same as starting pool
lblNewLoadQuest=New / Load Quest 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.

View File

@@ -190,7 +190,7 @@ lblGameSettings = Game Settings
lblHeaderConstructedMode=Sanctioned Format: Constructed lblHeaderConstructedMode=Sanctioned Format: Constructed
lblGetNewRandomName=Get new random name lblGetNewRandomName=Get new random name
lbltypeofName=What type of name do you want to generate? 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 lblUseThisName=Use this name
lblTryAgain=Try Again lblTryAgain=Try Again
lblAddAPlayer=Add a Player lblAddAPlayer=Add a Player
@@ -374,7 +374,7 @@ cbLaunchZeppelin=Launch Zeppelin
#VSubmenuQuest.java #VSubmenuQuest.java
lblQuestData=Quest Data lblQuestData=Quest Data
lblStartanewQuest=Start a new Quest 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 rbEasy=Easy
rbMedium=Medium rbMedium=Medium
rbHard=Hard rbHard=Hard
@@ -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. lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included.
lblSameAsStartingPool=Same as starting pool lblSameAsStartingPool=Same as starting pool
lblNewLoadQuest=New / Load Quest 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.

View File

@@ -13,11 +13,11 @@ btnDeleteWorkshopUI=Restablecer diseño del Workshop
btnUserProfileUI=Abrir directorio de usuario btnUserProfileUI=Abrir directorio de usuario
btnContentDirectoryUI=Abrir directorio del contenido btnContentDirectoryUI=Abrir directorio del contenido
btnResetJavaFutureCompatibilityWarnings=Restablecer las advertencias de compatibilidad de Java btnResetJavaFutureCompatibilityWarnings=Restablecer las advertencias de compatibilidad de Java
btnClearImageCache= btnClearImageCache=Limpiar Caché de Imágenes
btnTokenPreviewer= btnTokenPreviewer=Previsualizador de Fichas (Token)
btnCopyToClipboard=Copy to Clipboard btnCopyToClipboard=Copiar al portapapeles
cbpSelectLanguage=Language cbpSelectLanguage=Idioma
nlSelectLanguage=Select Language (Excluded math part. Still a work in progress) (RESTART REQUIRED) nlSelectLanguage=Seleccionar idioma (excepto partida). Todavía un trabajo en progreso) (Es necesario reiniciar Forge)
cbRemoveSmall=Eliminar Pequeñas Criaturas cbRemoveSmall=Eliminar Pequeñas Criaturas
cbCardBased=Incluye la generación de mazo basado en tarjeta cbCardBased=Incluye la generación de mazo basado en tarjeta
cbSingletons=Mode Singleton cbSingletons=Mode Singleton
@@ -144,8 +144,8 @@ btnDownloadPics=Descargar todas las Cartas
btnDownloadQuestImages=Descargar Imágenes del modo Quest btnDownloadQuestImages=Descargar Imágenes del modo Quest
btnDownloadAchievementImages=Descagar Imágenes de los Logros btnDownloadAchievementImages=Descagar Imágenes de los Logros
btnReportBug=Reportar un error btnReportBug=Reportar un error
btnListImageData=Audit Card and Image Data btnListImageData=Auditar Cartas y Datos de Imagen
lblListImageData=Audit cards not implemented by Forge and missing card images lblListImageData=Audita cartas no implementadas por Forge e imágenes de cartas faltantes
btnImportPictures=Importar Datos btnImportPictures=Importar Datos
btnHowToPlay=Cómo jugar (Inglés) btnHowToPlay=Cómo jugar (Inglés)
btnDownloadPrices=Descargar los precios de las cartas btnDownloadPrices=Descargar los precios de las cartas
@@ -264,10 +264,10 @@ lblDeckList=Lista del Mazo
lblClose=Cerrar lblClose=Cerrar
lblExitForge=Salir de Forge lblExitForge=Salir de Forge
#ConstructedGameMenu.java #ConstructedGameMenu.java
lblSelectAvatarFor=Select avatar for %s lblSelectAvatarFor=Seleccionar avatar para %s
lblRemoveSmallCreatures=Remove 1/1 and 0/X creatures in generated decks. lblRemoveSmallCreatures=Elimina 1/1 y 0 /X criaturas en los mazos generados.
lblRemoveArtifacts=Remove artifact cards in generated decks. lblRemoveArtifacts=Retira las tarjetas de artefactos en los mazos generados.
PreventNonLandDuplicates=Prevent non-land duplicates in generated decks. PreventNonLandDuplicates=Evitar que no se dupliquen las tierras en los mazos generadas.
#PlayerPanel.java #PlayerPanel.java
lblName=Nombre lblName=Nombre
lblTeam=Equipo 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. lblAssignRemainingText=Distribuye los puntos de daño restantes entre las entidades letalmente heridas.
lblLethal=Letal lblLethal=Letal
#KeyboardShortcuts.java #KeyboardShortcuts.java
lblSHORTCUT_SHOWSTACK=Match: show stack panel lblSHORTCUT_SHOWSTACK=Partida: mostrar panel de pila
lblSHORTCUT_SHOWCOMBAT=Match: show combat panel lblSHORTCUT_SHOWCOMBAT=Partida: mostrar panel de combate
lblSHORTCUT_SHOWCONSOLE=Match: show console panel lblSHORTCUT_SHOWCONSOLE=Partida: mostrar el panel de la consola
lblSHORTCUT_SHOWDEV=Match: show dev panel lblSHORTCUT_SHOWDEV=Partida: mostrar panel de desarrollo
lblSHORTCUT_CONCEDE=Match: concede game lblSHORTCUT_CONCEDE=Partida: conceder juego
lblSHORTCUT_ENDTURN=Match: pass priority until EOT or next stack event lblSHORTCUT_ENDTURN=Partida: pasa la prioridad hasta fin del turno o siguiente evento de pila
lblSHORTCUT_ALPHASTRIKE=Match: Alpha Strike (attack with all available) lblSHORTCUT_ALPHASTRIKE=Partida: Alpha Strike (ataque con todos los disponibles)
lblSHORTCUT_SHOWTARGETING=Match: toggle targeting visual overlay lblSHORTCUT_SHOWTARGETING=Partida: alternar la orientación visual de superposición
lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Match: auto-yield ability on stack (Always Yes) lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Partida:ceder automaticamente en cada habilidad de la pila (Siempre Si)
lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Match: auto-yield ability on stack (Always No) lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Partida:ceder automaticamente en cada habilidad de la pila (Siempre No)
lblSHORTCUT_MACRO_RECORD=Match: record a macro sequence of actions lblSHORTCUT_MACRO_RECORD=Partida: Grabar una macro de secuencia de acciones
lblSHORTCUT_MACRO_NEXT_ACTION=Match: execute next action in a recorded macro lblSHORTCUT_MACRO_NEXT_ACTION=Partida: Ejecutar siguiente acción en una macro grabada
lblSHORTCUT_CARD_ZOOM=Match: zoom the currently selected card lblSHORTCUT_CARD_ZOOM=Partida: hacer zoom en la carta seleccionada
#VSubmenuDraft.java #VSubmenuDraft.java
lblBoosterDraft=Booster Draft lblBoosterDraft=Booster Draft
lblHeaderBoosterDraft=Formato sancionado: 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 lblNewBoosterDraftGame=Nuevo Booster Draft
lblDraftDecks=Mazos de Draft lblDraftDecks=Mazos de Draft
#CSubmenuDraft.java #CSubmenuDraft.java
lblNoDeckSelected=No deck selected for human.\n(You may need to build a new deck) lblNoDeckSelected=Ningún mazo seleccionado para humano.\n(Es posible que necesites construir un nuevo mazo)
lblNoDeck=No Deck lblNoDeck=No hay Mazo
lblChooseDraftFormat=Choose Draft Format lblChooseDraftFormat=Elige el Formato del Draft
#VSubmenuSealed.java #VSubmenuSealed.java
lblSealedDeck=Mazo Sellado lblSealedDeck=Mazo Sellado
lblSealedDecks=Mazos de 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. 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 #VSubmenuDuels.java
lblQuestDuels=Duelos de Aventura lblQuestDuels=Duelos de Aventura
lblQuestModeDuels=Modo Quest: Duelos lblQuestModeDuels=Modo Aventura: Duelos
lblSelectNextDuel=Select your next duel. lblSelectNextDuel=Selecciona tu próximo duelo.
lblNoDuelDeck=Current deck hasn't been set yet. lblNoDuelDeck=No se ha establecido todavía el mazo actual.
lblNextChallengeNotYet=Next challenge in wins hasn't been set yet. lblNextChallengeNotYet=El próximo desafío en victorias aún no se ha establecido.
btnUnlockSets=Unlock Sets btnUnlockSets=Desbloquear Sets
btnTravel=Travel btnTravel=Viajar
btnBazaar=Bazaar btnBazaar=Bazar
btnSpellShop=Spell Shop btnSpellShop=Tienda de Hechizos
cbSummonPlant=Summon Plant cbSummonPlant=Invocar Planta
cbLaunchZeppelin=Launch Zeppelin cbLaunchZeppelin=Lanzar Zeppelin
#VSubmenuQuest.java #VSubmenuQuest.java
lblQuestData=Quest Data lblQuestData=Datos de Aventura
lblStartanewQuest=Start a new Quest lblStartanewQuest=Comenzar una nueva Aventura
lblOldQuestData=Old quest data? Put into %n and restart Forge. lblOldQuestData=Viejos datos de Aventura? Poner en %n y reiniciar Forge.
rbEasy=Easy rbEasy=Fácil
rbMedium=Medium rbMedium=Medio
rbHard=Hard rbHard=Difícil
rbExpert=Expert rbExpert=Experto
rbFantasyMode=Fantasy Mode rbFantasyMode=Modo Fantasía
rbCommanderSubformat=Commander Subformat rbCommanderSubformat=Subformato Commander
lblStartingWorld=Starting World lblStartingWorld=Mundo de partida
lblStartingPool=Starting Pool lblStartingPool=Pool inicial
lblAllCardsAvailable=All cards will be available to play. lblAllCardsAvailable=Todas las cartas estarán disponibles para jugar.
lblStarterEventdeck=Starter/Event deck: lblStarterEventdeck=Mazo de Inicio/Evento
lblSanctionedformat=Sanctioned format: lblSanctionedformat=Formato Sancionado
lblCustomdeck=Custom deck lblCustomdeck=Mazo Personalizado
lblDefineCustomFormat=Define custom format lblDefineCustomFormat=Define mazo personalizado
lblSelectFormat=Select format lblSelectFormat=Selecciona formato
lblStartWithAllCards=Start with all cards in selected sets lblStartWithAllCards=Comienza con todas las cartas en set seleccionados
lblAllowDuplicateCards=Allow duplicate cards lblAllowDuplicateCards=Permitir cartas duplicadas
lblStartingPoolDistribution=Starting pool distribution lblStartingPoolDistribution=Distribución inicial de la Pool
lblChooseDistribution=Choose Distribution lblChooseDistribution=Elige Distribución
lblPrizedCards=Prized cards lblPrizedCards=Cartas Valiosas
lblAllCardsAvailableWin=All cards will be available to win. lblAllCardsAvailableWin=Todas las cartas estarán disponibles para ganar.
lblOnlySetsInStarting="Only sets in starting pool will be available. lblOnlySetsInStarting=Solo los sets del pool inicial estarán disponibles.
lblAllowUnlockAdEd=Allow unlock of additional editions lblAllowUnlockAdEd=Permite desbloquear ediciones adicionales.
lblEmbark=Embark! lblEmbark=¡Embarcarse!
lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected. lblboxCompleteSet=Comenzarás la aventura con 4 copias de cada carta en los sets que hayas seleccionado.
lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included. lblboxAllowDuplicates=Cuando tu pool inicial se genera, se puede incluir duplicados de cartas.
lblSameAsStartingPool=Same as starting pool lblSameAsStartingPool=Igual que el pool inicial
lblNewLoadQuest=New / Load Quest 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.