From 8099f023062133f9d0b7c747d7d869175612a57b Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Mon, 24 Jun 2024 17:31:38 +0200 Subject: [PATCH] [Enhancement] Added a bgmBar to show the name of the track once music is played (#2457) * Added a bgmBar to show the name of the track once music is played * Even more close to ability bar * It now shows. And also shows already for a couple of them a readable name * Now the queue actually works * Create locales for bgmName (bgm-bar ui) + Most of the music has only Japanese and English names But there are a number of tracks with official translations following OST commercialization * Add i18n and use it to retrieve OST names (avoids a giga switch case) + A fallback key is implemented in the case of adding tracks not referenced in the translation files, its value being just the name of the bgm itself * FormatText is now in Utils and not arena-flyout BGM Names for non-localized music will be formatted to have capitalized letters and no _ * It is now a setting. It can be even changed mid fight * Update src/ui/ability-bar.ts * Apply suggestions from code review Co-authored-by: Lugiad' * Update src/locales/de/bgm-name.ts * Apply suggestions from code review Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> * Added the rest of the music names * Changed PMD EoS to PMD ETH in german (Pokemon Mystery Dungeon Erkundungsteam Himmel) * Due to feedback it is now "PMD ET-Himmel" * Corrected the encounter theme names (and some missed trainer class names) * Background is now a nicneslice. And it is at the top of the screen and above everything else * The bar now scales with the text. * Revert override * Update src/locales/fr/bgm-name.ts Co-authored-by: Lugiad' * It now only appears when V is pressed (in all but starter select) * Cleared the cod eup * Update src/locales/zh_CN/bgm-name.ts Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com> * Update src/locales/zh_CN/settings.ts Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com> * Update src/locales/ko/bgm-name.ts Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> * The bgmBar now appears in the pause menu instead. * Should react better on settings change * To be safe this required a reload now * Update src/locales/fr/bgm-name.ts Co-authored-by: Lugiad' * Update src/locales/fr/bgm-name.ts Co-authored-by: Lugiad' * Write out pokemon mystery dungeon names in german * Update src/locales/es/bgm-name.ts Co-authored-by: GoldTra <162721984+GoldTra@users.noreply.github.com> * Update src/locales/zh_CN/bgm-name.ts Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com> * Update src/battle-scene.ts --------- Co-authored-by: Dakurei Co-authored-by: Lugiad' Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com> Co-authored-by: GoldTra <162721984+GoldTra@users.noreply.github.com> --- src/battle-scene.ts | 3 + src/locales/de/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/de/config.ts | 2 + src/locales/de/settings.ts | 1 + src/locales/de/trainers.ts | 8 +- src/locales/en/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/en/config.ts | 2 + src/locales/en/settings.ts | 3 +- src/locales/es/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/es/config.ts | 2 + src/locales/es/settings.ts | 3 +- src/locales/fr/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/fr/config.ts | 2 + src/locales/fr/settings.ts | 3 +- src/locales/it/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/it/config.ts | 2 + src/locales/it/settings.ts | 3 +- src/locales/ko/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/ko/config.ts | 2 + src/locales/ko/settings.ts | 3 +- src/locales/pt_BR/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/pt_BR/config.ts | 2 + src/locales/pt_BR/settings.ts | 3 +- src/locales/zh_CN/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/zh_CN/config.ts | 2 + src/locales/zh_CN/settings.ts | 3 +- src/locales/zh_TW/bgm-name.ts | 135 ++++++++++++++++++++++++++++++++ src/locales/zh_TW/config.ts | 2 + src/locales/zh_TW/settings.ts | 3 +- src/system/settings/settings.ts | 18 ++++- src/ui/ability-bar.ts | 3 - src/ui/arena-flyout.ts | 14 +--- src/ui/bgm-bar.ts | 101 ++++++++++++++++++++++++ src/ui/menu-ui-handler.ts | 16 ++++ src/ui/ui.ts | 3 +- src/utils.ts | 14 ++++ 36 files changed, 1406 insertions(+), 32 deletions(-) create mode 100644 src/locales/de/bgm-name.ts create mode 100644 src/locales/en/bgm-name.ts create mode 100644 src/locales/es/bgm-name.ts create mode 100644 src/locales/fr/bgm-name.ts create mode 100644 src/locales/it/bgm-name.ts create mode 100644 src/locales/ko/bgm-name.ts create mode 100644 src/locales/pt_BR/bgm-name.ts create mode 100644 src/locales/zh_CN/bgm-name.ts create mode 100644 src/locales/zh_TW/bgm-name.ts create mode 100644 src/ui/bgm-bar.ts diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 2049348ed94..d2121e01e00 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -157,6 +157,8 @@ export default class BattleScene extends SceneBase { public fusionPaletteSwaps: boolean = true; public enableTouchControls: boolean = false; public enableVibration: boolean = false; + public showBgmBar: boolean = true; + /** * Determines the selected battle style. * - 0 = 'Switch' @@ -1637,6 +1639,7 @@ export default class BattleScene extends SceneBase { : this.getBgmLoopPoint(bgmName); let loaded = false; const playNewBgm = () => { + this.ui.bgmBar.setBgmToBgmBar(bgmName); if (bgmName === null && this.bgm && !this.bgm.pendingRemove) { this.bgm.play({ volume: this.masterVolume * this.bgmVolume diff --git a/src/locales/de/bgm-name.ts b/src/locales/de/bgm-name.ts new file mode 100644 index 00000000000..38abe8a06ff --- /dev/null +++ b/src/locales/de/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Musik", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "S2W2 Vs. Kanto Champion", + "battle_johto_champion": "S2W2 Vs. Johto Champion", + "battle_hoenn_champion": "S2W2 Vs. Hoenn Champion", + "battle_sinnoh_champion": "S2W2 Vs. Champion Cynthia", + "battle_champion_alder": "SW Vs. Champion Lauro", + "battle_champion_iris": "S2W2 Vs. Champion Lilia", + "battle_kalos_champion": "XY Vs. Champion Diantha", + "battle_alola_champion": "USUM Vs. Alola Champion", + "battle_galar_champion": "SWSH Vs. Champion Delion", + "battle_champion_geeta": "KAPU Vs. Champion Sagaria", + "battle_champion_nemona": "KAPU Vs. Champion Nemila", + "battle_champion_kieran": "KAPU Vs. Jo", + "battle_hoenn_elite": "ORAS Vs. Hoenn Top Vier", + "battle_unova_elite": "SW Vs. Einall Top Vier", + "battle_kalos_elite": "XY Vs. Kalos Top Vier", + "battle_alola_elite": "SM Vs. Alola Top Vier", + "battle_galar_elite": "SWSH Galar Champ-Cup", + "battle_paldea_elite": "KAPU Vs. Paldea Top Vier", + "battle_bb_elite": "KAPU Vs. Blaubeer-Top-Vier", + "battle_final_encounter": "PMDDX Rayquazas Domäne", + "battle_final": "SW Vs. G-Cis", + "battle_kanto_gym": "S2W2 Vs. Kanto Arenaleiter", + "battle_johto_gym": "S2W2 Vs. Johto Arenaleiter", + "battle_hoenn_gym": "S2W2 Vs. Hoenn Arenaleiter", + "battle_sinnoh_gym": "S2W2 Vs. Sinnoh Arenaleiter", + "battle_unova_gym": "SW Vs. Einall Arenaleiter", + "battle_kalos_gym": "XY Vs. Kalos Arenaleiter", + "battle_galar_gym": "SWSH Vs. Galar Arenaleiter", + "battle_paldea_gym": "KAPU Vs. Paldea Arenaleiter", + "battle_legendary_kanto": "XY Vs. Legendäres Kanto Pokémon", + "battle_legendary_raikou": "HGSS Vs. Raikou", + "battle_legendary_entei": "HGSS Vs. Entei", + "battle_legendary_suicune": "HGSS Vs. Suicune", + "battle_legendary_lugia": "HGSS Vs. Lugia", + "battle_legendary_ho_oh": "HGSS Vs. Ho-oh", + "battle_legendary_regis_g5": "S2W2 Vs. Legendäre Giganten", + "battle_legendary_regis_g6": "ORAS Vs. Legendäre Giganten", + "battle_legendary_gro_kyo": "ORAS Vs. Groudon & Kyogre", + "battle_legendary_rayquaza": "ORAS Vs. Rayquaza", + "battle_legendary_deoxys": "ORAS Vs. Deoxys", + "battle_legendary_lake_trio": "ORAS Vs. Seen-Trio", + "battle_legendary_sinnoh": "ORAS Vs. Legendäres Sinnoh Pokémon", + "battle_legendary_dia_pal": "ORAS Vs. Dialga & Palkia", + "battle_legendary_giratina": "ORAS Vs. Giratina", + "battle_legendary_arceus": "HGSS Vs. Arceus", + "battle_legendary_unova": "SW Vs. Legendäres Einall Pokémon", + "battle_legendary_kyurem": "SW Vs. Kyurem", + "battle_legendary_res_zek": "SW Vs. Reshiram & Zekrom", + "battle_legendary_xern_yvel": "XY Vs. Xerneas & Yveltal", + "battle_legendary_tapu": "SM Vs. Kapu", + "battle_legendary_sol_lun": "SM Vs. Solgaleo & Lunala", + "battle_legendary_ub": "SM Vs. Ultrabestie", + "battle_legendary_dusk_dawn": "USUM Vs. Abendmähne- & Morgenschwingen-Necrozma", + "battle_legendary_ultra_nec": "USUM Vs. Ultra-Necrozma", + "battle_legendary_zac_zam": "SWSH Vs. Zacian & Zamazenta", + "battle_legendary_glas_spec": "SWSH Vs. Polaross & Phantoross", + "battle_legendary_calyrex": "SWSH Vs. Coronospa", + "battle_legendary_birds_galar": "SWSH Vs. Legendäre Galar-Vögel", + "battle_legendary_ruinous": "KAPU Vs. Schätze des Unheils", + "battle_legendary_loyal_three": "KAPU Drei Gefährten", + "battle_legendary_ogerpon": "KAPU Vs. Ogerpon", + "battle_legendary_terapagos": "KAPU Vs. Terapagos", + "battle_legendary_pecharunt": "KAPU Vs. Infamomo", + "battle_rival": "SW Vs. Rivale", + "battle_rival_2": "SW Vs. N", + "battle_rival_3": "SW Vs. N (Finale)", + "battle_trainer": "SW Vs. Trainer", + "battle_wild": "SW Vs. Wilde Pokémon", + "battle_wild_strong": "SW Vs. Starke Wilde Pokémon", + "end_summit": "PMDDX Gipfel des Himmelturms", + "battle_plasma_grunt": "SW Vs. Team Plasma Rüpel", + + // Biome Music + "abyss": "PMD Erkundungsteam Himmel Dunkelkrater", + "badlands": "PMD Erkundungsteam Himmel Kargtal", + "beach": "PMD Erkundungsteam Himmel Feuchtklippe", + "cave": "PMD Erkundungsteam Himmel Himmelsgipfel-Höhle", + "construction_site": "PMD Erkundungsteam Himmel Geröllbruch", + "desert": "PMD Erkundungsteam Himmel Nordwüste", + "dojo": "PMD Erkundungsteam Himmel Knogga-Dojo", + "end": "PMD Retterteam DX Himmelsturm", + "factory": "PMD Erkundungsteam Himmel Verborgene Ruinen", + "fairy_cave": "PMD Erkundungsteam Himmel Sternenhöhle", + "forest": "PMD Erkundungsteam Himmel Düsterwald", + "grass": "PMD Erkundungsteam Himmel Apfelwald", + "graveyard": "PMD Erkundungsteam Himmel Verwirrwald", + "ice_cave": "PMD Erkundungsteam Himmel Rieseneisberg", + "island": "PMD Erkundungsteam Himmel Schroffküste", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "PMD Erkundungsteam Himmel Kristallhöhle", + "meadow": "PMD Erkundungsteam Himmel Himmelsgipfel-Wald", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "PMD Erkundungsteam Himmel Hornberg", + "plains": "PMD Erkundungsteam Himmel Himmelsgipfel-Prärie", + "power_plant": "PMD Erkundungsteam Himmel Weite Ampere-Ebene", + "ruins": "PMD Erkundungsteam Himmel Tiefes Ruinenverlies", + "sea": "PMD Erkundungsteam Himmel Salzwasserhöhle", + "seabed": "PMD Erkundungsteam Himmel Untere Salzwasserhöhle", + "slum": "PMD Erkundungsteam Himmel Himmelsgipfel-Küste", + "snowy_forest": "PMD Erkundungsteam Himmel Himmelsgipfel-Schneefeld", + "space": "PMD Erkundungsteam Himmel Schicksalsschlucht", + "swamp": "PMD Erkundungsteam Himmel Ringmeer", + "tall_grass": "PMD Erkundungsteam Himmel Nebelwald", + "temple": "PMD Erkundungsteam Himmel Ägishöhle", + "town": "PMD Erkundungsteam Himmel Zufälliges Dungeon-Theme 3", + "volcano": "PMD Erkundungsteam Himmel Dunsthöhle", + "wasteland": "PMD Erkundungsteam Himmel Verborgenes Hochland", + + // Encounter + "encounter_ace_trainer": "SW Trainerblicke treffen sich (Ass-Trainer)", + "encounter_backpacker": "SW Trainerblicke treffen sich (Backpacker)", + "encounter_clerk": "SW Trainerblicke treffen sich (Angestellter)", + "encounter_cyclist": "SW Trainerblicke treffen sich (Biker)", + "encounter_lass": "SW Trainerblicke treffen sich (Göre)", + "encounter_parasol_lady": "SW Trainerblicke treffen sich (Schirmdame)", + "encounter_pokefan": "SW Trainerblicke treffen sich (Pokéfan)", + "encounter_psychic": "SW Trainerblicke treffen sich (Seher)", + "encounter_rich": "SW Trainerblicke treffen sich (Gentleman)", + "encounter_rival": "SW Vs. Cheren", + "encounter_roughneck": "SW Trainerblicke treffen sich (Raufbold)", + "encounter_scientist": "SW Trainerblicke treffen sich (Forscher)", + "encounter_twins": "SW Trainerblicke treffen sich (Zwillinge)", + "encounter_youngster": "SW Trainerblicke treffen sich (Knirps)", + + // Other + "heal": "SW Pokémon-Heilung", + "menu": "PMD Erkundungsteam Himmel Willkommen in der Welt der Pokémon!", + "title": "PMD Erkundungsteam Himmel Top-Menü-Thema", +} as const; diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 5f1bd541ad2..b7bb827d8d3 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -4,6 +4,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const deConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/de/settings.ts b/src/locales/de/settings.ts index f7b8a1b0877..85f8645d69f 100644 --- a/src/locales/de/settings.ts +++ b/src/locales/de/settings.ts @@ -95,4 +95,5 @@ export const settings: SimpleTranslationEntries = { "mute": "Stumm", "controller": "Controller", "gamepadSupport": "Controllerunterstützung", + "showBgmBar": "Musiknamen anzeigen", } as const; diff --git a/src/locales/de/trainers.ts b/src/locales/de/trainers.ts index 7be3c019903..1390bf410ae 100644 --- a/src/locales/de/trainers.ts +++ b/src/locales/de/trainers.ts @@ -93,12 +93,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon-Ranger", "ranger": "Ranger", "restaurant_staff": "Restaurant Angestellte", - "rich": "Rich", - "rich_female": "Rich", + "rich": "Gentleman", + "rich_female": "Reiche Dame", "rich_boy": "Schnösel", "rich_couple": "Reiches Paar", - "rich_kid": "Rich Kid", - "rich_kid_female": "Rich Kid", + "rich_kid": "Schnösel", + "rich_kid_female": "Schnöselin", "rich_kids": "Schnösel", "roughneck": "Raufbold", "sailor": "Matrose", diff --git a/src/locales/en/bgm-name.ts b/src/locales/en/bgm-name.ts new file mode 100644 index 00000000000..b29e4deb260 --- /dev/null +++ b/src/locales/en/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Music", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "B2W2 Kanto Champion Battle", + "battle_johto_champion": "B2W2 Johto Champion Battle", + "battle_hoenn_champion": "B2W2 Hoenn Champion Battle", + "battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle", + "battle_champion_alder": "BW Unova Champion Battle", + "battle_champion_iris": "B2W2 Unova Champion Battle", + "battle_kalos_champion": "XY Kalos Champion Battle", + "battle_alola_champion": "USUM Alola Champion Battle", + "battle_galar_champion": "SWSH Galar Champion Battle", + "battle_champion_geeta": "SV Champion Geeta Battle", + "battle_champion_nemona": "SV Champion Nemona Battle", + "battle_champion_kieran": "SV Champion Kieran Battle", + "battle_hoenn_elite": "ORAS Elite Four Battle", + "battle_unova_elite": "BW Elite Four Battle", + "battle_kalos_elite": "XY Elite Four Battle", + "battle_alola_elite": "SM Elite Four Battle", + "battle_galar_elite": "SWSH League Tournament Battle", + "battle_paldea_elite": "SV Elite Four Battle", + "battle_bb_elite": "SV BB League Elite Four Battle", + "battle_final_encounter": "PMD RTDX Rayquaza's Domain", + "battle_final": "BW Ghetsis Battle", + "battle_kanto_gym": "B2W2 Kanto Gym Battle", + "battle_johto_gym": "B2W2 Johto Gym Battle", + "battle_hoenn_gym": "B2W2 Hoenn Gym Battle", + "battle_sinnoh_gym": "B2W2 Sinnoh Gym Battle", + "battle_unova_gym": "BW Unova Gym Battle", + "battle_kalos_gym": "XY Kalos Gym Battle", + "battle_galar_gym": "SWSH Galar Gym Battle", + "battle_paldea_gym": "SV Paldea Gym Battle", + "battle_legendary_kanto": "XY Kanto Legendary Battle", + "battle_legendary_raikou": "HGSS Raikou Battle", + "battle_legendary_entei": "HGSS Entei Battle", + "battle_legendary_suicune": "HGSS Suicune Battle", + "battle_legendary_lugia": "HGSS Lugia Battle", + "battle_legendary_ho_oh": "HGSS Ho-oh Battle", + "battle_legendary_regis_g5": "B2W2 Legendary Titan Battle", + "battle_legendary_regis_g6": "ORAS Legendary Titan Battle", + "battle_legendary_gro_kyo": "ORAS Groudon & Kyogre Battle", + "battle_legendary_rayquaza": "ORAS Rayquaza Battle", + "battle_legendary_deoxys": "ORAS Deoxys Battle", + "battle_legendary_lake_trio": "ORAS Lake Guardians Battle", + "battle_legendary_sinnoh": "ORAS Sinnoh Legendary Battle", + "battle_legendary_dia_pal": "ORAS Dialga & Palkia Battle", + "battle_legendary_giratina": "ORAS Giratina Battle", + "battle_legendary_arceus": "HGSS Arceus Battle", + "battle_legendary_unova": "BW Unova Legendary Battle", + "battle_legendary_kyurem": "BW Kyurem Battle", + "battle_legendary_res_zek": "BW Reshiram & Zekrom Battle", + "battle_legendary_xern_yvel": "XY Xerneas & Yveltal Battle", + "battle_legendary_tapu": "SM Tapu Battle", + "battle_legendary_sol_lun": "SM Solgaleo & Lunala Battle", + "battle_legendary_ub": "SM Ultra Beast Battle", + "battle_legendary_dusk_dawn": "USUM Dusk Mane & Dawn Wings Necrozma Battle", + "battle_legendary_ultra_nec": "USUM Ultra Necrozma Battle", + "battle_legendary_zac_zam": "SWSH Zacian & Zamazenta Battle", + "battle_legendary_glas_spec": "SWSH Glastrier & Spectrier Battle", + "battle_legendary_calyrex": "SWSH Calyrex Battle", + "battle_legendary_birds_galar": "SWSH Galarian Legendary Birds Battle", + "battle_legendary_ruinous": "SV Treasures of Ruin Battle", + "battle_legendary_loyal_three": "SV Loyal Three Battle", + "battle_legendary_ogerpon": "SV Ogerpon Battle", + "battle_legendary_terapagos": "SV Terapagos Battle", + "battle_legendary_pecharunt": "SV Pecharunt Battle", + "battle_rival": "BW Rival Battle", + "battle_rival_2": "BW N Battle", + "battle_rival_3": "BW Final N Battle", + "battle_trainer": "BW Trainer Battle", + "battle_wild": "BW Wild Battle", + "battle_wild_strong": "BW Strong Wild Battle", + "end_summit": "PMD RTDX Sky Tower Summit", + "battle_plasma_grunt": "BW Team Plasma Battle", + + // Biome Music + "abyss": "PMD EoS Dark Crater", + "badlands": "PMD EoS Barren Valley", + "beach": "PMD EoS Drenched Bluff", + "cave": "PMD EoS Sky Peak Cave", + "construction_site": "PMD EoS Boulder Quarry", + "desert": "PMD EoS Northern Desert", + "dojo": "PMD EoS Marowa Dojo", + "end": "PMD RTDX Sky Tower", + "factory": "PMD EoS Concealed Ruins", + "fairy_cave": "PMD EoS Star Cave", + "forest": "PMD EoS Dusk Forest", + "grass": "PMD EoS Apple Woods", + "graveyard": "PMD EoS Mystifying Forest", + "ice_cave": "PMD EoS Vast Ice Mountain", + "island": "PMD EoS Craggy Coast", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "PMD EoS Crystal Cave", + "meadow": "PMD EoS Sky Peak Forest", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "PMD EoS Mt. Horn", + "plains": "PMD EoS Sky Peak Prairie", + "power_plant": "PMD EoS Far Amp Plains", + "ruins": "PMD EoS Deep Sealed Ruin", + "sea": "PMD EoS Brine Cave", + "seabed": "PMD EoS Lower Brine Cave", + "slum": "PMD EoS Sky Peak Coast", + "snowy_forest": "PMD EoS Sky Peak Snowfield", + "space": "PMD EoS Fortune Ravine", + "swamp": "PMD EoS Surrounded Sea", + "tall_grass": "PMD EoS Foggy Forest", + "temple": "PMD EoS Aegis Cave", + "town": "PMD EoS Random Dungeon Theme 3", + "volcano": "PMD EoS Steam Cave", + "wasteland": "PMD EoS Hidden Highland", + + // Encounter + "encounter_ace_trainer": "BW Trainers' Eyes Meet (Ace Trainer)", + "encounter_backpacker": "BW Trainers' Eyes Meet (Backpacker)", + "encounter_clerk": "BW Trainers' Eyes Meet (Clerk)", + "encounter_cyclist": "BW Trainers' Eyes Meet (Cyclist)", + "encounter_lass": "BW Trainers' Eyes Meet (Lass)", + "encounter_parasol_lady": "BW Trainers' Eyes Meet (Parasol Lady)", + "encounter_pokefan": "BW Trainers' Eyes Meet (Poke Fan)", + "encounter_psychic": "BW Trainers' Eyes Meet (Psychic)", + "encounter_rich": "BW Trainers' Eyes Meet (Gentleman)", + "encounter_rival": "BW Cheren", + "encounter_roughneck": "BW Trainers' Eyes Meet (Roughneck)", + "encounter_scientist": "BW Trainers' Eyes Meet (Scientist)", + "encounter_twins": "BW Trainers' Eyes Meet (Twins)", + "encounter_youngster": "BW Trainers' Eyes Meet (Youngster)", + + // Other + "heal": "BW Pokémon Heal", + "menu": "PMD Eos Welcome to the World of Pokémon!", + "title": "PMD EoS Top Menu Theme", +} as const; diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index f37b707479a..fbbae3df329 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -6,6 +6,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const enConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/en/settings.ts b/src/locales/en/settings.ts index 20624defd92..f68a649269f 100644 --- a/src/locales/en/settings.ts +++ b/src/locales/en/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (Alt)", "mute": "Mute", "controller": "Controller", - "gamepadSupport": "Gamepad Support" + "gamepadSupport": "Gamepad Support", + "showBgmBar": "Show Music Names", } as const; diff --git a/src/locales/es/bgm-name.ts b/src/locales/es/bgm-name.ts new file mode 100644 index 00000000000..27defd69bc8 --- /dev/null +++ b/src/locales/es/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Música", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "B2W2 - ¡Vs Campeón de Kanto!", + "battle_johto_champion": "B2W2 - ¡Vs Campeón de Johto!", + "battle_hoenn_champion": "B2W2 - ¡Vs Campeón de Hoenn!", + "battle_sinnoh_champion": "B2W2 - ¡Vs Campeón de Sinnoh!", + "battle_champion_alder": "BW - ¡Vs Campeón de Teselia!", + "battle_champion_iris": "B2W2 - ¡Vs Campeón de Teselia!", + "battle_kalos_champion": "XY - ¡Vs Campeón de Kalos!", + "battle_alola_champion": "USUM - ¡Vs Campeón de Alola!", + "battle_galar_champion": "SWSH - ¡Vs Campeón de Galar!", + "battle_champion_geeta": "SV - ¡Vs Campeona Ságita!", + "battle_champion_nemona": "SV - ¡Vs Campeona Mencía!", + "battle_champion_kieran": "SV - ¡Vs Campeón Cass!", + "battle_hoenn_elite": "ORAS - ¡Vs Alto Mando!", + "battle_unova_elite": "BW - ¡Vs Alto Mando!", + "battle_kalos_elite": "XY - ¡Vs Alto Mando!", + "battle_alola_elite": "SM - ¡Vs Alto Mando!", + "battle_galar_elite": "SWSH - Torneo de Finalistas", + "battle_paldea_elite": "SV - ¡Vs Alto Mando!", + "battle_bb_elite": "SV - ¡Vs Alto Mando de la Academia Arándano!", + "battle_final_encounter": "PMD RTDX - Dominio de Rayquaza", + "battle_final": "BW - ¡Vs Ghechis!", + "battle_kanto_gym": "B2W2 - ¡Vs Líder de Kanto!", + "battle_johto_gym": "B2W2 - ¡Vs Líder de Johto!", + "battle_hoenn_gym": "B2W2 - ¡Vs Líder de Hoenn!", + "battle_sinnoh_gym": "B2W2 - ¡Vs Líder de Sinnoh!", + "battle_unova_gym": "BW - ¡Vs Líder de Teselia!", + "battle_kalos_gym": "XY - ¡Vs Líder de Kalos!", + "battle_galar_gym": "SWSH - ¡Vs Líder de Galar!", + "battle_paldea_gym": "SV - ¡Vs Líder de Paldea!", + "battle_legendary_kanto": "XY - ¡Vs Legendarios de Kanto!", + "battle_legendary_raikou": "HGSS - ¡Vs Raikou!", + "battle_legendary_entei": "HGSS - ¡Vs Entei!", + "battle_legendary_suicune": "HGSS - ¡Vs Suicune!", + "battle_legendary_lugia": "HGSS - ¡Vs Lugia!", + "battle_legendary_ho_oh": "HGSS - ¡Vs Ho-oh!", + "battle_legendary_regis_g5": "B2W2 - ¡Vs Regis!", + "battle_legendary_regis_g6": "ORAS - ¡Vs Regis!", + "battle_legendary_gro_kyo": "ORAS - ¡Vs Groudon/Kyogre!", + "battle_legendary_rayquaza": "ORAS - ¡Vs Rayquaza!", + "battle_legendary_deoxys": "ORAS - ¡Vs Deoxys!", + "battle_legendary_lake_trio": "ORAS - ¡Vs Trío del Lago!", + "battle_legendary_sinnoh": "ORAS - ¡Vs Legendarios de Sinnoh!", + "battle_legendary_dia_pal": "ORAS - ¡Vs Dialga/Palkia!", + "battle_legendary_giratina": "ORAS - ¡Vs Giratina!", + "battle_legendary_arceus": "HGSS - ¡Vs Arceus!", + "battle_legendary_unova": "BW - ¡Vs Legendarios de Teselia!", + "battle_legendary_kyurem": "BW - ¡Vs Kyurem!", + "battle_legendary_res_zek": "BW - ¡Vs Reshiram/Zekrom!", + "battle_legendary_xern_yvel": "XY - ¡Vs Xerneas/Yveltal!", + "battle_legendary_tapu": "SM - ¡Vs Tapus!", + "battle_legendary_sol_lun": "SM - ¡Vs Solgaleo/Lunala!", + "battle_legendary_ub": "SM - ¡Vs Ultraentes!", + "battle_legendary_dusk_dawn": "USUM - ¡Vs Necrozma Melena Crepuscular/Alas del Alba!", + "battle_legendary_ultra_nec": "USUM - ¡Vs Ultra-Necrozma!", + "battle_legendary_zac_zam": "SWSH - ¡Vs Zacian/Zamazenta!", + "battle_legendary_glas_spec": "SWSH - ¡Vs Glastrier/Spectrier!", + "battle_legendary_calyrex": "SWSH - ¡Vs Calyrex!", + "battle_legendary_birds_galar": "SWSH - ¡Vs Aves Legendarias de Galar!", + "battle_legendary_ruinous": "SV - ¡Vs Tesoros Funestos!", + "battle_legendary_loyal_three": "SV - ¡Vs Compatrones!", + "battle_legendary_ogerpon": "SV - ¡Vs Ogerpon!", + "battle_legendary_terapagos": "SV - ¡Vs Terapagos!", + "battle_legendary_pecharunt": "SV - ¡Vs Pecharunt!", + "battle_rival": "BW - ¡Vs Rival!", + "battle_rival_2": "BW - ¡Vs N!", + "battle_rival_3": "BW - ¡Vs N (Liga Pokémon)!", + "battle_trainer": "BW - ¡Vs Entrenador!", + "battle_wild": "BW - ¡Vs Pokémon Salvaje!", + "battle_wild_strong": "BW - ¡Vs Pokémon Salvaje Raro!", + "end_summit": "PMD RTDX - Techo del Cielo", + "battle_plasma_grunt": "BW - ¡Vs Equipo Plasma!", + + // Biome Music + "abyss": "PMD EoS - Cráter Oscuro", + "badlands": "PMD EoS - Valle Desolado", + "beach": "PMD EoS - Risco Calado", + "cave": "PMD EoS - Cueva de la Cumbre del Cielo", + "construction_site": "PMD EoS - Roquedal", + "desert": "PMD EoS - Desierto Norte", + "dojo": "PMD EoS - Dojo Marowak", + "end": "PMD RTDX - Torre del Cielo", + "factory": "PMD EoS - Ruinas Camufladas", + "fairy_cave": "PMD EoS - Cueva Estrella", + "forest": "PMD EoS - Bosque Sombrío", + "grass": "PMD EoS - Manzanar", + "graveyard": "PMD EoS - Bosque Misterio", + "ice_cave": "PMD EoS - Gran Iceberg", + "island": "PMD EoS - Costa Escarpada", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "PMD EoS - Cueva Cristal", + "meadow": "PMD EoS - Bosque de la Cumbre del Cielo", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "PMD EoS - Monte Cuerno", + "plains": "PMD EoS - Pradera de la Cumbre del Cielo", + "power_plant": "PMD EoS - Pradera Destello", + "ruins": "PMD EoS - Sima Hermética", + "sea": "PMD EoS - Cueva Aguamar", + "seabed": "PMD EoS - Fosa Aguamar", + "slum": "PMD EoS - Costa de la Cumbre del Cielo", + "snowy_forest": "PMD EoS - Campo nevado de la Cumbre del Cielo", + "space": "PMD EoS - Risco Fortuna", + "swamp": "PMD EoS - Mar Circundante", + "tall_grass": "PMD EoS - Bosque Niebla", + "temple": "PMD EoS - Cueva Regia", + "town": "PMD EoS - Tema del territorio aleatorio 3", + "volcano": "PMD EoS - Cueva Vapor", + "wasteland": "PMD EoS - Corazón Tierra Oculta", + + // Encounter + "encounter_ace_trainer": "BW - Desafío Combate (Entrenador Guay)", + "encounter_backpacker": "BW - Desafío Combate (Mochilero)", + "encounter_clerk": "BW - Desafío Combate (Empresario)", + "encounter_cyclist": "BW - Desafío Combate (Ciclista)", + "encounter_lass": "BW - Desafío Combate (Chica)", + "encounter_parasol_lady": "BW - Desafío Combate (Dama parasol)", + "encounter_pokefan": "BW - Desafío Combate (Pokéfan)", + "encounter_psychic": "BW - Desafío Combate (Médium)", + "encounter_rich": "BW - Desafío Combate (Aristócrata)", + "encounter_rival": "BW - Desafío Combate (Cheren)", + "encounter_roughneck": "BW - Desafío Combate (Calvo)", + "encounter_scientist": "BW - Desafío Combate (Científico)", + "encounter_twins": "BW - Desafío Combate (Gemelas)", + "encounter_youngster": "BW - Desafío Combate (Joven)", + + // Other + "heal": "BW - Cura Pokémon", + "menu": "PMD Eos - ¡Bienvenidos al mundo de los Pokémon!", + "title": "PMD EoS - Tema del menú principal", +} as const; diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index f3747b6c619..e09224ce85e 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -4,6 +4,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const esConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/es/settings.ts b/src/locales/es/settings.ts index bf4c22707a9..dfd6f097242 100644 --- a/src/locales/es/settings.ts +++ b/src/locales/es/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (Alt)", "mute": "Mute", "controller": "Controller", - "gamepadSupport": "Gamepad Support" + "gamepadSupport": "Gamepad Support", + "showBgmBar": "Show Music Names", } as const; diff --git a/src/locales/fr/bgm-name.ts b/src/locales/fr/bgm-name.ts new file mode 100644 index 00000000000..274673c4ae8 --- /dev/null +++ b/src/locales/fr/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Musique ", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "N2B2 - Vs. Maitre de Kanto", + "battle_johto_champion": "N2B2 - Vs. Maitre de Johto", + "battle_hoenn_champion": "N2B2 - Vs. Maitre de Hoenn", + "battle_sinnoh_champion": "N2B2 - Vs. Maitresse de Sinnoh", + "battle_champion_alder": "NB - Vs. Maitre d’Unys", + "battle_champion_iris": "N2B2 - Vs. Maitresse d’Unys", + "battle_kalos_champion": "XY - Maitresse de Kalos", + "battle_alola_champion": "USUL - Maitre d’Alola", + "battle_galar_champion": "ÉB - Maitre de Galar", + "battle_champion_geeta": "ÉV - Vs. Alisma la Maitresse", + "battle_champion_nemona": "ÉV - Vs. Menzi la Maitresse", + "battle_champion_kieran": "ÉV - Vs. Kassis le Maitre", + "battle_hoenn_elite": "ROSA - Vs. Conseil 4", + "battle_unova_elite": "NB - Vs. Conseil 4", + "battle_kalos_elite": "XY - Vs. Conseil 4", + "battle_alola_elite": "SL - Vs. Conseil 4", + "battle_galar_elite": "ÉB - Vs. Tournoi des Champions", + "battle_paldea_elite": "ÉV - Vs. Conseil 4", + "battle_bb_elite": "ÉV - Vs. Conseil 4 de l’Institut Myrtille", + "battle_final_encounter": "PDM ÉSDX - Vs. Rayquaza", + "battle_final": "NB - Vs. Ghetis", + "battle_kanto_gym": "N2B2 - Vs. Champion·ne d’Arène de Kanto", + "battle_johto_gym": "N2B2 - Vs. Champion·ne d’Arène de Johto", + "battle_hoenn_gym": "N2B2 - Vs. Champion·ne d’Arène de Hoenn", + "battle_sinnoh_gym": "N2B2 - Vs. Champion·ne d’Arène de Sinnoh", + "battle_unova_gym": "NB - Vs. Champion·ne d’Arène d’Unys", + "battle_kalos_gym": "XY - Vs. Champion·ne d’Arène de Kalos", + "battle_galar_gym": "ÉB - Vs. Champion·ne d’Arène de Galar", + "battle_paldea_gym": "ÉV - Vs. Champion·ne d’Arène de Paldea", + "battle_legendary_kanto": "XY - Vs. Légendaire de Kanto", + "battle_legendary_raikou": "HGSS - Vs. Raikou", + "battle_legendary_entei": "HGSS - Vs. Entei", + "battle_legendary_suicune": "HGSS - Vs. Suicune", + "battle_legendary_lugia": "HGSS - Vs. Lugia", + "battle_legendary_ho_oh": "HGSS - Vs. Ho-oh", + "battle_legendary_regis_g5": "N2B2 - Vs. Colosses Légendaires", + "battle_legendary_regis_g6": "ROSA - Vs. Colosses Légendaires", + "battle_legendary_gro_kyo": "ROSA - Vs. Groudon/Kyogre", + "battle_legendary_rayquaza": "ROSA - Vs. Rayquaza", + "battle_legendary_deoxys": "ROSA - Vs. Deoxys", + "battle_legendary_lake_trio": "ROSA - Vs. Gardiens des Lacs", + "battle_legendary_sinnoh": "ROSA - Vs. Légendaire de Sinnoh", + "battle_legendary_dia_pal": "ROSA - Vs. Dialga/Palkia", + "battle_legendary_giratina": "ROSA - Vs. Giratina", + "battle_legendary_arceus": "HGSS - Vs. Arceus", + "battle_legendary_unova": "NB - Vs. Légendaire d’Unys", + "battle_legendary_kyurem": "NB - Vs. Kyurem", + "battle_legendary_res_zek": "NB - Vs. Reshiram/Zekrom", + "battle_legendary_xern_yvel": "XY - Vs. Xerneas/Yveltal", + "battle_legendary_tapu": "SL - Vs. Divinités gardiennes d’Alola", + "battle_legendary_sol_lun": "SL - Vs. Solgaleo/Lunala", + "battle_legendary_ub": "SL - Vs. Ultra-Chimère", + "battle_legendary_dusk_dawn": "USUL - Vs. Necrozma Crinière du Couchant/Ailes de l’Aurore", + "battle_legendary_ultra_nec": "USUL - Vs. Ultra-Necrozma", + "battle_legendary_zac_zam": "ÉB - Vs. Zacian/Zamazenta", + "battle_legendary_glas_spec": "ÉB - Vs. Blizzeval/Spectreval", + "battle_legendary_calyrex": "ÉB - Vs. Sylveroy", + "battle_legendary_birds_galar": "ÉB - Vs. Oiseaux Légendaires de Galar", + "battle_legendary_ruinous": "ÉV - Vs. Trésors du fléau", + "battle_legendary_loyal_three": "ÉV - Vs. Adoramis", + "battle_legendary_ogerpon": "ÉV - Vs. Ogerpon", + "battle_legendary_terapagos": "ÉV - Vs. Terapagos", + "battle_legendary_pecharunt": "ÉV - Vs. Pêchaminus", + "battle_rival": "NB - Vs. Rival", + "battle_rival_2": "NB - Vs. N", + "battle_rival_3": "NB - Combat final Vs. N", + "battle_trainer": "NB - Vs. Dresseur·euse", + "battle_wild": "NB - Vs. Pokémon sauvage", + "battle_wild_strong": "NB - Vs. Pokémon puissant sauvage", + "end_summit": "PDM ÉSDX - Tour Céleste", + "battle_plasma_grunt": "NB - Vs. Team Plasma", + + // Biome Music + "abyss": "PDM EdS - Cratère Obscur", + "badlands": "PDM EdS - Vallée Stérile", + "beach": "PDM EdS - Falaise Trempée", + "cave": "PDM EdS - Pic Céleste (grotte)", + "construction_site": "PDM EdS - Carrière Rocher", + "desert": "PDM EdS - Désert du Nord", + "dojo": "PDM EdS - Dojo Ossatueur", + "end": "PDM EdS - Tour Céleste", + "factory": "PDM EdS - Ruines Cachées", + "fairy_cave": "PDM EdS - Caverne Étoile", + "forest": "PDM EdS - Forêt Crépuscule", + "grass": "PDM EdS - Bois aux Pommes", + "graveyard": "PDM EdS - Forêt Trompeuse", + "ice_cave": "PDM EdS - Montagne Glacier", + "island": "PDM EdS - Côte Escarpée", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "PDM EdS - Caverne Cristal", + "meadow": "PDM EdS - Pic Céleste (forêt)", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "PDM EdS - Mt Corne", + "plains": "PDM EdS - Pic Céleste (prairie)", + "power_plant": "PDM EdS - Plaines Élek", + "ruins": "PDM EdS - Ruine Scellée", + "sea": "PDM EdS - Caverne Saline", + "seabed": "PDM EdS - Caverne Saline profondeurs", + "slum": "PDM EdS - Pic Céleste (côte)", + "snowy_forest": "PDM EdS - Pic Céleste (plaine enneigée)", + "space": "PDM EdS - Ravin Aubaine", + "swamp": "PDM EdS - Mer Fermée", + "tall_grass": "PDM EdS - Forêt Brumeuse", + "temple": "PDM EdS - Grotte Égide", + "town": "PDM EdS - Donjon aléatoire - Thème 3", + "volcano": "PDM EdS - Grotte Étuve", + "wasteland": "PDM EdS - Terres Illusoires", + + // Encounter + "encounter_ace_trainer": "NB - Regards croisés (Topdresseur·euse)", + "encounter_backpacker": "NB - Regards croisés (Randonneur·euse)", + "encounter_clerk": "NB - Regards croisés (Employé·e)", + "encounter_cyclist": "NB - Regards croisés (Cycliste)", + "encounter_lass": "NB - Regards croisés (Fillette)", + "encounter_parasol_lady": "NB - Regards croisés (Sœur Parasol)", + "encounter_pokefan": "NB - Regards croisés (Pokéfan)", + "encounter_psychic": "NB - Regards croisés (Kinésiste)", + "encounter_rich": "NB - Regards croisés (Gentleman)", + "encounter_rival": "NB - Tcheren", + "encounter_roughneck": "NB - Regards croisés (Loubard)", + "encounter_scientist": "NB - Regards croisés (Scientifique)", + "encounter_twins": "NB - Regards croisés (Jumelles)", + "encounter_youngster": "NB - Regards croisés (Gamin)", + + // Other + "heal": "NB - Soin de Pokémon", + "menu": "PDM EdS - Bienvenue dans le monde de Pokémon !", + "title": "PDM EdS - Menu Principal", +} as const; diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 59e8eb9f307..6bc5a53a376 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -4,6 +4,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const frConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/fr/settings.ts b/src/locales/fr/settings.ts index 487c137534a..cd85b0f8cb9 100644 --- a/src/locales/fr/settings.ts +++ b/src/locales/fr/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (Alt)", "mute": "Muet", "controller": "Controller", - "gamepadSupport": "Gamepad Support" + "gamepadSupport": "Gamepad Support", + "showBgmBar": "Montrer titre de la musique", } as const; diff --git a/src/locales/it/bgm-name.ts b/src/locales/it/bgm-name.ts new file mode 100644 index 00000000000..b29e4deb260 --- /dev/null +++ b/src/locales/it/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Music", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "B2W2 Kanto Champion Battle", + "battle_johto_champion": "B2W2 Johto Champion Battle", + "battle_hoenn_champion": "B2W2 Hoenn Champion Battle", + "battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle", + "battle_champion_alder": "BW Unova Champion Battle", + "battle_champion_iris": "B2W2 Unova Champion Battle", + "battle_kalos_champion": "XY Kalos Champion Battle", + "battle_alola_champion": "USUM Alola Champion Battle", + "battle_galar_champion": "SWSH Galar Champion Battle", + "battle_champion_geeta": "SV Champion Geeta Battle", + "battle_champion_nemona": "SV Champion Nemona Battle", + "battle_champion_kieran": "SV Champion Kieran Battle", + "battle_hoenn_elite": "ORAS Elite Four Battle", + "battle_unova_elite": "BW Elite Four Battle", + "battle_kalos_elite": "XY Elite Four Battle", + "battle_alola_elite": "SM Elite Four Battle", + "battle_galar_elite": "SWSH League Tournament Battle", + "battle_paldea_elite": "SV Elite Four Battle", + "battle_bb_elite": "SV BB League Elite Four Battle", + "battle_final_encounter": "PMD RTDX Rayquaza's Domain", + "battle_final": "BW Ghetsis Battle", + "battle_kanto_gym": "B2W2 Kanto Gym Battle", + "battle_johto_gym": "B2W2 Johto Gym Battle", + "battle_hoenn_gym": "B2W2 Hoenn Gym Battle", + "battle_sinnoh_gym": "B2W2 Sinnoh Gym Battle", + "battle_unova_gym": "BW Unova Gym Battle", + "battle_kalos_gym": "XY Kalos Gym Battle", + "battle_galar_gym": "SWSH Galar Gym Battle", + "battle_paldea_gym": "SV Paldea Gym Battle", + "battle_legendary_kanto": "XY Kanto Legendary Battle", + "battle_legendary_raikou": "HGSS Raikou Battle", + "battle_legendary_entei": "HGSS Entei Battle", + "battle_legendary_suicune": "HGSS Suicune Battle", + "battle_legendary_lugia": "HGSS Lugia Battle", + "battle_legendary_ho_oh": "HGSS Ho-oh Battle", + "battle_legendary_regis_g5": "B2W2 Legendary Titan Battle", + "battle_legendary_regis_g6": "ORAS Legendary Titan Battle", + "battle_legendary_gro_kyo": "ORAS Groudon & Kyogre Battle", + "battle_legendary_rayquaza": "ORAS Rayquaza Battle", + "battle_legendary_deoxys": "ORAS Deoxys Battle", + "battle_legendary_lake_trio": "ORAS Lake Guardians Battle", + "battle_legendary_sinnoh": "ORAS Sinnoh Legendary Battle", + "battle_legendary_dia_pal": "ORAS Dialga & Palkia Battle", + "battle_legendary_giratina": "ORAS Giratina Battle", + "battle_legendary_arceus": "HGSS Arceus Battle", + "battle_legendary_unova": "BW Unova Legendary Battle", + "battle_legendary_kyurem": "BW Kyurem Battle", + "battle_legendary_res_zek": "BW Reshiram & Zekrom Battle", + "battle_legendary_xern_yvel": "XY Xerneas & Yveltal Battle", + "battle_legendary_tapu": "SM Tapu Battle", + "battle_legendary_sol_lun": "SM Solgaleo & Lunala Battle", + "battle_legendary_ub": "SM Ultra Beast Battle", + "battle_legendary_dusk_dawn": "USUM Dusk Mane & Dawn Wings Necrozma Battle", + "battle_legendary_ultra_nec": "USUM Ultra Necrozma Battle", + "battle_legendary_zac_zam": "SWSH Zacian & Zamazenta Battle", + "battle_legendary_glas_spec": "SWSH Glastrier & Spectrier Battle", + "battle_legendary_calyrex": "SWSH Calyrex Battle", + "battle_legendary_birds_galar": "SWSH Galarian Legendary Birds Battle", + "battle_legendary_ruinous": "SV Treasures of Ruin Battle", + "battle_legendary_loyal_three": "SV Loyal Three Battle", + "battle_legendary_ogerpon": "SV Ogerpon Battle", + "battle_legendary_terapagos": "SV Terapagos Battle", + "battle_legendary_pecharunt": "SV Pecharunt Battle", + "battle_rival": "BW Rival Battle", + "battle_rival_2": "BW N Battle", + "battle_rival_3": "BW Final N Battle", + "battle_trainer": "BW Trainer Battle", + "battle_wild": "BW Wild Battle", + "battle_wild_strong": "BW Strong Wild Battle", + "end_summit": "PMD RTDX Sky Tower Summit", + "battle_plasma_grunt": "BW Team Plasma Battle", + + // Biome Music + "abyss": "PMD EoS Dark Crater", + "badlands": "PMD EoS Barren Valley", + "beach": "PMD EoS Drenched Bluff", + "cave": "PMD EoS Sky Peak Cave", + "construction_site": "PMD EoS Boulder Quarry", + "desert": "PMD EoS Northern Desert", + "dojo": "PMD EoS Marowa Dojo", + "end": "PMD RTDX Sky Tower", + "factory": "PMD EoS Concealed Ruins", + "fairy_cave": "PMD EoS Star Cave", + "forest": "PMD EoS Dusk Forest", + "grass": "PMD EoS Apple Woods", + "graveyard": "PMD EoS Mystifying Forest", + "ice_cave": "PMD EoS Vast Ice Mountain", + "island": "PMD EoS Craggy Coast", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "PMD EoS Crystal Cave", + "meadow": "PMD EoS Sky Peak Forest", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "PMD EoS Mt. Horn", + "plains": "PMD EoS Sky Peak Prairie", + "power_plant": "PMD EoS Far Amp Plains", + "ruins": "PMD EoS Deep Sealed Ruin", + "sea": "PMD EoS Brine Cave", + "seabed": "PMD EoS Lower Brine Cave", + "slum": "PMD EoS Sky Peak Coast", + "snowy_forest": "PMD EoS Sky Peak Snowfield", + "space": "PMD EoS Fortune Ravine", + "swamp": "PMD EoS Surrounded Sea", + "tall_grass": "PMD EoS Foggy Forest", + "temple": "PMD EoS Aegis Cave", + "town": "PMD EoS Random Dungeon Theme 3", + "volcano": "PMD EoS Steam Cave", + "wasteland": "PMD EoS Hidden Highland", + + // Encounter + "encounter_ace_trainer": "BW Trainers' Eyes Meet (Ace Trainer)", + "encounter_backpacker": "BW Trainers' Eyes Meet (Backpacker)", + "encounter_clerk": "BW Trainers' Eyes Meet (Clerk)", + "encounter_cyclist": "BW Trainers' Eyes Meet (Cyclist)", + "encounter_lass": "BW Trainers' Eyes Meet (Lass)", + "encounter_parasol_lady": "BW Trainers' Eyes Meet (Parasol Lady)", + "encounter_pokefan": "BW Trainers' Eyes Meet (Poke Fan)", + "encounter_psychic": "BW Trainers' Eyes Meet (Psychic)", + "encounter_rich": "BW Trainers' Eyes Meet (Gentleman)", + "encounter_rival": "BW Cheren", + "encounter_roughneck": "BW Trainers' Eyes Meet (Roughneck)", + "encounter_scientist": "BW Trainers' Eyes Meet (Scientist)", + "encounter_twins": "BW Trainers' Eyes Meet (Twins)", + "encounter_youngster": "BW Trainers' Eyes Meet (Youngster)", + + // Other + "heal": "BW Pokémon Heal", + "menu": "PMD Eos Welcome to the World of Pokémon!", + "title": "PMD EoS Top Menu Theme", +} as const; diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 7cc063a6b23..fa0ddb5add2 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -4,6 +4,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const itConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/it/settings.ts b/src/locales/it/settings.ts index ea70c2ec94b..af48368aeeb 100644 --- a/src/locales/it/settings.ts +++ b/src/locales/it/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (Alt)", "mute": "Mute", "controller": "Controller", - "gamepadSupport": "Gamepad Support" + "gamepadSupport": "Gamepad Support", + "showBgmBar": "Show Music Names", } as const; diff --git a/src/locales/ko/bgm-name.ts b/src/locales/ko/bgm-name.ts new file mode 100644 index 00000000000..0b96069680d --- /dev/null +++ b/src/locales/ko/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Music", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "BW2 관동 챔피언 배틀", + "battle_johto_champion": "BW2 성도 챔피언 배틀", + "battle_hoenn_champion": "BW2 호연 챔피언 배틀", + "battle_sinnoh_champion": "BW2 신오 챔피언 배틀", + "battle_champion_alder": "BW 하나 챔피언 배틀", + "battle_champion_iris": "BW2 하나 챔피언 배틀", + "battle_kalos_champion": "XY 칼로스 챔피언 배틀", + "battle_alola_champion": "USUM 알로라 챔피언 배틀", + "battle_galar_champion": "SWSH 가라르 챔피언 배틀", + "battle_champion_geeta": "SV 챔피언 테사 배틀", + "battle_champion_nemona": "SV 챔피언 네모 배틀", + "battle_champion_kieran": "SV 챔피언 카지 배틀", + "battle_hoenn_elite": "ORAS 사천왕 배틀", + "battle_unova_elite": "BW 사천왕 배틀", + "battle_kalos_elite": "XY 사천왕 배틀", + "battle_alola_elite": "SM 사천왕 배틀", + "battle_galar_elite": "SWSH 리그 토너먼트 배틀", + "battle_paldea_elite": "SV 사천왕 배틀", + "battle_bb_elite": "SV 블루베리 리그 사천왕 배틀", + "battle_final_encounter": "불가사의 던전 구조대 DX 레쿠쟈의 영역", + "battle_final": "BW 게치스 배틀", + "battle_kanto_gym": "BW2 관동 체육관 배틀", + "battle_johto_gym": "BW2 성도 체육관 배틀", + "battle_hoenn_gym": "BW2 호연 체육관 배틀", + "battle_sinnoh_gym": "BW2 신오 체육관 배틀", + "battle_unova_gym": "BW 하나 체육관 배틀", + "battle_kalos_gym": "XY 칼로스 체육관 배틀", + "battle_galar_gym": "SWSH 가라르 체육관 배틀", + "battle_paldea_gym": "SV 팔데아 체육관 배틀", + "battle_legendary_kanto": "XY 관동 전설 조우 배틀", + "battle_legendary_raikou": "HGSS 라이코 배틀", + "battle_legendary_entei": "HGSS 엔테이 배틀", + "battle_legendary_suicune": "HGSS 스이쿤 배틀", + "battle_legendary_lugia": "HGSS 루기아 배틀", + "battle_legendary_ho_oh": "HGSS 칠색조 배틀", + "battle_legendary_regis_g5": "BW2 레지시리즈 배틀", + "battle_legendary_regis_g6": "ORAS 레지시리즈 배틀", + "battle_legendary_gro_kyo": "ORAS 그란돈 & 가이오가 배틀", + "battle_legendary_rayquaza": "ORAS 레쿠쟈 배틀", + "battle_legendary_deoxys": "ORAS 데오키시스 배틀", + "battle_legendary_lake_trio": "ORAS 호수의 수호신 배틀", + "battle_legendary_sinnoh": "ORAS 신오 전설 조우 배틀", + "battle_legendary_dia_pal": "ORAS 디아루가 & 펄기아 배틀", + "battle_legendary_giratina": "ORAS 기라티나 배틀", + "battle_legendary_arceus": "HGSS 아르세우스 배틀", + "battle_legendary_unova": "BW 하나 전설 조우 배틀", + "battle_legendary_kyurem": "BW 큐레무 배틀", + "battle_legendary_res_zek": "BW 레시라무 & 제크로무 배틀", + "battle_legendary_xern_yvel": "XY 제르네아스 & 이벨타르 배틀", + "battle_legendary_tapu": "SM 섬 수호신 배틀", + "battle_legendary_sol_lun": "SM 솔가레오 & 루나아라 배틀", + "battle_legendary_ub": "SM 울트라비스트 배틀", + "battle_legendary_dusk_dawn": "USUM 황혼의 갈기 & 새벽의 날개 네크로즈마 배틀", + "battle_legendary_ultra_nec": "USUM 울트라 네크로즈마 배틀", + "battle_legendary_zac_zam": "SWSH 자시안 & 자마젠타 배틀", + "battle_legendary_glas_spec": "SWSH 블리자포스 & 레이스포스 배틀", + "battle_legendary_calyrex": "SWSH 버드렉스 배틀", + "battle_legendary_birds_galar": "SWSH 가라르 전설의 새 배틀", + "battle_legendary_ruinous": "SV 재앙의 보물 배틀", + "battle_legendary_loyal_three": "SV 세벗들 배틀", + "battle_legendary_ogerpon": "SV 오거폰 배틀", + "battle_legendary_terapagos": "SV 테라파고스 배틀", + "battle_legendary_pecharunt": "SV 복숭악동 배틀", + "battle_rival": "BW 라이벌 배틀", + "battle_rival_2": "BW N 배틀", + "battle_rival_3": "BW 최종전 N 배틀", + "battle_trainer": "BW 트레이너 배틀", + "battle_wild": "BW 야생 포켓몬 배틀", + "battle_wild_strong": "BW 강한 야생 포켓몬 조우 배틀", + "end_summit": "불가사의 던전 구조대 DX 천공의 탑 꼭대기", + "battle_plasma_grunt": "BW 플라스마단 배틀", + + // Biome Music + "abyss": "불가사의 던전 하늘의 탐험대 어둠의 화구", + "badlands": "불가사의 던전 하늘의 탐험대 불모의 계곡", + "beach": "불가사의 던전 하늘의 탐험대 축축한 암반", + "cave": "불가사의 던전 하늘의 탐험대 하늘 꼭대기 동굴", + "construction_site": "불가사의 던전 하늘의 탐험대 바위 채석장", + "desert": "불가사의 던전 하늘의 탐험대 북쪽 사막", + "dojo": "불가사의 던전 하늘의 탐험대 텅구리 도장", + "end": "불가사의 던전 구조대DX 천공의 탑", + "factory": "불가사의 던전 하늘의 탐험대 숨겨진 유적", + "fairy_cave": "불가사의 던전 하늘의 탐험대 별의 동굴", + "forest": "불가사의 던전 하늘의 탐험대 검은 숲", + "grass": "불가사의 던전 하늘의 탐험대 사과의 숲", + "graveyard": "불가사의 던전 하늘의 탐험대 신비의 숲", + "ice_cave": "불가사의 던전 하늘의 탐험대 광대한 얼음산", + "island": "불가사의 던전 하늘의 탐험대 연안의 암반", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "불가사의 던전 하늘의 탐험대 수정 동굴", + "meadow": "불가사의 던전 하늘의 탐험대 하늘 꼭대기 숲", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "불가사의 던전 하늘의 탐험대 뿔산", + "plains": "불가사의 던전 하늘의 탐험대 하늘 꼭대기 초원", + "power_plant": "불가사의 던전 하늘의 탐험대 일렉트릭 평원", + "ruins": "불가사의 던전 하늘의 탐험대 봉인의 암반", + "sea": "불가사의 던전 하늘의 탐험대 바닷가 동굴", + "seabed": "불가사의 던전 하늘의 탐험대 바닷가 동굴(저층)", + "slum": "불가사의 던전 하늘의 탐험대 하늘 꼭대기 해변", + "snowy_forest": "불가사의 던전 하늘의 탐험대 하늘 꼭대기 설원", + "space": "불가사의 던전 하늘의 탐험대 행운 협곡", + "swamp": "불가사의 던전 하늘의 탐험대 폐쇄되어진 바다", + "tall_grass": "불가사의 던전 하늘의 탐험대 짙은 안개의 숲", + "temple": "불가사의 던전 하늘의 탐험대 파수꾼의 동굴", + "town": "불가사의 던전 하늘의 탐험대 랜덤 던전 테마 3", + "volcano": "불가사의 던전 하늘의 탐험대 열수의 동굴", + "wasteland": "불가사의 던전 하늘의 탐험대 환상의 대지", + + // Encounter + "encounter_ace_trainer": "BW 눈이 마주치면 승부! (엘리트 트레이너)", + "encounter_backpacker": "BW 눈이 마주치면 승부! (등산가)", + "encounter_clerk": "BW 눈이 마주치면 승부! (회사원)", + "encounter_cyclist": "BW 눈이 마주치면 승부! (사이클링)", + "encounter_lass": "BW 눈이 마주치면 승부! (짧은 치마)", + "encounter_parasol_lady": "BW 눈이 마주치면 승부! (파라솔 아가씨)", + "encounter_pokefan": "BW 눈이 마주치면 승부! (애호가클럽)", + "encounter_psychic": "BW 눈이 마주치면 승부! (초능력자)", + "encounter_rich": "BW 눈이 마주치면 승부! (신사)", + "encounter_rival": "BW 체렌", + "encounter_roughneck": "BW 눈이 마주치면 승부! (빡빡이)", + "encounter_scientist": "BW 눈이 마주치면 승부! (연구원)", + "encounter_twins": "BW 눈이 마주치면 승부! (쌍둥이)", + "encounter_youngster": "BW 눈이 마주치면 승부! (반바지 꼬마)", + + // Other + "heal": "BW 포켓몬 센터", + "menu": "불가사의 던전 하늘의 탐험대 포켓몬 세계에 온 것을 환영한다!", + "title": "불가사의 던전 하늘의 탐험대 메뉴 테마", +} as const; diff --git a/src/locales/ko/config.ts b/src/locales/ko/config.ts index 3ec162abd34..10fa5cb9a3d 100644 --- a/src/locales/ko/config.ts +++ b/src/locales/ko/config.ts @@ -4,6 +4,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const koConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/ko/settings.ts b/src/locales/ko/settings.ts index eb45c32bf8a..ef1469fc8cb 100644 --- a/src/locales/ko/settings.ts +++ b/src/locales/ko/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (대체)", "mute": "음소거", "controller": "컨트롤러", - "gamepadSupport": "게임패드 지원" + "gamepadSupport": "게임패드 지원", + "showBgmBar": "BGM 제목 보여주기", } as const; diff --git a/src/locales/pt_BR/bgm-name.ts b/src/locales/pt_BR/bgm-name.ts new file mode 100644 index 00000000000..b29e4deb260 --- /dev/null +++ b/src/locales/pt_BR/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Music", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "B2W2 Kanto Champion Battle", + "battle_johto_champion": "B2W2 Johto Champion Battle", + "battle_hoenn_champion": "B2W2 Hoenn Champion Battle", + "battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle", + "battle_champion_alder": "BW Unova Champion Battle", + "battle_champion_iris": "B2W2 Unova Champion Battle", + "battle_kalos_champion": "XY Kalos Champion Battle", + "battle_alola_champion": "USUM Alola Champion Battle", + "battle_galar_champion": "SWSH Galar Champion Battle", + "battle_champion_geeta": "SV Champion Geeta Battle", + "battle_champion_nemona": "SV Champion Nemona Battle", + "battle_champion_kieran": "SV Champion Kieran Battle", + "battle_hoenn_elite": "ORAS Elite Four Battle", + "battle_unova_elite": "BW Elite Four Battle", + "battle_kalos_elite": "XY Elite Four Battle", + "battle_alola_elite": "SM Elite Four Battle", + "battle_galar_elite": "SWSH League Tournament Battle", + "battle_paldea_elite": "SV Elite Four Battle", + "battle_bb_elite": "SV BB League Elite Four Battle", + "battle_final_encounter": "PMD RTDX Rayquaza's Domain", + "battle_final": "BW Ghetsis Battle", + "battle_kanto_gym": "B2W2 Kanto Gym Battle", + "battle_johto_gym": "B2W2 Johto Gym Battle", + "battle_hoenn_gym": "B2W2 Hoenn Gym Battle", + "battle_sinnoh_gym": "B2W2 Sinnoh Gym Battle", + "battle_unova_gym": "BW Unova Gym Battle", + "battle_kalos_gym": "XY Kalos Gym Battle", + "battle_galar_gym": "SWSH Galar Gym Battle", + "battle_paldea_gym": "SV Paldea Gym Battle", + "battle_legendary_kanto": "XY Kanto Legendary Battle", + "battle_legendary_raikou": "HGSS Raikou Battle", + "battle_legendary_entei": "HGSS Entei Battle", + "battle_legendary_suicune": "HGSS Suicune Battle", + "battle_legendary_lugia": "HGSS Lugia Battle", + "battle_legendary_ho_oh": "HGSS Ho-oh Battle", + "battle_legendary_regis_g5": "B2W2 Legendary Titan Battle", + "battle_legendary_regis_g6": "ORAS Legendary Titan Battle", + "battle_legendary_gro_kyo": "ORAS Groudon & Kyogre Battle", + "battle_legendary_rayquaza": "ORAS Rayquaza Battle", + "battle_legendary_deoxys": "ORAS Deoxys Battle", + "battle_legendary_lake_trio": "ORAS Lake Guardians Battle", + "battle_legendary_sinnoh": "ORAS Sinnoh Legendary Battle", + "battle_legendary_dia_pal": "ORAS Dialga & Palkia Battle", + "battle_legendary_giratina": "ORAS Giratina Battle", + "battle_legendary_arceus": "HGSS Arceus Battle", + "battle_legendary_unova": "BW Unova Legendary Battle", + "battle_legendary_kyurem": "BW Kyurem Battle", + "battle_legendary_res_zek": "BW Reshiram & Zekrom Battle", + "battle_legendary_xern_yvel": "XY Xerneas & Yveltal Battle", + "battle_legendary_tapu": "SM Tapu Battle", + "battle_legendary_sol_lun": "SM Solgaleo & Lunala Battle", + "battle_legendary_ub": "SM Ultra Beast Battle", + "battle_legendary_dusk_dawn": "USUM Dusk Mane & Dawn Wings Necrozma Battle", + "battle_legendary_ultra_nec": "USUM Ultra Necrozma Battle", + "battle_legendary_zac_zam": "SWSH Zacian & Zamazenta Battle", + "battle_legendary_glas_spec": "SWSH Glastrier & Spectrier Battle", + "battle_legendary_calyrex": "SWSH Calyrex Battle", + "battle_legendary_birds_galar": "SWSH Galarian Legendary Birds Battle", + "battle_legendary_ruinous": "SV Treasures of Ruin Battle", + "battle_legendary_loyal_three": "SV Loyal Three Battle", + "battle_legendary_ogerpon": "SV Ogerpon Battle", + "battle_legendary_terapagos": "SV Terapagos Battle", + "battle_legendary_pecharunt": "SV Pecharunt Battle", + "battle_rival": "BW Rival Battle", + "battle_rival_2": "BW N Battle", + "battle_rival_3": "BW Final N Battle", + "battle_trainer": "BW Trainer Battle", + "battle_wild": "BW Wild Battle", + "battle_wild_strong": "BW Strong Wild Battle", + "end_summit": "PMD RTDX Sky Tower Summit", + "battle_plasma_grunt": "BW Team Plasma Battle", + + // Biome Music + "abyss": "PMD EoS Dark Crater", + "badlands": "PMD EoS Barren Valley", + "beach": "PMD EoS Drenched Bluff", + "cave": "PMD EoS Sky Peak Cave", + "construction_site": "PMD EoS Boulder Quarry", + "desert": "PMD EoS Northern Desert", + "dojo": "PMD EoS Marowa Dojo", + "end": "PMD RTDX Sky Tower", + "factory": "PMD EoS Concealed Ruins", + "fairy_cave": "PMD EoS Star Cave", + "forest": "PMD EoS Dusk Forest", + "grass": "PMD EoS Apple Woods", + "graveyard": "PMD EoS Mystifying Forest", + "ice_cave": "PMD EoS Vast Ice Mountain", + "island": "PMD EoS Craggy Coast", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "PMD EoS Crystal Cave", + "meadow": "PMD EoS Sky Peak Forest", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "PMD EoS Mt. Horn", + "plains": "PMD EoS Sky Peak Prairie", + "power_plant": "PMD EoS Far Amp Plains", + "ruins": "PMD EoS Deep Sealed Ruin", + "sea": "PMD EoS Brine Cave", + "seabed": "PMD EoS Lower Brine Cave", + "slum": "PMD EoS Sky Peak Coast", + "snowy_forest": "PMD EoS Sky Peak Snowfield", + "space": "PMD EoS Fortune Ravine", + "swamp": "PMD EoS Surrounded Sea", + "tall_grass": "PMD EoS Foggy Forest", + "temple": "PMD EoS Aegis Cave", + "town": "PMD EoS Random Dungeon Theme 3", + "volcano": "PMD EoS Steam Cave", + "wasteland": "PMD EoS Hidden Highland", + + // Encounter + "encounter_ace_trainer": "BW Trainers' Eyes Meet (Ace Trainer)", + "encounter_backpacker": "BW Trainers' Eyes Meet (Backpacker)", + "encounter_clerk": "BW Trainers' Eyes Meet (Clerk)", + "encounter_cyclist": "BW Trainers' Eyes Meet (Cyclist)", + "encounter_lass": "BW Trainers' Eyes Meet (Lass)", + "encounter_parasol_lady": "BW Trainers' Eyes Meet (Parasol Lady)", + "encounter_pokefan": "BW Trainers' Eyes Meet (Poke Fan)", + "encounter_psychic": "BW Trainers' Eyes Meet (Psychic)", + "encounter_rich": "BW Trainers' Eyes Meet (Gentleman)", + "encounter_rival": "BW Cheren", + "encounter_roughneck": "BW Trainers' Eyes Meet (Roughneck)", + "encounter_scientist": "BW Trainers' Eyes Meet (Scientist)", + "encounter_twins": "BW Trainers' Eyes Meet (Twins)", + "encounter_youngster": "BW Trainers' Eyes Meet (Youngster)", + + // Other + "heal": "BW Pokémon Heal", + "menu": "PMD Eos Welcome to the World of Pokémon!", + "title": "PMD EoS Top Menu Theme", +} as const; diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 4effad14af2..53195fbc32e 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -6,6 +6,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const ptBrConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/pt_BR/settings.ts b/src/locales/pt_BR/settings.ts index f094e64d495..9d336cf0757 100644 --- a/src/locales/pt_BR/settings.ts +++ b/src/locales/pt_BR/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (Alt)", "mute": "Mudo", "controller": "Controle", - "gamepadSupport": "Suporte para Controle" + "gamepadSupport": "Suporte para Controle", + "showBgmBar": "Show Music Names", } as const; diff --git a/src/locales/zh_CN/bgm-name.ts b/src/locales/zh_CN/bgm-name.ts new file mode 100644 index 00000000000..20f6b10ece4 --- /dev/null +++ b/src/locales/zh_CN/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "BGM", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "黑2白2「决战!关都冠军」", + "battle_johto_champion": "黑2白2「决战!城都冠军」", + "battle_hoenn_champion": "黑2白2「决战!丰缘冠军」", + "battle_sinnoh_champion": "黑2白2「决战!神奥冠军」", + "battle_champion_alder": "黑白「决战!合众冠军」", + "battle_champion_iris": "黑2白2「决战!合众冠军」", + "battle_kalos_champion": "XY「决战!卡洛斯冠军」", + "battle_alola_champion": "究极日月「顶上决战!」", + "battle_galar_champion": "剑盾「决战!伽勒尔冠军」", + "battle_champion_geeta": "朱紫「决战!帕底亚首席也慈」", + "battle_champion_nemona": "朱紫「决战!帕底亚冠军妮莫」", + "battle_champion_kieran": "朱紫「决战!蓝莓学园冠军乌栗」", + "battle_hoenn_elite": "Ω红宝石α蓝宝石 「战斗!丰缘四天王」", + "battle_unova_elite": "黑白 「战斗!合众四天王」", + "battle_kalos_elite": "XY「战斗!卡洛斯四天王」", + "battle_alola_elite": "日月「战斗!阿罗拉四天王」", + "battle_galar_elite": "剑盾「联盟锦标赛」", + "battle_paldea_elite": "朱紫「战斗!帕底亚四天王」", + "battle_bb_elite": "朱紫「战斗!蓝之圆盘四天王」", + "battle_final_encounter": "探险队DX 「裂空座的领域」", + "battle_final": "黑白「战斗!魁奇思」", + "battle_kanto_gym": "黑2白2「战斗!关都道馆主」", + "battle_johto_gym": "黑2白2「战斗!城都道馆主」", + "battle_hoenn_gym": "黑2白2「战斗!合众道馆主」", + "battle_sinnoh_gym": "黑2白2「战斗!神奥道馆主」", + "battle_unova_gym": "黑白「战斗!合众道馆主」", + "battle_kalos_gym": "XY「战斗!卡洛斯道馆主」", + "battle_galar_gym": "剑盾「战斗!伽勒尔道馆主」", + "battle_paldea_gym": "朱紫「战斗!帕底亚道馆主」", + "battle_legendary_kanto": "XY「战斗!传说宝可梦(关都)」", + "battle_legendary_raikou": "心金魂银「战斗!雷公」", + "battle_legendary_entei": "心金魂银「战斗!炎帝」", + "battle_legendary_suicune": "心金魂银「战斗!水君」", + "battle_legendary_lugia": "心金魂银「战斗!洛奇亚」", + "battle_legendary_ho_oh": "心金魂银「战斗!凤王」", + "battle_legendary_regis_g5": "黑2白2「战斗!传说中的巨人」", + "battle_legendary_regis_g6": "Ω红宝石α蓝宝石「战斗!传说中的巨人」", + "battle_legendary_gro_kyo": "Ω红宝石α蓝宝石「战斗!原始回归」", + "battle_legendary_rayquaza": "Ω红宝石α蓝宝石「战斗!超古代宝可梦」", + "battle_legendary_deoxys": "Ω红宝石α蓝宝石「战斗!代欧奇希斯」", + "battle_legendary_lake_trio": "Ω红宝石α蓝宝石「战斗!由克希・艾姆利多・亚克诺姆」", + "battle_legendary_sinnoh": "Ω红宝石α蓝宝石「战斗!传说的宝可梦」", + "battle_legendary_dia_pal": "Ω红宝石α蓝宝石「战斗!帝牙卢卡・帕路奇亚」", + "battle_legendary_giratina": "Ω红宝石α蓝宝石「战斗!骑拉帝纳」", + "battle_legendary_arceus": "心金魂银「阿尔宙斯」", + "battle_legendary_unova": "黑白「战斗!传说的宝可梦」", + "battle_legendary_kyurem": "黑白「战斗!酋雷姆」", + "battle_legendary_res_zek": "黑白「战斗!莱希拉姆・捷克罗姆」", + "battle_legendary_xern_yvel": "XY「战斗!哲尔尼亚斯・伊裴尔塔尔」", + "battle_legendary_tapu": "日月「战斗!卡璞」", + "battle_legendary_sol_lun": "日月「战斗!露奈雅拉・索尔迦雷欧」", + "battle_legendary_ub": "日月「战斗!究极异兽」", + "battle_legendary_dusk_dawn": "究极日月「战斗!日食・月食 奈克洛兹玛」", + "battle_legendary_ultra_nec": "究极日月「战斗!究极奈克洛兹玛」", + "battle_legendary_zac_zam": "剑盾「战斗!苍响・藏玛然特」", + "battle_legendary_glas_spec": "剑盾「战斗! 雪暴马・灵幽马」", + "battle_legendary_calyrex": "剑盾「战斗!蕾冠王」", + "battle_legendary_birds_galar": "剑盾「战斗!传说的鸟宝可梦」", + "battle_legendary_ruinous": "朱紫「战斗!灾厄宝可梦」", + "battle_legendary_loyal_three": "朱紫「战斗!宝伴」", + "battle_legendary_ogerpon": "朱紫「战斗!厄鬼椪」", + "battle_legendary_terapagos": "朱紫「战斗!太乐巴戈斯」", + "battle_legendary_pecharunt": "朱紫「战斗!桃歹郎」", + "battle_rival": "黑白「战斗!黑连・贝尔」", + "battle_rival_2": "黑白「战斗!N」", + "battle_rival_3": "黑白「决战!N」", + "battle_trainer": "黑白「战斗!训练师」", + "battle_wild": "黑白「战斗!野生宝可梦」", + "battle_wild_strong": "黑白「战斗!强大野生宝可梦」", + "end_summit": "探险队DX 「天空之柱 顶层」", + "battle_plasma_grunt": "黑白「战斗!等离子团」", + + // Biome Music + "abyss": "空之探险队「黑暗小丘」", + "badlands": "空之探险队「枯竭之谷」", + "beach": "空之探险队「潮湿岩地」", + "cave": "空之探险队「天空顶端(洞窟)」", + "construction_site": "空之探险队「幻影石室」", + "desert": "空之探险队「北方沙漠」", + "dojo": "空之探险队「嘎啦嘎啦道场」", + "end": "探险队DX「天空之柱」", + "factory": "空之探险队「隐藏遗迹」", + "fairy_cave": "空之探险队「星之洞窟」", + "forest": "空之探险队「黑暗森林」", + "grass": "空之探险队「苹果森林」", + "graveyard": "空之探险队「神秘森林」", + "ice_cave": "空之探险队「大冰山」", + "island": "空之探险队「沿岸岩地」", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "空之探险队「水晶洞窟」", + "meadow": "空之探险队「天空顶端(森林)」", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "空之探险队「角山」", + "plains": "空之探险队「天空顶端(草原)」", + "power_plant": "空之探险队「电气平原 深处」", + "ruins": "空之探险队「封印岩地 深处」", + "sea": "空之探险队「石滩洞窟」", + "seabed": "空之探险队「石滩洞窟 下层」", + "slum": "空之探险队「天空顶端(岩场)」", + "snowy_forest": "空之探险队「天空顶端(雪山)」", + "space": "空之探险队「财宝岩地」", + "swamp": "空之探险队「封闭之海」", + "tall_grass": "空之探险队「浓雾森林」", + "temple": "空之探险队「守护洞穴」", + "town": "空之探险队「随机迷宫3」", + "volcano": "空之探险队「热水洞窟」", + "wasteland": "空之探险队「梦幻高原」", + + // Encounter + "encounter_ace_trainer": "黑白 「视线!精英训练师」", + "encounter_backpacker": "黑白 「视线!背包客」", + "encounter_clerk": "黑白 「视线!上班族」", + "encounter_cyclist": "黑白 「视线!自行车手」", + "encounter_lass": "黑白 「视线!迷你裙」", + "encounter_parasol_lady": "黑白 「视线!阳伞姐姐」", + "encounter_pokefan": "黑白 「视线!宝可梦爱好者」", + "encounter_psychic": "黑白 「视线!超能力者」", + "encounter_rich": "黑白 「视线!绅士」", + "encounter_rival": "黑白「黑连」", + "encounter_roughneck": "黑白 「视线!光头」", + "encounter_scientist": "黑白 「视线!科学家」", + "encounter_twins": "黑白 「视线!双胞胎」", + "encounter_youngster": "黑白 「视线!短裤小子」", + + // Other + "heal": "黑白「宝可梦回复」", + "menu": "空之探险队「欢迎来到宝可梦的世界」", + "title": "空之探险队「主题曲」", +} as const; diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index ecef682581f..169c91535ed 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -4,6 +4,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const zhCnConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/zh_CN/settings.ts b/src/locales/zh_CN/settings.ts index f37a59613f5..3ca6cb435c6 100644 --- a/src/locales/zh_CN/settings.ts +++ b/src/locales/zh_CN/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (备用)", "mute": "静音", "controller": "控制器", - "gamepadSupport": "手柄支持" + "gamepadSupport": "手柄支持", + "showBgmBar": "显示音乐名称", } as const; diff --git a/src/locales/zh_TW/bgm-name.ts b/src/locales/zh_TW/bgm-name.ts new file mode 100644 index 00000000000..b29e4deb260 --- /dev/null +++ b/src/locales/zh_TW/bgm-name.ts @@ -0,0 +1,135 @@ +import { SimpleTranslationEntries } from "#app/interfaces/locales"; + +export const bgmName: SimpleTranslationEntries = { + "music": "Music", + "missing_entries" : "{{name}}", + "battle_kanto_champion": "B2W2 Kanto Champion Battle", + "battle_johto_champion": "B2W2 Johto Champion Battle", + "battle_hoenn_champion": "B2W2 Hoenn Champion Battle", + "battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle", + "battle_champion_alder": "BW Unova Champion Battle", + "battle_champion_iris": "B2W2 Unova Champion Battle", + "battle_kalos_champion": "XY Kalos Champion Battle", + "battle_alola_champion": "USUM Alola Champion Battle", + "battle_galar_champion": "SWSH Galar Champion Battle", + "battle_champion_geeta": "SV Champion Geeta Battle", + "battle_champion_nemona": "SV Champion Nemona Battle", + "battle_champion_kieran": "SV Champion Kieran Battle", + "battle_hoenn_elite": "ORAS Elite Four Battle", + "battle_unova_elite": "BW Elite Four Battle", + "battle_kalos_elite": "XY Elite Four Battle", + "battle_alola_elite": "SM Elite Four Battle", + "battle_galar_elite": "SWSH League Tournament Battle", + "battle_paldea_elite": "SV Elite Four Battle", + "battle_bb_elite": "SV BB League Elite Four Battle", + "battle_final_encounter": "PMD RTDX Rayquaza's Domain", + "battle_final": "BW Ghetsis Battle", + "battle_kanto_gym": "B2W2 Kanto Gym Battle", + "battle_johto_gym": "B2W2 Johto Gym Battle", + "battle_hoenn_gym": "B2W2 Hoenn Gym Battle", + "battle_sinnoh_gym": "B2W2 Sinnoh Gym Battle", + "battle_unova_gym": "BW Unova Gym Battle", + "battle_kalos_gym": "XY Kalos Gym Battle", + "battle_galar_gym": "SWSH Galar Gym Battle", + "battle_paldea_gym": "SV Paldea Gym Battle", + "battle_legendary_kanto": "XY Kanto Legendary Battle", + "battle_legendary_raikou": "HGSS Raikou Battle", + "battle_legendary_entei": "HGSS Entei Battle", + "battle_legendary_suicune": "HGSS Suicune Battle", + "battle_legendary_lugia": "HGSS Lugia Battle", + "battle_legendary_ho_oh": "HGSS Ho-oh Battle", + "battle_legendary_regis_g5": "B2W2 Legendary Titan Battle", + "battle_legendary_regis_g6": "ORAS Legendary Titan Battle", + "battle_legendary_gro_kyo": "ORAS Groudon & Kyogre Battle", + "battle_legendary_rayquaza": "ORAS Rayquaza Battle", + "battle_legendary_deoxys": "ORAS Deoxys Battle", + "battle_legendary_lake_trio": "ORAS Lake Guardians Battle", + "battle_legendary_sinnoh": "ORAS Sinnoh Legendary Battle", + "battle_legendary_dia_pal": "ORAS Dialga & Palkia Battle", + "battle_legendary_giratina": "ORAS Giratina Battle", + "battle_legendary_arceus": "HGSS Arceus Battle", + "battle_legendary_unova": "BW Unova Legendary Battle", + "battle_legendary_kyurem": "BW Kyurem Battle", + "battle_legendary_res_zek": "BW Reshiram & Zekrom Battle", + "battle_legendary_xern_yvel": "XY Xerneas & Yveltal Battle", + "battle_legendary_tapu": "SM Tapu Battle", + "battle_legendary_sol_lun": "SM Solgaleo & Lunala Battle", + "battle_legendary_ub": "SM Ultra Beast Battle", + "battle_legendary_dusk_dawn": "USUM Dusk Mane & Dawn Wings Necrozma Battle", + "battle_legendary_ultra_nec": "USUM Ultra Necrozma Battle", + "battle_legendary_zac_zam": "SWSH Zacian & Zamazenta Battle", + "battle_legendary_glas_spec": "SWSH Glastrier & Spectrier Battle", + "battle_legendary_calyrex": "SWSH Calyrex Battle", + "battle_legendary_birds_galar": "SWSH Galarian Legendary Birds Battle", + "battle_legendary_ruinous": "SV Treasures of Ruin Battle", + "battle_legendary_loyal_three": "SV Loyal Three Battle", + "battle_legendary_ogerpon": "SV Ogerpon Battle", + "battle_legendary_terapagos": "SV Terapagos Battle", + "battle_legendary_pecharunt": "SV Pecharunt Battle", + "battle_rival": "BW Rival Battle", + "battle_rival_2": "BW N Battle", + "battle_rival_3": "BW Final N Battle", + "battle_trainer": "BW Trainer Battle", + "battle_wild": "BW Wild Battle", + "battle_wild_strong": "BW Strong Wild Battle", + "end_summit": "PMD RTDX Sky Tower Summit", + "battle_plasma_grunt": "BW Team Plasma Battle", + + // Biome Music + "abyss": "PMD EoS Dark Crater", + "badlands": "PMD EoS Barren Valley", + "beach": "PMD EoS Drenched Bluff", + "cave": "PMD EoS Sky Peak Cave", + "construction_site": "PMD EoS Boulder Quarry", + "desert": "PMD EoS Northern Desert", + "dojo": "PMD EoS Marowa Dojo", + "end": "PMD RTDX Sky Tower", + "factory": "PMD EoS Concealed Ruins", + "fairy_cave": "PMD EoS Star Cave", + "forest": "PMD EoS Dusk Forest", + "grass": "PMD EoS Apple Woods", + "graveyard": "PMD EoS Mystifying Forest", + "ice_cave": "PMD EoS Vast Ice Mountain", + "island": "PMD EoS Craggy Coast", + //"jungle": "jungle", // The composer thinks about a more creative name + //"labratory": "labratory", // The composer thinks about a more creative name + "lake": "PMD EoS Crystal Cave", + "meadow": "PMD EoS Sky Peak Forest", + //"metropolis": "metropolis", // The composer thinks about a more creative name + "mountain": "PMD EoS Mt. Horn", + "plains": "PMD EoS Sky Peak Prairie", + "power_plant": "PMD EoS Far Amp Plains", + "ruins": "PMD EoS Deep Sealed Ruin", + "sea": "PMD EoS Brine Cave", + "seabed": "PMD EoS Lower Brine Cave", + "slum": "PMD EoS Sky Peak Coast", + "snowy_forest": "PMD EoS Sky Peak Snowfield", + "space": "PMD EoS Fortune Ravine", + "swamp": "PMD EoS Surrounded Sea", + "tall_grass": "PMD EoS Foggy Forest", + "temple": "PMD EoS Aegis Cave", + "town": "PMD EoS Random Dungeon Theme 3", + "volcano": "PMD EoS Steam Cave", + "wasteland": "PMD EoS Hidden Highland", + + // Encounter + "encounter_ace_trainer": "BW Trainers' Eyes Meet (Ace Trainer)", + "encounter_backpacker": "BW Trainers' Eyes Meet (Backpacker)", + "encounter_clerk": "BW Trainers' Eyes Meet (Clerk)", + "encounter_cyclist": "BW Trainers' Eyes Meet (Cyclist)", + "encounter_lass": "BW Trainers' Eyes Meet (Lass)", + "encounter_parasol_lady": "BW Trainers' Eyes Meet (Parasol Lady)", + "encounter_pokefan": "BW Trainers' Eyes Meet (Poke Fan)", + "encounter_psychic": "BW Trainers' Eyes Meet (Psychic)", + "encounter_rich": "BW Trainers' Eyes Meet (Gentleman)", + "encounter_rival": "BW Cheren", + "encounter_roughneck": "BW Trainers' Eyes Meet (Roughneck)", + "encounter_scientist": "BW Trainers' Eyes Meet (Scientist)", + "encounter_twins": "BW Trainers' Eyes Meet (Twins)", + "encounter_youngster": "BW Trainers' Eyes Meet (Youngster)", + + // Other + "heal": "BW Pokémon Heal", + "menu": "PMD Eos Welcome to the World of Pokémon!", + "title": "PMD EoS Top Menu Theme", +} as const; diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts index 08063f9f154..1cbb4e6e2c1 100644 --- a/src/locales/zh_TW/config.ts +++ b/src/locales/zh_TW/config.ts @@ -4,6 +4,7 @@ import { PGFachv, PGMachv } from "./achv"; import { battle } from "./battle"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; +import { bgmName } from "./bgm-name"; import { biome } from "./biome"; import { challenges } from "./challenges"; import { commandUiHandler } from "./command-ui-handler"; @@ -48,6 +49,7 @@ export const zhTwConfig = { battle: battle, battleMessageUiHandler: battleMessageUiHandler, berry: berry, + bgmName: bgmName, biome: biome, challenges: challenges, commandUiHandler: commandUiHandler, diff --git a/src/locales/zh_TW/settings.ts b/src/locales/zh_TW/settings.ts index c70a8e0c625..dcb87fafe35 100644 --- a/src/locales/zh_TW/settings.ts +++ b/src/locales/zh_TW/settings.ts @@ -94,5 +94,6 @@ export const settings: SimpleTranslationEntries = { "alt": " (備用)", "mute": "靜音", "controller": "控制器", - "gamepadSupport": "手柄支持" + "gamepadSupport": "手柄支持", + "showBgmBar": "Show Music Names", } as const; diff --git a/src/system/settings/settings.ts b/src/system/settings/settings.ts index 1cc525b0bac..b09de095259 100644 --- a/src/system/settings/settings.ts +++ b/src/system/settings/settings.ts @@ -96,7 +96,8 @@ export const SettingKeys = { Master_Volume: "MASTER_VOLUME", BGM_Volume: "BGM_VOLUME", SE_Volume: "SE_VOLUME", - Music_Preference: "MUSIC_PREFERENCE" + Music_Preference: "MUSIC_PREFERENCE", + Show_BGM_Bar: "SHOW_BGM_BAR", }; /** @@ -488,6 +489,14 @@ export const Setting: Array = [ default: 0, type: SettingType.DISPLAY }, + { + key: SettingKeys.Show_BGM_Bar, + label: i18next.t("settings:showBgmBar"), + options: OFF_ON, + default: 0, + type: SettingType.DISPLAY, + requireReload: true + }, { key: SettingKeys.Master_Volume, label: i18next.t("settings:masterVolume"), @@ -525,7 +534,8 @@ export const Setting: Array = [ default: 0, type: SettingType.AUDIO, requireReload: true - } + }, + ]; /** @@ -600,11 +610,13 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): case SettingKeys.Battle_Style: scene.battleStyle = value; break; + case SettingKeys.Show_BGM_Bar: + scene.showBgmBar = Setting[index].options[value].value === "On"; + break; case SettingKeys.Candy_Upgrade_Notification: if (scene.candyUpgradeNotification === value) { break; } - scene.candyUpgradeNotification = value; scene.eventTarget.dispatchEvent(new CandyUpgradeNotificationChangedEvent(value)); break; diff --git a/src/ui/ability-bar.ts b/src/ui/ability-bar.ts index 2bc5f028ddb..a0b249695b9 100644 --- a/src/ui/ability-bar.ts +++ b/src/ui/ability-bar.ts @@ -44,9 +44,6 @@ export default class AbilityBar extends Phaser.GameObjects.Container { (this.scene as BattleScene).fieldUI.bringToTop(this); - if (this.tween) { - this.tween.stop(); - } this.y = baseY + ((this.scene as BattleScene).currentBattle.double ? 14 : 0); this.tween = this.scene.tweens.add({ diff --git a/src/ui/arena-flyout.ts b/src/ui/arena-flyout.ts index 4d934c5fcf4..9c0a2e7c8ce 100644 --- a/src/ui/arena-flyout.ts +++ b/src/ui/arena-flyout.ts @@ -184,19 +184,7 @@ export default class ArenaFlyout extends Phaser.GameObjects.Container { this.battleScene.arena.eventTarget.addEventListener(ArenaEventType.TAG_REMOVED, this.onFieldEffectChangedEvent); } - /** - * Formats a string to title case - * @param unformattedText Text to be formatted - * @returns the formatted string - */ - private formatText(unformattedText: string): string { - const text = unformattedText.split("_"); - for (let i = 0; i < text.length; i++) { - text[i] = text[i].charAt(0).toUpperCase() + text[i].substring(1).toLowerCase(); - } - return text.join(" "); - } /** Clears out the current string stored in all arena effect texts */ private clearText() { @@ -233,7 +221,7 @@ export default class ArenaFlyout extends Phaser.GameObjects.Container { break; } - textObject.text += this.formatText(fieldEffectInfo.name); + textObject.text += Utils.formatText(fieldEffectInfo.name); if (fieldEffectInfo.effecType === ArenaEffectType.TERRAIN) { textObject.text += " Terrain"; // Adds 'Terrain' since the enum does not contain it } diff --git a/src/ui/bgm-bar.ts b/src/ui/bgm-bar.ts new file mode 100644 index 00000000000..5bca9632012 --- /dev/null +++ b/src/ui/bgm-bar.ts @@ -0,0 +1,101 @@ +import BattleScene from "../battle-scene"; +import {addTextObject, TextStyle} from "./text"; +import i18next from "i18next"; +import * as Utils from "#app/utils"; + + +const hiddenX = -150; +const shownX = 0; +const baseY = 0; + + +export default class BgmBar extends Phaser.GameObjects.Container { + private defaultWidth: number; + private defaultHeight: number; + + private bg: Phaser.GameObjects.NineSlice; + private musicText: Phaser.GameObjects.Text; + private noteText: Phaser.GameObjects.Text; + + private tween: Phaser.Tweens.Tween; + private autoHideTimer: NodeJS.Timeout; + private queue: (string)[] = []; + + + public shown: boolean; + + constructor(scene: BattleScene) { + super(scene, hiddenX, baseY); + } + + setup(): void { + this.defaultWidth = 200; + this.defaultHeight = 100; + + this.bg = this.scene.add.nineslice(-5, -5, "ability_bar_left", null, this.defaultWidth, this.defaultHeight, 0, 0, 10, 10); + this.bg.setOrigin(0, 0); + + this.add(this.bg); + + this.noteText = addTextObject(this.scene, 5, 5, "", TextStyle.MESSAGE, {fontSize: "72px"}); + this.noteText.setOrigin(0, 0); + this.add(this.noteText); + + this.musicText = addTextObject(this.scene, 30, 5, "", TextStyle.MESSAGE, {fontSize: "72px"}); + this.musicText.setOrigin(0, 0); + this.musicText.setWordWrapWidth(650, true); + + this.add(this.musicText); + + this.setVisible(false); + this.shown = false; + } + + /* + * Set the BGM Name to the BGM bar. + * @param {string} bgmName The name of the BGM to set. + */ + setBgmToBgmBar(bgmName: string): void { + this.noteText.setText(`${i18next.t("bgmName:music")}:`); + this.musicText.setText(`${this.getRealBgmName(bgmName)}`); + if (!(this.scene as BattleScene).showBgmBar) { + return; + } + + this.musicText.width = this.bg.width - 20; + this.musicText.setWordWrapWidth(this.defaultWidth * 4); + this.bg.width = Math.min(this.defaultWidth, this.noteText.displayWidth + this.musicText.displayWidth + 30); + + this.bg.height = Math.min(this.defaultHeight, this.musicText.displayHeight + 20); + + (this.scene as BattleScene).fieldUI.bringToTop(this); + + this.y = baseY; + } + + /* + Show or hide the BGM bar. + @param {boolean} visible Whether to show or hide the BGM bar. + */ + public toggleBgmBar(visible: boolean): void { + if (!(this.scene as BattleScene).showBgmBar) { + this.setVisible(false); + return; + } + this.scene.tweens.add({ + targets: this, + x: visible ? shownX : hiddenX, + duration: 500, + ease: "Sine.easeInOut", + onComplete: () => { + this.setVisible(true); + } + }); + } + + getRealBgmName(bgmName: string): string { + return i18next.t([`bgmName:${bgmName}`, "bgmName:missing_entries"], {name: Utils.formatText(bgmName)}); + } +} + + diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 0b5082d215e..c86da69e0d1 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -10,6 +10,7 @@ import { updateUserInfo } from "../account"; import i18next from "i18next"; import {Button} from "#enums/buttons"; import { GameDataType } from "#enums/game-data-type"; +import BgmBar from "#app/ui/bgm-bar"; enum MenuOptions { GAME_SETTINGS, @@ -45,6 +46,9 @@ export default class MenuUiHandler extends MessageUiHandler { protected manageDataConfig: OptionSelectConfig; protected communityConfig: OptionSelectConfig; + public bgmBar: BgmBar; + + constructor(scene: BattleScene, mode?: Mode) { super(scene, mode); @@ -62,6 +66,11 @@ export default class MenuUiHandler extends MessageUiHandler { wikiUrl = `https://wiki.pokerogue.net/${lang}:start`; } + this.bgmBar = new BgmBar(this.scene); + this.bgmBar.setup(); + + ui.bgmBar = this.bgmBar; + this.menuContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); this.menuContainer.setName("menu"); this.menuContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); @@ -101,6 +110,8 @@ export default class MenuUiHandler extends MessageUiHandler { this.menuMessageBoxContainer.add(menuMessageText); + this.menuContainer.add(this.bgmBar); + this.message = menuMessageText; this.menuContainer.add(this.menuMessageBoxContainer); @@ -253,6 +264,7 @@ export default class MenuUiHandler extends MessageUiHandler { } show(args: any[]): boolean { + super.show(args); this.menuContainer.setVisible(true); @@ -266,6 +278,9 @@ export default class MenuUiHandler extends MessageUiHandler { handleTutorial(this.scene, Tutorial.Menu); + this.bgmBar.toggleBgmBar(true); + + return true; } @@ -421,6 +436,7 @@ export default class MenuUiHandler extends MessageUiHandler { clear() { super.clear(); this.menuContainer.setVisible(false); + this.bgmBar.toggleBgmBar(false); this.eraseCursor(); } diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 6b9de255590..ce834a83645 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -45,6 +45,7 @@ import KeyboardBindingUiHandler from "#app/ui/settings/keyboard-binding-ui-handl import SettingsDisplayUiHandler from "./settings/settings-display-ui-handler"; import SettingsAudioUiHandler from "./settings/settings-audio-ui-handler"; import { PlayerGender } from "#enums/player-gender"; +import BgmBar from "#app/ui/bgm-bar"; export enum Mode { MESSAGE, @@ -127,6 +128,7 @@ export default class UI extends Phaser.GameObjects.Container { public handlers: UiHandler[]; private overlay: Phaser.GameObjects.Rectangle; public achvBar: AchvBar; + public bgmBar: BgmBar; public savingIcon: SavingIconHandler; private tooltipContainer: Phaser.GameObjects.Container; @@ -247,7 +249,6 @@ export default class UI extends Phaser.GameObjects.Container { battleScene?.processInfoButton(pressed); return true; } - battleScene?.processInfoButton(false); return true; } diff --git a/src/utils.ts b/src/utils.ts index 9fe9cc9096f..5a67df314d2 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -396,6 +396,20 @@ export function fixedInt(value: integer): integer { return new FixedInt(value) as unknown as integer; } +/** + * Formats a string to title case + * @param unformattedText Text to be formatted + * @returns the formatted string + */ +export function formatText(unformattedText: string): string { + const text = unformattedText.split("_"); + for (let i = 0; i < text.length; i++) { + text[i] = text[i].charAt(0).toUpperCase() + text[i].substring(1).toLowerCase(); + } + + return text.join(" "); +} + export function rgbToHsv(r: integer, g: integer, b: integer) { const v = Math.max(r, g, b); const c = v - Math.min(r, g, b);