Mobile: Translate Settings Tab (unfinished)

This commit is contained in:
Peter
2019-08-21 20:38:54 +02:00
parent 47a1b6ea98
commit 21868668ae

View File

@@ -26,6 +26,7 @@ import forge.toolbox.FGroupList;
import forge.toolbox.FList; import forge.toolbox.FList;
import forge.toolbox.FOptionPane; import forge.toolbox.FOptionPane;
import forge.util.Callback; import forge.util.Callback;
import forge.util.Localizer;
import forge.util.Utils; import forge.util.Utils;
import java.util.ArrayList; import java.util.ArrayList;
@@ -37,6 +38,8 @@ public class SettingsPage extends TabPage<SettingsScreen> {
public SettingsPage() { public SettingsPage() {
super("Settings", FSkinImage.SETTINGS); super("Settings", FSkinImage.SETTINGS);
final Localizer localizer = Localizer.getInstance();
lstSettings.setListItemRenderer(new SettingRenderer()); lstSettings.setListItemRenderer(new SettingRenderer());
lstSettings.addGroup("General Settings"); lstSettings.addGroup("General Settings");
@@ -50,7 +53,7 @@ public class SettingsPage extends TabPage<SettingsScreen> {
//General Settings //General Settings
lstSettings.addItem(new CustomSelectSetting(FPref.UI_LANGUAGE, "Language", lstSettings.addItem(new CustomSelectSetting(FPref.UI_LANGUAGE, "Language",
"Select Language (Excluded Game part. Still a work in progress) (RESTART REQUIRED)", localizer.getMessage("nlSelectLanguage"),
FLanguage.getAllLanguages()) { FLanguage.getAllLanguages()) {
@Override @Override
public void valueChanged(String newValue) { public void valueChanged(String newValue) {
@@ -95,8 +98,8 @@ public class SettingsPage extends TabPage<SettingsScreen> {
0); 0);
//Gameplay Options //Gameplay Options
lstSettings.addItem(new CustomSelectSetting(FPref.MULLIGAN_RULE, "Mulligan Rule", lstSettings.addItem(new CustomSelectSetting(FPref.MULLIGAN_RULE, localizer.getMessage("cbpMulliganRule"),
"Choose the version of the Mulligan rule.", localizer.getMessage("nlpMulliganRule"),
MulliganDefs.getMulliganRuleNames()) { MulliganDefs.getMulliganRuleNames()) {
@Override @Override
public void valueChanged(String newValue) { public void valueChanged(String newValue) {
@@ -106,68 +109,68 @@ public class SettingsPage extends TabPage<SettingsScreen> {
}, 1); }, 1);
lstSettings.addItem(new CustomSelectSetting(FPref.UI_CURRENT_AI_PROFILE, lstSettings.addItem(new CustomSelectSetting(FPref.UI_CURRENT_AI_PROFILE,
"AI Personality", "AI Personality",
"Choose your AI opponent.", localizer.getMessage("nlpAiProfiles"),
AiProfileUtil.getProfilesArray()), AiProfileUtil.getProfilesArray()),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_ANTE, lstSettings.addItem(new BooleanSetting(FPref.UI_ANTE,
"Play for Ante", localizer.getMessage("cbAnte"),
"Determines whether or not the game is played for ante."), localizer.getMessage("nlAnte")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_ANTE_MATCH_RARITY, lstSettings.addItem(new BooleanSetting(FPref.UI_ANTE_MATCH_RARITY,
"Match Ante Rarity", localizer.getMessage("cbAnteMatchRarity"),
"Attempts to make antes the same rarity for all players."), localizer.getMessage("nlAnteMatchRarity")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.MATCH_HOT_SEAT_MODE, lstSettings.addItem(new BooleanSetting(FPref.MATCH_HOT_SEAT_MODE,
"Hot Seat Mode", "Hot Seat Mode",
"When starting a game with 2 human players, use single prompt to control both players."), "When starting a game with 2 human players, use single prompt to control both players."),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_AI_CHEATS, lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_AI_CHEATS,
"Allow AI Cheating", localizer.getMessage("cbEnableAICheats"),
"Allow the AI to cheat to gain advantage (for personalities that have cheat shuffling options set)."), localizer.getMessage("nlEnableAICheats")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_MANABURN, lstSettings.addItem(new BooleanSetting(FPref.UI_MANABURN,
"Mana Burn", localizer.getMessage("cbManaBurn"),
"Play with mana burn (from pre-Magic 2010 rules)."), localizer.getMessage("nlManaBurn")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_MANA_LOST_PROMPT, lstSettings.addItem(new BooleanSetting(FPref.UI_MANA_LOST_PROMPT,
"Prompt Mana Pool Emptying", localizer.getMessage("cbManaLostPrompt"),
"When enabled, you get a warning if passing priority would cause you to lose mana in your mana pool."), localizer.getMessage("nlManaLostPrompt")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.ENFORCE_DECK_LEGALITY, lstSettings.addItem(new BooleanSetting(FPref.ENFORCE_DECK_LEGALITY,
"Deck Conformance", localizer.getMessage("cbEnforceDeckLegality"),
"Enforces deck legality relevant to each environment (minimum deck sizes, max card count etc)."), localizer.getMessage("nlEnforceDeckLegality")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.PERFORMANCE_MODE, lstSettings.addItem(new BooleanSetting(FPref.PERFORMANCE_MODE,
"Performance Mode", localizer.getMessage("cbPerformanceMode"),
"Disables additional static abilities checks to speed up the game engine. (Warning: breaks some 'as if had flash' scenarios when casting cards owned by opponents)."), localizer.getMessage("nlPerformanceMode")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.MATCH_SIDEBOARD_FOR_AI, lstSettings.addItem(new BooleanSetting(FPref.MATCH_SIDEBOARD_FOR_AI,
"Human Sideboard for AI", localizer.getMessage("cbSideboardForAI"),
"Allows users to sideboard with the AIs deck and sideboard in constructed game formats."), localizer.getMessage("nlSideboardForAI")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.FILTERED_HANDS, lstSettings.addItem(new BooleanSetting(FPref.FILTERED_HANDS,
"Filtered Hands", localizer.getMessage("cbFilteredHands"),
"Generates two starting hands and keeps the one with the closest to average land count for the deck. (Requires restart)"), localizer.getMessage("nlFilteredHands")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_CLONE_MODE_SOURCE, lstSettings.addItem(new BooleanSetting(FPref.UI_CLONE_MODE_SOURCE,
"Clones Use Original Card Art", localizer.getMessage("cbCloneImgSource"),
"When enabled clones will use their original art instead of the cloned card's art."), localizer.getMessage("nlCloneImgSource")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.MATCHPREF_PROMPT_FREE_BLOCKS, lstSettings.addItem(new BooleanSetting(FPref.MATCHPREF_PROMPT_FREE_BLOCKS,
"Free Block Handling", localizer.getMessage("cbPromptFreeBlocks"),
"When enabled, if you would have to pay 0 to block, pay automatically without prompt."), localizer.getMessage("nlPromptFreeBlocks")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_DETAILED_SPELLDESC_IN_PROMPT, lstSettings.addItem(new BooleanSetting(FPref.UI_DETAILED_SPELLDESC_IN_PROMPT,
"Spell Description in Payment Prompt", localizer.getMessage("cbDetailedPaymentDesc"),
"When enabled, detailed spell/ability descriptions are shown when choosing targets and paying costs."), localizer.getMessage("nlDetailedPaymentDesc")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_SHOW_STORM_COUNT_IN_PROMPT, lstSettings.addItem(new BooleanSetting(FPref.UI_SHOW_STORM_COUNT_IN_PROMPT,
"Show Storm Count in Prompt Panel", localizer.getMessage("cbShowStormCount"),
"When enabled, displays the current storm count in the prompt panel."), localizer.getMessage("nlShowStormCount")),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_PRESELECT_PREVIOUS_ABILITY_ORDER, lstSettings.addItem(new BooleanSetting(FPref.UI_PRESELECT_PREVIOUS_ABILITY_ORDER,
"Preselect Last Order of Abilities", localizer.getMessage("cbPreselectPrevAbOrder"),
"When enabled, preselects the last defined simultaneous ability order in the ordering dialog."), localizer.getMessage("nlPreselectPrevAbOrder")),
1); 1);
lstSettings.addItem(new CustomSelectSetting(FPref.UI_ALLOW_ORDER_GRAVEYARD_WHEN_NEEDED, lstSettings.addItem(new CustomSelectSetting(FPref.UI_ALLOW_ORDER_GRAVEYARD_WHEN_NEEDED,
"Order Graveyard", "Order Graveyard",
@@ -177,37 +180,37 @@ public class SettingsPage extends TabPage<SettingsScreen> {
ForgeConstants.GRAVEYARD_ORDERING_ALWAYS}), ForgeConstants.GRAVEYARD_ORDERING_ALWAYS}),
1); 1);
lstSettings.addItem(new CustomSelectSetting(FPref.UI_AUTO_YIELD_MODE, lstSettings.addItem(new CustomSelectSetting(FPref.UI_AUTO_YIELD_MODE,
"Auto-Yield", localizer.getMessage("lblAutoYields"),
"Defines the granularity level of auto-yields (yield to each unique ability or to each unique card).", localizer.getMessage("nlpAutoYieldMode"),
new String[]{ForgeConstants.AUTO_YIELD_PER_ABILITY, ForgeConstants.AUTO_YIELD_PER_CARD}), new String[]{ForgeConstants.AUTO_YIELD_PER_ABILITY, ForgeConstants.AUTO_YIELD_PER_CARD}),
1); 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_ALLOW_ESC_TO_END_TURN, lstSettings.addItem(new BooleanSetting(FPref.UI_ALLOW_ESC_TO_END_TURN,
"Use Escape Key To End Turn", localizer.getMessage("cbEscapeEndsTurn"),
"Allows to use Esc keyboard shortcut to end turn prematurely"), localizer.getMessage("nlEscapeEndsTurn")),
1); 1);
//Random Deck Generation //Random Deck Generation
lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_NOSMALL, lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_NOSMALL,
"Remove Small Creatures", localizer.getMessage("cbRemoveSmall"),
"Disables 1/1 and 0/X creatures in generated decks."), localizer.getMessage("nlRemoveSmall")),
2); 2);
lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_CARDBASED, lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_CARDBASED,
"Include Card-based Deck Generation", localizer.getMessage("cbCardBased"),
"Builds more synergistic random decks"), localizer.getMessage("nlCardBased")),
2); 2);
lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_SINGLETONS, lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_SINGLETONS,
"Singleton Mode", localizer.getMessage("cbSingletons"),
"Disables non-land duplicates in generated decks."), localizer.getMessage("nlSingletons")),
2); 2);
lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_ARTIFACTS, lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_ARTIFACTS,
"Remove Artifacts", localizer.getMessage("cbRemoveArtifacts"),
"Disables artifact cards in generated decks."), localizer.getMessage("nlRemoveArtifacts")),
2); 2);
//Advanced Settings //Advanced Settings
lstSettings.addItem(new BooleanSetting(FPref.DEV_MODE_ENABLED, lstSettings.addItem(new BooleanSetting(FPref.DEV_MODE_ENABLED,
"Developer Mode", localizer.getMessage("cbDevMode"),
"Enables menu with functions for testing during development.") { localizer.getMessage("nlDevMode")) {
@Override @Override
public void select() { public void select() {
super.select(); super.select();
@@ -216,33 +219,35 @@ public class SettingsPage extends TabPage<SettingsScreen> {
} }
}, 3); }, 3);
lstSettings.addItem(new CustomSelectSetting(FPref.DEV_LOG_ENTRY_TYPE, lstSettings.addItem(new CustomSelectSetting(FPref.DEV_LOG_ENTRY_TYPE,
"Game Log Verbosity", localizer.getMessage("cbpGameLogEntryType"),
"Changes how much information is displayed in the game log. Sorted by least to most verbose.", localizer.getMessage("nlGameLogEntryType"),
GameLogEntryType.class), GameLogEntryType.class),
3); 3);
lstSettings.addItem(new BooleanSetting(FPref.LOAD_CARD_SCRIPTS_LAZILY, lstSettings.addItem(new BooleanSetting(FPref.LOAD_CARD_SCRIPTS_LAZILY,
"Load Card Scripts Lazily", localizer.getMessage("cbLoadCardsLazily"),
"If turned on, Forge will load card scripts as they're needed instead of at start up. (Warning: Experimental)"), 3); localizer.getMessage("nlLoadCardsLazily")),
3);
lstSettings.addItem(new BooleanSetting(FPref.LOAD_HISTORIC_FORMATS, lstSettings.addItem(new BooleanSetting(FPref.LOAD_HISTORIC_FORMATS,
"Load Historic Formats", localizer.getMessage("cbLoadHistoricFormats"),
"If turned on, Forge will load all historic format definitions, this may take slightly longer to load at startup."), 3); localizer.getMessage("nlLoadHistoricFormats")),
3);
//Graphic Options //Graphic Options
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_ONLINE_IMAGE_FETCHER, lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_ONLINE_IMAGE_FETCHER,
"Download missing card art", localizer.getMessage("cbImageFetcher"),
"Automatically download missing card art"), localizer.getMessage("nlImageFetcher")),
4); 4);
lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_FOIL_EFFECT, lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_FOIL_EFFECT,
"Display Foil Overlay", localizer.getMessage("cbDisplayFoil"),
"Displays foil cards with the visual foil overlay effect."), localizer.getMessage("nlDisplayFoil")),
4); 4);
lstSettings.addItem(new BooleanSetting(FPref.UI_RANDOM_FOIL, lstSettings.addItem(new BooleanSetting(FPref.UI_RANDOM_FOIL,
"Random Foil", localizer.getMessage("cbRandomFoil"),
"Adds foil effect to random cards."), localizer.getMessage("nlRandomFoil")),
4); 4);
lstSettings.addItem(new BooleanSetting(FPref.UI_RANDOM_ART_IN_POOLS, lstSettings.addItem(new BooleanSetting(FPref.UI_RANDOM_ART_IN_POOLS,
"Randomize Card Art", localizer.getMessage("cbRandomArtInPools"),
"Generates cards with random art in generated limited mode card pools."), localizer.getMessage("nlRandomArtInPools")),
4); 4);
lstSettings.addItem(new BooleanSetting(FPref.UI_COMPACT_TABS, lstSettings.addItem(new BooleanSetting(FPref.UI_COMPACT_TABS,
"Compact Tabs", "Compact Tabs",
@@ -260,8 +265,8 @@ public class SettingsPage extends TabPage<SettingsScreen> {
"Show only a single line of text for cards and decks on all list views by default."), "Show only a single line of text for cards and decks on all list views by default."),
4); 4);
lstSettings.addItem(new BooleanSetting(FPref.UI_HIDE_REMINDER_TEXT, lstSettings.addItem(new BooleanSetting(FPref.UI_HIDE_REMINDER_TEXT,
"Hide Reminder Text", localizer.getMessage("cbHideReminderText"),
"Hide reminder text in Card Detail pane."), localizer.getMessage("nlHideReminderText")),
4); 4);
lstSettings.addItem(new BooleanSetting(FPref.UI_MATCH_IMAGE_VISIBLE, lstSettings.addItem(new BooleanSetting(FPref.UI_MATCH_IMAGE_VISIBLE,
"Show Match Background", "Show Match Background",
@@ -272,8 +277,8 @@ public class SettingsPage extends TabPage<SettingsScreen> {
"Filter card art on battlefield to make it less pixelated on large screens (restart required, may reduce performance)."), "Filter card art on battlefield to make it less pixelated on large screens (restart required, may reduce performance)."),
4); 4);
lstSettings.addItem(new CustomSelectSetting(FPref.UI_DISPLAY_CURRENT_COLORS, lstSettings.addItem(new CustomSelectSetting(FPref.UI_DISPLAY_CURRENT_COLORS,
"Detailed Card Color", localizer.getMessage("cbpDisplayCurrentCardColors"),
"Displays the breakdown of the current color of cards in the card detail information panel.", localizer.getMessage("nlDisplayCurrentCardColors"),
new String[]{ new String[]{
ForgeConstants.DISP_CURRENT_COLORS_NEVER, ForgeConstants.DISP_CURRENT_COLORS_MULTICOLOR, ForgeConstants.DISP_CURRENT_COLORS_NEVER, ForgeConstants.DISP_CURRENT_COLORS_MULTICOLOR,
ForgeConstants.DISP_CURRENT_COLORS_CHANGED, ForgeConstants.DISP_CURRENT_COLORS_MULTI_OR_CHANGED, ForgeConstants.DISP_CURRENT_COLORS_CHANGED, ForgeConstants.DISP_CURRENT_COLORS_MULTI_OR_CHANGED,
@@ -297,8 +302,8 @@ public class SettingsPage extends TabPage<SettingsScreen> {
4); 4);
lstSettings.addItem(new CustomSelectSetting(FPref.UI_CARD_COUNTER_DISPLAY_TYPE, lstSettings.addItem(new CustomSelectSetting(FPref.UI_CARD_COUNTER_DISPLAY_TYPE,
"Counter Display Type", localizer.getMessage("cbpCounterDisplayType"),
"Selects the style of the in-game counter display for cards. Text-based is a new tab-like display on the cards. Image-based is the old counter image. Hybrid displays both at once.", localizer.getMessage("nlCounterDisplayType"),
new String[]{ new String[]{
ForgeConstants.CounterDisplayType.TEXT.getName(), ForgeConstants.CounterDisplayType.IMAGE.getName(), ForgeConstants.CounterDisplayType.TEXT.getName(), ForgeConstants.CounterDisplayType.IMAGE.getName(),
ForgeConstants.CounterDisplayType.HYBRID.getName(), ForgeConstants.CounterDisplayType.OLD_WHEN_SMALL.getName()}), ForgeConstants.CounterDisplayType.HYBRID.getName(), ForgeConstants.CounterDisplayType.OLD_WHEN_SMALL.getName()}),
@@ -338,12 +343,12 @@ public class SettingsPage extends TabPage<SettingsScreen> {
//Sound Options //Sound Options
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_SOUNDS, lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_SOUNDS,
"Enable Sounds", localizer.getMessage("cbEnableSounds"),
"Enable sound effects during the game."), localizer.getMessage("nlEnableSounds")),
7); 7);
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_MUSIC, lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_MUSIC,
"Enable Music", localizer.getMessage("cbEnableMusic"),
"Enable background music during the game.") { localizer.getMessage("nlEnableMusic")) {
@Override @Override
public void select() { public void select() {
super.select(); super.select();