Loups_des_bois
Pokémon Ranger
A litle guide for everyone who wants translate POKEMON 3D in his language.
the requirements:
POKEMON 3D FILES
Notepad ++
Your Brain
So for the moments we can only translate files in folder "Maps" and "Scripts"
Map translation:
We only need translate town's name, NPC and sign
So
Will became:
Now For Script:
history script:
we only translate the "@Text" party
For a script like elm.dat we have
will became:
And now for trainers, we translate dialogue and NPC type
will became
For POKEMON'name and POKEDEX:
you must translate all "folder title/name" ' in ...\pokemon 3D 0.20 Fr\Pokemon\Content\Pokemon\Animations
and you must translatte all files in pokemon 3D 0.20 Fr\Pokemon\Content\Pokemon\Data
In file 1.dat for Charizard for exemple:
you only translate "Name,type,Eggsgroupe and POKEDEX"
Data for POKEDEX here in any language for cut and paste 
For language with emphasis like:"é,è,à ...." you must save in UTF-8
the requirements:
POKEMON 3D FILES
Notepad ++
Your Brain
So for the moments we can only translate files in folder "Maps" and "Scripts"
Map translation:
We only need translate town's name, NPC and sign
So
Code:
{"Level"{LEV[{"Name"{str[Violet City]}}{"MusicLoop"{str[violet]}}]}}
....
Signs:
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[24,0,22]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[VIOLET CITY*This old village is~still surrounded by~trees and other~scenery.]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[27,0,19]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[EARL'S POKEMON~ACADEMY]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[15,0,19]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[VIOLET CITY*This old village is~still surrounded by~trees and other~scenery.]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[24,0,10]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[SPROUT TOWER*Experience the~Way of POKEMON.]}}{"Rotation"{int[0]}}]}}
....
NPC:
{"NPC"{NPC[{"Position"{sngArr[29,0,30]}}{"TextureID"{str[10]}}{"ID"{int[0]}}{"Name"{str[John Maynad]}}{"Action"{int[0]}}{"AdditionalValue"{str[Ghosts are rumored to~appear in SPROUT TOWER.~They said normal-type~POKEMON moves had no~effect on ghosts.]}}{"Rotation"{int[3]}}{"Movement"{str[Walk]}}{"MoveRectangles"{recArr[[26,27,4,7]]}}]}}
{"NPC"{NPC[{"Position"{sngArr[23,0,13]}}{"TextureID"{str[13]}}{"ID"{int[1]}}{"Name"{str[Ass Trainer]}}{"Action"{int[0]}}{"AdditionalValue"{str[Hey, you're a POKEMON~trainer?*If you beat the~GYM LEADER here,~you'll be ready~for prime time!]}}{"Rotation"{int[2]}}{"Movement"{str[Walk]}}{"MoveRectangles"{recArr[[22,12,4,4]]}}]}}
{"NPC"{NPC[{"Position"{sngArr[14,0,23]}}{"TextureID"{str[8]}}{"ID"{int[2]}}{"Name"{str[Derp]}}{"Action"{int[0]}}{"AdditionalValue"{str[I saw a wiggly~tree up ahead!*If you touch it,~it squirms and~dances! Cool!]}}{"Rotation"{int[0]}}{"Movement"{str[Still]}}{"MoveRectangles"{recArr[[22,12,4,4]]}}]}}
{"NPC"{NPC[{"Position"{sngArr[12,0,17]}}{"TextureID"{str[28]}}{"ID"{int[3]}}{"Name"{str[Teacher]}}{"Action"{int[1]}}{"AdditionalValue"{str[violet\teacher]}}{"Rotation"{int[0]}}{"Movement"{str[Looking]}}{"MoveRectangles"{recArr[]}}]}}
Code:
{"Level"{LEV[{"Name"{str[Mauville]}}{"MusicLoop"{str[violet]}}]}}
....
Signs:
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[24,0,22]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[Mauville, la ville aux senteurs~du passé.]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[27,0,19]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[Academie POKEMON]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[15,0,19]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[Champion d'arène de Mauville:~Falkner,le maitre des pokemons~volants.]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[24,0,10]}}{"TexturePath"{str[Village]}}{"Textures"{recArr[[32,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[Tour CHETIFLOR,~elle est grande,~elle est belle et pleine~de POKEMON.]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[32,0,28]}}{"TexturePath"{str[Cherrygrove]}}{"Textures"{recArr[[80,32,16,16][32,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[Centre POKEMON,~nous soignons vos POKEMON.]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"EntityID"{str[SignBlock]}}{"Position"{sngArr[10,0,20]}}{"TexturePath"{str[Cherrygrove]}}{"Textures"{recArr[[96,32,16,16][32,32,16,16]]}}{"TextureIndex"{intArr[0,0,1,1,1,1,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[4]}}{"Action"{int[0]}}{"AdditionalValue"{str[Nous n'avons pas les même valeurs :~Boutique POKEMON!.]}}{"Rotation"{int[0]}}]}}
....
NPC:
{"NPC"{NPC[{"Position"{sngArr[29,0,30]}}{"TextureID"{str[10]}}{"ID"{int[0]}}{"Name"{str[John Maynad]}}{"Action"{int[0]}}{"AdditionalValue"{str[Il y a une rumeur~comme quoi il y a ~des fantômes dans ~cette tour.~Les attaques des POKEMON de type ~normal n'ont aucun effet ~sur les fantômes.]}}{"Rotation"{int[3]}}{"Movement"{str[Walk]}}{"MoveRectangles"{recArr[[26,27,4,7]]}}]}}
{"NPC"{NPC[{"Position"{sngArr[23,0,13]}}{"TextureID"{str[13]}}{"ID"{int[1]}}{"Name"{str[Ass Trainer]}}{"Action"{int[0]}}{"AdditionalValue"{str[Hey, tu es un dresseur ~POKEMON?*Si tu bat le maitre ~d'arène ici,~tu sera prêt pour~le prime time!]}}{"Rotation"{int[2]}}{"Movement"{str[Walk]}}{"MoveRectangles"{recArr[[22,12,4,4]]}}]}}
{"NPC"{NPC[{"Position"{sngArr[14,0,23]}}{"TextureID"{str[8]}}{"ID"{int[2]}}{"Name"{str[Derp]}}{"Action"{int[0]}}{"AdditionalValue"{str[J'ai vu un arbre ondulée~un peu plus loin!*Si tu le touche,~Ils couine et dance! Cool!]}}{"Rotation"{int[0]}}{"Movement"{str[Still]}}{"MoveRectangles"{recArr[[22,12,4,4]]}}]}}
{"NPC"{NPC[{"Position"{sngArr[12,0,17]}}{"TextureID"{str[28]}}{"ID"{int[3]}}{"Name"{str[Teacher]}}{"Action"{int[1]}}{"AdditionalValue"{str[violet\teacher]}}{"Rotation"{int[0]}}{"Movement"{str[Looking]}}{"MoveRectangles"{recArr[]}}]}}
history script:
we only translate the "@Text" party
For a script like elm.dat we have
Code:
:if:register(elm1)
:then
@Text:If a wild POKEMON~appears, let your~POKEMON battle it!
:endif
Code:
:if:register(elm1)
:then
@Text:Si un POKéMON~sauvage apparaît,~défie-le avec ton~POKéMON adoré!
:endif
Code:
168
Bird keeper
Rod
The keyword is~guts!*Those here are~training night and~day to become bird~POKEMON masters.*Come on!
Gaaah!
Gaaah!
9
Johto|Trainer
1|16,7
2|16,7
3|
4|
5|
6|
Code:
168
Gardien d'oiseux
Rod
Le mot clé est "tripe"!*tu en a besoin~pour t'entrainer jour et~nuit pour devenir le~maitre des POKEMON de type vol.*Allez viens te battre!*
Gaaah!
Gaaah!
9
Johto|Trainer
1|16,7
2|16,7
3|
4|
5|
6|
you must translate all "folder title/name" ' in ...\pokemon 3D 0.20 Fr\Pokemon\Content\Pokemon\Animations
and you must translatte all files in pokemon 3D 0.20 Fr\Pokemon\Content\Pokemon\Data
In file 1.dat for Charizard for exemple:
Code:
Name|Charizard
Number|6
ExperienceType|2
BaseExperience|240
Type1|Fire
Type2|Flying
CatchRate|45
BaseFriendship|70
EggGroup1|Monster
EggGroup2|Dragon
BaseEggSteps|5355
IsGenderLess|0
IsMale|87.5
Ability1|65
Ability2|Nothing
Machines|14,15,19,46,53,63,70,76,89,91,92,104,126,156,157,164,182,207,213,216,218,237,241,249,261,263,280,315,317,332,337,374,411,416,421,468,488,496,497,507,510,523,525
BaseHP|78
BaseAttack|84
BaseDefense|78
BaseSpAttack|109
BaseSpDefense|85
BaseSpeed|100
FPHP|0
FPAttack|0
FPDefense|0
FPSpAttack|3
FPSpDefense|0
FPSpeed|0
CanFly|0
CanSwim|0
Pokedex|If CHARIZARD becomes furious the flame at the tip of its tail flares up in a light blue shade.\Flame Pokémon\90.5\1.7\0,148,0
Scale|1.28
Move|1,10
Move|36,17
Move|1,45
Move|1,52
Move|7,52
Move|47,53
Move|17,82
Move|56,83
Move|1,108
Move|10,108
Move|41,163
Move|21,184
Move|71,257
Move|1,337
Move|77,394
Move|1,403
Move|1,421
Move|28,424
Move|32,481
Move|62,517
Code:
Name|Dracaufeu
Number|6
ExperienceType|2
BaseExperience|240
Type1|Feu
Type2|Vol
CatchRate|45
BaseFriendship|70
EggGroup1|Monstre
EggGroup2|Dragon
BaseEggSteps|5355
IsGenderLess|0
IsMale|87.5
Ability1|65
Ability2|Nothing
Machines|14,15,19,46,53,63,70,76,89,91,92,104,126,156,157,164,182,207,213,216,218,237,241,249,261,263,280,315,317,332,337,374,411,416,421,468,488,496,497,507,510,523,525
BaseHP|78
BaseAttack|84
BaseDefense|78
BaseSpAttack|109
BaseSpDefense|85
BaseSpeed|100
FPHP|0
FPAttack|0
FPDefense|0
FPSpAttack|3
FPSpDefense|0
FPSpeed|0
CanFly|0
CanSwim|0
Pokedex|Quand Dracaufeu s'énerve, la flamme au bout de sa queue brille d'une lueur blanche avec des reflets bleus.\Pokémon Flamme\90.5\1.7\0,148,0
Scale|1.28
Move|1,10
Move|36,17
Move|1,45
Move|1,52
Move|7,52
Move|47,53
Move|17,82
Move|56,83
Move|1,108
Move|10,108
Move|41,163
Move|21,184
Move|71,257
Move|1,337
Move|77,394
Move|1,403
Move|1,421
Move|28,424
Move|32,481
Move|62,517
For language with emphasis like:"é,è,à ...." you must save in UTF-8