mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
Mobile: Translated more strings and Views
Fixed duplicated Catalog label Fixed Stack label not found
This commit is contained in:
@@ -27,6 +27,7 @@ import forge.screens.match.MatchController;
|
|||||||
import forge.toolbox.FCardPanel;
|
import forge.toolbox.FCardPanel;
|
||||||
import forge.toolbox.FDialog;
|
import forge.toolbox.FDialog;
|
||||||
import forge.toolbox.FOverlay;
|
import forge.toolbox.FOverlay;
|
||||||
|
import forge.util.Localizer;
|
||||||
import forge.util.collect.FCollectionView;
|
import forge.util.collect.FCollectionView;
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
@@ -281,10 +282,10 @@ public class CardZoom extends FOverlay {
|
|||||||
|
|
||||||
if (currentActivateAction != null) {
|
if (currentActivateAction != null) {
|
||||||
g.fillRect(FDialog.MSG_BACK_COLOR, 0, 0, w, messageHeight);
|
g.fillRect(FDialog.MSG_BACK_COLOR, 0, 0, w, messageHeight);
|
||||||
g.drawText("Swipe up to " + currentActivateAction, FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, 0, w, messageHeight, false, Align.center, true);
|
g.drawText(Localizer.getInstance().getMessage("lblSwipeUpTo").replace("%s", currentActivateAction), FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, 0, w, messageHeight, false, Align.center, true);
|
||||||
}
|
}
|
||||||
g.fillRect(FDialog.MSG_BACK_COLOR, 0, h - messageHeight, w, messageHeight);
|
g.fillRect(FDialog.MSG_BACK_COLOR, 0, h - messageHeight, w, messageHeight);
|
||||||
g.drawText("Swipe down to switch to " + (zoomMode ? "detail" : "picture") + " view", FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, h - messageHeight, w, messageHeight, false, Align.center, true);
|
g.drawText(zoomMode ? Localizer.getInstance().getMessage("lblSwipeDownDetailView") : Localizer.getInstance().getMessage("lblSwipeDownPictureView"), FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, h - messageHeight, w, messageHeight, false, Align.center, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
private boolean isAi;
|
private boolean isAi;
|
||||||
|
|
||||||
private final ForgePreferences prefs = FModel.getPreferences();
|
private final ForgePreferences prefs = FModel.getPreferences();
|
||||||
|
private final Localizer localizer = Localizer.getInstance();
|
||||||
private FPref stateSetting = null;
|
private FPref stateSetting = null;
|
||||||
private FOptionPane optionPane;
|
private FOptionPane optionPane;
|
||||||
|
|
||||||
@@ -98,7 +99,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
container.add(deckChooser.lstDecks);
|
container.add(deckChooser.lstDecks);
|
||||||
container.setHeight(FOptionPane.getMaxDisplayObjHeight());
|
container.setHeight(FOptionPane.getMaxDisplayObjHeight());
|
||||||
|
|
||||||
deckChooser.optionPane = new FOptionPane(null, null, title, null, container, ImmutableList.of("OK", "Cancel"), 0, new Callback<Integer>() {
|
deckChooser.optionPane = new FOptionPane(null, null, title, null, container, ImmutableList.of(Localizer.getInstance().getMessage("lblOK"), Localizer.getInstance().getMessage("lblCancel")), 0, new Callback<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(Integer result) {
|
public void run(Integer result) {
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
@@ -309,7 +310,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
editor = new FDeckEditor(getEditorType(), generatedDeck, true);
|
editor = new FDeckEditor(getEditorType(), generatedDeck, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
FOptionPane.showErrorDialog("You must select something before you can generate a new deck.");
|
FOptionPane.showErrorDialog(localizer.getMessage("lblMustSelectGenerateNewDeck"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -377,9 +378,10 @@ public class FDeckChooser extends FScreen {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//prompt to duplicate deck if deck doesn't exist already
|
//prompt to duplicate deck if deck doesn't exist already
|
||||||
FOptionPane.showConfirmDialog(selectedDeckType + " cannot be edited directly. Would you like to duplicate " + deck.getName() + " for editing as a custom user deck?",
|
FOptionPane.showConfirmDialog(selectedDeckType + " " + localizer.getMessage("lblCannotEditDuplicateCustomDeck").replace("%s", deck.getName()),
|
||||||
"Duplicate Deck?", "Duplicate", "Cancel", new Callback<Boolean>() {
|
localizer.getMessage("lblDuplicateDeck"), localizer.getMessage("lblDuplicate"), localizer.getMessage("lblCancel"), new Callback<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(Boolean result) {
|
public void run(Boolean result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
@@ -770,16 +772,16 @@ public class FDeckChooser extends FScreen {
|
|||||||
btnViewDeck.setVisible(false);
|
btnViewDeck.setVisible(false);
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
btnRandom.setWidth(btnNewDeck.getWidth());
|
||||||
|
|
||||||
btnNewDeck.setText("Generate New Deck");
|
btnNewDeck.setText(localizer.getMessage("lblGenerateNewDeck"));
|
||||||
switch (deckType) {
|
switch (deckType) {
|
||||||
case COLOR_DECK:
|
case COLOR_DECK:
|
||||||
btnRandom.setText("Random Colors");
|
btnRandom.setText(localizer.getMessage("lblRandomColors"));
|
||||||
break;
|
break;
|
||||||
case THEME_DECK:
|
case THEME_DECK:
|
||||||
btnRandom.setText("Random Theme");
|
btnRandom.setText(localizer.getMessage("lblRandomTheme"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
btnRandom.setText("Random Deck");
|
btnRandom.setText(localizer.getMessage("lblRandomDeck"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -789,11 +791,11 @@ public class FDeckChooser extends FScreen {
|
|||||||
btnViewDeck.setVisible(true);
|
btnViewDeck.setVisible(true);
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
btnRandom.setWidth(btnNewDeck.getWidth());
|
||||||
|
|
||||||
btnNewDeck.setText("New Deck");
|
btnNewDeck.setText(localizer.getMessage("lblNewDeck"));
|
||||||
|
|
||||||
if (lstDecks.getGameType() == GameType.DeckManager) {
|
if (lstDecks.getGameType() == GameType.DeckManager) {
|
||||||
//handle special case of Deck Editor screen where this button will start a game with the deck
|
//handle special case of Deck Editor screen where this button will start a game with the deck
|
||||||
btnRandom.setText("Test Deck");
|
btnRandom.setText(localizer.getMessage("lblTestDeck"));
|
||||||
|
|
||||||
switch (selectedDeckType) {
|
switch (selectedDeckType) {
|
||||||
case SCHEME_DECK:
|
case SCHEME_DECK:
|
||||||
@@ -806,7 +808,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
btnRandom.setText("Random Deck");
|
btnRandom.setText(localizer.getMessage("lblRandomDeck"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1063,7 +1065,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GuiChoose.getInteger("How many opponents are you willing to face?", 1, 50, new Callback<Integer>() {
|
GuiChoose.getInteger(localizer.getMessage("lblHowManyOpponents"), 1, 50, new Callback<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(final Integer numOpponents) {
|
public void run(final Integer numOpponents) {
|
||||||
if (numOpponents == null) { return; }
|
if (numOpponents == null) { return; }
|
||||||
@@ -1089,7 +1091,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ListChooser<DeckType> chooser = new ListChooser<>(
|
ListChooser<DeckType> chooser = new ListChooser<>(
|
||||||
"Choose allowed deck types for opponents", 0, deckTypes.size(), deckTypes, null, new Callback<List<DeckType>>() {
|
localizer.getMessage("lblChooseAllowedDeckTypeOpponents"), 0, deckTypes.size(), deckTypes, null, new Callback<List<DeckType>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(final List<DeckType> allowedDeckTypes) {
|
public void run(final List<DeckType> allowedDeckTypes) {
|
||||||
if (allowedDeckTypes == null || allowedDeckTypes.isEmpty()) {
|
if (allowedDeckTypes == null || allowedDeckTypes.isEmpty()) {
|
||||||
@@ -1109,7 +1111,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
FThreads.invokeInEdtLater(new Runnable() {
|
FThreads.invokeInEdtLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
LoadingOverlay.show("Loading new game...", new Runnable() {
|
LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
GauntletData gauntlet = GauntletUtil.createQuickGauntlet(userDeck, numOpponents, allowedDeckTypes, netCat);
|
GauntletData gauntlet = GauntletUtil.createQuickGauntlet(userDeck, numOpponents, allowedDeckTypes, netCat);
|
||||||
@@ -1135,12 +1137,12 @@ public class FDeckChooser extends FScreen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void testVariantDeck(final Deck userDeck, final GameType variant) {
|
private void testVariantDeck(final Deck userDeck, final GameType variant) {
|
||||||
promptForDeck("Select Opponent's Deck", variant, true, new Callback<Deck>() {
|
promptForDeck(localizer.getMessage("lblSelectOpponentDeck"), variant, true, new Callback<Deck>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(final Deck aiDeck) {
|
public void run(final Deck aiDeck) {
|
||||||
if (aiDeck == null) { return; }
|
if (aiDeck == null) { return; }
|
||||||
|
|
||||||
LoadingOverlay.show("Loading new game...", new Runnable() {
|
LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
Set<GameType> appliedVariants = new HashSet<>();
|
Set<GameType> appliedVariants = new HashSet<>();
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import forge.itemmanager.filters.DeckFormatFilter;
|
|||||||
import forge.itemmanager.filters.TextSearchFilter;
|
import forge.itemmanager.filters.TextSearchFilter;
|
||||||
import forge.toolbox.FList;
|
import forge.toolbox.FList;
|
||||||
import forge.toolbox.FList.CompactModeHandler;
|
import forge.toolbox.FList.CompactModeHandler;
|
||||||
|
import forge.util.Localizer;
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
import com.badlogic.gdx.utils.Align;
|
import com.badlogic.gdx.utils.Align;
|
||||||
@@ -39,7 +40,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
|||||||
public DeckManager(final GameType gt) {
|
public DeckManager(final GameType gt) {
|
||||||
super(DeckProxy.class, true);
|
super(DeckProxy.class, true);
|
||||||
gameType = gt;
|
gameType = gt;
|
||||||
setCaption("Decks");
|
setCaption(Localizer.getInstance().getMessage("lblDecks"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameType getGameType() {
|
public GameType getGameType() {
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ import forge.toolbox.FList;
|
|||||||
import forge.toolbox.FList.CompactModeHandler;
|
import forge.toolbox.FList.CompactModeHandler;
|
||||||
import forge.util.ItemPool;
|
import forge.util.ItemPool;
|
||||||
import forge.util.LayoutHelper;
|
import forge.util.LayoutHelper;
|
||||||
|
import forge.util.Localizer;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
@@ -125,7 +126,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
|||||||
add(btnAdvancedSearchOptions);
|
add(btnAdvancedSearchOptions);
|
||||||
btnAdvancedSearchOptions.setSelected(!hideFilters);
|
btnAdvancedSearchOptions.setSelected(!hideFilters);
|
||||||
if (allowSortChange()) {
|
if (allowSortChange()) {
|
||||||
cbxSortOptions = add(new FComboBox<>("Sort: "));
|
cbxSortOptions = add(new FComboBox<>(Localizer.getInstance().getMessage("lblSort") + ": "));
|
||||||
cbxSortOptions.setFont(FSkinFont.get(12));
|
cbxSortOptions.setFont(FSkinFont.get(12));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -140,7 +141,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
|||||||
FPopupMenu menu = new FPopupMenu() {
|
FPopupMenu menu = new FPopupMenu() {
|
||||||
@Override
|
@Override
|
||||||
protected void buildMenu() {
|
protected void buildMenu() {
|
||||||
addItem(new FMenuItem("Advanced Search", FSkinImage.SEARCH, new FEventHandler() {
|
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblAdvancedSearch"), FSkinImage.SEARCH, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if (advancedSearchFilter == null) {
|
if (advancedSearchFilter == null) {
|
||||||
@@ -150,7 +151,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
|||||||
advancedSearchFilter.edit();
|
advancedSearchFilter.edit();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
addItem(new FMenuItem("Reset Filters", FSkinImage.DELETE, new FEventHandler() {
|
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblResetFilters"), FSkinImage.DELETE, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
resetFilters();
|
resetFilters();
|
||||||
@@ -261,7 +262,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (cbxSortOptions != null) {
|
if (cbxSortOptions != null) {
|
||||||
cbxSortOptions.setText("(none)");
|
cbxSortOptions.setText("(" + Localizer.getInstance().getMessage("lblNone") + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
model.getCascadeManager().reset();
|
model.getCascadeManager().reset();
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import forge.itemmanager.filters.TextSearchFilter;
|
|||||||
import forge.quest.QuestSpellShop;
|
import forge.quest.QuestSpellShop;
|
||||||
import forge.toolbox.FList;
|
import forge.toolbox.FList;
|
||||||
import forge.toolbox.FList.CompactModeHandler;
|
import forge.toolbox.FList.CompactModeHandler;
|
||||||
|
import forge.util.Localizer;
|
||||||
|
|
||||||
|
|
||||||
public class SpellShopManager extends ItemManager<InventoryItem> {
|
public class SpellShopManager extends ItemManager<InventoryItem> {
|
||||||
@@ -29,7 +30,7 @@ public class SpellShopManager extends ItemManager<InventoryItem> {
|
|||||||
|
|
||||||
fnGetPrice = isShop0 ? QuestSpellShop.fnPriceGet : QuestSpellShop.fnPriceSellGet;
|
fnGetPrice = isShop0 ? QuestSpellShop.fnPriceGet : QuestSpellShop.fnPriceSellGet;
|
||||||
if (!isShop0) {
|
if (!isShop0) {
|
||||||
setCaption("Cards");
|
setCaption(Localizer.getInstance().getMessage("lblCards"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import forge.toolbox.FTextField;
|
|||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
import forge.toolbox.FLabel;
|
import forge.toolbox.FLabel;
|
||||||
import forge.util.Callback;
|
import forge.util.Callback;
|
||||||
|
import forge.util.Localizer;
|
||||||
|
|
||||||
|
|
||||||
public class AdvancedSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
|
public class AdvancedSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
|
||||||
@@ -126,13 +127,13 @@ public class AdvancedSearchFilter<T extends InventoryItem> extends ItemFilter<T>
|
|||||||
item.setTextRenderer(new TextRenderer()); //ensure symbols are displayed
|
item.setTextRenderer(new TextRenderer()); //ensure symbols are displayed
|
||||||
addItem(item);
|
addItem(item);
|
||||||
}
|
}
|
||||||
addItem(new FMenuItem("Edit Expression", FSkinImage.EDIT, new FEventHandler() {
|
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblEditExpression"), FSkinImage.EDIT, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
edit();
|
edit();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
addItem(new FMenuItem("Remove Filter", FSkinImage.DELETE, new FEventHandler() {
|
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblRemoveFilter"), FSkinImage.DELETE, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
reset();
|
reset();
|
||||||
@@ -176,7 +177,7 @@ public class AdvancedSearchFilter<T extends InventoryItem> extends ItemFilter<T>
|
|||||||
});
|
});
|
||||||
|
|
||||||
private EditScreen() {
|
private EditScreen() {
|
||||||
super("Advanced Search");
|
super(Localizer.getInstance().getMessage("lblAdvancedSearch"));
|
||||||
Filter filter = new Filter();
|
Filter filter = new Filter();
|
||||||
model.addFilterControl(filter);
|
model.addFilterControl(filter);
|
||||||
scroller.add(filter);
|
scroller.add(filter);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import forge.toolbox.FTextField;
|
|||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
import forge.toolbox.FLabel;
|
import forge.toolbox.FLabel;
|
||||||
import forge.toolbox.FScrollPane;
|
import forge.toolbox.FScrollPane;
|
||||||
|
import forge.util.Localizer;
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -358,7 +359,7 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
otherItems = groups.get(groups.size() - 1);
|
otherItems = groups.get(groups.size() - 1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
otherItems = new Group("Other");
|
otherItems = new Group(Localizer.getInstance().getMessage("lblOther"));
|
||||||
otherItems.isCollapsed = btnExpandCollapseAll.isAllCollapsed;
|
otherItems.isCollapsed = btnExpandCollapseAll.isAllCollapsed;
|
||||||
groups.add(otherItems);
|
groups.add(otherItems);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import forge.toolbox.FEvent.FEventHandler;
|
|||||||
import forge.toolbox.FLabel;
|
import forge.toolbox.FLabel;
|
||||||
import forge.toolbox.FScrollPane;
|
import forge.toolbox.FScrollPane;
|
||||||
import forge.util.Callback;
|
import forge.util.Callback;
|
||||||
|
import forge.util.Localizer;
|
||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
@@ -63,7 +64,7 @@ public class AvatarSelector extends FScreen {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private AvatarSelector(final String playerName, final int currentIndex0, final List<Integer> usedAvatars0, final Callback<Integer> callback0) {
|
private AvatarSelector(final String playerName, final int currentIndex0, final List<Integer> usedAvatars0, final Callback<Integer> callback0) {
|
||||||
super("Select Avatar for " + playerName);
|
super(Localizer.getInstance().getMessage("lblSelectAvatarFor").replace("%s",playerName));
|
||||||
|
|
||||||
currentIndex = currentIndex0;
|
currentIndex = currentIndex0;
|
||||||
usedAvatars = usedAvatars0;
|
usedAvatars = usedAvatars0;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package forge.screens.constructed;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import forge.deck.*;
|
import forge.deck.*;
|
||||||
|
import forge.util.Localizer;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
@@ -49,12 +50,13 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
// General variables
|
// General variables
|
||||||
private GameLobby lobby;
|
private GameLobby lobby;
|
||||||
private IPlayerChangeListener playerChangeListener = null;
|
private IPlayerChangeListener playerChangeListener = null;
|
||||||
private final FLabel lblPlayers = new FLabel.Builder().text("Players:").font(VARIANTS_FONT).build();
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
private final FLabel lblPlayers = new FLabel.Builder().text(localizer.getMessage("lblPlayers") + ":").font(VARIANTS_FONT).build();
|
||||||
private final FComboBox<Integer> cbPlayerCount;
|
private final FComboBox<Integer> cbPlayerCount;
|
||||||
private final Deck[] decks = new Deck[MAX_PLAYERS];
|
private final Deck[] decks = new Deck[MAX_PLAYERS];
|
||||||
|
|
||||||
// Variants frame and variables
|
// Variants frame and variables
|
||||||
private final FLabel lblVariants = new FLabel.Builder().text("Variants:").font(VARIANTS_FONT).build();
|
private final FLabel lblVariants = new FLabel.Builder().text(localizer.getMessage("lblVariants") + ":").font(VARIANTS_FONT).build();
|
||||||
private final FComboBox<Object> cbVariants = new FComboBox<>();
|
private final FComboBox<Object> cbVariants = new FComboBox<>();
|
||||||
|
|
||||||
private final List<PlayerPanel> playerPanels = new ArrayList<>(MAX_PLAYERS);
|
private final List<PlayerPanel> playerPanels = new ArrayList<>(MAX_PLAYERS);
|
||||||
@@ -117,7 +119,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
add(lblVariants);
|
add(lblVariants);
|
||||||
add(cbVariants);
|
add(cbVariants);
|
||||||
cbVariants.setFont(VARIANTS_FONT);
|
cbVariants.setFont(VARIANTS_FONT);
|
||||||
cbVariants.addItem("(None)");
|
cbVariants.addItem("(" + localizer.getMessage("lblNone") + ")");
|
||||||
cbVariants.addItem(GameType.Vanguard);
|
cbVariants.addItem(GameType.Vanguard);
|
||||||
cbVariants.addItem(GameType.MomirBasic);
|
cbVariants.addItem(GameType.MomirBasic);
|
||||||
cbVariants.addItem(GameType.MoJhoSto);
|
cbVariants.addItem(GameType.MoJhoSto);
|
||||||
@@ -128,7 +130,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
cbVariants.addItem(GameType.Planechase);
|
cbVariants.addItem(GameType.Planechase);
|
||||||
cbVariants.addItem(GameType.Archenemy);
|
cbVariants.addItem(GameType.Archenemy);
|
||||||
cbVariants.addItem(GameType.ArchenemyRumble);
|
cbVariants.addItem(GameType.ArchenemyRumble);
|
||||||
cbVariants.addItem("More....");
|
cbVariants.addItem(localizer.getMessage("lblMore"));
|
||||||
cbVariants.setChangedHandler(new FEventHandler() {
|
cbVariants.setChangedHandler(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
@@ -282,7 +284,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
FThreads.invokeInEdtLater(new Runnable() {
|
FThreads.invokeInEdtLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
LoadingOverlay.show("Loading new game...", startGame);
|
LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), startGame);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -312,7 +314,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
|
|
||||||
// Name
|
// Name
|
||||||
String prefName = prefs.getPref(FPref.PLAYER_NAME);
|
String prefName = prefs.getPref(FPref.PLAYER_NAME);
|
||||||
playerPanels.get(0).setPlayerName(StringUtils.isBlank(prefName) ? "Human" : prefName);
|
playerPanels.get(0).setPlayerName(StringUtils.isBlank(prefName) ? Localizer.getInstance().getMessage("lblHuman") : prefName);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Integer> getUsedAvatars() {
|
List<Integer> getUsedAvatars() {
|
||||||
@@ -347,7 +349,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
private final FList<Variant> lstVariants = add(new FList<>());
|
private final FList<Variant> lstVariants = add(new FList<>());
|
||||||
|
|
||||||
private MultiVariantSelect() {
|
private MultiVariantSelect() {
|
||||||
super("Select Variants");
|
super(Localizer.getInstance().getMessage("lblSelectVariants"));
|
||||||
|
|
||||||
lstVariants.setListItemRenderer(new VariantRenderer());
|
lstVariants.setListItemRenderer(new VariantRenderer());
|
||||||
lstVariants.addItem(new Variant(GameType.Vanguard));
|
lstVariants.addItem(new Variant(GameType.Vanguard));
|
||||||
@@ -625,7 +627,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
if (ready) {
|
if (ready) {
|
||||||
updateDeck(index);
|
updateDeck(index);
|
||||||
if (decks[index] == null) {
|
if (decks[index] == null) {
|
||||||
FOptionPane.showErrorDialog("Select a deck before readying!");
|
FOptionPane.showErrorDialog(localizer.getMessage("msgSelectAdeckBeforeReadying"));
|
||||||
update(false);
|
update(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import forge.util.*;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import com.badlogic.gdx.utils.Align;
|
import com.badlogic.gdx.utils.Align;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
@@ -39,10 +40,6 @@ import forge.toolbox.FOptionPane;
|
|||||||
import forge.toolbox.FTextField;
|
import forge.toolbox.FTextField;
|
||||||
import forge.toolbox.FToggleSwitch;
|
import forge.toolbox.FToggleSwitch;
|
||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
import forge.util.Callback;
|
|
||||||
import forge.util.Lang;
|
|
||||||
import forge.util.NameGenerator;
|
|
||||||
import forge.util.Utils;
|
|
||||||
|
|
||||||
public class PlayerPanel extends FContainer {
|
public class PlayerPanel extends FContainer {
|
||||||
private static final ForgePreferences prefs = FModel.getPreferences();
|
private static final ForgePreferences prefs = FModel.getPreferences();
|
||||||
@@ -60,21 +57,22 @@ public class PlayerPanel extends FContainer {
|
|||||||
private final FLabel avatarLabel = new FLabel.Builder().opaque(true).iconScaleFactor(0.99f).alphaComposite(1).iconInBackground(true).build();
|
private final FLabel avatarLabel = new FLabel.Builder().opaque(true).iconScaleFactor(0.99f).alphaComposite(1).iconInBackground(true).build();
|
||||||
private int avatarIndex;
|
private int avatarIndex;
|
||||||
|
|
||||||
private final FTextField txtPlayerName = new FTextField("Player name");
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
private final FTextField txtPlayerName = new FTextField(localizer.getMessage("lblPlayerName"));
|
||||||
private final FToggleSwitch humanAiSwitch;
|
private final FToggleSwitch humanAiSwitch;
|
||||||
private final FToggleSwitch devModeSwitch;
|
private final FToggleSwitch devModeSwitch;
|
||||||
|
|
||||||
private FComboBox<Object> cbTeam = new FComboBox<>();
|
private FComboBox<Object> cbTeam = new FComboBox<>();
|
||||||
private FComboBox<Object> cbArchenemyTeam = new FComboBox<>();
|
private FComboBox<Object> cbArchenemyTeam = new FComboBox<>();
|
||||||
|
|
||||||
private final FLabel btnDeck = new FLabel.ButtonBuilder().text("Loading Deck...").build();
|
private final FLabel btnDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblLoadingDeck")).build();
|
||||||
private final FLabel btnSchemeDeck = new FLabel.ButtonBuilder().text("Scheme Deck: Random Generated Deck").build();
|
private final FLabel btnSchemeDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblSchemeDeckRandomGenerated")).build();
|
||||||
private final FLabel btnCommanderDeck = new FLabel.ButtonBuilder().text("Commander Deck: Random Generated Deck").build();
|
private final FLabel btnCommanderDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblCommanderDeckRandomGenerated")).build();
|
||||||
private final FLabel btnOathbreakDeck = new FLabel.ButtonBuilder().text("Oathbreaker Deck: Random Generated Deck").build();
|
private final FLabel btnOathbreakDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblOathbreakerDeckRandomGenerated")).build();
|
||||||
private final FLabel btnTinyLeadersDeck = new FLabel.ButtonBuilder().text("Tiny Leaders Deck: Random Generated Deck").build();
|
private final FLabel btnTinyLeadersDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblTinyLeadersDeckRandomGenerated")).build();
|
||||||
private final FLabel btnBrawlDeck = new FLabel.ButtonBuilder().text("Brawl Deck: Random Generated Deck").build();
|
private final FLabel btnBrawlDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblBrawlDeckRandomGenerated")).build();
|
||||||
private final FLabel btnPlanarDeck = new FLabel.ButtonBuilder().text("Planar Deck: Random Generated Deck").build();
|
private final FLabel btnPlanarDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblPlanarDeckRandomGenerated")).build();
|
||||||
private final FLabel btnVanguardAvatar = new FLabel.ButtonBuilder().text("Vanguard Avatar: Random").build();
|
private final FLabel btnVanguardAvatar = new FLabel.ButtonBuilder().text(localizer.getMessage("lblVanguardAvatarRandom")).build();
|
||||||
|
|
||||||
private final FDeckChooser deckChooser, lstSchemeDecks, lstCommanderDecks, lstOathbreakerDecks, lstTinyLeadersDecks, lstBrawlDecks, lstPlanarDecks;
|
private final FDeckChooser deckChooser, lstSchemeDecks, lstCommanderDecks, lstOathbreakerDecks, lstTinyLeadersDecks, lstBrawlDecks, lstPlanarDecks;
|
||||||
private final FVanguardChooser lstVanguardAvatars;
|
private final FVanguardChooser lstVanguardAvatars;
|
||||||
@@ -84,10 +82,10 @@ public class PlayerPanel extends FContainer {
|
|||||||
screen = screen0;
|
screen = screen0;
|
||||||
allowNetworking = allowNetworking0;
|
allowNetworking = allowNetworking0;
|
||||||
if (allowNetworking) {
|
if (allowNetworking) {
|
||||||
humanAiSwitch = new FToggleSwitch("Not Ready", "Ready");
|
humanAiSwitch = new FToggleSwitch(localizer.getMessage("lblNotReady"), localizer.getMessage("lblReady"));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
humanAiSwitch = new FToggleSwitch("Human", "AI");
|
humanAiSwitch = new FToggleSwitch(localizer.getMessage("lblHuman"), localizer.getMessage("lblAI"));
|
||||||
}
|
}
|
||||||
index = index0;
|
index = index0;
|
||||||
populateTeamsComboBoxes();
|
populateTeamsComboBoxes();
|
||||||
@@ -97,7 +95,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
setPlayerName(slot.getName());
|
setPlayerName(slot.getName());
|
||||||
setAvatarIndex(slot.getAvatarIndex());
|
setAvatarIndex(slot.getAvatarIndex());
|
||||||
|
|
||||||
devModeSwitch = new FToggleSwitch("Normal", "Dev Mode");
|
devModeSwitch = new FToggleSwitch(localizer.getMessage("lblNormal"), localizer.getMessage("lblDevMode"));
|
||||||
devModeSwitch.setVisible(isNetworkHost());
|
devModeSwitch.setVisible(isNetworkHost());
|
||||||
|
|
||||||
cbTeam.setEnabled(true);
|
cbTeam.setEnabled(true);
|
||||||
@@ -117,10 +115,10 @@ public class PlayerPanel extends FContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnCommanderDeck.setText("Commander Deck: " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnCommanderDeck.setText(localizer.getMessage("lblCommanderDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstCommanderDecks.saveState();
|
lstCommanderDecks.saveState();
|
||||||
}else{
|
}else{
|
||||||
btnCommanderDeck.setText("Commander Deck");
|
btnCommanderDeck.setText(localizer.getMessage("lblCommanderDeck"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -128,10 +126,10 @@ public class PlayerPanel extends FContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnOathbreakDeck.setText("Oathbreaker Deck: " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnOathbreakDeck.setText(localizer.getMessage("lblOathbreakerDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstOathbreakerDecks.saveState();
|
lstOathbreakerDecks.saveState();
|
||||||
}else{
|
}else{
|
||||||
btnOathbreakDeck.setText("Oathbreaker Deck");
|
btnOathbreakDeck.setText(localizer.getMessage("lblOathbreakerDeck"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -139,10 +137,10 @@ public class PlayerPanel extends FContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnTinyLeadersDeck.setText("Tiny Leaders Deck: " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnTinyLeadersDeck.setText(localizer.getMessage("lblTinyLeadersDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstTinyLeadersDecks.saveState();
|
lstTinyLeadersDecks.saveState();
|
||||||
}else{
|
}else{
|
||||||
btnTinyLeadersDeck.setText("Tiny Leaders Deck");
|
btnTinyLeadersDeck.setText(localizer.getMessage("lblTinyLeadersDeck"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -150,10 +148,10 @@ public class PlayerPanel extends FContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnBrawlDeck.setText("Brawl Deck: " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnBrawlDeck.setText(localizer.getMessage("lblBrawlDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstBrawlDecks.saveState();
|
lstBrawlDecks.saveState();
|
||||||
}else{
|
}else{
|
||||||
btnBrawlDeck.setText("Brawl Deck");
|
btnBrawlDeck.setText(localizer.getMessage("lblBrawlDeck"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -161,9 +159,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
||||||
btnSchemeDeck.setText("Scheme Deck: " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
btnSchemeDeck.setText(localizer.getMessage("lblSchemeDeck") + ": " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
||||||
}else{
|
}else{
|
||||||
btnSchemeDeck.setText("Scheme Deck");
|
btnSchemeDeck.setText(localizer.getMessage("lblSchemeDeck"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -171,16 +169,16 @@ public class PlayerPanel extends FContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
||||||
btnPlanarDeck.setText("Planar Deck: " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
btnPlanarDeck.setText(localizer.getMessage("lblPlanarDeck") + ": " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
||||||
}else{
|
}else{
|
||||||
btnPlanarDeck.setText("Planar Deck");
|
btnPlanarDeck.setText(localizer.getMessage("lblPlanarDeck"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
lstVanguardAvatars = new FVanguardChooser(isAi, new FEventHandler() {
|
lstVanguardAvatars = new FVanguardChooser(isAi, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
btnVanguardAvatar.setText("Vanguard: " + ((CardManager)e.getSource()).getSelectedItem().getName());
|
btnVanguardAvatar.setText(localizer.getMessage("lblVanguard") + ": " + ((CardManager)e.getSource()).getSelectedItem().getName());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -188,7 +186,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
add(avatarLabel);
|
add(avatarLabel);
|
||||||
|
|
||||||
createNameEditor();
|
createNameEditor();
|
||||||
add(newLabel("Name:"));
|
add(newLabel(localizer.getMessage("lblName") + ":"));
|
||||||
add(txtPlayerName);
|
add(txtPlayerName);
|
||||||
|
|
||||||
nameRandomiser = createNameRandomizer();
|
nameRandomiser = createNameRandomizer();
|
||||||
@@ -197,7 +195,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
humanAiSwitch.setChangedHandler(humanAiSwitched);
|
humanAiSwitch.setChangedHandler(humanAiSwitched);
|
||||||
add(humanAiSwitch);
|
add(humanAiSwitch);
|
||||||
|
|
||||||
add(newLabel("Team:"));
|
add(newLabel(localizer.getMessage("lblTeam") + ":"));
|
||||||
cbTeam.setChangedHandler(teamChangedHandler);
|
cbTeam.setChangedHandler(teamChangedHandler);
|
||||||
cbArchenemyTeam.setChangedHandler(teamChangedHandler);
|
cbArchenemyTeam.setChangedHandler(teamChangedHandler);
|
||||||
add(cbTeam);
|
add(cbTeam);
|
||||||
@@ -211,7 +209,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnDeck.setCommand(new FEventHandler() {
|
btnDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
deckChooser.setHeaderCaption("Select Deck for " + txtPlayerName.getText());
|
deckChooser.setHeaderCaption(localizer.getMessage("lblSelectDeckFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(deckChooser);
|
Forge.openScreen(deckChooser);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -219,7 +217,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnCommanderDeck.setCommand(new FEventHandler() {
|
btnCommanderDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
lstCommanderDecks.setHeaderCaption("Select Commander Deck for " + txtPlayerName.getText());
|
lstCommanderDecks.setHeaderCaption(localizer.getMessage("lblSelectCommanderDeckFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(lstCommanderDecks);
|
Forge.openScreen(lstCommanderDecks);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -227,7 +225,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnOathbreakDeck.setCommand(new FEventHandler() {
|
btnOathbreakDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
lstOathbreakerDecks.setHeaderCaption("Select Oathbreaker Deck for " + txtPlayerName.getText());
|
lstOathbreakerDecks.setHeaderCaption(localizer.getMessage("lblSelectOathbreakerDeckFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(lstOathbreakerDecks);
|
Forge.openScreen(lstOathbreakerDecks);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -235,7 +233,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnTinyLeadersDeck.setCommand(new FEventHandler() {
|
btnTinyLeadersDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
lstTinyLeadersDecks.setHeaderCaption("Select Tiny Leaders Deck for " + txtPlayerName.getText());
|
lstTinyLeadersDecks.setHeaderCaption(localizer.getMessage("lblSelectTinyLeadersDeckFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(lstTinyLeadersDecks);
|
Forge.openScreen(lstTinyLeadersDecks);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -243,7 +241,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnBrawlDeck.setCommand(new FEventHandler() {
|
btnBrawlDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
lstBrawlDecks.setHeaderCaption("Select Brawl Deck for " + txtPlayerName.getText());
|
lstBrawlDecks.setHeaderCaption(localizer.getMessage("lblSelectBrawlDeckFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(lstBrawlDecks);
|
Forge.openScreen(lstBrawlDecks);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -251,7 +249,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnSchemeDeck.setCommand(new FEventHandler() {
|
btnSchemeDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
lstSchemeDecks.setHeaderCaption("Select Scheme Deck for " + txtPlayerName.getText());
|
lstSchemeDecks.setHeaderCaption(localizer.getMessage("lblSelectSchemeDeckFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(lstSchemeDecks);
|
Forge.openScreen(lstSchemeDecks);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -259,7 +257,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnPlanarDeck.setCommand(new FEventHandler() {
|
btnPlanarDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
lstPlanarDecks.setHeaderCaption("Select Planar Deck for " + txtPlayerName.getText());
|
lstPlanarDecks.setHeaderCaption(localizer.getMessage("lblSelectPlanarDeckFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(lstPlanarDecks);
|
Forge.openScreen(lstPlanarDecks);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -267,7 +265,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
btnVanguardAvatar.setCommand(new FEventHandler() {
|
btnVanguardAvatar.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
lstVanguardAvatars.setHeaderCaption("Select Vanguard for " + txtPlayerName.getText());
|
lstVanguardAvatars.setHeaderCaption(localizer.getMessage("lblSelectVanguardFor").replace("%s", txtPlayerName.getText()));
|
||||||
Forge.openScreen(lstVanguardAvatars);
|
Forge.openScreen(lstVanguardAvatars);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -565,11 +563,11 @@ public class PlayerPanel extends FContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void populateTeamsComboBoxes() {
|
private void populateTeamsComboBoxes() {
|
||||||
cbArchenemyTeam.addItem("Archenemy");
|
cbArchenemyTeam.addItem(localizer.getMessage("lblArchenemy"));
|
||||||
cbArchenemyTeam.addItem("Heroes");
|
cbArchenemyTeam.addItem(localizer.getMessage("lblHeroes"));
|
||||||
|
|
||||||
for (int i = 1; i <= LobbyScreen.MAX_PLAYERS; i++) {
|
for (int i = 1; i <= LobbyScreen.MAX_PLAYERS; i++) {
|
||||||
cbTeam.addItem("Team " + i);
|
cbTeam.addItem(localizer.getMessage("lblTeam") + " " + i);
|
||||||
}
|
}
|
||||||
cbTeam.setEnabled(mayEdit);
|
cbTeam.setEnabled(mayEdit);
|
||||||
}
|
}
|
||||||
@@ -639,7 +637,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
name = FModel.getPreferences().getPref(FPref.PLAYER_NAME);
|
name = FModel.getPreferences().getPref(FPref.PLAYER_NAME);
|
||||||
if (name.isEmpty()) {
|
if (name.isEmpty()) {
|
||||||
name = "Human";
|
name = localizer.getMessage("lblHuman");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -837,11 +835,11 @@ public class PlayerPanel extends FContainer {
|
|||||||
return new FLabel.Builder().text(title).font(LABEL_FONT).align(Align.right).build();
|
return new FLabel.Builder().text(title).font(LABEL_FONT).align(Align.right).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final ImmutableList<String> genderOptions = ImmutableList.of("Male", "Female", "Any");
|
private static final ImmutableList<String> genderOptions = ImmutableList.of(Localizer.getInstance().getMessage("lblMale"), Localizer.getInstance().getMessage("lblFemale"), Localizer.getInstance().getMessage("lblAny"));
|
||||||
private static final ImmutableList<String> typeOptions = ImmutableList.of("Fantasy", "Generic", "Any");
|
private static final ImmutableList<String> typeOptions = ImmutableList.of(Localizer.getInstance().getMessage("lblFantasy"), Localizer.getInstance().getMessage("lblGeneric"), Localizer.getInstance().getMessage("lblAny"));
|
||||||
private final void getNewName(final Callback<String> callback) {
|
private final void getNewName(final Callback<String> callback) {
|
||||||
final String title = "Get new random name";
|
final String title = localizer.getMessage("lblGetNewRandomName");
|
||||||
final String message = "What type of name do you want to generate?";
|
final String message = localizer.getMessage("lbltypeofName");
|
||||||
final FSkinImage icon = FOptionPane.QUESTION_ICON;
|
final FSkinImage icon = FOptionPane.QUESTION_ICON;
|
||||||
|
|
||||||
FOptionPane.showOptionDialog(message, title, icon, genderOptions, 2, new Callback<Integer>() {
|
FOptionPane.showOptionDialog(message, title, icon, genderOptions, 2, new Callback<Integer>() {
|
||||||
@@ -869,8 +867,8 @@ public class PlayerPanel extends FContainer {
|
|||||||
|
|
||||||
private void generateRandomName(final String gender, final String type, final List<String> usedNames, final String title, final Callback<String> callback) {
|
private void generateRandomName(final String gender, final String type, final List<String> usedNames, final String title, final Callback<String> callback) {
|
||||||
final String newName = NameGenerator.getRandomName(gender, type, usedNames);
|
final String newName = NameGenerator.getRandomName(gender, type, usedNames);
|
||||||
String confirmMsg = "Would you like to use the name \"" + newName + "\", or try again?";
|
String confirmMsg = localizer.getMessage("lblconfirmName").replace("%s", newName);
|
||||||
FOptionPane.showConfirmDialog(confirmMsg, title, "Use this name", "Try again", true, new Callback<Boolean>() {
|
FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true, new Callback<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(Boolean result) {
|
public void run(Boolean result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import forge.util.Localizer;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
@@ -244,7 +245,7 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
if (abilities.size() == 1) {
|
if (abilities.size() == 1) {
|
||||||
return abilities.get(0);
|
return abilities.get(0);
|
||||||
}
|
}
|
||||||
return SGuiChoose.oneOrNone("Choose ability to play", abilities);
|
return SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblChooseAbilityToPlay"), abilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -519,7 +520,7 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
public List<GameEntityView> chooseEntitiesForEffect(String title, List<? extends GameEntityView> optionList, int min, int max, DelayedReveal delayedReveal) {
|
public List<GameEntityView> chooseEntitiesForEffect(String title, List<? extends GameEntityView> optionList, int min, int max, DelayedReveal delayedReveal) {
|
||||||
final int m1 = max >= 0 ? optionList.size() - max : -1;
|
final int m1 = max >= 0 ? optionList.size() - max : -1;
|
||||||
final int m2 = min >= 0 ? optionList.size() - min : -1;
|
final int m2 = min >= 0 ? optionList.size() - min : -1;
|
||||||
return SGuiChoose.order(title, "Selected", m1, m2, (List<GameEntityView>) optionList, null);
|
return SGuiChoose.order(title, Localizer.getInstance().getMessage("lblSelected"), m1, m2, (List<GameEntityView>) optionList, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ public class MatchScreen extends FScreen {
|
|||||||
else {
|
else {
|
||||||
menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(true));
|
menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(true));
|
||||||
stack.setRotate90(true);
|
stack.setRotate90(true);
|
||||||
menuBar.addTab(localizer.getMessage("Stack") + " (0)", stack);
|
menuBar.addTab(localizer.getMessage("lblStack") + " (0)", stack);
|
||||||
menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(false));
|
menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(false));
|
||||||
|
|
||||||
//create fake menu tabs for other drop downs so they can be positioned as needed
|
//create fake menu tabs for other drop downs so they can be positioned as needed
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import forge.screens.settings.SettingsScreen;
|
|||||||
import forge.toolbox.FEvent;
|
import forge.toolbox.FEvent;
|
||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
import forge.toolbox.FOptionPane;
|
import forge.toolbox.FOptionPane;
|
||||||
|
import forge.util.Localizer;
|
||||||
import forge.util.ThreadUtil;
|
import forge.util.ThreadUtil;
|
||||||
|
|
||||||
public class VGameMenu extends FDropDownMenu {
|
public class VGameMenu extends FDropDownMenu {
|
||||||
@@ -19,6 +20,8 @@ public class VGameMenu extends FDropDownMenu {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildMenu() {
|
protected void buildMenu() {
|
||||||
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
|
||||||
addItem(new FMenuItem(MatchController.instance.getConcedeCaption(), FSkinImage.CONCEDE, new FEventHandler() {
|
addItem(new FMenuItem(MatchController.instance.getConcedeCaption(), FSkinImage.CONCEDE, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
@@ -43,7 +46,7 @@ public class VGameMenu extends FDropDownMenu {
|
|||||||
GameStateDeserializer.loadGameState(MatchUtil.getGame(), ForgeConstants.USER_GAMES_DIR + "GameSave.txt");
|
GameStateDeserializer.loadGameState(MatchUtil.getGame(), ForgeConstants.USER_GAMES_DIR + "GameSave.txt");
|
||||||
}
|
}
|
||||||
}));*/
|
}));*/
|
||||||
addItem(new FMenuItem("Deck List", FSkinImage.DECKLIST, new FEventHandler() {
|
addItem(new FMenuItem(localizer.getMessage("lblDeckList"), FSkinImage.DECKLIST, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
final Player player = MatchController.getHostedMatch().getGame().getPhaseHandler().getPlayerTurn();
|
final Player player = MatchController.getHostedMatch().getGame().getPhaseHandler().getPlayerTurn();
|
||||||
@@ -54,10 +57,10 @@ public class VGameMenu extends FDropDownMenu {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FOptionPane.showMessageDialog("No player has priority at the moment, so deck list can't be viewed.");
|
FOptionPane.showMessageDialog(localizer.getMessage("lblNoPlayerPriorityNoDeckListViewed"));
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
addItem(new FMenuItem("Auto-Yields", FSkinImage.WARNING, new FEventHandler() {
|
addItem(new FMenuItem(localizer.getMessage("lblAutoYields"), FSkinImage.WARNING, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
final boolean autoYieldsDisabled = MatchController.instance.getDisableAutoYields();
|
final boolean autoYieldsDisabled = MatchController.instance.getDisableAutoYields();
|
||||||
@@ -82,7 +85,7 @@ public class VGameMenu extends FDropDownMenu {
|
|||||||
autoYields.show();
|
autoYields.show();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
addItem(new FMenuItem("Settings", FSkinImage.SETTINGS, new FEventHandler() {
|
addItem(new FMenuItem(localizer.getMessage("lblSettings"), FSkinImage.SETTINGS, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
SettingsScreen.show(false);
|
SettingsScreen.show(false);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package forge.screens.settings;
|
package forge.screens.settings;
|
||||||
|
|
||||||
import forge.download.*;
|
import forge.download.*;
|
||||||
|
import forge.util.Localizer;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.badlogic.gdx.utils.Align;
|
import com.badlogic.gdx.utils.Align;
|
||||||
@@ -20,47 +21,48 @@ import forge.util.Callback;
|
|||||||
|
|
||||||
public class FilesPage extends TabPage<SettingsScreen> {
|
public class FilesPage extends TabPage<SettingsScreen> {
|
||||||
private final FGroupList<FilesItem> lstItems = add(new FGroupList<>());
|
private final FGroupList<FilesItem> lstItems = add(new FGroupList<>());
|
||||||
|
private final Localizer localizer = Localizer.getInstance();
|
||||||
|
|
||||||
protected FilesPage() {
|
protected FilesPage() {
|
||||||
super("Files", FSkinImage.OPEN);
|
super(Localizer.getInstance().getMessage("lblFiles"), FSkinImage.OPEN);
|
||||||
|
|
||||||
lstItems.setListItemRenderer(new FilesItemRenderer());
|
lstItems.setListItemRenderer(new FilesItemRenderer());
|
||||||
|
|
||||||
lstItems.addGroup("Content Downloaders");
|
lstItems.addGroup(localizer.getMessage("ContentDownloaders"));
|
||||||
lstItems.addGroup("Storage Locations");
|
lstItems.addGroup(localizer.getMessage("lblStorageLocations"));
|
||||||
//lstItems.addGroup("Data Import");
|
//lstItems.addGroup("Data Import");
|
||||||
|
|
||||||
//content downloaders
|
//content downloaders
|
||||||
lstItems.addItem(new ContentDownloader("Download LQ Card Pictures",
|
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadPics"),
|
||||||
"Download default card picture for each card.") {
|
localizer.getMessage("lblDownloadPics")) {
|
||||||
@Override
|
@Override
|
||||||
protected GuiDownloadService createService() {
|
protected GuiDownloadService createService() {
|
||||||
return new GuiDownloadPicturesLQ();
|
return new GuiDownloadPicturesLQ();
|
||||||
}
|
}
|
||||||
}, 0);
|
}, 0);
|
||||||
lstItems.addItem(new ContentDownloader("Download LQ Set Pictures",
|
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadSetPics"),
|
||||||
"Download all pictures of each card (one for each set the card appeared in)") {
|
localizer.getMessage("lblDownloadSetPics")) {
|
||||||
@Override
|
@Override
|
||||||
protected GuiDownloadService createService() {
|
protected GuiDownloadService createService() {
|
||||||
return new GuiDownloadSetPicturesLQ();
|
return new GuiDownloadSetPicturesLQ();
|
||||||
}
|
}
|
||||||
}, 0);
|
}, 0);
|
||||||
lstItems.addItem(new ContentDownloader("Download Quest Images",
|
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadQuestImages"),
|
||||||
"Download tokens and icons used in Quest mode.") {
|
localizer.getMessage("lblDownloadQuestImages")) {
|
||||||
@Override
|
@Override
|
||||||
protected GuiDownloadService createService() {
|
protected GuiDownloadService createService() {
|
||||||
return new GuiDownloadQuestImages();
|
return new GuiDownloadQuestImages();
|
||||||
}
|
}
|
||||||
}, 0);
|
}, 0);
|
||||||
lstItems.addItem(new ContentDownloader("Download Achievement Images",
|
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadAchievementImages"),
|
||||||
"Download achievement images to really make your trophies stand out.") {
|
localizer.getMessage("lblDownloadAchievementImages")) {
|
||||||
@Override
|
@Override
|
||||||
protected GuiDownloadService createService() {
|
protected GuiDownloadService createService() {
|
||||||
return new GuiDownloadAchievementImages();
|
return new GuiDownloadAchievementImages();
|
||||||
}
|
}
|
||||||
}, 0);
|
}, 0);
|
||||||
lstItems.addItem(new ContentDownloader("Download Card Prices",
|
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadPrices"),
|
||||||
"Download up-to-date price list for in-game card shops.") {
|
localizer.getMessage("lblDownloadPrices")) {
|
||||||
@Override
|
@Override
|
||||||
protected GuiDownloadService createService() {
|
protected GuiDownloadService createService() {
|
||||||
return new GuiDownloadPrices();
|
return new GuiDownloadPrices();
|
||||||
@@ -68,19 +70,19 @@ public class FilesPage extends TabPage<SettingsScreen> {
|
|||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
//storage locations
|
//storage locations
|
||||||
final StorageOption cardPicsOption = new StorageOption("Card Pics Location", ForgeProfileProperties.getCardPicsDir()) {
|
final StorageOption cardPicsOption = new StorageOption(localizer.getMessage("lblCardPicsLocation"), ForgeProfileProperties.getCardPicsDir()) {
|
||||||
@Override
|
@Override
|
||||||
protected void onDirectoryChanged(String newDir) {
|
protected void onDirectoryChanged(String newDir) {
|
||||||
ForgeProfileProperties.setCardPicsDir(newDir);
|
ForgeProfileProperties.setCardPicsDir(newDir);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
final StorageOption decksOption = new StorageOption("Decks Location", ForgeProfileProperties.getDecksDir()) {
|
final StorageOption decksOption = new StorageOption(localizer.getMessage("lblDecksLocation"), ForgeProfileProperties.getDecksDir()) {
|
||||||
@Override
|
@Override
|
||||||
protected void onDirectoryChanged(String newDir) {
|
protected void onDirectoryChanged(String newDir) {
|
||||||
ForgeProfileProperties.setDecksDir(newDir);
|
ForgeProfileProperties.setDecksDir(newDir);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
lstItems.addItem(new StorageOption("Data Location (e.g. Settings and Quests)", ForgeProfileProperties.getUserDir()) {
|
lstItems.addItem(new StorageOption(localizer.getMessage("lblDataLocation"), ForgeProfileProperties.getUserDir()) {
|
||||||
@Override
|
@Override
|
||||||
protected void onDirectoryChanged(String newDir) {
|
protected void onDirectoryChanged(String newDir) {
|
||||||
ForgeProfileProperties.setUserDir(newDir);
|
ForgeProfileProperties.setUserDir(newDir);
|
||||||
@@ -89,7 +91,7 @@ public class FilesPage extends TabPage<SettingsScreen> {
|
|||||||
decksOption.updateDir(ForgeProfileProperties.getDecksDir());
|
decksOption.updateDir(ForgeProfileProperties.getDecksDir());
|
||||||
}
|
}
|
||||||
}, 1);
|
}, 1);
|
||||||
lstItems.addItem(new StorageOption("Image Cache Location", ForgeProfileProperties.getCacheDir()) {
|
lstItems.addItem(new StorageOption(localizer.getMessage("lblImageCacheLocation"), ForgeProfileProperties.getCacheDir()) {
|
||||||
@Override
|
@Override
|
||||||
protected void onDirectoryChanged(String newDir) {
|
protected void onDirectoryChanged(String newDir) {
|
||||||
ForgeProfileProperties.setCacheDir(newDir);
|
ForgeProfileProperties.setCacheDir(newDir);
|
||||||
@@ -171,13 +173,13 @@ public class FilesPage extends TabPage<SettingsScreen> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void select() {
|
public void select() {
|
||||||
FFileChooser.show("Select " + label, ChoiceType.GetDirectory, description, new Callback<String>() {
|
FFileChooser.show(localizer.getMessage("lblSelect").replace("%s", label), ChoiceType.GetDirectory, description, new Callback<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(String result) {
|
public void run(String result) {
|
||||||
if (StringUtils.isEmpty(result) || description.equals(result)) { return; }
|
if (StringUtils.isEmpty(result) || description.equals(result)) { return; }
|
||||||
updateDir(result);
|
updateDir(result);
|
||||||
onDirectoryChanged(result);
|
onDirectoryChanged(result);
|
||||||
FOptionPane.showMessageDialog("You'll need to restart Forge for this change to take effect. Be sure to move any necessary files to the new location before you do.", "Restart Required", FOptionPane.INFORMATION_ICON);
|
FOptionPane.showMessageDialog(localizer.getMessage("lblRestartForgeMoveFilesNewLocation"), localizer.getMessage("lblRestartRequired"), FOptionPane.INFORMATION_ICON);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class SettingsPage extends TabPage<SettingsScreen> {
|
|||||||
private final FGroupList<Setting> lstSettings = add(new FGroupList<>());
|
private final FGroupList<Setting> lstSettings = add(new FGroupList<>());
|
||||||
|
|
||||||
public SettingsPage() {
|
public SettingsPage() {
|
||||||
super("Settings", FSkinImage.SETTINGS);
|
super(Localizer.getInstance().getMessage("lblSettings"), FSkinImage.SETTINGS);
|
||||||
|
|
||||||
final Localizer localizer = Localizer.getInstance();
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
|
||||||
|
|||||||
@@ -373,6 +373,17 @@ btnBuildNewSealedDeck=Erstelle neues Sealed Deck
|
|||||||
lblViewDeck=Zeige Deck
|
lblViewDeck=Zeige Deck
|
||||||
lblRandomDeck=Zufälliges Deck
|
lblRandomDeck=Zufälliges Deck
|
||||||
lblRandomColors=Zufällige Farben
|
lblRandomColors=Zufällige Farben
|
||||||
|
lblMustSelectGenerateNewDeck=You must select something before you can generate a new deck.
|
||||||
|
lblOK=OK
|
||||||
|
lblCannotEditDuplicateCustomDeck=cannot be edited directly. Would you like to duplicate %s for editing as a custom user deck?
|
||||||
|
lblDuplicateDeck=Duplicate Deck?
|
||||||
|
lblDuplicate=Duplicate
|
||||||
|
lblHowManyOpponents=How many opponents are you willing to face?
|
||||||
|
lblChooseAllowedDeckTypeOpponents=Choose allowed deck types for opponents
|
||||||
|
lblSelectOpponentDeck=Select Opponent's Deck
|
||||||
|
lblGenerateNewDeck=Generate New Deck
|
||||||
|
lblRandomTheme=Random Theme
|
||||||
|
lblTestDeck=Test Deck
|
||||||
#GameType.java
|
#GameType.java
|
||||||
lblSealed=Sealed
|
lblSealed=Sealed
|
||||||
lblDraft=Draft
|
lblDraft=Draft
|
||||||
@@ -967,10 +978,68 @@ lblToMainDeck=zum Haupt-Deck
|
|||||||
lblHowMany=wie viel?
|
lblHowMany=wie viel?
|
||||||
lblInventory=Inhaltsverzeichnis
|
lblInventory=Inhaltsverzeichnis
|
||||||
lblCollection=Sammlung
|
lblCollection=Sammlung
|
||||||
lblCatalog=Katalog
|
|
||||||
lblCommanders=Komandeure
|
lblCommanders=Komandeure
|
||||||
lblOathbreakers=Eidbrecher
|
lblOathbreakers=Eidbrecher
|
||||||
#Forge.java
|
#Forge.java
|
||||||
lblLoadingFonts=Lade Schriften...
|
lblLoadingFonts=Lade Schriften...
|
||||||
lblLoadingCardTranslations=Lade Kartenübersetzungen...
|
lblLoadingCardTranslations=Lade Kartenübersetzungen...
|
||||||
lblFinishingStartup=Abschliessen...
|
lblFinishingStartup=Abschliessen...
|
||||||
|
#LobbyScreen.java
|
||||||
|
lblMore=More...
|
||||||
|
lblLoadingNewGame=Loading new game...
|
||||||
|
lblSelectVariants=Select Variants
|
||||||
|
msgSelectAdeckBeforeReadying=Select a deck before readying!
|
||||||
|
#PlayerPanel
|
||||||
|
lblLoadingDeck=Loading Deck...
|
||||||
|
lblSchemeDeckRandomGenerated=Scheme Deck: Random Generated Deck
|
||||||
|
lblCommanderDeckRandomGenerated=Commander Deck: Random Generated Deck
|
||||||
|
lblOathbreakerDeckRandomGenerated=Oathbreaker Deck: Random Generated Deck
|
||||||
|
lblTinyLeadersDeckRandomGenerated=Tiny Leaders Deck: Random Generated Deck
|
||||||
|
lblBrawlDeckRandomGenerated=Brawl Deck: Random Generated Deck
|
||||||
|
lblPlanarDeckRandomGenerated=Planar Deck: Random Generated Deck
|
||||||
|
lblVanguardAvatarRandom=Vanguard Avatar: Random
|
||||||
|
lblNotReady=Not Ready
|
||||||
|
lblNormal=Normal
|
||||||
|
lblDevMode=Dev Mode
|
||||||
|
lblOathbreakerDeck=Oathbreaker Deck
|
||||||
|
lblTinyLeadersDeck=Tiny Leaders Deck
|
||||||
|
lblBrawlDeck=Brawl Deck
|
||||||
|
lblSelectDeckFor=Select Deck for %s
|
||||||
|
lblSelectCommanderDeckFor=Select Commander Deck for %s
|
||||||
|
lblSelectOathbreakerDeckFor=Select Oathbreaker Deck for %s
|
||||||
|
lblSelectTinyLeadersDeckFor=Select Tiny Leaders Deck for %s
|
||||||
|
lblSelectBrawlDeckFor=Select Brawl Deck for %s
|
||||||
|
lblSelectSchemeDeckFor=Select Scheme Deck for %s
|
||||||
|
lblSelectPlanarDeckFor=Select Planar Deck for %s
|
||||||
|
lblSelectVanguardFor=Select Vanguard for %s
|
||||||
|
lblMale=Male
|
||||||
|
lblFemale=Female
|
||||||
|
lblAny=Any
|
||||||
|
lblFantasy=Fantasy
|
||||||
|
lblGeneric=Generic
|
||||||
|
#MatchController
|
||||||
|
lblChooseAbilityToPlay=Choose ability to play
|
||||||
|
lblSelected=Selected
|
||||||
|
#ItemManager
|
||||||
|
lblAdvancedSearch=Advanced Search
|
||||||
|
lblSort=Sort
|
||||||
|
lblResetFilters=Reset Filters
|
||||||
|
#AdvancedSearchFilter
|
||||||
|
lblEditExpression=Edit Expression
|
||||||
|
lblRemoveFilter=Remove Filter
|
||||||
|
#CardZoom
|
||||||
|
lblSwipeUpTo=Swipe up to %s
|
||||||
|
lblSwipeDownDetailView=Swipe down to switch to detail view
|
||||||
|
lblSwipeDownPictureView=Swipe down to switch to picture view
|
||||||
|
#VGameMenu
|
||||||
|
lblNoPlayerPriorityNoDeckListViewed=No player has priority at the moment, so deck list can't be viewed.
|
||||||
|
#FilesPage
|
||||||
|
lblFiles=Files
|
||||||
|
lblStorageLocations=Storage Locations
|
||||||
|
lblCardPicsLocation=Card Pics Location
|
||||||
|
lblDecksLocation=Decks Location
|
||||||
|
lblDataLocation=Data Location (e.g. Settings and Quests)
|
||||||
|
lblImageCacheLocation=Image Cache Location
|
||||||
|
lblRestartForgeMoveFilesNewLocation=You'll need to restart Forge for this change to take effect. Be sure to move any necessary files to the new location before you do.
|
||||||
|
lblRestartRequired=Restart Required
|
||||||
|
lblSelect=Select %s
|
||||||
@@ -373,6 +373,17 @@ btnBuildNewSealedDeck=Build New Sealed Deck
|
|||||||
lblViewDeck=View Deck
|
lblViewDeck=View Deck
|
||||||
lblRandomDeck=Random Deck
|
lblRandomDeck=Random Deck
|
||||||
lblRandomColors=Random Colors
|
lblRandomColors=Random Colors
|
||||||
|
lblMustSelectGenerateNewDeck=You must select something before you can generate a new deck.
|
||||||
|
lblOK=OK
|
||||||
|
lblCannotEditDuplicateCustomDeck=cannot be edited directly. Would you like to duplicate %s for editing as a custom user deck?
|
||||||
|
lblDuplicateDeck=Duplicate Deck?
|
||||||
|
lblDuplicate=Duplicate
|
||||||
|
lblHowManyOpponents=How many opponents are you willing to face?
|
||||||
|
lblChooseAllowedDeckTypeOpponents=Choose allowed deck types for opponents
|
||||||
|
lblSelectOpponentDeck=Select Opponent's Deck
|
||||||
|
lblGenerateNewDeck=Generate New Deck
|
||||||
|
lblRandomTheme=Random Theme
|
||||||
|
lblTestDeck=Test Deck
|
||||||
#GameType.java
|
#GameType.java
|
||||||
lblSealed=Sealed
|
lblSealed=Sealed
|
||||||
lblDraft=Draft
|
lblDraft=Draft
|
||||||
@@ -967,10 +978,68 @@ lblToMainDeck=to Main Deck
|
|||||||
lblHowMany=how many?
|
lblHowMany=how many?
|
||||||
lblInventory=Inventory
|
lblInventory=Inventory
|
||||||
lblCollection=Collection
|
lblCollection=Collection
|
||||||
lblCatalog=Catalog
|
|
||||||
lblCommanders=Commanders
|
lblCommanders=Commanders
|
||||||
lblOathbreakers=Oathbreakers
|
lblOathbreakers=Oathbreakers
|
||||||
#Forge.java
|
#Forge.java
|
||||||
lblLoadingFonts=Loading fonts...
|
lblLoadingFonts=Loading fonts...
|
||||||
lblLoadingCardTranslations=Loading card translations...
|
lblLoadingCardTranslations=Loading card translations...
|
||||||
lblFinishingStartup=Finishing startup...
|
lblFinishingStartup=Finishing startup...
|
||||||
|
#LobbyScreen.java
|
||||||
|
lblMore=More...
|
||||||
|
lblLoadingNewGame=Loading new game...
|
||||||
|
lblSelectVariants=Select Variants
|
||||||
|
msgSelectAdeckBeforeReadying=Select a deck before readying!
|
||||||
|
#PlayerPanel
|
||||||
|
lblLoadingDeck=Loading Deck...
|
||||||
|
lblSchemeDeckRandomGenerated=Scheme Deck: Random Generated Deck
|
||||||
|
lblCommanderDeckRandomGenerated=Commander Deck: Random Generated Deck
|
||||||
|
lblOathbreakerDeckRandomGenerated=Oathbreaker Deck: Random Generated Deck
|
||||||
|
lblTinyLeadersDeckRandomGenerated=Tiny Leaders Deck: Random Generated Deck
|
||||||
|
lblBrawlDeckRandomGenerated=Brawl Deck: Random Generated Deck
|
||||||
|
lblPlanarDeckRandomGenerated=Planar Deck: Random Generated Deck
|
||||||
|
lblVanguardAvatarRandom=Vanguard Avatar: Random
|
||||||
|
lblNotReady=Not Ready
|
||||||
|
lblNormal=Normal
|
||||||
|
lblDevMode=Dev Mode
|
||||||
|
lblOathbreakerDeck=Oathbreaker Deck
|
||||||
|
lblTinyLeadersDeck=Tiny Leaders Deck
|
||||||
|
lblBrawlDeck=Brawl Deck
|
||||||
|
lblSelectDeckFor=Select Deck for %s
|
||||||
|
lblSelectCommanderDeckFor=Select Commander Deck for %s
|
||||||
|
lblSelectOathbreakerDeckFor=Select Oathbreaker Deck for %s
|
||||||
|
lblSelectTinyLeadersDeckFor=Select Tiny Leaders Deck for %s
|
||||||
|
lblSelectBrawlDeckFor=Select Brawl Deck for %s
|
||||||
|
lblSelectSchemeDeckFor=Select Scheme Deck for %s
|
||||||
|
lblSelectPlanarDeckFor=Select Planar Deck for %s
|
||||||
|
lblSelectVanguardFor=Select Vanguard for %s
|
||||||
|
lblMale=Male
|
||||||
|
lblFemale=Female
|
||||||
|
lblAny=Any
|
||||||
|
lblFantasy=Fantasy
|
||||||
|
lblGeneric=Generic
|
||||||
|
#MatchController
|
||||||
|
lblChooseAbilityToPlay=Choose ability to play
|
||||||
|
lblSelected=Selected
|
||||||
|
#ItemManager
|
||||||
|
lblAdvancedSearch=Advanced Search
|
||||||
|
lblSort=Sort
|
||||||
|
lblResetFilters=Reset Filters
|
||||||
|
#AdvancedSearchFilter
|
||||||
|
lblEditExpression=Edit Expression
|
||||||
|
lblRemoveFilter=Remove Filter
|
||||||
|
#CardZoom
|
||||||
|
lblSwipeUpTo=Swipe up to %s
|
||||||
|
lblSwipeDownDetailView=Swipe down to switch to detail view
|
||||||
|
lblSwipeDownPictureView=Swipe down to switch to picture view
|
||||||
|
#VGameMenu
|
||||||
|
lblNoPlayerPriorityNoDeckListViewed=No player has priority at the moment, so deck list can't be viewed.
|
||||||
|
#FilesPage
|
||||||
|
lblFiles=Files
|
||||||
|
lblStorageLocations=Storage Locations
|
||||||
|
lblCardPicsLocation=Card Pics Location
|
||||||
|
lblDecksLocation=Decks Location
|
||||||
|
lblDataLocation=Data Location (e.g. Settings and Quests)
|
||||||
|
lblImageCacheLocation=Image Cache Location
|
||||||
|
lblRestartForgeMoveFilesNewLocation=You'll need to restart Forge for this change to take effect. Be sure to move any necessary files to the new location before you do.
|
||||||
|
lblRestartRequired=Restart Required
|
||||||
|
lblSelect=Select %s
|
||||||
@@ -231,7 +231,7 @@ lblGameSettings=Configuración
|
|||||||
lblHeaderConstructedMode=Formato Oficial: Construido
|
lblHeaderConstructedMode=Formato Oficial: Construido
|
||||||
lblGetNewRandomName=Obtener nuevo nombre aleatorio
|
lblGetNewRandomName=Obtener nuevo nombre aleatorio
|
||||||
lbltypeofName=¿Qué tipo de nombre quieres generar?
|
lbltypeofName=¿Qué tipo de nombre quieres generar?
|
||||||
lblconfirmName=¿Quieres usar el nombre de %n, o probar de nuevo?
|
lblconfirmName=¿Quieres usar el nombre de %s, o probar de nuevo?
|
||||||
lblUseThisName=Usar este nombre
|
lblUseThisName=Usar este nombre
|
||||||
lblTryAgain=Probar de nuevo
|
lblTryAgain=Probar de nuevo
|
||||||
lblAddAPlayer=Añadir Jugador
|
lblAddAPlayer=Añadir Jugador
|
||||||
@@ -373,6 +373,17 @@ btnBuildNewSealedDeck=Nuevo Mazo Sellado
|
|||||||
lblViewDeck=Ver Mazo
|
lblViewDeck=Ver Mazo
|
||||||
lblRandomDeck=Mazo Aleatorio
|
lblRandomDeck=Mazo Aleatorio
|
||||||
lblRandomColors=Colores Aleatorios
|
lblRandomColors=Colores Aleatorios
|
||||||
|
lblMustSelectGenerateNewDeck=Debes seleccionar algo antes de generar un nuevo mazo.
|
||||||
|
lblOK=OK
|
||||||
|
lblCannotEditDuplicateCustomDeck= no se puede editar directamente. ¿Quieres duplicar %s para editarlo como un mazo de usuario personalizado?
|
||||||
|
lblDuplicateDeck=¿Duplicar Mazo?
|
||||||
|
lblDuplicate=Duplicar
|
||||||
|
lblHowManyOpponents=¿A cuántos oponentes está dispuesto a enfrentarse?
|
||||||
|
lblChooseAllowedDeckTypeOpponents=Elige los tipos de mazo permitidos para los oponentes
|
||||||
|
lblSelectOpponentDeck=Seleccionar Mazo del Oponente
|
||||||
|
lblGenerateNewDeck=Generar un Nuevo Mazo
|
||||||
|
lblRandomTheme=Tema Aleatorio
|
||||||
|
lblTestDeck=Probar Mazo
|
||||||
#GameType.java
|
#GameType.java
|
||||||
lblSealed=Sellado
|
lblSealed=Sellado
|
||||||
lblDraft=Draft
|
lblDraft=Draft
|
||||||
@@ -967,10 +978,68 @@ lblToMainDeck=al Mazo Principal
|
|||||||
lblHowMany=¿cuántos?
|
lblHowMany=¿cuántos?
|
||||||
lblInventory=Inventario
|
lblInventory=Inventario
|
||||||
lblCollection=Colección
|
lblCollection=Colección
|
||||||
lblCatalog=Catálogo
|
|
||||||
lblCommanders=Commanders
|
lblCommanders=Commanders
|
||||||
lblOathbreakers=Oathbreakers
|
lblOathbreakers=Oathbreakers
|
||||||
#Forge.java
|
#Forge.java
|
||||||
lblLoadingFonts=Loading fonts...
|
lblLoadingFonts=Loading fonts...
|
||||||
lblLoadingCardTranslations=Loading card translations...
|
lblLoadingCardTranslations=Loading card translations...
|
||||||
lblFinishingStartup=Finishing startup...
|
lblFinishingStartup=Finishing startup...
|
||||||
|
#LobbyScreen.java
|
||||||
|
lblMore=Más...
|
||||||
|
lblLoadingNewGame=Cargando nueva partida...
|
||||||
|
lblSelectVariants=Selecciona Variants
|
||||||
|
msgSelectAdeckBeforeReadying=¡Selecciona un mazo antes de estar listo!
|
||||||
|
#PlayerPanel
|
||||||
|
lblLoadingDeck=Cargando mazo...
|
||||||
|
lblSchemeDeckRandomGenerated=Scheme Deck: Random Generated Deck
|
||||||
|
lblCommanderDeckRandomGenerated=Commander Deck: Random Generated Deck
|
||||||
|
lblOathbreakerDeckRandomGenerated=Oathbreaker Deck: Random Generated Deck
|
||||||
|
lblTinyLeadersDeckRandomGenerated=Tiny Leaders Deck: Random Generated Deck
|
||||||
|
lblBrawlDeckRandomGenerated=Brawl Deck: Random Generated Deck
|
||||||
|
lblPlanarDeckRandomGenerated=Planar Deck: Random Generated Deck
|
||||||
|
lblVanguardAvatarRandom=Vanguard Avatar: Random
|
||||||
|
lblNotReady=No Listo
|
||||||
|
lblNormal=Normal
|
||||||
|
lblDevMode=Dev Mode
|
||||||
|
lblOathbreakerDeck=Mazo Oathbreaker
|
||||||
|
lblTinyLeadersDeck=Mazo Tiny Leaders
|
||||||
|
lblBrawlDeck=Mazo Brawl
|
||||||
|
lblSelectDeckFor=Selecciona Mazo para %s
|
||||||
|
lblSelectCommanderDeckFor=Selecciona Mazo Commander para %s
|
||||||
|
lblSelectOathbreakerDeckFor=Selecciona Mazo Oathbreaker para %s
|
||||||
|
lblSelectTinyLeadersDeckFor=Selecciona Mazo Tiny Leaders para %s
|
||||||
|
lblSelectBrawlDeckFor=Selecciona Mazo Brawl para %s
|
||||||
|
lblSelectSchemeDeckFor=Selecciona Mazo Scheme para %s
|
||||||
|
lblSelectPlanarDeckFor=Seleccionar Mazo Planar para %s
|
||||||
|
lblSelectVanguardFor=Selecciona Vanguard para %s
|
||||||
|
lblMale=Hombre
|
||||||
|
lblFemale=Mujer
|
||||||
|
lblAny=Cualquiera
|
||||||
|
lblFantasy=Fantasía
|
||||||
|
lblGeneric=Genérico
|
||||||
|
#MatchController
|
||||||
|
lblChooseAbilityToPlay=Elige la habilidad para jugar
|
||||||
|
lblSelected=Seleccionado
|
||||||
|
#ItemManager
|
||||||
|
lblAdvancedSearch=Búsqueda Avanzada
|
||||||
|
lblSort=Ordenar
|
||||||
|
lblResetFilters=Reiniciar Filtros
|
||||||
|
#AdvancedSearchFilter
|
||||||
|
lblEditExpression=Editar Expresión
|
||||||
|
lblRemoveFilter=Eliminar Filtro
|
||||||
|
#CardZoom
|
||||||
|
lblSwipeUpTo=Desliza hacia arriba para %s
|
||||||
|
lblSwipeDownDetailView=Desliza hacia abajo para cambiar a la vista de detalle
|
||||||
|
lblSwipeDownPictureView=Desliza hacia abajo para cambiar a la vista de imagen
|
||||||
|
#VGameMenu
|
||||||
|
lblNoPlayerPriorityNoDeckListViewed=Ningún jugador tiene prioridad en este momento, por lo que la lista de mazos no se puede ver.
|
||||||
|
#FilesPage
|
||||||
|
lblFiles=Archivos
|
||||||
|
lblStorageLocations=Ubicación del almacenamiento
|
||||||
|
lblCardPicsLocation=Ubicación de las Imágenes de las Cartas
|
||||||
|
lblDecksLocation=Ubicación de los Mazos
|
||||||
|
lblDataLocation=Ubicación de los Datos (por ejemplo, Configuración y Aventuras)
|
||||||
|
lblImageCacheLocation=Ubicación de la Caché de imágenes
|
||||||
|
lblRestartForgeMoveFilesNewLocation=Necesitarás reiniciar Forge para que este cambio tenga efecto. Asegúrate de mover todos los archivos necesarios a la nueva ubicación antes de hacerlo.
|
||||||
|
lblRestartRequired=Reinicio Requerido
|
||||||
|
lblSelect=Seleccionar %s
|
||||||
@@ -373,6 +373,17 @@ btnBuildNewSealedDeck=构建新的现开套牌
|
|||||||
lblViewDeck=查看套牌
|
lblViewDeck=查看套牌
|
||||||
lblRandomDeck=随机套牌
|
lblRandomDeck=随机套牌
|
||||||
lblRandomColors=随机颜色
|
lblRandomColors=随机颜色
|
||||||
|
lblMustSelectGenerateNewDeck=You must select something before you can generate a new deck.
|
||||||
|
lblOK=OK
|
||||||
|
lblCannotEditDuplicateCustomDeck=cannot be edited directly. Would you like to duplicate %s for editing as a custom user deck?
|
||||||
|
lblDuplicateDeck=Duplicate Deck?
|
||||||
|
lblDuplicate=Duplicate
|
||||||
|
lblHowManyOpponents=How many opponents are you willing to face?
|
||||||
|
lblChooseAllowedDeckTypeOpponents=Choose allowed deck types for opponents
|
||||||
|
lblSelectOpponentDeck=Select Opponent's Deck
|
||||||
|
lblGenerateNewDeck=Generate New Deck
|
||||||
|
lblRandomTheme=Random Theme
|
||||||
|
lblTestDeck=Test Deck
|
||||||
#GameType.java
|
#GameType.java
|
||||||
lblSealed=现开
|
lblSealed=现开
|
||||||
lblDraft=轮抓
|
lblDraft=轮抓
|
||||||
@@ -967,10 +978,68 @@ lblToMainDeck=到主牌
|
|||||||
lblHowMany=多少?
|
lblHowMany=多少?
|
||||||
lblInventory=库存
|
lblInventory=库存
|
||||||
lblCollection=珍藏
|
lblCollection=珍藏
|
||||||
lblCatalog=目录
|
|
||||||
lblCommanders=指挥官
|
lblCommanders=指挥官
|
||||||
lblOathbreakers=破誓者
|
lblOathbreakers=破誓者
|
||||||
#Forge.java
|
#Forge.java
|
||||||
lblLoadingFonts=加载字体中
|
lblLoadingFonts=加载字体中
|
||||||
lblLoadingCardTranslations=加载卡牌翻译中
|
lblLoadingCardTranslations=加载卡牌翻译中
|
||||||
lblFinishingStartup=完成启动
|
lblFinishingStartup=完成启动
|
||||||
|
#LobbyScreen.java
|
||||||
|
lblMore=More...
|
||||||
|
lblLoadingNewGame=Loading new game...
|
||||||
|
lblSelectVariants=Select Variants
|
||||||
|
msgSelectAdeckBeforeReadying=Select a deck before readying!
|
||||||
|
#PlayerPanel
|
||||||
|
lblLoadingDeck=Loading Deck...
|
||||||
|
lblSchemeDeckRandomGenerated=Scheme Deck: Random Generated Deck
|
||||||
|
lblCommanderDeckRandomGenerated=Commander Deck: Random Generated Deck
|
||||||
|
lblOathbreakerDeckRandomGenerated=Oathbreaker Deck: Random Generated Deck
|
||||||
|
lblTinyLeadersDeckRandomGenerated=Tiny Leaders Deck: Random Generated Deck
|
||||||
|
lblBrawlDeckRandomGenerated=Brawl Deck: Random Generated Deck
|
||||||
|
lblPlanarDeckRandomGenerated=Planar Deck: Random Generated Deck
|
||||||
|
lblVanguardAvatarRandom=Vanguard Avatar: Random
|
||||||
|
lblNotReady=Not Ready
|
||||||
|
lblNormal=Normal
|
||||||
|
lblDevMode=Dev Mode
|
||||||
|
lblOathbreakerDeck=Oathbreaker Deck
|
||||||
|
lblTinyLeadersDeck=Tiny Leaders Deck
|
||||||
|
lblBrawlDeck=Brawl Deck
|
||||||
|
lblSelectDeckFor=Select Deck for %s
|
||||||
|
lblSelectCommanderDeckFor=Select Commander Deck for %s
|
||||||
|
lblSelectOathbreakerDeckFor=Select Oathbreaker Deck for %s
|
||||||
|
lblSelectTinyLeadersDeckFor=Select Tiny Leaders Deck for %s
|
||||||
|
lblSelectBrawlDeckFor=Select Brawl Deck for %s
|
||||||
|
lblSelectSchemeDeckFor=Select Scheme Deck for %s
|
||||||
|
lblSelectPlanarDeckFor=Select Planar Deck for %s
|
||||||
|
lblSelectVanguardFor=Select Vanguard for %s
|
||||||
|
lblMale=Male
|
||||||
|
lblFemale=Female
|
||||||
|
lblAny=Any
|
||||||
|
lblFantasy=Fantasy
|
||||||
|
lblGeneric=Generic
|
||||||
|
#MatchController
|
||||||
|
lblChooseAbilityToPlay=Choose ability to play
|
||||||
|
lblSelected=Selected
|
||||||
|
#ItemManager
|
||||||
|
lblAdvancedSearch=Advanced Search
|
||||||
|
lblSort=Sort
|
||||||
|
lblResetFilters=Reset Filters
|
||||||
|
#AdvancedSearchFilter
|
||||||
|
lblEditExpression=Edit Expression
|
||||||
|
lblRemoveFilter=Remove Filter
|
||||||
|
#CardZoom
|
||||||
|
lblSwipeUpTo=Swipe up to %s
|
||||||
|
lblSwipeDownDetailView=Swipe down to switch to detail view
|
||||||
|
lblSwipeDownPictureView=Swipe down to switch to picture view
|
||||||
|
#VGameMenu
|
||||||
|
lblNoPlayerPriorityNoDeckListViewed=No player has priority at the moment, so deck list can't be viewed.
|
||||||
|
#FilesPage
|
||||||
|
lblFiles=Files
|
||||||
|
lblStorageLocations=Storage Locations
|
||||||
|
lblCardPicsLocation=Card Pics Location
|
||||||
|
lblDecksLocation=Decks Location
|
||||||
|
lblDataLocation=Data Location (e.g. Settings and Quests)
|
||||||
|
lblImageCacheLocation=Image Cache Location
|
||||||
|
lblRestartForgeMoveFilesNewLocation=You'll need to restart Forge for this change to take effect. Be sure to move any necessary files to the new location before you do.
|
||||||
|
lblRestartRequired=Restart Required
|
||||||
|
lblSelect=Select %s
|
||||||
Reference in New Issue
Block a user