在window下用dll做多国语言是比较方便的,只要加载资源dll,然后调用AfxSetResourceHandle API 就可以实现多国语言了;但用dll做多国语言,翻译成其他语言不是很方便。
我在看TortoiseSVN源代码时,它也是用dll做多国语言,不过它提供一个命令行程序把资源dll的字符提取出来,生成pot文件(了解linux下i18n的都知道pot文件),把字符翻译后,也是通过这个程序把原资源dll生成翻译后的dll。这样就解决了翻译不方便的问题。
我基于这个命令行程序写了一个界面程序,也修正了里面的一个bug(只在vc6下测试过);界面如下:
左边是把一个资源dll里的字符提取出来,生成pot文件;右边是生成翻译后的dll,它需要原资源dll和翻译后的po文件(pot文件直接改后缀就可以了)。在window下可以用poedit翻译po文件。
这个程序的源代码在 http://download.csdn.net/source/1858664