VC在一个工程中实现多语言版本
2014-09-26 14:46
302 查看
前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不同版本时,程序可以自动链接不同资源文件 。下面把具体的方法写出来。供大家参考一下。
第一步、创建中英文版本资源文件
我们先创建第一个中文版本工程,假设工程名称为 Example,在向导第一步的“What language would you like you resource in” 选择中文 (如下图),其它使用缺省值。
然后在工程中把 Example.rc 删除,这里虽然删除了文件,但实际上在工程文件目录文件还是存在的。进入工程目录下把资源文件名改成Example_Ch.rc,再在 VC 编译器中加入 Example_Ch.rc 文件 ,关闭工程。
然后再创建一个同名的英文版本工程。也就是在选择资源语言时选择英语(可以保存在不同的目录下)
创建完后,把英文版本目录下的 Example.rc 文件拷贝到中文工程的目录下,其实我们就只是要这个资源文件。并把名称改为 Example_En.rc。
第二步、在工程中设置版本信息
打开中文件工程,把英文资源文件添加进工程,在添加时会有提示出现,不要理会,按确认就行。
选择菜单 Build->Configurations,增加一个工程配置,在Configuration中输入 Debug English 在 Copy Setting from 中选择 Debug 就可以(见下图),使用相同的方法,再增加一个 Debug Chinese 配置,并把原来的 Debug 删除。
第三步、设置工程信息
选择菜单 Project->Settings,在左边的 Setting For 中选择 Debug Chinese 在 Generatl 属性页的 Intermediate files 中输入 Debug Chinese,在 Output files 中输入 Chinese。在 Resource 属性页的 Resource file name 中输入 Debug Chinese/Example_Ch.res,(见下图)其它缺省就行。
用同样的方法在来设置英文版本信息。在左边的 Setting For 中选择 Debug Enghlis 在 Generatl 属性页的 Intermediate files 中输入 Debug Enghlis,在 Output files 中输入 Enghlis。在 Resource 属性页的 Resource file name中输入 Debug English/Example_En.res,其它缺省就行。
本程序在 WIN2000+VC6。0环境下通过。
第四步、修改 DSP 文件,用记事本打开工程下的 Example。dsp 文件
找到如下行:
在SOURCE=.\Example_ch.rc行后面加入下面代码
在SOURCE=.\Example_en.rc行后面加入下面代码:
第五步、现在打开工程,按照不同的要求编译不同版本就行了,比如这个时候我们要英文版本
在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug English 即可,如果要中文版本 , 在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug Chinese 即可。
结论
如果以后要添加资源,只要在 Resourch。h 文件中定义资源号,然后在中英文资源文件中添加相应的资源串就行,当然这个时候不能直接在工作区的 Resourc 中添加 ,而要用记事本等工具打开资源文件再添加哟。
第一步、创建中英文版本资源文件
我们先创建第一个中文版本工程,假设工程名称为 Example,在向导第一步的“What language would you like you resource in” 选择中文 (如下图),其它使用缺省值。
然后在工程中把 Example.rc 删除,这里虽然删除了文件,但实际上在工程文件目录文件还是存在的。进入工程目录下把资源文件名改成Example_Ch.rc,再在 VC 编译器中加入 Example_Ch.rc 文件 ,关闭工程。
然后再创建一个同名的英文版本工程。也就是在选择资源语言时选择英语(可以保存在不同的目录下)
创建完后,把英文版本目录下的 Example.rc 文件拷贝到中文工程的目录下,其实我们就只是要这个资源文件。并把名称改为 Example_En.rc。
第二步、在工程中设置版本信息
打开中文件工程,把英文资源文件添加进工程,在添加时会有提示出现,不要理会,按确认就行。
选择菜单 Build->Configurations,增加一个工程配置,在Configuration中输入 Debug English 在 Copy Setting from 中选择 Debug 就可以(见下图),使用相同的方法,再增加一个 Debug Chinese 配置,并把原来的 Debug 删除。
第三步、设置工程信息
选择菜单 Project->Settings,在左边的 Setting For 中选择 Debug Chinese 在 Generatl 属性页的 Intermediate files 中输入 Debug Chinese,在 Output files 中输入 Chinese。在 Resource 属性页的 Resource file name 中输入 Debug Chinese/Example_Ch.res,(见下图)其它缺省就行。
用同样的方法在来设置英文版本信息。在左边的 Setting For 中选择 Debug Enghlis 在 Generatl 属性页的 Intermediate files 中输入 Debug Enghlis,在 Output files 中输入 Enghlis。在 Resource 属性页的 Resource file name中输入 Debug English/Example_En.res,其它缺省就行。
本程序在 WIN2000+VC6。0环境下通过。
第四步、修改 DSP 文件,用记事本打开工程下的 Example。dsp 文件
找到如下行:
01.
SOURCE=.\Example_ch.rc
02.
03.
# End Source File
04.
# Begin Source File
05.
06.
SOURCE=.\Example_en.rc
07.
# PROP Exclude_From_Build 1
08.
09.
# End Source File
10.
# Begin Source File
在SOURCE=.\Example_ch.rc行后面加入下面代码
01.
SOURCE=.\Example_ch.rc
02.
03.
!IF
"$(CFG)"
==
"Example - Win32 Debug English"
04.
05.
# PROP Exclude_From_Build 1
06.
07.
!ELSEIF
"$(CFG)"
==
"Example - Win32 Debug Chinese"
08.
09.
!ENDIF
在SOURCE=.\Example_en.rc行后面加入下面代码:
1.
!IF
"$(CFG)"
==
"Example - Win32 Debug English"
2.
3.
!ELSEIF
"$(CFG)"
==
"Example - Win32 Debug Chinese"
第五步、现在打开工程,按照不同的要求编译不同版本就行了,比如这个时候我们要英文版本
在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug English 即可,如果要中文版本 , 在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug Chinese 即可。
结论
如果以后要添加资源,只要在 Resourch。h 文件中定义资源号,然后在中英文资源文件中添加相应的资源串就行,当然这个时候不能直接在工作区的 Resourc 中添加 ,而要用记事本等工具打开资源文件再添加哟。
相关文章推荐
- 转载:VC在一个工程中实现多语言版本
- VC在一个工程中实现多语言版本(转)
- VC2008以资源形式实现多语言版本(非Unicode)
- L脚本语言 写一个清理VC工程目录的脚本
- VC中使用纯资源dll实现多语言版本(转)
- Java类加载机制——如何实现一个工程中不同模块加载不同版本的同名jar包。
- VC2008以资源形式实现多语言版本[转]
- VC中使用纯资源dll实现多语言版本
- VC INI文件实现多语言版本
- VC2008以资源形式实现多语言版本
- 用shell脚本语言实现一个斐波那契数列的递归和非递归版本
- 修正了版本管理实现中的一个bug
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- 用VS2005实现软件多语言版本的迅捷开发
- 使用自定义类实现工程多语言
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- 第一次真正意义上的用VC++实现的一个完整的Win32程序-俄罗斯方块
- [导入]用控件仅一条指令实现界面换肤和多语言版本(YFSkins)
- 在VC程序中实现点击某一文档全路径(如一个Word文档)自动在相关浏览器(MS WORD)中观看
- 用VS2005实现软件多语言版本的迅捷开发(转载)