From 392bb1803cfb3706fca42f6b656256f7756def55 Mon Sep 17 00:00:00 2001 From: Asdar Date: Mon, 26 Aug 2024 20:49:39 +0200 Subject: [PATCH 01/18] =?UTF-8?q?ReAdd=20Portuguese=20Pok=C3=A9mon=20Names?= =?UTF-8?q?=20(#3790)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/pt_BR/pokemon.json | 1085 +++++++++++++++++++++++++++++++- 1 file changed, 1084 insertions(+), 1 deletion(-) diff --git a/src/locales/pt_BR/pokemon.json b/src/locales/pt_BR/pokemon.json index 9e26dfeeb6e..f780d2accbd 100644 --- a/src/locales/pt_BR/pokemon.json +++ b/src/locales/pt_BR/pokemon.json @@ -1 +1,1084 @@ -{} \ No newline at end of file +{ + "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", + "arbok": "Arbok", + "pikachu": "Pikachu", + "raichu": "Raichu", + "sandshrew": "Sandshrew", + "sandslash": "Sandslash", + "nidoran_f": "Nidoran♀", + "nidorina": "Nidorina", + "nidoqueen": "Nidoqueen", + "nidoran_m": "Nidoran♂", + "nidorino": "Nidorino", + "nidoking": "Nidoking", + "clefairy": "Clefairy", + "clefable": "Clefable", + "vulpix": "Vulpix", + "ninetales": "Ninetales", + "jigglypuff": "Jigglypuff", + "wigglytuff": "Wigglytuff", + "zubat": "Zubat", + "golbat": "Golbat", + "oddish": "Oddish", + "gloom": "Gloom", + "vileplume": "Vileplume", + "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", + "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", + "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", + "gengar": "Gengar", + "onix": "Onix", + "drowzee": "Drowzee", + "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", + "tangela": "Tangela", + "kangaskhan": "Kangaskhan", + "horsea": "Horsea", + "seadra": "Seadra", + "goldeen": "Goldeen", + "seaking": "Seaking", + "staryu": "Staryu", + "starmie": "Starmie", + "mr_mime": "Mr. Mime", + "scyther": "Scyther", + "jynx": "Jynx", + "electabuzz": "Electabuzz", + "magmar": "Magmar", + "pinsir": "Pinsir", + "tauros": "Tauros", + "magikarp": "Magikarp", + "gyarados": "Gyarados", + "lapras": "Lapras", + "ditto": "Ditto", + "eevee": "Eevee", + "vaporeon": "Vaporeon", + "jolteon": "Jolteon", + "flareon": "Flareon", + "porygon": "Porygon", + "omanyte": "Omanyte", + "omastar": "Omastar", + "kabuto": "Kabuto", + "kabutops": "Kabutops", + "aerodactyl": "Aerodactyl", + "snorlax": "Snorlax", + "articuno": "Articuno", + "zapdos": "Zapdos", + "moltres": "Moltres", + "dratini": "Dratini", + "dragonair": "Dragonair", + "dragonite": "Dragonite", + "mewtwo": "Mewtwo", + "mew": "Mew", + "chikorita": "Chikorita", + "bayleef": "Bayleef", + "meganium": "Meganium", + "cyndaquil": "Cyndaquil", + "quilava": "Quilava", + "typhlosion": "Typhlosion", + "totodile": "Totodile", + "croconaw": "Croconaw", + "feraligatr": "Feraligatr", + "sentret": "Sentret", + "furret": "Furret", + "hoothoot": "Hoothoot", + "noctowl": "Noctowl", + "ledyba": "Ledyba", + "ledian": "Ledian", + "spinarak": "Spinarak", + "ariados": "Ariados", + "crobat": "Crobat", + "chinchou": "Chinchou", + "lanturn": "Lanturn", + "pichu": "Pichu", + "cleffa": "Cleffa", + "igglybuff": "Igglybuff", + "togepi": "Togepi", + "togetic": "Togetic", + "natu": "Natu", + "xatu": "Xatu", + "mareep": "Mareep", + "flaaffy": "Flaaffy", + "ampharos": "Ampharos", + "bellossom": "Bellossom", + "marill": "Marill", + "azumarill": "Azumarill", + "sudowoodo": "Sudowoodo", + "politoed": "Politoed", + "hoppip": "Hoppip", + "skiploom": "Skiploom", + "jumpluff": "Jumpluff", + "aipom": "Aipom", + "sunkern": "Sunkern", + "sunflora": "Sunflora", + "yanma": "Yanma", + "wooper": "Wooper", + "quagsire": "Quagsire", + "espeon": "Espeon", + "umbreon": "Umbreon", + "murkrow": "Murkrow", + "slowking": "Slowking", + "misdreavus": "Misdreavus", + "unown": "Unown", + "wobbuffet": "Wobbuffet", + "girafarig": "Girafarig", + "pineco": "Pineco", + "forretress": "Forretress", + "dunsparce": "Dunsparce", + "gligar": "Gligar", + "steelix": "Steelix", + "snubbull": "Snubbull", + "granbull": "Granbull", + "qwilfish": "Qwilfish", + "scizor": "Scizor", + "shuckle": "Shuckle", + "heracross": "Heracross", + "sneasel": "Sneasel", + "teddiursa": "Teddiursa", + "ursaring": "Ursaring", + "slugma": "Slugma", + "magcargo": "Magcargo", + "swinub": "Swinub", + "piloswine": "Piloswine", + "corsola": "Corsola", + "remoraid": "Remoraid", + "octillery": "Octillery", + "delibird": "Delibird", + "mantine": "Mantine", + "skarmory": "Skarmory", + "houndour": "Houndour", + "houndoom": "Houndoom", + "kingdra": "Kingdra", + "phanpy": "Phanpy", + "donphan": "Donphan", + "porygon2": "Porygon2", + "stantler": "Stantler", + "smeargle": "Smeargle", + "tyrogue": "Tyrogue", + "hitmontop": "Hitmontop", + "smoochum": "Smoochum", + "elekid": "Elekid", + "magby": "Magby", + "miltank": "Miltank", + "blissey": "Blissey", + "raikou": "Raikou", + "entei": "Entei", + "suicune": "Suicune", + "larvitar": "Larvitar", + "pupitar": "Pupitar", + "tyranitar": "Tyranitar", + "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", + "wingull": "Wingull", + "pelipper": "Pelipper", + "ralts": "Ralts", + "kirlia": "Kirlia", + "gardevoir": "Gardevoir", + "surskit": "Surskit", + "masquerain": "Masquerain", + "shroomish": "Shroomish", + "breloom": "Breloom", + "slakoth": "Slakoth", + "vigoroth": "Vigoroth", + "slaking": "Slaking", + "nincada": "Nincada", + "ninjask": "Ninjask", + "shedinja": "Shedinja", + "whismur": "Whismur", + "loudred": "Loudred", + "exploud": "Exploud", + "makuhita": "Makuhita", + "hariyama": "Hariyama", + "azurill": "Azurill", + "nosepass": "Nosepass", + "skitty": "Skitty", + "delcatty": "Delcatty", + "sableye": "Sableye", + "mawile": "Mawile", + "aron": "Aron", + "lairon": "Lairon", + "aggron": "Aggron", + "meditite": "Meditite", + "medicham": "Medicham", + "electrike": "Electrike", + "manectric": "Manectric", + "plusle": "Plusle", + "minun": "Minun", + "volbeat": "Volbeat", + "illumise": "Illumise", + "roselia": "Roselia", + "gulpin": "Gulpin", + "swalot": "Swalot", + "carvanha": "Carvanha", + "sharpedo": "Sharpedo", + "wailmer": "Wailmer", + "wailord": "Wailord", + "numel": "Numel", + "camerupt": "Camerupt", + "torkoal": "Torkoal", + "spoink": "Spoink", + "grumpig": "Grumpig", + "spinda": "Spinda", + "trapinch": "Trapinch", + "vibrava": "Vibrava", + "flygon": "Flygon", + "cacnea": "Cacnea", + "cacturne": "Cacturne", + "swablu": "Swablu", + "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", + "anorith": "Anorith", + "armaldo": "Armaldo", + "feebas": "Feebas", + "milotic": "Milotic", + "castform": "Castform", + "kecleon": "Kecleon", + "shuppet": "Shuppet", + "banette": "Banette", + "duskull": "Duskull", + "dusclops": "Dusclops", + "tropius": "Tropius", + "chimecho": "Chimecho", + "absol": "Absol", + "wynaut": "Wynaut", + "snorunt": "Snorunt", + "glalie": "Glalie", + "spheal": "Spheal", + "sealeo": "Sealeo", + "walrein": "Walrein", + "clamperl": "Clamperl", + "huntail": "Huntail", + "gorebyss": "Gorebyss", + "relicanth": "Relicanth", + "luvdisc": "Luvdisc", + "bagon": "Bagon", + "shelgon": "Shelgon", + "salamence": "Salamence", + "beldum": "Beldum", + "metang": "Metang", + "metagross": "Metagross", + "regirock": "Regirock", + "regice": "Regice", + "registeel": "Registeel", + "latias": "Latias", + "latios": "Latios", + "kyogre": "Kyogre", + "groudon": "Groudon", + "rayquaza": "Rayquaza", + "jirachi": "Jirachi", + "deoxys": "Deoxys", + "turtwig": "Turtwig", + "grotle": "Grotle", + "torterra": "Torterra", + "chimchar": "Chimchar", + "monferno": "Monferno", + "infernape": "Infernape", + "piplup": "Piplup", + "prinplup": "Prinplup", + "empoleon": "Empoleon", + "starly": "Starly", + "staravia": "Staravia", + "staraptor": "Staraptor", + "bidoof": "Bidoof", + "bibarel": "Bibarel", + "kricketot": "Kricketot", + "kricketune": "Kricketune", + "shinx": "Shinx", + "luxio": "Luxio", + "luxray": "Luxray", + "budew": "Budew", + "roserade": "Roserade", + "cranidos": "Cranidos", + "rampardos": "Rampardos", + "shieldon": "Shieldon", + "bastiodon": "Bastiodon", + "burmy": "Burmy", + "wormadam": "Wormadam", + "mothim": "Mothim", + "combee": "Combee", + "vespiquen": "Vespiquen", + "pachirisu": "Pachirisu", + "buizel": "Buizel", + "floatzel": "Floatzel", + "cherubi": "Cherubi", + "cherrim": "Cherrim", + "shellos": "Shellos", + "gastrodon": "Gastrodon", + "ambipom": "Ambipom", + "drifloon": "Drifloon", + "drifblim": "Drifblim", + "buneary": "Buneary", + "lopunny": "Lopunny", + "mismagius": "Mismagius", + "honchkrow": "Honchkrow", + "glameow": "Glameow", + "purugly": "Purugly", + "chingling": "Chingling", + "stunky": "Stunky", + "skuntank": "Skuntank", + "bronzor": "Bronzor", + "bronzong": "Bronzong", + "bonsly": "Bonsly", + "mime_jr": "Mime Jr.", + "happiny": "Happiny", + "chatot": "Chatot", + "spiritomb": "Spiritomb", + "gible": "Gible", + "gabite": "Gabite", + "garchomp": "Garchomp", + "munchlax": "Munchlax", + "riolu": "Riolu", + "lucario": "Lucario", + "hippopotas": "Hippopotas", + "hippowdon": "Hippowdon", + "skorupi": "Skorupi", + "drapion": "Drapion", + "croagunk": "Croagunk", + "toxicroak": "Toxicroak", + "carnivine": "Carnivine", + "finneon": "Finneon", + "lumineon": "Lumineon", + "mantyke": "Mantyke", + "snover": "Snover", + "abomasnow": "Abomasnow", + "weavile": "Weavile", + "magnezone": "Magnezone", + "lickilicky": "Lickilicky", + "rhyperior": "Rhyperior", + "tangrowth": "Tangrowth", + "electivire": "Electivire", + "magmortar": "Magmortar", + "togekiss": "Togekiss", + "yanmega": "Yanmega", + "leafeon": "Leafeon", + "glaceon": "Glaceon", + "gliscor": "Gliscor", + "mamoswine": "Mamoswine", + "porygon_z": "Porygon-Z", + "gallade": "Gallade", + "probopass": "Probopass", + "dusknoir": "Dusknoir", + "froslass": "Froslass", + "rotom": "Rotom", + "uxie": "Uxie", + "mesprit": "Mesprit", + "azelf": "Azelf", + "dialga": "Dialga", + "palkia": "Palkia", + "heatran": "Heatran", + "regigigas": "Regigigas", + "giratina": "Giratina", + "cresselia": "Cresselia", + "phione": "Phione", + "manaphy": "Manaphy", + "darkrai": "Darkrai", + "shaymin": "Shaymin", + "arceus": "Arceus", + "victini": "Victini", + "snivy": "Snivy", + "servine": "Servine", + "serperior": "Serperior", + "tepig": "Tepig", + "pignite": "Pignite", + "emboar": "Emboar", + "oshawott": "Oshawott", + "dewott": "Dewott", + "samurott": "Samurott", + "patrat": "Patrat", + "watchog": "Watchog", + "lillipup": "Lillipup", + "herdier": "Herdier", + "stoutland": "Stoutland", + "purrloin": "Purrloin", + "liepard": "Liepard", + "pansage": "Pansage", + "simisage": "Simisage", + "pansear": "Pansear", + "simisear": "Simisear", + "panpour": "Panpour", + "simipour": "Simipour", + "munna": "Munna", + "musharna": "Musharna", + "pidove": "Pidove", + "tranquill": "Tranquill", + "unfezant": "Unfezant", + "blitzle": "Blitzle", + "zebstrika": "Zebstrika", + "roggenrola": "Roggenrola", + "boldore": "Boldore", + "gigalith": "Gigalith", + "woobat": "Woobat", + "swoobat": "Swoobat", + "drilbur": "Drilbur", + "excadrill": "Excadrill", + "audino": "Audino", + "timburr": "Timburr", + "gurdurr": "Gurdurr", + "conkeldurr": "Conkeldurr", + "tympole": "Tympole", + "palpitoad": "Palpitoad", + "seismitoad": "Seismitoad", + "throh": "Throh", + "sawk": "Sawk", + "sewaddle": "Sewaddle", + "swadloon": "Swadloon", + "leavanny": "Leavanny", + "venipede": "Venipede", + "whirlipede": "Whirlipede", + "scolipede": "Scolipede", + "cottonee": "Cottonee", + "whimsicott": "Whimsicott", + "petilil": "Petilil", + "lilligant": "Lilligant", + "basculin": "Basculin", + "sandile": "Sandile", + "krokorok": "Krokorok", + "krookodile": "Krookodile", + "darumaka": "Darumaka", + "darmanitan": "Darmanitan", + "maractus": "Maractus", + "dwebble": "Dwebble", + "crustle": "Crustle", + "scraggy": "Scraggy", + "scrafty": "Scrafty", + "sigilyph": "Sigilyph", + "yamask": "Yamask", + "cofagrigus": "Cofagrigus", + "tirtouga": "Tirtouga", + "carracosta": "Carracosta", + "archen": "Archen", + "archeops": "Archeops", + "trubbish": "Trubbish", + "garbodor": "Garbodor", + "zorua": "Zorua", + "zoroark": "Zoroark", + "minccino": "Minccino", + "cinccino": "Cinccino", + "gothita": "Gothita", + "gothorita": "Gothorita", + "gothitelle": "Gothitelle", + "solosis": "Solosis", + "duosion": "Duosion", + "reuniclus": "Reuniclus", + "ducklett": "Ducklett", + "swanna": "Swanna", + "vanillite": "Vanillite", + "vanillish": "Vanillish", + "vanilluxe": "Vanilluxe", + "deerling": "Deerling", + "sawsbuck": "Sawsbuck", + "emolga": "Emolga", + "karrablast": "Karrablast", + "escavalier": "Escavalier", + "foongus": "Foongus", + "amoonguss": "Amoonguss", + "frillish": "Frillish", + "jellicent": "Jellicent", + "alomomola": "Alomomola", + "joltik": "Joltik", + "galvantula": "Galvantula", + "ferroseed": "Ferroseed", + "ferrothorn": "Ferrothorn", + "klink": "Klink", + "klang": "Klang", + "klinklang": "Klinklang", + "tynamo": "Tynamo", + "eelektrik": "Eelektrik", + "eelektross": "Eelektross", + "elgyem": "Elgyem", + "beheeyem": "Beheeyem", + "litwick": "Litwick", + "lampent": "Lampent", + "chandelure": "Chandelure", + "axew": "Axew", + "fraxure": "Fraxure", + "haxorus": "Haxorus", + "cubchoo": "Cubchoo", + "beartic": "Beartic", + "cryogonal": "Cryogonal", + "shelmet": "Shelmet", + "accelgor": "Accelgor", + "stunfisk": "Stunfisk", + "mienfoo": "Mienfoo", + "mienshao": "Mienshao", + "druddigon": "Druddigon", + "golett": "Golett", + "golurk": "Golurk", + "pawniard": "Pawniard", + "bisharp": "Bisharp", + "bouffalant": "Bouffalant", + "rufflet": "Rufflet", + "braviary": "Braviary", + "vullaby": "Vullaby", + "mandibuzz": "Mandibuzz", + "heatmor": "Heatmor", + "durant": "Durant", + "deino": "Deino", + "zweilous": "Zweilous", + "hydreigon": "Hydreigon", + "larvesta": "Larvesta", + "volcarona": "Volcarona", + "cobalion": "Cobalion", + "terrakion": "Terrakion", + "virizion": "Virizion", + "tornadus": "Tornadus", + "thundurus": "Thundurus", + "reshiram": "Reshiram", + "zekrom": "Zekrom", + "landorus": "Landorus", + "kyurem": "Kyurem", + "keldeo": "Keldeo", + "meloetta": "Meloetta", + "genesect": "Genesect", + "chespin": "Chespin", + "quilladin": "Quilladin", + "chesnaught": "Chesnaught", + "fennekin": "Fennekin", + "braixen": "Braixen", + "delphox": "Delphox", + "froakie": "Froakie", + "frogadier": "Frogadier", + "greninja": "Greninja", + "bunnelby": "Bunnelby", + "diggersby": "Diggersby", + "fletchling": "Fletchling", + "fletchinder": "Fletchinder", + "talonflame": "Talonflame", + "scatterbug": "Scatterbug", + "spewpa": "Spewpa", + "vivillon": "Vivillon", + "litleo": "Litleo", + "pyroar": "Pyroar", + "flabebe": "Flabébé", + "floette": "Floette", + "florges": "Florges", + "skiddo": "Skiddo", + "gogoat": "Gogoat", + "pancham": "Pancham", + "pangoro": "Pangoro", + "furfrou": "Furfrou", + "espurr": "Espurr", + "meowstic": "Meowstic", + "honedge": "Honedge", + "doublade": "Doublade", + "aegislash": "Aegislash", + "spritzee": "Spritzee", + "aromatisse": "Aromatisse", + "swirlix": "Swirlix", + "slurpuff": "Slurpuff", + "inkay": "Inkay", + "malamar": "Malamar", + "binacle": "Binacle", + "barbaracle": "Barbaracle", + "skrelp": "Skrelp", + "dragalge": "Dragalge", + "clauncher": "Clauncher", + "clawitzer": "Clawitzer", + "helioptile": "Helioptile", + "heliolisk": "Heliolisk", + "tyrunt": "Tyrunt", + "tyrantrum": "Tyrantrum", + "amaura": "Amaura", + "aurorus": "Aurorus", + "sylveon": "Sylveon", + "hawlucha": "Hawlucha", + "dedenne": "Dedenne", + "carbink": "Carbink", + "goomy": "Goomy", + "sliggoo": "Sliggoo", + "goodra": "Goodra", + "klefki": "Klefki", + "phantump": "Phantump", + "trevenant": "Trevenant", + "pumpkaboo": "Pumpkaboo", + "gourgeist": "Gourgeist", + "bergmite": "Bergmite", + "avalugg": "Avalugg", + "noibat": "Noibat", + "noivern": "Noivern", + "xerneas": "Xerneas", + "yveltal": "Yveltal", + "zygarde": "Zygarde", + "diancie": "Diancie", + "hoopa": "Hoopa", + "volcanion": "Volcanion", + "rowlet": "Rowlet", + "dartrix": "Dartrix", + "decidueye": "Decidueye", + "litten": "Litten", + "torracat": "Torracat", + "incineroar": "Incineroar", + "popplio": "Popplio", + "brionne": "Brionne", + "primarina": "Primarina", + "pikipek": "Pikipek", + "trumbeak": "Trumbeak", + "toucannon": "Toucannon", + "yungoos": "Yungoos", + "gumshoos": "Gumshoos", + "grubbin": "Grubbin", + "charjabug": "Charjabug", + "vikavolt": "Vikavolt", + "crabrawler": "Crabrawler", + "crabominable": "Crabominable", + "oricorio": "Oricorio", + "cutiefly": "Cutiefly", + "ribombee": "Ribombee", + "rockruff": "Rockruff", + "lycanroc": "Lycanroc", + "wishiwashi": "Wishiwashi", + "mareanie": "Mareanie", + "toxapex": "Toxapex", + "mudbray": "Mudbray", + "mudsdale": "Mudsdale", + "dewpider": "Dewpider", + "araquanid": "Araquanid", + "fomantis": "Fomantis", + "lurantis": "Lurantis", + "morelull": "Morelull", + "shiinotic": "Shiinotic", + "salandit": "Salandit", + "salazzle": "Salazzle", + "stufful": "Stufful", + "bewear": "Bewear", + "bounsweet": "Bounsweet", + "steenee": "Steenee", + "tsareena": "Tsareena", + "comfey": "Comfey", + "oranguru": "Oranguru", + "passimian": "Passimian", + "wimpod": "Wimpod", + "golisopod": "Golisopod", + "sandygast": "Sandygast", + "palossand": "Palossand", + "pyukumuku": "Pyukumuku", + "type_null": "Tipo Nulo", + "silvally": "Silvally", + "minior": "Minior", + "komala": "Komala", + "turtonator": "Turtonator", + "togedemaru": "Togedemaru", + "mimikyu": "Mimikyu", + "bruxish": "Bruxish", + "drampa": "Drampa", + "dhelmise": "Dhelmise", + "jangmo_o": "Jangmo-o", + "hakamo_o": "Hakamo-o", + "kommo_o": "Kommo-o", + "tapu_koko": "Tapu Koko", + "tapu_lele": "Tapu Lele", + "tapu_bulu": "Tapu Bulu", + "tapu_fini": "Tapu Fini", + "cosmog": "Cosmog", + "cosmoem": "Cosmoem", + "solgaleo": "Solgaleo", + "lunala": "Lunala", + "nihilego": "Nihilego", + "buzzwole": "Buzzwole", + "pheromosa": "Pheromosa", + "xurkitree": "Xurkitree", + "celesteela": "Celesteela", + "kartana": "Kartana", + "guzzlord": "Guzzlord", + "necrozma": "Necrozma", + "magearna": "Magearna", + "marshadow": "Marshadow", + "poipole": "Poipole", + "naganadel": "Naganadel", + "stakataka": "Stakataka", + "blacephalon": "Blacephalon", + "zeraora": "Zeraora", + "meltan": "Meltan", + "melmetal": "Melmetal", + "grookey": "Grookey", + "thwackey": "Thwackey", + "rillaboom": "Rillaboom", + "scorbunny": "Scorbunny", + "raboot": "Raboot", + "cinderace": "Cinderace", + "sobble": "Sobble", + "drizzile": "Drizzile", + "inteleon": "Inteleon", + "skwovet": "Skwovet", + "greedent": "Greedent", + "rookidee": "Rookidee", + "corvisquire": "Corvisquire", + "corviknight": "Corviknight", + "blipbug": "Blipbug", + "dottler": "Dottler", + "orbeetle": "Orbeetle", + "nickit": "Nickit", + "thievul": "Thievul", + "gossifleur": "Gossifleur", + "eldegoss": "Eldegoss", + "wooloo": "Wooloo", + "dubwool": "Dubwool", + "chewtle": "Chewtle", + "drednaw": "Drednaw", + "yamper": "Yamper", + "boltund": "Boltund", + "rolycoly": "Rolycoly", + "carkol": "Carkol", + "coalossal": "Coalossal", + "applin": "Applin", + "flapple": "Flapple", + "appletun": "Appletun", + "silicobra": "Silicobra", + "sandaconda": "Sandaconda", + "cramorant": "Cramorant", + "arrokuda": "Arrokuda", + "barraskewda": "Barraskewda", + "toxel": "Toxel", + "toxtricity": "Toxtricity", + "sizzlipede": "Sizzlipede", + "centiskorch": "Centiskorch", + "clobbopus": "Clobbopus", + "grapploct": "Grapploct", + "sinistea": "Sinistea", + "polteageist": "Polteageist", + "hatenna": "Hatenna", + "hattrem": "Hattrem", + "hatterene": "Hatterene", + "impidimp": "Impidimp", + "morgrem": "Morgrem", + "grimmsnarl": "Grimmsnarl", + "obstagoon": "Obstagoon", + "perrserker": "Perrserker", + "cursola": "Cursola", + "sirfetchd": "Sirfetch'd", + "mr_rime": "Mr. Rime", + "runerigus": "Runerigus", + "milcery": "Milcery", + "alcremie": "Alcremie", + "falinks": "Falinks", + "pincurchin": "Pincurchin", + "snom": "Snom", + "frosmoth": "Frosmoth", + "stonjourner": "Stonjourner", + "eiscue": "Eiscue", + "indeedee": "Indeedee", + "morpeko": "Morpeko", + "cufant": "Cufant", + "copperajah": "Copperajah", + "dracozolt": "Dracozolt", + "arctozolt": "Arctozolt", + "dracovish": "Dracovish", + "arctovish": "Arctovish", + "duraludon": "Duraludon", + "dreepy": "Dreepy", + "drakloak": "Drakloak", + "dragapult": "Dragapult", + "zacian": "Zacian", + "zamazenta": "Zamazenta", + "eternatus": "Eternatus", + "kubfu": "Kubfu", + "urshifu": "Urshifu", + "zarude": "Zarude", + "regieleki": "Regieleki", + "regidrago": "Regidrago", + "glastrier": "Glastrier", + "spectrier": "Spectrier", + "calyrex": "Calyrex", + "wyrdeer": "Wyrdeer", + "kleavor": "Kleavor", + "ursaluna": "Ursaluna", + "basculegion": "Basculegion", + "sneasler": "Sneasler", + "overqwil": "Overqwil", + "enamorus": "Enamorus", + "sprigatito": "Sprigatito", + "floragato": "Floragato", + "meowscarada": "Meowscarada", + "fuecoco": "Fuecoco", + "crocalor": "Crocalor", + "skeledirge": "Skeledirge", + "quaxly": "Quaxly", + "quaxwell": "Quaxwell", + "quaquaval": "Quaquaval", + "lechonk": "Lechonk", + "oinkologne": "Oinkologne", + "tarountula": "Tarountula", + "spidops": "Spidops", + "nymble": "Nymble", + "lokix": "Lokix", + "pawmi": "Pawmi", + "pawmo": "Pawmo", + "pawmot": "Pawmot", + "tandemaus": "Tandemaus", + "maushold": "Maushold", + "fidough": "Fidough", + "dachsbun": "Dachsbun", + "smoliv": "Smoliv", + "dolliv": "Dolliv", + "arboliva": "Arboliva", + "squawkabilly": "Squawkabilly", + "nacli": "Nacli", + "naclstack": "Naclstack", + "garganacl": "Garganacl", + "charcadet": "Charcadet", + "armarouge": "Armarouge", + "ceruledge": "Ceruledge", + "tadbulb": "Tadbulb", + "bellibolt": "Bellibolt", + "wattrel": "Wattrel", + "kilowattrel": "Kilowattrel", + "maschiff": "Maschiff", + "mabosstiff": "Mabosstiff", + "shroodle": "Shroodle", + "grafaiai": "Grafaiai", + "bramblin": "Bramblin", + "brambleghast": "Brambleghast", + "toedscool": "Toedscool", + "toedscruel": "Toedscruel", + "klawf": "Klawf", + "capsakid": "Capsakid", + "scovillain": "Scovillain", + "rellor": "Rellor", + "rabsca": "Rabsca", + "flittle": "Flittle", + "espathra": "Espathra", + "tinkatink": "Tinkatink", + "tinkatuff": "Tinkatuff", + "tinkaton": "Tinkaton", + "wiglett": "Wiglett", + "wugtrio": "Wugtrio", + "bombirdier": "Bombirdier", + "finizen": "Finizen", + "palafin": "Palafin", + "varoom": "Varoom", + "revavroom": "Revavroom", + "cyclizar": "Cyclizar", + "orthworm": "Orthworm", + "glimmet": "Glimmet", + "glimmora": "Glimmora", + "greavard": "Greavard", + "houndstone": "Houndstone", + "flamigo": "Flamigo", + "cetoddle": "Cetoddle", + "cetitan": "Cetitan", + "veluza": "Veluza", + "dondozo": "Dondozo", + "tatsugiri": "Tatsugiri", + "annihilape": "Annihilape", + "clodsire": "Clodsire", + "farigiraf": "Farigiraf", + "dudunsparce": "Dudunsparce", + "kingambit": "Kingambit", + "great_tusk": "Presa Grande", + "scream_tail": "Cauda Brado", + "brute_bonnet": "Capuz Bruto", + "flutter_mane": "Juba Sopro", + "slither_wing": "Asa Rasteira", + "sandy_shocks": "Choque Areia", + "iron_treads": "Trilho Férreo", + "iron_bundle": "Pacote Férreo", + "iron_hands": "Mãos Férreas", + "iron_jugulis": "Jugulares Férreas", + "iron_moth": "Mariposa Férrea", + "iron_thorns": "Espinhos Férreos", + "frigibax": "Frigibax", + "arctibax": "Arctibax", + "baxcalibur": "Baxcalibur", + "gimmighoul": "Gimmighoul", + "gholdengo": "Gholdengo", + "wo_chien": "Wo-Chien", + "chien_pao": "Chien-Pao", + "ting_lu": "Ting-Lu", + "chi_yu": "Chi-Yu", + "roaring_moon": "Lua Estrondo", + "iron_valiant": "Valentia Férrea", + "koraidon": "Koraidon", + "miraidon": "Miraidon", + "walking_wake": "Onda Ando", + "iron_leaves": "Folhas Férreas", + "dipplin": "Dipplin", + "poltchageist": "Poltchageist", + "sinistcha": "Sinistcha", + "okidogi": "Okidogi", + "munkidori": "Munkidori", + "fezandipiti": "Fezandipiti", + "ogerpon": "Ogerpon", + "archaludon": "Archaludon", + "hydrapple": "Hydrapple", + "gouging_fire": "Fogo Corrosão", + "raging_bolt": "Raio Fúria", + "iron_boulder": "Rocha Férrea", + "iron_crown": "Chifres Férreos", + "terapagos": "Terapagos", + "pecharunt": "Pecharunt", + "alola_rattata": "Rattata", + "alola_raticate": "Raticate", + "alola_raichu": "Raichu", + "alola_sandshrew": "Sandshrew", + "alola_sandslash": "Sandslash", + "alola_vulpix": "Vulpix", + "alola_ninetales": "Ninetales", + "alola_diglett": "Diglett", + "alola_dugtrio": "Dugtrio", + "alola_meowth": "Meowth", + "alola_persian": "Persian", + "alola_geodude": "Geodude", + "alola_graveler": "Graveler", + "alola_golem": "Golem", + "alola_grimer": "Grimer", + "alola_muk": "Muk", + "alola_exeggutor": "Exeggutor", + "alola_marowak": "Marowak", + "eternal_floette": "Floette", + "galar_meowth": "Meowth", + "galar_ponyta": "Ponyta", + "galar_rapidash": "Rapidash", + "galar_slowpoke": "Slowpoke", + "galar_slowbro": "Slowbro", + "galar_farfetchd": "Farfetch'd", + "galar_weezing": "Weezing", + "galar_mr_mime": "Mr. Mime", + "galar_articuno": "Articuno", + "galar_zapdos": "Zapdos", + "galar_moltres": "Moltres", + "galar_slowking": "Slowking", + "galar_corsola": "Corsola", + "galar_zigzagoon": "Zigzagoon", + "galar_linoone": "Linoone", + "galar_darumaka": "Darumaka", + "galar_darmanitan": "Darmanitan", + "galar_yamask": "Yamask", + "galar_stunfisk": "Stunfisk", + "hisui_growlithe": "Growlithe", + "hisui_arcanine": "Arcanine", + "hisui_voltorb": "Voltorb", + "hisui_electrode": "Electrode", + "hisui_typhlosion": "Typhlosion", + "hisui_qwilfish": "Qwilfish", + "hisui_sneasel": "Sneasel", + "hisui_samurott": "Samurott", + "hisui_lilligant": "Lilligant", + "hisui_zorua": "Zorua", + "hisui_zoroark": "Zoroark", + "hisui_braviary": "Braviary", + "hisui_sliggoo": "Sliggoo", + "hisui_goodra": "Goodra", + "hisui_avalugg": "Avalugg", + "hisui_decidueye": "Decidueye", + "paldea_tauros": "Tauros", + "paldea_wooper": "Wooper", + "bloodmoon_ursaluna": "Ursaluna" +} \ No newline at end of file From f688ed73294b032f23986144b5e8191080cd0f15 Mon Sep 17 00:00:00 2001 From: Taylor Le Lievre <78890517+tlelievre26@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:01:54 -0400 Subject: [PATCH 02/18] [QoL] Add setting to control volume of UI sound efffects (#3354) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added settings option to toggle UI sound effects * Added text to other locales * Localizations except es and it * New language locales * Added italian translation Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com> * Refactored on top of PR #3527 * Rebased and updated setting name * Added comments for the included sound effects --------- Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com> --- src/battle-scene.ts | 7 ++++++- src/locales/en/settings.json | 1 + src/system/settings/settings.ts | 11 +++++++++++ src/ui/settings/settings-audio-ui-handler.ts | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 922a145780b..0ffa7c95196 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -126,6 +126,7 @@ export default class BattleScene extends SceneBase { public bgmVolume: number = 1; public fieldVolume: number = 1; public seVolume: number = 1; + public uiVolume: number = 1; public gameSpeed: integer = 1; public damageNumbersMode: integer = 0; public reroll: boolean = false; @@ -1799,11 +1800,15 @@ export default class BattleScene extends SceneBase { config["volume"] *= 0.5; } break; - case "se": case "ui": + //As of, right now this applies to the "select", "menu_open", "error" sound effects + config["volume"] = this.masterVolume * this.uiVolume; + break; + case "se": default: config["volume"] = this.masterVolume * this.seVolume; break; + } this.sound.play(key, config); return this.sound.get(key) as AnySound; diff --git a/src/locales/en/settings.json b/src/locales/en/settings.json index 947dfe98bb4..6528f0368fe 100644 --- a/src/locales/en/settings.json +++ b/src/locales/en/settings.json @@ -63,6 +63,7 @@ "bgmVolume": "BGM Volume", "fieldVolume": "Field Volume", "seVolume": "SE Volume", + "uiVolume": "UI Volume", "musicPreference": "Music Preference", "mixed": "Mixed", "gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button", diff --git a/src/system/settings/settings.ts b/src/system/settings/settings.ts index a7ad3f6697e..7b0fea95a98 100644 --- a/src/system/settings/settings.ts +++ b/src/system/settings/settings.ts @@ -119,6 +119,7 @@ export const SettingKeys = { BGM_Volume: "BGM_VOLUME", Field_Volume: "FIELD_VOLUME", SE_Volume: "SE_VOLUME", + UI_Volume: "UI_SOUND_EFFECTS", Music_Preference: "MUSIC_PREFERENCE", Show_BGM_Bar: "SHOW_BGM_BAR", Move_Touch_Controls: "MOVE_TOUCH_CONTROLS", @@ -556,6 +557,13 @@ export const Setting: Array = [ default: 10, type: SettingType.AUDIO }, + { + key: SettingKeys.UI_Volume, + label: i18next.t("settings:uiVolume"), + options: VOLUME_OPTIONS, + default: 10, + type: SettingType.AUDIO + }, { key: SettingKeys.Music_Preference, label: i18next.t("settings:musicPreference"), @@ -670,6 +678,9 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): scene.seVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; scene.updateSoundVolume(); break; + case SettingKeys.UI_Volume: + scene.uiVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; + break; case SettingKeys.Music_Preference: scene.musicPreference = value; break; diff --git a/src/ui/settings/settings-audio-ui-handler.ts b/src/ui/settings/settings-audio-ui-handler.ts index 27ca7e35354..4a895fc3170 100644 --- a/src/ui/settings/settings-audio-ui-handler.ts +++ b/src/ui/settings/settings-audio-ui-handler.ts @@ -15,6 +15,6 @@ export default class SettingsAudioUiHandler extends AbstractSettingsUiHandler { super(scene, SettingType.AUDIO, mode); this.title = "Audio"; this.localStorageKey = "settings"; - this.rowsToDisplay = 5; + this.rowsToDisplay = 6; } } From fe575da036f0063816401a74fa88dd57b1b246fe Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 13:11:24 -0700 Subject: [PATCH 03/18] [Localisation] [ES] Review and finish up of ability-trigger.json (#3784) * Translate ability-trigger.json via GitLocalize * Translate ability-trigger.json via GitLocalize --------- Co-authored-by: Rafa Co-authored-by: Asdar --- src/locales/es/ability-trigger.json | 57 +++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/src/locales/es/ability-trigger.json b/src/locales/es/ability-trigger.json index f49b0a784db..8bbcc80662c 100644 --- a/src/locales/es/ability-trigger.json +++ b/src/locales/es/ability-trigger.json @@ -1,11 +1,62 @@ { "blockRecoilDamage": "¡{{abilityName}} de {{pokemonName}}\nlo protegió del daño de retroceso!", "badDreams": "¡{{pokemonName}} está atormentado!", + "costar": "¡{{pokemonName}} copió los cambios de características de {{allyName}}!", "iceFaceAvoidedDamage": "¡{{pokemonNameWithAffix}} evitó\ndaño con {{abilityName}}!", + "perishBody": "¡{{abilityName}} de {{pokemonName}} debilitará a ambos Pokémon en 3 turnos!", + "poisonHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!", "trace": "¡{{pokemonName}} ha copiado la habilidad {{abilityName}} \nde {{targetName}}!", "windPowerCharged": "¡{{pokemonName}} se ha cargado de electricidad gracias a {{moveName}}!", "quickDraw": "¡{{pokemonName}} ataca primero gracias a la habilidad Mano Rápida!", "disguiseAvoidedDamage": "¡El disfraz de {{pokemonNameWithAffix}} se ha roto!", - "preventBerryUse": "{{pokemonNameWithAffix}} está muy nervioso y no puede comer bayas!", - "weatherEffectDisappeared": "El tiempo atmosférico ya no ejerce ninguna influencia." -} \ No newline at end of file + "blockItemTheft": "¡{{pokemonNameWithAffix}} evitó el robo gracias a {{abilityName}}!", + "typeImmunityHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!", + "nonSuperEffectiveImmunity": "¡{{pokemonNameWithAffix}} evitó el daño gracias a {{abilityName}}!", + "moveImmunity": "¡No afecta a {{pokemonNameWithAffix}}!", + "reverseDrain": "¡{{pokemonNameWithAffix}} absorbió lodo líquido!", + "postDefendTypeChange": "¡{{abilityName}} de {{pokemonNameWithAffix}} cambió a tipo {{typeName}}!", + "postDefendContactDamage": "¡{{abilityName}} de {{pokemonNameWithAffix}} ha herido a su atacante!", + "postDefendAbilitySwap": "¡{{pokemonNameWithAffix}} intercambió su habilidad con su objetivo!", + "postDefendAbilityGive": "¡{{pokemonNameWithAffix}} cambió la habilidad del objetivo por {{abilityName}}!", + "postDefendMoveDisable": "¡{{moveName}} de {{pokemonNameWithAffix}} ha sido anulado!", + "pokemonTypeChange": "¡{{pokemonNameWithAffix}} ha cambiado a tipo {{moveType}}!", + "postAttackStealHeldItem": "¡{{pokemonNameWithAffix}} robó {{stolenItemType}} de {{defenderName}}!", + "postDefendStealHeldItem": "¡{{pokemonNameWithAffix}} robó {{stolenItemType}} de {{attackerName}}!", + "copyFaintedAllyAbility": "¡{{abilityName}} de {{pokemonNameWithAffix}} fue copiada!", + "intimidateImmunity": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita que sea intimidado!", + "postSummonAllyHeal": "¡{{pokemonNameWithAffix}} se ha bebido el té que ha preparado {{pokemonName}}!", + "postSummonClearAllyStats": "¡Los cambios de características de {{pokemonNameWithAffix}} fueron eliminados!", + "postSummonTransform": "¡{{pokemonNameWithAffix}} se transformó en {{targetName}}!", + "protectStat": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita que baje su {{statName}}!", + "statusEffectImmunityWithName": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita {{statusEffectName}}!", + "statusEffectImmunity": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita los problemas de estado!", + "battlerTagImmunity": "¡{{abilityName}} de {{pokemonNameWithAffix}} previene {{battlerTagName}}!", + "forewarn": "¡{{pokemonNameWithAffix}} ha detectado el movimiento {{moveName}}!", + "frisk": "¡{{pokemonNameWithAffix}} ha cacheado {{opponentAbilityName}} de {{opponentName}}!", + "postWeatherLapseHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!", + "postWeatherLapseDamage": "¡{{pokemonNameWithAffix}} se hizo daño por su {{abilityName}}!", + "postTurnLootCreateEatenBerry": "¡{{pokemonNameWithAffix}} recogió una {{berryName}}!", + "postTurnHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!", + "fetchBall": "¡{{pokemonNameWithAffix}} encontró {{pokeballName}}!", + "healFromBerryUse": "¡{{pokemonNameWithAffix}} se curó gracias a {{abilityName}}!", + "arenaTrap": "¡{{pokemonNameWithAffix}} impide el cambio con {{abilityName}}!", + "postBattleLoot": "¡{{pokemonNameWithAffix}} recogió {{itemName}}!", + "postFaintContactDamage": "¡{{abilityName}} de {{pokemonNameWithAffix}} hizo daño a su atacante!", + "postFaintHpDamage": "¡{{abilityName}} de {{pokemonNameWithAffix}} hizo daño a su atacante!", + "postSummonPressure": "¡{{pokemonNameWithAffix}} ejerce Presión!", + "weatherEffectDisappeared": "El tiempo atmosférico ya no ejerce ninguna influencia.", + "postSummonMoldBreaker": "¡{{pokemonNameWithAffix}} rompió el molde!", + "postSummonAnticipation": "¡{{pokemonNameWithAffix}} se anticipó!", + "postSummonTurboblaze": "¡{{pokemonNameWithAffix}} irradia un aura llameante!", + "postSummonTeravolt": "¡{{pokemonNameWithAffix}} irradia un aura chisporroteante!", + "postSummonDarkAura": "¡{{pokemonNameWithAffix}} irradia un aura oscura!", + "postSummonFairyAura": "¡{{pokemonNameWithAffix}} irradia un aura feérica!", + "postSummonNeutralizingGas": "¡El Gas Reactivo de {{pokemonNameWithAffix}} se propaga por toda la zona!", + "postSummonAsOneGlastrier": "¡{{pokemonNameWithAffix}} tiene dos Habilidades!", + "postSummonAsOneSpectrier": "¡{{pokemonNameWithAffix}} tiene dos Habilidades!", + "postSummonVesselOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Caldero Debacle!", + "postSummonSwordOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Espada Debacle!", + "postSummonTabletsOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Tablilla Debacle!", + "postSummonBeadsOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Abalorio Debacle!", + "preventBerryUse": "{{pokemonNameWithAffix}} está muy nervioso y no puede comer bayas!" +} From 00917b6de165672c36c599e191ddbda6a6183458 Mon Sep 17 00:00:00 2001 From: Asdar Date: Mon, 26 Aug 2024 22:12:53 +0200 Subject: [PATCH 04/18] [Localisation] [JA] Japanese backlog localisation to json (#3782) * Re-Added localisation for Meloetta Pirouette * "Refactored Japanese backlog (json migration)" * Update pokemon-form.json IT Mixed with Meloetta PR * Fixed Meloetta changes sneaking in the JA PR * Fixed Meloetta changes sneaking in the JA PR again * Update src/locales/ja/menu-ui-handler.json This is why translation PRs should not sit for 2 weeks Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com> --------- Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com> --- src/locales/ja/battle-info.json | 4 +- src/locales/ja/game-stats-ui-handler.json | 43 ++++- src/locales/ja/menu-ui-handler.json | 23 ++- .../ja/modifier-select-ui-handler.json | 13 +- src/locales/ja/pokemon-form-battle.json | 15 +- src/locales/ja/pokemon-form.json | 171 +++++++++++++++++- 6 files changed, 256 insertions(+), 13 deletions(-) diff --git a/src/locales/ja/battle-info.json b/src/locales/ja/battle-info.json index 9e26dfeeb6e..2959cdda332 100644 --- a/src/locales/ja/battle-info.json +++ b/src/locales/ja/battle-info.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "generation": "{{generation}}世代" +} diff --git a/src/locales/ja/game-stats-ui-handler.json b/src/locales/ja/game-stats-ui-handler.json index 9e26dfeeb6e..25bb21f701a 100644 --- a/src/locales/ja/game-stats-ui-handler.json +++ b/src/locales/ja/game-stats-ui-handler.json @@ -1 +1,42 @@ -{} \ No newline at end of file +{ + "stats": "統計", + "playTime": "プレー時間", + "totalBattles": "合計バトル数", + "starters": "スターター数", + "shinyStarters": "色違いスターター数", + "speciesSeen": "合計発見数", + "speciesCaught": "合計捕獲数", + "ribbonsOwned": "リボン数", + "classicRuns": "クラシックラン", + "classicWins": "クラシック勝利", + "dailyRunAttempts": "デイリーラン", + "dailyRunWins": "デイリーラン勝利", + "endlessRuns": "エンドレスラン", + "highestWaveEndless": "エンドレス最高ウェーブ", + "highestMoney": "最大貯金", + "highestDamage": "最大ダメージ", + "highestHPHealed": "最大HP回復", + "pokemonEncountered": "遭遇したポケモン", + "pokemonDefeated": "倒したポケモン", + "pokemonCaught": "捕まえたポケモン", + "eggsHatched": "ふかしたタマゴ", + "subLegendsSeen": "見つけた順伝説", + "subLegendsCaught": "捕まえた順伝説", + "subLegendsHatched": "ふかした順伝説", + "legendsSeen": "見つけた伝説", + "legendsCaught": "捕まえた伝説", + "legendsHatched": "ふかした伝説", + "mythicalsSeen": "見つけた幻ポケモン", + "mythicalsCaught": "捕まえた幻ポケモン", + "mythicalsHatched": "ふかした幻ポケモン", + "shiniesSeen": "見つけた色違い", + "shiniesCaught": "捕まえた色違い", + "shiniesHatched": "ふかした色違い", + "pokemonFused": "合体したポケモン", + "trainersDefeated": "倒したトレーナー", + "eggsPulled": "引いたタマゴ", + "rareEggsPulled": "引いたレアタマゴ", + "epicEggsPulled": "引いた超レアタマゴ", + "legendaryEggsPulled": "引いた伝説タマゴ", + "manaphyEggsPulled": "引いたマナフィタマゴ" +} \ No newline at end of file diff --git a/src/locales/ja/menu-ui-handler.json b/src/locales/ja/menu-ui-handler.json index e9bec2cf0ae..beb014b84a9 100644 --- a/src/locales/ja/menu-ui-handler.json +++ b/src/locales/ja/menu-ui-handler.json @@ -1,19 +1,26 @@ { - "GAME_SETTINGS": "せってい", - "ACHIEVEMENTS": "じっせき", - "STATS": "とうけい", - "RUN_HISTORY":"ラン履歴", + "GAME_SETTINGS": "設定", + "ACHIEVEMENTS": "実績", + "STATS": "統計", "EGG_LIST": "タマゴリスト", "EGG_GACHA": "タマゴガチャ", - "MANAGE_DATA": "データかんり", + "MANAGE_DATA": "データ管理", "COMMUNITY": "コミュニティ", + "SAVE_AND_QUIT": "保存して終了", "LOG_OUT": "ログアウト", "slot": "スロット {{slotNumber}}", "importSession": "セッションのインポート", + "importSlotSelect": "インポート先の スロットを 選んでください", "exportSession": "セッションのエクスポート", - "importRunHistory":"ラン履歴インポート", - "exportRunHistory":"ラン履歴エクスポート", + "exportSlotSelect": "エクスポート元の スロットを 選んでください", "importData": "データのインポート", "exportData": "データのエクスポート", - "cancel": "キャンセル" + "consentPreferences": "同意設定", + "linkDiscord": "Discord連携", + "unlinkDiscord": "Discord連携解除", + "linkGoogle": "Google連携", + "unlinkGoogle": "Google連携解除", + "cancel": "キャンセル", + "losingProgressionWarning": "戦闘開始からの データが 保存されません。\nよろしいですか?", + "noEggs": "現在 タマゴを ふかしていません!" } \ No newline at end of file diff --git a/src/locales/ja/modifier-select-ui-handler.json b/src/locales/ja/modifier-select-ui-handler.json index 9e26dfeeb6e..9370f01491e 100644 --- a/src/locales/ja/modifier-select-ui-handler.json +++ b/src/locales/ja/modifier-select-ui-handler.json @@ -1 +1,12 @@ -{} \ No newline at end of file +{ + "transfer": "アイテム移行", + "reroll": "選択肢変更", + "lockRarities": "レア度の固定", + "checkTeam": "チームを確認", + "transferDesc": "ポケモンの 手持ちアイテムを 移行する", + "rerollDesc": "お金を 使って アイテムの 選択肢を 変更する", + "lockRaritiesDesc": "選択肢を 変更するときの レア度を 固定する\n(選択肢変更金額を影響する)", + "checkTeamDesc": "チームの 状態を 確認する\nフォルムチェンジアイテムを 有効・無効にする", + "rerollCost": "{{formattedMoney}}円", + "itemCost": "{{formattedMoney}}円" +} diff --git a/src/locales/ja/pokemon-form-battle.json b/src/locales/ja/pokemon-form-battle.json index 9e26dfeeb6e..adbc7b4b3da 100644 --- a/src/locales/ja/pokemon-form-battle.json +++ b/src/locales/ja/pokemon-form-battle.json @@ -1 +1,14 @@ -{} \ No newline at end of file +{ + "mega": "メガ{{pokemonName}}", + "mega-x": "メガ{{pokemonName}}X", + "mega-y": "メガ{{pokemonName}}Y", + "primal": "ゲンシ{{pokemonName}}", + "gigantamax": "キョダイ{{pokemonName}}", + "eternamax": "E・{{pokemonName}}", + "megaChange": "{{preName}}は\nメガ{{pokemonName}}に メガシンカした!", + "gigantamaxChange": "{{preName}}は\nキョダイマックスした!", + "eternamaxChange": "{{preName}}は\nムゲンダイマックスした!", + "revertChange": "{{pokemonName}}は\n元の姿に 戻った!", + "formChange": "{{preName}}は\n姿を 変えた!", + "disguiseChange": "ばけのかわが みがわりに なった!" +} diff --git a/src/locales/ja/pokemon-form.json b/src/locales/ja/pokemon-form.json index 9e26dfeeb6e..76124904456 100644 --- a/src/locales/ja/pokemon-form.json +++ b/src/locales/ja/pokemon-form.json @@ -1 +1,170 @@ -{} \ No newline at end of file +{ + "pikachuCosplay": "コスプレ", + "pikachuCoolCosplay": "クールなコスプレ", + "pikachuBeautyCosplay": "きれいなコスプレ", + "pikachuCuteCosplay": "かわいいコスプレ", + "pikachuSmartCosplay": "かしこいコスプレ", + "pikachuToughCosplay": "パワフルなコスプレ", + "pikachuPartner": "パートナー", + "eeveePartner": "パートナー", + "pichuSpiky": "ギザみみ", + "unownA": "A", + "unownB": "B", + "unownC": "C", + "unownD": "D", + "unownE": "E", + "unownF": "F", + "unownG": "G", + "unownH": "H", + "unownI": "I", + "unownJ": "J", + "unownK": "K", + "unownL": "L", + "unownM": "M", + "unownN": "N", + "unownO": "O", + "unownP": "P", + "unownQ": "Q", + "unownR": "R", + "unownS": "S", + "unownT": "T", + "unownU": "U", + "unownV": "V", + "unownW": "W", + "unownX": "X", + "unownY": "Y", + "unownZ": "Z", + "unownExclamation": "!", + "unownQuestion": "?", + "castformSunny": "たいよう", + "castformRainy": "あまみず", + "castformSnowy": "ゆきぐも", + "deoxysNormal": "ノーマル", + "burmyPlant": "くさき", + "burmySandy": "すなち", + "burmyTrash": "ゴミ", + "shellosEast": "ひがし", + "shellosWest": "にし", + "rotomHeat": "ヒート", + "rotomWash": "ウォッシュ", + "rotomFrost": "フロスト", + "rotomFan": "スピン", + "rotomMow": "カット", + "giratinaAltered": "アナザー", + "shayminLand": "ランド", + "basculinRedStriped": "赤筋", + "basculinBlueStriped": "青筋", + "basculinWhiteStriped": "白筋", + "deerlingSpring": "春", + "deerlingSummer": "夏", + "deerlingAutumn": "秋", + "deerlingWinter": "冬", + "tornadusIncarnate": "けしん", + "thundurusIncarnate": "けしん", + "landorusIncarnate": "けしん", + "keldeoOrdinary": "いつも", + "meloettaAria": "ボイス", + "meloettaPirouette": "ステップ", + "froakieBattleBond": "きずなへんげ", + "scatterbugMeadow": "はなぞの", + "scatterbugIcySnow": "ひょうせつ", + "scatterbugPolar": "ゆきぐに", + "scatterbugTundra": "せつげん", + "scatterbugContinental": "たいりく", + "scatterbugGarden": "ていえん", + "scatterbugElegant": "みやび", + "scatterbugModern": "モダン", + "scatterbugMarine": "マリン", + "scatterbugArchipelago": "ぐんとう", + "scatterbugHighPlains": "こうや", + "scatterbugSandstorm": "さじん", + "scatterbugRiver": "たいが", + "scatterbugMonsoon": "スコール", + "scatterbugSavanna": "サバンナ", + "scatterbugSun": "たいよう", + "scatterbugOcean": "オーシャン", + "scatterbugJungle": "ジャングル", + "scatterbugFancy": "ファンシー", + "scatterbugPokeBall": "ボール", + "flabebeRed": "赤", + "flabebeYellow": "黄", + "flabebeOrange": "オレンジ", + "flabebeBlue": "青", + "flabebeWhite": "白", + "furfrouHeart": "ハート", + "furfrouStar": "スター", + "furfrouDiamond": "ダイア", + "furfrouDebutante": "レディ", + "furfrouMatron": "マダム", + "furfrouDandy": "ジェントル", + "furfrouLaReine": "クイーン", + "furfrouKabuki": "カブキ", + "furfrouPharaoh": "キングダム", + "pumpkabooSmall": "ちいさい", + "pumpkabooLarge": "おおきい", + "pumpkabooSuper": "とくだい", + "xerneasNeutral": "リラックス", + "xerneasActive": "アクティブ", + "zygarde50": "50%フォルム", + "zygarde10": "10%フォルム", + "zygarde50Pc": "50%フォルム スワームチェンジ", + "zygarde10Pc": "10%フォルム スワームチェンジ", + "zygardeComplete": "パーフェクトフォルム", + "oricorioBaile": "めらめら", + "oricorioPompom": "ぱちぱち", + "oricorioPau": "ふらふら", + "oricorioSensu": "まいまい", + "rockruffOwnTempo": "マイペース", + "miniorRedMeteor": "赤 りゅうせい", + "miniorOrangeMeteor": "オレンジ りゅうせい", + "miniorYellowMeteor": "黄 りゅうせい", + "miniorGreenMeteor": "緑 りゅうせい", + "miniorBlueMeteor": "水色 りゅうせい", + "miniorIndigoMeteor": "青 りゅうせい", + "miniorVioletMeteor": "紫 りゅうせい", + "miniorRed": "赤", + "miniorOrange": "オレンジ", + "miniorYellow": "黄", + "miniorGreen": "緑", + "miniorBlue": "水色", + "miniorIndigo": "青", + "miniorViolet": "紫", + "mimikyuDisguised": "ばけたすがた", + "mimikyuBusted": "ばれたすがた", + "magearnaOriginal": "500ねんまえ", + "marshadowZenith": "Zパワー", + "sinisteaPhony": "がんさく", + "sinisteaAntique": "しんさく", + "eiscueNoIce": "ナイスなし", + "indeedeeMale": "オス", + "indeedeeFemale": "メス", + "morpekoFullBelly": "まんぷく", + "zacianHeroOfManyBattles": "れきせんのゆうしゃ", + "zamazentaHeroOfManyBattles": "れきせんのゆうしゃ", + "zarudeDada": "とうちゃん", + "enamorusIncarnate": "けしん", + "squawkabillyGreenPlumage": "グリーンフェザー", + "squawkabillyBluePlumage": "ブルーフェザー", + "squawkabillyYellowPlumage": "イエローフェザー", + "squawkabillyWhitePlumage": "ホワイトフェザー", + "tatsugiriCurly": "そったすがた", + "tatsugiriDroopy": "たれたすがた", + "tatsugiriStretchy": "のびたすがた", + "gimmighoulChest": "はこ", + "gimmighoulRoaming": "とほ", + "koraidonApexBuild": "かんぜんけいたい", + "koraidonLimitedBuild":"せいげんけいたい", + "koraidonSprintingBuild":"しっそうけいたい", + "koraidonSwimmingBuild":"ゆうえいけいたい", + "koraidonGlidingBuild":"かっくうけいたい", + "miraidonUltimateMode":"コンプリートモード", + "miraidonLowPowerMode":"リミテッドモード", + "miraidonDriveMode":"ドライブモード", + "miraidonAquaticMode":"フロートモード", + "miraidonGlideMode":"グライドモード", + "poltchageistCounterfeit": "マガイモノ", + "poltchageistArtisan": "タカイモノ", + "paldeaTaurosCombat": "コンバット", + "paldeaTaurosBlaze": "ブレイズ", + "paldeaTaurosAqua": "ウォーター" +} \ No newline at end of file From 290cb01f17fbb83b6a6bd4ba39f20b0cc2f54da9 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:13:31 +0200 Subject: [PATCH 05/18] Translate pokemon-summary.json via GitLocalize (#3773) Co-authored-by: Enoch --- src/locales/ko/pokemon-summary.json | 33 +++-------------------------- 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/src/locales/ko/pokemon-summary.json b/src/locales/ko/pokemon-summary.json index 5742058e45c..3deec35c62d 100644 --- a/src/locales/ko/pokemon-summary.json +++ b/src/locales/ko/pokemon-summary.json @@ -11,34 +11,7 @@ "cancel": "그만둔다", "memoString": "{{natureFragment}}.\n{{metFragment}}", "metFragment": { - "normal": "{{biome}}에서\nLv{{level}}일 때 만났다.", - "apparently": "{{biome}}에서\nLv{{level}}일 때 만난 것 같다." - }, - "natureFragment": { - "Hardy": "{{nature}}하는 성격", - "Lonely": "{{nature}}을 타는 성격", - "Brave": "{{nature}}한 성격", - "Adamant": "{{nature}}스러운 성격", - "Naughty": "{{nature}}같은 성격", - "Bold": "{{nature}}한 성격", - "Docile": "{{nature}}한 성격", - "Relaxed": "{{nature}}한 성격", - "Impish": "{{nature}}같은 성격", - "Lax": "{{nature}}거리는 성격", - "Timid": "{{nature}}같은 성격", - "Hasty": "{{nature}}한 성격", - "Serious": "{{nature}}한 성격", - "Jolly": "{{nature}}한 성격", - "Naive": "{{nature}}한 성격", - "Modest": "{{nature}}스러운 성격", - "Mild": "{{nature}}한 성격", - "Quiet": "{{nature}}한 성격", - "Bashful": "{{nature}}을 타는 성격", - "Rash": "{{nature}}거리는 성격", - "Calm": "{{nature}}한 성격", - "Gentle": "{{nature}}한 성격", - "Sassy": "{{nature}}진 성격", - "Careful": "{{nature}}한 성격", - "Quirky": "{{nature}}스러운 성격" + "normal": "{{biome}}에서\n레벨 {{level}}일 때 만났다.", + "apparently": "{{biome}}에서\n레벨 {{level}}일 때 만난 것 같다." } -} \ No newline at end of file +} From d7226459328215f8a828dd35ec1fad8ec8fdbd15 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:15:02 +0200 Subject: [PATCH 06/18] Translate bgm-name.json via GitLocalize (#3764) Co-authored-by: Lugiad --- src/locales/fr/bgm-name.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/locales/fr/bgm-name.json b/src/locales/fr/bgm-name.json index f97523e109b..975ddcad7b2 100644 --- a/src/locales/fr/bgm-name.json +++ b/src/locales/fr/bgm-name.json @@ -45,6 +45,7 @@ "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_origin_forme": "LPA - Vs. Dialga/Palkia Originel", "battle_legendary_giratina": "ROSA - Vs. Giratina", "battle_legendary_arceus": "HGSS - Vs. Arceus", "battle_legendary_unova": "NB - Vs. Légendaire d’Unys", @@ -59,6 +60,7 @@ "battle_legendary_zac_zam": "ÉB - Vs. Zacian/Zamazenta", "battle_legendary_glas_spec": "ÉB - Vs. Blizzeval/Spectreval", "battle_legendary_calyrex": "ÉB - Vs. Sylveroy", + "battle_legendary_riders": "ÉB - Vs. Sylveroy Cavalier du Froid/d’Effroi", "battle_legendary_birds_galar": "ÉB - Vs. Oiseaux Légendaires de Galar", "battle_legendary_ruinous": "ÉV - Vs. Trésors du fléau", "battle_legendary_kor_mir": "ÉV - Profondeurs de la Zone Zéro (Combat)", From f2dd9b943560139fc9b3f76b4bf7b6a1c5aed4b6 Mon Sep 17 00:00:00 2001 From: chaosgrimmon <31082757+chaosgrimmon@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:19:16 -0400 Subject: [PATCH 07/18] [Sprite] Recolour shiny exp Galarian Ponyta (#3765) Recolour by koda_want_to_sleep --- public/images/pokemon/exp/shiny/4077.png | Bin 3401 -> 4070 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/pokemon/exp/shiny/4077.png b/public/images/pokemon/exp/shiny/4077.png index f2f5891883d7b988e90b6f448035c33ddb904eec..ab414e058e103d390b42f73ffa2b9d6c233ff473 100644 GIT binary patch literal 4070 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 From 9f1c0a92b55f50e966df5c1d8081b88c114d2fab Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:20:55 +0200 Subject: [PATCH 08/18] Clearly define the pichu evolutions (this does not change the behaviour just makes it clea in the code!) (#3781) --- src/data/pokemon-evolutions.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index 0c91263f1f3..315e75e53e1 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -1582,7 +1582,8 @@ export const pokemonEvolutions: PokemonEvolutions = { new SpeciesEvolution(Species.BLISSEY, 1, null, new SpeciesFriendshipEvolutionCondition(200), SpeciesWildEvolutionDelay.LONG) ], [Species.PICHU]: [ - new SpeciesEvolution(Species.PIKACHU, 1, null, new SpeciesFriendshipEvolutionCondition(90), SpeciesWildEvolutionDelay.SHORT) + new SpeciesFormEvolution(Species.PIKACHU, "spiky", "partner", 1, null, new SpeciesFriendshipEvolutionCondition(90), SpeciesWildEvolutionDelay.SHORT), + new SpeciesFormEvolution(Species.PIKACHU, "", "", 1, null, new SpeciesFriendshipEvolutionCondition(90), SpeciesWildEvolutionDelay.SHORT), ], [Species.CLEFFA]: [ new SpeciesEvolution(Species.CLEFAIRY, 1, null, new SpeciesFriendshipEvolutionCondition(160), SpeciesWildEvolutionDelay.SHORT) From 856d468c35f72de76f914539ce10b3ce3428fe67 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:26:47 +0200 Subject: [PATCH 09/18] Translate pokemon-info.json via GitLocalize (#3789) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: José Ricardo --- src/locales/pt_BR/pokemon-info.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/locales/pt_BR/pokemon-info.json b/src/locales/pt_BR/pokemon-info.json index 3d374f62bba..a7a46b7a24e 100644 --- a/src/locales/pt_BR/pokemon-info.json +++ b/src/locales/pt_BR/pokemon-info.json @@ -13,7 +13,8 @@ "SPD": "Veloc.", "SPDshortened": "Veloc.", "ACC": "Precisão", - "EVA": "Evasão" + "EVA": "Evasão", + "HPStat": "PS" }, "Type": { "UNKNOWN": "Desconhecido", @@ -37,4 +38,4 @@ "FAIRY": "Fada", "STELLAR": "Estelar" } -} \ No newline at end of file +} From fddf6cb76c795266dc500f1409247119bd250419 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:28:37 +0200 Subject: [PATCH 10/18] Translate trainer-classes.json via GitLocalize (#3788) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: José Ricardo --- src/locales/pt_BR/trainer-classes.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/locales/pt_BR/trainer-classes.json b/src/locales/pt_BR/trainer-classes.json index 72742dccf82..fd1f36aae71 100644 --- a/src/locales/pt_BR/trainer-classes.json +++ b/src/locales/pt_BR/trainer-classes.json @@ -4,10 +4,10 @@ "ace_duo": "Dupla Ás", "artist": "Artista", "artist_female": "Artista", - "backpackers": "Mochileiros", "backers": "Torcedores", "backpacker": "Mochileiro", "backpacker_female": "Mochileira", + "backpackers": "Mochileiros", "baker": "Padeira", "battle_girl": "Lutadora", "beauty": "Modelo", @@ -30,8 +30,8 @@ "doctor": "Doutor", "doctor_female": "Doutora", "firebreather": "Cospe-Fogo", - "fishermen": "Pescador", - "fishermen_female": "Pescadora", + "fisherman": "Pescador", + "fisherman_female": "Pescadora", "gentleman": "Cavalheiro", "guitarist": "Guitarrista", "guitarist_female": "Guitarrista", @@ -101,8 +101,8 @@ "workers": "Operários", "youngster": "Jovem", "rocket_grunt": "Capanga da Equipe Rocket", - "rocket_grunt_female": "Capanga da Equipe Rocket", "rocket_grunts": "Capangas da Equipe Rocket", + "rocket_grunt_female": "Capanga da Equipe Rocket", "magma_grunt": "Capanga da Equipe Magma", "magma_grunt_female": "Capanga da Equipe Magma", "magma_grunts": "Capangas da Equipe Magma", @@ -118,4 +118,4 @@ "flare_grunt": "Capanga da Equipe Flare", "flare_grunt_female": "Capanga da Equipe Flare", "flare_grunts": "Capangas da Equipe Flare" -} \ No newline at end of file +} From de2abac09d63479a3aef51365bc833f137d4b557 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:42:33 +0200 Subject: [PATCH 11/18] Translate bgm-name.json via GitLocalize (#3791) Co-authored-by: Asdar --- src/locales/pt_BR/bgm-name.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/locales/pt_BR/bgm-name.json b/src/locales/pt_BR/bgm-name.json index bfce77e3a69..7049ecefa9d 100644 --- a/src/locales/pt_BR/bgm-name.json +++ b/src/locales/pt_BR/bgm-name.json @@ -45,6 +45,7 @@ "battle_legendary_lake_trio": "ORAS Batalha do Trio dos Lagos", "battle_legendary_sinnoh": "ORAS Batalha dos Lendários de Sinnoh", "battle_legendary_dia_pal": "ORAS Batalha do Dialga & Palkia", + "battle_legendary_origin_forme": "LA Origin Batalha com Dialga & Palkia", "battle_legendary_giratina": "ORAS Batalha do Giratina", "battle_legendary_arceus": "HGSS Batalha do Arceus", "battle_legendary_unova": "BW Batalha dos Lendários de Unova", @@ -59,6 +60,7 @@ "battle_legendary_zac_zam": "SWSH Batalha do Zacian & Zamazenta", "battle_legendary_glas_spec": "SWSH Batalha do Glastrier & Spectrier", "battle_legendary_calyrex": "SWSH Batalha do Calyrex", + "battle_legendary_riders": "SWSH Batalha com Ice & Shadow Rider Calyrex", "battle_legendary_birds_galar": "SWSH Batalha dos Pássaros Lendários de Galar", "battle_legendary_ruinous": "SV Batalha dos Lendários Ruinosos", "battle_legendary_kor_mir": "SV Batalha das Cavernas da Área Zero", @@ -135,4 +137,4 @@ "heal": "BW Centro Pokémon", "menu": "PMD EoS Bem-vindo ao Mundo dos Pokémon!", "title": "PMD EoS Menu Principal" -} \ No newline at end of file +} From c52f439dc14e43f5b2ac8cee811cc1c23a334a24 Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Mon, 26 Aug 2024 13:50:19 -0700 Subject: [PATCH 12/18] Corrections and adjustments (#3831) Co-authored-by: frutescens --- src/battle-scene.ts | 13 +++++++++++-- src/field/pokemon.ts | 7 ++++--- src/ui/egg-gacha-ui-handler.ts | 2 +- src/ui/starter-select-ui-handler.ts | 4 ++-- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 0ffa7c95196..1455994ce48 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -1756,6 +1756,7 @@ export default class BattleScene extends SceneBase { } else { const soundDetails = sound.key.split("/"); switch (soundDetails[0]) { + case "battle_anims": case "cry": if (soundDetails[1].startsWith("PRSFX- ")) { @@ -1792,6 +1793,16 @@ export default class BattleScene extends SceneBase { try { const keyDetails = key.split("/"); switch (keyDetails[0]) { + case "level_up_fanfare": + case "item_fanfare": + case "minor_fanfare": + case "heal": + case "evolution": + case "evolution_fanfare": + // These sounds are loaded in as BGM, but played as sound effects + // When these sounds are updated in updateVolume(), they are treated as BGM however because they are placed in the BGM Cache through being called by playSoundWithoutBGM() + config["volume"] = this.masterVolume * this.bgmVolume; + break; case "battle_anims": case "cry": config["volume"] = this.masterVolume * this.fieldVolume; @@ -1805,10 +1816,8 @@ export default class BattleScene extends SceneBase { config["volume"] = this.masterVolume * this.uiVolume; break; case "se": - default: config["volume"] = this.masterVolume * this.seVolume; break; - } this.sound.play(key, config); return this.sound.get(key) as AnySound; diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 756ee2a44cd..a8dfb9d6c48 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -2641,7 +2641,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } private fusionFaintCry(callback: Function): void { - const key = this.getSpeciesForm().getCryKey(this.formIndex); + const key = `cry/${this.getSpeciesForm().getCryKey(this.formIndex)}`; let i = 0; let rate = 0.85; const cry = this.scene.playSound(key, { rate: rate }) as AnySound; @@ -2649,7 +2649,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { const tintSprite = this.getTintSprite(); let duration = cry.totalDuration * 1000; - let fusionCry = this.scene.playSound(this.getFusionSpeciesForm().getCryKey(this.fusionFormIndex), { rate: rate }) as AnySound; + const fusionCryKey = `cry/${this.getFusionSpeciesForm().getCryKey(this.fusionFormIndex)}`; + let fusionCry = this.scene.playSound(fusionCryKey, { rate: rate }) as AnySound; fusionCry.stop(); duration = Math.min(duration, fusionCry.totalDuration * 1000); fusionCry.destroy(); @@ -2693,7 +2694,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } if (i === transitionIndex) { SoundFade.fadeOut(this.scene, cry, Utils.fixedInt(Math.ceil((duration / rate) * 0.2))); - fusionCry = this.scene.playSound(this.getFusionSpeciesForm().getCryKey(this.fusionFormIndex), Object.assign({ seek: Math.max(fusionCry.totalDuration * 0.4, 0), rate: rate })); + fusionCry = this.scene.playSound(fusionCryKey, Object.assign({ seek: Math.max(fusionCry.totalDuration * 0.4, 0), rate: rate })); SoundFade.fadeIn(this.scene, fusionCry, Utils.fixedInt(Math.ceil((duration / rate) * 0.2)), this.scene.masterVolume * this.scene.seVolume, 0); } rate *= 0.99; diff --git a/src/ui/egg-gacha-ui-handler.ts b/src/ui/egg-gacha-ui-handler.ts index a4a57e25924..9497dfe58c6 100644 --- a/src/ui/egg-gacha-ui-handler.ts +++ b/src/ui/egg-gacha-ui-handler.ts @@ -359,7 +359,7 @@ export default class EggGachaUiHandler extends MessageUiHandler { this.scene.time.delayedCall(this.getDelayValue(count ? 500 : 1250), () => { this.scene.playSound("se/gacha_dispense"); this.scene.time.delayedCall(this.getDelayValue(750), () => { - this.scene.sound.stopByKey("gacha_running"); + this.scene.sound.stopByKey("se/gacha_running"); this.scene.tweens.add({ targets: egg, duration: this.getDelayValue(350), diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 5c9ce61979f..f9b40dd96e6 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -1701,7 +1701,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } }); ui.setMode(Mode.STARTER_SELECT); - this.scene.playSound("buy"); + this.scene.playSound("se/buy"); return true; } @@ -1753,7 +1753,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { starterAttributes.shiny = starterAttributes.shiny ? !starterAttributes.shiny : true; this.setSpeciesDetails(this.lastSpecies, !props.shiny, undefined, undefined, props.shiny ? 0 : undefined, undefined, undefined); if (starterAttributes.shiny) { - this.scene.playSound("sparkle"); + this.scene.playSound("se/sparkle"); // Set the variant label to the shiny tint const tint = getVariantTint(newVariant); this.pokemonShinyIcon.setFrame(getVariantIcon(newVariant)); From 6b38c7213acecf843dc5a9d57fa68370a33f4971 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:00:19 +0200 Subject: [PATCH 13/18] [Localization] [DE] ReRemove the event text (#3739) * Translate dialogue-female.json via GitLocalize * Translate dialogue-male.json via GitLocalize --------- Co-authored-by: Jannik Tappert --- src/locales/de/dialogue-female.json | 54 +++++++++++++-------------- src/locales/de/dialogue-male.json | 58 ++++++++++++++--------------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/src/locales/de/dialogue-female.json b/src/locales/de/dialogue-female.json index e71e03453a7..e6ab044d002 100644 --- a/src/locales/de/dialogue-female.json +++ b/src/locales/de/dialogue-female.json @@ -355,6 +355,30 @@ "1": "Ich werde für das nächste Rennen tunen." } }, + "firebreather": { + "encounter": { + "1": "Meine Flammen werden dich verschlingen!", + "2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!", + "3": "Komm näher und sieh dir meine Flammen an!" + }, + "victory": { + "1": "Verbrannt bis zur Asche...", + "2": "Yow! Das ist heiß!", + "3": "Auuu! Ich habe mir die Nasenspitze verbrannt!" + } + }, + "sailor": { + "encounter": { + "1": "Matrose, du gehst über Bord, wenn du verlierst!", + "2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!", + "3": "Ahoj! Bist du seekrank?" + }, + "victory": { + "1": "Argh! Von einem Kind besiegt!", + "2": "Dein Geist hat mich versenkt!", + "3": "Ich glaube, ich bin der der seekrank ist..." + } + }, "archer": { "encounter": { "1": "Bevor du weitergehst, lass uns sehen, wie du dich gegen uns, Team Rocket, schlägst!", @@ -535,30 +559,6 @@ "3": "Wunderbar! Bemerkenswert! Deine Fähigkeiten und dein Mut sind lobenswert." } }, - "firebreather": { - "encounter": { - "1": "Meine Flammen werden dich verschlingen!", - "2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!", - "3": "Komm näher und sieh dir meine Flammen an!" - }, - "victory": { - "1": "Verbrannt bis zur Asche...", - "2": "Yow! Das ist heiß!", - "3": "Auuu! Ich habe mir die Nasenspitze verbrannt!" - } - }, - "sailor": { - "encounter": { - "1": "Matrose, du gehst über Bord, wenn du verlierst!", - "2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!", - "3": "Ahoj! Bist du seekrank?" - }, - "victory": { - "1": "Argh! Von einem Kind besiegt!", - "2": "Dein Geist hat mich versenkt!", - "3": "Ich glaube, ich bin der der seekrank ist..." - } - }, "rocket_grunt": { "encounter": { "1": "Jetzt gibt es Ärger!…\n$und es kommt noch härter!\n$Wir wollen über die Erde regieren…\n$und naja du kennst den Rest…!", @@ -2455,7 +2455,7 @@ "1": "@c{smile}Hey, du auch hier?\n@c{smile_eclosed}Immernoch ungeschlagen, hmm…?\n$@c{serious_mopen_fists}Ich weiß es sieht so aus, als wäre ich dir hierher gefolgt, aber das ist so nicht ganz richtig.\n$@c{serious_smile_fists}Ehrlicherweise kann ich es, seit du mich damals besiegt hast, garnicht erwarten erneut gegen dich zu kämpfen.\n$Ich habe selbst hart traniert. Ich werde dir diesesmal also ein würdigerer Gegner sein!.\n$@c{serious_mopen_fists}Halt dich nicht zurück, genauso wie beim letzten Mal!\nLos gehts!" }, "victory": { - "1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf und genieße das Event!" + "1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf!" } }, "rival_2_female": { @@ -2463,7 +2463,7 @@ "1": "@c{smile_wave}Oh, wie schön dich hier zu trefen. Sieht so aus als wärst du noch ungeschlagen. @c{angry_mopen}Hmm… Nicht schlecht!\n$@c{angry_mopen}Ich weiß was du denkst, und nein, ich habe dich nicht verfolgt. @c{smile_eclosed}Ich bin einfach in der Gegend gewesen.\n$@c{smile_ehalf}Ich freu mich für dich, aber ich muss dich wissen lassen, dass es auch Ok ist ab und zu mal zu verlieren.\n$@c{smile}Wir lernen oft mehr aus unseren Fehlern, als aus unseren Erfolgen.\n$@c{angry_mopen}Auf jeden Fall habe ich für unseren Rückkampf hart traniert. Also zeig mir was du drauf hast!" }, "victory": { - "1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark und genieße das Event!" + "1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark!" }, "defeat": { "1": "Es ist Ok manchmal zu verlieren…" @@ -2542,4 +2542,4 @@ "1": "@c{smile_ehalf}Ich… Ich denke ich habe meine Aufgabe erfüllt.\n$@c{smile_eclosed}Versprich mir… Nachdem du die Welt geheilt hast… Komm bitte sicher nach Hause. \n$@c{smile_ehalf}…Danke." } } -} \ No newline at end of file +} diff --git a/src/locales/de/dialogue-male.json b/src/locales/de/dialogue-male.json index 0f8e0122c8c..f8d062ceb8d 100644 --- a/src/locales/de/dialogue-male.json +++ b/src/locales/de/dialogue-male.json @@ -355,6 +355,30 @@ "1": "Ich werde für das nächste Rennen tunen." } }, + "firebreather": { + "encounter": { + "1": "Meine Flammen werden dich verschlingen!", + "2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!", + "3": "Komm näher und sieh dir meine Flammen an!" + }, + "victory": { + "1": "Verbrannt bis zur Asche...", + "2": "Yow! Das ist heiß!", + "3": "Auuu! Ich habe mir die Nasenspitze verbrannt!" + } + }, + "sailor": { + "encounter": { + "1": "Matrose, du gehst über Bord, wenn du verlierst!", + "2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!", + "3": "Ahoj! Bist du seekrank?" + }, + "victory": { + "1": "Argh! Von einem Kind besiegt!", + "2": "Dein Geist hat mich versenkt!", + "3": "Ich glaube, ich bin der der seekrank ist..." + } + }, "archer": { "encounter": { "1": "Bevor du weitergehst, lass uns sehen, wie du dich gegen uns, Team Rocket, schlägst!", @@ -535,30 +559,6 @@ "3": "Wunderbar! Bemerkenswert! Deine Fähigkeiten und dein Mut sind lobenswert." } }, - "firebreather": { - "encounter": { - "1": "Meine Flammen werden dich verschlingen!", - "2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!", - "3": "Komm näher und sieh dir meine Flammen an!" - }, - "victory": { - "1": "Verbrannt bis zur Asche...", - "2": "Yow! Das ist heiß!", - "3": "Auuu! Ich habe mir die Nasenspitze verbrannt!" - } - }, - "sailor": { - "encounter": { - "1": "Matrose, du gehst über Bord, wenn du verlierst!", - "2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!", - "3": "Ahoj! Bist du seekrank?" - }, - "victory": { - "1": "Argh! Von einem Kind besiegt!", - "2": "Dein Geist hat mich versenkt!", - "3": "Ich glaube, ich bin der der seekrank ist..." - } - }, "rocket_grunt": { "encounter": { "1": "Jetzt gibt es Ärger!…\n$und es kommt noch härter!\n$Wir wollen über die Erde regieren…\n$und naja du kennst den Rest…!", @@ -2439,7 +2439,7 @@ "1": "@c{smile}Hey, ich habe dich gesucht! Ich weiß, dass du es nicht erwarten konntest loszugehen,\n$aber hättest ja wenigstens Tschüss sagen können...\n$@c{smile_eclosed}Du verfolgst also wirklich deinen Traum?\nIch kann es kaum glauben.\n$@c{serious_smile_fists}Da wir schon einmal hier sind, wie wäre es mit einem Kampf?\nImmerhin muss ich doch sicherstellen, dass du bereit bist.\n$@c{serious_mopen_fists}Halte dich nicht zurück, zeig mir alles was du hast!" }, "victory": { - "1": "@c{shock}Wow…Du hast mich komplett überrumpelt.\nBist du wirklich ein Anfänger?\n$@c{smile}Vielleicht war es einfach etwas Glück, aber…\nWer weiß, vielleicht schaffst du es irgendwann\n$ja wirklich ganz groß raus zu kommen.\n$Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Die sehen wirklich cool aus.\n$@c{serious_smile_fists}Viel Glück da draußen!\n$@c{smile}Oh-und genieße das Event!" + "1": "@c{shock}Wow…Du hast mich komplett überrumpelt.\nBist du wirklich ein Anfänger?\n$@c{smile}Vielleicht war es einfach etwas Glück, aber…\nWer weiß, vielleicht schaffst du es irgendwann\n$ja wirklich ganz groß raus zu kommen.\n$Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Die sehen wirklich cool aus.\n$@c{serious_smile_fists}Viel Glück da draußen!" } }, "rival_female": { @@ -2447,7 +2447,7 @@ "1": "@c{smile_wave}Da bist du! Ich habe schon überall nach dir gesucht!\n@c{angry_mopen}Hast du etwas vergessen\n$deiner besten Freundin Tschüss zu sagen?\n$@c{smile_ehalf}Du folgst deinem Traum, oder?\nDas ist wirklich heute…\n$@c{smile}Naja, ich vergeben dir, dass du mich vergessen hast, aber nur unter einer Bedingung. @c{smile_wave_wink}Du musst gegen mich kämpfen!\n$@c{angry_mopen}Gib alles! Wir wollen doch nicht, dass dein Abenteuer endet bevor es begonnen hat, richtig?" }, "victory": { - "1": "@c{shock}Du hast gerade erst angefangen und bist schon so stark?!@d{96} @c{angry}Du hast sowas von betrogen, oder?\n$@c{smile_wave_wink}Ich mach nur Spaß!@d{64} @c{smile_eclosed}Ich habe ehrlich verloren… Ich habe das Gefühl, dass du es dort draußen weit bringen wirst.\n$@c{smile}Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Ich hoffe sie sind hilfreich!\n$@c{smile_wave}Gib wie immer dein Bestes! Ich glaube an dich!\n$@c{smile}Oh-und genieße das Event!" + "1": "@c{shock}Du hast gerade erst angefangen und bist schon so stark?!@d{96} @c{angry}Du hast sowas von betrogen, oder?\n$@c{smile_wave_wink}Ich mach nur Spaß!@d{64} @c{smile_eclosed}Ich habe ehrlich verloren… Ich habe das Gefühl, dass du es dort draußen weit bringen wirst.\n$@c{smile}Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Ich hoffe sie sind hilfreich!\n$@c{smile_wave}Gib wie immer dein Bestes! Ich glaube an dich!" } }, "rival_2": { @@ -2455,7 +2455,7 @@ "1": "@c{smile}Hey, du auch hier?\n@c{smile_eclosed}Immernoch ungeschlagen, hmm…?\n$@c{serious_mopen_fists}Ich weiß es sieht so aus, als wäre ich dir hierher gefolgt, aber das ist so nicht ganz richtig.\n$@c{serious_smile_fists}Ehrlicherweise kann ich es, seit du mich damals besiegt hast, garnicht erwarten erneut gegen dich zu kämpfen.\n$Ich habe selbst hart traniert. Ich werde dir diesesmal also ein würdigerer Gegner sein!.\n$@c{serious_mopen_fists}Halt dich nicht zurück, genauso wie beim letzten Mal!\nLos gehts!" }, "victory": { - "1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf und genieße das Event!" + "1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf!" } }, "rival_2_female": { @@ -2463,7 +2463,7 @@ "1": "@c{smile_wave}Oh, wie schön dich hier zu trefen. Sieht so aus als wärst du noch ungeschlagen. @c{angry_mopen}Hmm… Nicht schlecht!\n$@c{angry_mopen}Ich weiß was du denkst, und nein, ich habe dich nicht verfolgt. @c{smile_eclosed}Ich bin einfach in der Gegend gewesen.\n$@c{smile_ehalf}Ich freu mich für dich, aber ich muss dich wissen lassen, dass es auch Ok ist ab und zu mal zu verlieren.\n$@c{smile}Wir lernen oft mehr aus unseren Fehlern, als aus unseren Erfolgen.\n$@c{angry_mopen}Auf jeden Fall habe ich für unseren Rückkampf hart traniert. Also zeig mir was du drauf hast!" }, "victory": { - "1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark und genieße das Event!" + "1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark" }, "defeat": { "1": "Es ist Ok manchmal zu verlieren…" @@ -2542,4 +2542,4 @@ "1": "@c{smile_ehalf}Ich… Ich denke ich habe meine Aufgabe erfüllt.\n$@c{smile_eclosed}Versprich mir… Nachdem du die Welt geheilt hast… Komm bitte sicher nach Hause. \n$@c{smile_ehalf}…Danke." } } -} \ No newline at end of file +} From f5757f0a3aa0c00ac28e0dda197e747e218f6182 Mon Sep 17 00:00:00 2001 From: chaosgrimmon <31082757+chaosgrimmon@users.noreply.github.com> Date: Mon, 26 Aug 2024 17:03:57 -0400 Subject: [PATCH 14/18] [Sprite] Fix exp back epic Bombirdier (#3688) * [Sprite] Add Bombirdier exp back epic palette Taken from static back palette * [Sprite] Use Bombirdier exp back epic palette * Delete public/images/pokemon/variant/exp/back/962_3.png * Delete public/images/pokemon/variant/exp/back/962_3.json --- .../images/pokemon/variant/_masterlist.json | 4 +- .../images/pokemon/variant/exp/back/962.json | 17 +- .../pokemon/variant/exp/back/962_3.json | 167 ------------------ .../images/pokemon/variant/exp/back/962_3.png | Bin 12765 -> 0 bytes 4 files changed, 18 insertions(+), 170 deletions(-) delete mode 100644 public/images/pokemon/variant/exp/back/962_3.json delete mode 100644 public/images/pokemon/variant/exp/back/962_3.png diff --git a/public/images/pokemon/variant/_masterlist.json b/public/images/pokemon/variant/_masterlist.json index ff28e68160e..757630ab6b5 100644 --- a/public/images/pokemon/variant/_masterlist.json +++ b/public/images/pokemon/variant/_masterlist.json @@ -10806,7 +10806,7 @@ "962": [ 1, 1, - 2 + 1 ], "967": [ 0, @@ -11095,4 +11095,4 @@ 1 ] } -} \ No newline at end of file +} diff --git a/public/images/pokemon/variant/exp/back/962.json b/public/images/pokemon/variant/exp/back/962.json index 860c4515df7..118a0f26768 100644 --- a/public/images/pokemon/variant/exp/back/962.json +++ b/public/images/pokemon/variant/exp/back/962.json @@ -28,5 +28,20 @@ "fffbff": "edf8e6", "7b827b": "6a856a", "a7aba7": "98a798" + }, + "2": { + "342930": "754156", + "0f0f0f": "0f0f0f", + "4a3942": "a5777f", + "937d85": "2f2655", + "b9aaaf": "453863", + "665b60": "211f45", + "efe3e1": "67548a", + "a7aba7": "ddac84", + "fffbff": "f7e5d0", + "e64c62": "aba7a8", + "993e49": "797877", + "501d25": "545151", + "7b827b": "a96c4b" } -} \ No newline at end of file +} diff --git a/public/images/pokemon/variant/exp/back/962_3.json b/public/images/pokemon/variant/exp/back/962_3.json deleted file mode 100644 index 397453d3274..00000000000 --- a/public/images/pokemon/variant/exp/back/962_3.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "textures": [ - { - "image": "962_3.png", - "format": "RGBA8888", - "size": { - "w": 224, - "h": 224 - }, - "scale": 1, - "frames": [ - { - "filename": "0003.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 101, - "h": 97 - }, - "spriteSourceSize": { - "x": 1, - "y": 0, - "w": 82, - "h": 86 - }, - "frame": { - "x": 0, - "y": 0, - "w": 82, - "h": 86 - } - }, - { - "filename": "0002.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 101, - "h": 97 - }, - "spriteSourceSize": { - "x": 1, - "y": 4, - "w": 87, - "h": 79 - }, - "frame": { - "x": 0, - "y": 86, - "w": 87, - "h": 79 - } - }, - { - "filename": "0001.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 101, - "h": 97 - }, - "spriteSourceSize": { - "x": 1, - "y": 6, - "w": 92, - "h": 74 - }, - "frame": { - "x": 82, - "y": 0, - "w": 92, - "h": 74 - } - }, - { - "filename": "0006.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 101, - "h": 97 - }, - "spriteSourceSize": { - "x": 1, - "y": 38, - "w": 91, - "h": 59 - }, - "frame": { - "x": 0, - "y": 165, - "w": 91, - "h": 59 - } - }, - { - "filename": "0007.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 101, - "h": 97 - }, - "spriteSourceSize": { - "x": 1, - "y": 36, - "w": 91, - "h": 60 - }, - "frame": { - "x": 87, - "y": 74, - "w": 91, - "h": 60 - } - }, - { - "filename": "0004.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 101, - "h": 97 - }, - "spriteSourceSize": { - "x": 0, - "y": 41, - "w": 101, - "h": 41 - }, - "frame": { - "x": 91, - "y": 134, - "w": 101, - "h": 41 - } - }, - { - "filename": "0005.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 101, - "h": 97 - }, - "spriteSourceSize": { - "x": 0, - "y": 40, - "w": 100, - "h": 38 - }, - "frame": { - "x": 91, - "y": 175, - "w": 100, - "h": 38 - } - } - ] - } - ], - "meta": { - "app": "https://www.codeandweb.com/texturepacker", - "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:ee54d59ae73a6775b5d1d9b10f273445:828dff0b1dc45966e927a7a1419412f2:1e70eb3d02dd5c47565da4b5d26e2400$" - } -} \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/back/962_3.png b/public/images/pokemon/variant/exp/back/962_3.png deleted file mode 100644 index 9356040a0e90afe6954279a7fec4f47143827fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12765 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 Date: Mon, 26 Aug 2024 14:05:16 -0700 Subject: [PATCH 15/18] =?UTF-8?q?[Balance]=20Make=20sure=20trainers=20are?= =?UTF-8?q?=20using=20fully=20evolved=20Pok=C3=A9mon=20by=20gym=203=20(#34?= =?UTF-8?q?99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Make sure trainers are using fully evolved Pokemon by gym 3 * Expand comment info Co-authored-by: Mumble * Implement suggestions * Update `getPokemonSpecies()` to throw an error if passed `undefined` --------- Co-authored-by: Mumble --- src/data/daily-run.ts | 3 ++- src/data/pokemon-species.ts | 50 ++++++++++++++++++++++--------------- src/data/trainer-config.ts | 6 ++--- src/field/trainer.ts | 8 +++--- 4 files changed, 39 insertions(+), 28 deletions(-) diff --git a/src/data/daily-run.ts b/src/data/daily-run.ts index b875877f99e..0a02defe052 100644 --- a/src/data/daily-run.ts +++ b/src/data/daily-run.ts @@ -49,7 +49,8 @@ export function getDailyRunStarters(scene: BattleScene, seed: string): Starter[] const costSpecies = Object.keys(speciesStarters) .map(s => parseInt(s) as Species) .filter(s => speciesStarters[s] === cost); - const starterSpecies = getPokemonSpecies(getPokemonSpecies(Utils.randSeedItem(costSpecies)).getTrainerSpeciesForLevel(startingLevel, true, PartyMemberStrength.STRONGER)); + const randPkmSpecies = getPokemonSpecies(Utils.randSeedItem(costSpecies)); + const starterSpecies = getPokemonSpecies(randPkmSpecies.getTrainerSpeciesForLevel(startingLevel, true, PartyMemberStrength.STRONGER)); starters.push(getDailyRunStarter(scene, starterSpecies, startingLevel)); } }, 0, seed); diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index dc12ca402cd..14779688fc2 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -1,24 +1,21 @@ - +import { Localizable } from "#app/interfaces/locales"; +import { Abilities } from "#enums/abilities"; +import { PartyMemberStrength } from "#enums/party-member-strength"; +import { Species } from "#enums/species"; +import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities"; +import i18next from "i18next"; import BattleScene, { AnySound } from "../battle-scene"; -import { Variant, variantColorCache } from "./variant"; -import { variantData } from "./variant"; +import { GameMode } from "../game-mode"; +import { StarterMoveset } from "../system/game-data"; +import * as Utils from "../utils"; +import { uncatchableSpecies } from "./biomes"; +import { speciesEggMoves } from "./egg-moves"; import { GrowthRate } from "./exp"; import { EvolutionLevel, SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from "./pokemon-evolutions"; import { Type } from "./type"; import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves"; -import { uncatchableSpecies } from "./biomes"; -import * as Utils from "../utils"; -import { StarterMoveset } from "../system/game-data"; -import { speciesEggMoves } from "./egg-moves"; -import { GameMode } from "../game-mode"; -import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities"; -import { VariantSet } from "./variant"; -import i18next from "i18next"; -import { Localizable } from "#app/interfaces/locales"; import { Stat } from "./pokemon-stat"; -import { Abilities } from "#enums/abilities"; -import { PartyMemberStrength } from "#enums/party-member-strength"; -import { Species } from "#enums/species"; +import { Variant, VariantSet, variantColorCache, variantData } from "./variant"; export enum Region { NORMAL, @@ -28,7 +25,15 @@ export enum Region { PALDEA } -export function getPokemonSpecies(species: Species | Species[]): PokemonSpecies { +/** + * Gets the {@linkcode PokemonSpecies} object associated with the {@linkcode Species} enum given + * @param species The species to fetch + * @returns The associated {@linkcode PokemonSpecies} object + */ +export function getPokemonSpecies(species: Species | Species[] | undefined): PokemonSpecies { + if (!species) { + throw new Error("`species` must not be undefined in `getPokemonSpecies()`"); + } // If a special pool (named trainers) is used here it CAN happen that they have a array as species (which means choose one of those two). So we catch that with this code block if (Array.isArray(species)) { // Pick a random species from the list @@ -648,8 +653,8 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali return this.getSpeciesForLevel(level, allowEvolving, false, (isBoss ? PartyMemberStrength.WEAKER : PartyMemberStrength.AVERAGE) + (gameMode?.isEndless ? 1 : 0)); } - getTrainerSpeciesForLevel(level: integer, allowEvolving: boolean = false, strength: PartyMemberStrength): Species { - return this.getSpeciesForLevel(level, allowEvolving, true, strength); + getTrainerSpeciesForLevel(level: integer, allowEvolving: boolean = false, strength: PartyMemberStrength, currentWave: number = 0): Species { + return this.getSpeciesForLevel(level, allowEvolving, true, strength, currentWave); } private getStrengthLevelDiff(strength: PartyMemberStrength): integer { @@ -669,7 +674,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali } } - getSpeciesForLevel(level: integer, allowEvolving: boolean = false, forTrainer: boolean = false, strength: PartyMemberStrength = PartyMemberStrength.WEAKER): Species { + getSpeciesForLevel(level: integer, allowEvolving: boolean = false, forTrainer: boolean = false, strength: PartyMemberStrength = PartyMemberStrength.WEAKER, currentWave: number = 0): Species { const prevolutionLevels = this.getPrevolutionLevels(); if (prevolutionLevels.length) { @@ -730,6 +735,11 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali evolutionChance = Math.min(0.65 * easeInFunc(Math.min(Math.max(level - evolutionLevel, 0), preferredMinLevel) / preferredMinLevel) + 0.35 * easeOutFunc(Math.min(Math.max(level - evolutionLevel, 0), preferredMinLevel * 2.5) / (preferredMinLevel * 2.5)), 1); } } + /* (Most) Trainers shouldn't be using unevolved Pokemon by the third gym leader / wave 80. Exceptions to this include Breeders, whose large teams are balanced by the use of weaker pokemon */ + if (currentWave >= 80 && forTrainer && strength > PartyMemberStrength.WEAKER) { + evolutionChance = 1; + noEvolutionChance = 0; + } if (evolutionChance > 0) { if (isRegionalEvolution) { @@ -754,7 +764,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali for (const weight of evolutionPool.keys()) { if (randValue < weight) { - return getPokemonSpecies(evolutionPool.get(weight)!).getSpeciesForLevel(level, true, forTrainer, strength); // TODO: is the bang correct? + return getPokemonSpecies(evolutionPool.get(weight)).getSpeciesForLevel(level, true, forTrainer, strength, currentWave); } } diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 5f47ce42a62..36f75a60c49 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -142,7 +142,7 @@ export const trainerPartyTemplates = { FIVE_WEAK_BALANCED: new TrainerPartyTemplate(5, PartyMemberStrength.WEAK, false, true), SIX_WEAKER: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER), SIX_WEAKER_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER, true), - SIX_WEAK_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER, true), + SIX_WEAK_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, true), SIX_WEAK_BALANCED: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, false, true), GYM_LEADER_1: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), @@ -965,7 +965,7 @@ function getRandomPartyMemberFunc(speciesPool: Species[], trainerSlot: TrainerSl return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => { let species = Utils.randSeedItem(speciesPool); if (!ignoreEvolution) { - species = getPokemonSpecies(species).getTrainerSpeciesForLevel(level, true, strength); + species = getPokemonSpecies(species).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex); } return scene.addEnemyPokemon(getPokemonSpecies(species), level, trainerSlot, undefined, undefined, postProcess); }; @@ -975,7 +975,7 @@ function getSpeciesFilterRandomPartyMemberFunc(speciesFilter: PokemonSpeciesFilt const originalSpeciesFilter = speciesFilter; speciesFilter = (species: PokemonSpecies) => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden() && originalSpeciesFilter(species); return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => { - const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength)), level, trainerSlot, undefined, undefined, postProcess); + const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex)), level, trainerSlot, undefined, undefined, postProcess); return ret; }; } diff --git a/src/field/trainer.ts b/src/field/trainer.ts index 68ebabbbe23..02827d0d69d 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -359,12 +359,12 @@ export default class Trainer extends Phaser.GameObjects.Container { let species = useNewSpeciesPool ? getPokemonSpecies(newSpeciesPool[Math.floor(Math.random() * newSpeciesPool.length)]) : template.isSameSpecies(index) && index > offset - ? getPokemonSpecies(battle.enemyParty[offset].species.getTrainerSpeciesForLevel(level, false, template.getStrength(offset))) + ? getPokemonSpecies(battle.enemyParty[offset].species.getTrainerSpeciesForLevel(level, false, template.getStrength(offset), this.scene.currentBattle.waveIndex)) : this.genNewPartyMemberSpecies(level, strength); // If the species is from newSpeciesPool, we need to adjust it based on the level and strength if (newSpeciesPool) { - species = getPokemonSpecies(species.getSpeciesForLevel(level, true, true, strength)); + species = getPokemonSpecies(species.getSpeciesForLevel(level, true, true, strength, this.scene.currentBattle.waveIndex)); } ret = this.scene.addEnemyPokemon(species, level, !this.isDouble() || !(index % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER); @@ -393,7 +393,7 @@ export default class Trainer extends Phaser.GameObjects.Container { species = this.scene.randomSpecies(battle.waveIndex, level, false, this.config.speciesFilter); } - let ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength)); + let ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength, this.scene.currentBattle.waveIndex)); let retry = false; console.log(ret.getName()); @@ -412,7 +412,7 @@ export default class Trainer extends Phaser.GameObjects.Container { console.log("Attempting reroll of species evolution to fit specialty type..."); let evoAttempt = 0; while (retry && evoAttempt++ < 10) { - ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength)); + ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength, this.scene.currentBattle.waveIndex)); console.log(ret.name); if (this.config.specialtyTypes.find(t => ret.isOfType(t))) { retry = false; From 17faea0eed44b6fe49d09b0ddae5295e9c7d46e8 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:10:38 +0200 Subject: [PATCH 16/18] Translate pokemon-form.json via GitLocalize (#3792) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: José Ricardo --- src/locales/pt_BR/pokemon-form.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/pt_BR/pokemon-form.json b/src/locales/pt_BR/pokemon-form.json index fd418e2ada2..aa8f32a5d36 100644 --- a/src/locales/pt_BR/pokemon-form.json +++ b/src/locales/pt_BR/pokemon-form.json @@ -152,10 +152,19 @@ "tatsugiriStretchy": "Reto", "gimmighoulChest": "Baú", "gimmighoulRoaming": "Perambulante", - "koraidonGlidingBuild": "Gliding Build", + "koraidonApexBuild": "Forma Plena", + "koraidonLimitedBuild": "Forma Limitada", + "koraidonSprintingBuild": "Forma de Corrida", + "koraidonSwimmingBuild": "Forma de Nado", + "koraidonGlidingBuild": "Forma de Voo", + "miraidonUltimateMode": "Modo Pleno", + "miraidonLowPowerMode": "Modo Limitado", + "miraidonDriveMode": "Modo Terrestre", + "miraidonAquaticMode": "Modo Aquático", + "miraidonGlideMode": "Modo Aéreo", "poltchageistCounterfeit": "Imitação", "poltchageistArtisan": "Artesão", "paldeaTaurosCombat": "Combate", "paldeaTaurosBlaze": "Chamas", "paldeaTaurosAqua": "Aquático" -} \ No newline at end of file +} From b0933007d86726872e9be0a7c05fd67419fa6e42 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:19:11 +0200 Subject: [PATCH 17/18] Translate settings.json via GitLocalize (#3833) Co-authored-by: Lugiad --- src/locales/fr/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/locales/fr/settings.json b/src/locales/fr/settings.json index 3b0794c502d..181a593cc99 100644 --- a/src/locales/fr/settings.json +++ b/src/locales/fr/settings.json @@ -63,6 +63,7 @@ "bgmVolume": "Vol. musique", "fieldVolume": "Vol. combats", "seVolume": "Vol. effets", + "uiVolume": "Vol. menus", "musicPreference": "Préf. musicale", "mixed": "Mixte", "gamepadPleasePlug": "Veuillez brancher une manette ou appuyer sur un bouton.", From 6ccb6fc776975733a8987fd26f7961a6ef65e463 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:19:26 +0200 Subject: [PATCH 18/18] Translate settings.json via GitLocalize (#3832) Co-authored-by: Jannik Tappert --- src/locales/de/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/locales/de/settings.json b/src/locales/de/settings.json index f3c4ba5b40e..d72a026cf5a 100644 --- a/src/locales/de/settings.json +++ b/src/locales/de/settings.json @@ -63,6 +63,7 @@ "bgmVolume": "Hintergrundmusik", "fieldVolume": "Rufe & Attacken", "seVolume": "Spezialeffekte", + "uiVolume": "Benutzeroberfläche", "musicPreference": "Musik Präferenz", "mixed": "Gemischt", "gamepadPleasePlug": "Bitte einen Controller anschließen oder eine Taste drücken.",