From b276657dab6a6d84341d60cdc7f39d1cf35a5ada Mon Sep 17 00:00:00 2001 From: Simoninoo Date: Sat, 4 May 2024 00:51:49 +0200 Subject: [PATCH] Added various it translation, added command-ui-handler.ts and pokeball.ts to locales\it and added to src\system\i18n.ts. Added it lang selectable in src\system\settings.ts --- src/locales/it/battle.ts | 92 ++++++++++++++-------------- src/locales/it/command-ui-handler.ts | 9 +++ src/locales/it/fight-ui-handler.ts | 2 +- src/locales/it/menu-ui-handler.ts | 32 +++++----- src/locales/it/menu.ts | 52 ++++++++-------- src/locales/it/pokeball.ts | 10 +++ src/locales/it/tutorial.ts | 45 +++++++------- src/plugins/i18n.ts | 4 ++ src/system/settings.ts | 4 ++ 9 files changed, 140 insertions(+), 110 deletions(-) create mode 100644 src/locales/it/command-ui-handler.ts create mode 100644 src/locales/it/pokeball.ts diff --git a/src/locales/it/battle.ts b/src/locales/it/battle.ts index 599672a1b19..8fb35183947 100644 --- a/src/locales/it/battle.ts +++ b/src/locales/it/battle.ts @@ -1,52 +1,52 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const battle: SimpleTranslationEntries = { - "bossAppeared": "{{bossName}} appeared.", - "trainerAppeared": "{{trainerName}}\nwould like to battle!", - "singleWildAppeared": "A wild {{pokemonName}} appeared!", - "multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!", - "playerComeBack": "Come back, {{pokemonName}}!", - "trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!", - "playerGo": "Go! {{pokemonName}}!", - "trainerGo": "{{trainerName}} sent out {{pokemonName}}!", - "switchQuestion": "Will you switch\n{{pokemonName}}?", - "trainerDefeated": `You defeated\n{{trainerName}}!`, - "pokemonCaught": "{{pokemonName}} was caught!", + "bossAppeared": "{{bossName}} è apparso.", + "trainerAppeared": "{{trainerName}}\nvuole lottare!", + "singleWildAppeared": "Appare {{pokemonName}} selvatico!", + "multiWildAppeared": "Appaiono {{pokemonName1}}\n {{pokemonName2}} selvatici!", + "playerComeBack": "Ritorna, {{pokemonName}}!", + "trainerComeBack": "{{trainerName}} ha ritirato {{pokemonName}}!", + "playerGo": "Vai! {{pokemonName}}!", + "trainerGo": "{{trainerName}} ha mandato {{pokemonName}}!", + "switchQuestion": "Vuoi cambiare\n{{pokemonName}}?", + "trainerDefeated": `Hai sconfitto\n{{trainerName}}!`, + "pokemonCaught": "Preso! {{pokemonName}} è stato catturato!", "pokemon": "Pokémon", - "sendOutPokemon": "Go! {{pokemonName}}!", - "hitResultCriticalHit": "A critical hit!", - "hitResultSuperEffective": "It's super effective!", - "hitResultNotVeryEffective": "It's not very effective…", - "hitResultNoEffect": "It doesn't affect {{pokemonName}}!", - "hitResultOneHitKO": "It's a one-hit KO!", - "attackFailed": "But it failed!", - "attackHitsCount": `Hit {{count}} time(s)!`, - "expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!", - "levelUp": "{{pokemonName}} grew to\nLv. {{level}}!", - "learnMove": "{{pokemonName}} learned\n{{moveName}}!", - "learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.", - "learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.", - "learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?", - "learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?", - "learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.", - "learnMoveForgetQuestion": "Which move should be forgotten?", - "learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.", - "levelCapUp": "The level cap\nhas increased to {{levelCap}}!", - "moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.", - "moveDisabled": "{{moveName}} is disabled!", - "noPokeballForce": "An unseen force\nprevents using Poké Balls.", - "noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!", - "noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!", - "noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!", - "noEscapeForce": "An unseen force\nprevents escape.", - "noEscapeTrainer": "You can't run\nfrom a trainer battle!", - "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!", - "runAwaySuccess": "You got away safely!", - "runAwayCannotEscape": 'You can\'t escape!', - "escapeVerbSwitch": "switching", - "escapeVerbFlee": "fleeing", - "notDisabled": "{{moveName}} is disabled\nno more!", - "skipItemQuestion": "Are you sure you want to skip taking an item?", + "sendOutPokemon": "Vai! {{pokemonName}}!", + "hitResultCriticalHit": "Brutto colpo!", + "hitResultSuperEffective": "É superefficace!", + "hitResultNotVeryEffective": "Non è molto efficace…", + "hitResultNoEffect": "Non ha effetto su {{pokemonName}}!", + "hitResultOneHitKO": "KO in un colpo!", + "attackFailed": "Ma fallisce!", + "attackHitsCount": `Ha colpito {{count}} volta(e)!`, + "expGain": "{{pokemonName}} riceve\n{{exp}} Punti esperienza!", + "levelUp": "{{pokemonName}} è salito al\nLv. {{level}}!", + "learnMove": "{{pokemonName}} ha imparato\n{{moveName}}!", + "learnMovePrompt": "{{pokemonName}} vuole imparare la\nmossa {{moveName}}.", + "learnMoveLimitReached": "Ma conosce già 4 mosse.", + "learnMoveReplaceQuestion": "Vuoi far dimenticare una mossa e\nimparare {{moveName}}?", + "learnMoveStopTeaching": "Vuoi impedire l'apprendimento di\n{{moveName}}?", + "learnMoveNotLearned": "{{pokemonName}} non ha imparato la\nmossa {{moveName}}.", + "learnMoveForgetQuestion": "Quale mossa deve dimenticare?", + "learnMoveForgetSuccess": "{{pokemonName}} ha dimenticato\n {{moveName}}.", + "levelCapUp": "Il level cap\nè aumentato a {{levelCap}}!", + "moveNotImplemented": "{{moveName}} non è ancora stata implementata e non può essere usata.", + "moveDisabled": "{{moveName}} è disabilitata!", + "noPokeballForce": "Una forza sconosciuta\nimpedisce l'uso di Poké Balls.", + "noPokeballTrainer": "Non puoi catturare il\nPokémon di un altro allenatore!", + "noPokeballMulti": "Puoi lanciare una Poké Ball\nquando ne è rimasto solo uno!", + "noPokeballStrong": "Il Pokémon è troppo forte per essere catturato!\nDevi prima indebolirlo!", + "noEscapeForce": "Una forza sconosciuta\nti impedisce di fuggire.", + "noEscapeTrainer": "Non puoi sottrarti alla\nlotta con un allenatore!", + "noEscapePokemon": "{{moveName}} di {{pokemonName}} \nti impedisce di{{escapeVerb}}!", + "runAwaySuccess": "Scampato pericolo!", + "runAwayCannotEscape": 'Non puoi scappare!', + "escapeVerbSwitch": "Scambio in corso", + "escapeVerbFlee": "fuggire", + "notDisabled": "{{moveName}} è di nuovo disponibile!", + "skipItemQuestion": "Sei sicuro di non voler prendere un oggetto?", "eggHatching": "Oh?", - "ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?" + "ivScannerUseQuestion": "Vuoi usare l'IV Scanner su {{pokemonName}}?" } as const; \ No newline at end of file diff --git a/src/locales/it/command-ui-handler.ts b/src/locales/it/command-ui-handler.ts new file mode 100644 index 00000000000..9dc94a38769 --- /dev/null +++ b/src/locales/it/command-ui-handler.ts @@ -0,0 +1,9 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const commandUiHandler: SimpleTranslationEntries = { + "fight": "Lotta", + "ball": "Pokéball", + "pokemon": "Pokémon", + "run": "Fuga", + "actionMessage": "Cosa deve fare\n{{pokemonName}}?", +} as const; \ No newline at end of file diff --git a/src/locales/it/fight-ui-handler.ts b/src/locales/it/fight-ui-handler.ts index 1ce9e0317bf..0743e382c6b 100644 --- a/src/locales/it/fight-ui-handler.ts +++ b/src/locales/it/fight-ui-handler.ts @@ -2,5 +2,5 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const fightUiHandler: SimpleTranslationEntries = { "pp": "PP", - "power": "POWER", + "power": "POTENZA", } as const; \ No newline at end of file diff --git a/src/locales/it/menu-ui-handler.ts b/src/locales/it/menu-ui-handler.ts index 5fde37ae360..60704f168a6 100644 --- a/src/locales/it/menu-ui-handler.ts +++ b/src/locales/it/menu-ui-handler.ts @@ -1,23 +1,23 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const menuUiHandler: SimpleTranslationEntries = { - "GAME_SETTINGS": 'Game Settings', - "ACHIEVEMENTS": "Achievements", - "STATS": "Stats", - "VOUCHERS": "Vouchers", - "EGG_LIST": "Egg List", - "EGG_GACHA": "Egg Gacha", - "MANAGE_DATA": "Manage Data", + "GAME_SETTINGS": 'Impostazioni', + "ACHIEVEMENTS": "Achievement", + "STATS": "Statistiche", + "VOUCHERS": "Voucher", + "EGG_LIST": "Lista uova", + "EGG_GACHA": "Gacha uova", + "MANAGE_DATA": "Gestisci dati", "COMMUNITY": "Community", - "RETURN_TO_TITLE": "Return To Title", + "RETURN_TO_TITLE": "Torna al titolo", "LOG_OUT": "Log Out", "slot": "Slot {{slotNumber}}", - "importSession": "Import Session", - "importSlotSelect": "Select a slot to import to.", - "exportSession": "Export Session", - "exportSlotSelect": "Select a slot to export from.", - "importData": "Import Data", - "exportData": "Export Data", - "cancel": "Cancel", - "losingProgressionWarning": "You will lose any progress since the beginning of the battle. Proceed?" + "importSession": "Importa Sessione", + "importSlotSelect": "Seleziona uno slot.", + "exportSession": "Esporta Sessione", + "exportSlotSelect": "Seleziona uno slot.", + "importData": "Importa Dati", + "exportData": "Esporta Dati", + "cancel": "Annulla", + "losingProgressionWarning": "Perderai i progressi relativi alla lotta corrente, vuoi procedere?" } as const; \ No newline at end of file diff --git a/src/locales/it/menu.ts b/src/locales/it/menu.ts index 9812236b7f0..0b33c4c2249 100644 --- a/src/locales/it/menu.ts +++ b/src/locales/it/menu.ts @@ -10,34 +10,34 @@ export const menu: SimpleTranslationEntries = { "continue": "Continua", "newGame": "Nuova Partita", "loadGame": "Carica Partita", - "dailyRun": "Corsa Giornaliera (Beta)", + "dailyRun": "Run Giornaliera (Beta)", "selectGameMode": "Seleziona una modalità di gioco.", - "logInOrCreateAccount": "Log in or create an account to start. No email required!", + "logInOrCreateAccount": "Effettua il log-in o registrati per giocare, non è richiesta nessuna mail!", "username": "Username", "password": "Password", "login": "Login", - "register": "Register", - "emptyUsername": "Username must not be empty", - "invalidLoginUsername": "The provided username is invalid", - "invalidRegisterUsername": "Username must only contain letters, numbers, or underscores", - "invalidLoginPassword": "The provided password is invalid", - "invalidRegisterPassword": "Password must be 6 characters or longer", - "usernameAlreadyUsed": "The provided username is already in use", - "accountNonExistent": "The provided user does not exist", - "unmatchingPassword": "The provided password does not match", - "passwordNotMatchingConfirmPassword": "Password must match confirm password", - "confirmPassword": "Confirm Password", - "registrationAgeWarning": "By registering, you confirm you are of 13 years of age or older.", - "backToLogin": "Back to Login", - "failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this continues, please contact the administrator.", - "sessionSuccess": "Session loaded successfully.", - "failedToLoadSession": "Your session data could not be loaded.\nIt may be corrupted.", - "boyOrGirl": "Are you a boy or a girl?", - "boy": "Boy", - "girl": "Girl", - "dailyRankings": "Daily Rankings", - "weeklyRankings": "Weekly Rankings", - "noRankings": "No Rankings", - "loading": "Loading…", - "playersOnline": "Players Online" + "register": "Registrati", + "emptyUsername": "L'username non può essere vuoto", + "invalidLoginUsername": "L'username scelto non è valido", + "invalidRegisterUsername": "L'username può contenere lettere, numeri o underscore", + "invalidLoginPassword": "La password sceltra non è valida", + "invalidRegisterPassword": "La Password deve avere 6 o più caratteri", + "usernameAlreadyUsed": "L'username scelto è già in uso", + "accountNonExistent": "L'username inserito non è valido", + "unmatchingPassword": "La password inserita non corrisponde", + "passwordNotMatchingConfirmPassword": "Le password devono essere uguali!", + "confirmPassword": "Conferma password", + "registrationAgeWarning": "Con la registrazione, confermi di avere 13 anni o più.", + "backToLogin": "Torna al login", + "failedToLoadSaveData": "Impossibile caricare i dati, prova a ricaricare la pagina.\nSe il problema persiste, contatta un amministratore.", + "sessionSuccess": "Sessione caricata con successo.", + "failedToLoadSession": "I tuoi dati relativi alla sessione non sono stati caricati.\nPotrebbero essere corrotti.", + "boyOrGirl": "Sei un ragazzo o una ragazza?", + "boy": "Ragazzo", + "girl": "Ragazza", + "dailyRankings": "Classifica Giornaliera", + "weeklyRankings": "Classifica Settimanale", + "noRankings": "Classifica Assente", + "loading": "Caricamento", + "playersOnline": "Giocatori Online" } as const; \ No newline at end of file diff --git a/src/locales/it/pokeball.ts b/src/locales/it/pokeball.ts new file mode 100644 index 00000000000..2563b654760 --- /dev/null +++ b/src/locales/it/pokeball.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const pokeball: SimpleTranslationEntries = { + "pokeBall": "Poké Ball", + "greatBall": "Mega Ball", + "ultraBall": "Ultra Ball", + "rogueBall": "Rogue Ball", + "masterBall": "Master Ball", + "luxuryBall": "Chic Ball", +} as const; \ No newline at end of file diff --git a/src/locales/it/tutorial.ts b/src/locales/it/tutorial.ts index 898dcead8a4..ce99bc2c68a 100644 --- a/src/locales/it/tutorial.ts +++ b/src/locales/it/tutorial.ts @@ -1,41 +1,44 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const tutorial: SimpleTranslationEntries = { - "intro": `Benvenuto in PokéRogue! Questo gioco si concentra sulle battaglie, con elementi roguelite. - $Questo gioco non è monetizzato e non siamo proprietari di Pokemon e Assets presenti nel gioco. - $Il gioco è work-in-progress ma giocabile al 100%.\nPer reportare eventuali bugs è possibile discuterne sul nostro Discord. - $Se il game risulta 'lento', assicurati di aver abilitato l'Accelerazione Hardware nelle impostazioni del tuo Browser`, + "intro": `Benvenuto in PokéRogue! Questo gioco è incentrato sulle lotte, con elementi roguelite. + $PokéRogue non è monetizzato e non siamo proprietari di Pokemon e Assets presenti nel gioco. + $Il gioco è totalmente funzionante ma in continuo aggiornamento. + $Per riportare eventuali bugs è possibile discuterne sul nostro Discord. + $Se il gioco risulta 'lento', assicurati di aver abilitato l'Accelerazione Hardware nelle impostazioni del tuo Browser`, "accessMenu": `Per accedere al menù, press M o Esc.\nDal menù puoi cambiare impostazioni, controllare la wiki e accedere a varie features.`, "menu": `Da questo menù puoi accedere alle impostazioni. - $Dalle impostazioni puoi cambiare velocità di gioco, stile di finestra e altre opzioni. + $Qui puoi cambiare velocità di gioco, cornice e altre opzioni. $Ci sono varie funzionalità, controlla bene e non perderti nulla!`, - "starterSelect": `Da questa schermata puoi selezionare il tuo starter.\nQuesti sono i membri iniziali del tuo parti. - $Ogni starter ha un valore. Puoi avere fino a \n6 Pokèmon, avendo a disposizione un massimo di 10 punti. - $Puoi anche selezionare Sesso, Abilità, e Forma a seconda delle\nvarianti che hai catturato o schiuso. - $Le IVs di una specie sono le migliori rispetto a tutte quelle che hai\ncatturato o schiuso, quindi prova a catturarne il piu possibile!`, + "starterSelect": `Da questa schermata puoi selezionare il tuo starter, \nscegliendo tra quelli sbloccati. + $Ogni starter ha un valore numerico. Puoi avere fino a \n6 Pokèmon, avendo a disposizione un massimo di 10 punti. + $Puoi anche selezionare sesso, abilità e forma a seconda delle\nvarianti che hai catturato o schiuso. + $Le IVs di una specie sono le migliori rispetto a tutte quelle \nche hai catturato o schiuso. + $Prova a catturarne il piu possibile!`, - "pokerus": `Giornalmente 3 Starter casuali disponibili avranno il bordo viola. - $Se possiedi uno di questi starter,\nprova ad aggiungerlo al party. Ricorda di controllare le info!`, + "pokerus": `Ogni giorno ci saranno 3 Pokémon con Pokérus, \ndelineati da un bordo viola. + $Se possiedi uno di questi starter, prova ad aggiungerlo \nal party. Ricorda di controllare le info!`, "statChange": `I cambiamenti alle statistiche persistono fintanto che i tuoi pokèmon resteranno in campo. $I tuoi pokemon verranno richiamati quando incontrerai un allenatore o al cambiamento di bioma. $Puoi anche vedere i cambiamenti alle statistiche in corso tenendo premuto C o Shift`, - "selectItem": `Dopo ogni battaglia avrai disponibili tre item.\nPotrai prenderne solo uno. - $Questi spaziano tra consumabili, item tenuti da Pokèmon o con un effetto passivo permanente. - $La maggior parte degli Item non Consumabili possono stackare in diversi modi. - $Alcuni Item risulteranno disponibili solo se possono essere usati, come Item Evolutivi. - $Puoi anche passare un Item tenuto da un Pokèmon ad un altro attraverso l'opzione 'trasferisci strumento'. + "selectItem": `Dopo ogni lotta puoi scegliere solo 1 oggetto tra 3 disponibili. + $Sono presenti varie tipologie di strumento, i principali sono \nconsumabili, assegnabili o con effetto passivo permanente. + $La maggior parte degli oggetti non consumabili possono essere accumulati. + $Alcuni oggetti saranno disponibili nel momento che \npotranno essere utilizzati, ad esempio gli item evolutivi. + $Puoi anche trasferire un oggetto assegnato attraverso l'opzione 'trasferisci strumento'. $L'opzione 'trasferisci strumento' sarà disponibile solo dopo aver assegnato uno strumento ad un Pokèmon. - $Puoi acquistare consumabili con le monete, progredendo saranno poi disponibili ulteriori oggetti. - $Assicurati di fare un acquisto prima di selezionare un item casuale, poichè passerai subito alla lotta successiva.`, + $Con le monete potrai acquistare dei consumabili, progredendo saranno poi disponibili ulteriori oggetti. + $Assicurati di fare un acquisto prima di selezionare un oggetto, poichè passerai subito alla lotta successiva.`, - "eggGacha": `Da questa schermata, puoi riscattare i tuoi vouchers in cambio di\nuova Pokèmon. - $Le uova vanno schiuse e saranno sempre più vicine alla schiusura dopo\nogni battaglia. Le uova più rare impiegheranno più battaglie per la schiusura. - $I Pokémon schiusi non verranno aggiunti alla tua squadra, saranno\naggiunti ai tuoi starters. + "eggGacha": `Da questa schermata, puoi riscattare i tuoi vouchers \nin cambio di uova Pokèmon. + $Le uova vanno schiuse e saranno sempre più vicine alla \nschiusura dopo ogni lotta. + $Le uova più rare impiegheranno più lotte per la schiusura. + $I Pokémon schiusi non verranno aggiunti alla tua squadra\n ma saranno disponibili nei tuoi starters. $I Pokémon schiusi generalmente hanno IVs migliori rispetto ai\n Pokémon selvatici. $Alcuni Pokémon possono essere ottenuti solo tramite uova. $Ci sono 3 diversi macchinari con differenti\nbonus, scegli quello che preferisci!`, diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 4d770ae0a12..3094ddb7f10 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -33,6 +33,7 @@ import { pokeball as enPokeball } from '../locales/en/pokeball'; import { pokeball as esPokeball } from '../locales/es/pokeball'; import { pokeball as frPokeball } from '../locales/fr/pokeball'; import { pokeball as dePokeball } from '../locales/de/pokeball'; +import { pokeball as itPokeball } from '../locales/it/pokeball'; import { pokemon as enPokemon } from '../locales/en/pokemon'; import { pokemon as esPokemon } from '../locales/es/pokemon'; @@ -49,6 +50,7 @@ import { commandUiHandler as enCommandUiHandler } from '../locales/en/command-ui import { commandUiHandler as esCommandUiHandler } from '../locales/es/command-ui-handler'; import { commandUiHandler as frCommandUiHandler } from '../locales/fr/command-ui-handler'; import { commandUiHandler as deCommandUiHandler } from '../locales/de/command-ui-handler'; +import { commandUiHandler as itCommandUiHandler } from '../locales/it/command-ui-handler'; import { fightUiHandler as enFightUiHandler } from '../locales/en/fight-ui-handler'; import { fightUiHandler as esFightUiHandler } from '../locales/es/fight-ui-handler'; @@ -165,6 +167,8 @@ export function initI18n(): void { pokemonStat: itPokemonStat, fightUiHandler: itFightUiHandler, tutorial: itTutorial, + commandUiHandler: itCommandUiHandler, + pokeball: itPokeball, }, de: { menu: deMenu, diff --git a/src/system/settings.ts b/src/system/settings.ts index df4f894c949..1de17f72668 100644 --- a/src/system/settings.ts +++ b/src/system/settings.ts @@ -176,6 +176,10 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer) label: 'English', handler: () => changeLocaleHandler('en') }, + { + label: 'Italian', + handler: () => changeLocaleHandler('it') + }, { label: 'Spanish', handler: () => changeLocaleHandler('es')