Two main methods of forcing language
1) Cheat, or variation on the theme.
The DS firmware settings (or the fake ones emulators*/later hardware might inject instead) will be in memory somewhere, pretty much like detailed in the firmware itself ( http://problemkaputt.de/gbatek.htm#dsfirmwareusersettings
). Said memory is what the game will read rather than trying to talk to the firmware or something so change this and you change the language. The few times I have gone looking it is usually towards the end of the main memory just before where you find the overlays and it is pretty easy to pick up with cheat searching.
If you would rather not make a cheat you can change the read of the game to return whatever you like. A bit more elegant (it might be one instruction change) than forcing some area of memory to always be something and what some of the unlock Japanese language cheats
did for things like Advance Wars and that climbing/police game I think it was. You would tend to start out by finding the cheat form of it/where the firmware stuff is stored and then rather than changing that you find the thing that reads it (usually very early in the game execution which is nice) to return whatever you so desire.
*we have seen this a few times when flash carts or limited emulators on stuff like android will not allow editing the settings but might allow cheats
, or a ROM patched with dsatm.
2) Pull apart the game with ndstool or similar, find the language files and rename/overwrite as necessary. Far from foolproof and very crude but can be worth a try as it has worked on many occasions for many people. Equally it is not like you need to know any ROM hacking to rename a folder called lang_f to lang_e if you want to force French and your emulator/cart/whatever only does English or your can't be bothered to keep changing it for certain games.
There might be a game out there which asks once when you first boot and sticks with that forever more or for a given save, this is possibly harder to fiddle with but again it will probably be a thing in memory you can try to change or a save you can try to edit.