Since it doesn't seem possible or easy to modify the Japanese 3DS/DSi to display any other language than Japanese/English for the DS/DSi games, I searched a way to force them to launch in the languages I want.

I first tried some hacks on the 3DS/DSi, or modified the files of my games by dump and unpacking them, but no solution works well.

So I searched an Action Replay code that allows me to override the firmware language, to force my games to launch in the language I want.
I found a lot of informations given by FAST6191, and thanks to him I was able to find what I was searching for in the memory viewer of the Desmume emulator: the memory address that change the games language.

I checked many games, and it appears they mostly use the same code since they all access the same information in the firmware!

Requirement to use the code:

- A DSi/3DS (obviously)
- A way to launch your games with action replay codes (Action Replay dongle, R4, DSTwo...)
- Games that contain the language you want (only DS/DSi games!!)

How to do:

Simply use the following AR code with any game you want.

227FFCE4 000000XX

OR

22FFFCE4 000000XX

(both codes work, it appears they can be accessed in to memory points)

Just replace XX by your language code, and it should work.
Here are the language codes you can use:
00 = Japanese
01 = English
02 = French
03 = German
04 = Italian
05 = Spanish

Be careful, some games like Castlevania save the language in the first load and keep it, so you might want to setup the AR code before launching it.
Also, obviously the code will only work if the game is launched with the code already actived, it won't work if you activate it while the game is running.

If you are using a card that supports usrcheat.dat files, I recommend you to use r4cce to add this code. It appears the code is already available inside the usrcheat.dat file, in the "!Codes Placeholder" section, so to use them just copy paste them in your games cheat codes.
I haven't found a way to add the code to all games at once sadly.

Feel free to tell me if you find a better/more simple way to do it, I am open to any suggestion ;)