From 5aea2e5bbe8ba8db2780a2fc01e22ed65ebed59f Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 22 Jul 2025 08:58:12 +0800 Subject: [PATCH] update some dialog translation, KeyBoardDialog --- .../src/forge/app/GameLauncher.java | 2 +- .../src/forge/adventure/scene/TileMapScene.java | 13 +++++++++---- .../src/forge/adventure/stage/GameHUD.java | 3 +-- .../src/forge/adventure/stage/GameStage.java | 4 +++- .../src/forge/adventure/stage/MapStage.java | 2 +- .../src/forge/adventure/util/Controls.java | 7 ++++++- .../src/forge/adventure/util/KeyBoardDialog.java | 10 +++++----- forge-gui/res/languages/de-DE.properties | 9 +++++++-- forge-gui/res/languages/en-US.properties | 7 ++++++- forge-gui/res/languages/es-ES.properties | 7 ++++++- forge-gui/res/languages/fr-FR.properties | 7 ++++++- forge-gui/res/languages/it-IT.properties | 7 ++++++- forge-gui/res/languages/ja-JP.properties | 7 ++++++- forge-gui/res/languages/pt-BR.properties | 7 ++++++- forge-gui/res/languages/zh-CN.properties | 7 ++++++- 15 files changed, 75 insertions(+), 24 deletions(-) diff --git a/forge-gui-mobile-dev/src/forge/app/GameLauncher.java b/forge-gui-mobile-dev/src/forge/app/GameLauncher.java index 28280d89ad4..e9b745d7b7b 100644 --- a/forge-gui-mobile-dev/src/forge/app/GameLauncher.java +++ b/forge-gui-mobile-dev/src/forge/app/GameLauncher.java @@ -24,7 +24,7 @@ public class GameLauncher { if (SharedLibraryLoader.isMac) { Configuration.GLFW_LIBRARY_NAME.set("glfw_async"); } - //increase MemoryStack to 1MB, default is 64 + //increase MemoryStack to 1MB, default is 64kb Configuration.STACK_SIZE.set(1024); Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration(); ApplicationListener start = Forge.getApp(new Lwjgl3Clipboard(), new Main.DesktopAdapter(switchOrientationFile),//todo get totalRAM && isTabletDevice diff --git a/forge-gui-mobile/src/forge/adventure/scene/TileMapScene.java b/forge-gui-mobile/src/forge/adventure/scene/TileMapScene.java index b65a2695d65..5c1112b6b3b 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/TileMapScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/TileMapScene.java @@ -100,13 +100,18 @@ public class TileMapScene extends HudScene { } if (WorldSave.getCurrentSave().getPlayer().hasAnnounceFantasy()) { WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy(); - MapStage.getInstance().showDeckAwardDialog("{BLINK=WHITE;RED}Chaos Mode!{ENDBLINK}\n" + - "Enemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.", + MapStage.getInstance().showDeckAwardDialog("{BLINK=WHITE;RED}" + + Forge.getLocalizer().getMessage("lblMode") + " " + + Forge.getLocalizer().getMessage("lblChaos") + "{ENDBLINK}\n" + + Forge.getLocalizer().getMessage("lblChaosModeDescription"), WorldSave.getCurrentSave().getPlayer().getSelectedDeck(), this::initializeDialogs); } else if (WorldSave.getCurrentSave().getPlayer().hasAnnounceCustom()) { WorldSave.getCurrentSave().getPlayer().clearAnnounceCustom(); - MapStage.getInstance().showDeckAwardDialog("{GRADIENT}Custom Deck Mode!{ENDGRADIENT}\n" + - "Some enemies will use Genetic AI Decks randomly.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck(), this::initializeDialogs); + MapStage.getInstance().showDeckAwardDialog("{GRADIENT}" + + Forge.getLocalizer().getMessage("lblMode") + " " + + Forge.getLocalizer().getMessage("lblCustom") + "{ENDGRADIENT}\n" + + Forge.getLocalizer().getMessage("lblCustomModeDescription"), + WorldSave.getCurrentSave().getPlayer().getSelectedDeck(), this::initializeDialogs); } else { initializeDialogs(); } diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java index 151f0aeff69..c83a83a40e3 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java @@ -482,8 +482,7 @@ public class GameHUD extends Stage { Current.player().addShards(-data.shardsNeeded); ConsoleCommandInterpreter.getInstance().command(data.commandOnUse); AdventureQuestController.instance().updateItemUsed(data); - }); - button.setStyle(Controls.getTextButtonStyle("menu")); + }, "menu"); abilityButtonMap.add(button); } } diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameStage.java b/forge-gui-mobile/src/forge/adventure/stage/GameStage.java index 930931ef16d..15729503e1c 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameStage.java @@ -135,7 +135,9 @@ public abstract class GameStage extends Stage { dialog.clearListeners(); TextraButton ok = Controls.newTextButton("OK", this::hideDialog); ok.setVisible(false); - TypingLabel L = Controls.newTypingLabel("{GRADIENT=CYAN;WHITE;1;1}Strange magical energies flow within this place...{ENDGRADIENT}\nAll opponents get:\n" + effectData.getDescription()); + TypingLabel L = Controls.newTypingLabel("{GRADIENT=CYAN;WHITE;1;1}" + + Forge.getLocalizer().getMessage("lblEffectDialogDescription") + "{ENDGRADIENT}\n" + + Forge.getLocalizer().getMessage("lblEffectDataHeader") + "\n" + effectData.getDescription()); L.setWrap(true); L.setTypingListener(new TypingAdapter() { @Override diff --git a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java index d745aa92241..ad96a87f1f5 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java @@ -820,7 +820,7 @@ public class MapStage extends GameStage { dialog.clearListeners(); TextraButton ok = Controls.newTextButton("OK", this::hideDialog); ok.setVisible(false); - TypingLabel L = Controls.newTypingLabel("{GRADIENT=RED;WHITE;1;1}Defeated and unable to continue, you use the last of your power to escape the area."); + TypingLabel L = Controls.newTypingLabel("{GRADIENT=RED;WHITE;1;1}" + Forge.getLocalizer().getMessage("lblDefeatedDescription")); L.setWrap(true); L.setTypingListener(new TypingAdapter() { @Override diff --git a/forge-gui-mobile/src/forge/adventure/util/Controls.java b/forge-gui-mobile/src/forge/adventure/util/Controls.java index 5cf69d32f29..5eb8997bdf7 100644 --- a/forge-gui-mobile/src/forge/adventure/util/Controls.java +++ b/forge-gui-mobile/src/forge/adventure/util/Controls.java @@ -302,6 +302,10 @@ public class Controls { } static public TextraButton newTextButton(String text, Runnable func) { + return newTextButton(text, func, ""); + } + + static public TextraButton newTextButton(String text, Runnable func, String styleName) { TextraButton ret = newTextButton(text); ret.addListener(new ClickListener() { @Override @@ -314,7 +318,8 @@ public class Controls { } } }); - + if (!styleName.isEmpty()) + ret.setStyle(getTextButtonStyle(styleName)); return ret; } diff --git a/forge-gui-mobile/src/forge/adventure/util/KeyBoardDialog.java b/forge-gui-mobile/src/forge/adventure/util/KeyBoardDialog.java index ca81978b2d1..672202b81de 100644 --- a/forge-gui-mobile/src/forge/adventure/util/KeyBoardDialog.java +++ b/forge-gui-mobile/src/forge/adventure/util/KeyBoardDialog.java @@ -123,11 +123,11 @@ public class KeyBoardDialog extends Dialog { key0 = Controls.newTextButton("0", () -> kbLabel.setText(kbLabel.getText()+"0")); keyDot = Controls.newTextButton(".", () -> kbLabel.setText(kbLabel.getText()+".")); keyComma = Controls.newTextButton(",", () -> kbLabel.setText(kbLabel.getText()+",")); - keyShift = Controls.newTextButton("Aa", this::shiftKey); - keyBackspace = Controls.newTextButton("<<", () -> kbLabel.setText(removeLastChar(String.valueOf(kbLabel.getText())))); - keySpace = Controls.newTextButton("SPACE", () -> kbLabel.setText(kbLabel.getText()+" ")); - keyOK = Controls.newTextButton("OK", this::setKeyboardDialogText); - keyAbort = Controls.newTextButton("Abort", this::abortKeyInput); + keyShift = Controls.newTextButton("\u2191", this::shiftKey); + keyBackspace = Controls.newTextButton("\u2190", () -> kbLabel.setText(removeLastChar(String.valueOf(kbLabel.getText())))); + keySpace = Controls.newTextButton("_____", () -> kbLabel.setText(kbLabel.getText()+" ")); + keyOK = Controls.newTextButton("[+OK]", this::setKeyboardDialogText); + keyAbort = Controls.newTextButton("[+Exit]", this::abortKeyInput); this.getContentTable().add(kbLabel).width(220).height(20).colspan(10).expandX().align(Align.center); this.getButtonTable().row(); this.getButtonTable().add(key1).width(20).height(20); diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index ad7d783a8a0..3386e9d23a0 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -3033,7 +3033,7 @@ lblLoyalty=Loyaltät lblStandard=Standard lblChaos=Chaos lblPile=Haufen -lblCustom=angepaßt +lblCustom=Angepaßt lblStarterEdition=Beginner-Ausgabe lblElf=Elf lblMetathran=Metathran @@ -3520,4 +3520,9 @@ lblPromptAutoSell=Aufforderung zum Autoverkauf cbAITimeout=AI Time-out nlAITimeout=Zeitüberschreitung in Sekunden für AI, wenn die zu spielenden Zauber berechnet und Angreifer deklariert werden lblAddDeck=Hinzufügen -lblMaxDeckCountReached=Sie haben bereits die maximale Anzahl an Kartendecks erstellt \ No newline at end of file +lblMaxDeckCountReached=Sie haben bereits die maximale Anzahl an Kartendecks erstellt +lblChaosModeDescription=Der Gegner verwendet vorgefertigte oder zufällig generierte Decks. Genetische AI-Decks stehen einigen Gegnern im Schwierigkeitsgrad „Schwer“ zur Verfügung. +lblCustomModeDescription=Einige Feinde verwenden zufällig genetische AI-Decks. +lblEffectDialogDescription=An diesem Ort fließen seltsame magische Energien... +lblEffectDataHeader=Alle Gegner erhalten: +lblDefeatedDescription=Sie sind besiegt und können nicht weitermachen. Mit letzter Kraft versuchen Sie, aus dem Gebiet zu entkommen. \ No newline at end of file diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index c2d48a6e259..4bf7a642cab 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -3267,4 +3267,9 @@ lblPromptAutoSell=Prompt for auto sell cbAITimeout=AI Timeout nlAITimeout=Time-out in seconds for AI when computing for spells to play and declaring attackers lblAddDeck=Add -lblMaxDeckCountReached=You've already created the maximum amount of decks \ No newline at end of file +lblMaxDeckCountReached=You've already created the maximum amount of decks +lblChaosModeDescription=Enemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty. +lblCustomModeDescription=Some enemies will use Genetic AI Decks randomly. +lblEffectDialogDescription=Strange magical energies flow within this place... +lblEffectDataHeader=All opponents get: +lblDefeatedDescription=Defeated and unable to continue, you use the last of your power to escape the area. \ No newline at end of file diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index c2a39fc9f0d..93b10998509 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -3524,4 +3524,9 @@ lblPromptAutoSell=Solicitar venta automática cbAITimeout=AI Se acabó el tiempo nlAITimeout=Tiempo de espera en segundos para AI al calcular los hechizos a jugar y declarar atacantes lblAddDeck=Añadir -lblMaxDeckCountReached=Ya has creado la cantidad máxima de mazos \ No newline at end of file +lblMaxDeckCountReached=Ya has creado la cantidad máxima de mazos +lblChaosModeDescription=El enemigo usará mazos preconstruidos o generados aleatoriamente. Algunos enemigos tendrán mazos de AI genética en dificultad Difícil. +lblCustomModeDescription=Algunos enemigos usarán Decks de AI Genéticos aleatoriamente. +lblEffectDialogDescription=Extrañas energías mágicas fluyen dentro de este lugar... +lblEffectDataHeader=Todos los oponentes obtienen: +lblDefeatedDescription=Derrotado e incapaz de continuar, utilizas lo último de tu poder para escapar del área. \ No newline at end of file diff --git a/forge-gui/res/languages/fr-FR.properties b/forge-gui/res/languages/fr-FR.properties index 2807451d49a..407eab60f48 100644 --- a/forge-gui/res/languages/fr-FR.properties +++ b/forge-gui/res/languages/fr-FR.properties @@ -3525,4 +3525,9 @@ lblPromptAutoSell=Invite pour la vente automatique cbAITimeout=AI Temps mort nlAITimeout=Délai d'attente en secondes pour AI lors du calcul des sorts à jouer et de la déclaration des attaquants lblAddDeck=Ajouter -lblMaxDeckCountReached=Vous avez déjà créé le montant maximum \ No newline at end of file +lblMaxDeckCountReached=Vous avez déjà créé le montant maximum +lblChaosModeDescription=Les ennemis utiliseront des decks préconstruits ou générés aléatoirement. Certains ennemis pourront utiliser des decks AI génétiques en difficulté Difficile. +lblCustomModeDescription=Certains ennemis utiliseront des decks d'AI génétique de manière aléatoire. +lblEffectDialogDescription=D'étranges énergies magiques circulent dans ce lieu... +lblEffectDataHeader=Tous les adversaires obtiennent: +lblDefeatedDescription=Vaincu et incapable de continuer, vous utilisez le reste de votre pouvoir pour vous échapper de la zone. \ No newline at end of file diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 7c9d4630d96..46297a9c074 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -3523,4 +3523,9 @@ lblPromptAutoSell=Richiesta di vendita auto cbAITimeout=AI Tempo scaduto nlAITimeout=Timeout in secondi per AI durante il calcolo degli incantesimi da giocare e la dichiarazione degli attaccanti lblAddDeck=Aggiungere -lblMaxDeckCountReached=Hai già creato il numero massimo di mazzi \ No newline at end of file +lblMaxDeckCountReached=Hai già creato il numero massimo di mazzi +lblChaosModeDescription=I nemici useranno mazzi precostruiti o generati casualmente. I mazzi AI genetica saranno disponibili per alcuni nemici a difficoltà Difficile. +lblCustomModeDescription=Alcuni nemici useranno i Deck IA genetica in modo casuale. +lblEffectDialogDescription=In questo luogo fluiscono strane energie magiche... +lblEffectDataHeader=Tutti gli avversari ottengono: +lblDefeatedDescription=Sconfitto e impossibilitato a proseguire, usi le ultime energie che ti restano per fuggire dalla zona. \ No newline at end of file diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index e82d2aa482d..4e1f6dfbd56 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -3519,4 +3519,9 @@ lblPromptAutoSell=自動車販売のプロンプト cbAITimeout=AI タイムアウト nlAITimeout=プレイする呪文を計算し、攻撃者を宣言するときの AI のタイムアウト (秒単位) lblAddDeck=追加 -lblMaxDeckCountReached=すでに最大額を作成しました \ No newline at end of file +lblMaxDeckCountReached=すでに最大額を作成しました +lblChaosModeDescription=敵は構築済みデッキまたはランダム生成デッキを使用します。難易度「ハード」では、一部の敵はジェネティックAIデッキを使用することができます。 +lblCustomModeDescription=一部の敵はランダムに Genetic AI デッキを使用します。 +lblEffectDialogDescription=この場所には不思議な魔力が流れている。。。 +lblEffectDataHeader=対戦相手全員が得るもの: +lblDefeatedDescription=敗北し、続行不可能となったあなたは、最後の力を振り絞ってそのエリアから脱出します。 \ No newline at end of file diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index 1dc8e9bdea5..2c9f1f35db4 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -3609,4 +3609,9 @@ lblPromptAutoSell=Solicitação de venda automática cbAITimeout=AI Tempo esgotado nlAITimeout=Tempo limite em segundos para AI ao calcular feitiços para jogar e declarar atacantes lblAddDeck=Adicionar -lblMaxDeckCountReached=Você já criou a quantidade máxima de decks \ No newline at end of file +lblMaxDeckCountReached=Você já criou a quantidade máxima de decks +lblChaosModeDescription=O inimigo usará Decks Pré-construídos ou Gerados Aleatoriamente. Decks de AI Genética estarão disponíveis para alguns inimigos na dificuldade Difícil. +lblCustomModeDescription=Alguns inimigos usarão Decks de AI Genética aleatoriamente. +lblEffectDialogDescription=Estranhas energias mágicas fluem dentro deste lugar... +lblEffectDataHeader=Todos os oponentes recebem: +lblDefeatedDescription=Derrotado e incapaz de continuar, você usa o que resta de seu poder para escapar da área. \ No newline at end of file diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index d4d6c462a9a..c08cfbec2aa 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -3510,4 +3510,9 @@ lblPromptAutoSell=提示汽车出售 cbAITimeout=AI 暂停 nlAITimeout=计算要播放的咒语并宣布攻击者时,AI 超时(以秒为单位) lblAddDeck=添加 -lblMaxDeckCountReached=你已经创建了最大数量的卡牌组 \ No newline at end of file +lblMaxDeckCountReached=你已经创建了最大数量的卡牌组 +lblChaosModeDescription=敌人将使用预构筑或随机生成的卡组。部分敌人在困难难度下可以使用基因AI卡组。 +lblCustomModeDescription=一些敌人会随机使用基因 AI 卡组。 +lblEffectDialogDescription=奇怪的魔法能量在这个地方流动。。。 +lblEffectDataHeader=所有对手获得: +lblDefeatedDescription=你被击败了,无法继续前进,你用尽最后的力量逃离了该区域。 \ No newline at end of file