flx-sta 95386861bb
[Qol][Refactor] i18n lazy-loading (#4327)
* move: locales files to `/public` (from `/src`)

* install: i18next-http-backend module

* implement: i18next language lazy-loading

* remove: all `config.ts` files (for locales)

* disable: enConfig import in i18next.d.ts

* remove: console.log from utils.camelCaseToKebabCase()

* remove localization tests

we don't need to test if i18next is working.
This is the job of i18next itself

* mock i18next for tests

* fix: tests that have to use the i18next key now

instead of the english translation

* fix: absolute-avarice-encounter test

* fix: loading mystery-encounter translations

with lazy-load

* fix: 2 mystery encounter translation loading

* replace: i18next mocks any vi.fn() calls

* fix: new namespace usage in ME tests

now using "mysteryEncounters/..."

* fix: delibirdy encounter not being language specific

the encounter was checking if the modifier name includes `Berry` which is only true for english. Instead it has to check if the modifier is an instance of BerryModifier

* fix: the-expert-pokemon-breeder

the new i18n pattern requires a different namespacing which has been adopted

* fix: GTS encounter tests

* add: `MockText.on()`

* fix: berries abound test

* chore: apply review suggestion

from @DayKev

* update i18next.d.ts

* chore: fix i18next.d.ts

* fix: `dialogue-misc` switchup between `en` and `ja`

* move: `SpeciesFormKey` into enum

there was an issue with circular dependencies

* replace: `#app/enums/` with `#enums/` for `SpeciesFormKey` imports

* re-sync locales from `beta`

* rename: `ca_ES` -> `ca-ES`

* rename: `pt_BR` -> `pt-BR`

* rename: `zh_CN` -> `zh-CN`

* rename: `zh_TW` -> `zh-TW`

* fix loading Species-Form-Key in poemon-evo.

* update: i18next `supporterLngs` ...

and remove `nonExplicitSupportedLngs`

* fix: `${namespace}.` -> `${namespace}:`

thanks @MokaStitcher
2024-10-01 21:55:16 +01:00

183 lines
4.6 KiB
JSON

{
"Achievements": {
"name": "Logros"
},
"Locked": {
"name": "Bloqueado"
},
"MoneyAchv": {
"description": "Acumula un total de ₽{{moneyAmount}}."
},
"10K_MONEY": {
"name": "Ahorrador",
"name_female": "Ahorradora"
},
"100K_MONEY": {
"name": "Rico",
"name_female": "Rica"
},
"1M_MONEY": {
"name": "Millonario",
"name_female": "Millonaria"
},
"10M_MONEY": {
"name": "Elusión Fiscal"
},
"DamageAchv": {
"description": "Inflige {{damageAmount}} daño en un solo golpe."
},
"250_DMG": {
"name": "Golpe Maestro"
},
"1000_DMG": {
"name": "Golpe Devastador"
},
"2500_DMG": {
"name": "¡Eso es un montón de daño!"
},
"10000_DMG": {
"name": "One Punch Man"
},
"HealAchv": {
"description": "Cura {{healAmount}} {{HP}} de una, con un movimiento, habilidad o objeto equipado."
},
"250_HEAL": {
"name": "Sanador Novato",
"name_female": "Sanadora Novata"
},
"1000_HEAL": {
"name": "Gran Sanador",
"name_female": "Gran Sanadora"
},
"2500_HEAL": {
"name": "Clérigo",
"name_female": "Clériga"
},
"10000_HEAL": {
"name": "Centro Pokémon"
},
"LevelAchv": {
"description": "Sube a un Pokémon al nivel {{level}}."
},
"LV_100": {
"name": "¡Pero espera, aún hay mas!"
},
"LV_250": {
"name": "Élite"
},
"LV_1000": {
"name": "Supera tus límites"
},
"RibbonAchv": {
"description": "Acumula un total de {{ribbonAmount}} Cintas."
},
"10_RIBBONS": {
"name": "Campeón Liga Pokémon",
"name_female": "Campeona Liga Pokémon"
},
"25_RIBBONS": {
"name": "Campeón Liga Super",
"name_female": "Campeona Liga Super"
},
"50_RIBBONS": {
"name": "Campeón Liga Ultra",
"name_female": "Campeona Liga Ultra"
},
"75_RIBBONS": {
"name": "Campeón Liga Rogue",
"name_female": "Campeona Liga Rogue"
},
"100_RIBBONS": {
"name": "Campeón Liga Master",
"name_female": "Campeona Liga Master"
},
"TRANSFER_MAX_STAT_STAGE": {
"name": "Trabajo en Equipo",
"description": "Haz relevo a otro miembro del equipo con al menos una estadística al máximo."
},
"MAX_FRIENDSHIP": {
"name": "Amistad Total",
"description": "Alcanza con un Pokémon la amistad al máximo."
},
"MEGA_EVOLVE": {
"name": "Megamorfosis",
"description": "Megaevoluciona a un Pokémon."
},
"GIGANTAMAX": {
"name": "Criatura Colosal",
"description": "Haz Gigantamax a un Pokémon."
},
"TERASTALLIZE": {
"name": "Entusiasta del STAB",
"description": "Teracristaliza a un Pokémon."
},
"STELLAR_TERASTALLIZE": {
"name": "El Tipo Oculto",
"description": "Teracristaliza a un Pokémon al tipo Astral."
},
"SPLICE": {
"name": "Infinite Fusion",
"description": "Fusiona dos Pokémon con la Punta ADN."
},
"MINI_BLACK_HOLE": {
"name": "Devorador de Objetos",
"description": "Adquiere un Mini Agujero Negro."
},
"CATCH_MYTHICAL": {
"name": "Singular",
"description": "Captura a un Pokémon Singular."
},
"CATCH_SUB_LEGENDARY": {
"name": "(Sub)Legendario",
"description": "Captura a un Pokémon Sublegendario."
},
"CATCH_LEGENDARY": {
"name": "Legendario",
"description": "Captura a un Pokémon Legendario."
},
"SEE_SHINY": {
"name": "Shiny",
"description": "Encuentra a un Pokémon Shiny salvaje."
},
"SHINY_PARTY": {
"name": "Eso es dedicación",
"description": "Tener un equipo completo de Pokémon shiny."
},
"HATCH_MYTHICAL": {
"name": "Huevo Singular",
"description": "Hacer eclosionar un Pokémon Singular de un huevo."
},
"HATCH_SUB_LEGENDARY": {
"name": "Huevo Sublegendario",
"description": "Hacer eclosionar un Pokémon Sublegendario de un huevo."
},
"HATCH_LEGENDARY": {
"name": "Huevo Legendario",
"description": "Hacer eclosionar un Pokémon Legendario de un huevo."
},
"HATCH_SHINY": {
"name": "Huevo Shiny",
"description": "Hacer eclosionar un Pokémon Shiny de un huevo."
},
"HIDDEN_ABILITY": {
"name": "Potencial Oculto",
"description": "Captura un Pokémon con una habilidad oculta."
},
"PERFECT_IVS": {
"name": "Certificado de Autenticidad",
"description": "Consigue IVs perfectos en un Pokémon."
},
"CLASSIC_VICTORY": {
"name": "Imbatible",
"description": "Completa el juego en modo clásico."
},
"INVERSE_BATTLE": {
"name": "Espejo ojepsE",
"description": "Completa el reto de Combate Inverso.\n.osrevnI etabmoC ed oter le atelpmoC"
},
"BREEDERS_IN_SPACE": {
"name": "¡Criapokémon en el Espacio!",
"description": "Derrota al Criapokémon Experto en el Bioma Espacial."
}
}