Incorporated Italian changes, enough to compile (still needs to sync a couple of them)

This commit is contained in:
Eduardo Quezada
2022-08-12 00:28:16 -04:00
parent ac032cdf9b
commit 27f2b85efe
173 changed files with 29914 additions and 210 deletions

View File

@@ -58,10 +58,15 @@ else
ifeq ($(GAME_LANGUAGE), FRENCH)
GAME_CODE := $(GAME_CODE)F
BUILD_SUFIX := _fr
else
ifeq ($(GAME_LANGUAGE), ITALIAN)
GAME_CODE := $(GAME_CODE)I
BUILD_SUFIX := _it
else
$(error unknown language $(GAME_LANGUAGE))
endif
endif
endif
# Rom and build directory names.
BUILD_NAME := $(BUILD_NAME)$(BUILD_SUFIX)
@@ -242,7 +247,7 @@ $(TOOLDIRS):
rom: $(ROM)
ifeq ($(COMPARE),1)
@$(SHA1) $(BUILD_NAME).sha1
@$(SHA1) rom$(BUILD_SUFIX).sha1
endif
clean: mostlyclean clean-tools
@@ -444,16 +449,19 @@ $(ROM): $(ELF)
# "Friendly" target names for convenience sake
en: ; @$(MAKE) GAME_LANGUAGE=ENGLISH
fr: ; @$(MAKE) GAME_LANGUAGE=FRENCH
it: ; @$(MAKE) GAME_LANGUAGE=ITALIAN
# For contributors to make sure a change didn't affect the contents of the ROMs.
compare: ; @$(MAKE) GAME_LANGUAGE=ENGLISH COMPARE=1
compare_en: ; @$(MAKE) GAME_LANGUAGE=ENGLISH COMPARE=1
compare_fr: ; @$(MAKE) GAME_LANGUAGE=FRENCH COMPARE=1
compare_it: ; @$(MAKE) GAME_LANGUAGE=ITALIAN COMPARE=1
# Use modern compilers to build rom. Will not match with original ROMs.
modern: ; @$(MAKE) GAME_LANGUAGE=ENGLISH MODERN=1
modern_en: ; @$(MAKE) GAME_LANGUAGE=ENGLISH MODERN=1
modern_fr: ; @$(MAKE) GAME_LANGUAGE=FRENCH MODERN=1
modern_it: ; @$(MAKE) GAME_LANGUAGE=ITALIAN MODERN=1
libagbsyscall:
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)

View File

@@ -50,10 +50,14 @@ LV = 34
PK = 53
PKMN = 53 54
POKEBLOCK = 55 56 57 58 59
POKE = 55 56
'Í' = 5A
'%' = 5B
'(' = 5C
')' = 5D
POKEMELLA = 5E 5F 60 61 62
MELLA = 60 61 62
POKEMELLE = 5E 5F 60 61 63
Pco = 64 @ Battle Points symbol, French
'â' = 68
'í' = 6F

View File

@@ -847,6 +847,18 @@ Common_EventScript_PlayerHandedOverTheItem::
.include "data/text/fr/pc_transfer.inc"
.include "data/text/fr/questionnaire.inc"
.include "data/text/fr/abnormal_weather.inc"
.else
.ifdef ITALIAN
.include "data/text/it/record_mix.inc"
.include "data/text/it/pc.inc"
.include "data/text/it/pkmn_center_nurse.inc"
.include "data/text/it/mart_clerk.inc"
.include "data/text/it/obtain_item.inc"
.include "data/text/it/general.inc"
.include "data/text/it/pc_transfer.inc"
.include "data/text/it/questionnaire.inc"
.include "data/text/it/abnormal_weather.inc"
.endif
.endif
.endif
@@ -944,6 +956,16 @@ Common_EventScript_LegendaryFlewAway::
.include "data/text/fr/berries.inc"
.include "data/text/fr/shoal_cave.inc"
.include "data/text/fr/check_furniture.inc"
.else
.ifdef ITALIAN
.include "data/text/it/pokedex_rating.inc"
.include "data/text/it/lottery_corner.inc"
.include "data/text/it/event_ticket_1.inc"
.include "data/text/it/braille.inc"
.include "data/text/it/berries.inc"
.include "data/text/it/shoal_cave.inc"
.include "data/text/it/check_furniture.inc"
.endif
.endif
.endif
.include "data/scripts/cave_hole.inc"

View File

@@ -27,5 +27,9 @@ AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus::
.else
.ifdef FRENCH
.include "data/maps/AbandonedShip_CaptainsOffice/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_CaptainsOffice/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,16 @@
AbandonedShip_CaptainsOffice_Text_NoSuccessFindingScanner:
.string "Il CAP. REMO mi ha mandato ad esplorare\n"
.string "questa nave.\p"
.string "Devo trovare uno SCANNER,\n"
.string "ma ancora non ci sono riuscito…$"
AbandonedShip_CaptainsOffice_Text_OhCanYouDeliverScanner:
.string "Oh! È uno SCANNER!\p"
.string "Potresti consegnarlo tu al CAP. REMO?\p"
.string "Vorrei continuare ad esplorare la nave\n"
.string "ancora un po$"
AbandonedShip_CaptainsOffice_Text_ThisIsSSCactus:
.string "La nave si chiama M/N CACTUS.\n"
.string "Sembra essere depoca.$"

View File

@@ -15,5 +15,9 @@ AbandonedShip_Corridors_1F_EventScript_Charlie::
.else
.ifdef FRENCH
.include "data/maps/AbandonedShip_Corridors_1F/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_Corridors_1F/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,14 @@
AbandonedShip_Corridors_1F_Text_CharlieIntro:
.string "Con la mia ciambella a bordo\n"
.string "sono imbattibile…$"
AbandonedShip_Corridors_1F_Text_CharlieDefeat:
.string "Colpito e affondato!$"
AbandonedShip_Corridors_1F_Text_CharliePostBattle:
.string "Non è facile tirare le POKé BALL mentre\n"
.string "sei aggrappato a una ciambella!$"
AbandonedShip_Corridors_1F_Text_IsntItFunHere:
.string "Non trovi che sia bello qui?\n"
.string "Io non sto nella pelle!$"

View File

@@ -58,5 +58,9 @@ AbandonedShip_Corridors_B1F_EventScript_Duncan::
.else
.ifdef FRENCH
.include "data/maps/AbandonedShip_Corridors_B1F/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_Corridors_B1F/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,29 @@
AbandonedShip_Corridors_B1F_Text_DuncanIntro:
.string "Anche in mare, noi MARINAI non ci\n"
.string "separiamo dai nostri POKéMON.\l"
.string "Ti va di lottare?$"
AbandonedShip_Corridors_B1F_Text_DuncanDefeat:
.string "Oops, ho fatto acqua da tutte le parti!$"
AbandonedShip_Corridors_B1F_Text_DuncanPostBattle:
.string "La carena della nave si è arenata.\p"
.string "Se solo avessi un POKéMON capace\n"
.string "di andare sottacqua…$"
AbandonedShip_Corridors_B1F_Text_YayItsAShip:
.string "Yuppie!\n"
.string "È una nave!$"
AbandonedShip_Corridors_B1F_Text_DoorIsLocked:
.string "La porta è chiusa.\p"
.string "Sulla porta cè scritto “STIVA”.$"
AbandonedShip_Corridors_B1F_Text_InsertedStorageKey:
.string "{PLAYER} inserisce e gira la CHIAVE\n"
.string "della STIVA.\p"
.string "La CHIAVE inserita si è inceppata,\n"
.string "ma la porta si apre.$"
AbandonedShip_Text_TheDoorIsOpen:
.string "La porta è aperta.$"

View File

@@ -136,5 +136,9 @@ AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen::
.else
.ifdef FRENCH
.include "data/maps/AbandonedShip_HiddenFloorCorridors/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_HiddenFloorCorridors/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,20 @@
AbandonedShip_HiddenFloorCorridors_Text_Rm1DoorIsLocked:
.string "La porta è chiusa.\p"
.string "Sulla porta cè scritto “CABINA 1”.$"
AbandonedShip_HiddenFloorCorridors_Text_Rm2DoorIsLocked:
.string "La porta è chiusa.\p"
.string "Sulla porta cè scritto “CABINA 2”.$"
AbandonedShip_HiddenFloorCorridors_Text_Rm4DoorIsLocked:
.string "La porta è chiusa.\p"
.string "Sulla porta cè scritto “CABINA 4”.$"
AbandonedShip_HiddenFloorCorridors_Text_Rm6DoorIsLocked:
.string "La porta è chiusa.\p"
.string "Sulla porta cè scritto “CABINA 6”.$"
AbandonedShip_HiddenFloorCorridors_Text_InsertedKey:
.string "{PLAYER} inserisce e gira la CHIAVE.\p"
.string "La CHIAVE inserita si è inceppata, ma\n"
.string "la porta si apre lo stesso.$"

View File

@@ -116,5 +116,9 @@ AbandonedShip_HiddenFloorRooms_EventScript_Trash::
.else
.ifdef FRENCH
.include "data/maps/AbandonedShip_HiddenFloorRooms/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_HiddenFloorRooms/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,4 @@
AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash:
.string "Qualcosa luccica!\n"
.string "Ma sono solo cianfrusaglie…$"

View File

@@ -54,5 +54,9 @@ AbandonedShip_Rooms2_1F_EventScript_Garrison::
.else
.ifdef FRENCH
.include "data/maps/AbandonedShip_Rooms2_1F/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_Rooms2_1F/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,97 @@
AbandonedShip_Rooms2_1F_Text_DanIntro:
.string "DAN: Andando a caccia di tesori…\n"
.string "abbiamo trovato un ALLENATORE!$"
AbandonedShip_Rooms2_1F_Text_DanDefeat:
.string "DAN: Anche in due non siamo riusciti\n"
.string "a batterti…$"
AbandonedShip_Rooms2_1F_Text_DanPostBattle:
.string "DAN: Non riusciamo a trovare i tesori…\n"
.string "Se li sarà già intascati qualcuno?$"
AbandonedShip_Rooms2_1F_Text_DanNotEnoughMons:
.string "DAN: Non hai nemmeno due POKéMON.\n"
.string "Come credi di poterci battere?$"
AbandonedShip_Rooms2_1F_Text_KiraIntro:
.string "CIRA: Oh? Eravamo a caccia di tesori.\n"
.string "Ma chi abbiamo incontrato?\l"
.string "Un ALLENATORE!$"
AbandonedShip_Rooms2_1F_Text_KiraDefeat:
.string "CIRA: Oh, wow, sei forte!$"
AbandonedShip_Rooms2_1F_Text_KiraPostBattle:
.string "CIRA: Chissà dove sono nascosti\n"
.string "i tesori…\p"
.string "So già cosa comprarmi quando li troverò!$"
AbandonedShip_Rooms2_1F_Text_KiraNotEnoughMons:
.string "CIRA: Non hai due POKéMON?\n"
.string "Beh, allora dobbiamo rinviare la sfida!$"
AbandonedShip_Rooms2_1F_Text_KiraRegister:
.string "CIRA: Che rabbia che mi fai!\n"
.string "Ti registrerò nel POKéNAV!$"
AbandonedShip_Rooms2_1F_Text_DanRematchIntro:
.string "DAN: È da tempo che siamo a caccia\n"
.string "di tesori.\p"
.string "I nostri POKéMON si sono rafforzati.\n"
.string "Vuoi una dimostrazione?$"
AbandonedShip_Rooms2_1F_Text_DanRematchDefeat:
.string "DAN: Sei forte, come sempre!$"
AbandonedShip_Rooms2_1F_Text_DanPostRematch:
.string "DAN: Non troviamo tesori, perdiamo\n"
.string "con i POKéMON…\p"
.string "Voglio andare a casa… Ma se oso dirlo\n"
.string "a mia moglie, va su tutte le furie…$"
AbandonedShip_Rooms2_1F_Text_DanRematchNotEnoughMons:
.string "DAN: Non hai nemmeno due POKéMON.\n"
.string "Come credi di poterci battere?$"
AbandonedShip_Rooms2_1F_Text_KiraRematchIntro:
.string "CIRA: Ehi, chi si rivede!\p"
.string "Vedo che anche tu non hai rinunciato\n"
.string "a dare la caccia ai tesori!\p"
.string "Che ne dici di lottare e chi perde\n"
.string "rinuncia al bottino?$"
AbandonedShip_Rooms2_1F_Text_KiraRematchDefeat:
.string "CIRA: Oh no, ancora una volta…$"
AbandonedShip_Rooms2_1F_Text_KiraPostRematch:
.string "CIRA: Resteremo qui ad allenare\n"
.string "i nostri POKéMON! Non si torna\l"
.string "a casa a mani vuote!$"
AbandonedShip_Rooms2_1F_Text_KiraRematchNotEnoughMons:
.string "CIRA: Non hai due POKéMON?\n"
.string "Beh, allora è tutto rimandato!$"
AbandonedShip_Rooms2_1F_Text_JaniIntro:
.string "Nuotare non è il mio forte,\n"
.string "ma le lotte sì!$"
AbandonedShip_Rooms2_1F_Text_JaniDefeat:
.string "Oops.\n"
.string "Qualcosa è andato storto.$"
AbandonedShip_Rooms2_1F_Text_JaniPostBattle:
.string "Non mi piace camminare a piedi nudi\n"
.string "su questa nave.$"
AbandonedShip_Rooms2_1F_Text_GarrisonIntro:
.string "Forza e compassione…\n"
.string "sono i tesori di un ALLENATORE!$"
AbandonedShip_Rooms2_1F_Text_GarrisonDefeat:
.string "Cè qualcosa di luccicante in te.$"
AbandonedShip_Rooms2_1F_Text_GarrisonPostBattle:
.string "Ho visto qualcosa luccicare in\n"
.string "una cabina a bordo.$"

View File

@@ -5,17 +5,14 @@ AbandonedShip_Rooms2_B1F_EventScript_Camper::
msgbox AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring, MSGBOX_NPC
end
AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring:
.ifdef ENGLISH
.string "This is a perfect place to go exploring!\n"
.string "It's exciting here!\p"
.string "I bet there're amazing treasures on\n"
.string "board.$"
.include "data/maps/AbandonedShip_Rooms2_B1F/text.inc"
.else
.ifdef FRENCH
.string "Cest lendroit idéal pour une petite\n"
.string "exploration! Cest passionnant ici!\p"
.string "Je parie quil y a de stupéfiants\n"
.string "trésors à bord.$"
.include "data/maps/AbandonedShip_Rooms2_B1F/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_Rooms2_B1F/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,5 @@
AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring:
.string "This is a perfect place to go exploring!\n"
.string "It's exciting here!\p"
.string "I bet there're amazing treasures on\n"
.string "board.$"

View File

@@ -0,0 +1,5 @@
AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring:
.string "Cest lendroit idéal pour une petite\n"
.string "exploration! Cest passionnant ici!\p"
.string "Je parie quil y a de stupéfiants\n"
.string "trésors à bord.$"

View File

@@ -0,0 +1,5 @@
AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring:
.string "È un posto bellissimo da esplorare!\n"
.string "Ci si diverte un sacco!\p"
.string "Ci potrei scommettere che a bordo\n"
.string "ci sono dei tesori nascosti.$"

View File

@@ -36,5 +36,9 @@ AbandonedShip_Rooms_1F_EventScript_ThaliaRematch::
.else
.ifdef FRENCH
.include "data/maps/AbandonedShip_Rooms_1F/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_Rooms_1F/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,43 @@
AbandonedShip_Rooms_1F_Text_TakingALookAround:
.string "Navi come questa sono rare, quindi\n"
.string "sto facendo un tour panoramico.\p"
.string "Uhm, uhm… sembrano esserci\n"
.string "altre cabine…$"
AbandonedShip_Rooms_1F_Text_ThaliaIntro:
.string "Che cosa ti ha spinto fino a qui? Devi\n"
.string "essere un tipo curioso!$"
AbandonedShip_Rooms_1F_Text_ThaliaDefeat:
.string "Un tipo curioso e forte…$"
AbandonedShip_Rooms_1F_Text_ThaliaPostBattle:
.string "Luomo che sta qui a fianco…\p"
.string "dice che sta solo guardandosi in giro,\n"
.string "ma io non ci credo.$"
AbandonedShip_Rooms_1F_Text_ThaliaRegister:
.string "Sei un ALLENATORE fortissimo!\n"
.string "Ti registrerò per non dimenticarmi!$"
AbandonedShip_Rooms_1F_Text_ThaliaRematchIntro:
.string "Che cosa ti ha spinto a tornare? Devi\n"
.string "essere un tipo molto curioso!$"
AbandonedShip_Rooms_1F_Text_ThaliaRematchDefeat:
.string "Ma non sei troppo forte?$"
AbandonedShip_Rooms_1F_Text_ThaliaPostRematch:
.string "Sono sicura che quel tizio ha in mente\n"
.string "qualcosa. Si comporta in modo sospetto.$"
AbandonedShip_Rooms_1F_Text_DemetriusIntro:
.string "Aaah!\n"
.string "Mi hanno trovato! … Eh?$"
AbandonedShip_Rooms_1F_Text_DemetriusDefeat:
.string "Oh, non sei la mia mamma.$"
AbandonedShip_Rooms_1F_Text_DemetriusPostBattle:
.string "Ho un problema con la mia mamma.\n"
.string "Sono scappato, non dire dove sono!$"

View File

@@ -10,18 +10,14 @@ AbandonedShip_Rooms_B1F_EventScript_FatMan::
msgbox AbandonedShip_Rooms_B1F_Text_GettingQueasy, MSGBOX_NPC
end
AbandonedShip_Rooms_B1F_Text_GettingQueasy:
.ifdef ENGLISH
.string "Urrrrppp…\p"
.string "I'm getting queasy just being aboard\n"
.string "this ship…\p"
.string "It's not even moving, but…$"
.include "data/maps/AbandonedShip_Rooms_B1F/text.inc"
.else
.ifdef FRENCH
.string "Hoooou…\p"
.string "Jai mal au cœur rien que dêtre à bord\n"
.string "de ce bateau…\p"
.string "Ça ne bouge même pas, mais…$"
.include "data/maps/AbandonedShip_Rooms_B1F/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/AbandonedShip_Rooms_B1F/text_it.inc"
.endif
.endif
.endif

View File

@@ -0,0 +1,5 @@
AbandonedShip_Rooms_B1F_Text_GettingQueasy:
.string "Urrrrppp…\p"
.string "I'm getting queasy just being aboard\n"
.string "this ship…\p"
.string "It's not even moving, but…$"

View File

@@ -0,0 +1,5 @@
AbandonedShip_Rooms_B1F_Text_GettingQueasy:
.string "Hoooou…\p"
.string "Jai mal au cœur rien que dêtre à bord\n"
.string "de ce bateau…\p"
.string "Ça ne bouge même pas, mais…$"

View File

@@ -0,0 +1,5 @@
AbandonedShip_Rooms_B1F_Text_GettingQueasy:
.string "Urrrrppp…\p"
.string "A bordo di questa nave mi è venuto\n"
.string "il mal di mare…\p"
.string "Non ci stiamo muovendo, ma…$"

View File

@@ -0,0 +1,7 @@
gText_AbnormalWeatherEnded_Rain::
.string "Il violento acquazzone sta per\n"
.string "finire…$"
gText_AbnormalWeatherEnded_Sun::
.string "Lintenso calore del sole sta per\n"
.string "finire…$"

235
data/text/it/berries.inc Normal file
View File

@@ -0,0 +1,235 @@
PetalburgCity_Gym_Text_GiveEnigmaBerry:
.string "PAPÀ: Ciao, {PLAYER}!\p"
.string "Ho appena ricevuto una BACCA molto\n"
.string "rara. Vorrei che la prendessi tu!$"
Route104_Text_PlantBerriesInSoilTakeThis:
.string "Se vedi delle BACCHE che crescono su\n"
.string "un terreno fertile, prendile pure.\p"
.string "Però è regola comune piantare unaltra\n"
.string "BACCA nello stesso punto. Ricordati!\p"
.string "Ecco, un regalo per te.$"
Route104_Text_TrainersOftenMakeMonHoldBerries:
.string "Dallaspetto sembri un ALLENATORE,\n"
.string "o sbaglio?\p"
.string "Gli ALLENATORI spesso fanno tenere\n"
.string "BACCHE ai loro POKéMON.\p"
.string "Sei tu a decidere quante BACCHE vuoi\n"
.string "usare e quante ne vuoi piantare.$"
Route111_Text_WateredPlantsEveryDayTakeBerry:
.string "Ho annaffiato le piante ogni giorno.\n"
.string "Sono sbocciati molti fiori.\p"
.string "E hanno fatto anche molte BACCHE.\p"
.string "Ecco!\n"
.string "Puoi prenderla!$"
Route111_Text_GoingToTryToMakeDifferentColorBerries:
.string "Cercherò di piantare BACCHE di\n"
.string "diverso tipo.\p"
.string "Spero che ti impegnerai anche tu!$"
Route111_Text_WhatColorBerriesToLookForToday:
.string "Di quale colore cercherò le BACCHE\n"
.string "oggi?$"
Route114_Text_LoveUsingBerryCrushShareBerry:
.string "Mi piace molto usare il MACINABACCHE.\n"
.string "Per questo cerco le BACCHE.\p"
.string "Se vuoi, te ne do una.$"
Route114_Text_TryBerryCrushWithFriends:
.string "Dovresti provare il MACINABACCHE\n"
.string "con i tuoi amici.$"
Route114_Text_FunToThinkAboutBerries:
.string "Che BACCHE è meglio piantare?\n"
.string "È meglio usarle o accumularle?\p"
.string "Mi piace riflettere su cose come\n"
.string "queste.$"
Route120_Text_BerriesExpressionOfLoveIsntIt:
.string "Le BACCHE crescono grazie alla\n"
.string "luce del sole.\p"
.string "Innaffiandole regolarmente, noi le\n"
.string "aiutiamo a crescere.\p"
.string "È un segno daffetto, non credi?$"
Route120_Text_YesYouUnderstand:
.string "Sì, sì.\n"
.string "Hai capito cosa intendo!\p"
.string "Vorrei darti questa.$"
Route120_Text_MakeYourOwnImpressions:
.string "Oh… è importante che tu abbia\n"
.string "le tue opinioni, credo…\p"
.string "Prendi questa.$"
Route120_Text_BerryIsRareRaiseItWithCare:
.string "Penso che questa BACCA sia rara.\n"
.string "Spero che te ne prenderai cura.$"
Route120_Text_IllGetMoreBerriesFromBerryMaster:
.string "Io mi farò dare altre BACCHE da BACCO\n"
.string "BACCHINI.$"
LilycoveCity_Text_BerrySuitsYou:
.string "In parole semplici…\p"
.string "Labito è perfetto su di me, come una \n"
.string "frizzante brezza che accarezza il mare.\p"
.string "Allo stesso modo, la BACCA è perfetta\n"
.string "su di te…\p"
.string "Perché?$"
LilycoveCity_Text_BecauseYoureTrainer:
.string "In parole semplici…\p"
.string "È perché sei un ALLENATORE!$"
LilycoveCity_Text_PokeblocksSuitPokemon:
.string "In parole semplici…\p"
.string "La semplicità è il mio dono, e le {POKEMELLE}\n"
.string "sono doni per i POKéMON.$"
Route123_BerryMastersHouse_Text_YoureDeservingOfBerry:
.string "Puoi chiamarmi BACCO.\p"
.string "Il mio sogno è colmare il mondo di\n"
.string "magnifici fiori e far crescere BACCHE\l"
.string "da donare a tutti.\p"
.string "Tu ne meriti una!$"
Route123_BerryMastersHouse_Text_WhyBeStingyTakeAnother:
.string "Non voglio essere tirchio.\n"
.string "Eccotene unaltra!$"
Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop:
.string "Ricordati di fare un salto dal FIORISTA\n"
.string "BEL PETALO vicino a FERRUGIPOLI.\p"
.string "Riempiamo il mondo di fiori!$"
Route123_BerryMastersHouse_Text_DoneForToday:
.string "È tutto per oggi.\n"
.string "Ritorna unaltra volta.\p"
.string "Riempiamo il mondo di fiori!$"
Route123_BerryMastersHouse_Text_HeardAGoodSayingLately:
.string "Mio marito è il miglior coltivatore di\n"
.string "BACCHE del mondo!\p"
.string "Sono così orgogliosa di lui.\p"
.string "Hai per caso sentito un bel detto\n"
.string "di recente?$"
Route123_BerryMastersHouse_Text_InspirationalTakeThis:
.string "Ah! Che detto interessante!\n"
.string "Ispirato, direi!\p"
.string "Ti meriti una ricompensa!$"
Route123_BerryMastersHouse_Text_GoodSayingTakeThis:
.string "Oh! Proprio un bel detto.\n"
.string "Sei eccezionale!\p"
.string "Ti meriti una ricompensa!$"
Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife:
.string "I nostri quattro nipotini dovrebbero\n"
.string "diventare ancora più abili di mio marito.\p"
.string "Io continuerò ad essere sempre felice!$"
Route123_BerryMastersHouse_Text_Ah:
.string "Ah…$"
Route104_PrettyPetalFlowerShop_Text_ThisIsPrettyPetalFlowerShop:
.string "Ciao!\p"
.string "Questo è il FIORISTA BEL PETALO.\n"
.string "Copriamo il mondo di fiori!$"
Route104_PrettyPetalFlowerShop_Text_LearnAboutBerries:
.string "{PLAYER}{KUN}, ti piacerebbe sapere qualcosa\n"
.string "sulle BACCHE?$"
Route104_PrettyPetalFlowerShop_Text_IntroLearnAboutBerries:
.string "Come ti chiami?\p"
.string "{PLAYER}{KUN}!\n"
.string "Proprio un bel nome!\p"
.string "Senti, {PLAYER}{KUN}, ti piacerebbe sapere\n"
.string "qualcosa sulle BACCHE?$"
Route104_PrettyPetalFlowerShop_Text_BerriesExplanation:
.string "Le BACCHE si trovano su alberelli che\n"
.string "crescono in aree fertili e soffici.\p"
.string "Se raccogli delle BACCHE, piantane delle\n"
.string "altre nello stesso terreno fertile.\p"
.string "Una volta piantata, la BACCA\n"
.string "germoglierà, diventerà pianta,\l"
.string "darà bellissimi fiori e nuove BACCHE.\p"
.string "Mi piacerebbe vedere il mondo ricoperto\n"
.string "di magnifici fiori. È il mio sogno.\p"
.string "Ti prego aiutami, {PLAYER}{KUN}.\n"
.string "Pianta le BACCHE e fai fiorire il mondo!$"
Route104_PrettyPetalFlowerShop_Text_FlowersBringHappiness:
.string "I fiori portano il sorriso alle persone,\n"
.string "non credi?$"
Route104_PrettyPetalFlowerShop_Text_YouCanHaveThis:
.string "Ciao!\p"
.string "I fiori hanno bisogno di molte cure e \n"
.string "attenzioni per diventare belli.\p"
.string "Ti piacerà prenderti cura dei fiori,\n"
.string "ne sono sicura. Prendi questo!$"
Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation:
.string "Mentre le piante da BACCHE crescono,\n"
.string "bisogna annaffiarle col VASO WAILMER.\p"
.string "Oh, unaltra cosa.\p"
.string "Se non raccogli le BACCHE per un po,\n"
.string "cadranno a terra.\l"
.string "E germoglieranno ancora.\p"
.string "Non è strano? È come se avessero\n"
.string "il desiderio di rigenerarsi da sole!$"
Route104_PrettyPetalFlowerShop_Text_ImGrowingFlowers:
.string "Voglio essere come le mie sorelle grandi.\n"
.string "Anchio coltivo fiori!\p"
.string "Guarda! È per te!$"
Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries:
.string "Puoi piantare una BACCA per farla\n"
.string "germogliare o farla tenere a un\l"
.string "POKéMON.\p"
.string "Adesso, però, esiste anche una macchina\n"
.string "con cui si possono fare mix di BACCHE\l"
.string "diverse, e farne caramelle per i\l"
.string "POKéMON.\p"
.string "Anchio voglio delle caramelle.$"
SootopolisCity_Text_NameIsKiriHaveOneOfThese:
.string "Ciao, come ti chiami?\p"
.string "… … … … … … … … …\n"
.string "Ok, bello!\p"
.string "Io mi chiamo KIRA.\p"
.string "I miei genitori mi hanno dato questo\n"
.string "nome perché volevano che crescessi\l"
.string "in salute e diventassi cordiale.\p"
.string "Puoi avere una di queste.$"
SootopolisCity_Text_GiveYouThisBerryToo:
.string "KIRA ti dà anche questa BACCA.\n"
.string "È veramente bella!$"
SootopolisCity_Text_WhatKindOfWishInYourName:
.string "Che significato misterioso avrà\n"
.string "il tuo nome?$"
SootopolisCity_Text_LikeSeasonBornIn:
.string "Primavera, estate, autunno e inverno.\p"
.string "I nati in primavera amano la primavera,\n"
.string "mentre i nati in estate amano lestate?$"
SootopolisCity_Text_ThenILoveAutumn:
.string "Allora… KIRA è nata in autunno…\n"
.string "Io amo lautunno!\p"
.string "Che stagione ti piace?$"
SootopolisCity_Text_OhDoesntMatter:
.string "Oh… non importa…\p"
.string "Ci sono tante cose che vorrei sapere…$"

118
data/text/it/braille.inc Normal file
View File

@@ -0,0 +1,118 @@
@ NOTE: The brailleformat macro in this file is leftover from RS.
@ The numbers are simply skipped over. If you'd like to omit
@ this macro you must also stop it from skipping over this
@ section by editing ScrCmd_braillemessage.
Underwater_SealedChamber_Braille_GoUpHere::
brailleformat 4, 6, 26, 13, 7, 9
.braille "RISALI DA QUI$"
SealedChamber_OuterRoom_Braille_ABC:
brailleformat 7, 6, 21, 13, 10, 9
.braille "ABC$"
SealedChamber_OuterRoom_Braille_GHI:
brailleformat 7, 6, 21, 13, 10, 9
.braille "GHI$"
SealedChamber_OuterRoom_Braille_MNO:
brailleformat 7, 6, 21, 13, 10, 9
.braille "MNO$"
SealedChamber_OuterRoom_Braille_TUV:
brailleformat 7, 6, 21, 13, 10, 9
.braille "TUV$"
SealedChamber_OuterRoom_Braille_DEF:
brailleformat 7, 6, 21, 13, 10, 9
.braille "DEF$"
SealedChamber_OuterRoom_Braille_JKL:
brailleformat 7, 6, 21, 13, 10, 9
.braille "JKL$"
SealedChamber_OuterRoom_Braille_PQRS:
brailleformat 7, 6, 21, 13, 10, 9
.braille "PQRS$"
SealedChamber_OuterRoom_Braille_Period:
brailleformat 9, 6, 19, 13, 12, 9
.braille ".$"
SealedChamber_OuterRoom_Braille_WXYZ:
brailleformat 7, 6, 21, 13, 10, 9
.braille "WXYZ$"
SealedChamber_OuterRoom_Braille_Comma:
brailleformat 9, 6, 19, 13, 12, 9
.braille ",$"
SealedChamber_OuterRoom_Braille_DigHere:
brailleformat 7, 4, 23, 15, 10, 7
.braille "QUI DEVI\n"
.braille "SCAVARE$"
SealedChamber_InnerRoom_Braille_FirstWailordLastRelicanth:
brailleformat 0, 0, 29, 19, 3, 3
.braille "PRIMO\n"
.braille "WAILORD,\n"
.braille "ULTIMO\n"
.braille "RELICANTH$"
SealedChamber_InnerRoom_Braille_InThisCaveWeHaveLived:
brailleformat 2, 0, 26, 19, 5, 3
.braille "QUESTA GROTTA\n"
.braille "FU LA NOSTRA\n"
.braille "CASA$"
SealedChamber_InnerRoom_Braille_WeOweAllToThePokemon:
brailleformat 7, 2, 23, 17, 10, 5
.braille "AI POKEMON\n"
.braille "DOBBIAMO\n"
.braille "TUTTO$"
SealedChamber_InnerRoom_Braille_ButWeSealedThePokemonAway:
brailleformat 3, 0, 25, 19, 6, 3
.braille "MA DOVEMMO\n"
.braille "RINCHIUDERLI\n"
.braille "IN UN LUOGO\n"
.braille "SEGRETO$"
SealedChamber_InnerRoom_Braille_WeFearedIt:
brailleformat 5, 6, 25, 13, 8, 9
.braille "NE AVEVAMO\n"
.braille "PAURA$"
SealedChamber_InnerRoom_Braille_ThoseWithCourageHope:
brailleformat 6, 0, 24, 19, 9, 3
.braille "SE AVRAI\n"
.braille "CORAGGIO E\n"
.braille "SPERANZA$"
SealedChamber_InnerRoom_Braille_OpenDoorEternalPokemonWaits:
brailleformat 3, 2, 27, 17, 6, 5
.braille "DIETRO AD UNA\n"
.braille "PORTA\n"
.braille "TROVERAI UN\n"
.braille "POKEMON ETERNO$"
DesertRuins_Braille_UseRockSmash:
brailleformat 1, 0, 27, 19, 4, 3
.braille "SINISTRA PER\n"
.braille "DUE, SCENDI\n"
.braille "SCENDI, POI\n"
.braille "SPACCAROCCIA$"
IslandCave_Braille_RunLapAroundWall:
brailleformat 5, 0, 25, 19, 8, 3
.braille "STAI VICINO\n"
.braille "ALLA PARETE,\n"
.braille "FAI UN GIRO\n"
.braille "COMPLETO$"
AncientTomb_Braille_ShineInTheMiddle:
brailleformat 3, 0, 25, 19, 6, 3
.braille "CHI CONDIVIDE\n"
.braille "I NOSTRI SOGNI\n"
.braille "CHE BRILLI AL\n"
.braille "CENTRO$"

View File

@@ -0,0 +1,28 @@
Text_PictureBookShelf:
.string "Unintera collezione di libri illustrati\n"
.string "sui POKéMON.$"
Text_BookShelf:
.string "Ci sono libri di tutti i tipi.$"
Text_PokemonCenterBookShelf:
.string "Riviste POKéMON!\n"
.string "AMICO POKéMON…\p"
.string "MANUALE POKéMON…\n"
.string "POKéMON ADORABILE…$"
Text_Vase:
.string "Questo vaso sembra costoso…\n"
.string "Ci guardo dentro…\p"
.string "È vuoto.$"
Text_EmptyTrashCan:
.string "È vuoto.$"
Text_ShopShelf:
.string "Gli scaffali traboccano di merce\n"
.string "dedicata ai POKéMON.$"
Text_Blueprint:
.string "Che progetto è questo?\n"
.string "Ad ogni modo, è troppo complicato!$"

View File

@@ -0,0 +1,41 @@
EventTicket_Text_ShowOldSeaMap:
.string "Il traghetto per SELCEPOLI è…\p"
.string "Sì? Vuoi sapere se andiamo in questo\n"
.string "posto indicato sulla mappa?\p"
.string "Conosco qualcuno che ti può aiutare.\n"
.string "Aspetta un attimo.$"
EventTicket_Text_ThatPass:
.string "Il traghetto per SELCEPOLI è…\p"
.string "Oh?\n"
.string "Quel BIGLIETTO…$"
EventTicket_Text_ShowEonTicket:
.string "Ah, sei tu che hai portato quello\n"
.string "stranissimo BIGLIETTO?\p"
.string "Con quello si va ad una minuscola\n"
.string "lingua di terra su unisola del sud.\p"
.string "Non si sa che cosa ci aspetti laggiù\n"
.string "una volta arrivati.\l"
.string "E che importa?\p"
.string "Tutti a bordo!$"
EventTicket_Text_SouthernIslandSailBack:
.string "Ah, non cè proprio niente da vedere né\n"
.string "da fare su questisola insignificante.\p"
.string "Torniamo ad ALGHEPOLI?$"
EventTicket_Text_SailHome:
.string "Va bene, allora!\n"
.string "Leviamo le ancore! Verso casa!$"
EventTicket_Text_AsYouLike:
.string "Va bene, come vuoi tu.$"
SouthernIsland_Interior_Text_Sign:
.string "“I sogni sono unaltra realtà.\n"
.string "Non dimenticare…”.$"
SouthernIsland_Exterior_Text_Sign:
.string "“Quando i ricordi si affievoliscono,\n"
.string "ricercali nel tuo cuore…”.$"

124
data/text/it/general.inc Normal file
View File

@@ -0,0 +1,124 @@
gText_PokemartSign::
.string "POKéMON-MARKET\n"
.string "“Strumenti per ogni esigenza!”.$"
gText_PokemonCenterSign::
.string "CENTRO POKéMON\n"
.string "“Per rinvigorire i tuoi amici stanchi!”.$"
gText_MomOrDadMightLikeThisProgram::
.string "Questo programma piacerebbe a {STR_VAR_1}.\n"
.string "… … … … … … … … … … … … … … … …\p"
.string "La TV è come una calamita!$"
gText_WhichFloorWouldYouLike::
.string "Ti trovi nellascensore del CENTRO\n"
.string "COMMERCIALE di ALGHEPOLI.\p"
.string "A quale piano ti porto?$"
gText_SandstormIsVicious::
.string "La tempesta di sabbia è impetuosa.\n"
.string "È impossibile proseguire il cammino.$"
gText_SelectWithoutRegisteredItem::
.string "Puoi assegnare uno strumento\n"
.string "dello ZAINO a SELECT.$"
gText_PokemonTrainerSchoolEmail::
.string "È arrivata una e-mail dalla SCUOLA per\n"
.string "ALLENATORI di POKéMON.\p"
.string "… … … … … …\p"
.string "Un POKéMON può conoscere fino\n"
.string "a quattro mosse.\p"
.string "Più bravo è lALLENATORE, migliore sarà\n"
.string "la rosa di mosse scelta per POKéMON.\p"
.string "… … … … … …$"
gText_PlayerHouseBootPC::
.string "{PLAYER} accende il PC.$"
gText_PokeblockLinkCanceled::
.string "Collegamento annullato.$"
gText_UnusedNicknameReceivedPokemon::
.string "Want to give a nickname to\n"
.string "the {STR_VAR_2} you received?$"
gText_PlayerWhitedOut::
.string "{PLAYER} non ha più POKéMON utili!\p"
.string "{PLAYER} è fuori combattimento!$"
gText_RegisteredTrainerinPokeNav::
.string "Registrazione di {STR_VAR_2},\n"
.string "{STR_VAR_1}, nel POKéNAV avvenuta.$"
gText_ComeBackWithSecretPower::
.string "Conosci la MT FORZASEGRETA?\p"
.string "Il nostro gruppo adora la MT\n"
.string "FORZASEGRETA.\p"
.string "La potrai ottenere da uno dei nostri.\n"
.string "Ritorna quando ce lhai per mostrarmela.\p"
.string "Così sarai dei nostri e ti venderemo\n"
.string "della buona merce in segreto.$"
gText_PokerusExplanation::
.string "I tuoi POKéMON potrebbero essere\n"
.string "infettati dal POKéRUS.\p"
.string "Si sa poco sul POKéRUS, ma pare che\n"
.string "si tratti di forme di vita microscopiche\l"
.string "che infettano i POKéMON.\p"
.string "Pare che i POKéMON infettati crescano\n"
.string "straordinariamente bene.$"
gText_WantToUseSurf::
.string "Lacqua ha un colore azzurro marino…\n"
.string "Vuoi usare SURF?$"
gText_PlayerUsedSurf::
.string "{STR_VAR_1} usa SURF!$"
gText_DoorOpenedFarAway::
.string "Sembra che si sia aperta una porta\n"
.string "in lontananza.$"
gText_BigHoleInTheWall::
.string "Cè un grosso buco nella parete.$"
gText_SorryWirelessClubAdjustments::
.string "Sono spiacente.\n"
.string "Il CLUB WIRELESS POKéMON\l"
.string "è chiuso per lavori.$"
gText_UndergoingAdjustments::
.string "Sembra che sia chiuso per lavori.$"
@ Unused
gText_SorryTradeCenterInspections::
.string "Im terribly sorry. The TRADE CENTER\n"
.string "is undergoing inspections.$"
@ Unused
gText_SorryRecordCornerPreparation::
.string "Im terribly sorry. The RECORD CORNER\n"
.string "is under preparation.$"
gText_PlayerHandedOverTheItem::
.string "{PLAYER} cede\n"
.string "{STR_VAR_1}.$"
gText_ThankYouForAccessingMysteryGift::
.string "Grazie per usufruire del Sistema\n"
.string "DONO SEGRETO!$"
gText_PlayerFoundOneTMHM::
.string "{PLAYER} trova la {STR_VAR_1}\n"
.string "contenente {STR_VAR_2}!$"
gText_Sudowoodo_Attacked::
.string "Lo strano albero non gradisce\n"
.string "il VASO WAILMER!\p"
.string "Lo strano albero ti sta attaccando!$"
gText_LegendaryFlewAway::
.string "{STR_VAR_1} è fuggito!$"

View File

@@ -0,0 +1,79 @@
LilycoveCity_DepartmentStore_1F_Text_LotteryCornerDrawTicket:
.string "Questo è lANGOLO LOTTERIA POKéMON.\p"
.string "Tutti i visitatori del nostro CENTRO\n"
.string "COMMERCIALE possono pescare\l"
.string "un BIGLIETTO del POKéLOTTO.\p"
.string "Se il numero del BIGLIETTO corrisponde\n"
.string "al numero didentità di un tuo POKéMON,\l"
.string "riceverai un magnifico regalo.\p"
.string "Vuoi pescare un BIGLIETTO del\n"
.string "POKéLOTTO?$"
LilycoveCity_DepartmentStore_1F_Text_ComeBackTomorrow:
.string "Ritorna domani.$"
LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain:
.string "Torna a trovarci.$"
LilycoveCity_DepartmentStore_1F_Text_PleasePickTicket:
.string "Pesca un BIGLIETTO del POKéLOTTO.\n"
.string "{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}…{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}…{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
LilycoveCity_DepartmentStore_1F_Text_TicketNumberIsXPleaseWait:
.string "Il numero del BIGLIETTO del\n"
.string "POKéLOTTO è {STR_VAR_1}.\p"
.string "Devo controllare se il numero\n"
.string "corrisponde al numero didentità di\l"
.string "uno dei tuoi POKéMON. Attendi, prego.$"
LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPartyMon:
.string "Complimenti!\p"
.string "Cè corrispondenza fra il numero del\n"
.string "BIGLIETTO e il numero didentità di\l"
.string "{STR_VAR_1} della tua squadra!$"
LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPCMon:
.string "Complimenti!\p"
.string "Cè corrispondenza fra il numero del\n"
.string "BIGLIETTO e il numero didentità di\l"
.string "{STR_VAR_1} nel tuo BOX PC.$"
LilycoveCity_DepartmentStore_1F_Text_NoNumbersMatched:
.string "Spiacente.\n"
.string "Non ci sono corrispondenze.$"
LilycoveCity_DepartmentStore_1F_Text_TwoDigitsMatched:
.string "Due cifre corrispondono!\n"
.string "Hai vinto il terzo premio!\l"
.string "Hai vinto {STR_VAR_1}!$"
LilycoveCity_DepartmentStore_1F_Text_ThreeDigitsMatched:
.string "Tre cifre corrispondono!\n"
.string "Hai vinto il secondo premio!\l"
.string "Hai vinto {STR_VAR_1}!$"
LilycoveCity_DepartmentStore_1F_Text_FourDigitsMatched:
.string "Quattro cifre corrispondono!\n"
.string "Hai vinto il primo premio!\l"
.string "Hai vinto {STR_VAR_1}!$"
LilycoveCity_DepartmentStore_1F_Text_AllFiveDigitsMatched:
.string "Incredibile! Tutte e cinque le cifre\n"
.string "corrispondono!\p"
.string "Hai vinto il jackpot!\n"
.string "Hai vinto {STR_VAR_1}!$"
LilycoveCity_DepartmentStore_1F_Text_NoRoomForThis:
.string "Cosa?\n"
.string "Non hai proprio più spazio?\p"
.string "Fai spazio nel tuo ZAINO e poi\n"
.string "fammi sapere.$"
LilycoveCity_DepartmentStore_1F_Text_PrizeWeveBeenHolding:
.string "{PLAYER}?\n"
.string "Sì, ti stavamo aspettando.\p"
.string "Abbiamo conservato questo premio\n"
.string "per te.$"
LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain2:
.string "Torna a trovarci.$"

View File

@@ -0,0 +1,10 @@
gText_HowMayIServeYou::
.string "Salve!\p"
.string "In che cosa posso servirti?$"
gText_PleaseComeAgain::
.string "Torna a trovarmi!$"
gText_PlayerWhatCanIDoForYou::
.string "{PLAYER}{KUN}, salve!\p"
.string "Che cosa posso fare per te?$"

View File

@@ -0,0 +1,30 @@
gText_ObtainedTheItem::
.string "Hai ottenuto {STR_VAR_2}!$"
gText_TheBagIsFull::
.string "Lo ZAINO è pieno…$"
gText_PutItemInPocket::
.string "{PLAYER} mette via {STR_VAR_2}\n"
.string "nella TASCA {STR_VAR_3}.$"
gText_PlayerFoundOneItem::
.string "{PLAYER} trova {STR_VAR_2}!$"
gText_TooBadBagIsFull::
.string "Che peccato!\n"
.string "Hai lo ZAINO troppo pieno…$"
gText_PlayerPutItemInBag::
.string "{PLAYER} mette via {STR_VAR_2}\n"
.string "nello ZAINO LOTTA.$"
gText_ObtainedTheDecor::
.string "Hai ottenuto {STR_VAR_2}!$"
gText_NoRoomLeftForAnother::
.string "Non hai spazio per {STR_VAR_2}? \n"
.string "È un peccato…$"
gText_TheDecorWasTransferredToThePC::
.string "{STR_VAR_2} è nel tuo PC.$"

17
data/text/it/pc.inc Normal file
View File

@@ -0,0 +1,17 @@
Text_BootUpPC:
.string "{PLAYER} accende il PC.$"
gText_WhichPCShouldBeAccessed::
.string "A quale PC vuoi accedere?$"
gText_AccessedSomeonesPC::
.string "Accesso al PC di ???$"
gText_StorageSystemOpened::
.string "Sistema Memoria POKéMON aperto.$"
gText_AccessedPlayersPC::
.string "Accesso al PC di {PLAYER}.$"
gText_AccessedLanettesPC::
.string "Accesso al PC di LANETTE.$"

View File

@@ -0,0 +1,29 @@
gText_PkmnTransferredSomeonesPC::
.string "{STR_VAR_2} è stato trasferito\n"
.string "al PC di ???.\p"
.string "È nel BOX chiamato “{STR_VAR_1}”.$"
gText_PkmnTransferredLanettesPC::
.string "{STR_VAR_2} è stato inviato al\n"
.string "PC di LANETTE.\p"
.string "È nel BOX chiamato “{STR_VAR_1}”.$"
gText_PkmnTransferredSomeonesPCBoxFull::
.string "Il BOX chiamato “{STR_VAR_3}” nel\n"
.string "PC di ??? è pieno.\p"
.string "{STR_VAR_2} è stato inviato al\n"
.string "BOX chiamato “{STR_VAR_1}”.$"
gText_PkmnTransferredLanettesPCBoxFull::
.string "Il BOX chiamato “{STR_VAR_3}” nel\n"
.string "PC di LANETTE è pieno.\p"
.string "{STR_VAR_2} è stato inviato al\n"
.string "BOX chiamato “{STR_VAR_1}”.$"
gText_NoMoreRoomForPokemon::
.string "Non cè spazio per altri POKéMON!\n"
.string "I BOX POKéMON sono pieni!$"
gText_NicknameThisPokemon::
.string "Vuoi dare un soprannome a\n"
.string "{STR_VAR_1}?$"

View File

@@ -0,0 +1,47 @@
gText_WouldYouLikeToRestYourPkmn::
.string "Sei in un CENTRO POKéMON.\p"
.string "Rimettiamo in sesto i POKéMON stanchi.\p"
.string "Vuoi far riposare la tua squadra?$"
gText_IllTakeYourPkmn::
.string "Ok, mi prendo la tua squadra di POKéMON\n"
.string "per qualche secondo.$"
gText_RestoredPkmnToFullHealth::
.string "Grazie per lattesa.\p"
.string "Ora la tua squadra di POKéMON è \n"
.string "in perfetta forma.$"
gText_WeHopeToSeeYouAgain::
.string "Torna a farci visita!$"
gText_WelcomeCutShort::
.string "Sei in un CENTRO POKéMON.\p"
.string "Rimettiamo in sesto i POKéMON stanchi.\p"
.string "Vuoi…?$"
gText_NoticesGoldCard::
.string "Que-quella scheda…\n"
.string "non è… una SCHEDA dORO?!\p"
.string "Che lucentezza!\n"
.string "Le quattro stelle sono brillantissime!\p"
.string "Ho visto molti ALLENATORI con SCHEDE\n"
.string "dARGENTO ma, ti dico la verità {PLAYER},\l"
.string "tu sei il primo ALLENATORE con una\l"
.string "SCHEDA dORO che io abbia incontrato!\p"
.string "{PLAYER}, mi concedi lonore di rimettere\n"
.string "in sesto la tua squadra di POKéMON?$"
gText_YouWantTheUsual::
.string "Sono felice di vederti, {PLAYER}!\n"
.string "Il solito, suppongo?$"
gText_IllTakeYourPkmn2::
.string "Ok, prenderò i tuoi POKéMON\n"
.string "per qualche secondo.$"
gText_ThankYouForWaiting::
.string "Grazie per lattesa.$"
gText_WeHopeToSeeYouAgain2::
.string "Arrivederci!$"

View File

@@ -0,0 +1,115 @@
gBirchDexRatingText_AreYouCurious::
.string "PROF. BIRCH: Ah, {PLAYER}{KUN}!\p"
.string "Vuoi mostrarmi i progressi\n"
.string "del tuo POKéDEX?$"
gBirchDexRatingText_Cancel::
.string "Mhmm? Non vale la pena guardare,\n"
.string "non hai abbastanza POKéMON.$"
gBirchDexRatingText_SoYouveSeenAndCaught::
.string "Mhmm…\p"
.string "Dunque, hai visto {STR_VAR_1} POKéMON,\n"
.string "e hai catturato {STR_VAR_2} POKéMON…$"
gBirchDexRatingText_LessThan10::
.string "Dovresti andare di più nelle aree\n"
.string "erbose e cercare POKéMON con più\l"
.string "attenzione.$"
gBirchDexRatingText_LessThan20::
.string "Mi pare che tu stia imparando.\n"
.string "Ma dora in poi sarà sempre più\l"
.string "difficile.$"
gBirchDexRatingText_LessThan30::
.string "Alcuni POKéMON si trovano solo in\n"
.string "certe aree.\l"
.string "Devi cercare con costanza.$"
gBirchDexRatingText_LessThan40::
.string "Beh, potrebbe essere più completo,\n"
.string "ma almeno ha laspetto \l"
.string "di un POKéDEX ora.$"
gBirchDexRatingText_LessThan50::
.string "Ti sta riuscendo proprio bene.\n"
.string "Continua a darti da fare.$"
gBirchDexRatingText_LessThan60::
.string "Usi gli AMI?\n"
.string "Ci sono molti POKéMON nel mare.$"
gBirchDexRatingText_LessThan70::
.string "Invece di continuare a catturare\n"
.string "POKéMON, perché non li fai\l"
.string "evolvere?$"
gBirchDexRatingText_LessThan80::
.string "Ho proprio limpressione che questo\n"
.string "diventerà un POKéDEX fantastico.$"
gBirchDexRatingText_LessThan90::
.string "Ne hai catturati così tanti!\n"
.string "Hai un talento eccezionale!$"
gBirchDexRatingText_LessThan100::
.string "Hai visitato la ZONA SAFARI?\p"
.string "Ho sentito che là si trovano\n"
.string "POKéMON che non esistono\l"
.string "da altre parti.$"
gBirchDexRatingText_LessThan110::
.string "Finalmente hai raggiunto\n"
.string "i fatidici 100!\p"
.string "È un POKéDEX veramente speciale!$"
gBirchDexRatingText_LessThan120::
.string "Ci sono dei POKéMON che si trovano\n"
.string "con SPACCAROCCIA.$"
gBirchDexRatingText_LessThan130::
.string "Dovresti cercare di ottenere più\n"
.string "POKéMON con gli scambi.$"
gBirchDexRatingText_LessThan140::
.string "Dicono che alcuni POKéMON si \n"
.string "evolvano quando lamore per il loro\l"
.string "ALLENATORE raggiunge il massimo.$"
gBirchDexRatingText_LessThan150::
.string "Non sapevo ci fossero tante specie\n"
.string "di POKéMON nella regione di HOENN.$"
gBirchDexRatingText_LessThan160::
.string "A volte, certi POKéMON appaiono\n"
.string "tutti insieme in grandi branchi. Non\l"
.string "perdere occasioni di questo tipo.$"
gBirchDexRatingText_LessThan170::
.string "Guardando il tuo POKéDEX ci si\n"
.string "può fare unidea molto chiara\l"
.string "della regione di HOENN.$"
gBirchDexRatingText_LessThan180::
.string "Mi pare che tu abbia la stoffa per\n"
.string "diventare un PROFESSORE POKéMON!$"
gBirchDexRatingText_LessThan190::
.string "Ti si deve considerare\n"
.string "professionista, con un\l"
.string "POKéDEX così completo!$"
gBirchDexRatingText_LessThan200::
.string "Stai per completare il tuo POKéDEX,\n"
.string "me lo sento nel sangue!$"
gBirchDexRatingText_DexCompleted::
.string "Complimenti!\n"
.string "Il tuo POKéDEX è completo!$"
gBirchDexRatingText_OnANationwideBasis::
.string "Uhm…\n"
.string "Su base nazionale…\p"
.string "hai visto {STR_VAR_1} POKéMON e\n"
.string "catturato {STR_VAR_2} POKéMON…$"

View File

@@ -0,0 +1,43 @@
Questionnaire_Text_FillOut::
.string "Cè un questionario.\n"
.string "Vuoi compilarlo?$"
Questionnaire_Text_ThankYou::
.string "Grazie per aver compilato\n"
.string "il questionario.\p"
.string "Le tue risposte saranno\n"
.string "molto utili.$"
Questionnaire_Text_YouKnowThoseWordsGift::
.string "Ciao!\n"
.string "Ah, conosci le parole segrete?\p"
.string "Quindi, sai anche cosè\n"
.string "il DONO SEGRETO!\p"
.string "Da questo momento puoi\n"
.string "ricevere DONI SEGRETI!$"
Questionnaire_Text_YouCanAccessMysteryGift::
.string "Dopo aver salvato il gioco, potrai\n"
.string "accedere allopzione DONO SEGRETO.$"
Questionnaire_Text_YouKnowThoseWordsEvent::
.string "Ciao!\n"
.string "Ah, conosci le parole segrete?\p"
.string "Quindi, sai anche cosè\n"
.string "lEVENTO SEGRETO!$"
Questionnaire_Text_YouCanAccessMysteryEvent::
.string "Dopo aver salvato il gioco, potrai\n"
.string "accedere allopzione EVENTO SEGRETO.$"
MysteryGift_Text_TheresATicketForYou::
.string "Grazie per usare il Sistema\n"
.string "EVENTO SEGRETO.\p"
.string "Tu sei {PLAYER}, vero? Ho qui\n"
.string "un biglietto per te.$"
MysteryGift_Text_TryUsingItAtLilycovePort::
.string "Dovrebbe servirti allo scalo di\n"
.string "PORTO ALGHEPOLI.\p"
.string "Ti conviene andare a vedere\n"
.string "di persona.$"

View File

@@ -0,0 +1,6 @@
Text_WouldYouLikeToMixRecords:
.string "Vuoi scambiare dati con altri\n"
.string "ALLENATORI?$"
Text_WeHopeToSeeYouAgain:
.string "Torna a farci visita!$"

View File

@@ -0,0 +1,53 @@
ShoalCave_LowTideEntranceRoom_Text_AreYouPlanningOnGoingInThere:
.string "Hai voglia di avventurarti allinterno\n"
.string "della grotta?\p"
.string "Ti va di portarmi del SALE ONDOSO\n"
.string "e dei GUSCIONDOSI?\p"
.string "Se mi porti questi ingredienti ti posso\n"
.string "fare qualcosa di buono.$"
ShoalCave_LowTideEntranceRoom_Text_BringMe4ShoalSaltAndShells:
.string "Per fare una CONCHINELLA, ho bisogno\n"
.string "di SALE ONDOSO e GUSCIONDOSI.\l"
.string "Portamene quattro di ogni tipo…\p"
.string "Questi ingredienti li trovi\n"
.string "tutti i giorni.$"
ShoalCave_LowTideEntranceRoom_Text_WouldYouLikeShellBell:
.string "Wow! SALE ONDOSO e GUSCIONDOSI!\n"
.string "E in quantità sufficiente!\p"
.string "Vuoi che ti faccia una\n"
.string "CONCHINELLA?$"
ShoalCave_LowTideEntranceRoom_Text_MakeShellBellRightAway:
.string "Perfetto! La tua CONCHINELLA\n"
.string "sarà pronta in un battibaleno!\p"
.string "… … … … … … … …\n"
.string "… … … … … … … …\p"
.string "Ecco fatto!$"
ShoalCave_LowTideEntranceRoom_Text_ExplainShellBell:
.string "Falla tenere ad un POKéMON.\n"
.string "Di sicuro ne sarà entusiasta.\p"
.string "Il rintocco della CONCHINELLA\n"
.string "è semplicemente sublime!\p"
.string "Gli ingredienti si trovano tutti i giorni,\n"
.string "quindi te ne posso fare delle altre.$"
ShoalCave_LowTideEntranceRoom_Text_WantedToMakeShellBell:
.string "Oh… peccato…\n"
.string "Ti volevo fare una CONCHINELLA…$"
ShoalCave_LowTideEntranceRoom_Text_NoSpaceInYourBag:
.string "Non mi posso mettere allopera perché\n"
.string "il tuo ZAINO è troppo pieno.\p"
.string "Se vuoi una CONCHINELLA,\n"
.string "fai un po di spazio.$"
ShoalCave_Text_WasShoalSaltNowNothing:
.string "Prima qui cera del SALE ONDOSO.\n"
.string "Ora non cè più.$"
ShoalCave_Text_WasShoallShellNowNothing:
.string "Prima qui cera un GUSCIONDOSO.\n"
.string "Ora non cè più.$"

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

BIN
graphics/shop/money_it.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

BIN
graphics/types/it/bug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

BIN
graphics/types/it/dark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

BIN
graphics/types/it/fight.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

BIN
graphics/types/it/fire.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

BIN
graphics/types/it/ghost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

BIN
graphics/types/it/grass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

BIN
graphics/types/it/ice.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

BIN
graphics/types/it/rock.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

BIN
graphics/types/it/steel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

BIN
graphics/types/it/water.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

View File

@@ -19,10 +19,34 @@ MISCGFXDIR := graphics/misc
JPCONTESTGFXDIR := graphics/contest/japanese
POKEDEXGFXDIR := graphics/pokedex
STARTERGFXDIR := graphics/starter_choose
TYPESGFXDIR := graphics/types
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
contest_types := cool beauty cute smart tough
### Types Palettes ###
$(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \
$(TYPESGFXDIR)/move_types_2.gbapal \
$(TYPESGFXDIR)/move_types_3.gbapal
@cat $^ >$@
## English types ##
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@
### French Types ###
TYPESGFXDIR := graphics/types/fr
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@
### Italian Types ###
TYPESGFXDIR := graphics/types/it
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@
# Graphics for specific languages. They need to be built regardless of compiled version due to limitations with preproc.
include graphics_file_rules_en.mk
include graphics_file_rules_fr.mk
### Castform ###

View File

@@ -1,12 +0,0 @@
TYPESGFXDIR := graphics/types
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
contest_types := cool beauty cute smart tough
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@
$(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \
$(TYPESGFXDIR)/move_types_2.gbapal \
$(TYPESGFXDIR)/move_types_3.gbapal
@cat $^ >$@

View File

@@ -1,7 +0,0 @@
TYPESGFXDIR := graphics/types/fr
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
contest_types := cool beauty cute smart tough
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@

View File

@@ -10,7 +10,7 @@
// Arguments for 'xStart, yStart, xEnd, yEnd' in HandleBattleWindow
#if ENGLISH
#define YESNOBOX_X_Y 24, 8, 29, 13
#elif FRENCH
#elif FRENCH || ITALIAN
#define YESNOBOX_X_Y 23, 8, 29, 13
#endif

View File

@@ -59,7 +59,7 @@ void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm);
u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
u8 GetFrontierOpponentClass(u16 trainerId);
void GetFrontierTrainerName(u8 *dst, u16 trainerId);
#if FRENCH
#if FRENCH || ITALIAN
bool8 IsFrontierTrainerFemale(u16 trainerId);
#endif
void FillFrontierTrainerParty(u8 monsCount);

View File

@@ -16,7 +16,7 @@
// would normally use AGBPrint() and AGBPrintf().
// Using English as default.
#if !defined(ENGLISH) && !defined(FRENCH)
#if !defined(ENGLISH) && !defined(FRENCH) && !defined(ITALIAN)
#define ENGLISH 1
#endif

View File

@@ -32,6 +32,8 @@
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
#elif FRENCH
#define GAME_LANGUAGE (LANGUAGE_FRENCH)
#elif ITALIAN
#define GAME_LANGUAGE (LANGUAGE_ITALIAN)
#endif
// party sizes

View File

@@ -498,6 +498,7 @@
#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX)
#define ITEM_TO_BERRY(itemId)(((itemId) - FIRST_BERRY_INDEX) + 1)
#define BERRY_TO_ITEM(berryId)((berryId) + (FIRST_BERRY_INDEX - 1))
#define ITEM_TO_MAIL(itemId)((itemId) - FIRST_MAIL_INDEX)
#define MAIL_NONE 0xFF

View File

@@ -126,7 +126,7 @@ u8 * CopyEasyChatWord(u8 *dest, u16 word);
bool32 IsEasyChatAnswerUnlocked(int word);
void InitializeEasyChatWordArray(u16 *words, u16 length);
u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows);
#if FRENCH
#if FRENCH || ITALIAN
u8 *UnusedConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows);
#endif
bool8 IsBardWordInvalid(u16 word);

View File

@@ -5063,7 +5063,7 @@ extern const u8 gMailTilemap_Retro[];
extern const u8 gMonMarkingsMenu_Gfx[];
extern const u16 gMonMarkingsMenu_Pal[];
#if FRENCH
#if FRENCH || ITALIAN
extern const u16 gPokeJumpBonuses_Pal[];
extern const u32 gPokeJumpBonuses_Gfx[];
extern const u32 gPokeJumpBonuses_Tilemap[];

View File

@@ -20,7 +20,7 @@ void ConvertInternationalPlayerNameStripChar(u8 *, u8);
void ConvertInternationalContestantName(u8 *);
int GetNicknameLanguage(u8 *);
void FillWindowTilesByRow(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows);
#if FRENCH
#if FRENCH || ITALIAN
u8 *StringAppendWithPlaceholder(u8 *dest, const u8 *src, u8 *placeholderStr);
const u8 *GetTrainerClassNameGenderSpecific(s32 trainerClassId, u32 trainerGender, const u8 *trainerName);
#endif

View File

@@ -3035,7 +3035,7 @@ extern const u8 gText_Summary2[];
extern const u8 gText_PkmnForSwap[];
extern const u8 gText_SamePkmnInPartyAlready[];
extern const u8 gText_Cancel3[];
#if FRENCH
#if FRENCH || ITALIAN
extern const u8 gText_Eleve[];
extern const u8 gText_Dresseur[];
extern const u8 gText_Champion[];

1
rom_it.sha1 Normal file
View File

@@ -0,0 +1 @@
1692db322400c3141c5de2db38469913ceb1f4d4 pokeemerald_it.gba

View File

@@ -167,7 +167,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] =
.tilemapTop = 15,
#if ENGLISH
.width = 26,
#elif FRENCH
#elif FRENCH || ITALIAN
.width = 27,
#endif
.height = 4,
@@ -279,7 +279,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] =
.tilemapLeft = 26,
.tilemapTop = 9,
.width = 3,
#elif FRENCH
#elif FRENCH || ITALIAN
.tilemapLeft = 25,
.tilemapTop = 9,
.width = 4,
@@ -398,7 +398,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] =
.tilemapTop = 15,
#if ENGLISH
.width = 26,
#elif FRENCH
#elif FRENCH || ITALIAN
.width = 27,
#endif
.height = 4,
@@ -510,7 +510,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] =
.tilemapLeft = 26,
.tilemapTop = 9,
.width = 3,
#elif FRENCH
#elif FRENCH || ITALIAN
.tilemapLeft = 25,
.tilemapTop = 9,
.width = 4,
@@ -575,7 +575,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] =
},
[ARENA_WIN_SKILL] = {
.bg = 0,
#if ENGLISH
#if ENGLISH || ITALIAN
.tilemapLeft = 12,
.tilemapTop = 6,
.width = 6,
@@ -595,8 +595,8 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] =
.width = 6,
.height = 2,
.paletteNum = 5,
#if ENGLISH
.baseBlock = 0x013c,
#if ENGLISH || ITALIAN
.baseBlock = 0x013C,
#elif FRENCH
.baseBlock = 0x0140,
#endif
@@ -608,7 +608,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] =
.width = 14,
.height = 2,
.paletteNum = 5,
#if ENGLISH
#if ENGLISH || ITALIAN
.baseBlock = 0x0148,
#elif FRENCH
.baseBlock = 0x014C,
@@ -620,7 +620,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] =
.tilemapTop = 15,
#if ENGLISH
.width = 26,
#elif FRENCH
#elif FRENCH || ITALIAN
.width = 27,
#endif
.height = 4,

View File

@@ -4261,7 +4261,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
#if ENGLISH
struct TextPrinterTemplate textPrinter;
int i, j, k;
#elif FRENCH
#elif FRENCH || ITALIAN
const u8 *trClassName;
struct TextPrinterTemplate textPrinter;
int i, j, k, trGender;
@@ -4357,7 +4357,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
for (;gTrainerClassNames[j][i] != EOS; i++)
gStringVar1[i] = gTrainerClassNames[j][i];
#elif FRENCH
#elif FRENCH || ITALIAN
if (trainerId == TRAINER_PLAYER)
j = gFacilityClassToTrainerClass[FACILITY_CLASS_BRENDAN], trGender = gSaveBlock2Ptr->playerGender;
else if (trainerId == TRAINER_FRONTIER_BRAIN)

View File

@@ -471,6 +471,25 @@ const u8 gTypeNames[NUMBER_OF_MON_TYPES][TYPE_NAME_LENGTH + 1] =
[TYPE_ICE] = _("GLACE"),
[TYPE_DRAGON] = _("DRAGON"),
[TYPE_DARK] = _("TENEBR"),
#elif ITALIAN
[TYPE_NORMAL] = _("NORM"),
[TYPE_FIGHTING] = _("LOTTA"),
[TYPE_FLYING] = _("VOLAN"),
[TYPE_POISON] = _("VELENO"),
[TYPE_GROUND] = _("TERRA"),
[TYPE_ROCK] = _("ROCCIA"),
[TYPE_BUG] = _("COLEOT"),
[TYPE_GHOST] = _("SP.TRO"),
[TYPE_STEEL] = _("ACC.IO"),
[TYPE_MYSTERY] = _("???"),
[TYPE_FIRE] = _("FUOCO"),
[TYPE_WATER] = _("ACQUA"),
[TYPE_GRASS] = _("ERBA"),
[TYPE_ELECTRIC] = _("ELETT"),
[TYPE_PSYCHIC] = _("PSICO"),
[TYPE_ICE] = _("GHIACC"),
[TYPE_DRAGON] = _("DRAGO"),
[TYPE_DARK] = _("BUIO"),
#endif
};
@@ -538,7 +557,9 @@ const struct TrainerMoney gTrainerMoneyTable[] =
#if ENGLISH
#include "data/text/abilities.h"
#elif FRENCH
#include "data/text/abilities_fr.h"
#include "data/text/fr/abilities.h"
#elif ITALIAN
#include "data/text/it/abilities.h"
#endif
static void (* const sTurnActionsFuncsTable[])(void) =

View File

@@ -1,5 +1,5 @@
#include "global.h"
#if FRENCH
#if FRENCH || ITALIAN
#include "malloc.h"
#endif
#include "battle.h"
@@ -813,6 +813,385 @@ static const u8 sText_SpAtk2[] = _("ATQ SP");
static const u8 sText_SpDef2[] = _("DEF SP");
static const u8 sText_Accuracy[] = _("précision");
static const u8 sText_Evasiveness[] = _("esquive");
#elif ITALIAN
static const u8 sText_Trainer1LoseText[] = _("{B_TRAINER1_LOSE_TEXT}");
static const u8 sText_PkmnGainedEXP[] = _("{B_BUFF1} riceve{B_BUFF2} \n{B_BUFF3} punti ESP.!\p");
static const u8 sText_EmptyString4[] = _("");
static const u8 sText_ABoosted[] = _(" la bellezza di");
static const u8 sText_PkmnGrewToLv[] = _("{B_BUFF1} sale al L. {B_BUFF2}!{WAIT_SE}\p");
static const u8 sText_PkmnLearnedMove[] = _("{B_BUFF1} impara {B_BUFF2}!{WAIT_SE}\p");
static const u8 sText_TryToLearnMove1[] = _("{B_BUFF1} sta cercando di imparare\n{B_BUFF2}!\p");
static const u8 sText_TryToLearnMove2[] = _("Ma {B_BUFF1} non può conoscere\npiù di quattro mosse.\p");
static const u8 sText_TryToLearnMove3[] = _("Vuoi cancellare una mossa per\nfar posto a {B_BUFF2}?");
static const u8 sText_PkmnForgotMove[] = _("{B_BUFF1} scorda {B_BUFF2}!\p");
static const u8 sText_StopLearningMove[] = _("{PAUSE 32}Bloccare lapprendimento\ndi {B_BUFF2}?");
static const u8 sText_DidNotLearnMove[] = _("{B_BUFF1} non ha imparato\n{B_BUFF2}!\p");
static const u8 sText_UseNextPkmn[] = _("Usare un altro POKéMON?");
static const u8 sText_AttackMissed[] = _("{B_ATK_NAME_WITH_PREFIX} fallisce!");
static const u8 sText_PkmnProtectedItself[] = _("{B_DEF_NAME_WITH_PREFIX} si protegge!");
static const u8 sText_AvoidedDamage[] = _("{B_DEF_NAME_WITH_PREFIX} evita\nil colpo con {B_DEF_ABILITY}!");
static const u8 sText_PkmnMakesGroundMiss[] = _("{B_DEF_NAME_WITH_PREFIX} neutralizza le\nmosse di TERRA con {B_DEF_ABILITY}!");
static const u8 sText_PkmnAvoidedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} evita lattacco!");
static const u8 sText_ItDoesntAffect[] = _("Non ha effetto su\n{B_DEF_NAME_WITH_PREFIX}…");
static const u8 sText_AttackerFainted[] = _("{B_ATK_NAME_WITH_PREFIX} è esausto!\p");
static const u8 sText_TargetFainted[] = _("{B_DEF_NAME_WITH_PREFIX} è esausto!\p");
static const u8 sText_PlayerGotMoney[] = _("{B_PLAYER_NAME} vince\n¥{B_BUFF1}!\p");
static const u8 sText_PlayerWhiteout[] = _("{B_PLAYER_NAME} non ha più\nPOKéMON utili!\p");
static const u8 sText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} è fuori combattimento!{PAUSE_UNTIL_PRESS}");
static const u8 sText_PreventsEscape[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} impedisce\nla fuga con {B_SCR_ACTIVE_ABILITY}!\p");
static const u8 sText_CantEscape2[] = _("Non si scappa!\p");
static const u8 sText_AttackerCantEscape[] = _("{B_ATK_NAME_WITH_PREFIX}\nnon può scappare!");
static const u8 sText_HitXTimes[] = _("Colpi subiti: {B_BUFF1}!");
static const u8 sText_PkmnFellAsleep[] = _("{B_EFF_NAME_WITH_PREFIX}\nsè addormentato!");
static const u8 sText_PkmnMadeSleep[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\naddormenta {B_EFF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnAlreadyAsleep[] = _("{B_DEF_NAME_WITH_PREFIX} sta già dormendo!");
static const u8 sText_PkmnAlreadyAsleep2[] = _("{B_ATK_NAME_WITH_PREFIX} sta già dormendo!");
static const u8 sText_PkmnWasntAffected[] = _("{B_DEF_NAME_WITH_PREFIX} è incolume!");
static const u8 sText_PkmnWasPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} è stato \navvelenato!");
static const u8 sText_PkmnPoisonedBy[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\navvelena {B_EFF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnHurtByPoison[] = _("Il veleno ha effetto\nsu {B_ATK_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnAlreadyPoisoned[] = _("{B_DEF_NAME_WITH_PREFIX} è già\navvelenato.");
static const u8 sText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX}\nè iperavvelenato!");
static const u8 sText_PkmnEnergyDrained[] = _("Viene prelevata energia\nda {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} è stato \nscottato!");
static const u8 sText_PkmnBurnedBy[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nscotta {B_EFF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} soffre\nper la scottatura!");
static const u8 sText_PkmnAlreadyHasBurn[] = _("{B_DEF_NAME_WITH_PREFIX} è già scottato.");
static const u8 sText_PkmnWasFrozen[] = _("{B_EFF_NAME_WITH_PREFIX} è stato\ncongelato!");
static const u8 sText_PkmnFrozenBy[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\ncongela {B_EFF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnIsFrozen[] = _("{B_ATK_NAME_WITH_PREFIX} è congelato!");
static const u8 sText_PkmnWasDefrosted[] = _("{B_DEF_NAME_WITH_PREFIX} è stato\nscongelato!");
static const u8 sText_PkmnWasDefrosted2[] = _("{B_ATK_NAME_WITH_PREFIX} è stato\nscongelato!");
static const u8 sText_PkmnWasDefrostedBy[] = _("{B_ATK_NAME_WITH_PREFIX} è stato\nscongelato da {B_CURRENT_MOVE}!");
static const u8 sText_PkmnWasParalyzed[] = _("{B_EFF_NAME_WITH_PREFIX} è stato\nparalizzato!\lForse non riuscirà ad attaccare!");
static const u8 sText_PkmnWasParalyzedBy[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nparalizza {B_EFF_NAME_WITH_PREFIX}!\lForse non riuscirà ad attaccare!");
static const u8 sText_PkmnIsParalyzed[] = _("{B_ATK_NAME_WITH_PREFIX} è paralizzato!\nNon può attaccare!");
static const u8 sText_PkmnIsAlreadyParalyzed[] = _("{B_DEF_NAME_WITH_PREFIX}\nè già paralizzato!");
static const u8 sText_PkmnHealedParalysis[] = _("{B_DEF_NAME_WITH_PREFIX}\nè guarito dalla paralisi!");
static const u8 sText_PkmnDreamEaten[] = _("Mangia il sogno di\n{B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_StatsWontIncrease[] = _("Non aumenta\n{B_BUFF1} di {B_ATK_NAME_WITH_PREFIX}.");
static const u8 sText_StatsWontDecrease[] = _("Non diminuisce \n{B_BUFF1} di {B_DEF_NAME_WITH_PREFIX}.");
static const u8 sText_TeamStoppedWorking[] = _("{B_BUFF1} della tua squadra\nnon funziona!");
static const u8 sText_FoeStoppedWorking[] = _("{B_BUFF1} dellavversario\nnon funziona!");
static const u8 sText_PkmnIsConfused[] = _("{B_ATK_NAME_WITH_PREFIX} è confuso!");
static const u8 sText_PkmnHealedConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} \nnon è più confuso!");
static const u8 sText_PkmnWasConfused[] = _("{B_EFF_NAME_WITH_PREFIX} è stato confuso!");
static const u8 sText_PkmnAlreadyConfused[] = _("{B_DEF_NAME_WITH_PREFIX} è già confuso!");
static const u8 sText_PkmnFellInLove[] = _("{B_DEF_NAME_WITH_PREFIX} è innamorato!");
static const u8 sText_PkmnInLove[] = _("{B_ATK_NAME_WITH_PREFIX} è innamorato\ndi {B_SCR_ACTIVE_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnImmobilizedByLove[] = _("Linnamoramento impedisce\na {B_ATK_NAME_WITH_PREFIX} di attaccare!");
static const u8 sText_PkmnBlownAway[] = _("{B_DEF_NAME_WITH_PREFIX} è spazzato via!");
static const u8 sText_PkmnChangedType[] = _("{B_ATK_NAME_WITH_PREFIX} si trasforma\nnel tipo {B_BUFF1}!");
static const u8 sText_PkmnFlinched[] = _("{B_ATK_NAME_WITH_PREFIX} tentenna!");
static const u8 sText_PkmnRegainedHealth[] = _("{B_DEF_NAME_WITH_PREFIX} sè ripreso!");
static const u8 sText_PkmnHPFull[] = _("{B_DEF_NAME_WITH_PREFIX} ha tutti i PS!");
static const u8 sText_PkmnRaisedSpDef[] = _("{B_CURRENT_MOVE} del POKéMON {B_ATK_PREFIX2}\naumenta la DIF. SP.!");
static const u8 sText_PkmnRaisedSpDefALittle[] = _("{B_CURRENT_MOVE} del POKéMON {B_ATK_PREFIX2}\naumenta un po la DIF. SP.!");
static const u8 sText_PkmnRaisedDef[] = _("{B_CURRENT_MOVE} del POKéMON {B_ATK_PREFIX2}\naumenta la DIFESA!");
static const u8 sText_PkmnRaisedDefALittle[] = _("{B_CURRENT_MOVE} del POKéMON {B_ATK_PREFIX2}\naumenta un po la DIFESA!");
static const u8 sText_PkmnCoveredByVeil[] = _("Un velo ricopre la squadra\ndel POKéMON {B_ATK_PREFIX2}!");
static const u8 sText_PkmnUsedSafeguard[] = _("SALVAGUARDIA protegge\nla squadra di {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnSafeguardExpired[] = _("Cade SALVAGUARDIA della\nsquadra del POKéMON {B_ATK_PREFIX3}!");
static const u8 sText_PkmnWentToSleep[] = _("{B_ATK_NAME_WITH_PREFIX} va a dormire!");
static const u8 sText_PkmnSleptHealthy[] = _("{B_ATK_NAME_WITH_PREFIX}\ndorme e si riprende!");
static const u8 sText_PkmnWhippedWhirlwind[] = _("{B_ATK_NAME_WITH_PREFIX}\ngenera un turbine!");
static const u8 sText_PkmnTookSunlight[] = _("{B_ATK_NAME_WITH_PREFIX} assorbe la luce!");
static const u8 sText_PkmnLoweredHead[] = _("{B_ATK_NAME_WITH_PREFIX} \nabbassa la testa!");
static const u8 sText_PkmnIsGlowing[] = _("{B_ATK_NAME_WITH_PREFIX} sta brillando!");
static const u8 sText_PkmnFlewHigh[] = _("{B_ATK_NAME_WITH_PREFIX} vola in alto!");
static const u8 sText_PkmnDugHole[] = _("{B_ATK_NAME_WITH_PREFIX} scava una fossa!");
static const u8 sText_PkmnHidUnderwater[] = _("{B_ATK_NAME_WITH_PREFIX} \nsparisce sottacqua!");
static const u8 sText_PkmnSprangUp[] = _("{B_ATK_NAME_WITH_PREFIX} salta fuori!");
static const u8 sText_PkmnSqueezedByBind[] = _("{B_ATK_NAME_WITH_PREFIX} stritola\n{B_DEF_NAME_WITH_PREFIX} con LEGATUTTO!");
static const u8 sText_PkmnTrappedInVortex[] = _("{B_DEF_NAME_WITH_PREFIX} è intrappolato\nnel vortice!");
static const u8 sText_PkmnTrappedBySandTomb[] = _("{B_DEF_NAME_WITH_PREFIX} è intrappolato\nda SABBIOTOMBA!");
static const u8 sText_PkmnWrappedBy[] = _("{B_ATK_NAME_WITH_PREFIX} usa AVVOLGI-\nBOTTA su {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnClamped[] = _("{B_ATK_NAME_WITH_PREFIX} usa\nTENAGLIA su {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnHurtBy[] = _("{B_ATK_NAME_WITH_PREFIX} è ferito\nda {B_BUFF1}!");
static const u8 sText_PkmnFreedFrom[] = _("{B_ATK_NAME_WITH_PREFIX} è liberato\nda {B_BUFF1}!");
static const u8 sText_PkmnCrashed[] = _("{B_ATK_NAME_WITH_PREFIX}\nsi sbilancia e si schianta!");
const u8 gText_PkmnShroudedInMist[] = _("Il POKéMON {B_ATK_PREFIX2}\nè avvolto dalla NEBBIA!");
static const u8 sText_PkmnProtectedByMist[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}\nè protetto dalla NEBBIA!");
const u8 gText_PkmnGettingPumped[] = _("{B_ATK_NAME_WITH_PREFIX} si gonfia!");
static const u8 sText_PkmnHitWithRecoil[] = _("{B_ATK_NAME_WITH_PREFIX}\nsubisce il contraccolpo!");
static const u8 sText_PkmnProtectedItself2[] = _("{B_ATK_NAME_WITH_PREFIX} è pronto a \nproteggersi!");
static const u8 sText_PkmnBuffetedBySandstorm[] = _("{B_ATK_NAME_WITH_PREFIX} è colpito\nda una tempesta di sabbia!");
static const u8 sText_PkmnPeltedByHail[] = _("{B_ATK_NAME_WITH_PREFIX} è colpito\nda GRANDINE!");
static const u8 sText_PkmnsXWoreOff[] = _("Finito leffetto di\n{B_BUFF1} del POKéMON {B_ATK_PREFIX1}!");
static const u8 sText_PkmnSeeded[] = _("{B_DEF_NAME_WITH_PREFIX} è pieno di semi!");
static const u8 sText_PkmnEvadedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} schiva lattacco!");
static const u8 sText_PkmnSappedByLeechSeed[] = _("PARASSISEME sottrae energia\na {B_ATK_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnFastAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} dorme.");
static const u8 sText_PkmnWokeUp[] = _("{B_ATK_NAME_WITH_PREFIX} si è svegliato!");
static const u8 sText_PkmnUproarKeptAwake[] = _("Ma BARAONDA di\n{B_SCR_ACTIVE_NAME_WITH_PREFIX} lo tiene sveglio!");
static const u8 sText_PkmnWokeUpInUproar[] = _("{B_ATK_NAME_WITH_PREFIX} si sveglia\na causa di BARAONDA!");
static const u8 sText_PkmnCausedUproar[] = _("{B_ATK_NAME_WITH_PREFIX} scatena\nuna BARAONDA!");
static const u8 sText_PkmnMakingUproar[] = _("{B_ATK_NAME_WITH_PREFIX} sta facendo\nuna BARAONDA!");
static const u8 sText_PkmnCalmedDown[] = _("{B_ATK_NAME_WITH_PREFIX} si calma.");
static const u8 sText_PkmnCantSleepInUproar[] = _("Ma {B_DEF_NAME_WITH_PREFIX} non riesce\na dormire con BARAONDA!");
static const u8 sText_PkmnStockpiled[] = _("{B_ATK_NAME_WITH_PREFIX} usa ACCUMULO:\n{B_BUFF1}!");
static const u8 sText_PkmnCantStockpile[] = _("{B_ATK_NAME_WITH_PREFIX} non può più\nusare ACCUMULO!");
static const u8 sText_PkmnCantSleepInUproar2[] = _("Ma {B_DEF_NAME_WITH_PREFIX} non riesce\na dormire con BARAONDA!");
static const u8 sText_UproarKeptPkmnAwake[] = _("Ma BARAONDA di\n{B_DEF_NAME_WITH_PREFIX} lo tiene sveglio!");
static const u8 sText_PkmnStayedAwakeUsing[] = _("{B_DEF_NAME_WITH_PREFIX} rimane sveglio\ngrazie a {B_DEF_ABILITY}!");
static const u8 sText_PkmnStoringEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} \naccumula energia!");
static const u8 sText_PkmnUnleashedEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} libera energia!");
static const u8 sText_PkmnFatigueConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} è confuso\nper la fatica!");
static const u8 sText_PlayerPickedUpMoney[] = _("{B_PLAYER_NAME} raccoglie ¥{B_BUFF1}!\p");
static const u8 sText_PkmnUnaffected[] = _("{B_DEF_NAME_WITH_PREFIX} è incolume!");
static const u8 sText_PkmnTransformedInto[] = _("{B_ATK_NAME_WITH_PREFIX} si trasforma\nin {B_BUFF1}!");
static const u8 sText_PkmnMadeSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} crea \nun SOSTITUTO!");
static const u8 sText_PkmnHasSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} ha già\nun SOSTITUTO!");
static const u8 sText_SubstituteDamaged[] = _("Il SOSTITUTO è colpito\nal posto di {B_DEF_NAME_WITH_PREFIX}!\p");
static const u8 sText_PkmnSubstituteFaded[] = _("Il SOSTITUTO di\n{B_DEF_NAME_WITH_PREFIX} svanisce!\p");
static const u8 sText_PkmnMustRecharge[] = _("{B_ATK_NAME_WITH_PREFIX} deve ricaricarsi!");
static const u8 sText_PkmnRageBuilding[] = _("Cresce lIRA di\n{B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnMoveWasDisabled[] = _("INIBITORE ha messo {B_BUFF1}\ndi {B_DEF_NAME_WITH_PREFIX} fuori uso!");
static const u8 sText_PkmnMoveDisabledNoMore[] = _("Termina leffetto di INIBITORE\nsu {B_ATK_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnGotEncore[] = _("{B_DEF_NAME_WITH_PREFIX} è colpito\nda RIPETI!");
static const u8 sText_PkmnEncoreEnded[] = _("Termina leffetto di RIPETI\nsu {B_ATK_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnTookAim[] = _("{B_ATK_NAME_WITH_PREFIX} prende\nla mira su {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnSketchedMove[] = _("{B_ATK_NAME_WITH_PREFIX} disegna\nuno SCHIZZO di {B_BUFF1}!");
static const u8 sText_PkmnTryingToTakeFoe[] = _("{B_ATK_NAME_WITH_PREFIX} tenta di\ntrascinare con sé lavversario!");
static const u8 sText_PkmnTookFoe[] = _("{B_DEF_NAME_WITH_PREFIX} trascina\ncon sé {B_ATK_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnReducedPP[] = _("{B_BUFF1} di {B_DEF_NAME_WITH_PREFIX}\ncala di {B_BUFF2}!");
static const u8 sText_PkmnStoleItem[] = _("{B_ATK_NAME_WITH_PREFIX} ruba\n{B_LAST_ITEM} di\l{B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_TargetCantEscapeNow[] = _("{B_DEF_NAME_WITH_PREFIX} \nnon può scappare!");
static const u8 sText_PkmnFellIntoNightmare[] = _("{B_DEF_NAME_WITH_PREFIX} ha un INCUBO!");
static const u8 sText_PkmnLockedInNightmare[] = _("{B_ATK_NAME_WITH_PREFIX} è\nintrappolato in un INCUBO!");
static const u8 sText_PkmnLaidCurse[] = _("{B_ATK_NAME_WITH_PREFIX} riduce i suoi PS\nper lanciare una MALEDIZIONE\lsu {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnAfflictedByCurse[] = _("{B_ATK_NAME_WITH_PREFIX} è colpito\ndalla MALEDIZIONE!");
static const u8 sText_SpikesScattered[] = _("Ci sono PUNTE ovunque!");
static const u8 sText_PkmnHurtBySpikes[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}\nsoffre per le PUNTE!");
static const u8 sText_PkmnIdentified[] = _("{B_ATK_NAME_WITH_PREFIX} identifica\n{B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnPerishCountFell[] = _("ULTIMOCANTO di\n{B_ATK_NAME_WITH_PREFIX}: meno {B_BUFF1}!");
static const u8 sText_PkmnBracedItself[] = _("{B_ATK_NAME_WITH_PREFIX} si rinvigorisce!");
static const u8 sText_PkmnEnduredHit[] = _("{B_DEF_NAME_WITH_PREFIX} RESISTE!");
static const u8 sText_MagnitudeStrength[] = _("MAGNITUDO {B_BUFF1}!");
static const u8 sText_PkmnCutHPMaxedAttack[] = _("{B_ATK_NAME_WITH_PREFIX} riduce i suoi PS\nper massimizzare lATTACCO!");
static const u8 sText_PkmnCopiedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} copia modifiche\nstatistiche di {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnGotFree[] = _("{B_ATK_NAME_WITH_PREFIX} si libera da\n{B_BUFF1} di\l{B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnShedLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX}\nsparge PARASSISEME!");
static const u8 sText_PkmnBlewAwaySpikes[] = _("{B_ATK_NAME_WITH_PREFIX}\nspazza via le PUNTE!");
static const u8 sText_PkmnFledFromBattle[] = _("{B_ATK_NAME_WITH_PREFIX} se la dà a\ngambe!");
static const u8 sText_PkmnForesawAttack[] = _("{B_ATK_NAME_WITH_PREFIX} \nprevede lattacco!");
static const u8 sText_PkmnTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX} subisce\n{B_BUFF1}!");
static const u8 sText_PkmnChoseXAsDestiny[] = _("{B_ATK_NAME_WITH_PREFIX} sceglie\n{B_CURRENT_MOVE} come suo destino!");
static const u8 sText_PkmnAttack[] = _("Attacco di {B_BUFF1}!");
static const u8 sText_PkmnCenterAttention[] = _("{B_ATK_NAME_WITH_PREFIX} è al\ncentro dellattenzione!");
static const u8 sText_PkmnChargingPower[] = _("{B_ATK_NAME_WITH_PREFIX}\ninizia a caricarsi!");
static const u8 sText_NaturePowerTurnedInto[] = _("NATURFORZA si trasforma in\n{B_CURRENT_MOVE}!");
static const u8 sText_PkmnStatusNormal[] = _("Lo stato di {B_ATK_NAME_WITH_PREFIX}\ntorna normale!");
static const u8 sText_PkmnSubjectedToTorment[] = _("{B_DEF_NAME_WITH_PREFIX} subisce\nlATTACCALITE!");
static const u8 sText_PkmnTighteningFocus[] = _("{B_ATK_NAME_WITH_PREFIX} \nrestringe la mira!");
static const u8 sText_PkmnFellForTaunt[] = _("{B_DEF_NAME_WITH_PREFIX}\nè in balia di PROVOCAZIONE!");
static const u8 sText_PkmnReadyToHelp[] = _("{B_ATK_NAME_WITH_PREFIX} è pronto ad\naiutare {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnSwitchedItems[] = _("{B_ATK_NAME_WITH_PREFIX} scambia\nlo strumento!");
static const u8 sText_PkmnObtainedX[] = _("{B_ATK_NAME_WITH_PREFIX} ottiene\n{B_BUFF1}!");
static const u8 sText_PkmnObtainedX2[] = _("{B_DEF_NAME_WITH_PREFIX} ottiene\n{B_BUFF2}!");
static const u8 sText_PkmnObtainedXYObtainedZ[] = _("{B_ATK_NAME_WITH_PREFIX} ottiene\n{B_BUFF1}!\p{B_DEF_NAME_WITH_PREFIX} ottiene\n{B_BUFF2}!");
static const u8 sText_PkmnCopiedFoe[] = _("{B_ATK_NAME_WITH_PREFIX} copia\n{B_DEF_ABILITY} di\l{B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnMadeWish[] = _("{B_ATK_NAME_WITH_PREFIX}\nesprime un DESIDERIO!");
static const u8 sText_PkmnWishCameTrue[] = _("Il DESIDERIO di {B_BUFF1}\nsi avvera!");
static const u8 sText_PkmnPlantedRoots[] = _("{B_ATK_NAME_WITH_PREFIX} pianta le radici!");
static const u8 sText_PkmnAbsorbedNutrients[] = _("{B_ATK_NAME_WITH_PREFIX} assorbe\nsostanze nutritive con le radici!");
static const u8 sText_PkmnAnchoredItself[] = _("{B_DEF_NAME_WITH_PREFIX} è ancorato\nal suolo grazie alle radici!");
static const u8 sText_PkmnWasMadeDrowsy[] = _("{B_ATK_NAME_WITH_PREFIX} fa\nassopire {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnKnockedOff[] = _("{B_ATK_NAME_WITH_PREFIX} blocca\n{B_LAST_ITEM} di\l{B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnSwappedAbilities[] = _("{B_ATK_NAME_WITH_PREFIX} scambia abilità!");
static const u8 sText_PkmnSealedOpponentMove[] = _("{B_ATK_NAME_WITH_PREFIX} blocca una\no più mosse dellavversario!");
static const u8 sText_PkmnWantsGrudge[] = _("{B_ATK_NAME_WITH_PREFIX} serba\nRANCORE allavversario!");
static const u8 sText_PkmnLostPPGrudge[] = _("{B_BUFF1} di {B_ATK_NAME_WITH_PREFIX}\nperde tutti i PP\la causa di RANCORE!");
static const u8 sText_PkmnShroudedItself[] = _("{B_ATK_NAME_WITH_PREFIX} si avvolge\nin {B_CURRENT_MOVE}!");
static const u8 sText_PkmnMoveBounced[] = _("{B_CURRENT_MOVE} di {B_ATK_NAME_WITH_PREFIX}\nrimbalza a causa di MAGIVELO!");
static const u8 sText_PkmnWaitsForTarget[] = _("{B_ATK_NAME_WITH_PREFIX} aspetta\nla mossa dellavversario!");
static const u8 sText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} ruba la mossa di\n{B_SCR_ACTIVE_NAME_WITH_PREFIX} con SCIPPO!");
static const u8 sText_ElectricityWeakened[] = _("La potenza dellelettricità\nè stata indebolita!");
static const u8 sText_FireWeakened[] = _("La potenza del fuoco\nè stata indebolita!");
static const u8 sText_XFoundOneY[] = _("{B_ATK_NAME_WITH_PREFIX}\ntrova {B_LAST_ITEM}!");
static const u8 sText_SoothingAroma[] = _("La zona è pervasa da\nun piacevole profumo!");
static const u8 sText_ItemsCantBeUsedNow[] = _("Impossibile usare strumenti qui.{PAUSE 64}");
static const u8 sText_ForXCommaYZ[] = _("Per {B_SCR_ACTIVE_NAME_WITH_PREFIX},\nla {B_LAST_ITEM} {B_BUFF1}");
static const u8 sText_PkmnUsedXToGetPumped[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} usa\n{B_LAST_ITEM}: aumentano\li brutti colpi!");
static const u8 sText_PkmnLostFocus[] = _("{B_ATK_NAME_WITH_PREFIX} perde la mira\ne rimane immobile!");
static const u8 sText_PkmnWasDraggedOut[] = _("{B_DEF_NAME_WITH_PREFIX} è tirato dentro!\p");
static const u8 sText_TheWallShattered[] = _("La barriera si frantuma!");
static const u8 sText_ButNoEffect[] = _("Ma è inefficace!");
static const u8 sText_PkmnHasNoMovesLeft[] = _("{B_ACTIVE_NAME_WITH_PREFIX}\nnon ha più mosse!\p");
static const u8 sText_PkmnMoveIsDisabled[] = _("A causa di INIBITORE, {B_CURRENT_MOVE}\ndi {B_ACTIVE_NAME_WITH_PREFIX} è fuori uso!\p");
static const u8 sText_PkmnCantUseMoveTorment[] = _("{B_ACTIVE_NAME_WITH_PREFIX} non può usare la\nstessa mossa 2 volte per\llATTACCALITE!\p");
static const u8 sText_PkmnCantUseMoveTaunt[] = _("{B_ACTIVE_NAME_WITH_PREFIX} non può usare\n{B_CURRENT_MOVE} dopo PROVOCAZIONE!\p");
static const u8 sText_PkmnCantUseMoveSealed[] = _("{B_ACTIVE_NAME_WITH_PREFIX} non può usare\nla mossa bloccata {B_CURRENT_MOVE}!\p");
static const u8 sText_PkmnMadeItRain[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nprovoca la pioggia!");
static const u8 sText_PkmnRaisedSpeed[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\naumenta la VELOCITÀ!");
static const u8 sText_PkmnProtectedBy[] = _("{B_DEF_NAME_WITH_PREFIX} è protetto\nda {B_DEF_ABILITY}!");
static const u8 sText_PkmnPreventsUsage[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nimpedisce a {B_ATK_NAME_WITH_PREFIX}\ldi usare {B_CURRENT_MOVE}!");
static const u8 sText_PkmnRestoredHPUsing[] = _("{B_DEF_NAME_WITH_PREFIX} ricarica PS\nusando {B_DEF_ABILITY}!");
static const u8 sText_PkmnsXMadeYUseless[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nneutralizza {B_CURRENT_MOVE}!");
static const u8 sText_PkmnChangedTypeWith[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nlo ha reso di tipo {B_BUFF1}!");
static const u8 sText_PkmnPreventsParalysisWith[] = _("{B_DEF_ABILITY} di {B_EFF_NAME_WITH_PREFIX}\npreviene la paralisi!");
static const u8 sText_PkmnPreventsRomanceWith[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\npreviene linnamoramento!");
static const u8 sText_PkmnPreventsPoisoningWith[] = _("{B_DEF_ABILITY} di {B_EFF_NAME_WITH_PREFIX}\npreviene lavvelenamento!");
static const u8 sText_PkmnPreventsConfusionWith[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\npreviene la confusione!");
static const u8 sText_PkmnRaisedFirePowerWith[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\naumenta la potenza del tipo FUOCO!");
static const u8 sText_PkmnAnchorsItselfWith[] = _("{B_DEF_NAME_WITH_PREFIX} è ancorato\nal suolo grazie a {B_DEF_ABILITY}!");
static const u8 sText_PkmnCutsAttackWith[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nriduce ATT. di {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnPreventsStatLossWith[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nevita calo delle statistiche!");
static const u8 sText_PkmnHurtsWith[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\ncolpisce {B_ATK_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnTraced[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} TRACCIA\n{B_BUFF2} di\l{B_BUFF1}!");
static const u8 sText_PkmnsXPreventsBurns[] = _("{B_EFF_ABILITY} di {B_EFF_NAME_WITH_PREFIX}\npreviene le scottature!");
static const u8 sText_PkmnsXBlocksY[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nblocca {B_CURRENT_MOVE}!");
static const u8 sText_PkmnsXBlocksY2[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nblocca {B_CURRENT_MOVE}!");
static const u8 sText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_ABILITY} di {B_ATK_NAME_WITH_PREFIX}\nristabilisce parte dei PS!");
static const u8 sText_PkmnsXWhippedUpSandstorm[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\ngenera una tempesta di sabbia!");
static const u8 sText_PkmnsXIntensifiedSun[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nintensifica i raggi solari!");
static const u8 sText_PkmnsXPreventsYLoss[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nevita calo di {B_BUFF1}!");
static const u8 sText_PkmnsXInfatuatedY[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nfa infatuare {B_ATK_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnsXMadeYIneffective[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nrende inefficace {B_CURRENT_MOVE}!");
static const u8 sText_PkmnsXCuredYProblem[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\ncura il problema di {B_BUFF1}!");
static const u8 sText_ItSuckedLiquidOoze[] = _("Succhia la MELMA!");
static const u8 sText_PkmnTransformed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} si trasforma!");
static const u8 sText_PkmnsXTookAttack[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nriceve lattacco!");
const u8 gText_PkmnsXPreventsSwitching[] = _("{B_LAST_ABILITY} di {B_BUFF1}\nevita lo scambio!\p");
static const u8 sText_PreventedFromWorking[] = _("{B_DEF_ABILITY} di {B_DEF_NAME_WITH_PREFIX}\nblocca {B_BUFF1}\ldi {B_SCR_ACTIVE_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnsXMadeItIneffective[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nlha neutralizzato!");
static const u8 sText_PkmnsXPreventsFlinching[] = _("{B_EFF_ABILITY} di {B_EFF_NAME_WITH_PREFIX}\nevita il tentennamento!");
static const u8 sText_PkmnsXPreventsYsZ[] = _("{B_ATK_ABILITY} di {B_ATK_NAME_WITH_PREFIX}\nblocca {B_DEF_ABILITY}\ldi {B_DEF_NAME_WITH_PREFIX}!");
static const u8 sText_PkmnsXCuredItsYProblem[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\ncura il problema di {B_BUFF1}!");
static const u8 sText_PkmnsXHadNoEffectOnY[] = _("{B_SCR_ACTIVE_ABILITY} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nnon agisce su {B_EFF_NAME_WITH_PREFIX}!");
static const u8 sText_StatSharply[] = _("sale di molto!");
const u8 gText_StatRose[] = _("sale!");
static const u8 sText_StatHarshly[] = _("cala a picco!");
static const u8 sText_StatFell[] = _("cala!");
static const u8 sText_AttackersStatRose[] = _("Ehi, {B_BUFF1} di \n{B_ATK_NAME_WITH_PREFIX} {B_BUFF2}");
const u8 gText_DefendersStatRose[] = _("Ehi, {B_BUFF1} di\n{B_DEF_NAME_WITH_PREFIX} {B_BUFF2}");
static const u8 sText_UsingItemTheStatOfPkmnRose[] = _("Con {B_LAST_ITEM}, {B_BUFF1} di\n{B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}");
static const u8 sText_AttackersStatFell[] = _("{B_BUFF1} di {B_ATK_NAME_WITH_PREFIX}\n{B_BUFF2}");
static const u8 sText_DefendersStatFell[] = _("Ehi, {B_BUFF1} di\n{B_DEF_NAME_WITH_PREFIX} {B_BUFF2}");
static const u8 sText_StatsWontIncrease2[] = _("Statistiche di {B_ATK_NAME_WITH_PREFIX}\nnon aumenteranno!");
static const u8 sText_StatsWontDecrease2[] = _("Statistiche di {B_DEF_NAME_WITH_PREFIX}\nnon caleranno!");
static const u8 sText_CriticalHit[] = _("Brutto colpo!");
static const u8 sText_OneHitKO[] = _("KO in un attacco!");
static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2 e{PAUSE 15}… {PAUSE 15}… {PAUSE 15}…{PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1} puf!\p");
static const u8 sText_AndEllipsis[] = _("Al suo posto…\p");
static const u8 sText_HMMovesCantBeForgotten[] = _("Ora è impossibile\nscordare mosse MN.\p");
static const u8 sText_NotVeryEffective[] = _("Non è molto efficace…");
static const u8 sText_SuperEffective[] = _("È superefficace!");
static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_FLEE}Scampato pericolo!\p");
static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fugge\nusando {B_LAST_ITEM}!\p");
static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fugge\nusando {B_ATK_ABILITY}!\p");
static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_FLEE}{B_BUFF1} selvatico fugge!");
static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Hai avuto la meglio su\n{B_LINK_OPPONENT1_NAME}!");
static const u8 sText_TwoLinkTrainersDefeated[] = _("{B_LINK_OPPONENT2_NAME} e {B_LINK_OPPONENT1_NAME} hanno\nperso la sfida!");
static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("{B_LINK_OPPONENT1_NAME}\nha vinto la sfida!");
static const u8 sText_PlayerLostToTwo[] = _("{B_LINK_OPPONENT2_NAME} e {B_LINK_OPPONENT1_NAME}\nhanno vinto la sfida!");
static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("La sfida contro {B_LINK_OPPONENT1_NAME}\nsi è conclusa in parità!");
static const u8 sText_PlayerBattledToDrawVsTwo[] = _("La sfida contro {B_LINK_OPPONENT2_NAME} e\n{B_LINK_OPPONENT1_NAME} si è conclusa in\lparità!");
static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} se lè data a gambe!");
static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} e\n{B_LINK_OPPONENT2_NAME} se la sono data a gambe!");
static const u8 sText_NoRunningFromTrainers[] = _("Non puoi sottrarti alla\nlotta con un ALLENATORE!\p");
static const u8 sText_CantEscape[] = _("Non si scappa!\p");
static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Non lasciarmi qui così!\p");
static const u8 sText_ButNothingHappened[] = _("Ma non succede nulla!");
static const u8 sText_ButItFailed[] = _("Ma fallisce!");
static const u8 sText_ItHurtConfusion[] = _("È così confuso da\ncolpirsi da solo!");
static const u8 sText_MirrorMoveFailed[] = _("La SPECULMOSSA ha fallito!");
static const u8 sText_StartedToRain[] = _("Inizia a piovere!");
static const u8 sText_DownpourStarted[] = _("Inizia un acquazzone!");
static const u8 sText_RainContinues[] = _("Continua a piovere.");
static const u8 sText_DownpourContinues[] = _("Lacquazzone continua.");
static const u8 sText_RainStopped[] = _("Ha smesso di piovere.");
static const u8 sText_SandstormBrewed[] = _("Sta arrivando una tempesta di sabbia!");
static const u8 sText_SandstormRages[] = _("La tempesta di sabbia imperversa!");
static const u8 sText_SandstormSubsided[] = _("La tempesta di sabbia cessa.");
static const u8 sText_SunlightGotBright[] = _("La luce solare diventa intensa!");
static const u8 sText_SunlightStrong[] = _("La luce solare è fortissima!");
static const u8 sText_SunlightFaded[] = _("La luce solare torna normale!");
static const u8 sText_StartedHail[] = _("Inizia a grandinare!");
static const u8 sText_HailContinues[] = _("Continua a grandinare.");
static const u8 sText_HailStopped[] = _("Ha smesso di grandinare.");
static const u8 sText_FailedToSpitUp[] = _("Ma SFOGHENERGIA\nfallisce!");
static const u8 sText_FailedToSwallow[] = _("Ma INTROENERGIA\nfallisce!");
static const u8 sText_WindBecameHeatWave[] = _("Il vento si è trasformato in\nONDACALDA!");
static const u8 sText_StatChangesGone[] = _("Eliminate tutte le modifiche\ndelle statistiche!");
static const u8 sText_CoinsScattered[] = _("Ci sono monete sparse ovunque!");
static const u8 sText_TooWeakForSubstitute[] = _("Troppo debole! Non può creare\nun SOSTITUTO!");
static const u8 sText_SharedPain[] = _("I POKéMON condividono\ni PS!");
static const u8 sText_BellChimed[] = _("Suona la campana!");
static const u8 sText_FaintInThree[] = _("Tutti i POKéMON che la ascoltano\nsaranno esausti in tre turni!");
static const u8 sText_NoPPLeft[] = _("Non ha più PP per\nquesta mossa!\p");
static const u8 sText_ButNoPPLeft[] = _("Ma non ha più PP per\nquesta mossa!");
static const u8 sText_PkmnIgnoresAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} ignora gli\nordini, sta dormendo!");
static const u8 sText_PkmnIgnoredOrders[] = _("{B_ATK_NAME_WITH_PREFIX} ignora gli\nordini!");
static const u8 sText_PkmnBeganToNap[] = _("{B_ATK_NAME_WITH_PREFIX} fa un riposino!");
static const u8 sText_PkmnLoafing[] = _("{B_ATK_NAME_WITH_PREFIX} sta ciondolando!");
static const u8 sText_PkmnWontObey[] = _("{B_ATK_NAME_WITH_PREFIX} non obbedisce!");
static const u8 sText_PkmnTurnedAway[] = _("{B_ATK_NAME_WITH_PREFIX} disobbedisce!");
static const u8 sText_PkmnPretendNotNotice[] = _("{B_ATK_NAME_WITH_PREFIX} fa finta \ndi niente!");
static const u8 sText_EnemyAboutToSwitchPkmn[] = _("La prossima scelta di {B_TRAINER1_NAME},\n{B_TRAINER1_CLASS}, sarà {B_BUFF2}.\p{B_PLAYER_NAME}, vuoi cambiare\nPOKéMON?");
static const u8 sText_PkmnLearnedMove2[] = _("{B_ATK_NAME_WITH_PREFIX} impara {B_BUFF1}!");
static const u8 sText_PlayerDefeatedLinkTrainerTrainer1[] = _("Hai avuto la meglio su\n{B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!\p");
static const u8 sText_CreptCloser[] = _("{B_PLAYER_NAME} si avvicina a\n{B_OPPONENT_MON1_NAME}!");
static const u8 sText_CantGetCloser[] = _("{B_PLAYER_NAME} non può avvicinarsi ancora!");
static const u8 sText_PkmnWatchingCarefully[] = _("{B_OPPONENT_MON1_NAME} guarda\nattentamente!");
static const u8 sText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} guarda con\ncuriosità la {B_BUFF1}!");
static const u8 sText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} è ammaliato\ndalla {B_BUFF1}!");
static const u8 sText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} ignora completamente\nla {B_BUFF1}!");
static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} lancia una {POKEMELLA}\na {B_OPPONENT_MON1_NAME}!");
static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_DING_DONG}ANNUNCIO: Hai finito tutte le\nSAFARI BALL! Fine del gioco!\p");
static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p");
static const u8 sText_WildPkmnAppeared[] = _("Appare {B_OPPONENT_MON1_NAME} selvatico!\p");
static const u8 sText_LegendaryPkmnAppeared[] = _("Appare {B_OPPONENT_MON1_NAME} selvatico!\p");
static const u8 sText_WildPkmnAppearedPause[] = _("Appare {B_OPPONENT_MON1_NAME} selvatico!{PAUSE 127}");
static const u8 sText_TwoWildPkmnAppeared[] = _("Appaiono {B_OPPONENT_MON2_NAME} e\n{B_OPPONENT_MON1_NAME} selvatici!\p");
static const u8 sText_Trainer1WantsToBattle[] = _("Parte la sfida di\n{B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!\p");
static const u8 sText_LinkTrainerWantsToBattle[] = _("Parte la sfida di\n{B_LINK_OPPONENT1_NAME}!");
static const u8 sText_TwoLinkTrainersWantToBattle[] = _("Parte la sfida di\n{B_LINK_OPPONENT1_NAME} e {B_LINK_OPPONENT2_NAME}!");
static const u8 sText_Trainer1SentOutPkmn[] = _("È il turno di {B_OPPONENT_MON1_NAME}, mandato in\ncampo da {B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!");
static const u8 sText_Trainer1SentOutTwoPkmn[] = _("Ecco {B_OPPONENT_MON1_NAME} e {B_OPPONENT_MON2_NAME},\nmandati in campo da\l{B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!");
static const u8 sText_Trainer1SentOutPkmn2[] = _("È il turno di {B_BUFF1}, mandato in\ncampo da {B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!");
static const u8 sText_LinkTrainerSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} manda\nin campo {B_OPPONENT_MON1_NAME}!");
static const u8 sText_LinkTrainerSentOutTwoPkmn[] = _("{B_LINK_OPPONENT1_NAME} manda in campo\n{B_OPPONENT_MON1_NAME} e {B_OPPONENT_MON2_NAME}!");
static const u8 sText_TwoLinkTrainersSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} manda in campo\n{B_LINK_OPPONENT_MON1_NAME}!\p{B_LINK_OPPONENT2_NAME} manda in campo\n{B_LINK_OPPONENT_MON2_NAME}!");
static const u8 sText_LinkTrainerSentOutPkmn2[] = _("{B_LINK_OPPONENT1_NAME} manda\nin campo {B_BUFF1}!");
static const u8 sText_LinkTrainerMultiSentOutPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} manda\nin campo {B_BUFF1}!");
static const u8 sText_GoPkmn[] = _("Vai, {B_PLAYER_MON1_NAME}!");
static const u8 sText_GoTwoPkmn[] = _("Avanti, {B_PLAYER_MON1_NAME} e\n{B_PLAYER_MON2_NAME}!");
static const u8 sText_GoPkmn2[] = _("Vai, {B_BUFF1}!");
static const u8 sText_DoItPkmn[] = _("Dai, {B_BUFF1}!");
static const u8 sText_GoForItPkmn[] = _("Coraggio, {B_BUFF1}!");
static const u8 sText_YourFoesWeakGetEmPkmn[] = _("Nemico debole!\nForza, {B_BUFF1}!");
static const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_LINK_PARTNER_NAME} manda in campo\n{B_LINK_PLAYER_MON2_NAME}!\pVai, {B_LINK_PLAYER_MON1_NAME}!");
static const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, basta così!\nRientra!");
static const u8 sText_PkmnComeBack[] = _("{B_BUFF1}, rientra!");
static const u8 sText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nRientra!");
static const u8 sText_PkmnGoodComeBack[] = _("{B_BUFF1}, bene!\nRientra!");
static const u8 sText_Trainer1WithdrewPkmn[] = _("{B_BUFF1} è ritirato dalla lotta\nda {B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!");
static const u8 sText_LinkTrainer1WithdrewPkmn[] = _("{B_LINK_OPPONENT1_NAME} ritira\n{B_BUFF1}!");
static const u8 sText_LinkTrainer2WithdrewPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} ritira\n{B_BUFF1}!");
static const u8 sText_WildPkmnPrefix[] = _(" selvatico");
static const u8 sText_FoePkmnPrefix[] = _(" nemico");
static const u8 sText_EmptyString8[] = _("");
static const u8 sText_FoePkmnPrefix2[] = _("nemico");
static const u8 sText_AllyPkmnPrefix[] = _("amico");
static const u8 sText_FoePkmnPrefix3[] = _("nemico");
static const u8 sText_AllyPkmnPrefix2[] = _("amico");
static const u8 sText_FoePkmnPrefix4[] = _("nemico");
static const u8 sText_AllyPkmnPrefix3[] = _("amico");
static const u8 sText_AttackerUsedX[] = _("{B_ATK_NAME_WITH_PREFIX} usa\n{B_BUFF2}");
static const u8 sText_ExclamationMark[] = _("!");
static const u8 sText_ExclamationMark2[] = _("!");
static const u8 sText_ExclamationMark3[] = _("!");
static const u8 sText_ExclamationMark4[] = _("!");
static const u8 sText_ExclamationMark5[] = _("!");
static const u8 sText_HP2[] = _("PS");
static const u8 sText_Attack2[] = _("ATTACCO");
static const u8 sText_Defense2[] = _("DIFESA");
static const u8 sText_Speed[] = _("VELOC.");
static const u8 sText_SpAtk2[] = _("ATT. SP.");
static const u8 sText_SpDef2[] = _("DIF. SP.");
static const u8 sText_Accuracy[] = _("precisione");
static const u8 sText_Evasiveness[] = _("elusione");
#endif
const u8 * const gStatNamesTable[NUM_BATTLE_STATS] =
@@ -839,6 +1218,12 @@ static const u8 sText_PokeblockWasTooDry[] = _("était trop sèche!");
static const u8 sText_PokeblockWasTooSweet[] = _("était trop sucrée!");
static const u8 sText_PokeblockWasTooBitter[] = _("était trop amère!");
static const u8 sText_PokeblockWasTooSour[] = _("était trop acide!");
#elif ITALIAN
static const u8 sText_PokeblockWasTooSpicy[] = _("è troppo pepata!");
static const u8 sText_PokeblockWasTooDry[] = _("è troppo secca!");
static const u8 sText_PokeblockWasTooSweet[] = _("è troppo dolce!");
static const u8 sText_PokeblockWasTooBitter[] = _("è troppo amara!");
static const u8 sText_PokeblockWasTooSour[] = _("è troppo aspra!");
#endif
const u8 * const gPokeblockWasTooXStringTable[FLAVOR_COUNT] =
@@ -929,6 +1314,46 @@ static const u8 sText_ItemAllowsOnlyYMove[] = _("Avec {B_LAST_ITEM}, seule la ca
static const u8 sText_PkmnHungOnWithX[] = _("{B_DEF_NAME_WITH_PREFIX} tient bon grâce\nà {B_LAST_ITEM}!");
const u8 gText_EmptyString3[] = _("");
static const u8 sText_YouThrowABallNowRight[] = _("Il faut lancer une BALL, non?\nJe… je ferai de mon mieux!");
#elif ITALIAN
static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} usa {B_LAST_ITEM}!");
static const u8 sText_WallyUsedItem[] = _("LINO usa {B_LAST_ITEM}!");
static const u8 sText_Trainer1UsedItem[] = _("{B_LAST_ITEM} è lo strumento usato\nda {B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!");
static const u8 sText_TrainerBlockedBall[] = _("La BALL è stata bloccata!");
static const u8 sText_DontBeAThief[] = _("Non si ruba!");
static const u8 sText_ItDodgedBall[] = _("Ha schivato la BALL! Questo\nPOKéMON non può essere catturato!");
static const u8 sText_YouMissedPkmn[] = _("Ti è sfuggito il POKéMON!");
static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nIl POKéMON si è liberato!");
static const u8 sText_ItAppearedCaught[] = _("Ah! Sembrava preso,\neh? E invece no!");
static const u8 sText_AarghAlmostHadIt[] = _("Grrr!\nPer un pelo!");
static const u8 sText_ShootSoClose[] = _("Nooo!\nEra così vicino!");
static const u8 sText_GotchaPkmnCaught[] = _("Preso!\n{B_OPPONENT_MON1_NAME} è catturato!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p");
static const u8 sText_GotchaPkmnCaught2[] = _("Preso!\n{B_OPPONENT_MON1_NAME} è catturato!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}");
static const u8 sText_GiveNicknameCaptured[] = _("Vuoi dare un soprannome\na {B_OPPONENT_MON1_NAME}?");
static const u8 sText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} è stato inviato\nal PC di {B_PC_CREATOR_NAME}.");
static const u8 sText_Someones[] = _("???");
static const u8 sText_Lanettes[] = _("LANETTE");
static const u8 sText_PkmnDataAddedToDex[] = _("I dati di {B_OPPONENT_MON1_NAME} sono stati\ninseriti nel POKéDEX.\p");
static const u8 sText_ItIsRaining[] = _("Piove.");
static const u8 sText_SandstormIsRaging[] = _("Imperversa una tempesta di sabbia.");
static const u8 sText_BoxIsFull[] = _("I BOX sono pieni!\nNon ne puoi catturare altri!\p");
static const u8 sText_EnigmaBerry[] = _("BACCAENIGMA");
static const u8 sText_BerrySuffix[] = _("BACCA{B_COPY_VAR_3}");
static const u8 sText_PkmnsItemCuredParalysis[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nguarisce la paralisi!");
static const u8 sText_PkmnsItemCuredPoison[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nguarisce lavvelenamento!");
static const u8 sText_PkmnsItemHealedBurn[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nguarisce la scottatura!");
static const u8 sText_PkmnsItemDefrostedIt[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nlha scongelato!");
static const u8 sText_PkmnsItemWokeIt[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nlha svegliato!");
static const u8 sText_PkmnsItemSnappedOut[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nelimina la sua confusione!");
static const u8 sText_PkmnsItemCuredProblem[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\ncura il problema di {B_BUFF1}!");
static const u8 sText_PkmnsItemNormalizedStatus[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nnormalizza il suo stato!");
static const u8 sText_PkmnsItemRestoredHealth[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nristabilisce la salute!");
static const u8 sText_PkmnsItemRestoredPP[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nristabilisce i PP di {B_BUFF1}!");
static const u8 sText_PkmnsItemRestoredStatus[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nristabilisce le sue statistiche!");
static const u8 sText_PkmnsItemRestoredHPALittle[] = _("{B_LAST_ITEM} di {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nristabilisce parte dei PS!");
static const u8 sText_ItemAllowsOnlyYMove[] = _("{B_LAST_ITEM} consente di usare\nsoltanto {B_CURRENT_MOVE}!\p");
static const u8 sText_PkmnHungOnWithX[] = _("{B_DEF_NAME_WITH_PREFIX} resiste\nusando {B_LAST_ITEM}!");
const u8 gText_EmptyString3[] = _("");
static const u8 sText_YouThrowABallNowRight[] = _("Ora si lancia una BALL, vero?\nCercherò di fare del mio meglio!");
#endif
// early declaration of strings
@@ -1753,6 +2178,34 @@ static const u8 sText_Attack[] = _("ATTAQUE");
static const u8 sText_Defense[] = _("DEFENSE");
static const u8 sText_SpAtk[] = _("ATQ SP");
static const u8 sText_SpDef[] = _("DEF SP");
#elif ITALIAN
const u8 gText_PkmnIsEvolving[] = _("Cosa?\n{B_COPY_VAR_1} si sta evolvendo!");
const u8 gText_CongratsPkmnEvolved[] = _("Complimenti! Il tuo {B_COPY_VAR_1}\nsi è evoluto in {B_COPY_VAR_2}!{WAIT_SE}\p");
const u8 gText_PkmnStoppedEvolving[] = _("Bloccata evoluzione\ndi {B_COPY_VAR_1}!\p");
const u8 gText_EllipsisQuestionMark[] = _("……?\p");
const u8 gText_WhatWillPkmnDo[] = _("Cosa deve fare\n{B_ACTIVE_NAME_WITH_PREFIX}?");
const u8 gText_WhatWillPkmnDo2[] = _("Cosa deve fare\n{B_PLAYER_NAME}?");
const u8 gText_WhatWillWallyDo[] = _("Cosa deve fare\nLINO?");
const u8 gText_LinkStandby[] = _("{PAUSE 16}Un momento…");
const u8 gText_BattleMenu[] = _("LOTTA{CLEAR_TO 56}ZAINO\nPOKéMON{CLEAR_TO 56}FUGA");
const u8 gText_SafariZoneMenu[] = _("BALL{CLEAR_TO 56}{POKEMELLE}\nVICINO{CLEAR_TO 56}FUGA");
const u8 gText_MoveInterfacePP[] = _("PP ");
const u8 gText_MoveInterfaceType[] = _("TIPO/");
const u8 gText_MoveInterfacePpType[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}PP\nTYPE/");
const u8 gText_MoveInterfaceDynamicColors[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}");
const u8 gText_WhichMoveToForget4[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Which move should\nbe forgotten?");
const u8 gText_BattleYesNoChoice[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}SÌ\nNO");
const u8 gText_BattleSwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Sposta\nquale?");
const u8 gText_BattleSwitchWhich2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}");
const u8 gText_BattleSwitchWhich3[] = _("{UP_ARROW}");
const u8 gText_BattleSwitchWhich4[] = _("{ESCAPE 4}");
const u8 gText_BattleSwitchWhich5[] = _("-");
static const u8 sText_HP[] = _("PS");
static const u8 sText_Attack[] = _("ATTACCO");
static const u8 sText_Defense[] = _("DIFESA");
static const u8 sText_SpAtk[] = _("ATT. SP.");
static const u8 sText_SpDef[] = _("DIF. SP.");
#endif
// Unused
@@ -1867,6 +2320,59 @@ static const u8 sText_Round1[] = _("Premier tour");
static const u8 sText_Round2[] = _("Deuxième tour");
static const u8 sText_Semifinal[] = _("Demi-finale");
static const u8 sText_Final[] = _("Finale");
#elif ITALIAN
const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GRAY}SAFARI BALL");
const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GRAY}Ancora $" "{HIGHLIGHT DARK_GRAY}");
const u8 gText_Sleep[] = _("sonno");
const u8 gText_Poison[] = _("avvelenamento");
const u8 gText_Burn[] = _("scottatura");
const u8 gText_Paralysis[] = _("paralisi");
const u8 gText_Ice[] = _("congelamento");
const u8 gText_Confusion[] = _("confusione");
const u8 gText_Love[] = _("amore");
const u8 gText_SpaceAndSpace[] = _(" e ");
const u8 gText_CommaSpace[] = _(", ");
const u8 gText_Space2[] = _(" ");
const u8 gText_LineBreak[] = _("\l");
const u8 gText_NewLine[] = _("\n");
const u8 gText_Are[] = _("sono");
const u8 gText_Are2[] = _("sono");
const u8 gText_BadEgg[] = _("UOVO peste");
const u8 gText_BattleWallyName[] = _("LINO");
const u8 gText_Win[] = _("{HIGHLIGHT TRANSPARENT}Vinto");
const u8 gText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Perso");
const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Pari");
static const u8 sText_SpaceIs[] = _(" è");
static const u8 sText_ApostropheS[] = _("di ");
// For displaying names of invalid moves
static const u8 sATypeMove_Table[NUMBER_OF_MON_TYPES][22] =
{
[TYPE_NORMAL] = _("una mossa NORMALE"),
[TYPE_FIGHTING] = _("una mossa LOTTA"),
[TYPE_FLYING] = _("una mossa VOLANTE"),
[TYPE_POISON] = _("una mossa VELENO"),
[TYPE_GROUND] = _("una mossa TERRA"),
[TYPE_ROCK] = _("una mossa ROCCIA"),
[TYPE_BUG] = _("una mossa COLEOTTERO"),
[TYPE_GHOST] = _("una mossa SPETTRO"),
[TYPE_STEEL] = _("una mossa ACCIAIO"),
[TYPE_MYSTERY] = _("una mossa ???"),
[TYPE_FIRE] = _("una mossa FUOCO"),
[TYPE_WATER] = _("una mossa ACQUA"),
[TYPE_GRASS] = _("una mossa ERBA"),
[TYPE_ELECTRIC] = _("una mossa ELETTRO"),
[TYPE_PSYCHIC] = _("una mossa PSICO"),
[TYPE_ICE] = _("una mossa GHIACCIO"),
[TYPE_DRAGON] = _("una mossa DRAGO"),
[TYPE_DARK] = _("una mossa BUIO")
};
const u8 gText_BattleTourney[] = _("TORNEO LOTTA");
static const u8 sText_Round1[] = _("1º round");
static const u8 sText_Round2[] = _("2º round");
static const u8 sText_Semifinal[] = _("Semifinale");
static const u8 sText_Final[] = _("Finale");
#endif
const u8 *const gRoundsStringTable[DOME_ROUNDS_COUNT] =
@@ -1924,6 +2430,30 @@ static const u8 sText_GlintAppearsInEye[] = _("Une lueur apparaît dans les\nyeu
static const u8 sText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} se met\nen position!");
static const u8 sText_PkmnBeganGrowlingDeeply[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} commence\nà grogner méchamment!");
static const u8 sText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} en veut encore!");
#elif ITALIAN
static const u8 gText_TheGreatNewHope[] = _("The great new hope!\p"); // Unused
static const u8 gText_WillChampionshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); // Unused
static const u8 gText_AFormerChampion[] = _("A former CHAMPION!\p"); // Unused
static const u8 gText_ThePreviousChampion[] = _("The previous CHAMPION!\p"); // Unused
static const u8 gText_TheUnbeatenChampion[] = _("The unbeaten CHAMPION!\p"); // Unused
const u8 gText_PlayerMon1Name[] = _("{B_PLAYER_MON1_NAME}");
const u8 gText_Vs[] = _("VS");
const u8 gText_OpponentMon1Name[] = _("{B_OPPONENT_MON1_NAME}");
const u8 gText_Mind[] = _("Mente");
const u8 gText_Skill[] = _("Abilità");
const u8 gText_Body[] = _("Corpo");
const u8 gText_Judgement[] = _("{B_BUFF1}{CLEAR 13}Voto{CLEAR 13}{B_BUFF2}");
static const u8 sText_TwoTrainersSentPkmn[] = _("È il turno di {B_OPPONENT_MON1_NAME}, mandato in\ncampo da {B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!\pÈ il turno di {B_OPPONENT_MON2_NAME}, mandato in\ncampo da {B_TRAINER2_NAME}, {B_TRAINER2_CLASS}!");
static const u8 sText_Trainer2SentOutPkmn[] = _("È il turno di {B_BUFF1}, mandato in\ncampo da {B_TRAINER2_NAME}, {B_TRAINER2_CLASS}!");
static const u8 sText_TwoTrainersWantToBattle[] = _("Parte la sfida di \n{B_TRAINER1_NAME}, {B_TRAINER1_CLASS}, e\l{B_TRAINER2_NAME}, {B_TRAINER2_CLASS}!\p");
static const u8 sText_InGamePartnerSentOutZGoN[] = _("È il turno di {B_PLAYER_MON2_NAME}, mandato in\ncampo da {B_PARTNER_NAME}, {B_PARTNER_CLASS}!\pVai, {B_PLAYER_MON1_NAME}!");
static const u8 sText_TwoInGameTrainersDefeated[] = _("Hai avuto la meglio su\n{B_TRAINER1_NAME}, {B_TRAINER1_CLASS}, e\l{B_TRAINER2_NAME}, {B_TRAINER2_CLASS}!\p");
static const u8 sText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}");
static const u8 sText_PkmnIncapableOfPower[] = _("{B_ATK_NAME_WITH_PREFIX} non è al massimo\ndella potenza!");
static const u8 sText_GlintAppearsInEye[] = _("Negli occhi di {B_SCR_ACTIVE_NAME_WITH_PREFIX} è\napparsa una scintilla!");
static const u8 sText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} si sta mettendo\nin posizione!");
static const u8 sText_PkmnBeganGrowlingDeeply[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} ha iniziato a\nruggire profondamente!");
static const u8 sText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} è impaziente!");
#endif
const u16 gBattlePalaceFlavorTextTable[] =
@@ -1959,6 +2489,19 @@ static const u8 sText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} bat
static const u8 sText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} perd contre {B_OPPONENT_MON1_NAME}\nsur décision de lARBITRE!");
static const u8 sText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} est à égalité avec\n{B_OPPONENT_MON1_NAME} sur décision de lARBITRE!");
static const u8 sText_RefCommenceBattle[] = _("ARBITRE: {B_PLAYER_MON1_NAME} VS {B_OPPONENT_MON1_NAME}!\nCommencez le combat!");
#elif ITALIAN
static const u8 sText_RefIfNothingIsDecided[] = _("ARBITRO: Se dopo 3 turni non cè\nnulla di fatto, si passa ai punti!");
static const u8 sText_RefThatsIt[] = _("ARBITRO: Passeremo ai punti per\ndecretare il vincitore!");
static const u8 sText_RefJudgeMind[] = _("ARBITRO: Criterio di giudizio 1: Mente!\nIl POKéMON più valoroso!\p");
static const u8 sText_RefJudgeSkill[] = _("ARBITRO: Criterio di giudizio 2: Abilità!\nIl POKéMON che usa meglio le mosse!\p");
static const u8 sText_RefJudgeBody[] = _("ARBITRO: Criterio di giudizio 3: Corpo!\nIl POKéMON più vitale!\p");
static const u8 sText_RefPlayerWon[] = _("ARBITRO: {B_BUFF1} a {B_BUFF2}!\nVince {B_PLAYER_MON1_NAME} di {B_PLAYER_NAME}!\p");
static const u8 sText_RefOpponentWon[] = _("ARBITRO: {B_BUFF1} a {B_BUFF2}!\nVince {B_OPPONENT_MON1_NAME} di {B_TRAINER1_NAME}!\p");
static const u8 sText_RefDraw[] = _("ARBITRO: 3 a 3!\nAbbiamo un pareggio!\p");
static const u8 sText_DefeatedOpponentByReferee[] = _("LARBITRO ha decretato la vittoria\ndi {B_PLAYER_MON1_NAME} contro {B_OPPONENT_MON1_NAME}!");
static const u8 sText_LostToOpponentByReferee[] = _("LARBITRO ha decretato la vittoria\ndi {B_OPPONENT_MON1_NAME} contro {B_PLAYER_MON1_NAME}!");
static const u8 sText_TiedOpponentByReferee[] = _("LARBITRO ha decretato il pareggio\ntra {B_PLAYER_MON1_NAME} e {B_OPPONENT_MON1_NAME}!");
static const u8 sText_RefCommenceBattle[] = _("ARBITRO: {B_PLAYER_MON1_NAME} VS {B_OPPONENT_MON1_NAME}!\nChe la lotta abbia inizio!");
#endif
const u8 * const gRefereeStringsTable[] =
@@ -1997,6 +2540,18 @@ const u8 gText_RecordBattleToPass[] = _("Voulez-vous enregistrer votre\ncombat s
const u8 gText_BattleRecordedOnPass[] = _("Le résultat de {B_PLAYER_NAME} est\nenregistré sur le PASSE ZONE.");
static const u8 sText_LinkTrainerWantsToBattlePause[] = _("{B_LINK_OPPONENT1_NAME}\nveut se battre!{PAUSE 49}");
static const u8 sText_TwoLinkTrainersWantToBattlePause[] = _("{B_LINK_OPPONENT1_NAME} et {B_LINK_OPPONENT2_NAME}\nveulent se battre!{PAUSE 49}");
#elif ITALIAN
static const u8 sText_QuestionForfeitMatch[] = _("Vuoi rinunciare allincontro e\nuscire ora?");
static const u8 sText_ForfeitedMatch[] = _("{B_PLAYER_NAME} lascia lincontro!");
static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}");
static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}");
static const u8 sText_Trainer1Fled[] = _("{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!");
static const u8 sText_PlayerLostAgainstTrainer1[] = _("La sfida è vinta da\n{B_TRAINER1_NAME}, {B_TRAINER1_CLASS}!");
static const u8 sText_PlayerBattledToDrawTrainer1[] = _("La sfida contro {B_TRAINER1_NAME},\n{B_TRAINER1_CLASS}, si è conclusa\lin parità!");
const u8 gText_RecordBattleToPass[] = _("Vuoi che il filmato della tua lotta \nvenga registrato nel PASS PARCO?");
const u8 gText_BattleRecordedOnPass[] = _("Il filmato della lotta di {B_PLAYER_NAME} è\nstato registrato nel PASS PARCO.");
static const u8 sText_LinkTrainerWantsToBattlePause[] = _("Parte la sfida di\n{B_LINK_OPPONENT1_NAME}!{PAUSE 49}");
static const u8 sText_TwoLinkTrainersWantToBattlePause[] = _("Parte la sfida di\n{B_LINK_OPPONENT1_NAME} e {B_LINK_OPPONENT2_NAME}!{PAUSE 49}");
#endif
// This is four lists of moves which use a different attack string in Japanese
@@ -2043,7 +2598,7 @@ static const u16 sGrammarMoveUsedTable[] =
#if ENGLISH
static const u8 sDummyWeirdStatusString[] = {EOS, EOS, EOS, EOS, EOS, EOS, EOS, EOS, 0, 0};
#elif FRENCH
#elif FRENCH || ITALIAN
static const u8 sDummyWeirdStatusString[] = {EOS, EOS, EOS, EOS, EOS, EOS, EOS, EOS};
#endif
@@ -2631,7 +3186,7 @@ void BufferStringBattle(u16 stringID)
{
s32 i;
const u8 *stringPtr = NULL;
#if FRENCH
#if FRENCH || ITALIAN
u32 size;
u8 *txtBuff;
#endif
@@ -2922,66 +3477,67 @@ void BufferStringBattle(u16 stringID)
#if ENGLISH
BattleStringExpandPlaceholdersToDisplayedString(stringPtr);
#elif FRENCH
// This swaps Team's Aqua/Magma class / name ; Team Aqua Grunt -> Grunt(Sbire in French) Team Aqua
#elif FRENCH || ITALIAN
size = StringLength(stringPtr) + 1;
txtBuff = Alloc(size);
memcpy(txtBuff, stringPtr, size);
if (!(gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE)
&& gTrainerBattleOpponent_A != TRAINER_UNION_ROOM && gTrainerBattleOpponent_A != TRAINER_FRONTIER_BRAIN
&& !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER_HILL)))
{
u8 *toSwap, *txt;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gTrainerBattleOpponent_A < TRAINERS_COUNT)
#if FRENCH
// This swaps Team's Aqua/Magma class / name ; Team Aqua Grunt -> Grunt(Sbire in French) Team Aqua
if (!(gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE)
&& gTrainerBattleOpponent_A != TRAINER_UNION_ROOM && gTrainerBattleOpponent_A != TRAINER_FRONTIER_BRAIN
&& !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER_HILL)))
{
if (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_TEAM_MAGMA || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_TEAM_AQUA)
u8 *toSwap, *txt;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gTrainerBattleOpponent_A < TRAINERS_COUNT)
{
toSwap = NULL, txt = txtBuff;
while (*txt != EOS)
if (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_TEAM_MAGMA || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_TEAM_AQUA)
{
if (*txt == PLACEHOLDER_BEGIN)
toSwap = NULL, txt = txtBuff;
while (*txt != EOS)
{
if (*txt == PLACEHOLDER_BEGIN)
{
txt++;
if (*txt == B_TXT_TRAINER1_CLASS)
{
toSwap = txt;
}
else if (*txt == B_TXT_TRAINER1_NAME && toSwap != NULL)
{
*toSwap = B_TXT_TRAINER1_NAME;
*txt = B_TXT_TRAINER1_CLASS;
}
}
txt++;
}
}
}
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && gTrainerBattleOpponent_B < TRAINERS_COUNT)
{
if (gTrainers[gTrainerBattleOpponent_B].trainerClass == TRAINER_CLASS_TEAM_MAGMA || gTrainers[gTrainerBattleOpponent_B].trainerClass == TRAINER_CLASS_TEAM_AQUA)
{
toSwap = NULL, txt = txtBuff;
while (*txt != EOS)
{
if (*txt == PLACEHOLDER_BEGIN)
{
txt++;
if (*txt == B_TXT_TRAINER2_CLASS)
{
toSwap = txt;
}
else if (*txt == B_TXT_TRAINER2_NAME && toSwap != NULL)
{
*toSwap = B_TXT_TRAINER2_NAME;
*txt = B_TXT_TRAINER2_CLASS;
}
}
txt++;
if (*txt == B_TXT_TRAINER1_CLASS)
{
toSwap = txt;
}
else if (*txt == B_TXT_TRAINER1_NAME && toSwap != NULL)
{
*toSwap = B_TXT_TRAINER1_NAME;
*txt = B_TXT_TRAINER1_CLASS;
}
}
txt++;
}
}
}
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && gTrainerBattleOpponent_B < TRAINERS_COUNT)
{
if (gTrainers[gTrainerBattleOpponent_B].trainerClass == TRAINER_CLASS_TEAM_MAGMA || gTrainers[gTrainerBattleOpponent_B].trainerClass == TRAINER_CLASS_TEAM_AQUA)
{
toSwap = NULL, txt = txtBuff;
while (*txt != EOS)
{
if (*txt == PLACEHOLDER_BEGIN)
{
txt++;
if (*txt == B_TXT_TRAINER2_CLASS)
{
toSwap = txt;
}
else if (*txt == B_TXT_TRAINER2_NAME && toSwap != NULL)
{
*toSwap = B_TXT_TRAINER2_NAME;
*txt = B_TXT_TRAINER2_CLASS;
}
}
txt++;
}
}
}
}
#endif
BattleStringExpandPlaceholdersToDisplayedString(txtBuff);
Free(txtBuff);
#endif
@@ -3044,7 +3600,7 @@ static const u8 *TryGetStatusString(u8 *src)
} \
StringGet_Nickname(text); \
toCpy = text;
#elif FRENCH
#elif FRENCH || ITALIAN
// wild Pokemon -> Pokemon wild
#define HANDLE_NICKNAME_STRING_CASE(battlerId, monIndex) \
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) \
@@ -3246,7 +3802,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
else
toCpy = sText_EnigmaBerry;
}
#elif FRENCH
#elif FRENCH || ITALIAN
CopyItemName(gLastUsedItem, text);
toCpy = text;
#endif
@@ -3295,7 +3851,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
else
toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent_A].trainerClass];
break;
#elif FRENCH
#elif FRENCH || ITALIAN
{
s32 gender = -1, trClass;
const u8 *trName = NULL;
@@ -3462,7 +4018,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
else
toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent_B].trainerClass];
break;
#elif FRENCH
#elif FRENCH || ITALIAN
{
s32 gender = -1, trClass;
const u8 *trName = NULL;
@@ -3528,7 +4084,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
#if ENGLISH
toCpy = gTrainerClassNames[GetFrontierOpponentClass(gPartnerTrainerId)];
break;
#elif FRENCH
#elif FRENCH || ITALIAN
{
s32 trClass = GetFrontierOpponentClass(gPartnerTrainerId);
s32 gender = IsFrontierTrainerFemale(gPartnerTrainerId);
@@ -3586,7 +4142,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
{
case B_BUFF_STRING: // battle string
hword = T1_READ_16(&src[srcID + 1]);
#if FRENCH
#if FRENCH || ITALIAN
if (hword == STRINGID_STATSHARPLY || hword == STRINGID_STATHARSHLY)
srcID += 3;
#endif
@@ -3634,7 +4190,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
}
StringGet_Nickname(text);
StringAppend(dst, text);
#elif FRENCH
#elif FRENCH || ITALIAN
if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER)
{
GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, text);
@@ -3693,7 +4249,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
{
StringAppend(dst, sText_EnigmaBerry);
}
#elif FRENCH
#elif FRENCH || ITALIAN
CopyItemName(hword, dst);
#endif
}

View File

@@ -56,7 +56,7 @@ static void SetTowerBattleWon(void);
static void AwardBattleTowerRibbons(void);
static void SaveTowerChallenge(void);
static void GetOpponentIntroSpeech(void);
#if FRENCH
#if FRENCH || ITALIAN
static void GetOpponentIntroSpeech2(void);
#endif
static void BattleTowerNop1(void);
@@ -821,7 +821,7 @@ static void (* const sBattleTowerFuncs[])(void) =
[BATTLE_TOWER_FUNC_TRY_CLOSE_LINK] = TowerTryCloseLink,
[BATTLE_TOWER_FUNC_SET_PARTNER_GFX] = SetMultiPartnerGfx,
[BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA] = SetTowerInterviewData,
#if FRENCH
#if FRENCH || ITALIAN
[BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO2] = GetOpponentIntroSpeech2,
#endif
};
@@ -900,6 +900,8 @@ static const u16 sRecordTrainerSpeechWon[] =
EC_WORD_YAY, EC_WORD_YAY, EC_WORD_EXCL_EXCL, EC_WORD_I_VE, EC_WORD_WON, EC_WORD_EXCL_EXCL
#elif FRENCH
EC_WORD_YAY, EC_WORD_EXCL_EXCL, EC_WORD_I_VE, EC_EMPTY_WORD, EC_WORD_WINS, EC_WORD_EXCL_EXCL
#elif ITALIAN
EC_WORD_PLAY, EC_WORD_IS_IT_QUES, EC_WORD_WON, EC_WORD_ISN_T_IT_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD
#endif
};
@@ -909,6 +911,8 @@ static const u16 sRecordTrainerSpeechLost[] =
EC_WORD_TOO, EC_WORD_BAD, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_LOST, EC_WORD_ELLIPSIS
#elif FRENCH
EC_WORD_SLIMY, EC_WORD_ELLIPSIS, EC_WORD_TO_US, EC_WORD_EVEN_SO, EC_WORD_LOST, EC_WORD_EXCL
#elif ITALIAN
EC_WORD_SCARY, EC_WORD_IS_IT_QUES, EC_WORD_LOST, EC_WORD_LOST, EC_WORD_LOST, EC_WORD_EXCL, EC_POKEMON(NONE)
#endif
};
@@ -1590,7 +1594,7 @@ void GetFrontierTrainerName(u8 *dst, u16 trainerId)
#if ENGLISH
static bool8 IsFrontierTrainerFemale(u16 trainerId)
#elif FRENCH
#elif FRENCH || ITALIAN
bool8 IsFrontierTrainerFemale(u16 trainerId)
#endif
{
@@ -1950,7 +1954,7 @@ void FrontierSpeechToString(const u16 *words)
gStringVar4[i] = CHAR_PROMPT_SCROLL;
}
#elif FRENCH
#elif FRENCH || ITALIAN
UnusedConvertEasyChatWordsToString(gStringVar4, words, 2, 3);
#endif
}
@@ -1975,7 +1979,7 @@ static void GetOpponentIntroSpeech(void)
BufferApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE);
}
#if FRENCH
#if FRENCH || ITALIAN
void FrontierSpeechToString2(const u16 *words)
{
ConvertEasyChatWordsToString(gStringVar4, words, 3, 2);

View File

@@ -198,6 +198,93 @@ static const u8 sBerryDescriptionPart1_Starf[] = _("Trop puissante, elle fut aba
static const u8 sBerryDescriptionPart2_Starf[] = _("au bout du monde. On parle de mirage.");
static const u8 sBerryDescriptionPart1_Enigma[] = _("Une BAIE très énigmatique qui");
static const u8 sBerryDescriptionPart2_Enigma[] = _("détiendrait le pouvoir des étoiles.");
#elif ITALIAN
static const u8 sBerryDescriptionPart1_Cheri[] = _("Fiorisce con bei fiorellini delicati. La");
static const u8 sBerryDescriptionPart2_Cheri[] = _("BACCA di un rosso vivo è molto pepata.");
static const u8 sBerryDescriptionPart1_Chesto[] = _("La scorza spessa e il frutto sono");
static const u8 sBerryDescriptionPart2_Chesto[] = _("durissimi. Ha un gusto molto secco.");
static const u8 sBerryDescriptionPart1_Pecha[] = _("BACCA molto dolce e gustosa.");
static const u8 sBerryDescriptionPart2_Pecha[] = _("Molto tenera, maneggiare con cura.");
static const u8 sBerryDescriptionPart1_Rawst[] = _("Se le foglie sono lunghe e ricce,");
static const u8 sBerryDescriptionPart2_Rawst[] = _("la BACCA diventa molto amara.");
static const u8 sBerryDescriptionPart1_Aspear[] = _("Questa dura BACCA è ricca di un succo");
static const u8 sBerryDescriptionPart2_Aspear[] = _("molto nutriente. È piuttosto aspra.");
static const u8 sBerryDescriptionPart1_Leppa[] = _("Matura più lenta della BACCALIEGIA. Le");
static const u8 sBerryDescriptionPart2_Leppa[] = _("BACCHE più piccole sono più saporite.");
static const u8 sBerryDescriptionPart1_Oran[] = _("Una BACCA speciale con sapori misti.");
static const u8 sBerryDescriptionPart2_Oran[] = _("Matura in mezza giornata.");
static const u8 sBerryDescriptionPart1_Persim[] = _("Ama la luce solare. Se esposta al sole,");
static const u8 sBerryDescriptionPart2_Persim[] = _("i colori della BACCA si fanno più vivi.");
static const u8 sBerryDescriptionPart1_Lum[] = _("Matura lentamente. Se coltivata con");
static const u8 sBerryDescriptionPart2_Lum[] = _("cura, può produrre due BACCHE.");
static const u8 sBerryDescriptionPart1_Sitrus[] = _("Strettamente collegata alla");
static const u8 sBerryDescriptionPart2_Sitrus[] = _("BACCARANCIA, ha un sapore rotondo.");
static const u8 sBerryDescriptionPart1_Figy[] = _("BACCA dallaspetto rosicchiato");
static const u8 sBerryDescriptionPart2_Figy[] = _("ricca di sostanze pepate.");
static const u8 sBerryDescriptionPart1_Wiki[] = _("Pare che la consistenza grumosa");
static const u8 sBerryDescriptionPart2_Wiki[] = _("della BACCA aiuti i POKéMON a coglierla.");
static const u8 sBerryDescriptionPart1_Mago[] = _("La BACCA sincurva crescendo,");
static const u8 sBerryDescriptionPart2_Mago[] = _("diventando più dolce e saporita.");
static const u8 sBerryDescriptionPart1_Aguav[] = _("Il fiore è molto delicato. Possiede la");
static const u8 sBerryDescriptionPart2_Aguav[] = _("rara capacità di crescere al buio.");
static const u8 sBerryDescriptionPart1_Iapapa[] = _("BACCA molto grande e aspra. Ci");
static const u8 sBerryDescriptionPart2_Iapapa[] = _("mette almeno un giorno per maturare.");
static const u8 sBerryDescriptionPart1_Razz[] = _("BACCA rossa e leggermente pepata.");
static const u8 sBerryDescriptionPart2_Razz[] = _("Matura velocemente in sole 4 ore.");
static const u8 sBerryDescriptionPart1_Bluk[] = _("Esternamente la BACCA è blu, ma");
static const u8 sBerryDescriptionPart2_Bluk[] = _("quando si mangia annerisce la lingua.");
static const u8 sBerryDescriptionPart1_Nanab[] = _("Questa BACCA dolce è la settima");
static const u8 sBerryDescriptionPart2_Nanab[] = _("scoperta al mondo.");
static const u8 sBerryDescriptionPart1_Wepear[] = _("Il fiore è piccolo e bianco. La BACCA");
static const u8 sBerryDescriptionPart2_Wepear[] = _("ha un sapore amaro e aspro.");
static const u8 sBerryDescriptionPart1_Pinap[] = _("Non resiste al freddo e al vento.");
static const u8 sBerryDescriptionPart2_Pinap[] = _("Il frutto è pepato e la buccia aspra.");
static const u8 sBerryDescriptionPart1_Pomeg[] = _("Per quanto venga annaffiata,");
static const u8 sBerryDescriptionPart2_Pomeg[] = _("non produce più di sei BACCHE.");
static const u8 sBerryDescriptionPart1_Kelpsy[] = _("Una specie rara a forma di radice.");
static const u8 sBerryDescriptionPart2_Kelpsy[] = _("Produce un fiore molto grande.");
static const u8 sBerryDescriptionPart1_Qualot[] = _("Adora lacqua. Cresce forte anche in");
static const u8 sBerryDescriptionPart2_Qualot[] = _("luoghi con precipitazioni persistenti.");
static const u8 sBerryDescriptionPart1_Hondew[] = _("BACCA rara e preziosa,");
static const u8 sBerryDescriptionPart2_Hondew[] = _("oltre ad essere squisita.");
static const u8 sBerryDescriptionPart1_Grepa[] = _("Nonostante la morbida consistenza e");
static const u8 sBerryDescriptionPart2_Grepa[] = _("la forma rotonda, è molto aspra.");
static const u8 sBerryDescriptionPart1_Tamato[] = _("Questa BACCA è incredibilmente");
static const u8 sBerryDescriptionPart2_Tamato[] = _("pepata e lenta a maturare.");
static const u8 sBerryDescriptionPart1_Cornn[] = _("BACCA già conosciuta nellantichità.");
static const u8 sBerryDescriptionPart2_Cornn[] = _("Cresce solo nelle colture intensive.");
static const u8 sBerryDescriptionPart1_Magost[] = _("BACCA conosciuta come frutto");
static const u8 sBerryDescriptionPart2_Magost[] = _("dal sapore agrodolce bilanciato.");
static const u8 sBerryDescriptionPart1_Rabuta[] = _("Una specie rara ricoperta da una");
static const u8 sBerryDescriptionPart2_Rabuta[] = _("fitta peluria. Sapore piuttosto amaro.");
static const u8 sBerryDescriptionPart1_Nomel[] = _("BACCA asperrima. Assaggiandola non");
static const u8 sBerryDescriptionPart2_Nomel[] = _("si sente più alcun sapore per 3 giorni.");
static const u8 sBerryDescriptionPart1_Spelon[] = _("BACCA rosso vivo. Le protuberanze");
static const u8 sBerryDescriptionPart2_Spelon[] = _("producono una sostanza molto pepata.");
static const u8 sBerryDescriptionPart1_Pamtre[] = _("È portata dalle onde del mare.");
static const u8 sBerryDescriptionPart2_Pamtre[] = _("Pare che cresca altrove.");
static const u8 sBerryDescriptionPart1_Watmel[] = _("Ne è stata scoperta una enorme con");
static const u8 sBerryDescriptionPart2_Watmel[] = _("diametro di 50 cm. È dolcissima.");
static const u8 sBerryDescriptionPart1_Durin[] = _("È talmente amara che nessuno è mai");
static const u8 sBerryDescriptionPart2_Durin[] = _("riuscito a mangiarla così comè.");
static const u8 sBerryDescriptionPart1_Belue[] = _("È lucida e pare deliziosa, ma in realtà");
static const u8 sBerryDescriptionPart2_Belue[] = _("è molto aspra. Matura lentamente.");
static const u8 sBerryDescriptionPart1_Liechi[] = _("BACCA misteriosa. Si dice che");
static const u8 sBerryDescriptionPart2_Liechi[] = _("abbia in sé la forza del mare.");
static const u8 sBerryDescriptionPart1_Ganlon[] = _("BACCA misteriosa. Si dice che");
static const u8 sBerryDescriptionPart2_Ganlon[] = _("abbia in sé la forza della terra.");
static const u8 sBerryDescriptionPart1_Salac[] = _("BACCA misteriosa. Si dice che");
static const u8 sBerryDescriptionPart2_Salac[] = _("abbia in sé la forza del cielo.");
static const u8 sBerryDescriptionPart1_Petaya[] = _("BACCA misteriosa. Si dice che abbia in");
static const u8 sBerryDescriptionPart2_Petaya[] = _("sé la forza di tutti gli esseri viventi.");
static const u8 sBerryDescriptionPart1_Apicot[] = _("BACCA misteriosa. Non si sa come");
static const u8 sBerryDescriptionPart2_Apicot[] = _("usarla, né i possibili risultati.");
static const u8 sBerryDescriptionPart1_Lansat[] = _("È conosciuta come BACCA leggendaria.");
static const u8 sBerryDescriptionPart2_Lansat[] = _("Pare che porti gioia a chi la tiene.");
static const u8 sBerryDescriptionPart1_Starf[] = _("Quasi mai usata per il suo sapore così");
static const u8 sBerryDescriptionPart2_Starf[] = _("forte. È considerata un miraggio.");
static const u8 sBerryDescriptionPart1_Enigma[] = _("BACCA altamente enigmatica.");
static const u8 sBerryDescriptionPart2_Enigma[] = _("Pare possedere la forza delle stelle.");
#endif
const struct Berry gBerries[] =
@@ -208,6 +295,8 @@ const struct Berry gBerries[] =
.name = _("CHERI"),
#elif FRENCH
.name = _("CERIZ"),
#elif ITALIAN
.name = _("LIEGIA"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 20,
@@ -230,6 +319,8 @@ const struct Berry gBerries[] =
.name = _("CHESTO"),
#elif FRENCH
.name = _("MARON"),
#elif ITALIAN
.name = _("STAGNA"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 80,
@@ -250,6 +341,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("PECHA"),
#elif ITALIAN
.name = _("PESCA"),
#endif
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 40,
@@ -272,6 +365,8 @@ const struct Berry gBerries[] =
.name = _("RAWST"),
#elif FRENCH
.name = _("FRAIVE"),
#elif ITALIAN
.name = _("FRAGO"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 32,
@@ -294,6 +389,8 @@ const struct Berry gBerries[] =
.name = _("ASPEAR"),
#elif FRENCH
.name = _("WILLIA"),
#elif ITALIAN
.name = _("PERINA"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 50,
@@ -316,6 +413,8 @@ const struct Berry gBerries[] =
.name = _("LEPPA"),
#elif FRENCH
.name = _("MEPO"),
#elif ITALIAN
.name = _("MELA"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 28,
@@ -336,6 +435,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("ORAN"),
#elif ITALIAN
.name = _("RANCIA"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 35,
@@ -358,6 +459,8 @@ const struct Berry gBerries[] =
.name = _("PERSIM"),
#elif FRENCH
.name = _("KIKA"),
#elif ITALIAN
.name = _("KI"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 47,
@@ -380,6 +483,8 @@ const struct Berry gBerries[] =
.name = _("LUM"),
#elif FRENCH
.name = _("PRINE"),
#elif ITALIAN
.name = _("PRUGNA"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 34,
@@ -400,6 +505,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("SITRUS"),
#elif ITALIAN
.name = _("CEDRO"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 95,
@@ -422,6 +529,8 @@ const struct Berry gBerries[] =
.name = _("FIGY"),
#elif FRENCH
.name = _("FIGUY"),
#elif ITALIAN
.name = _("FICO"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 100,
@@ -442,6 +551,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("WIKI"),
#elif ITALIAN
.name = _("KIWI"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 115,
@@ -462,6 +573,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("MAGO"),
#elif ITALIAN
.name = _("MANGO"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 126,
@@ -484,6 +597,8 @@ const struct Berry gBerries[] =
.name = _("AGUAV"),
#elif FRENCH
.name = _("GOWAV"),
#elif ITALIAN
.name = _("GUAVA"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 64,
@@ -506,6 +621,8 @@ const struct Berry gBerries[] =
.name = _("IAPAPA"),
#elif FRENCH
.name = _("PAPAYA"),
#elif ITALIAN
.name = _("PAIA"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 223,
@@ -528,6 +645,8 @@ const struct Berry gBerries[] =
.name = _("RAZZ"),
#elif FRENCH
.name = _("FRAMBY"),
#elif ITALIAN
.name = _("LAMPON"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 120,
@@ -550,6 +669,8 @@ const struct Berry gBerries[] =
.name = _("BLUK"),
#elif FRENCH
.name = _("REMU"),
#elif ITALIAN
.name = _("MORA"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 108,
@@ -570,6 +691,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("NANAB"),
#elif ITALIAN
.name = _("BANA"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 77,
@@ -592,6 +715,8 @@ const struct Berry gBerries[] =
.name = _("WEPEAR"),
#elif FRENCH
.name = _("REPOI"),
#elif ITALIAN
.name = _("PERA"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 74,
@@ -614,6 +739,8 @@ const struct Berry gBerries[] =
.name = _("PINAP"),
#elif FRENCH
.name = _("NANANA"),
#elif ITALIAN
.name = _("NANAS"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 80,
@@ -636,6 +763,8 @@ const struct Berry gBerries[] =
.name = _("POMEG"),
#elif FRENCH
.name = _("GRENA"),
#elif ITALIAN
.name = _("GRANA"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 135,
@@ -658,6 +787,8 @@ const struct Berry gBerries[] =
.name = _("KELPSY"),
#elif FRENCH
.name = _("ALGA"),
#elif ITALIAN
.name = _("LGA"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 150,
@@ -678,6 +809,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("QUALOT"),
#elif ITALIAN
.name = _("LOQUAT"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 110,
@@ -700,6 +833,8 @@ const struct Berry gBerries[] =
.name = _("HONDEW"),
#elif FRENCH
.name = _("LONME"),
#elif ITALIAN
.name = _("MELON"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 162,
@@ -722,6 +857,8 @@ const struct Berry gBerries[] =
.name = _("GREPA"),
#elif FRENCH
.name = _("RESIN"),
#elif ITALIAN
.name = _("UVA"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 149,
@@ -742,6 +879,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("TAMATO"),
#elif ITALIAN
.name = _("MODORO"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 200,
@@ -764,6 +903,8 @@ const struct Berry gBerries[] =
.name = _("CORNN"),
#elif FRENCH
.name = _("SIAM"),
#elif ITALIAN
.name = _("VENA"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 75,
@@ -786,6 +927,8 @@ const struct Berry gBerries[] =
.name = _("MAGOST"),
#elif FRENCH
.name = _("MANGOU"),
#elif ITALIAN
.name = _("GOSTAN"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 140,
@@ -806,6 +949,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("RABUTA"),
#elif ITALIAN
.name = _("MBUTAN"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 226,
@@ -828,6 +973,8 @@ const struct Berry gBerries[] =
.name = _("NOMEL"),
#elif FRENCH
.name = _("TRONCI"),
#elif ITALIAN
.name = _("LEMON"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 285,
@@ -850,6 +997,8 @@ const struct Berry gBerries[] =
.name = _("SPELON"),
#elif FRENCH
.name = _("KIWAN"),
#elif ITALIAN
.name = _("MELOS"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 133,
@@ -870,7 +1019,7 @@ const struct Berry gBerries[] =
{
#if ENGLISH
.name = _("PAMTRE"),
#elif FRENCH
#elif FRENCH || ITALIAN
.name = _("PALMA"),
#endif
.firmness = BERRY_FIRMNESS_VERY_SOFT,
@@ -894,6 +1043,8 @@ const struct Berry gBerries[] =
.name = _("WATMEL"),
#elif FRENCH
.name = _("STEKPA"),
#elif ITALIAN
.name = _("COMERO"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 250,
@@ -914,6 +1065,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("DURIN"),
#elif ITALIAN
.name = _("DURIAN"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 280,
@@ -936,6 +1089,8 @@ const struct Berry gBerries[] =
.name = _("BELUE"),
#elif FRENCH
.name = _("MYRTE"),
#elif ITALIAN
.name = _("RTILLO"),
#endif
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 300,
@@ -958,6 +1113,8 @@ const struct Berry gBerries[] =
.name = _("LIECHI"),
#elif FRENCH
.name = _("LICHII"),
#elif ITALIAN
.name = _("LICI"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 111,
@@ -980,6 +1137,8 @@ const struct Berry gBerries[] =
.name = _("GANLON"),
#elif FRENCH
.name = _("LINGAN"),
#elif ITALIAN
.name = _("LONGAN"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 33,
@@ -1002,6 +1161,8 @@ const struct Berry gBerries[] =
.name = _("SALAC"),
#elif FRENCH
.name = _("SAILAK"),
#elif ITALIAN
.name = _("SALAK"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 95,
@@ -1024,6 +1185,8 @@ const struct Berry gBerries[] =
.name = _("PETAYA"),
#elif FRENCH
.name = _("PITAYE"),
#elif ITALIAN
.name = _("PITAYA"),
#endif
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 237,
@@ -1046,6 +1209,8 @@ const struct Berry gBerries[] =
.name = _("APICOT"),
#elif FRENCH
.name = _("ABRIKO"),
#elif ITALIAN
.name = _("COCCA"),
#endif
.firmness = BERRY_FIRMNESS_HARD,
.size = 75,
@@ -1066,6 +1231,8 @@ const struct Berry gBerries[] =
{
#if ENGLISH || FRENCH
.name = _("LANSAT"),
#elif ITALIAN
.name = _("LANGSA"),
#endif
.firmness = BERRY_FIRMNESS_SOFT,
.size = 97,
@@ -1088,6 +1255,8 @@ const struct Berry gBerries[] =
.name = _("STARF"),
#elif FRENCH
.name = _("FRISTA"),
#elif ITALIAN
.name = _("MBOLA"),
#endif
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 153,

View File

@@ -245,7 +245,7 @@ u8 gInGameOpponentsNo;
static const u16 sBlenderCenter_Pal[] = INCBIN_U16("graphics/berry_blender/center.gbapal");
static const u8 sBlenderCenter_Tilemap[] = INCBIN_U8("graphics/berry_blender/center_map.bin");
static const u16 sBlenderOuter_Pal[] = INCBIN_U16("graphics/berry_blender/outer.gbapal");
#elif FRENCH
#elif FRENCH || ITALIAN
static const u8 sBlenderCenter_Tilemap[] = INCBIN_U8("graphics/berry_blender/center_map.bin");
static const u16 sBlenderOuter_Pal[] = INCBIN_U16("graphics/berry_blender/fr/outer.gbapal");
#endif
@@ -253,8 +253,8 @@ static const u16 sBlenderOuter_Pal[] = INCBIN_U16("graphics/berry_blender/fr/out
static const u16 sUnused_Pal[] = INCBIN_U16("graphics/berry_blender/unused.gbapal");
static const u16 sEmpty_Pal[16 * 14] = {0};
// unused text
#if ENGLISH
// unused text
static const u8 sUnusedText_YesNo[] = _("YES\nNO");
static const u8 sUnusedText_2[] = _("");
static const u8 sUnusedText_Space[] = _(" ");
@@ -271,6 +271,7 @@ static const u8 sText_Master[] = _("MASTER");
static const u8 sText_Dude[] = _("DUDE");
static const u8 sText_Miss[] = _("MISS");
#elif FRENCH
// unused text
static const u8 sUnusedText_YesNo[] = _("OUI\nNON");
static const u8 sUnusedText_2[] = _("");
static const u8 sUnusedText_Space[] = _(" ");
@@ -286,6 +287,23 @@ static const u8 sText_Lassie[] = _("GAMINE");
static const u8 sText_Master[] = _("MAITRE");
static const u8 sText_Dude[] = _("TYPE");
static const u8 sText_Miss[] = _("MISS");
#elif ITALIAN
// unused text
static const u8 sUnusedText_YesNo[] = _("\nNO");
static const u8 sUnusedText_2[] = _("");
static const u8 sUnusedText_Space[] = _(" ");
static const u8 sUnusedText_Terminating[] = _("Fine.");
static const u8 sUnusedText_LinkPartnerNotFound[] = _("Nessun collegamento possibile.\nRiprova.\p");
static const u8 sText_BerryBlenderStart[] = _("Avvio del MIXER BACCHE.\pSeleziona una BACCA dal tuo ZAINO\nda mettere nel MIXER BACCHE.\p");
static const u8 sText_NewParagraph[] = _("\p");
static const u8 sText_WasMade[] = _("È stata creata una {STR_VAR_1}.");
static const u8 sText_Mister[] = _("MELLO");
static const u8 sText_Laddie[] = _("MILLA");
static const u8 sText_Lassie[] = _("MILLO");
static const u8 sText_Master[] = _("MAESTRO");
static const u8 sText_Dude[] = _("RAGAZZO");
static const u8 sText_Miss[] = _("RAGAZZA");
#endif
static const u8 *const sBlenderOpponentsNames[] =
@@ -345,6 +363,30 @@ static const u8 sText_Ranking[] = _("CLASSEMENT");
static const u8 sText_TheLevelIs[] = _("Niveau: ");
static const u8 sText_TheFeelIs[] = _(" / Onctuosité: ");
static const u8 sText_Dot2[] = _(".");
#elif ITALIAN
static const u8 sText_PressAToStart[] = _("Premi il pulsante A per iniziare.");
static const u8 sText_PleaseWaitAWhile[] = _("Attendi…");
static const u8 sText_CommunicationStandby[] = _("Un momento…");
static const u8 sText_WouldLikeToBlendAnotherBerry[] = _("Vuoi fare un altro mix di BACCHE?");
static const u8 sText_RunOutOfBerriesForBlending[] = _("Non hai più BACCHE da\nmettere nel MIXER BACCHE.\p");
static const u8 sText_YourPokeblockCaseIsFull[] = _("Il tuo PORTA{POKEMELLE} è pieno.\p");
static const u8 sText_HasNoBerriesToPut[] = _("{STR_VAR_1} non ha BACCHE da mettere\nnel MIXER BACCHE.");
static const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("Il PORTA{POKEMELLE} di {STR_VAR_1} è pieno.\p");
static const u8 sText_BlendingResults[] = _("RISULTATI del MIX");
static const u8 sText_BerryUsed[] = _("BACCA:");
static const u8 sText_SpaceBerry[] = _("BACCA{STR_VAR_1}");
static const u8 sText_Time[] = _("TEMPO");
static const u8 sText_Min[] = _(" MIN. ");
static const u8 sText_Sec[] = _(" SEC.");
static const u8 sText_MaximumSpeed[] = _("VELOCITÀ MAX");
static const u8 sText_RPM[] = _(" G/M");
static const u8 sText_Dot[] = _("º");
static const u8 sText_NewLine[] = _("\n");
static const u8 sText_Space[] = _(" ");
static const u8 sText_Ranking[] = _("CLASSIFICA");
static const u8 sText_TheLevelIs[] = _("Il livello è ");
static const u8 sText_TheFeelIs[] = _(" e la fibra è ");
static const u8 sText_Dot2[] = _(".");
#endif
static const struct BgTemplate sBgTemplates[3] =
@@ -977,7 +1019,7 @@ static const struct WindowTemplate sBlenderRecordWindowTemplate =
.height = 11,
.paletteNum = 15,
.baseBlock = 8
#elif FRENCH
#elif FRENCH || ITALIAN
0x05, 0x03, 0x03, 0x03, 0x02, 0x02
#endif
};
@@ -1013,7 +1055,7 @@ static bool8 LoadBerryBlenderGfx(void)
CopyBgTilemapBufferToVram(2);
#if ENGLISH
LoadPalette(sBlenderCenter_Pal, 0, 0x100);
#elif FRENCH
#elif FRENCH || ITALIAN
LoadPalette(gBlenderCenter_Pal, 0, 0x100);
#endif
sBerryBlender->loadGfxState++;
@@ -2908,7 +2950,7 @@ static void CB2_CheckPlayAgainLink(void)
StringCopy(gStringVar4, gLinkPlayers[sBerryBlender->canceledPlayerId].name);
#if ENGLISH
StringAppend(gStringVar4, sText_ApostropheSPokeblockCaseIsFull);
#elif FRENCH
#elif FRENCH || ITALIAN
StringAppendWithPlaceholder(gStringVar4, sText_ApostropheSPokeblockCaseIsFull, gStringVar4);
#endif
break;
@@ -2917,7 +2959,7 @@ static void CB2_CheckPlayAgainLink(void)
StringCopy(gStringVar4, gLinkPlayers[sBerryBlender->canceledPlayerId].name);
#if ENGLISH
StringAppend(gStringVar4, sText_HasNoBerriesToPut);
#elif FRENCH
#elif FRENCH || ITALIAN
StringAppendWithPlaceholder(gStringVar4, sText_HasNoBerriesToPut, gStringVar4);
#endif
break;
@@ -3580,7 +3622,7 @@ static bool8 PrintBlendingResults(void)
ConvertInternationalString(sBerryBlender->stringVar, gLinkPlayers[place].language);
#if ENGLISH
StringAppend(sBerryBlender->stringVar, sText_SpaceBerry);
#elif FRENCH
#elif FRENCH || ITALIAN
StringAppendWithPlaceholder(sBerryBlender->stringVar, sText_SpaceBerry, sBerryBlender->stringVar);
#endif
Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0x54, yPos, TEXT_SKIP_DRAW, 3);
@@ -3590,7 +3632,7 @@ static bool8 PrintBlendingResults(void)
ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->maxRPM / 100, STR_CONV_MODE_RIGHT_ALIGN, 3);
#if ENGLISH
StringAppend(sBerryBlender->stringVar, sText_Dot);
#elif FRENCH
#elif FRENCH || ITALIAN
{
u8 comma[] = _(",");
StringAppend(sBerryBlender->stringVar, comma);
@@ -3667,7 +3709,7 @@ static bool8 PrintBlendingResults(void)
return FALSE;
}
#if FRENCH
#if FRENCH || ITALIAN
static const u8 sUnused2[] = {0x03, 0x03, 0x03, 0x03, 0x02};
#endif
@@ -3680,7 +3722,7 @@ static void PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst)
StringCopy(dst, gPokeblockNames[pokeblock->color]);
#if ENGLISH
StringAppend(dst, sText_WasMade);
#elif FRENCH
#elif FRENCH || ITALIAN
StringAppendWithPlaceholder(dst, sText_WasMade, dst);
#endif
StringAppend(dst, sText_NewLine);
@@ -3847,7 +3889,7 @@ void ShowBerryBlenderRecordWindow(void)
u8 text[32];
winTemplate = sBlenderRecordWindowTemplate;
#elif FRENCH
#elif FRENCH || ITALIAN
struct WindowTemplate winTemplate =
{
.bg = 0,
@@ -3878,7 +3920,7 @@ void ShowBerryBlenderRecordWindow(void)
txtPtr = ConvertIntToDecimalStringN(text, record / 100, STR_CONV_MODE_RIGHT_ALIGN, 3);
#if ENGLISH
txtPtr = StringAppend(txtPtr, sText_Dot);
#elif FRENCH
#elif FRENCH || ITALIAN
*txtPtr++ = CHAR_COMMA;
*txtPtr = EOS;
#endif

View File

@@ -98,6 +98,43 @@ static const u8 sText_TransmissionFailureTryAgain[] = _(
"Echec de la transmission.\n"
"{COLOR 4}{SHADOW 5}Veuillez réessayer.");
#elif ITALIAN
static const u8 sText_BerryProgramUpdate[] = _("Aggiornamento Programma Bacche");
static const u8 sText_RubySapphire[] = _("Rubino/Zaffiro");
static const u8 sText_Emerald[] = _("Smeraldo");
static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _(
"Il Programma Bacche della cassetta di\n"
"gioco POKéMON Rubino o Zaffiro verrà\n"
"aggiornato.\n"
"{COLOR 4}{SHADOW 5}Premi il pulsante A.");
static const u8 sText_EnsureGBAConnectionMatches[] = _(
"I Game Boy Advance sono collegati\n"
"come mostrato in figura?\n"
"{COLOR 4}{SHADOW 5}SÌ: premi il pulsante A.\n"
"NO: spegni (OFF) e riprova.");
static const u8 sText_TurnOffPowerHoldingStartSelect[] = _(
"Accendi (ON) la console contenente\n"
"POKéMON Rubino o Zaffiro mentre tieni\n"
"premuti START e SELECT. Assicurati\n"
"che appaia limmagine qui mostrata.");
static const u8 sText_TransmittingPleaseWait[] = _(
"Trasmissione in corso. Attendi…\n"
"{COLOR 4}{SHADOW 5}Non spegnere (OFF) il Game Boy\n"
"Advance e non scollegare il cavo\n"
"Game Link per Game Boy Advance.");
static const u8 sText_PleaseFollowInstructionsOnScreen[] = _(
"Segui le istruzioni a schermo\n"
"di POKéMON Rubino o Zaffiro.");
static const u8 sText_TransmissionFailureTryAgain[] = _(
"La trasmissione non è riuscita.\n"
"{COLOR 4}{SHADOW 5}Riprova.");
#endif
static const struct BgTemplate sBerryFixBgTemplates[] = {

View File

@@ -106,12 +106,20 @@ static const struct WindowTemplate sWindowTemplates[] =
.bg = 1,
.tilemapLeft = 11,
.tilemapTop = 4,
#if ENGLISH
.width = 8,
.height = 2,
.paletteNum = 15,
#if ENGLISH
.baseBlock = 69,
#elif FRENCH
.width = 8,
.height = 2,
.paletteNum = 15,
.baseBlock = 72,
#elif ITALIAN
.width = 13,
.height = 2,
.paletteNum = 15,
.baseBlock = 72,
#endif
},
@@ -126,6 +134,8 @@ static const struct WindowTemplate sWindowTemplates[] =
.baseBlock = 85,
#elif FRENCH
.baseBlock = 88,
#elif ITALIAN
.baseBlock = 98,
#endif
},
{ // WIN_DESC
@@ -144,6 +154,13 @@ static const struct WindowTemplate sWindowTemplates[] =
.height = 4,
.paletteNum = 15,
.baseBlock = 160,
#elif ITALIAN
.tilemapLeft = 3,
.tilemapTop = 14,
.width = 27,
.height = 4,
.paletteNum = 15,
.baseBlock = 170,
#endif
},
{ // WIN_BERRY_TAG
@@ -157,6 +174,8 @@ static const struct WindowTemplate sWindowTemplates[] =
.baseBlock = 257,
#elif FRENCH
.baseBlock = 268,
#elif ITALIAN
.baseBlock = 278,
#endif
},
DUMMY_WIN_TEMPLATE
@@ -423,12 +442,16 @@ static void PrintBerryNumberAndName(void)
#if ENGLISH
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, STR_CONV_MODE_LEADING_ZEROS, 2);
StringCopy(gStringVar2, berry->name);
#elif FRENCH
const struct Berry *berry;
ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, STR_CONV_MODE_LEADING_ZEROS, 2);
berry = GetBerryInfo(sBerryTag->berryId);
#endif
StringCopy(gStringVar2, berry->name);
#elif ITALIAN
ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, STR_CONV_MODE_LEADING_ZEROS, 2);
StringCopy(gStringVar2, ItemId_GetName(BERRY_TO_ITEM(sBerryTag->berryId)));
#endif
StringExpandPlaceholders(gStringVar4, gText_NumberVar1Var2);
PrintTextInBerryTagScreen(WIN_BERRY_NAME, gStringVar4, 0, 1, 0, 0);
}
@@ -450,7 +473,7 @@ static void PrintBerrySize(void)
ConvertIntToDecimalStringN(gStringVar1, inches, STR_CONV_MODE_LEFT_ALIGN, 2);
ConvertIntToDecimalStringN(gStringVar2, fraction, STR_CONV_MODE_LEFT_ALIGN, 2);
#elif FRENCH
#elif FRENCH || ITALIAN
ConvertIntToDecimalStringN(gStringVar1, berry->size / 10, STR_CONV_MODE_LEFT_ALIGN, 2);
ConvertIntToDecimalStringN(gStringVar2, berry->size % 10, STR_CONV_MODE_LEFT_ALIGN, 2);
#endif
@@ -478,7 +501,7 @@ static void PrintBerryDescription1(void)
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
#if ENGLISH
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description1, 0, 1, 0, NULL);
#elif FRENCH
#elif FRENCH || ITALIAN
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description1, 5, 1, 0, NULL);
#endif
}
@@ -488,7 +511,7 @@ static void PrintBerryDescription2(void)
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
#if ENGLISH
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description2, 0, 17, 0, NULL);
#elif FRENCH
#elif FRENCH || ITALIAN
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description2, 5, 17, 0, NULL);
#endif
}

View File

@@ -23,6 +23,9 @@ void PrintCoinsString(u32 coinAmount)
#elif FRENCH
xAlign = GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 0x38);
AddTextPrinterParameterized(sCoinsWindowId, FONT_NARROW, gStringVar4, xAlign, 1, 0, NULL);
#elif ITALIAN
xAlign = GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 0x30);
AddTextPrinterParameterized(sCoinsWindowId, FONT_NARROW, gStringVar4, xAlign, 1, 0, NULL);
#endif
}
@@ -34,6 +37,8 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
SetWindowTemplateFields(&template, 0, x, y, 8, 2, 0xF, 0x141);
#elif FRENCH
SetWindowTemplateFields(&template, 0, x, y, 7, 2, 0xF, 0x141);
#elif ITALIAN
SetWindowTemplateFields(&template, 0, x, y, 6, 2, 0xF, 0x141);
#endif
sCoinsWindowId = AddWindow(&template);
FillWindowPixelBuffer(sCoinsWindowId, PIXEL_FILL(0));

View File

@@ -790,7 +790,7 @@ static void Task_UpdatePage(u8 taskId)
{
#if ENGLISH
gTasks[taskId].tDelay = 115;
#elif FRENCH
#elif FRENCH || ITALIAN
gTasks[taskId].tDelay = 121;
#endif
gTasks[taskId].tState++;
@@ -928,7 +928,7 @@ static void Task_ShowMons(u8 taskId)
sCreditsData->currShownMon++;
#if ENGLISH
gSprites[spriteId].data[3] = 50;
#elif FRENCH
#elif FRENCH || ITALIAN
gSprites[spriteId].data[3] = 52;
#endif
}
@@ -946,7 +946,7 @@ static void Task_ShowMons(u8 taskId)
#if ENGLISH
gTasks[taskId].tDelay = 50;
#elif FRENCH
#elif FRENCH || ITALIAN
gTasks[taskId].tDelay = 52;
#endif
gTasks[taskId].tState++;
@@ -1095,7 +1095,7 @@ static void Task_CycleSceneryPalette(u8 taskId)
{
#if ENGLISH
if (gTasks[taskId].tTimer == 584)
#elif FRENCH
#elif FRENCH || ITALIAN
if (gTasks[taskId].tTimer == 620)
#endif
{
@@ -1317,7 +1317,7 @@ static void LoadTheEndScreen(u16 tileOffsetLoad, u16 tileOffsetWrite, u16 palOff
for (i = 0; i < 32 * 32; i++)
((u16 *) (VRAM + tileOffsetWrite))[i] = baseTile + 1;
#elif FRENCH
#elif FRENCH || ITALIAN
LZ77UnCompVram(gCreditsCopyrightEnd_Gfx, (void *)(VRAM + tileOffsetLoad));
LoadPalette(gIntroCopyright_Pal, palOffset, sizeof(gIntroCopyright_Pal));
@@ -1371,7 +1371,7 @@ static void DrawTheEnd(u16 offset, u16 palette)
DrawLetterMapTiles(sTheEnd_LetterMap_N, 20, 7, offset, palette);
DrawLetterMapTiles(sTheEnd_LetterMap_D, 24, 7, offset, palette);
}
#elif FRENCH
#elif FRENCH || ITALIAN
static void DrawTheEnd(u16 offset, u16 palette)
{
LZ77UnCompVram(gCreditsCopyrightEnd_Tilemap, ((u16 *) (VRAM + offset)));

Some files were not shown because too many files have changed in this diff Show More