From ebaecbe5a8589fb635a50133c8ecf4a43aeb3c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Mon, 17 Jun 2024 10:42:21 -0300 Subject: [PATCH 1/6] [Localization(pt)] Update start-select-ui-handler.ts (#2335) --- src/locales/pt_BR/starter-select-ui-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/pt_BR/starter-select-ui-handler.ts b/src/locales/pt_BR/starter-select-ui-handler.ts index 7ee8789f8608..9b393058dfdd 100644 --- a/src/locales/pt_BR/starter-select-ui-handler.ts +++ b/src/locales/pt_BR/starter-select-ui-handler.ts @@ -27,7 +27,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "manageMoves": "Mudar Movimentos", "manageNature": "Mudar Natureza", "useCandies": "Usar Doces", - "selectNature": "Escolha Natureza.", + "selectNature": "Escolha uma natureza.", "selectMoveSwapOut": "Escolha um movimento para substituir.", "selectMoveSwapWith": "Escolha o movimento que substituirá", "unlockPassive": "Aprender Passiva", From f3e3b58a433b8861ad01d7dd70751e1d77be2017 Mon Sep 17 00:00:00 2001 From: Alexis Faizeau Date: Mon, 17 Jun 2024 15:47:22 +0200 Subject: [PATCH 2/6] [Enhancement] Translate Settings Menu (#2187) * Add en settings translations * Add fr settings translations * Translate settings menu * Add de settings translations keys * Add es settings translations keys * Add it settings translations keys * Add ko settings translations keys * Add pt br settings translations keys * Add zh cn settings translations keys * Add zh tw settings translations keys * Add ko settings translations keys * Add de settings translations keys * Fix a forgotten test --- src/locales/de/menu.ts | 106 ++++- src/locales/en/menu.ts | 106 ++++- src/locales/es/menu.ts | 106 ++++- src/locales/fr/menu.ts | 108 ++++- src/locales/it/menu.ts | 106 ++++- src/locales/ko/menu.ts | 104 +++++ src/locales/pt_BR/menu.ts | 106 ++++- src/locales/zh_CN/menu.ts | 106 ++++- src/locales/zh_TW/menu.ts | 106 ++++- src/system/settings/settings-keyboard.ts | 3 +- src/system/settings/settings.ts | 371 ++++++++++++++---- src/ui-inputs.ts | 4 +- .../settings/abstract-binding-ui-handler.ts | 5 +- .../abstract-control-settings-ui-handler.ts | 15 +- .../settings/abstract-settings-ui-handler.ts | 9 +- src/ui/settings/navigationMenu.ts | 3 +- .../settings/settings-display-ui-handler.ts | 50 ++- .../settings/settings-gamepad-ui-handler.ts | 3 +- .../settings/settings-keyboard-ui-handler.ts | 5 +- 19 files changed, 1311 insertions(+), 111 deletions(-) diff --git a/src/locales/de/menu.ts b/src/locales/de/menu.ts index d8a3c8f14e85..2580ae4965d0 100644 --- a/src/locales/de/menu.ts +++ b/src/locales/de/menu.ts @@ -54,5 +54,109 @@ export const menu: SimpleTranslationEntries = { "yes":"Ja", "no":"Nein", "disclaimer": "DISCLAIMER", - "disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed." + "disclaimerDescription": "Dieses Spiel ist ein unfertiges Produkt. Es kann spielbeinträchtigende Fehler (bis hin zum Verlust des Speicherstandes) aufweisen, sich ohne Vorankündigung ändern und es gibt keine Garantie dass es weiterentwickelt oder fertiggestellt wird.", + "general": "Allgemein", + "display": "Anzeige", + "audio": "Audio", + "gamepad": "Controller", + "keyboard": "Tastatur", + "gameSpeed": "Spielgeschwindigkeit", + "hpBarSpeed": "KP-Balken Geschwindigkeit", + "expGainsSpeed": "EXP-Balken Geschwindigkeit", + "expPartyDisplay": "Team-EXP anzeigen", + "skipSeenDialogues": "Gesehenen Dialog überspringen", + "battleStyle": "Kampfstil", + "enableRetries": "Erneut versuchen aktivieren", + "tutorials": "Tutorials", + "touchControls": "Touch Steuerung", + "vibrations": "Vibration", + "normal": "Normal", + "fast": "Schnell", + "faster": "Schneller", + "skip": "Überspringen", + "levelUpNotifications": "Auflevelbenachrichtigung", + "on": "An", + "off": "Aus", + "switch": "Wechsel", + "set": "Folge", + "auto": "Auto", + "disabled": "Deaktiviert", + "language": "Sprache", + "change": "Ändern", + "uiTheme": "UI Thema", + "default": "Standard", + "legacy": "Legacy", + "windowType": "Fenster Typ", + "moneyFormat": "Währungsformat", + "damageNumbers": "Schadensnummern", + "simple": "Simpel", + "fancy": "Schön", + "abbreviated": "Abgekürzt", + "moveAnimations": "Attacken Animationen", + "showStatsOnLevelUp": "Werte beim Aufleveln anzeigen", + "candyUpgradeNotification": "Bonbon Upgrade Benachrichtigung", + "passivesOnly": "Nur Passive", + "candyUpgradeDisplay": "Bonbon Upgrade Anzeige", + "icon": "Icon", + "animation": "Animation", + "moveInfo": "Attacken-Info", + "showMovesetFlyout": "Zeige Attacken Flyout", + "showArenaFlyout": "Zeige Arena Flyout", + "showTimeOfDayWidget": "Zeige Tageszeit Widget", + "timeOfDayAnimation": "Tageszeit Animation", + "bounce": "Springen", + "back": "Zurück", + "spriteSet": "Sprite Satz", + "consistent": "Konistent", + "mixedAnimated": "Gemischt animiert", + "fusionPaletteSwaps": "Fusion-Farbpalettenwechsel", + "playerGender": "Spieler Geschlecht", + "typeHints": "Typhinweise", + "masterVolume": "Gesamtlautstärke", + "bgmVolume": "Hintergrundmusik", + "seVolume": "Spezialeffekte", + "musicPreference": "Musik Präferenz", + "mixed": "Gemisch", + "gamepadPleasePlug": "Bitte einen Controller anschließen oder eine Taste drücken", + "delete": "Löschen", + "keyboardPleasePress": "Bitte eine Taste auf der Tastatur drücken", + "reset": "Zurücksetzen", + "requireReload": "Neuladen benötigt", + "action": "Aktion", + "pressToBind": "Zum Zuweisen drücken", + "pressButton": "Eine Taste drücken...", + "buttonUp": "Hoch", + "buttonDown": "Runter", + "altButtonUp": "Hoch (Alt)", + "buttonLeft": "Links", + "buttonRight": "Rechts", + "buttonAction": "Aktion", + "buttonMenu": "Menü", + "buttonSubmit": "Bestätigen", + "altButtonDown": "Runter (Alt)", + "altButtonLeft": "Links (Alt)", + "altButtonRight": "Rechts (Alt)", + "altButtonAction": "Aktion (Alt)", + "buttonCancel": "Abbrechen", + "altButtonCancel": "Abbrechen (Alt)", + "altButtonMenu": "Menü (Alt)", + "buttonStats": "Statistiken", + "altButtonStats": "Statistiken (Alt)", + "buttonCycleForm": "Form wechseln", + "altButtonCycleForm": "Form wechseln (Alt)", + "buttonCycleShiny": "Schillernd wechseln", + "altButtonCycleShiny": "Schillernd wechseln (Alt)", + "buttonCycleGender": "Geschlecht wechseln", + "altButtonCycleGender": "Geschlecht wechseln (Alt)", + "buttonCycleAbility": "Fähigkeit wechseln", + "altButtonCycleAbility": "Fähigkeit wechseln (Alt)", + "buttonCycleNature": "Wesen wechseln", + "altButtonCycleNature": "Wesen wechslen (Alt)", + "buttonCycleVariant": "Variante wechseln", + "altButtonCycleVariant": "Variante wechseln (Alt)", + "buttonSpeedUp": "Beschleunigen", + "altButtonSpeedUp": "Beschleunigen (Alt)", + "buttonSlowDown": "Verlangsamen", + "altButtonSlowDown": "Verlangsamen (Alt)", + "altButtonSubmit": "Bestätigen (Alt)", } as const; diff --git a/src/locales/en/menu.ts b/src/locales/en/menu.ts index 0b9e45aa6d97..71afc2836fe0 100644 --- a/src/locales/en/menu.ts +++ b/src/locales/en/menu.ts @@ -54,5 +54,109 @@ export const menu: SimpleTranslationEntries = { "yes":"Yes", "no":"No", "disclaimer": "DISCLAIMER", - "disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed." + "disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed.", + "general": "General", + "display": "Display", + "audio": "Audio", + "gamepad": "Gamepad", + "keyboard": "Keyboard", + "gameSpeed": "Game Speed", + "hpBarSpeed": "HP Bar Speed", + "expGainsSpeed": "EXP Gains Speed", + "expPartyDisplay": "Show EXP Party", + "skipSeenDialogues": "Skip Seen Dialogues", + "battleStyle": "Battle Style", + "enableRetries": "Enable Retries", + "tutorials": "Tutorials", + "touchControls": "Touch Controls", + "vibrations": "Vibrations", + "normal": "Normal", + "fast": "Fast", + "faster": "Faster", + "skip": "Skip", + "levelUpNotifications": "Level Up Notifications", + "on": "On", + "off": "Off", + "switch": "Switch", + "set": "Set", + "auto": "Auto", + "disabled": "Disabled", + "language": "Language", + "change": "Change", + "uiTheme": "UI Theme", + "default": "Default", + "legacy": "Legacy", + "windowType": "Window Type", + "moneyFormat": "Money Format", + "damageNumbers": "Damage Numbers", + "simple": "Simple", + "fancy": "Fancy", + "abbreviated": "Abbreviated", + "moveAnimations": "Move Animations", + "showStatsOnLevelUp": "Show Stats on Level Up", + "candyUpgradeNotification": "Candy Upgrade Notification", + "passivesOnly": "Passives Only", + "candyUpgradeDisplay": "Candy Upgrade Display", + "icon": "Icon", + "animation": "Animation", + "moveInfo": "Move Info", + "showMovesetFlyout": "Show Moveset Flyout", + "showArenaFlyout": "Show Arena Flyout", + "showTimeOfDayWidget": "Show Time of Day Widget", + "timeOfDayAnimation": "Time of Day Animation", + "bounce": "Bounce", + "back": "Back", + "spriteSet": "Sprite Set", + "consistent": "Consistent", + "mixedAnimated": "Mixed Animated", + "fusionPaletteSwaps": "Fusion Palette Swaps", + "playerGender": "Player Gender", + "typeHints": "Type Hints", + "masterVolume": "Master Volume", + "bgmVolume": "BGM Volume", + "seVolume": "SE Volume", + "musicPreference": "Music Preference", + "mixed": "Mixed", + "gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button", + "delete": "Delete", + "keyboardPleasePress": "Please Press a Key on Your Keyboard", + "reset": "Reset", + "requireReload": "Reload Required", + "action": "Action", + "pressToBind": "Press to Bind", + "pressButton": "Press a Button...", + "buttonUp": "Up", + "buttonDown": "Down", + "altButtonUp": "Up (Alt)", + "buttonLeft": "Left", + "buttonRight": "Right", + "buttonAction": "Action", + "buttonMenu": "Menu", + "buttonSubmit": "Submit", + "altButtonDown": "Down (Alt)", + "altButtonLeft": "Left (Alt)", + "altButtonRight": "Right (Alt)", + "altButtonAction": "Action (Alt)", + "buttonCancel": "Cancel", + "altButtonCancel": "Cancel (Alt)", + "altButtonMenu": "Menu (Alt)", + "buttonStats": "Stats", + "altButtonStats": "Stats (Alt)", + "buttonCycleForm": "Cycle Form", + "altButtonCycleForm": "Cycle Form (Alt)", + "buttonCycleShiny": "Cycle Shiny", + "altButtonCycleShiny": "Cycle Shiny (Alt)", + "buttonCycleGender": "Cycle Gender", + "altButtonCycleGender": "Cycle Gender (Alt)", + "buttonCycleAbility": "Cycle Ability", + "altButtonCycleAbility": "Cycle Ability (Alt)", + "buttonCycleNature": "Cycle Nature", + "altButtonCycleNature": "Cycle Nature (Alt)", + "buttonCycleVariant": "Cycle Variant", + "altButtonCycleVariant": "Cycle Variant (Alt)", + "buttonSpeedUp": "Speed Up", + "altButtonSpeedUp": "Speed Up (Alt)", + "buttonSlowDown": "Slow Down", + "altButtonSlowDown": "Slow Down (Alt)", + "altButtonSubmit": "Submit (Alt)" } as const; diff --git a/src/locales/es/menu.ts b/src/locales/es/menu.ts index a201bc91e77c..19a32cafaa59 100644 --- a/src/locales/es/menu.ts +++ b/src/locales/es/menu.ts @@ -54,5 +54,109 @@ export const menu: SimpleTranslationEntries = { "yes":"Sí", "no":"No", "disclaimer": "AVISO", - "disclaimerDescription": "Este juego es un producto inacabado; puede tener problemas de jugabilidad (incluyendo la posible pérdida de datos de guardado),\ncambiar sin avisar, y puede o no puede ser actualizado hasta ser completado." + "disclaimerDescription": "Este juego es un producto inacabado; puede tener problemas de jugabilidad (incluyendo la posible pérdida de datos de guardado),\ncambiar sin avisar, y puede o no puede ser actualizado hasta ser completado.", + "general": "General", + "display": "Display", + "audio": "Audio", + "gamepad": "Gamepad", + "keyboard": "Keyboard", + "gameSpeed": "Game Speed", + "hpBarSpeed": "HP Bar Speed", + "expGainsSpeed": "EXP Gains Speed", + "expPartyDisplay": "Show EXP Party", + "skipSeenDialogues": "Skip Seen Dialogues", + "battleStyle": "Battle Style", + "enableRetries": "Enable Retries", + "tutorials": "Tutorials", + "touchControls": "Touch Controls", + "vibrations": "Vibrations", + "normal": "Normal", + "fast": "Fast", + "faster": "Faster", + "skip": "Skip", + "levelUpNotifications": "Level Up Notifications", + "on": "On", + "off": "Off", + "switch": "Switch", + "set": "Set", + "auto": "Auto", + "disabled": "Disabled", + "language": "Language", + "change": "Change", + "uiTheme": "UI Theme", + "default": "Default", + "legacy": "Legacy", + "windowType": "Window Type", + "moneyFormat": "Money Format", + "damageNumbers": "Damage Numbers", + "simple": "Simple", + "fancy": "Fancy", + "abbreviated": "Abbreviated", + "moveAnimations": "Move Animations", + "showStatsOnLevelUp": "Show Stats on Level Up", + "candyUpgradeNotification": "Candy Upgrade Notification", + "passivesOnly": "Passives Only", + "candyUpgradeDisplay": "Candy Upgrade Display", + "icon": "Icon", + "animation": "Animation", + "moveInfo": "Move Info", + "showMovesetFlyout": "Show Moveset Flyout", + "showArenaFlyout": "Show Arena Flyout", + "showTimeOfDayWidget": "Show Time of Day Widget", + "timeOfDayAnimation": "Time of Day Animation", + "bounce": "Bounce", + "back": "Back", + "spriteSet": "Sprite Set", + "consistent": "Consistent", + "mixedAnimated": "Mixed Animated", + "fusionPaletteSwaps": "Fusion Palette Swaps", + "playerGender": "Player Gender", + "typeHints": "Type Hints", + "masterVolume": "Master Volume", + "bgmVolume": "BGM Volume", + "seVolume": "SE Volume", + "musicPreference": "Music Preference", + "mixed": "Mixed", + "gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button", + "delete": "Delete", + "keyboardPleasePress": "Please Press a Key on Your Keyboard", + "reset": "Reset", + "requireReload": "Reload Required", + "action": "Action", + "pressToBind": "Press to Bind", + "pressButton": "Press a Button...", + "buttonUp": "Up", + "buttonDown": "Down", + "altButtonUp": "Up (Alt)", + "buttonLeft": "Left", + "buttonRight": "Right", + "buttonAction": "Action", + "buttonMenu": "Menu", + "buttonSubmit": "Submit", + "altButtonDown": "Down (Alt)", + "altButtonLeft": "Left (Alt)", + "altButtonRight": "Right (Alt)", + "altButtonAction": "Action (Alt)", + "buttonCancel": "Cancel", + "altButtonCancel": "Cancel (Alt)", + "altButtonMenu": "Menu (Alt)", + "buttonStats": "Stats", + "altButtonStats": "Stats (Alt)", + "buttonCycleForm": "Cycle Form", + "altButtonCycleForm": "Cycle Form (Alt)", + "buttonCycleShiny": "Cycle Shiny", + "altButtonCycleShiny": "Cycle Shiny (Alt)", + "buttonCycleGender": "Cycle Gender", + "altButtonCycleGender": "Cycle Gender (Alt)", + "buttonCycleAbility": "Cycle Ability", + "altButtonCycleAbility": "Cycle Ability (Alt)", + "buttonCycleNature": "Cycle Nature", + "altButtonCycleNature": "Cycle Nature (Alt)", + "buttonCycleVariant": "Cycle Variant", + "altButtonCycleVariant": "Cycle Variant (Alt)", + "buttonSpeedUp": "Speed Up", + "altButtonSpeedUp": "Speed Up (Alt)", + "buttonSlowDown": "Slow Down", + "altButtonSlowDown": "Slow Down (Alt)", + "altButtonSubmit": "Submit (Alt)" } as const; diff --git a/src/locales/fr/menu.ts b/src/locales/fr/menu.ts index 4d37bde35d88..8a8a2d22f12c 100644 --- a/src/locales/fr/menu.ts +++ b/src/locales/fr/menu.ts @@ -44,10 +44,114 @@ export const menu: SimpleTranslationEntries = { "score": "Score", "wave": "Wave", "loading": "Chargement…", - "loadingAsset": "Loading asset: {{assetName}}", + "loadingAsset": "Chargement de la ressource: {{assetName}}", "playersOnline": "Joueurs Connectés", "yes":"Oui", "no":"Non", "disclaimer": "AVERTISSEMENT", - "disclaimerDescription": "Ce jeu n’est pas un produit fini et peut contenir des problèmes de jouabilité, dont de possibles pertes de sauvegardes,\ndes modifications sans avertissement et pourrait ou non encore être mis à jour ou terminé." + "disclaimerDescription": "Ce jeu n’est pas un produit fini et peut contenir des problèmes de jouabilité, dont de possibles pertes de sauvegardes,\ndes modifications sans avertissement et pourrait ou non encore être mis à jour ou terminé.", + "general": "Général", + "display": "Affichage", + "audio": "Audio", + "gamepad": "Manette", + "keyboard": "Clavier", + "gameSpeed": "Vitesse du jeu", + "hpBarSpeed": "Vitesse de la barre de PV", + "expGainsSpeed": "Vitesse des gains d’EXP", + "expPartyDisplay": "Afficher EXP équipe", + "skipSeenDialogues": "Passer les dialogues déjà vus", + "battleStyle": "Style de combat", + "enableRetries": "Activer les réessais", + "tutorials": "Tutoriels", + "touchControls": "Contrôles tactiles", + "vibrations": "Vibrations", + "normal": "Normal", + "fast": "Rapide", + "faster": "Plus rapide", + "skip": "Passer", + "levelUpNotifications": "Montée de niveau", + "on": "Activé", + "off": "Désactivé", + "switch": "Choix", + "set": "Défini", + "auto": "Auto", + "disabled": "Désactivé", + "language": "Langue", + "change": "Changer", + "uiTheme": "Interface", + "default": "Par défaut", + "legacy": "Ancienne", + "windowType": "Type de fenêtre", + "moneyFormat": "Format de l’argent", + "damageNumbers": "Nombres de dégâts", + "simple": "Simple", + "fancy": "Amélioré", + "abbreviated": "Abrégé", + "moveAnimations": "Animations de mouvement", + "showStatsOnLevelUp": "Afficher les stats à la montée de niveau", + "candyUpgradeNotification": "Notif amélioration de bonbon", + "passivesOnly": "Passifs", + "candyUpgradeDisplay": "Amélioration bonbon", + "icon": "Icône", + "animation": "Animation", + "moveInfo": "Info de capacité", + "showMovesetFlyout": "Afficher le volet de capacités", + "showArenaFlyout": "Afficher le volet d’arène", + "showTimeOfDayWidget": "Widget de l’heure", + "timeOfDayAnimation": "Animation de l’heure", + "bounce": "Sauter", + "back": "Retour", + "spriteSet": "Ensemble de sprites", + "consistent": "Consistant", + "mixedAnimated": "Mixte", + "fusionPaletteSwaps": "Palettes de fusion", + "playerGender": "Genre du joueur", + "typeHints": "Indications de type", + "masterVolume": "Volume principal", + "bgmVolume": "Volume BGM", + "seVolume": "Volume SE", + "musicPreference": "Préférence musicale", + "mixed": "Mixte", + "gamepadPleasePlug": "Veuillez brancher une manette ou appuyer sur un bouton", + "delete": "Supprimer", + "keyboardPleasePress": "Veuillez appuyer sur une touche de votre clavier", + "reset": "Réinitialiser", + "requireReload": "Redémarrage requis", + "action": "Action", + "pressToBind": "Sélectionnez pour assigner", + "pressButton": "Appuyez sur un bouton...", + "buttonUp": "Haut", + "buttonDown": "Bas", + "altButtonUp": "Haut (Alt)", + "buttonLeft": "Gauche", + "buttonRight": "Droite", + "buttonAction": "Action", + "buttonMenu": "Menu", + "buttonSubmit": "Valider", + "altButtonDown": "Bas (Alt)", + "altButtonLeft": "Gauche (Alt)", + "altButtonRight": "Droite (Alt)", + "altButtonAction": "Action (Alt)", + "buttonCancel": "Annuler", + "altButtonCancel": "Annuler (Alt)", + "altButtonMenu": "Menu (Alt)", + "buttonStats": "Stats", + "altButtonStats": "Stats (Alt)", + "buttonCycleForm": "Cycle de forme", + "altButtonCycleForm": "Cycle de forme (Alt)", + "buttonCycleShiny": "Cycle de chromatique", + "altButtonCycleShiny": "Cycle de chromatique (Alt)", + "buttonCycleGender": "Cycle de genre", + "altButtonCycleGender": "Cycle de genre (Alt)", + "buttonCycleAbility": "Cycle de capacité", + "altButtonCycleAbility": "Cycle de capacité (Alt)", + "buttonCycleNature": "Cycle de nature", + "altButtonCycleNature": "Cycle de nature (Alt)", + "buttonCycleVariant": "Cycle de variante", + "altButtonCycleVariant": "Cycle de variante (Alt)", + "buttonSpeedUp": "Accélérer", + "altButtonSpeedUp": "Accélérer (Alt)", + "buttonSlowDown": "Ralentir", + "altButtonSlowDown": "Ralentir (Alt)", + "altButtonSubmit": "Valider (Alt)", } as const; diff --git a/src/locales/it/menu.ts b/src/locales/it/menu.ts index acfe68403eca..694b140a0b03 100644 --- a/src/locales/it/menu.ts +++ b/src/locales/it/menu.ts @@ -54,5 +54,109 @@ export const menu: SimpleTranslationEntries = { "yes":"Si", "no":"No", "disclaimer": "DISCLAIMER", - "disclaimerDescription": "Questo gioco è un prodotto incompleto; si potrebbero riscontrare errori (inclusa la perdita dei dati di salvataggio),\ncambiamenti impercettibili, e non è detto che venga aggiornato nel tempo o mai completato del tutto." + "disclaimerDescription": "Questo gioco è un prodotto incompleto; si potrebbero riscontrare errori (inclusa la perdita dei dati di salvataggio),\ncambiamenti impercettibili, e non è detto che venga aggiornato nel tempo o mai completato del tutto.", + "general": "General", + "display": "Display", + "audio": "Audio", + "gamepad": "Gamepad", + "keyboard": "Keyboard", + "gameSpeed": "Game Speed", + "hpBarSpeed": "HP Bar Speed", + "expGainsSpeed": "EXP Gains Speed", + "expPartyDisplay": "Show EXP Party", + "skipSeenDialogues": "Skip Seen Dialogues", + "battleStyle": "Battle Style", + "enableRetries": "Enable Retries", + "tutorials": "Tutorials", + "touchControls": "Touch Controls", + "vibrations": "Vibrations", + "normal": "Normal", + "fast": "Fast", + "faster": "Faster", + "skip": "Skip", + "levelUpNotifications": "Level Up Notifications", + "on": "On", + "off": "Off", + "switch": "Switch", + "set": "Set", + "auto": "Auto", + "disabled": "Disabled", + "language": "Language", + "change": "Change", + "uiTheme": "UI Theme", + "default": "Default", + "legacy": "Legacy", + "windowType": "Window Type", + "moneyFormat": "Money Format", + "damageNumbers": "Damage Numbers", + "simple": "Simple", + "fancy": "Fancy", + "abbreviated": "Abbreviated", + "moveAnimations": "Move Animations", + "showStatsOnLevelUp": "Show Stats on Level Up", + "candyUpgradeNotification": "Candy Upgrade Notification", + "passivesOnly": "Passives Only", + "candyUpgradeDisplay": "Candy Upgrade Display", + "icon": "Icon", + "animation": "Animation", + "moveInfo": "Move Info", + "showMovesetFlyout": "Show Moveset Flyout", + "showArenaFlyout": "Show Arena Flyout", + "showTimeOfDayWidget": "Show Time of Day Widget", + "timeOfDayAnimation": "Time of Day Animation", + "bounce": "Bounce", + "back": "Back", + "spriteSet": "Sprite Set", + "consistent": "Consistent", + "mixedAnimated": "Mixed Animated", + "fusionPaletteSwaps": "Fusion Palette Swaps", + "playerGender": "Player Gender", + "typeHints": "Type Hints", + "masterVolume": "Master Volume", + "bgmVolume": "BGM Volume", + "seVolume": "SE Volume", + "musicPreference": "Music Preference", + "mixed": "Mixed", + "gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button", + "delete": "Delete", + "keyboardPleasePress": "Please Press a Key on Your Keyboard", + "reset": "Reset", + "requireReload": "Reload Required", + "action": "Action", + "pressToBind": "Press to Bind", + "pressButton": "Press a Button...", + "buttonUp": "Up", + "buttonDown": "Down", + "altButtonUp": "Up (Alt)", + "buttonLeft": "Left", + "buttonRight": "Right", + "buttonAction": "Action", + "buttonMenu": "Menu", + "buttonSubmit": "Submit", + "altButtonDown": "Down (Alt)", + "altButtonLeft": "Left (Alt)", + "altButtonRight": "Right (Alt)", + "altButtonAction": "Action (Alt)", + "buttonCancel": "Cancel", + "altButtonCancel": "Cancel (Alt)", + "altButtonMenu": "Menu (Alt)", + "buttonStats": "Stats", + "altButtonStats": "Stats (Alt)", + "buttonCycleForm": "Cycle Form", + "altButtonCycleForm": "Cycle Form (Alt)", + "buttonCycleShiny": "Cycle Shiny", + "altButtonCycleShiny": "Cycle Shiny (Alt)", + "buttonCycleGender": "Cycle Gender", + "altButtonCycleGender": "Cycle Gender (Alt)", + "buttonCycleAbility": "Cycle Ability", + "altButtonCycleAbility": "Cycle Ability (Alt)", + "buttonCycleNature": "Cycle Nature", + "altButtonCycleNature": "Cycle Nature (Alt)", + "buttonCycleVariant": "Cycle Variant", + "altButtonCycleVariant": "Cycle Variant (Alt)", + "buttonSpeedUp": "Speed Up", + "altButtonSpeedUp": "Speed Up (Alt)", + "buttonSlowDown": "Slow Down", + "altButtonSlowDown": "Slow Down (Alt)", + "altButtonSubmit": "Submit (Alt)", } as const; diff --git a/src/locales/ko/menu.ts b/src/locales/ko/menu.ts index 2ad8b0c9e144..6197ce9895b5 100644 --- a/src/locales/ko/menu.ts +++ b/src/locales/ko/menu.ts @@ -55,4 +55,108 @@ export const menu: SimpleTranslationEntries = { "no":"아니오", "disclaimer": "면책 조항", "disclaimerDescription": "이 게임은 완전히 개발되지 않았습니다- (세이브 데이터 소실을 포함) 플레이에 지장을 주는 문제가 생길 수 있으며,\n공지 없이 업데이트가 진행 혹은 중지될 수 있습니다.", + "general": "일반", + "display": "디스플레이", + "audio": "오디오", + "gamepad": "게임패드", + "keyboard": "키보드", + "gameSpeed": "게임 속도", + "hpBarSpeed": "HP 속도", + "expGainsSpeed": "경험치 속도", + "expPartyDisplay": "파티 경험치 표시", + "skipSeenDialogues": "본 대화 생략", + "battleStyle": "배틀 방식", + "enableRetries": "재도전 허용", + "tutorials": "튜토리얼", + "touchControls": "터치 컨트롤", + "vibrations": "진동", + "normal": "보통", + "fast": "빠르게", + "faster": "더 빠르게", + "skip": "스킵", + "levelUpNotifications": "레벨업 알림", + "on": "설정", + "off": "해제", + "switch": "교체허용", + "set": "해제", + "auto": "자동", + "disabled": "비활성", + "language": "언어", + "change": "변경", + "uiTheme": "UI 테마", + "default": "기본", + "legacy": "레거시", + "windowType": "윈도우 타입", + "moneyFormat": "소지금 표시", + "damageNumbers": "대미지 표시", + "simple": "심플", + "fancy": "팬시", + "abbreviated": "축약", + "moveAnimations": "기술 애니메이션", + "showStatsOnLevelUp": "레벨업 능력치 표시", + "candyUpgradeNotification": "사탕 업그레이드 알림", + "passivesOnly": "패시브만", + "candyUpgradeDisplay": "사탕 업그레이드 표시", + "icon": "아이콘", + "animation": "애니메이션", + "moveInfo": "기술 정보", + "showMovesetFlyout": "상대 기술 보기", + "showArenaFlyout": "배틀 효과 보기", + "showTimeOfDayWidget": "시간 위젯", + "timeOfDayAnimation": "시간 애니메이션", + "bounce": "바운스", + "back": "백", + "spriteSet": "스프라이트", + "consistent": "기본", + "mixedAnimated": "믹스", + "fusionPaletteSwaps": "융합 팔레트 스왑", + "playerGender": "플레이어 성별", + "typeHints": "타입 힌트", + "masterVolume": "마스터 볼륨", + "bgmVolume": "BGM 볼륨", + "seVolume": "SE 볼륨", + "musicPreference": "음악 설정", + "mixed": "믹스", + "gamepadPleasePlug": "게임패드를 연결하거나 버튼을 입력하세요", + "delete": "삭제", + "keyboardPleasePress": "키보드의 키를 입력하세요", + "reset": "리셋", + "requireReload": "새로고침 필요", + "action": "액션", + "pressToBind": "할당을 위해 입력하세요", + "pressButton": "버튼을 입력하세요", + "buttonUp": "위", + "buttonDown": "아래", + "altButtonUp": "위 (대체)", + "buttonLeft": "왼쪽", + "buttonRight": "오른쪽", + "buttonAction": "액션", + "buttonMenu": "메뉴", + "buttonSubmit": "확인", + "altButtonDown": "아래 (대체)", + "altButtonLeft": "왼쪽 (대체)", + "altButtonRight": "오른쪽 (대체)", + "altButtonAction": "액션 (대체)", + "buttonCancel": "취소", + "altButtonCancel": "취소 (대체)", + "altButtonMenu": "메뉴 (대체)", + "buttonStats": "스탯", + "altButtonStats": "스탯 (대체)", + "buttonCycleForm": "폼 변환", + "altButtonCycleForm": "폼 변환 (대체)", + "buttonCycleShiny": "특별한 색 변환", + "altButtonCycleShiny": "특별한 색 변환 (대체)", + "buttonCycleGender": "성별 변환", + "altButtonCycleGender": "성별 변환 (대체)", + "buttonCycleAbility": "특성 변환", + "altButtonCycleAbility": "특성 변환 (대체)", + "buttonCycleNature": "성격 변환", + "altButtonCycleNature": "성격 변환 (대체)", + "buttonCycleVariant": "색상 변환", + "altButtonCycleVariant": "색상 변환 (대체)", + "buttonSpeedUp": "속도 올리기", + "altButtonSpeedUp": "속도 올리기 (대체)", + "buttonSlowDown": "속도 내리기", + "altButtonSlowDown": "속도 내리기 (대체)", + "altButtonSubmit": "확인 (대체)", } as const; diff --git a/src/locales/pt_BR/menu.ts b/src/locales/pt_BR/menu.ts index 1743154c0d02..9f5c51629255 100644 --- a/src/locales/pt_BR/menu.ts +++ b/src/locales/pt_BR/menu.ts @@ -54,5 +54,109 @@ export const menu: SimpleTranslationEntries = { "yes": "Sim", "no": "Não", "disclaimer": "AVISO", - "disclaimerDescription": "Este jogo é um produto inacabado; ele pode ter problemas de jogabilidade (incluindo possíveis perdas de dados salvos),\n sofrer alterações sem aviso prévio e pode ou não ser atualizado ou concluído." + "disclaimerDescription": "Este jogo é um produto inacabado; ele pode ter problemas de jogabilidade (incluindo possíveis perdas de dados salvos),\n sofrer alterações sem aviso prévio e pode ou não ser atualizado ou concluído.", + "general": "General", + "display": "Display", + "audio": "Audio", + "gamepad": "Gamepad", + "keyboard": "Keyboard", + "gameSpeed": "Game Speed", + "hpBarSpeed": "HP Bar Speed", + "expGainsSpeed": "EXP Gains Speed", + "expPartyDisplay": "Show EXP Party", + "skipSeenDialogues": "Skip Seen Dialogues", + "battleStyle": "Battle Style", + "enableRetries": "Enable Retries", + "tutorials": "Tutorials", + "touchControls": "Touch Controls", + "vibrations": "Vibrations", + "normal": "Normal", + "fast": "Fast", + "faster": "Faster", + "skip": "Skip", + "levelUpNotifications": "Level Up Notifications", + "on": "On", + "off": "Off", + "switch": "Switch", + "set": "Set", + "auto": "Auto", + "disabled": "Disabled", + "language": "Language", + "change": "Change", + "uiTheme": "UI Theme", + "default": "Default", + "legacy": "Legacy", + "windowType": "Window Type", + "moneyFormat": "Money Format", + "damageNumbers": "Damage Numbers", + "simple": "Simple", + "fancy": "Fancy", + "abbreviated": "Abbreviated", + "moveAnimations": "Move Animations", + "showStatsOnLevelUp": "Show Stats on Level Up", + "candyUpgradeNotification": "Candy Upgrade Notification", + "passivesOnly": "Passives Only", + "candyUpgradeDisplay": "Candy Upgrade Display", + "icon": "Icon", + "animation": "Animation", + "moveInfo": "Move Info", + "showMovesetFlyout": "Show Moveset Flyout", + "showArenaFlyout": "Show Arena Flyout", + "showTimeOfDayWidget": "Show Time of Day Widget", + "timeOfDayAnimation": "Time of Day Animation", + "bounce": "Bounce", + "back": "Back", + "spriteSet": "Sprite Set", + "consistent": "Consistent", + "mixedAnimated": "Mixed Animated", + "fusionPaletteSwaps": "Fusion Palette Swaps", + "playerGender": "Player Gender", + "typeHints": "Type Hints", + "masterVolume": "Master Volume", + "bgmVolume": "BGM Volume", + "seVolume": "SE Volume", + "musicPreference": "Music Preference", + "mixed": "Mixed", + "gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button", + "delete": "Delete", + "keyboardPleasePress": "Please Press a Key on Your Keyboard", + "reset": "Reset", + "requireReload": "Reload Required", + "action": "Action", + "pressToBind": "Press to Bind", + "pressButton": "Press a Button...", + "buttonUp": "Up", + "buttonDown": "Down", + "altButtonUp": "Up (Alt)", + "buttonLeft": "Left", + "buttonRight": "Right", + "buttonAction": "Action", + "buttonMenu": "Menu", + "buttonSubmit": "Submit", + "altButtonDown": "Down (Alt)", + "altButtonLeft": "Left (Alt)", + "altButtonRight": "Right (Alt)", + "altButtonAction": "Action (Alt)", + "buttonCancel": "Cancel", + "altButtonCancel": "Cancel (Alt)", + "altButtonMenu": "Menu (Alt)", + "buttonStats": "Stats", + "altButtonStats": "Stats (Alt)", + "buttonCycleForm": "Cycle Form", + "altButtonCycleForm": "Cycle Form (Alt)", + "buttonCycleShiny": "Cycle Shiny", + "altButtonCycleShiny": "Cycle Shiny (Alt)", + "buttonCycleGender": "Cycle Gender", + "altButtonCycleGender": "Cycle Gender (Alt)", + "buttonCycleAbility": "Cycle Ability", + "altButtonCycleAbility": "Cycle Ability (Alt)", + "buttonCycleNature": "Cycle Nature", + "altButtonCycleNature": "Cycle Nature (Alt)", + "buttonCycleVariant": "Cycle Variant", + "altButtonCycleVariant": "Cycle Variant (Alt)", + "buttonSpeedUp": "Speed Up", + "altButtonSpeedUp": "Speed Up (Alt)", + "buttonSlowDown": "Slow Down", + "altButtonSlowDown": "Slow Down (Alt)", + "altButtonSubmit": "Submit (Alt)" } as const; diff --git a/src/locales/zh_CN/menu.ts b/src/locales/zh_CN/menu.ts index 4dd2a4cbe33e..9a4d6e0b405a 100644 --- a/src/locales/zh_CN/menu.ts +++ b/src/locales/zh_CN/menu.ts @@ -54,5 +54,109 @@ export const menu: SimpleTranslationEntries = { "yes": "是", "no": "否", "disclaimer": "DISCLAIMER", - "disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed." + "disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed.", + "general": "General", + "display": "Display", + "audio": "Audio", + "gamepad": "Gamepad", + "keyboard": "Keyboard", + "gameSpeed": "Game Speed", + "hpBarSpeed": "HP Bar Speed", + "expGainsSpeed": "EXP Gains Speed", + "expPartyDisplay": "Show EXP Party", + "skipSeenDialogues": "Skip Seen Dialogues", + "battleStyle": "Battle Style", + "enableRetries": "Enable Retries", + "tutorials": "Tutorials", + "touchControls": "Touch Controls", + "vibrations": "Vibrations", + "normal": "Normal", + "fast": "Fast", + "faster": "Faster", + "skip": "Skip", + "levelUpNotifications": "Level Up Notifications", + "on": "On", + "off": "Off", + "switch": "Switch", + "set": "Set", + "auto": "Auto", + "disabled": "Disabled", + "language": "Language", + "change": "Change", + "uiTheme": "UI Theme", + "default": "Default", + "legacy": "Legacy", + "windowType": "Window Type", + "moneyFormat": "Money Format", + "damageNumbers": "Damage Numbers", + "simple": "Simple", + "fancy": "Fancy", + "abbreviated": "Abbreviated", + "moveAnimations": "Move Animations", + "showStatsOnLevelUp": "Show Stats on Level Up", + "candyUpgradeNotification": "Candy Upgrade Notification", + "passivesOnly": "Passives Only", + "candyUpgradeDisplay": "Candy Upgrade Display", + "icon": "Icon", + "animation": "Animation", + "moveInfo": "Move Info", + "showMovesetFlyout": "Show Moveset Flyout", + "showArenaFlyout": "Show Arena Flyout", + "showTimeOfDayWidget": "Show Time of Day Widget", + "timeOfDayAnimation": "Time of Day Animation", + "bounce": "Bounce", + "back": "Back", + "spriteSet": "Sprite Set", + "consistent": "Consistent", + "mixedAnimated": "Mixed Animated", + "fusionPaletteSwaps": "Fusion Palette Swaps", + "playerGender": "Player Gender", + "typeHints": "Type Hints", + "masterVolume": "Master Volume", + "bgmVolume": "BGM Volume", + "seVolume": "SE Volume", + "musicPreference": "Music Preference", + "mixed": "Mixed", + "gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button", + "delete": "Delete", + "keyboardPleasePress": "Please Press a Key on Your Keyboard", + "reset": "Reset", + "requireReload": "Reload Required", + "action": "Action", + "pressToBind": "Press to Bind", + "pressButton": "Press a Button...", + "buttonUp": "Up", + "buttonDown": "Down", + "altButtonUp": "Up (Alt)", + "buttonLeft": "Left", + "buttonRight": "Right", + "buttonAction": "Action", + "buttonMenu": "Menu", + "buttonSubmit": "Submit", + "altButtonDown": "Down (Alt)", + "altButtonLeft": "Left (Alt)", + "altButtonRight": "Right (Alt)", + "altButtonAction": "Action (Alt)", + "buttonCancel": "Cancel", + "altButtonCancel": "Cancel (Alt)", + "altButtonMenu": "Menu (Alt)", + "buttonStats": "Stats", + "altButtonStats": "Stats (Alt)", + "buttonCycleForm": "Cycle Form", + "altButtonCycleForm": "Cycle Form (Alt)", + "buttonCycleShiny": "Cycle Shiny", + "altButtonCycleShiny": "Cycle Shiny (Alt)", + "buttonCycleGender": "Cycle Gender", + "altButtonCycleGender": "Cycle Gender (Alt)", + "buttonCycleAbility": "Cycle Ability", + "altButtonCycleAbility": "Cycle Ability (Alt)", + "buttonCycleNature": "Cycle Nature", + "altButtonCycleNature": "Cycle Nature (Alt)", + "buttonCycleVariant": "Cycle Variant", + "altButtonCycleVariant": "Cycle Variant (Alt)", + "buttonSpeedUp": "Speed Up", + "altButtonSpeedUp": "Speed Up (Alt)", + "buttonSlowDown": "Slow Down", + "altButtonSlowDown": "Slow Down (Alt)", + "altButtonSubmit": "Submit (Alt)" } as const; diff --git a/src/locales/zh_TW/menu.ts b/src/locales/zh_TW/menu.ts index a967c0d8c164..96ead1b937d0 100644 --- a/src/locales/zh_TW/menu.ts +++ b/src/locales/zh_TW/menu.ts @@ -54,5 +54,109 @@ export const menu: SimpleTranslationEntries = { "yes":"是", "no":"否", "disclaimer": "DISCLAIMER", - "disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed." + "disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed.", + "general": "General", + "display": "Display", + "audio": "Audio", + "gamepad": "Gamepad", + "keyboard": "Keyboard", + "gameSpeed": "Game Speed", + "hpBarSpeed": "HP Bar Speed", + "expGainsSpeed": "EXP Gains Speed", + "expPartyDisplay": "Show EXP Party", + "skipSeenDialogues": "Skip Seen Dialogues", + "battleStyle": "Battle Style", + "enableRetries": "Enable Retries", + "tutorials": "Tutorials", + "touchControls": "Touch Controls", + "vibrations": "Vibrations", + "normal": "Normal", + "fast": "Fast", + "faster": "Faster", + "skip": "Skip", + "levelUpNotifications": "Level Up Notifications", + "on": "On", + "off": "Off", + "switch": "Switch", + "set": "Set", + "auto": "Auto", + "disabled": "Disabled", + "language": "Language", + "change": "Change", + "uiTheme": "UI Theme", + "default": "Default", + "legacy": "Legacy", + "windowType": "Window Type", + "moneyFormat": "Money Format", + "damageNumbers": "Damage Numbers", + "simple": "Simple", + "fancy": "Fancy", + "abbreviated": "Abbreviated", + "moveAnimations": "Move Animations", + "showStatsOnLevelUp": "Show Stats on Level Up", + "candyUpgradeNotification": "Candy Upgrade Notification", + "passivesOnly": "Passives Only", + "candyUpgradeDisplay": "Candy Upgrade Display", + "icon": "Icon", + "animation": "Animation", + "moveInfo": "Move Info", + "showMovesetFlyout": "Show Moveset Flyout", + "showArenaFlyout": "Show Arena Flyout", + "showTimeOfDayWidget": "Show Time of Day Widget", + "timeOfDayAnimation": "Time of Day Animation", + "bounce": "Bounce", + "back": "Back", + "spriteSet": "Sprite Set", + "consistent": "Consistent", + "mixedAnimated": "Mixed Animated", + "fusionPaletteSwaps": "Fusion Palette Swaps", + "playerGender": "Player Gender", + "typeHints": "Type Hints", + "masterVolume": "Master Volume", + "bgmVolume": "BGM Volume", + "seVolume": "SE Volume", + "musicPreference": "Music Preference", + "mixed": "Mixed", + "gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button", + "delete": "Delete", + "keyboardPleasePress": "Please Press a Key on Your Keyboard", + "reset": "Reset", + "requireReload": "Reload Required", + "action": "Action", + "pressToBind": "Press to Bind", + "pressButton": "Press a Button...", + "buttonUp": "Up", + "buttonDown": "Down", + "altButtonUp": "Up (Alt)", + "buttonLeft": "Left", + "buttonRight": "Right", + "buttonAction": "Action", + "buttonMenu": "Menu", + "buttonSubmit": "Submit", + "altButtonDown": "Down (Alt)", + "altButtonLeft": "Left (Alt)", + "altButtonRight": "Right (Alt)", + "altButtonAction": "Action (Alt)", + "buttonCancel": "Cancel", + "altButtonCancel": "Cancel (Alt)", + "altButtonMenu": "Menu (Alt)", + "buttonStats": "Stats", + "altButtonStats": "Stats (Alt)", + "buttonCycleForm": "Cycle Form", + "altButtonCycleForm": "Cycle Form (Alt)", + "buttonCycleShiny": "Cycle Shiny", + "altButtonCycleShiny": "Cycle Shiny (Alt)", + "buttonCycleGender": "Cycle Gender", + "altButtonCycleGender": "Cycle Gender (Alt)", + "buttonCycleAbility": "Cycle Ability", + "altButtonCycleAbility": "Cycle Ability (Alt)", + "buttonCycleNature": "Cycle Nature", + "altButtonCycleNature": "Cycle Nature (Alt)", + "buttonCycleVariant": "Cycle Variant", + "altButtonCycleVariant": "Cycle Variant (Alt)", + "buttonSpeedUp": "Speed Up", + "altButtonSpeedUp": "Speed Up (Alt)", + "buttonSlowDown": "Slow Down", + "altButtonSlowDown": "Slow Down (Alt)", + "altButtonSubmit": "Submit (Alt)" } as const; diff --git a/src/system/settings/settings-keyboard.ts b/src/system/settings/settings-keyboard.ts index 662c718ddcc6..4b72d01a594e 100644 --- a/src/system/settings/settings-keyboard.ts +++ b/src/system/settings/settings-keyboard.ts @@ -2,6 +2,7 @@ import {Button} from "#enums/buttons"; import BattleScene from "#app/battle-scene"; import {Mode} from "#app/ui/ui"; import SettingsKeyboardUiHandler from "#app/ui/settings/settings-keyboard-ui-handler"; +import i18next from "i18next"; export enum SettingKeyboard { // Default_Layout = "DEFAULT_LAYOUT", @@ -41,7 +42,7 @@ export enum SettingKeyboard { Alt_Button_Submit = "ALT_BUTTON_SUBMIT", } -const pressAction = "Press action to assign"; +const pressAction = i18next.t("menu:pressToBind"); export const settingKeyboardOptions = { // [SettingKeyboard.Default_Layout]: ['Default'], diff --git a/src/system/settings/settings.ts b/src/system/settings/settings.ts index b929e8ad1e83..373a2606bc1b 100644 --- a/src/system/settings/settings.ts +++ b/src/system/settings/settings.ts @@ -9,10 +9,33 @@ import { EaseType } from "#enums/ease-type"; import { MoneyFormat } from "#enums/money-format"; import { PlayerGender } from "#enums/player-gender"; -const MUTE = "Mute"; -const VOLUME_OPTIONS = new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : MUTE); -const OFF_ON = ["Off", "On"]; -const AUTO_DISABLED = ["Auto", "Disabled"]; +const VOLUME_OPTIONS: SettingOption[] = new Array(11).fill(null).map((_, i) => i ? { + value: (i * 10).toString(), + label: (i * 10).toString(), +} : { + value: "Mute", + label: i18next.t("menu:mute") +}); +const OFF_ON: SettingOption[] = [ + { + value: "Off", + label: i18next.t("menu:off") + }, + { + value: "On", + label: i18next.t("menu:on") + } +]; +const AUTO_DISABLED: SettingOption[] = [ + { + value: "Auto", + label: i18next.t("menu:auto") + }, + { + value: "Disabled", + label: i18next.t("menu:disabled") + } +]; /** * Types for helping separate settings to different menus @@ -23,10 +46,15 @@ export enum SettingType { AUDIO } +type SettingOption = { + value: string, + label: string +}; + export interface Setting { key: string label: string - options: Array + options: SettingOption[] default: number type: SettingType requireReload?: boolean @@ -77,164 +105,321 @@ export const SettingKeys = { export const Setting: Array = [ { key: SettingKeys.Game_Speed, - label: "Game Speed", - options: ["1x", "1.25x", "1.5x", "2x", "2.5x", "3x", "4x", "5x"], + label: i18next.t("menu:gameSpeed"), + options: [ + { + value: "1", + label: "1x" + }, + { + value: "1.25", + label: "1.25x" + }, + { + value: "1.5", + label: "1.5x" + }, + { + value: "2", + label: "2x" + }, + { + value: "2.5", + label: "2.5x" + }, + { + value: "3", + label: "3x" + }, + { + value: "4", + label: "4x" + }, + { + value: "5", + label: "5x" + } + ], default: 3, type: SettingType.GENERAL }, { key: SettingKeys.HP_Bar_Speed, - label: "HP Bar Speed", - options: ["Normal", "Fast", "Faster", "Skip"], + label: i18next.t("menu:hpBarSpeed"), + options: [ + { + value: "Normal", + label: i18next.t("menu:normal") + }, + { + value: "Fast", + label: i18next.t("menu:fast") + }, + { + value: "Faster", + label: i18next.t("menu:faster") + }, + { + value: "Skip", + label: i18next.t("menu:skip") + } + ], default: 0, type: SettingType.GENERAL }, { key: SettingKeys.EXP_Gains_Speed, - label: "EXP Gains Speed", - options: ["Normal", "Fast", "Faster", "Skip"], + label: i18next.t("menu:expGainsSpeed"), + options: [ + { + value: "Normal", + label: i18next.t("menu:normal") + }, + { + value: "Fast", + label: i18next.t("menu:fast") + }, + { + value: "Faster", + label: i18next.t("menu:faster") + }, + { + value: "Skip", + label: i18next.t("menu:skip") + } + ], default: 0, type: SettingType.GENERAL }, { key: SettingKeys.EXP_Party_Display, - label: "EXP Party Display", - options: ["Normal", "Level Up Notification", "Skip"], + label: i18next.t("menu:expPartyDisplay"), + options: [ + { + value: "Normal", + label: i18next.t("menu:normal") + }, + { + value: "Level Up Notification", + label: i18next.t("menu:levelUpNotifications") + }, + { + value: "Skip", + label: i18next.t("menu:skip") + } + ], default: 0, type: SettingType.GENERAL }, { key: SettingKeys.Skip_Seen_Dialogues, - label: "Skip Seen Dialogues", + label: i18next.t("menu:skipSeenDialogues"), options: OFF_ON, default: 0, type: SettingType.GENERAL }, { key: SettingKeys.Battle_Style, - label: "Battle Style", - options: ["Switch", "Set"], + label: i18next.t("menu:battleStyle"), + options: [ + { + value: "Switch", + label: i18next.t("menu:switch") + }, + { + value: "Set", + label: i18next.t("menu:set") + } + ], default: 0, type: SettingType.GENERAL }, { key: SettingKeys.Enable_Retries, - label: "Enable Retries", + label: i18next.t("menu:enableRetries"), options: OFF_ON, default: 0, type: SettingType.GENERAL }, { key: SettingKeys.Tutorials, - label: "Tutorials", + label: i18next.t("menu:tutorials"), options: OFF_ON, default: 1, type: SettingType.GENERAL }, { key: SettingKeys.Touch_Controls, - label: "Touch Controls", + label: i18next.t("menu:touchControls"), options: AUTO_DISABLED, default: 0, type: SettingType.GENERAL }, { key: SettingKeys.Vibration, - label: "Vibration", + label: i18next.t("menu:vibrations"), options: AUTO_DISABLED, default: 0, type: SettingType.GENERAL }, { key: SettingKeys.Language, - label: "Language", - options: ["English", "Change"], + label: i18next.t("menu:language"), + options: [ + { + value: "English", + label: "English" + }, + { + value: "Change", + label: i18next.t("menu:change") + } + ], default: 0, type: SettingType.DISPLAY, requireReload: true }, { key: SettingKeys.UI_Theme, - label: "UI Theme", - options: ["Default", "Legacy"], + label: i18next.t("menu:uiTheme"), + options: [ + { + value: "Default", + label: i18next.t("menu:default") + }, + { + value: "Legacy", + label: i18next.t("menu:legacy") + } + ], default: 0, type: SettingType.DISPLAY, requireReload: true }, { key: SettingKeys.Window_Type, - label: "Window Type", - options: new Array(5).fill(null).map((_, i) => (i + 1).toString()), + label: i18next.t("menu:windowType"), + options: new Array(5).fill(null).map((_, i) => { + const windowType = (i + 1).toString(); + return { + value: windowType, + label: windowType + }; + }), default: 0, type: SettingType.DISPLAY }, { key: SettingKeys.Money_Format, - label: "Money Format", - options: ["Normal", "Abbreviated"], + label: i18next.t("menu:moneyFormat"), + options: [ + { + value: "Normal", + label: i18next.t("menu:normal") + }, + { + value: "Abbreviated", + label: i18next.t("menu:abbreviated") + } + ], default: 0, type: SettingType.DISPLAY }, { key: SettingKeys.Damage_Numbers, - label: "Damage Numbers", - options: ["Off", "Simple", "Fancy"], + label: i18next.t("menu:damageNumbers"), + options: [ + { + value: "Off", + label: i18next.t("menu:off") + }, + { + value: "Simple", + label: i18next.t("menu:simple") + }, + { + value: "Fancy", + label: i18next.t("menu:fancy") + } + ], default: 0, type: SettingType.DISPLAY }, { key: SettingKeys.Move_Animations, - label: "Move Animations", + label: i18next.t("menu:moveAnimations"), options: OFF_ON, default: 1, type: SettingType.DISPLAY }, { key: SettingKeys.Show_Stats_on_Level_Up, - label: "Show Stats on Level Up", + label: i18next.t("menu:showStatsOnLevelUp"), options: OFF_ON, default: 1, type: SettingType.DISPLAY }, { key: SettingKeys.Candy_Upgrade_Notification, - label: "Candy Upgrade Notification", - options: ["Off", "Passives Only", "On"], + label: i18next.t("menu:candyUpgradeNotification"), + options: [ + { + value: "Off", + label: i18next.t("menu:off") + }, + { + value: "Passives Only", + label: i18next.t("menu:passivesOnly") + }, + { + value: "On", + label: i18next.t("menu:on") + } + ], default: 0, type: SettingType.DISPLAY }, { key: SettingKeys.Candy_Upgrade_Display, - label: "Candy Upgrade Display", - options: ["Icon", "Animation"], + label: i18next.t("menu:candyUpgradeDisplay"), + options: [ + { + value: "Icon", + label: i18next.t("menu:icon") + }, + { + value: "Animation", + label: i18next.t("menu:animation") + } + ], default: 0, type: SettingType.DISPLAY, requireReload: true }, { key: SettingKeys.Move_Info, - label: "Move Info", + label: i18next.t("menu:moveInfo"), options: OFF_ON, default: 1, type: SettingType.DISPLAY }, { key: SettingKeys.Show_Moveset_Flyout, - label: "Show Moveset Flyout", + label: i18next.t("menu:showMovesetFlyout"), options: OFF_ON, default: 1, type: SettingType.DISPLAY }, { key: SettingKeys.Show_Arena_Flyout, - label: "Show Battle Effects Flyout", + label: i18next.t("menu:showArenaFlyout"), options: OFF_ON, default: 1, type: SettingType.DISPLAY }, { key: SettingKeys.Show_Time_Of_Day_Widget, - label: "Show Time of Day Widget", + label: i18next.t("menu:showTimeOfDayWidget"), options: OFF_ON, default: 1, type: SettingType.DISPLAY, @@ -242,65 +427,101 @@ export const Setting: Array = [ }, { key: SettingKeys.Time_Of_Day_Animation, - label: "Time of Day Animation", - options: ["Bounce", "Back"], + label: i18next.t("menu:timeOfDayAnimation"), + options: [ + { + value: "Bounce", + label: i18next.t("menu:bounce") + }, + { + value: "Back", + label: i18next.t("menu:back") + } + ], default: 0, type: SettingType.DISPLAY }, { key: SettingKeys.Sprite_Set, - label: "Sprite Set", - options: ["Consistent", "Mixed Animated"], + label: i18next.t("menu:spriteSet"), + options: [ + { + value: "Consistent", + label: i18next.t("menu:consistent") + }, + { + value: "Mixed Animated", + label: i18next.t("menu:mixedAnimated") + } + ], default: 0, type: SettingType.DISPLAY, requireReload: true }, { key: SettingKeys.Fusion_Palette_Swaps, - label: "Fusion Palette Swaps", + label: i18next.t("menu:fusionPaletteSwaps"), options: OFF_ON, default: 1, type: SettingType.DISPLAY }, { key: SettingKeys.Player_Gender, - label: "Player Gender", - options: ["Boy", "Girl"], + label: i18next.t("menu:playerGender"), + options: [ + { + value: "Boy", + label: i18next.t("menu:boy") + }, + { + value: "Girl", + label: i18next.t("menu:girl") + } + ], default: 0, type: SettingType.DISPLAY }, { key: SettingKeys.Type_Hints, - label: "Type hints", + label: i18next.t("menu:typeHints"), options: OFF_ON, default: 0, type: SettingType.DISPLAY }, { key: SettingKeys.Master_Volume, - label: "Master Volume", + label: i18next.t("menu:masterVolume"), options: VOLUME_OPTIONS, default: 5, type: SettingType.AUDIO }, { key: SettingKeys.BGM_Volume, - label: "BGM Volume", + label: i18next.t("menu:bgmVolume"), options: VOLUME_OPTIONS, default: 10, type: SettingType.AUDIO }, { key: SettingKeys.SE_Volume, - label: "SE Volume", + label: i18next.t("menu:seVolume"), options: VOLUME_OPTIONS, default: 10, type: SettingType.AUDIO }, { key: SettingKeys.Music_Preference, - label: "Music Preference", - options: ["Consistent", "Mixed"], + label: i18next.t("menu:musicPreference"), + options: [ + { + value: "Consistent", + label: i18next.t("menu:consistent") + }, + { + value: "Mixed", + label: i18next.t("menu:mixed") + } + ], default: 0, type: SettingType.AUDIO, requireReload: true @@ -333,23 +554,23 @@ export function resetSettings(scene: BattleScene) { */ export function setSetting(scene: BattleScene, setting: string, value: integer): boolean { const index: number = settingIndex(setting); - if ( index === -1) { + if (index === -1) { return false; } switch (Setting[index].key) { case SettingKeys.Game_Speed: - scene.gameSpeed = parseFloat(Setting[index].options[value].replace("x", "")); + scene.gameSpeed = parseFloat(Setting[index].options[value].value.replace("x", "")); break; case SettingKeys.Master_Volume: - scene.masterVolume = value ? parseInt(Setting[index].options[value]) * 0.01 : 0; + scene.masterVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; scene.updateSoundVolume(); break; case SettingKeys.BGM_Volume: - scene.bgmVolume = value ? parseInt(Setting[index].options[value]) * 0.01 : 0; + scene.bgmVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; scene.updateSoundVolume(); break; case SettingKeys.SE_Volume: - scene.seVolume = value ? parseInt(Setting[index].options[value]) * 0.01 : 0; + scene.seVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; scene.updateSoundVolume(); break; case SettingKeys.Music_Preference: @@ -362,19 +583,19 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): scene.uiTheme = value; break; case SettingKeys.Window_Type: - updateWindowType(scene, parseInt(Setting[index].options[value])); + updateWindowType(scene, parseInt(Setting[index].options[value].value)); break; case SettingKeys.Tutorials: - scene.enableTutorials = Setting[index].options[value] === "On"; + scene.enableTutorials = Setting[index].options[value].value === "On"; break; case SettingKeys.Move_Info: - scene.enableMoveInfo = Setting[index].options[value] === "On"; + scene.enableMoveInfo = Setting[index].options[value].value === "On"; break; case SettingKeys.Enable_Retries: - scene.enableRetries = Setting[index].options[value] === "On"; + scene.enableRetries = Setting[index].options[value].value === "On"; break; case SettingKeys.Skip_Seen_Dialogues: - scene.skipSeenDialogues = Setting[index].options[value] === "On"; + scene.skipSeenDialogues = Setting[index].options[value].value === "On"; break; case SettingKeys.Battle_Style: scene.battleStyle = value; @@ -390,7 +611,7 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): case SettingKeys.Candy_Upgrade_Display: scene.candyUpgradeDisplay = value; case SettingKeys.Money_Format: - switch (Setting[index].options[value]) { + switch (Setting[index].options[value].value) { case "Normal": scene.moneyFormat = MoneyFormat.NORMAL; break; @@ -407,22 +628,22 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): } break; case SettingKeys.Move_Animations: - scene.moveAnimations = Setting[index].options[value] === "On"; + scene.moveAnimations = Setting[index].options[value].value === "On"; break; case SettingKeys.Show_Moveset_Flyout: - scene.showMovesetFlyout = Setting[index].options[value] === "On"; + scene.showMovesetFlyout = Setting[index].options[value].value === "On"; break; case SettingKeys.Show_Arena_Flyout: - scene.showArenaFlyout = Setting[index].options[value] === "On"; + scene.showArenaFlyout = Setting[index].options[value].value === "On"; break; case SettingKeys.Show_Time_Of_Day_Widget: - scene.showTimeOfDayWidget = Setting[index].options[value] === "On"; + scene.showTimeOfDayWidget = Setting[index].options[value].value === "On"; break; case SettingKeys.Time_Of_Day_Animation: - scene.timeOfDayAnimation = Setting[index].options[value] === "Bounce" ? EaseType.BOUNCE : EaseType.BACK; + scene.timeOfDayAnimation = Setting[index].options[value].value === "Bounce" ? EaseType.BOUNCE : EaseType.BACK; break; case SettingKeys.Show_Stats_on_Level_Up: - scene.showLevelUpStats = Setting[index].options[value] === "On"; + scene.showLevelUpStats = Setting[index].options[value].value === "On"; break; case SettingKeys.EXP_Gains_Speed: scene.expGainsSpeed = value; @@ -438,7 +659,7 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): break; case SettingKeys.Player_Gender: if (scene.gameData) { - const female = Setting[index].options[value] === "Girl"; + const female = Setting[index].options[value].value === "Girl"; scene.gameData.gender = female ? PlayerGender.FEMALE : PlayerGender.MALE; scene.trainer.setTexture(scene.trainer.texture.key.replace(female ? "m" : "f", female ? "f" : "m")); } else { @@ -446,17 +667,17 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): } break; case SettingKeys.Touch_Controls: - scene.enableTouchControls = Setting[index].options[value] !== "Disabled" && hasTouchscreen(); + scene.enableTouchControls = Setting[index].options[value].value !== "Disabled" && hasTouchscreen(); const touchControls = document.getElementById("touchControls"); if (touchControls) { touchControls.classList.toggle("visible", scene.enableTouchControls); } break; case SettingKeys.Vibration: - scene.enableVibration = Setting[index].options[value] !== "Disabled" && hasTouchscreen(); + scene.enableVibration = Setting[index].options[value].value !== "Disabled" && hasTouchscreen(); break; case SettingKeys.Type_Hints: - scene.typeHints = Setting[index].options[value] === "On"; + scene.typeHints = Setting[index].options[value].value === "On"; break; case SettingKeys.Language: if (value) { @@ -517,7 +738,7 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): handler: () => changeLocaleHandler("ko") }, { - label: "Cancel", + label: i18next.t("menu:back"), handler: () => cancelHandler() } ], diff --git a/src/ui-inputs.ts b/src/ui-inputs.ts index 00c88504ef1d..33752a7ff5dd 100644 --- a/src/ui-inputs.ts +++ b/src/ui-inputs.ts @@ -190,12 +190,12 @@ export class UiInputs { buttonSpeedChange(up = true): void { const settingGameSpeed = settingIndex(SettingKeys.Game_Speed); if (up && this.scene.gameSpeed < 5) { - this.scene.gameData.saveSetting(SettingKeys.Game_Speed, Setting[settingGameSpeed].options.indexOf(`${this.scene.gameSpeed}x`) + 1); + this.scene.gameData.saveSetting(SettingKeys.Game_Speed, Setting[settingGameSpeed].options.findIndex((item) => item.value === `${this.scene.gameSpeed}x`) + 1); if (this.scene.ui?.getMode() === Mode.SETTINGS) { (this.scene.ui.getHandler() as SettingsUiHandler).show([]); } } else if (!up && this.scene.gameSpeed > 1) { - this.scene.gameData.saveSetting(SettingKeys.Game_Speed, Math.max(Setting[settingGameSpeed].options.indexOf(`${this.scene.gameSpeed}x`) - 1, 0)); + this.scene.gameData.saveSetting(SettingKeys.Game_Speed, Math.max(Setting[settingGameSpeed].options.findIndex((item) => item.value === `${this.scene.gameSpeed}x`) - 1, 0)); if (this.scene.ui?.getMode() === Mode.SETTINGS) { (this.scene.ui.getHandler() as SettingsUiHandler).show([]); } diff --git a/src/ui/settings/abstract-binding-ui-handler.ts b/src/ui/settings/abstract-binding-ui-handler.ts index 1cc59c130351..2f4a2aedb887 100644 --- a/src/ui/settings/abstract-binding-ui-handler.ts +++ b/src/ui/settings/abstract-binding-ui-handler.ts @@ -5,6 +5,7 @@ import {addWindow} from "../ui-theme"; import {addTextObject, TextStyle} from "../text"; import {Button} from "#enums/buttons"; import {NavigationManager} from "#app/ui/settings/navigationMenu"; +import i18next from "i18next"; /** * Abstract class for handling UI elements related to button bindings. @@ -78,7 +79,7 @@ export default abstract class AbstractBindingUiHandler extends UiHandler { this.actionsContainer.add(this.actionBg); // Text prompts and instructions for the user. - this.unlockText = addTextObject(this.scene, 0, 0, "Press a button...", TextStyle.WINDOW); + this.unlockText = addTextObject(this.scene, 0, 0, i18next.t("menu:pressButton"), TextStyle.WINDOW); this.unlockText.setOrigin(0, 0); this.unlockText.setPositionRelative(this.titleBg, 36, 4); this.optionSelectContainer.add(this.unlockText); @@ -92,7 +93,7 @@ export default abstract class AbstractBindingUiHandler extends UiHandler { this.optionSelectBg.setOrigin(0.5); this.optionSelectContainer.add(this.optionSelectBg); - this.cancelLabel = addTextObject(this.scene, 0, 0, "Cancel", TextStyle.SETTINGS_LABEL); + this.cancelLabel = addTextObject(this.scene, 0, 0, i18next.t("menu:back"), TextStyle.SETTINGS_LABEL); this.cancelLabel.setOrigin(0, 0.5); this.cancelLabel.setPositionRelative(this.actionBg, 10, this.actionBg.height / 2); this.actionsContainer.add(this.cancelLabel); diff --git a/src/ui/settings/abstract-control-settings-ui-handler.ts b/src/ui/settings/abstract-control-settings-ui-handler.ts index 4abc19f90877..3d467b2db6af 100644 --- a/src/ui/settings/abstract-control-settings-ui-handler.ts +++ b/src/ui/settings/abstract-control-settings-ui-handler.ts @@ -8,6 +8,7 @@ import {getIconWithSettingName} from "#app/configs/inputs/configHandler"; import NavigationMenu, {NavigationManager} from "#app/ui/settings/navigationMenu"; import { Device } from "#enums/devices"; import { Button } from "#enums/buttons"; +import i18next from "i18next"; export interface InputsIcons { [key: string]: Phaser.GameObjects.Sprite; @@ -83,6 +84,12 @@ export default abstract class AbstractControlSettingsUiHandler extends UiHandler return settings; } + private camelize(string: string): string { + return string.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) { + return index === 0 ? word.toLowerCase() : word.toUpperCase(); + }).replace(/\s+/g, ""); + } + /** * Setup UI elements. */ @@ -108,7 +115,7 @@ export default abstract class AbstractControlSettingsUiHandler extends UiHandler iconAction.setPositionRelative(this.actionsBg, this.navigationContainer.width - 32, 4); this.navigationIcons["BUTTON_ACTION"] = iconAction; - const actionText = addTextObject(this.scene, 0, 0, "Action", TextStyle.SETTINGS_LABEL); + const actionText = addTextObject(this.scene, 0, 0, i18next.t("menu:action"), TextStyle.SETTINGS_LABEL); actionText.setOrigin(0, 0.15); actionText.setPositionRelative(iconAction, -actionText.width/6-2, 0); @@ -117,7 +124,7 @@ export default abstract class AbstractControlSettingsUiHandler extends UiHandler iconCancel.setPositionRelative(this.actionsBg, this.navigationContainer.width - 100, 4); this.navigationIcons["BUTTON_CANCEL"] = iconCancel; - const cancelText = addTextObject(this.scene, 0, 0, "Cancel", TextStyle.SETTINGS_LABEL); + const cancelText = addTextObject(this.scene, 0, 0, i18next.t("menu:back"), TextStyle.SETTINGS_LABEL); cancelText.setOrigin(0, 0.15); cancelText.setPositionRelative(iconCancel, -cancelText.width/6-2, 0); @@ -126,7 +133,7 @@ export default abstract class AbstractControlSettingsUiHandler extends UiHandler iconReset.setPositionRelative(this.actionsBg, this.navigationContainer.width - 180, 4); this.navigationIcons["BUTTON_HOME"] = iconReset; - const resetText = addTextObject(this.scene, 0, 0, "Reset all", TextStyle.SETTINGS_LABEL); + const resetText = addTextObject(this.scene, 0, 0, i18next.t("menu:reset"), TextStyle.SETTINGS_LABEL); resetText.setOrigin(0, 0.15); resetText.setPositionRelative(iconReset, -resetText.width/6-2, 0); @@ -178,7 +185,7 @@ export default abstract class AbstractControlSettingsUiHandler extends UiHandler // Create and add a text object for the setting name to the scene. const isLock = this.settingBlacklisted.includes(this.setting[setting]); const labelStyle = isLock ? TextStyle.SETTINGS_LOCKED : TextStyle.SETTINGS_LABEL; - settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, settingName, labelStyle); + settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, i18next.t(`menu:${this.camelize(settingName)}`), labelStyle); settingLabels[s].setOrigin(0, 0); optionsContainer.add(settingLabels[s]); diff --git a/src/ui/settings/abstract-settings-ui-handler.ts b/src/ui/settings/abstract-settings-ui-handler.ts index dad797d43a5c..5521b8ade3ca 100644 --- a/src/ui/settings/abstract-settings-ui-handler.ts +++ b/src/ui/settings/abstract-settings-ui-handler.ts @@ -8,6 +8,7 @@ import {Button} from "#enums/buttons"; import {InputsIcons} from "#app/ui/settings/abstract-control-settings-ui-handler.js"; import NavigationMenu, {NavigationManager} from "#app/ui/settings/navigationMenu"; import { Setting, SettingKeys } from "#app/system/settings/settings"; +import i18next from "i18next"; /** @@ -71,7 +72,7 @@ export default class AbstractSettingsUiHandler extends UiHandler { iconAction.setPositionRelative(actionsBg, this.navigationContainer.width - 32, 4); this.navigationIcons["BUTTON_ACTION"] = iconAction; - const actionText = addTextObject(this.scene, 0, 0, "Action", TextStyle.SETTINGS_LABEL); + const actionText = addTextObject(this.scene, 0, 0, i18next.t("menu:action"), TextStyle.SETTINGS_LABEL); actionText.setOrigin(0, 0.15); actionText.setPositionRelative(iconAction, -actionText.width/6-2, 0); @@ -80,7 +81,7 @@ export default class AbstractSettingsUiHandler extends UiHandler { iconCancel.setPositionRelative(actionsBg, this.navigationContainer.width - 100, 4); this.navigationIcons["BUTTON_CANCEL"] = iconCancel; - const cancelText = addTextObject(this.scene, 0, 0, "Cancel", TextStyle.SETTINGS_LABEL); + const cancelText = addTextObject(this.scene, 0, 0, i18next.t("menu:back"), TextStyle.SETTINGS_LABEL); cancelText.setOrigin(0, 0.15); cancelText.setPositionRelative(iconCancel, -cancelText.width/6-2, 0); @@ -95,7 +96,7 @@ export default class AbstractSettingsUiHandler extends UiHandler { .forEach((setting, s) => { let settingName = setting.label; if (setting?.requireReload) { - settingName += " (Requires Reload)"; + settingName += ` (${i18next.t("menu:requireReload")})`; } this.settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, settingName, TextStyle.SETTINGS_LABEL); @@ -103,7 +104,7 @@ export default class AbstractSettingsUiHandler extends UiHandler { this.optionsContainer.add(this.settingLabels[s]); this.optionValueLabels.push(setting.options.map((option, o) => { - const valueLabel = addTextObject(this.scene, 0, 0, option, setting.default === o ? TextStyle.SETTINGS_SELECTED : TextStyle.WINDOW); + const valueLabel = addTextObject(this.scene, 0, 0, option.label, setting.default === o ? TextStyle.SETTINGS_SELECTED : TextStyle.WINDOW); valueLabel.setOrigin(0, 0); this.optionsContainer.add(valueLabel); diff --git a/src/ui/settings/navigationMenu.ts b/src/ui/settings/navigationMenu.ts index eb65ea95e0cc..3b6d61d8d097 100644 --- a/src/ui/settings/navigationMenu.ts +++ b/src/ui/settings/navigationMenu.ts @@ -4,6 +4,7 @@ import {InputsIcons} from "#app/ui/settings/abstract-control-settings-ui-handler import {addTextObject, setTextStyle, TextStyle} from "#app/ui/text"; import {addWindow} from "#app/ui/ui-theme"; import {Button} from "#enums/buttons"; +import i18next from "i18next"; const LEFT = "LEFT"; const RIGHT = "RIGHT"; @@ -32,7 +33,7 @@ export class NavigationManager { Mode.SETTINGS_GAMEPAD, Mode.SETTINGS_KEYBOARD, ]; - this.labels = ["General", "Display", "Audio", "Gamepad", "Keyboard"]; + this.labels = [i18next.t("menu:general"), i18next.t("menu:display"), i18next.t("menu:audio"), i18next.t("menu:gamepad"), i18next.t("menu:keyboard")]; } public reset() { diff --git a/src/ui/settings/settings-display-ui-handler.ts b/src/ui/settings/settings-display-ui-handler.ts index 0aed0689388a..a0c59efdc06b 100644 --- a/src/ui/settings/settings-display-ui-handler.ts +++ b/src/ui/settings/settings-display-ui-handler.ts @@ -25,34 +25,64 @@ export default class SettingsDisplayUiHandler extends AbstractSettingsUiHandler const currentLocale = localStorage.getItem("prLang"); switch (currentLocale) { case "en": - this.settings[languageIndex].options[0] = "English"; + this.settings[languageIndex].options[0] = { + value: "English", + label: "English", + }; break; case "es": - this.settings[languageIndex].options[0] = "Español"; + this.settings[languageIndex].options[0] = { + value: "Español", + label: "Español", + }; break; case "it": - this.settings[languageIndex].options[0] = "Italiano"; + this.settings[languageIndex].options[0] = { + value: "Italiano", + label: "Italiano", + }; break; case "fr": - this.settings[languageIndex].options[0] = "Français"; + this.settings[languageIndex].options[0] = { + value: "Français", + label: "Français", + }; break; case "de": - this.settings[languageIndex].options[0] = "Deutsch"; + this.settings[languageIndex].options[0] = { + value: "Deutsch", + label: "Deutsch", + }; break; case "pt-BR": - this.settings[languageIndex].options[0] = "Português (BR)"; + this.settings[languageIndex].options[0] = { + value: "Português (BR)", + label: "Português (BR)", + }; break; case "zh-CN": - this.settings[languageIndex].options[0] = "简体中文"; + this.settings[languageIndex].options[0] = { + value: "简体中文", + label: "简体中文", + }; break; case "zh-TW": - this.settings[languageIndex].options[0] = "繁體中文"; + this.settings[languageIndex].options[0] = { + value: "繁體中文", + label: "繁體中文", + }; break; case "ko": - this.settings[languageIndex].options[0] = "한국어"; + this.settings[languageIndex].options[0] = { + value: "한국어", + label: "한국어", + }; break; default: - this.settings[languageIndex].options[0] = "English"; + this.settings[languageIndex].options[0] = { + value: "English", + label: "English", + }; break; } } diff --git a/src/ui/settings/settings-gamepad-ui-handler.ts b/src/ui/settings/settings-gamepad-ui-handler.ts index 18ebde962f1a..3e55ee3aedc6 100644 --- a/src/ui/settings/settings-gamepad-ui-handler.ts +++ b/src/ui/settings/settings-gamepad-ui-handler.ts @@ -15,6 +15,7 @@ import {InterfaceConfig} from "#app/inputs-controller"; import AbstractControlSettingsUiHandler from "#app/ui/settings/abstract-control-settings-ui-handler.js"; import {Device} from "#enums/devices"; import {truncateString} from "#app/utils"; +import i18next from "i18next"; /** * Class representing the settings UI handler for gamepads. @@ -54,7 +55,7 @@ export default class SettingsGamepadUiHandler extends AbstractControlSettingsUiH this.layout["noGamepads"] = new Map(); const optionsContainer = this.scene.add.container(0, 0); optionsContainer.setVisible(false); // Initially hide the container as no gamepads are connected. - const label = addTextObject(this.scene, 8, 28, "Please plug a controller or press a button", TextStyle.SETTINGS_LABEL); + const label = addTextObject(this.scene, 8, 28, i18next.t("menu:gamepadPleasePlug"), TextStyle.SETTINGS_LABEL); label.setOrigin(0, 0); optionsContainer.add(label); this.settingsContainer.add(optionsContainer); diff --git a/src/ui/settings/settings-keyboard-ui-handler.ts b/src/ui/settings/settings-keyboard-ui-handler.ts index 7eb1e4f6c604..88b19909900a 100644 --- a/src/ui/settings/settings-keyboard-ui-handler.ts +++ b/src/ui/settings/settings-keyboard-ui-handler.ts @@ -15,6 +15,7 @@ import {addTextObject, TextStyle} from "#app/ui/text"; import {deleteBind} from "#app/configs/inputs/configHandler"; import {Device} from "#enums/devices"; import {NavigationManager} from "#app/ui/settings/navigationMenu"; +import i18next from "i18next"; /** * Class representing the settings UI handler for keyboards. @@ -58,7 +59,7 @@ export default class SettingsKeyboardUiHandler extends AbstractControlSettingsUi this.layout["noKeyboard"] = new Map(); const optionsContainer = this.scene.add.container(0, 0); optionsContainer.setVisible(false); // Initially hide the container as no gamepads are connected. - const label = addTextObject(this.scene, 8, 28, "Please press a key on your keyboard", TextStyle.SETTINGS_LABEL); + const label = addTextObject(this.scene, 8, 28, i18next.t("menu:keyboardPleasePress"), TextStyle.SETTINGS_LABEL); label.setOrigin(0, 0); optionsContainer.add(label); this.settingsContainer.add(optionsContainer); @@ -68,7 +69,7 @@ export default class SettingsKeyboardUiHandler extends AbstractControlSettingsUi iconDelete.setPositionRelative(this.actionsBg, this.navigationContainer.width - 260, 4); this.navigationIcons["BUTTON_DELETE"] = iconDelete; - const deleteText = addTextObject(this.scene, 0, 0, "Delete", TextStyle.SETTINGS_LABEL); + const deleteText = addTextObject(this.scene, 0, 0, i18next.t("menu:delete"), TextStyle.SETTINGS_LABEL); deleteText.setOrigin(0, 0.15); deleteText.setPositionRelative(iconDelete, -deleteText.width/6-2, 0); From 951d5416d42b39d40c909a86a29276fcb0ec7bbb Mon Sep 17 00:00:00 2001 From: sodam <66295123+sodaMelon@users.noreply.github.com> Date: Mon, 17 Jun 2024 22:58:39 +0900 Subject: [PATCH 3/6] [Localization(ko)] localized Sinnoh region named trainer (#2296) --- src/locales/ko/dialogue.ts | 100 ++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/src/locales/ko/dialogue.ts b/src/locales/ko/dialogue.ts index fc4530b94fab..2a13a8d32c54 100644 --- a/src/locales/ko/dialogue.ts +++ b/src/locales/ko/dialogue.ts @@ -860,19 +860,19 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "crasher_wake": { "encounter": { - 1: "Crash! Crash! Watch out!\nCrasher Wake…is…heeere!", - 2: "Crash! Crash! Crasher Wake!", - 3: "I'm the tidal wave of power to wash you away!" + 1: "철썩! 철썩! 조심해라!\n맥시멈 가면이…지금…간다!", + 2: "철썩! 철썩! 파도의 맥시멈 가면!", + 3: "밀물같은 힘으로 쓸려나가도록 해보실까!!" }, "victory": { - 1: "That puts a grin on my face!\nGuhahaha! That was a blast!", - 2: "Hunwah! It's gone and ended!\nHow will I say this…\nI want more! I wanted to battle a lot more!", - 3: "WHAAAAT!?" + 1: "저절로 웃음이 나오게 되는군!\n크하하핫! 정말 훌륭했다!", + 2: "우왓! 끝나버렸나!\n뭐랄까…\n좀 더 싸우고 싶은 기분이야!", + 3: "이럴수가!?" }, "defeat": { - 1: "Yeeeeah! That's right!", - 2: "I won, but I want more! I wanted to battle a lot more!", - 3: "So long!" + 1: "으하하핫! 보람차군!", + 2: "내가 이겼지만, 아쉽군! 좀 더 배틀하고 싶은데!", + 3: "잘 가게나!" } }, "falkner": { @@ -1164,19 +1164,19 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "candice": { "encounter": { - 1: `You want to challenge Candice? Sure thing! I was waiting for someone tough! - $But I should tell you, I'm tough because I know how to focus.`, - 2: `Pokémon, fashion, romance… It's all about focus! - $I'll show you just what I mean. Get ready to lose!` + 1: `나, 무청에게 도전하고 싶은거야? 좋아! 강한 사람을 기다리고 있었으니까! + $그치만 말해두는데, 집중하는 방법을 아는 나도 강력하거든.`, + 2: `포켓몬도 멋도 연애도 정신 집중이 중요하다고! + $무슨 뜻인지 보여줄테니까 각오해!` }, "victory": { - 1: "I must say, I'm warmed up to you! I might even admire you a little.", - 2: `Wow! You're great! You've earned my respect! - $I think your focus and will bowled us over totally. ` + 1: "있지, 나 조금 불타오르게 됐어! 널 조금 존경하게 될지도 몰라.", + 2: `우와! 제법인데! 내가 존경하게 만들다니! + $네 집중력과 의지, 완전히 나를 압도하는 같아. ` }, "defeat": { - 1: "I sensed your will to win, but I don't lose!", - 2: "See? Candice's focus! My Pokémon's focus is great, too!" + 1: "이기고자 하는 의지는 전해졌지만, 난 지지 않았어!", + 2: "봤지? 무청의 집중력! 내 포켓몬의 집중력도 대단하다구!" } }, "gardenia": { @@ -1192,13 +1192,13 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "aaron": { "encounter": { - 1: "Ok! Let me take you on!" + 1: "좋습니다! 그럼 상대해 드리죠!" }, "victory": { - 1: "Battling is a deep and complex affair…" + 1: "승부는 딥하고 컴플렉스한 일이네요…" }, "defeat": { - 1: "Victory over an Elite Four member doesn't come easily." + 1: "사천왕을 상대로 하는 승리는 쉽게 오지 않는다구요." } }, "cress": { @@ -1429,15 +1429,15 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "bertha": { "encounter": { - 1: "Well, would you show this old lady how much you've learned?" + 1: "그럼, 할머니가 네가 얼마나 해낼 수 있는지 보도록 할게?" }, "victory": { - 1: `Well! Dear child, I must say, that was most impressive. - $Your Pokémon believed in you and did their best to earn you the win. - $Even though I've lost, I find myself with this silly grin!`, + 1: `좋아! 꼬마야, 정말로, 인상적이었단다. + $Y네 포켓몬은 너를 믿고 승리를 위해 최선을 다했구나. + $비록 내가 졌지만, 좋아서 바보같이 웃음이 나오는구나!`, }, "defeat": { - 1: "Hahahahah! Looks like this old lady won!" + 1: "호호호! 이 할머니가 이겼구나!" } }, "lenora": { @@ -1510,13 +1510,13 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "flint": { "encounter": { - 1: "Hope you're warmed up, cause here comes the Big Bang!" + 1: "뜨겁게 타오를 준비는 됐겠지, 이제 곧 대폭발이 다가올테니까!" }, "victory": { - 1: "Incredible! Your moves are so hot, they make mine look lukewarm!" + 1: "놀랍군! 네 기술이 너무 뜨거워서, 내가 미적지근해보이잖아!" }, "defeat": { - 1: "Huh? Is that it? I think you need a bit more passion." + 1: "하? 그게 다야? 좀 더 열정이 필요해보이는걸." } }, "grimsley": { @@ -1638,16 +1638,16 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "lucian": { "encounter": { - 1: `Just a moment, please. The book I'm reading has nearly reached its thrilling climax… - $The hero has obtained a mystic sword and is about to face their final trial… Ah, never mind. - $Since you've made it this far, I'll put that aside and battle you. - $Let me see if you'll achieve as much glory as the hero of my book!,` + 1: `잠깐, 기다려주세요. 제가 읽던 책이 거의 클라이맥스에 도달했거든요… + $주인공이 성스러운 검을 얻었고 마지막 시련을 앞두고 있는데… 아, 신경 쓰지 마세요. + $여기까지 왔으니, 그건 제쳐두고 당신과 싸워야겠습니다. + $당신이 과연 주인공이 될 그릇인지 확인해 보도록 하죠!` }, "victory": { - 1: "I see… It appears you've put me in checkmate." + 1: "그렇군요… 결국 체크메이트인가요." }, "defeat": { - 1: "I have a reputation to uphold." + 1: "제 평판을 지켜냈네요." } }, "drasna": { @@ -1757,13 +1757,13 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "cynthia": { "encounter": { - 1: "I, Cynthia, accept your challenge! There won't be any letup from me!" + 1: "나, 난천은, 네 도전을 받아들일게! 온 힘을 다해 너와 시합하겠어!" }, "victory": { - 1: "No matter how fun the battle is, it will always end sometime…" + 1: "포켓몬 배틀보다 재밌는 것은 없지만, 언젠간 끝나기 마련이니…" }, "defeat": { - 1: "Even if you lose, never lose your love of Pokémon." + 1: "비록 졌어도, 포켓몬에 대한 사랑은 잃지 않도록 해." } }, "iris": { @@ -1911,15 +1911,15 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "byron": { "encounter": { - 1: `Trainer! You're young, just like my son, Roark. - $With more young Trainers taking charge, the future of Pokémon is bright! - $So, as a wall for young people, I'll take your challenge!`, + 1: `젊은 트레이너여! 자네는 내 아들 강석처럼 젊군. + $젊은 트레이너가 많아질수록, 포켓몬의 미래도 밝지! + $그러니, 젊은이들이 넘어야할 벽으로서 상대해주겠다!`, }, "victory": { - 1: "Hmm! My sturdy Pokémon--defeated!" + 1: "흠! 내 견고한 포켓몬이--져버렸군!" }, "defeat": { - 1: "Gwahahaha! How were my sturdy Pokémon?!" + 1: "으하하핫! 내 견고한 포켓몬은 어땠나?!" } }, "olympia": { @@ -1935,17 +1935,17 @@ export const PGMdialogue: DialogueTranslationEntries = { }, "volkner": { "encounter": { - 1: `Since you've come this far, you must be quite strong… - $I hope you're the Trainer who'll make me remember how fun it is to battle!`, + 1: `여기까지 왔으니, 넌 꽤 강하겠군… + $네가 내게 포켓몬 승부의 즐거움을 상기시켜 줄 트레이너이길 바란다!`, }, "victory": { - 1: `You've got me beat… - $Your desire and the noble way your Pokémon battled for you… - $I even felt thrilled during our match. That was a very good battle.`, + 1: `너 나를 이겼군… + $네 열정과 포켓몬이 그런 너를 위해 싸워준 고귀한 방식… + $심지어 스릴까지 넘쳤다. 아주 좋은 승부였어.`, }, "defeat": { - 1: `It was not shocking at all… - $That is not what I wanted!`, + 1: `전혀 충격적이지 않았다… + $이런 건 원하지 않았어!`, } }, "burgh": { From 534bdaaec7dbb41bc580098f97903fff7e5b724a Mon Sep 17 00:00:00 2001 From: Lugiad Date: Mon, 17 Jun 2024 16:29:27 +0200 Subject: [PATCH 4/6] [Localization] Corrections French menu.ts (#2337) * Corrections French menu.ts * Update menu.ts * Update src/locales/fr/menu.ts Co-authored-by: Dakurei * Update menu.ts --------- Co-authored-by: Dakurei --- src/locales/fr/menu.ts | 46 +++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/locales/fr/menu.ts b/src/locales/fr/menu.ts index 8a8a2d22f12c..eec772c1d289 100644 --- a/src/locales/fr/menu.ts +++ b/src/locales/fr/menu.ts @@ -56,10 +56,10 @@ export const menu: SimpleTranslationEntries = { "gamepad": "Manette", "keyboard": "Clavier", "gameSpeed": "Vitesse du jeu", - "hpBarSpeed": "Vitesse de la barre de PV", - "expGainsSpeed": "Vitesse des gains d’EXP", - "expPartyDisplay": "Afficher EXP équipe", - "skipSeenDialogues": "Passer les dialogues déjà vus", + "hpBarSpeed": "Vit. barre de PV", + "expGainsSpeed": "Vit.barre d’Exp", + "expPartyDisplay": "Afficher Exp équipe", + "skipSeenDialogues": "Passer dialogues connus", "battleStyle": "Style de combat", "enableRetries": "Activer les réessais", "tutorials": "Tutoriels", @@ -69,7 +69,7 @@ export const menu: SimpleTranslationEntries = { "fast": "Rapide", "faster": "Plus rapide", "skip": "Passer", - "levelUpNotifications": "Montée de niveau", + "levelUpNotifications": "Notif. gain de N.", "on": "Activé", "off": "Désactivé", "switch": "Choix", @@ -87,8 +87,8 @@ export const menu: SimpleTranslationEntries = { "simple": "Simple", "fancy": "Amélioré", "abbreviated": "Abrégé", - "moveAnimations": "Animations de mouvement", - "showStatsOnLevelUp": "Afficher les stats à la montée de niveau", + "moveAnimations": "Animations de combat", + "showStatsOnLevelUp": "Afficher stats à la montée de niveau", "candyUpgradeNotification": "Notif amélioration de bonbon", "passivesOnly": "Passifs", "candyUpgradeDisplay": "Amélioration bonbon", @@ -107,9 +107,9 @@ export const menu: SimpleTranslationEntries = { "fusionPaletteSwaps": "Palettes de fusion", "playerGender": "Genre du joueur", "typeHints": "Indications de type", - "masterVolume": "Volume principal", - "bgmVolume": "Volume BGM", - "seVolume": "Volume SE", + "masterVolume": "Vol. principal", + "bgmVolume": "Vol. musique", + "seVolume": "Vol. effets", "musicPreference": "Préférence musicale", "mixed": "Mixte", "gamepadPleasePlug": "Veuillez brancher une manette ou appuyer sur un bouton", @@ -119,7 +119,7 @@ export const menu: SimpleTranslationEntries = { "requireReload": "Redémarrage requis", "action": "Action", "pressToBind": "Sélectionnez pour assigner", - "pressButton": "Appuyez sur un bouton...", + "pressButton": "Appuyez sur un bouton…", "buttonUp": "Haut", "buttonDown": "Bas", "altButtonUp": "Haut (Alt)", @@ -137,18 +137,18 @@ export const menu: SimpleTranslationEntries = { "altButtonMenu": "Menu (Alt)", "buttonStats": "Stats", "altButtonStats": "Stats (Alt)", - "buttonCycleForm": "Cycle de forme", - "altButtonCycleForm": "Cycle de forme (Alt)", - "buttonCycleShiny": "Cycle de chromatique", - "altButtonCycleShiny": "Cycle de chromatique (Alt)", - "buttonCycleGender": "Cycle de genre", - "altButtonCycleGender": "Cycle de genre (Alt)", - "buttonCycleAbility": "Cycle de capacité", - "altButtonCycleAbility": "Cycle de capacité (Alt)", - "buttonCycleNature": "Cycle de nature", - "altButtonCycleNature": "Cycle de nature (Alt)", - "buttonCycleVariant": "Cycle de variante", - "altButtonCycleVariant": "Cycle de variante (Alt)", + "buttonCycleForm": "Modifier Forme", + "altButtonCycleForm": "Modifier Forme (Alt)", + "buttonCycleShiny": "Modifier Chromatique", + "altButtonCycleShiny": "Modifier Chromatique (Alt)", + "buttonCycleGender": "Modifier Sexe", + "altButtonCycleGender": "Modifier Sexe (Alt)", + "buttonCycleAbility": "Modifier Capacité", + "altButtonCycleAbility": "Modifier Capacité (Alt)", + "buttonCycleNature": "Modifier Nature", + "altButtonCycleNature": "Modifier Nature (Alt)", + "buttonCycleVariant": "Modifier Variant", + "altButtonCycleVariant": "Modifier Variant (Alt)", "buttonSpeedUp": "Accélérer", "altButtonSpeedUp": "Accélérer (Alt)", "buttonSlowDown": "Ralentir", From d96ae3de437d06f5e03a070d45074044ba72acda Mon Sep 17 00:00:00 2001 From: returntoice Date: Mon, 17 Jun 2024 23:52:46 +0900 Subject: [PATCH 5/6] [Localization(ko)] menu.ts correction (#2339) --- src/locales/ko/menu.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/locales/ko/menu.ts b/src/locales/ko/menu.ts index 6197ce9895b5..3013e7ff2eae 100644 --- a/src/locales/ko/menu.ts +++ b/src/locales/ko/menu.ts @@ -61,11 +61,11 @@ export const menu: SimpleTranslationEntries = { "gamepad": "게임패드", "keyboard": "키보드", "gameSpeed": "게임 속도", - "hpBarSpeed": "HP 속도", - "expGainsSpeed": "경험치 속도", + "hpBarSpeed": "HP 바 속도", + "expGainsSpeed": "경험치 획득 속도", "expPartyDisplay": "파티 경험치 표시", "skipSeenDialogues": "본 대화 생략", - "battleStyle": "배틀 방식", + "battleStyle": "시합 룰", "enableRetries": "재도전 허용", "tutorials": "튜토리얼", "touchControls": "터치 컨트롤", @@ -77,8 +77,8 @@ export const menu: SimpleTranslationEntries = { "levelUpNotifications": "레벨업 알림", "on": "설정", "off": "해제", - "switch": "교체허용", - "set": "해제", + "switch": "교체", + "set": "토너먼트", "auto": "자동", "disabled": "비활성", "language": "언어", @@ -88,11 +88,11 @@ export const menu: SimpleTranslationEntries = { "legacy": "레거시", "windowType": "윈도우 타입", "moneyFormat": "소지금 표시", - "damageNumbers": "대미지 표시", + "damageNumbers": "대미지 숫자 표시", "simple": "심플", "fancy": "팬시", "abbreviated": "축약", - "moveAnimations": "기술 애니메이션", + "moveAnimations": "배틀 애니메이션", "showStatsOnLevelUp": "레벨업 능력치 표시", "candyUpgradeNotification": "사탕 업그레이드 알림", "passivesOnly": "패시브만", @@ -104,14 +104,14 @@ export const menu: SimpleTranslationEntries = { "showArenaFlyout": "배틀 효과 보기", "showTimeOfDayWidget": "시간 위젯", "timeOfDayAnimation": "시간 애니메이션", - "bounce": "바운스", - "back": "백", - "spriteSet": "스프라이트", + "bounce": "흔들림", + "back": "고정", + "spriteSet": "스프라이트 표시", "consistent": "기본", "mixedAnimated": "믹스", - "fusionPaletteSwaps": "융합 팔레트 스왑", + "fusionPaletteSwaps": "셰이더 적용", "playerGender": "플레이어 성별", - "typeHints": "타입 힌트", + "typeHints": "상성 힌트", "masterVolume": "마스터 볼륨", "bgmVolume": "BGM 볼륨", "seVolume": "SE 볼륨", From 4e8cafcdb4fae785631778d065c8632f954c67a6 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Mon, 17 Jun 2024 15:57:20 +0100 Subject: [PATCH 6/6] [Community] Add Reddit link to menu UI (#2338) * feat: Add Reddit link to menu UI Added a new menu option for Reddit with a corresponding handler to open the Reddit page in a new tab. This enhances the user experience by providing easy access to the Pokerogue subreddit. * feat: Update wiki URL in menu UI The wiki URL in the menu UI has been updated to "https://wiki.pokerogue.net/start" to provide a more specific starting point for users. --- src/ui/menu-ui-handler.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index b068080bddac..f41fbe7d93b3 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -24,9 +24,10 @@ export enum MenuOptions { LOG_OUT } -const wikiUrl = "https://wiki.pokerogue.net"; +const wikiUrl = "https://wiki.pokerogue.net/start"; const discordUrl = "https://discord.gg/uWpTfdKG49"; const githubUrl = "https://github.com/pagefaultgames/pokerogue"; +const redditUrl = "https://www.reddit.com/r/pokerogue"; export default class MenuUiHandler extends MessageUiHandler { private menuContainer: Phaser.GameObjects.Container; @@ -211,6 +212,14 @@ export default class MenuUiHandler extends MessageUiHandler { }, keepOpen: true }, + { + label: "Reddit", + handler: () => { + window.open(redditUrl, "_blank").focus(); + return true; + }, + keepOpen: true + }, { label: i18next.t("menuUiHandler:cancel"), handler: () => {