Spanish translations (#422)

* Spanish translations for intro messages and some menus. Added Empty (save file) to lang files

* Spanish translations + new literals in all langs

---------

Co-authored-by: rnicar <rj.nieto.car@gmail.com>
pull/436/head
ArceUseless 2024-05-03 23:52:09 +02:00 committed by GitHub
parent 6f446324db
commit 19e434929c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 75 additions and 45 deletions

View File

@ -39,5 +39,9 @@ export const menu: SimpleTranslationEntries = {
"weeklyRankings": "Weekly Rankings", "weeklyRankings": "Weekly Rankings",
"noRankings": "No Rankings", "noRankings": "No Rankings",
"loading": "Loading…", "loading": "Loading…",
"playersOnline": "Players Online" "playersOnline": "Players Online",
"empty":"Empty",
"yes":"Yes",
"no":"No",
"confirmStartTeam":'Begin with these Pokémon?',
} as const; } as const;

View File

@ -39,5 +39,9 @@ export const menu: SimpleTranslationEntries = {
"weeklyRankings": "Weekly Rankings", "weeklyRankings": "Weekly Rankings",
"noRankings": "No Rankings", "noRankings": "No Rankings",
"loading": "Loading…", "loading": "Loading…",
"playersOnline": "Players Online" "playersOnline": "Players Online",
"empty":"Empty",
"yes":"Yes",
"no":"No",
"confirmStartTeam":'Begin with these Pokémon?',
} as const; } as const;

View File

@ -2,7 +2,7 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const commandUiHandler: SimpleTranslationEntries = { export const commandUiHandler: SimpleTranslationEntries = {
"fight": "Luchar", "fight": "Luchar",
"ball": "Ball", "ball": "Balls",
"pokemon": "Pokémon", "pokemon": "Pokémon",
"run": "Huir", "run": "Huir",
"actionMessage": "¿Qué debería\nhacer {{pokemonName}}?", "actionMessage": "¿Qué debería\nhacer {{pokemonName}}?",

View File

@ -19,9 +19,13 @@ export const menu: SimpleTranslationEntries = {
"boyOrGirl": "¿Eres un chico o una chica?", "boyOrGirl": "¿Eres un chico o una chica?",
"boy": "Chico", "boy": "Chico",
"girl": "Chica", "girl": "Chica",
"dailyRankings": "Daily Rankings", "dailyRankings": "Rankings Diarios",
"weeklyRankings": "Weekly Rankings", "weeklyRankings": "Rankings Semanales",
"noRankings": "No Rankings", "noRankings": "Sin Rankings",
"loading": "Loading…", "loading": "Cargando…",
"playersOnline": "Players Online" "playersOnline": "Jugadores en Línea",
"empty":"Vacío",
"yes":"Sí",
"no":"No",
"confirmStartTeam":'¿Comenzar con estos Pokémon?',
} as const; } as const;

View File

@ -1,42 +1,49 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n"; import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = { export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. "intro": `¡Bienvenido/a a PokéRogue! Este es un fangame de Pokémon centrado en el combate con elementos roguelite.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. $Este juego no está monetizado y no reclamamos ningún derecho de propiedad sobre Pokémon ni sobre ninguno de
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. $los recursos con copyright utilizados.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, $El juego está en proceso, pero es completamente jugable.\nPara reportar bugs, por favor, hazlo en nuestra
$comunidad de Discord.
$Si el juego va lento, por favor, asegúrate de que tengas activada la opción 'Aceleración de gráficos' en los
$ajustes de tu navegador.`,
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, "accessMenu": `Para acceder al menú, pulsa M o Escape cuando\ntengas el control.
$El menú contiene la configuración y otras funciones.`,
"menu": `From this menu you can access the settings. "menu": `Desde este menú podrás acceder a la configuración.
$From the settings you can change game speed, window style, and other options. $Podrás cambiar la velocidad del juego, el estilo de la ventana y demás.
$There are also various other features here, so be sure to check them all!`, $Hay más opciones, ¡así que pruébalas todas!`,
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members. "starterSelect": `En esta pantalla podrás elegir tus iniciales. Estos serán tus\nmiembros de equipo al comenzar la partida.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. $Cada inicial tiene un valor. Tu equipo puede contener hasta 6\nmiembros mientras el valor total no pase de 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. $También puedes elegir su género, habilidad y forma\ndependiendo de las variantes que hayas conseguido.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`, $Los IVs de los iniciales corresponderán al valor más alto de\nlos Pokémon de la misma especie que hayas obtenido.
$¡Así que intenta conseguir muchos Pokémon de la misma\nespecie!`,
"pokerus": `A daily random 3 selectable starters have a purple border. "pokerus": `Cada día, 3 iniciales aleatorios tendrán un borde morado.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, $Si ves un inicial que tengas con este borde, prueba a\nañadirlo a tu equipo. ¡No olvides revisar sus datos!`,
"statChange": `Stat changes persist across battles as long as your Pokémon aren't recalled. "statChange": `Los cambios de estadísticas se mantienen entre combates\nmientras que el Pokémon no vuelva a la Poké Ball.
$Your Pokémon are recalled before a trainer battle and before entering a new biome. $Tus Pokémon vuelven a sus Poké Balls antes de combates contra entrenadores y de entrar a un nuevo bioma.
$You can also view the stat changes for the Pokémon on the field by holding C or Shift.`, $También puedes ver los cambios de estadísticas del Pokémon en campo manteniendo pulsado C o Shift.`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one. "selectItem": `Tras cada combate, tendrás la opción de elegir entre tres objetos aleatorios. Solo podrás escoger uno.
$These range from consumables, to Pokémon held items, to passive permanent items. $Estos objetos pueden ser consumibles, objetos equipables u objetos pasivos permanentes (hasta acabar la partida).
$Most non-consumable item effects will stack in various ways. $La mayoría de los efectos de objetos no consumibles se acumularán de varias maneras.
$Some items will only show up if they can be used, such as evolution items. $Algunos objetos solo aparecerán si pueden ser utilizados, como las piedras evolutivas.
$You can also transfer held items between Pokémon using the transfer option. $También puedes transferir objetos equipados entre Pokémon utilizando la opción de transferir.
$The transfer option will appear in the bottom right once you have obtained a held item. $La opción de transferir aparecerá en la parte inferior derecha una vez hayas obtenido un objeto equipable.
$You may purchase consumable items with money, and a larger variety will be available the further you get. $También puedes comprar objetos consumibles con dinero y su variedad irá aumentando según tu avance.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, $Asegúrate de comprar antes de escoger un objeto aleatorio, ya que se avanzará al siguiente combate.`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs. "eggGacha": `En esta pantalla podrás canjear tus vales por huevos\nde Pokémon.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. $Los huevos deben eclosionar y estarán más cerca de\nhacerlo tras cada combate.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. $Los huevos más raros tardarán más en eclosionar.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. $Los Pokémon que hayan salido del huevo no se\nañadirán a tu equipo, pero sí a tus iniciales.
$Some Pokémon can only even be obtained from eggs. $Los Pokémon salidos de un huevo suelen tener mejores\nIVs que los Pokémon salvajes.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, $Algunos Pokémon solo pueden ser obtenidos de huevos.
$Hay 3 máquinas diferentes entre las que elegir, cada\nuna con zdiferentes bonificaciones.
$¡Así que escoge la que más te interese!`,
} as const; } as const;

View File

@ -34,5 +34,9 @@ export const menu: SimpleTranslationEntries = {
"weeklyRankings": "Classement de la Semaine", "weeklyRankings": "Classement de la Semaine",
"noRankings": "Pas de Classement", "noRankings": "Pas de Classement",
"loading": "Chargement…", "loading": "Chargement…",
"playersOnline": "Joueurs Connectés" "playersOnline": "Joueurs Connectés",
"empty":"Empty",
"yes":"Yes",
"no":"No",
"confirmStartTeam":'Begin with these Pokémon?',
} as const; } as const;

View File

@ -39,5 +39,9 @@ export const menu: SimpleTranslationEntries = {
"weeklyRankings": "Weekly Rankings", "weeklyRankings": "Weekly Rankings",
"noRankings": "No Rankings", "noRankings": "No Rankings",
"loading": "Loading…", "loading": "Loading…",
"playersOnline": "Players Online" "playersOnline": "Players Online",
"empty":"Empty",
"yes":"Yes",
"no":"No",
"confirmStartTeam":'Begin with these Pokémon?',
} as const; } as const;

View File

@ -1,6 +1,7 @@
import BattleScene, { Button } from "../battle-scene"; import BattleScene, { Button } from "../battle-scene";
import AbstractOptionSelectUiHandler, { OptionSelectConfig } from "./abstact-option-select-ui-handler"; import AbstractOptionSelectUiHandler, { OptionSelectConfig } from "./abstact-option-select-ui-handler";
import { Mode } from "./ui"; import { Mode } from "./ui";
import i18next from "i18next";
export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler { export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler {
private switchCheck: boolean; private switchCheck: boolean;
@ -19,14 +20,14 @@ export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler {
const config: OptionSelectConfig = { const config: OptionSelectConfig = {
options: [ options: [
{ {
label: 'Yes', label: i18next.t("menu:yes"),
handler: () => { handler: () => {
args[0](); args[0]();
return true; return true;
} }
}, },
{ {
label: 'No', label: i18next.t("menu:no"),
handler: () => { handler: () => {
args[1](); args[1]();
return true; return true;

View File

@ -8,6 +8,7 @@ import * as Utils from "../utils";
import PokemonData from "../system/pokemon-data"; import PokemonData from "../system/pokemon-data";
import { PokemonHeldItemModifier } from "../modifier/modifier"; import { PokemonHeldItemModifier } from "../modifier/modifier";
import MessageUiHandler from "./message-ui-handler"; import MessageUiHandler from "./message-ui-handler";
import i18next from "i18next";
const sessionSlotCount = 5; const sessionSlotCount = 5;
@ -314,7 +315,7 @@ class SessionSlot extends Phaser.GameObjects.Container {
this.scene.gameData.getSession(this.slotId).then(async sessionData => { this.scene.gameData.getSession(this.slotId).then(async sessionData => {
if (!sessionData) { if (!sessionData) {
this.hasData = false; this.hasData = false;
this.loadingLabel.setText('Empty'); this.loadingLabel.setText(i18next.t("menu:empty"));
resolve(false); resolve(false);
return; return;
} }

View File

@ -27,6 +27,7 @@ import { argbFromRgba } from "@material/material-color-utilities";
import { OptionSelectItem } from "./abstact-option-select-ui-handler"; import { OptionSelectItem } from "./abstact-option-select-ui-handler";
import { pokemonPrevolutions } from "#app/data/pokemon-evolutions"; import { pokemonPrevolutions } from "#app/data/pokemon-evolutions";
import { Variant, getVariantTint } from "#app/data/variant"; import { Variant, getVariantTint } from "#app/data/variant";
import i18next from "i18next";
export type StarterSelectCallback = (starters: Starter[]) => void; export type StarterSelectCallback = (starters: Starter[]) => void;
@ -1653,7 +1654,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.clearText(); this.clearText();
}; };
ui.showText('Begin with these Pokémon?', null, () => { ui.showText(i18next.t("menu:confirmStartTeam"), null, () => {
ui.setModeWithoutClear(Mode.CONFIRM, () => { ui.setModeWithoutClear(Mode.CONFIRM, () => {
const startRun = (gameMode: GameModes) => { const startRun = (gameMode: GameModes) => {
this.scene.gameMode = gameModes[gameMode]; this.scene.gameMode = gameModes[gameMode];