diff --git a/src/locales/de/pokemon.ts b/src/locales/de/pokemon.ts index 09be8894eb4..08fdbf01d02 100644 --- a/src/locales/de/pokemon.ts +++ b/src/locales/de/pokemon.ts @@ -1,380 +1,380 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const pokemon: SimpleTranslationEntries = { - "bulbasaur": "Bulbasaur", - "ivysaur": "Ivysaur", - "venusaur": "Venusaur", - "charmander": "Charmander", - "charmeleon": "Charmeleon", - "charizard": "Charizard", - "squirtle": "Squirtle", - "wartortle": "Wartortle", - "blastoise": "Blastoise", - "caterpie": "Caterpie", - "metapod": "Metapod", - "butterfree": "Butterfree", - "weedle": "Weedle", - "kakuna": "Kakuna", - "beedrill": "Beedrill", - "pidgey": "Pidgey", - "pidgeotto": "Pidgeotto", - "pidgeot": "Pidgeot", - "rattata": "Rattata", - "raticate": "Raticate", - "spearow": "Spearow", - "fearow": "Fearow", - "ekans": "Ekans", + "bulbasaur": "Bisasam", + "ivysaur": "Bisaknosp", + "venusaur": "Bisaflor", + "charmander": "Glumanda", + "charmeleon": "Glutexo", + "charizard": "Glurak", + "squirtle": "Schiggy", + "wartortle": "Schillok", + "blastoise": "Turtok", + "caterpie": "Raupy", + "metapod": "Safcon", + "butterfree": "Smettbo", + "weedle": "Hornliu", + "kakuna": "Kokuna", + "beedrill": "Bibor", + "pidgey": "Taubsi", + "pidgeotto": "Tauboga", + "pidgeot": "Tauboss", + "rattata": "Rattfratz", + "raticate": "Rattikarl", + "spearow": "Habitak", + "fearow": "Ibitak", + "ekans": "Rettan", "arbok": "Arbok", "pikachu": "Pikachu", "raichu": "Raichu", - "sandshrew": "Sandshrew", - "sandslash": "Sandslash", + "sandshrew": "Sandan", + "sandslash": "Sandamer", "nidoran_f": "Nidoran♀", "nidorina": "Nidorina", "nidoqueen": "Nidoqueen", "nidoran_m": "Nidoran♂", "nidorino": "Nidorino", "nidoking": "Nidoking", - "clefairy": "Clefairy", - "clefable": "Clefable", + "clefairy": "Piepi", + "clefable": "Pixi", "vulpix": "Vulpix", - "ninetales": "Ninetales", - "jigglypuff": "Jigglypuff", - "wigglytuff": "Wigglytuff", + "ninetales": "Vulnona", + "jigglypuff": "Pummeluff", + "wigglytuff": "Knuddeluff", "zubat": "Zubat", "golbat": "Golbat", - "oddish": "Oddish", - "gloom": "Gloom", - "vileplume": "Vileplume", + "oddish": "Myrapla", + "gloom": "Duflor", + "vileplume": "Giflor", "paras": "Paras", - "parasect": "Parasect", - "venonat": "Venonat", - "venomoth": "Venomoth", - "diglett": "Diglett", - "dugtrio": "Dugtrio", - "meowth": "Meowth", - "persian": "Persian", - "psyduck": "Psyduck", - "golduck": "Golduck", - "mankey": "Mankey", - "primeape": "Primeape", - "growlithe": "Growlithe", - "arcanine": "Arcanine", - "poliwag": "Poliwag", - "poliwhirl": "Poliwhirl", - "poliwrath": "Poliwrath", + "parasect": "Parasek", + "venonat": "Bluzuk", + "venomoth": "Omot", + "diglett": "Digda", + "dugtrio": "Digdri", + "meowth": "Mauzi", + "persian": "Snobilikat", + "psyduck": "Enton", + "golduck": "Entoron", + "mankey": "Menki", + "primeape": "Rasaff", + "growlithe": "Fukano", + "arcanine": "Arkani", + "poliwag": "Quapsel", + "poliwhirl": "Quaputzi", + "poliwrath": "Quappo", "abra": "Abra", "kadabra": "Kadabra", - "alakazam": "Alakazam", - "machop": "Machop", - "machoke": "Machoke", - "machamp": "Machamp", - "bellsprout": "Bellsprout", - "weepinbell": "Weepinbell", - "victreebel": "Victreebel", - "tentacool": "Tentacool", - "tentacruel": "Tentacruel", - "geodude": "Geodude", - "graveler": "Graveler", - "golem": "Golem", - "ponyta": "Ponyta", - "rapidash": "Rapidash", - "slowpoke": "Slowpoke", - "slowbro": "Slowbro", - "magnemite": "Magnemite", + "alakazam": "Simsala", + "machop": "Machollo", + "machoke": "Maschock", + "machamp": "Machomei", + "bellsprout": "Knofensa", + "weepinbell": "Ultrigaria", + "victreebel": "Sarzenia", + "tentacool": "Tentacha", + "tentacruel": "Tentoxa", + "geodude": "Kleinstein", + "graveler": "Georok", + "golem": "Geowaz", + "ponyta": "Ponita", + "rapidash": "Gallopa", + "slowpoke": "Flegmon", + "slowbro": "Lahmus", + "magnemite": "Magnetilo", "magneton": "Magneton", - "farfetchd": "Farfetch'd", - "doduo": "Doduo", - "dodrio": "Dodrio", - "seel": "Seel", - "dewgong": "Dewgong", - "grimer": "Grimer", - "muk": "Muk", - "shellder": "Shellder", - "cloyster": "Cloyster", - "gastly": "Gastly", - "haunter": "Haunter", + "farfetchd": "Porenta", + "doduo": "Dodu", + "dodrio": "Dodri", + "seel": "Jurob", + "dewgong": "Jugong", + "grimer": "Sleima", + "muk": "Sleimok", + "shellder": "Muschas", + "cloyster": "Austos", + "gastly": "Nebulak", + "haunter": "Alpollo", "gengar": "Gengar", "onix": "Onix", - "drowzee": "Drowzee", + "drowzee": "Traumato", "hypno": "Hypno", "krabby": "Krabby", "kingler": "Kingler", - "voltorb": "Voltorb", - "electrode": "Electrode", - "exeggcute": "Exeggcute", - "exeggutor": "Exeggutor", - "cubone": "Cubone", - "marowak": "Marowak", - "hitmonlee": "Hitmonlee", - "hitmonchan": "Hitmonchan", - "lickitung": "Lickitung", - "koffing": "Koffing", - "weezing": "Weezing", - "rhyhorn": "Rhyhorn", - "rhydon": "Rhydon", - "chansey": "Chansey", + "voltorb": "Voltobal", + "electrode": "Lektrobal", + "exeggcute": "Owei", + "exeggutor": "Kokowei", + "cubone": "Tragosso", + "marowak": "Knogga", + "hitmonlee": "Kicklee", + "hitmonchan": "Nockchan", + "lickitung": "Schlurp", + "koffing": "Smogon", + "weezing": "Smogmog", + "rhyhorn": "Rihorn", + "rhydon": "Rizeros", + "chansey": "Chaneira", "tangela": "Tangela", - "kangaskhan": "Kangaskhan", - "horsea": "Horsea", - "seadra": "Seadra", - "goldeen": "Goldeen", - "seaking": "Seaking", - "staryu": "Staryu", + "kangaskhan": "Kangama", + "horsea": "Seeper", + "seadra": "Seemon", + "goldeen": "Goldini", + "seaking": "Golking", + "staryu": "Sterndu", "starmie": "Starmie", - "mr_mime": "Mr. Mime", - "scyther": "Scyther", - "jynx": "Jynx", - "electabuzz": "Electabuzz", + "mr_mime": "Pantimos", + "scyther": "Sichlor", + "jynx": "Rossana", + "electabuzz": "Elektek", "magmar": "Magmar", "pinsir": "Pinsir", "tauros": "Tauros", - "magikarp": "Magikarp", - "gyarados": "Gyarados", + "magikarp": "Karpador", + "gyarados": "Garados", "lapras": "Lapras", "ditto": "Ditto", - "eevee": "Eevee", - "vaporeon": "Vaporeon", - "jolteon": "Jolteon", - "flareon": "Flareon", + "eevee": "Evoli", + "vaporeon": "Aquana", + "jolteon": "Blitza", + "flareon": "Flamara", "porygon": "Porygon", - "omanyte": "Omanyte", - "omastar": "Omastar", + "omanyte": "Amonitas", + "omastar": "Amoroso", "kabuto": "Kabuto", "kabutops": "Kabutops", "aerodactyl": "Aerodactyl", - "snorlax": "Snorlax", - "articuno": "Articuno", + "snorlax": "Relaxo", + "articuno": "Arktos", "zapdos": "Zapdos", - "moltres": "Moltres", + "moltres": "Lavados", "dratini": "Dratini", - "dragonair": "Dragonair", - "dragonite": "Dragonite", - "mewtwo": "Mewtwo", + "dragonair": "Dragonir", + "dragonite": "Dragoran", + "mewtwo": "Mewtu", "mew": "Mew", - "chikorita": "Chikorita", - "bayleef": "Bayleef", - "meganium": "Meganium", - "cyndaquil": "Cyndaquil", - "quilava": "Quilava", - "typhlosion": "Typhlosion", - "totodile": "Totodile", - "croconaw": "Croconaw", - "feraligatr": "Feraligatr", - "sentret": "Sentret", - "furret": "Furret", + "chikorita": "Endivie", + "bayleef": "Lorblatt", + "meganium": "Meganie", + "cyndaquil": "Feurigel", + "quilava": "Igelavar", + "typhlosion": "Tornupto", + "totodile": "Karnimani", + "croconaw": "Tyracroc", + "feraligatr": "Impergator", + "sentret": "Wiesor", + "furret": "Wiesenior", "hoothoot": "Hoothoot", - "noctowl": "Noctowl", + "noctowl": "Noctuh", "ledyba": "Ledyba", "ledian": "Ledian", - "spinarak": "Spinarak", + "spinarak": "Webarak", "ariados": "Ariados", - "crobat": "Crobat", - "chinchou": "Chinchou", + "crobat": "Iksbat", + "chinchou": "Lampi", "lanturn": "Lanturn", "pichu": "Pichu", - "cleffa": "Cleffa", - "igglybuff": "Igglybuff", + "cleffa": "Pii", + "igglybuff": "Fluffeluff", "togepi": "Togepi", "togetic": "Togetic", "natu": "Natu", "xatu": "Xatu", - "mareep": "Mareep", - "flaaffy": "Flaaffy", + "mareep": "Voltilamm", + "flaaffy": "Waaty", "ampharos": "Ampharos", - "bellossom": "Bellossom", + "bellossom": "Blubella", "marill": "Marill", "azumarill": "Azumarill", - "sudowoodo": "Sudowoodo", - "politoed": "Politoed", - "hoppip": "Hoppip", - "skiploom": "Skiploom", - "jumpluff": "Jumpluff", - "aipom": "Aipom", - "sunkern": "Sunkern", - "sunflora": "Sunflora", + "sudowoodo": "Mogelbaum", + "politoed": "Quaxo", + "hoppip": "Hoppspross", + "skiploom": "Hubelupf", + "jumpluff": "Papungha", + "aipom": "Griffel", + "sunkern": "Sonnkern", + "sunflora": "Sonnflora", "yanma": "Yanma", - "wooper": "Wooper", - "quagsire": "Quagsire", - "espeon": "Espeon", - "umbreon": "Umbreon", - "murkrow": "Murkrow", - "slowking": "Slowking", - "misdreavus": "Misdreavus", - "unown": "Unown", - "wobbuffet": "Wobbuffet", + "wooper": "Felino", + "quagsire": "Morlord", + "espeon": "Psiana", + "umbreon": "Nachtara", + "murkrow": "Kramurx", + "slowking": "Laschoking", + "misdreavus": "Traunfugil", + "unown": "Icognito", + "wobbuffet": "Woingenau", "girafarig": "Girafarig", - "pineco": "Pineco", - "forretress": "Forretress", - "dunsparce": "Dunsparce", - "gligar": "Gligar", - "steelix": "Steelix", + "pineco": "Tannza", + "forretress": "Forstellka", + "dunsparce": "Dummisel", + "gligar": "Skorgla", + "steelix": "Stahlos", "snubbull": "Snubbull", "granbull": "Granbull", - "qwilfish": "Qwilfish", - "scizor": "Scizor", - "shuckle": "Shuckle", - "heracross": "Heracross", - "sneasel": "Sneasel", + "qwilfish": "Baldorfish", + "scizor": "Scherox", + "shuckle": "Pottrott", + "heracross": "Skaraborn", + "sneasel": "Sniebel", "teddiursa": "Teddiursa", "ursaring": "Ursaring", - "slugma": "Slugma", + "slugma": "Schneckmag", "magcargo": "Magcargo", - "swinub": "Swinub", - "piloswine": "Piloswine", - "corsola": "Corsola", + "swinub": "Quiekel", + "piloswine": "Keifel", + "corsola": "Corasonn", "remoraid": "Remoraid", "octillery": "Octillery", - "delibird": "Delibird", - "mantine": "Mantine", - "skarmory": "Skarmory", - "houndour": "Houndour", - "houndoom": "Houndoom", - "kingdra": "Kingdra", + "delibird": "Botogel", + "mantine": "Mantax", + "skarmory": "Panzaeron", + "houndour": "Hunduster", + "houndoom": "Hundemon", + "kingdra": "Seedraking", "phanpy": "Phanpy", "donphan": "Donphan", "porygon2": "Porygon2", - "stantler": "Stantler", - "smeargle": "Smeargle", - "tyrogue": "Tyrogue", - "hitmontop": "Hitmontop", - "smoochum": "Smoochum", + "stantler": "Damhirplex", + "smeargle": "Farbeagle", + "tyrogue": "Rabauz", + "hitmontop": "Kapoera", + "smoochum": "Kussilla", "elekid": "Elekid", "magby": "Magby", "miltank": "Miltank", - "blissey": "Blissey", + "blissey": "Heiteira", "raikou": "Raikou", "entei": "Entei", "suicune": "Suicune", "larvitar": "Larvitar", "pupitar": "Pupitar", - "tyranitar": "Tyranitar", + "tyranitar": "Despotar", "lugia": "Lugia", "ho_oh": "Ho-Oh", "celebi": "Celebi", - "treecko": "Treecko", - "grovyle": "Grovyle", - "sceptile": "Sceptile", - "torchic": "Torchic", - "combusken": "Combusken", - "blaziken": "Blaziken", - "mudkip": "Mudkip", - "marshtomp": "Marshtomp", - "swampert": "Swampert", - "poochyena": "Poochyena", - "mightyena": "Mightyena", - "zigzagoon": "Zigzagoon", - "linoone": "Linoone", - "wurmple": "Wurmple", - "silcoon": "Silcoon", - "beautifly": "Beautifly", - "cascoon": "Cascoon", - "dustox": "Dustox", - "lotad": "Lotad", - "lombre": "Lombre", - "ludicolo": "Ludicolo", - "seedot": "Seedot", - "nuzleaf": "Nuzleaf", - "shiftry": "Shiftry", - "taillow": "Taillow", - "swellow": "Swellow", + "treecko": "Geckarbor", + "grovyle": "Reptain", + "sceptile": "Gewaldro", + "torchic": "Flemmli", + "combusken": "Jungglut", + "blaziken": "Lohgock", + "mudkip": "Hydropi", + "marshtomp": "Moorabbel", + "swampert": "Sumpex", + "poochyena": "Fiffyen", + "mightyena": "Magnayen", + "zigzagoon": "Zigzachs", + "linoone": "Geradaks", + "wurmple": "Waumpel", + "silcoon": "Schaloko", + "beautifly": "Papinella", + "cascoon": "Panekon", + "dustox": "Pudox", + "lotad": "Loturzel", + "lombre": "Lombrero", + "ludicolo": "Kappalores", + "seedot": "Samurzel", + "nuzleaf": "Blanas", + "shiftry": "Tengulist", + "taillow": "Schwalbini", + "swellow": "Schwalboss", "wingull": "Wingull", "pelipper": "Pelipper", - "ralts": "Ralts", + "ralts": "Trasla", "kirlia": "Kirlia", "gardevoir": "Gardevoir", - "surskit": "Surskit", - "masquerain": "Masquerain", - "shroomish": "Shroomish", - "breloom": "Breloom", - "slakoth": "Slakoth", - "vigoroth": "Vigoroth", - "slaking": "Slaking", + "surskit": "Geweiher", + "masquerain": "Maskeregen", + "shroomish": "Knilz", + "breloom": "Kapilz", + "slakoth": "Bummelz", + "vigoroth": "Muntier", + "slaking": "Letarking", "nincada": "Nincada", "ninjask": "Ninjask", - "shedinja": "Shedinja", - "whismur": "Whismur", - "loudred": "Loudred", - "exploud": "Exploud", + "shedinja": "Ninjatom", + "whismur": "Flurmel", + "loudred": "Krakeelo", + "exploud": "Krawumms", "makuhita": "Makuhita", "hariyama": "Hariyama", "azurill": "Azurill", - "nosepass": "Nosepass", - "skitty": "Skitty", - "delcatty": "Delcatty", - "sableye": "Sableye", - "mawile": "Mawile", - "aron": "Aron", - "lairon": "Lairon", - "aggron": "Aggron", + "nosepass": "Nasgnet", + "skitty": "Eneco", + "delcatty": "Enekoro", + "sableye": "Zobiris", + "mawile": "Flunkifer", + "aron": "Stollunior", + "lairon": "Stollrak", + "aggron": "Stolloss", "meditite": "Meditite", - "medicham": "Medicham", - "electrike": "Electrike", - "manectric": "Manectric", + "medicham": "Meditalis", + "electrike": "Frizelbliz", + "manectric": "Voltenso", "plusle": "Plusle", "minun": "Minun", "volbeat": "Volbeat", "illumise": "Illumise", "roselia": "Roselia", - "gulpin": "Gulpin", - "swalot": "Swalot", - "carvanha": "Carvanha", - "sharpedo": "Sharpedo", + "gulpin": "Schluppuck", + "swalot": "Schluckwech", + "carvanha": "Kanivanha", + "sharpedo": "Tohaido", "wailmer": "Wailmer", "wailord": "Wailord", - "numel": "Numel", + "numel": "Camaub", "camerupt": "Camerupt", - "torkoal": "Torkoal", + "torkoal": "Qurtel", "spoink": "Spoink", - "grumpig": "Grumpig", - "spinda": "Spinda", - "trapinch": "Trapinch", + "grumpig": "Groink", + "spinda": "Pandir", + "trapinch": "Knacklion", "vibrava": "Vibrava", - "flygon": "Flygon", - "cacnea": "Cacnea", - "cacturne": "Cacturne", - "swablu": "Swablu", + "flygon": "Libelldra", + "cacnea": "Tuska", + "cacturne": "Noktuska", + "swablu": "Wablu", "altaria": "Altaria", - "zangoose": "Zangoose", - "seviper": "Seviper", - "lunatone": "Lunatone", - "solrock": "Solrock", - "barboach": "Barboach", - "whiscash": "Whiscash", - "corphish": "Corphish", - "crawdaunt": "Crawdaunt", - "baltoy": "Baltoy", - "claydol": "Claydol", - "lileep": "Lileep", - "cradily": "Cradily", + "zangoose": "Sengo", + "seviper": "Vipitis", + "lunatone": "Lunastein", + "solrock": "Sonnfel", + "barboach": "Schmerbe", + "whiscash": "Welsar", + "corphish": "Krebscorps", + "crawdaunt": "Krebutack", + "baltoy": "Puppance", + "claydol": "Lepumentas", + "lileep": "Liliep", + "cradily": "Wielie", "anorith": "Anorith", "armaldo": "Armaldo", - "feebas": "Feebas", + "feebas": "Barschwa", "milotic": "Milotic", - "castform": "Castform", + "castform": "Formeo", "kecleon": "Kecleon", "shuppet": "Shuppet", "banette": "Banette", - "duskull": "Duskull", - "dusclops": "Dusclops", + "duskull": "Zwirrlicht", + "dusclops": "Zwirrklop", "tropius": "Tropius", - "chimecho": "Chimecho", + "chimecho": "Palimpalim", "absol": "Absol", - "wynaut": "Wynaut", - "snorunt": "Snorunt", - "glalie": "Glalie", - "spheal": "Spheal", - "sealeo": "Sealeo", - "walrein": "Walrein", - "clamperl": "Clamperl", - "huntail": "Huntail", - "gorebyss": "Gorebyss", + "wynaut": "Isso", + "snorunt": "Schneppke", + "glalie": "Firnontor", + "spheal": "Seemops", + "sealeo": "Seejong", + "walrein": "Walraisa", + "clamperl": "Perlu", + "huntail": "Aalabyss", + "gorebyss": "Saganabyss", "relicanth": "Relicanth", - "luvdisc": "Luvdisc", - "bagon": "Bagon", - "shelgon": "Shelgon", - "salamence": "Salamence", - "beldum": "Beldum", + "luvdisc": "Liebiskus", + "bagon": "Kindwurm", + "shelgon": "Draschel", + "salamence": "Brutalanda", + "beldum": "Tanhel", "metang": "Metang", "metagross": "Metagross", "regirock": "Regirock", diff --git a/src/locales/de/tutorial.ts b/src/locales/de/tutorial.ts new file mode 100644 index 00000000000..2722c02ad45 --- /dev/null +++ b/src/locales/de/tutorial.ts @@ -0,0 +1,38 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const tutorial: SimpleTranslationEntries = { + "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. + $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. + $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. + $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, + + "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, + + "menu": `From this menu you can access the settings. + $From the settings you can change game speed, window style, and other options. + $There are also various other features here, so be sure to check them all!`, + + "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members. + $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. + $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. + $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!`, + + "pokerus": `A daily random 3 selectable starters have a purple border. + $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, + + "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one. + $These range from consumables, to Pokémon held items, to passive permanent items. + $Most non-consumable item effects will stack in various ways. + $Some items will only show up if they can be used, such as evolution items. + $You can also transfer held items between Pokémon using the transfer option. + $The transfer option will appear in the bottom right once you have obtained a held item. + $You may purchase consumable items with money, and a larger variety will be available the further you get. + $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, + + "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs. + $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. + $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. + $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. + $Some Pokémon can only even be obtained from eggs. + $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, +} as const; \ No newline at end of file diff --git a/src/locales/en/tutorial.ts b/src/locales/en/tutorial.ts new file mode 100644 index 00000000000..2722c02ad45 --- /dev/null +++ b/src/locales/en/tutorial.ts @@ -0,0 +1,38 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const tutorial: SimpleTranslationEntries = { + "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. + $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. + $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. + $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, + + "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, + + "menu": `From this menu you can access the settings. + $From the settings you can change game speed, window style, and other options. + $There are also various other features here, so be sure to check them all!`, + + "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members. + $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. + $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. + $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!`, + + "pokerus": `A daily random 3 selectable starters have a purple border. + $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, + + "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one. + $These range from consumables, to Pokémon held items, to passive permanent items. + $Most non-consumable item effects will stack in various ways. + $Some items will only show up if they can be used, such as evolution items. + $You can also transfer held items between Pokémon using the transfer option. + $The transfer option will appear in the bottom right once you have obtained a held item. + $You may purchase consumable items with money, and a larger variety will be available the further you get. + $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, + + "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs. + $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. + $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. + $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. + $Some Pokémon can only even be obtained from eggs. + $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, +} as const; \ No newline at end of file diff --git a/src/locales/es/tutorial.ts b/src/locales/es/tutorial.ts new file mode 100644 index 00000000000..2722c02ad45 --- /dev/null +++ b/src/locales/es/tutorial.ts @@ -0,0 +1,38 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const tutorial: SimpleTranslationEntries = { + "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. + $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. + $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. + $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, + + "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, + + "menu": `From this menu you can access the settings. + $From the settings you can change game speed, window style, and other options. + $There are also various other features here, so be sure to check them all!`, + + "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members. + $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. + $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. + $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!`, + + "pokerus": `A daily random 3 selectable starters have a purple border. + $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, + + "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one. + $These range from consumables, to Pokémon held items, to passive permanent items. + $Most non-consumable item effects will stack in various ways. + $Some items will only show up if they can be used, such as evolution items. + $You can also transfer held items between Pokémon using the transfer option. + $The transfer option will appear in the bottom right once you have obtained a held item. + $You may purchase consumable items with money, and a larger variety will be available the further you get. + $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, + + "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs. + $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. + $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. + $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. + $Some Pokémon can only even be obtained from eggs. + $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, +} as const; \ No newline at end of file diff --git a/src/locales/fr/tutorial.ts b/src/locales/fr/tutorial.ts new file mode 100644 index 00000000000..2722c02ad45 --- /dev/null +++ b/src/locales/fr/tutorial.ts @@ -0,0 +1,38 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const tutorial: SimpleTranslationEntries = { + "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. + $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. + $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. + $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, + + "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, + + "menu": `From this menu you can access the settings. + $From the settings you can change game speed, window style, and other options. + $There are also various other features here, so be sure to check them all!`, + + "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members. + $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. + $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. + $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!`, + + "pokerus": `A daily random 3 selectable starters have a purple border. + $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, + + "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one. + $These range from consumables, to Pokémon held items, to passive permanent items. + $Most non-consumable item effects will stack in various ways. + $Some items will only show up if they can be used, such as evolution items. + $You can also transfer held items between Pokémon using the transfer option. + $The transfer option will appear in the bottom right once you have obtained a held item. + $You may purchase consumable items with money, and a larger variety will be available the further you get. + $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, + + "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs. + $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. + $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. + $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. + $Some Pokémon can only even be obtained from eggs. + $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, +} as const; \ No newline at end of file diff --git a/src/locales/it/tutorial.ts b/src/locales/it/tutorial.ts new file mode 100644 index 00000000000..2722c02ad45 --- /dev/null +++ b/src/locales/it/tutorial.ts @@ -0,0 +1,38 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const tutorial: SimpleTranslationEntries = { + "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. + $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. + $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. + $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, + + "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, + + "menu": `From this menu you can access the settings. + $From the settings you can change game speed, window style, and other options. + $There are also various other features here, so be sure to check them all!`, + + "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members. + $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. + $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. + $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!`, + + "pokerus": `A daily random 3 selectable starters have a purple border. + $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, + + "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one. + $These range from consumables, to Pokémon held items, to passive permanent items. + $Most non-consumable item effects will stack in various ways. + $Some items will only show up if they can be used, such as evolution items. + $You can also transfer held items between Pokémon using the transfer option. + $The transfer option will appear in the bottom right once you have obtained a held item. + $You may purchase consumable items with money, and a larger variety will be available the further you get. + $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, + + "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs. + $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. + $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. + $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. + $Some Pokémon can only even be obtained from eggs. + $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, +} as const; \ No newline at end of file diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index adc1f3d5295..b12bda1f419 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -45,6 +45,12 @@ import { commandUiHandler as deCommandUiHandler } from '../locales/de/command-ui import { fightUiHandler as enFightUiHandler } from '../locales/en/fight-ui-handler'; import { fightUiHandler as frFightUiHandler } from '../locales/fr/fight-ui-handler'; +import { tutorial as enTutorial } from '../locales/en/tutorial'; +import { tutorial as esTutorial } from '../locales/es/tutorial'; +import { tutorial as frTutorial } from '../locales/fr/tutorial'; +import { tutorial as itTutorial} from '../locales/it/tutorial'; +import { tutorial as deTutorial } from '../locales/de/tutorial'; + export interface SimpleTranslationEntries { [key: string]: string } @@ -113,6 +119,7 @@ export function initI18n(): void { pokemonStat: enPokemonStat, commandUiHandler: enCommandUiHandler, fightUiHandler: enFightUiHandler, + tutorial: enTutorial, }, es: { menu: esMenu, @@ -123,6 +130,7 @@ export function initI18n(): void { pokemon: esPokemon, pokemonStat: esPokemonStat, commandUiHandler: esCommandUiHandler, + tutorial: esTutorial, }, fr: { menu: frMenu, @@ -134,11 +142,13 @@ export function initI18n(): void { pokemonStat: frPokemonStat, commandUiHandler: frCommandUiHandler, fightUiHandler: frFightUiHandler, + tutorial: frTutorial, }, it: { menu: itMenu, menuUiHandler: itMenuUiHandler, pokemonStat: itPokemonStat, + tutorial: itTutorial, }, de: { menu: deMenu, @@ -149,6 +159,7 @@ export function initI18n(): void { pokemon: dePokemon, pokemonStat: dePokemonStat, commandUiHandler: deCommandUiHandler, + tutorial: deTutorial, } }, }); @@ -167,6 +178,7 @@ declare module 'i18next' { pokemonStat: typeof enPokemonStat; commandUiHandler: typeof enCommandUiHandler; fightUiHandler: typeof enFightUiHandler; + tutorial: typeof enTutorial; }; } } diff --git a/src/tutorial.ts b/src/tutorial.ts index a924243ac33..918c68b9bb4 100644 --- a/src/tutorial.ts +++ b/src/tutorial.ts @@ -1,6 +1,7 @@ import BattleScene from "./battle-scene"; import AwaitableUiHandler from "./ui/awaitable-ui-handler"; import { Mode } from "./ui/ui"; +import i18next from './plugins/i18n'; export enum Tutorial { Intro = "INTRO", @@ -15,63 +16,42 @@ export enum Tutorial { const tutorialHandlers = { [Tutorial.Intro]: (scene: BattleScene) => { return new Promise(resolve => { - scene.ui.showText(`Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. - $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. - $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. - $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, null, () => resolve(), null, true); + scene.ui.showText(i18next.t("tutorial:intro"), null, () => resolve(), null, true); }); }, [Tutorial.Access_Menu]: (scene: BattleScene) => { return new Promise(resolve => { if (scene.enableTouchControls) return resolve(); - scene.showFieldOverlay(1000).then(() => scene.ui.showText(`To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, null, () => scene.hideFieldOverlay(1000).then(() => resolve()), null, true)); + scene.showFieldOverlay(1000).then(() => scene.ui.showText(i18next.t("tutorial:accessMenu"), null, () => scene.hideFieldOverlay(1000).then(() => resolve()), null, true)); }); }, [Tutorial.Menu]: (scene: BattleScene) => { return new Promise(resolve => { scene.gameData.saveTutorialFlag(Tutorial.Access_Menu, true); - scene.ui.showText(`From this menu you can access the settings. - $From the settings you can change game speed, window style, and other options. - $There are also various other features here, so be sure to check them all!`, null, () => scene.ui.showText('', null, () => resolve()), null, true); + scene.ui.showText(i18next.t("tutorial:menu"), null, () => scene.ui.showText('', null, () => resolve()), null, true); }); }, [Tutorial.Starter_Select]: (scene: BattleScene) => { return new Promise(resolve => { - scene.ui.showText(`From this screen, you can select your starters.\nThese are your initial party members. - $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. - $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. - $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!`, null, () => scene.ui.showText('', null, () => resolve()), null, true); + scene.ui.showText(i18next.t("tutorial:starterSelect"), null, () => scene.ui.showText('', null, () => resolve()), null, true); }); }, [Tutorial.Pokerus]: (scene: BattleScene) => { return new Promise(resolve => { - scene.ui.showText(`A daily random 3 selectable starters have a purple border. - $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, null, () => scene.ui.showText('', null, () => resolve()), null, true); + scene.ui.showText(i18next.t("tutorial:pokerus"), null, () => scene.ui.showText('', null, () => resolve()), null, true); }); }, [Tutorial.Select_Item]: (scene: BattleScene) => { return new Promise(resolve => { scene.ui.setModeWithoutClear(Mode.MESSAGE).then(() => { - scene.ui.showText(`After every battle, you are given a choice of 3 random items.\nYou may only pick one. - $These range from consumables, to Pokémon held items, to passive permanent items. - $Most non-consumable item effects will stack in various ways. - $Some items will only show up if they can be used, such as evolution items. - $You can also transfer held items between Pokémon using the transfer option. - $The transfer option will appear in the bottom right once you have obtained a held item. - $You may purchase consumable items with money, and a larger variety will be available the further you get. - $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, null, () => scene.ui.showText('', null, () => scene.ui.setModeWithoutClear(Mode.MODIFIER_SELECT).then(() => resolve())), null, true); + scene.ui.showText(i18next.t("tutorial:selectItem"), null, () => scene.ui.showText('', null, () => scene.ui.setModeWithoutClear(Mode.MODIFIER_SELECT).then(() => resolve())), null, true); }); }); }, [Tutorial.Egg_Gacha]: (scene: BattleScene) => { return new Promise(resolve => { - scene.ui.showText(`From this screen, you can redeem your vouchers for\nPokémon eggs. - $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. - $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. - $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. - $Some Pokémon can only even be obtained from eggs. - $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, null, () => scene.ui.showText('', null, () => resolve()), null, true); + scene.ui.showText(i18next.t("tutorial:eggGacha"), null, () => scene.ui.showText('', null, () => resolve()), null, true); }); }, }; @@ -94,4 +74,4 @@ export function handleTutorial(scene: BattleScene, tutorial: Tutorial): Promise< resolve(true); }); }); -} \ No newline at end of file +}