mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48: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.FDialog;
|
||||
import forge.toolbox.FOverlay;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.collect.FCollectionView;
|
||||
import forge.util.Utils;
|
||||
|
||||
@@ -281,10 +282,10 @@ public class CardZoom extends FOverlay {
|
||||
|
||||
if (currentActivateAction != null) {
|
||||
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.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
|
||||
|
||||
@@ -73,6 +73,7 @@ public class FDeckChooser extends FScreen {
|
||||
private boolean isAi;
|
||||
|
||||
private final ForgePreferences prefs = FModel.getPreferences();
|
||||
private final Localizer localizer = Localizer.getInstance();
|
||||
private FPref stateSetting = null;
|
||||
private FOptionPane optionPane;
|
||||
|
||||
@@ -98,7 +99,7 @@ public class FDeckChooser extends FScreen {
|
||||
container.add(deckChooser.lstDecks);
|
||||
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
|
||||
public void run(Integer result) {
|
||||
if (result == 0) {
|
||||
@@ -309,7 +310,7 @@ public class FDeckChooser extends FScreen {
|
||||
editor = new FDeckEditor(getEditorType(), generatedDeck, true);
|
||||
}
|
||||
else {
|
||||
FOptionPane.showErrorDialog("You must select something before you can generate a new deck.");
|
||||
FOptionPane.showErrorDialog(localizer.getMessage("lblMustSelectGenerateNewDeck"));
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@@ -377,9 +378,10 @@ public class FDeckChooser extends FScreen {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//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?",
|
||||
"Duplicate Deck?", "Duplicate", "Cancel", new Callback<Boolean>() {
|
||||
FOptionPane.showConfirmDialog(selectedDeckType + " " + localizer.getMessage("lblCannotEditDuplicateCustomDeck").replace("%s", deck.getName()),
|
||||
localizer.getMessage("lblDuplicateDeck"), localizer.getMessage("lblDuplicate"), localizer.getMessage("lblCancel"), new Callback<Boolean>() {
|
||||
@Override
|
||||
public void run(Boolean result) {
|
||||
if (result) {
|
||||
@@ -770,16 +772,16 @@ public class FDeckChooser extends FScreen {
|
||||
btnViewDeck.setVisible(false);
|
||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
||||
|
||||
btnNewDeck.setText("Generate New Deck");
|
||||
btnNewDeck.setText(localizer.getMessage("lblGenerateNewDeck"));
|
||||
switch (deckType) {
|
||||
case COLOR_DECK:
|
||||
btnRandom.setText("Random Colors");
|
||||
btnRandom.setText(localizer.getMessage("lblRandomColors"));
|
||||
break;
|
||||
case THEME_DECK:
|
||||
btnRandom.setText("Random Theme");
|
||||
btnRandom.setText(localizer.getMessage("lblRandomTheme"));
|
||||
break;
|
||||
default:
|
||||
btnRandom.setText("Random Deck");
|
||||
btnRandom.setText(localizer.getMessage("lblRandomDeck"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -789,11 +791,11 @@ public class FDeckChooser extends FScreen {
|
||||
btnViewDeck.setVisible(true);
|
||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
||||
|
||||
btnNewDeck.setText("New Deck");
|
||||
btnNewDeck.setText(localizer.getMessage("lblNewDeck"));
|
||||
|
||||
if (lstDecks.getGameType() == GameType.DeckManager) {
|
||||
//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) {
|
||||
case SCHEME_DECK:
|
||||
@@ -806,7 +808,7 @@ public class FDeckChooser extends FScreen {
|
||||
}
|
||||
}
|
||||
else {
|
||||
btnRandom.setText("Random Deck");
|
||||
btnRandom.setText(localizer.getMessage("lblRandomDeck"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1063,7 +1065,7 @@ public class FDeckChooser extends FScreen {
|
||||
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
|
||||
public void run(final Integer numOpponents) {
|
||||
if (numOpponents == null) { return; }
|
||||
@@ -1089,7 +1091,7 @@ public class FDeckChooser extends FScreen {
|
||||
}
|
||||
|
||||
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
|
||||
public void run(final List<DeckType> allowedDeckTypes) {
|
||||
if (allowedDeckTypes == null || allowedDeckTypes.isEmpty()) {
|
||||
@@ -1109,7 +1111,7 @@ public class FDeckChooser extends FScreen {
|
||||
FThreads.invokeInEdtLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
LoadingOverlay.show("Loading new game...", new Runnable() {
|
||||
LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
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) {
|
||||
promptForDeck("Select Opponent's Deck", variant, true, new Callback<Deck>() {
|
||||
promptForDeck(localizer.getMessage("lblSelectOpponentDeck"), variant, true, new Callback<Deck>() {
|
||||
@Override
|
||||
public void run(final Deck aiDeck) {
|
||||
if (aiDeck == null) { return; }
|
||||
|
||||
LoadingOverlay.show("Loading new game...", new Runnable() {
|
||||
LoadingOverlay.show(localizer.getMessage("lblLoadingNewGame"), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Set<GameType> appliedVariants = new HashSet<>();
|
||||
|
||||
@@ -18,6 +18,7 @@ import forge.itemmanager.filters.DeckFormatFilter;
|
||||
import forge.itemmanager.filters.TextSearchFilter;
|
||||
import forge.toolbox.FList;
|
||||
import forge.toolbox.FList.CompactModeHandler;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.Utils;
|
||||
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
@@ -39,7 +40,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
public DeckManager(final GameType gt) {
|
||||
super(DeckProxy.class, true);
|
||||
gameType = gt;
|
||||
setCaption("Decks");
|
||||
setCaption(Localizer.getInstance().getMessage("lblDecks"));
|
||||
}
|
||||
|
||||
public GameType getGameType() {
|
||||
|
||||
@@ -53,6 +53,7 @@ import forge.toolbox.FList;
|
||||
import forge.toolbox.FList.CompactModeHandler;
|
||||
import forge.util.ItemPool;
|
||||
import forge.util.LayoutHelper;
|
||||
import forge.util.Localizer;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
@@ -125,7 +126,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
||||
add(btnAdvancedSearchOptions);
|
||||
btnAdvancedSearchOptions.setSelected(!hideFilters);
|
||||
if (allowSortChange()) {
|
||||
cbxSortOptions = add(new FComboBox<>("Sort: "));
|
||||
cbxSortOptions = add(new FComboBox<>(Localizer.getInstance().getMessage("lblSort") + ": "));
|
||||
cbxSortOptions.setFont(FSkinFont.get(12));
|
||||
}
|
||||
else {
|
||||
@@ -140,7 +141,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
||||
FPopupMenu menu = new FPopupMenu() {
|
||||
@Override
|
||||
protected void buildMenu() {
|
||||
addItem(new FMenuItem("Advanced Search", FSkinImage.SEARCH, new FEventHandler() {
|
||||
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblAdvancedSearch"), FSkinImage.SEARCH, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
if (advancedSearchFilter == null) {
|
||||
@@ -150,7 +151,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
||||
advancedSearchFilter.edit();
|
||||
}
|
||||
}));
|
||||
addItem(new FMenuItem("Reset Filters", FSkinImage.DELETE, new FEventHandler() {
|
||||
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblResetFilters"), FSkinImage.DELETE, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
resetFilters();
|
||||
@@ -261,7 +262,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
||||
}
|
||||
|
||||
if (cbxSortOptions != null) {
|
||||
cbxSortOptions.setText("(none)");
|
||||
cbxSortOptions.setText("(" + Localizer.getInstance().getMessage("lblNone") + ")");
|
||||
}
|
||||
|
||||
model.getCascadeManager().reset();
|
||||
|
||||
@@ -19,6 +19,7 @@ import forge.itemmanager.filters.TextSearchFilter;
|
||||
import forge.quest.QuestSpellShop;
|
||||
import forge.toolbox.FList;
|
||||
import forge.toolbox.FList.CompactModeHandler;
|
||||
import forge.util.Localizer;
|
||||
|
||||
|
||||
public class SpellShopManager extends ItemManager<InventoryItem> {
|
||||
@@ -29,7 +30,7 @@ public class SpellShopManager extends ItemManager<InventoryItem> {
|
||||
|
||||
fnGetPrice = isShop0 ? QuestSpellShop.fnPriceGet : QuestSpellShop.fnPriceSellGet;
|
||||
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.FLabel;
|
||||
import forge.util.Callback;
|
||||
import forge.util.Localizer;
|
||||
|
||||
|
||||
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
|
||||
addItem(item);
|
||||
}
|
||||
addItem(new FMenuItem("Edit Expression", FSkinImage.EDIT, new FEventHandler() {
|
||||
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblEditExpression"), FSkinImage.EDIT, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
edit();
|
||||
}
|
||||
}));
|
||||
addItem(new FMenuItem("Remove Filter", FSkinImage.DELETE, new FEventHandler() {
|
||||
addItem(new FMenuItem(Localizer.getInstance().getMessage("lblRemoveFilter"), FSkinImage.DELETE, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
reset();
|
||||
@@ -176,7 +177,7 @@ public class AdvancedSearchFilter<T extends InventoryItem> extends ItemFilter<T>
|
||||
});
|
||||
|
||||
private EditScreen() {
|
||||
super("Advanced Search");
|
||||
super(Localizer.getInstance().getMessage("lblAdvancedSearch"));
|
||||
Filter filter = new Filter();
|
||||
model.addFilterControl(filter);
|
||||
scroller.add(filter);
|
||||
|
||||
@@ -30,6 +30,7 @@ import forge.toolbox.FTextField;
|
||||
import forge.toolbox.FEvent.FEventHandler;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FScrollPane;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.Utils;
|
||||
|
||||
import java.util.*;
|
||||
@@ -358,7 +359,7 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
otherItems = groups.get(groups.size() - 1);
|
||||
}
|
||||
else {
|
||||
otherItems = new Group("Other");
|
||||
otherItems = new Group(Localizer.getInstance().getMessage("lblOther"));
|
||||
otherItems.isCollapsed = btnExpandCollapseAll.isAllCollapsed;
|
||||
groups.add(otherItems);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import forge.toolbox.FEvent.FEventHandler;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FScrollPane;
|
||||
import forge.util.Callback;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.MyRandom;
|
||||
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) {
|
||||
super("Select Avatar for " + playerName);
|
||||
super(Localizer.getInstance().getMessage("lblSelectAvatarFor").replace("%s",playerName));
|
||||
|
||||
currentIndex = currentIndex0;
|
||||
usedAvatars = usedAvatars0;
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.screens.constructed;
|
||||
import java.util.*;
|
||||
|
||||
import forge.deck.*;
|
||||
import forge.util.Localizer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
@@ -49,12 +50,13 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
// General variables
|
||||
private GameLobby lobby;
|
||||
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 Deck[] decks = new Deck[MAX_PLAYERS];
|
||||
|
||||
// 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 List<PlayerPanel> playerPanels = new ArrayList<>(MAX_PLAYERS);
|
||||
@@ -117,7 +119,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
add(lblVariants);
|
||||
add(cbVariants);
|
||||
cbVariants.setFont(VARIANTS_FONT);
|
||||
cbVariants.addItem("(None)");
|
||||
cbVariants.addItem("(" + localizer.getMessage("lblNone") + ")");
|
||||
cbVariants.addItem(GameType.Vanguard);
|
||||
cbVariants.addItem(GameType.MomirBasic);
|
||||
cbVariants.addItem(GameType.MoJhoSto);
|
||||
@@ -128,7 +130,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
cbVariants.addItem(GameType.Planechase);
|
||||
cbVariants.addItem(GameType.Archenemy);
|
||||
cbVariants.addItem(GameType.ArchenemyRumble);
|
||||
cbVariants.addItem("More....");
|
||||
cbVariants.addItem(localizer.getMessage("lblMore"));
|
||||
cbVariants.setChangedHandler(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
@@ -282,7 +284,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
FThreads.invokeInEdtLater(new Runnable() {
|
||||
@Override
|
||||
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
|
||||
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() {
|
||||
@@ -347,7 +349,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
private final FList<Variant> lstVariants = add(new FList<>());
|
||||
|
||||
private MultiVariantSelect() {
|
||||
super("Select Variants");
|
||||
super(Localizer.getInstance().getMessage("lblSelectVariants"));
|
||||
|
||||
lstVariants.setListItemRenderer(new VariantRenderer());
|
||||
lstVariants.addItem(new Variant(GameType.Vanguard));
|
||||
@@ -625,7 +627,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
if (ready) {
|
||||
updateDeck(index);
|
||||
if (decks[index] == null) {
|
||||
FOptionPane.showErrorDialog("Select a deck before readying!");
|
||||
FOptionPane.showErrorDialog(localizer.getMessage("msgSelectAdeckBeforeReadying"));
|
||||
update(false);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import forge.util.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
@@ -39,10 +40,6 @@ import forge.toolbox.FOptionPane;
|
||||
import forge.toolbox.FTextField;
|
||||
import forge.toolbox.FToggleSwitch;
|
||||
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 {
|
||||
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 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 devModeSwitch;
|
||||
|
||||
private FComboBox<Object> cbTeam = new FComboBox<>();
|
||||
private FComboBox<Object> cbArchenemyTeam = new FComboBox<>();
|
||||
|
||||
private final FLabel btnDeck = new FLabel.ButtonBuilder().text("Loading Deck...").build();
|
||||
private final FLabel btnSchemeDeck = new FLabel.ButtonBuilder().text("Scheme Deck: Random Generated Deck").build();
|
||||
private final FLabel btnCommanderDeck = new FLabel.ButtonBuilder().text("Commander Deck: Random Generated Deck").build();
|
||||
private final FLabel btnOathbreakDeck = new FLabel.ButtonBuilder().text("Oathbreaker Deck: Random Generated Deck").build();
|
||||
private final FLabel btnTinyLeadersDeck = new FLabel.ButtonBuilder().text("Tiny Leaders Deck: Random Generated Deck").build();
|
||||
private final FLabel btnBrawlDeck = new FLabel.ButtonBuilder().text("Brawl Deck: Random Generated Deck").build();
|
||||
private final FLabel btnPlanarDeck = new FLabel.ButtonBuilder().text("Planar Deck: Random Generated Deck").build();
|
||||
private final FLabel btnVanguardAvatar = new FLabel.ButtonBuilder().text("Vanguard Avatar: Random").build();
|
||||
private final FLabel btnDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblLoadingDeck")).build();
|
||||
private final FLabel btnSchemeDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblSchemeDeckRandomGenerated")).build();
|
||||
private final FLabel btnCommanderDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblCommanderDeckRandomGenerated")).build();
|
||||
private final FLabel btnOathbreakDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblOathbreakerDeckRandomGenerated")).build();
|
||||
private final FLabel btnTinyLeadersDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblTinyLeadersDeckRandomGenerated")).build();
|
||||
private final FLabel btnBrawlDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblBrawlDeckRandomGenerated")).build();
|
||||
private final FLabel btnPlanarDeck = new FLabel.ButtonBuilder().text(localizer.getMessage("lblPlanarDeckRandomGenerated")).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 FVanguardChooser lstVanguardAvatars;
|
||||
@@ -84,10 +82,10 @@ public class PlayerPanel extends FContainer {
|
||||
screen = screen0;
|
||||
allowNetworking = allowNetworking0;
|
||||
if (allowNetworking) {
|
||||
humanAiSwitch = new FToggleSwitch("Not Ready", "Ready");
|
||||
humanAiSwitch = new FToggleSwitch(localizer.getMessage("lblNotReady"), localizer.getMessage("lblReady"));
|
||||
}
|
||||
else {
|
||||
humanAiSwitch = new FToggleSwitch("Human", "AI");
|
||||
humanAiSwitch = new FToggleSwitch(localizer.getMessage("lblHuman"), localizer.getMessage("lblAI"));
|
||||
}
|
||||
index = index0;
|
||||
populateTeamsComboBoxes();
|
||||
@@ -97,7 +95,7 @@ public class PlayerPanel extends FContainer {
|
||||
setPlayerName(slot.getName());
|
||||
setAvatarIndex(slot.getAvatarIndex());
|
||||
|
||||
devModeSwitch = new FToggleSwitch("Normal", "Dev Mode");
|
||||
devModeSwitch = new FToggleSwitch(localizer.getMessage("lblNormal"), localizer.getMessage("lblDevMode"));
|
||||
devModeSwitch.setVisible(isNetworkHost());
|
||||
|
||||
cbTeam.setEnabled(true);
|
||||
@@ -117,10 +115,10 @@ public class PlayerPanel extends FContainer {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
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();
|
||||
}else{
|
||||
btnCommanderDeck.setText("Commander Deck");
|
||||
btnCommanderDeck.setText(localizer.getMessage("lblCommanderDeck"));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -128,10 +126,10 @@ public class PlayerPanel extends FContainer {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
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();
|
||||
}else{
|
||||
btnOathbreakDeck.setText("Oathbreaker Deck");
|
||||
btnOathbreakDeck.setText(localizer.getMessage("lblOathbreakerDeck"));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -139,10 +137,10 @@ public class PlayerPanel extends FContainer {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
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();
|
||||
}else{
|
||||
btnTinyLeadersDeck.setText("Tiny Leaders Deck");
|
||||
btnTinyLeadersDeck.setText(localizer.getMessage("lblTinyLeadersDeck"));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -150,10 +148,10 @@ public class PlayerPanel extends FContainer {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
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();
|
||||
}else{
|
||||
btnBrawlDeck.setText("Brawl Deck");
|
||||
btnBrawlDeck.setText(localizer.getMessage("lblBrawlDeck"));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -161,9 +159,9 @@ public class PlayerPanel extends FContainer {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
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{
|
||||
btnSchemeDeck.setText("Scheme Deck");
|
||||
btnSchemeDeck.setText(localizer.getMessage("lblSchemeDeck"));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -171,16 +169,16 @@ public class PlayerPanel extends FContainer {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
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{
|
||||
btnPlanarDeck.setText("Planar Deck");
|
||||
btnPlanarDeck.setText(localizer.getMessage("lblPlanarDeck"));
|
||||
}
|
||||
}
|
||||
});
|
||||
lstVanguardAvatars = new FVanguardChooser(isAi, new FEventHandler() {
|
||||
@Override
|
||||
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);
|
||||
|
||||
createNameEditor();
|
||||
add(newLabel("Name:"));
|
||||
add(newLabel(localizer.getMessage("lblName") + ":"));
|
||||
add(txtPlayerName);
|
||||
|
||||
nameRandomiser = createNameRandomizer();
|
||||
@@ -197,7 +195,7 @@ public class PlayerPanel extends FContainer {
|
||||
humanAiSwitch.setChangedHandler(humanAiSwitched);
|
||||
add(humanAiSwitch);
|
||||
|
||||
add(newLabel("Team:"));
|
||||
add(newLabel(localizer.getMessage("lblTeam") + ":"));
|
||||
cbTeam.setChangedHandler(teamChangedHandler);
|
||||
cbArchenemyTeam.setChangedHandler(teamChangedHandler);
|
||||
add(cbTeam);
|
||||
@@ -211,7 +209,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
deckChooser.setHeaderCaption("Select Deck for " + txtPlayerName.getText());
|
||||
deckChooser.setHeaderCaption(localizer.getMessage("lblSelectDeckFor").replace("%s", txtPlayerName.getText()));
|
||||
Forge.openScreen(deckChooser);
|
||||
}
|
||||
});
|
||||
@@ -219,7 +217,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnCommanderDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
});
|
||||
@@ -227,7 +225,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnOathbreakDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
});
|
||||
@@ -235,7 +233,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnTinyLeadersDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
});
|
||||
@@ -243,7 +241,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnBrawlDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
});
|
||||
@@ -251,7 +249,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnSchemeDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
});
|
||||
@@ -259,7 +257,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnPlanarDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
});
|
||||
@@ -267,7 +265,7 @@ public class PlayerPanel extends FContainer {
|
||||
btnVanguardAvatar.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
lstVanguardAvatars.setHeaderCaption("Select Vanguard for " + txtPlayerName.getText());
|
||||
lstVanguardAvatars.setHeaderCaption(localizer.getMessage("lblSelectVanguardFor").replace("%s", txtPlayerName.getText()));
|
||||
Forge.openScreen(lstVanguardAvatars);
|
||||
}
|
||||
});
|
||||
@@ -565,11 +563,11 @@ public class PlayerPanel extends FContainer {
|
||||
}
|
||||
|
||||
private void populateTeamsComboBoxes() {
|
||||
cbArchenemyTeam.addItem("Archenemy");
|
||||
cbArchenemyTeam.addItem("Heroes");
|
||||
cbArchenemyTeam.addItem(localizer.getMessage("lblArchenemy"));
|
||||
cbArchenemyTeam.addItem(localizer.getMessage("lblHeroes"));
|
||||
|
||||
for (int i = 1; i <= LobbyScreen.MAX_PLAYERS; i++) {
|
||||
cbTeam.addItem("Team " + i);
|
||||
cbTeam.addItem(localizer.getMessage("lblTeam") + " " + i);
|
||||
}
|
||||
cbTeam.setEnabled(mayEdit);
|
||||
}
|
||||
@@ -639,7 +637,7 @@ public class PlayerPanel extends FContainer {
|
||||
if (index == 0) {
|
||||
name = FModel.getPreferences().getPref(FPref.PLAYER_NAME);
|
||||
if (name.isEmpty()) {
|
||||
name = "Human";
|
||||
name = localizer.getMessage("lblHuman");
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -837,11 +835,11 @@ public class PlayerPanel extends FContainer {
|
||||
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> typeOptions = ImmutableList.of("Fantasy", "Generic", "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(Localizer.getInstance().getMessage("lblFantasy"), Localizer.getInstance().getMessage("lblGeneric"), Localizer.getInstance().getMessage("lblAny"));
|
||||
private final void getNewName(final Callback<String> callback) {
|
||||
final String title = "Get new random name";
|
||||
final String message = "What type of name do you want to generate?";
|
||||
final String title = localizer.getMessage("lblGetNewRandomName");
|
||||
final String message = localizer.getMessage("lbltypeofName");
|
||||
final FSkinImage icon = FOptionPane.QUESTION_ICON;
|
||||
|
||||
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) {
|
||||
final String newName = NameGenerator.getRandomName(gender, type, usedNames);
|
||||
String confirmMsg = "Would you like to use the name \"" + newName + "\", or try again?";
|
||||
FOptionPane.showConfirmDialog(confirmMsg, title, "Use this name", "Try again", true, new Callback<Boolean>() {
|
||||
String confirmMsg = localizer.getMessage("lblconfirmName").replace("%s", newName);
|
||||
FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true, new Callback<Boolean>() {
|
||||
@Override
|
||||
public void run(Boolean result) {
|
||||
if (result) {
|
||||
|
||||
@@ -7,6 +7,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import forge.util.Localizer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
@@ -244,7 +245,7 @@ public class MatchController extends AbstractGuiGame {
|
||||
if (abilities.size() == 1) {
|
||||
return abilities.get(0);
|
||||
}
|
||||
return SGuiChoose.oneOrNone("Choose ability to play", abilities);
|
||||
return SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblChooseAbilityToPlay"), abilities);
|
||||
}
|
||||
|
||||
@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) {
|
||||
final int m1 = max >= 0 ? optionList.size() - max : -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
|
||||
|
||||
@@ -152,7 +152,7 @@ public class MatchScreen extends FScreen {
|
||||
else {
|
||||
menuBar.addTab("\u2022 \u2022 \u2022", new PlayerSpecificMenu(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));
|
||||
|
||||
//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.FEventHandler;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.ThreadUtil;
|
||||
|
||||
public class VGameMenu extends FDropDownMenu {
|
||||
@@ -19,6 +20,8 @@ public class VGameMenu extends FDropDownMenu {
|
||||
|
||||
@Override
|
||||
protected void buildMenu() {
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
addItem(new FMenuItem(MatchController.instance.getConcedeCaption(), FSkinImage.CONCEDE, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
@@ -43,7 +46,7 @@ public class VGameMenu extends FDropDownMenu {
|
||||
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
|
||||
public void handleEvent(FEvent e) {
|
||||
final Player player = MatchController.getHostedMatch().getGame().getPhaseHandler().getPlayerTurn();
|
||||
@@ -54,10 +57,10 @@ public class VGameMenu extends FDropDownMenu {
|
||||
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
|
||||
public void handleEvent(FEvent e) {
|
||||
final boolean autoYieldsDisabled = MatchController.instance.getDisableAutoYields();
|
||||
@@ -82,7 +85,7 @@ public class VGameMenu extends FDropDownMenu {
|
||||
autoYields.show();
|
||||
}
|
||||
}));
|
||||
addItem(new FMenuItem("Settings", FSkinImage.SETTINGS, new FEventHandler() {
|
||||
addItem(new FMenuItem(localizer.getMessage("lblSettings"), FSkinImage.SETTINGS, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
SettingsScreen.show(false);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package forge.screens.settings;
|
||||
|
||||
import forge.download.*;
|
||||
import forge.util.Localizer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
@@ -20,47 +21,48 @@ import forge.util.Callback;
|
||||
|
||||
public class FilesPage extends TabPage<SettingsScreen> {
|
||||
private final FGroupList<FilesItem> lstItems = add(new FGroupList<>());
|
||||
private final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
protected FilesPage() {
|
||||
super("Files", FSkinImage.OPEN);
|
||||
super(Localizer.getInstance().getMessage("lblFiles"), FSkinImage.OPEN);
|
||||
|
||||
lstItems.setListItemRenderer(new FilesItemRenderer());
|
||||
|
||||
lstItems.addGroup("Content Downloaders");
|
||||
lstItems.addGroup("Storage Locations");
|
||||
lstItems.addGroup(localizer.getMessage("ContentDownloaders"));
|
||||
lstItems.addGroup(localizer.getMessage("lblStorageLocations"));
|
||||
//lstItems.addGroup("Data Import");
|
||||
|
||||
//content downloaders
|
||||
lstItems.addItem(new ContentDownloader("Download LQ Card Pictures",
|
||||
"Download default card picture for each card.") {
|
||||
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadPics"),
|
||||
localizer.getMessage("lblDownloadPics")) {
|
||||
@Override
|
||||
protected GuiDownloadService createService() {
|
||||
return new GuiDownloadPicturesLQ();
|
||||
}
|
||||
}, 0);
|
||||
lstItems.addItem(new ContentDownloader("Download LQ Set Pictures",
|
||||
"Download all pictures of each card (one for each set the card appeared in)") {
|
||||
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadSetPics"),
|
||||
localizer.getMessage("lblDownloadSetPics")) {
|
||||
@Override
|
||||
protected GuiDownloadService createService() {
|
||||
return new GuiDownloadSetPicturesLQ();
|
||||
}
|
||||
}, 0);
|
||||
lstItems.addItem(new ContentDownloader("Download Quest Images",
|
||||
"Download tokens and icons used in Quest mode.") {
|
||||
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadQuestImages"),
|
||||
localizer.getMessage("lblDownloadQuestImages")) {
|
||||
@Override
|
||||
protected GuiDownloadService createService() {
|
||||
return new GuiDownloadQuestImages();
|
||||
}
|
||||
}, 0);
|
||||
lstItems.addItem(new ContentDownloader("Download Achievement Images",
|
||||
"Download achievement images to really make your trophies stand out.") {
|
||||
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadAchievementImages"),
|
||||
localizer.getMessage("lblDownloadAchievementImages")) {
|
||||
@Override
|
||||
protected GuiDownloadService createService() {
|
||||
return new GuiDownloadAchievementImages();
|
||||
}
|
||||
}, 0);
|
||||
lstItems.addItem(new ContentDownloader("Download Card Prices",
|
||||
"Download up-to-date price list for in-game card shops.") {
|
||||
lstItems.addItem(new ContentDownloader(localizer.getMessage("btnDownloadPrices"),
|
||||
localizer.getMessage("lblDownloadPrices")) {
|
||||
@Override
|
||||
protected GuiDownloadService createService() {
|
||||
return new GuiDownloadPrices();
|
||||
@@ -68,19 +70,19 @@ public class FilesPage extends TabPage<SettingsScreen> {
|
||||
}, 0);
|
||||
|
||||
//storage locations
|
||||
final StorageOption cardPicsOption = new StorageOption("Card Pics Location", ForgeProfileProperties.getCardPicsDir()) {
|
||||
final StorageOption cardPicsOption = new StorageOption(localizer.getMessage("lblCardPicsLocation"), ForgeProfileProperties.getCardPicsDir()) {
|
||||
@Override
|
||||
protected void onDirectoryChanged(String newDir) {
|
||||
ForgeProfileProperties.setCardPicsDir(newDir);
|
||||
}
|
||||
};
|
||||
final StorageOption decksOption = new StorageOption("Decks Location", ForgeProfileProperties.getDecksDir()) {
|
||||
final StorageOption decksOption = new StorageOption(localizer.getMessage("lblDecksLocation"), ForgeProfileProperties.getDecksDir()) {
|
||||
@Override
|
||||
protected void onDirectoryChanged(String 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
|
||||
protected void onDirectoryChanged(String newDir) {
|
||||
ForgeProfileProperties.setUserDir(newDir);
|
||||
@@ -89,7 +91,7 @@ public class FilesPage extends TabPage<SettingsScreen> {
|
||||
decksOption.updateDir(ForgeProfileProperties.getDecksDir());
|
||||
}
|
||||
}, 1);
|
||||
lstItems.addItem(new StorageOption("Image Cache Location", ForgeProfileProperties.getCacheDir()) {
|
||||
lstItems.addItem(new StorageOption(localizer.getMessage("lblImageCacheLocation"), ForgeProfileProperties.getCacheDir()) {
|
||||
@Override
|
||||
protected void onDirectoryChanged(String newDir) {
|
||||
ForgeProfileProperties.setCacheDir(newDir);
|
||||
@@ -171,13 +173,13 @@ public class FilesPage extends TabPage<SettingsScreen> {
|
||||
|
||||
@Override
|
||||
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
|
||||
public void run(String result) {
|
||||
if (StringUtils.isEmpty(result) || description.equals(result)) { return; }
|
||||
updateDir(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<>());
|
||||
|
||||
public SettingsPage() {
|
||||
super("Settings", FSkinImage.SETTINGS);
|
||||
super(Localizer.getInstance().getMessage("lblSettings"), FSkinImage.SETTINGS);
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
|
||||
@@ -373,6 +373,17 @@ btnBuildNewSealedDeck=Erstelle neues Sealed Deck
|
||||
lblViewDeck=Zeige Deck
|
||||
lblRandomDeck=Zufälliges Deck
|
||||
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
|
||||
lblSealed=Sealed
|
||||
lblDraft=Draft
|
||||
@@ -967,10 +978,68 @@ lblToMainDeck=zum Haupt-Deck
|
||||
lblHowMany=wie viel?
|
||||
lblInventory=Inhaltsverzeichnis
|
||||
lblCollection=Sammlung
|
||||
lblCatalog=Katalog
|
||||
lblCommanders=Komandeure
|
||||
lblOathbreakers=Eidbrecher
|
||||
#Forge.java
|
||||
lblLoadingFonts=Lade Schriften...
|
||||
lblLoadingCardTranslations=Lade Kartenübersetzungen...
|
||||
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
|
||||
lblRandomDeck=Random Deck
|
||||
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
|
||||
lblSealed=Sealed
|
||||
lblDraft=Draft
|
||||
@@ -967,10 +978,68 @@ lblToMainDeck=to Main Deck
|
||||
lblHowMany=how many?
|
||||
lblInventory=Inventory
|
||||
lblCollection=Collection
|
||||
lblCatalog=Catalog
|
||||
lblCommanders=Commanders
|
||||
lblOathbreakers=Oathbreakers
|
||||
#Forge.java
|
||||
lblLoadingFonts=Loading fonts...
|
||||
lblLoadingCardTranslations=Loading card translations...
|
||||
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
|
||||
lblGetNewRandomName=Obtener nuevo nombre aleatorio
|
||||
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
|
||||
lblTryAgain=Probar de nuevo
|
||||
lblAddAPlayer=Añadir Jugador
|
||||
@@ -373,6 +373,17 @@ btnBuildNewSealedDeck=Nuevo Mazo Sellado
|
||||
lblViewDeck=Ver Mazo
|
||||
lblRandomDeck=Mazo Aleatorio
|
||||
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
|
||||
lblSealed=Sellado
|
||||
lblDraft=Draft
|
||||
@@ -967,10 +978,68 @@ lblToMainDeck=al Mazo Principal
|
||||
lblHowMany=¿cuántos?
|
||||
lblInventory=Inventario
|
||||
lblCollection=Colección
|
||||
lblCatalog=Catálogo
|
||||
lblCommanders=Commanders
|
||||
lblOathbreakers=Oathbreakers
|
||||
#Forge.java
|
||||
lblLoadingFonts=Loading fonts...
|
||||
lblLoadingCardTranslations=Loading card translations...
|
||||
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=查看套牌
|
||||
lblRandomDeck=随机套牌
|
||||
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
|
||||
lblSealed=现开
|
||||
lblDraft=轮抓
|
||||
@@ -967,10 +978,68 @@ lblToMainDeck=到主牌
|
||||
lblHowMany=多少?
|
||||
lblInventory=库存
|
||||
lblCollection=珍藏
|
||||
lblCatalog=目录
|
||||
lblCommanders=指挥官
|
||||
lblOathbreakers=破誓者
|
||||
#Forge.java
|
||||
lblLoadingFonts=加载字体中
|
||||
lblLoadingCardTranslations=加载卡牌翻译中
|
||||
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