How to create a translation for VBA/VBA-M (Windows/MFC)
This tutorial uses Visual Studio/C++, but I am pretty sure it is also possible to do this with mingw and a resource file editor or just notepad.
This will also work with the free Express Edition of Visual C++, but you do not get the visual resource file editor with it, so you have to use an external editor or just Notepad to do the translating. However, compiling should work fine.
Get to the source code of the VBA version you want to create a translation for.
The only file you need is "src\win32\VBA.rc". This file contains all strings, dialogs and the menu.
You should remove all lines with "res\VBA.rc2" in it, because the file is empty anyway.
Now open the Visual Studio IDE.
File -> New -> Project -> Win32 -> Win32 Project -> DLL (leave settings at default) -> Finish
A DLL project has been created with an almost empty DllMain entry function. We do not have to modify this in any way, it should just be there so the compiler does not complain.
Right click on the project file or the "Resource Files" folder and select "Add -> Existing Item".
Browse to the place where you saved "VBA.rc" and click on the "Add" button.
Voilà, "almost" done.
The project should compile from now on. Either press F7 or use the "Build" menu.
You can finally translate all the stuff in "VBA.rc" to your desired language, you can even rearrange/resize the dialogs etc. if you want. Please do not delete anything!
In order to use your language DLL, you have to rename it to "vba_XXX.dll", where xxx is the 3 charachter language code, and place it to the same folder where the "VisualBoyAdvance.exe" is located.
Open VBA-M and go to "Options -> Emulator -> UI Language -> Other" and enter the 3 character language code. The translation should be applied instantly and VBA does remember it when closed & reloaded.
Btw, this way it is probably possible to circumvent the resource hacking protection of VBA-M