如何译制VBA/VBA-M(Windows/MFC)

  • 原帖地址
    http://vba-m.com/forum/Thread-…w-to-create-a-translation


    How to create a translation for VBA/VBA-M (Windows/MFC)
    by spacy51


    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 ;)

  • "小坏" wrote:

    额。方便空的时候翻译下不?


    如何译制VBA/VBA-M (Windows/MFC)


    本教程使用的是Visual Studio/C++,但我确信用MinGW和一个资源文件编辑器或者干脆就一个记事本,也能完成。
    译制工作用免费的Express Edition of Visual C++亦可完成。但是Express版并没有资源文件编辑器(visual resource file editor)。所以你得用个外部的编辑器或者就是用记事本来做翻译。不管怎样,编译都没有问题。


    拿到你要翻译的VBA版本对应的源代码。你需要的仅仅是"src\win32\VBA.rc"。该文件包含了所有的字符串,对话框和菜单。移除所有包含"res\VBA.rc2"的行,因为这个文件其实是空的。


    现在打开Visual Studio IDE


    文件 -> 新建 -> 工程 -> Win32 -> Win32 工程 -> DLL (使用默认设置) -> 完成


    这样,包含一个几乎全空的DllMain入口函数的DLL动态连接库工程就建好了。我们就把这建好的文件放着,一丁点儿都不用修改,免得编译器“犯冲”。


    右击工程文件或者在“资源文件”文件夹内右击“添加 -> 已有项目”。浏览打开你保存"VBA.rc"的地方然后点击“添加”按钮



    好啦,“几乎”完工。
    现在该编译工程了。按F7键或者使用“编译(Build)”菜单。


    你可以彻底地把"VBA.rc"里的东西都译成你需要的语言。只要你想,你甚至可以重排对话框等的位置和尺寸。只是别删除任何东西。


    要使用你自己的语言DLL库,你需要重命名其为"vba_XXX.dll",这里xxx是3位语言码。把改好的文件和"VisualBoyAdvance.exe" 放到同一个文件夹下。
    打开 VBA-M 然后打开“选项 -> 模拟器 -> 界面语言 -> 其它” 然后输入3位语言码。译文立即生效。VBA在关闭或重载时会记住这个设置。


    另外,用这个方法就跳过了“破解VBA-M资源文件”来翻译软件了。

Join us

Have your own thoughts on this discussion? Wanna help others, avoid the mistakes you met before? Wanna contribute more to this or other topic? Just join us! Registration is free. Join us!