我需要将一个中文软件翻译成英文。也为了以后方便维护。
我将资源文件单独做成了dll,有英文dll和中文dll.
原来代码里的所有显示的字符串基本都是MessageBox("你好");
现在我都改成了CString str; str.LoadString(ID_NIHAO);MessageBox(str);
而ID_NIHAO是在资源dll里定义的。
这种方法我是在网上看到的。
现在由于我的软件很庞大,里面就有很多各种各样的字符串,我估计有几千个,如果要中英文都有的话,这样就要定义很多资源字符串,我的rc文件就很大。
而且每个显示语句基本都变成三行。实在写的我累死了。
而且以后维护也不是很简单。
请问高手们,有没有简单一点的方法呢?
我将资源文件单独做成了dll,有英文dll和中文dll.
原来代码里的所有显示的字符串基本都是MessageBox("你好");
现在我都改成了CString str; str.LoadString(ID_NIHAO);MessageBox(str);
而ID_NIHAO是在资源dll里定义的。
这种方法我是在网上看到的。
现在由于我的软件很庞大,里面就有很多各种各样的字符串,我估计有几千个,如果要中英文都有的话,这样就要定义很多资源字符串,我的rc文件就很大。
而且每个显示语句基本都变成三行。实在写的我累死了。
而且以后维护也不是很简单。
请问高手们,有没有简单一点的方法呢?
可以用编译器带的 “查找”功能来找到并替换
CString CVRT(int iID)
{
CString str;
str.LoadString(××);
return str;
}程序中:
"xx"替换为 CVRT(xx)这样处理可以省不少手工,以后再有改变,只需要维护CVRT函数
这样会不会读起来比较慢,每次都要读文件。还是一开始都读好,那这样初始化不是很慢吗?
#define MESSAGEBOX() .....