VC在一个工程中实现多语言版本(转)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

 

VC在一个工程中实现多语言版本


作者:朱勤武

下载源代码

  前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不同版本时,程序可以自动链接不同资源文件 。下面把具体的方法写出来。供大家参考一下。

第一步、创建中英文版本资源文件

  我们先创建第一个中文版本工程,假设工程名称为 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

# End Source File
# Begin Source File

SOURCE=./Example_en.rc
# PROP Exclude_From_Build 1

# End Source File
# Begin Source File

在SOURCE=./Example_ch.rc行后面加入下面代码

SOURCE=./Example_ch.rc

!IF  "$(CFG)" == "Example - Win32 Debug English"

# PROP Exclude_From_Build 1

!ELSEIF  "$(CFG)" == "Example - Win32 Debug Chinese"

!ENDIF 

在SOURCE=./Example_en.rc行后面加入下面代码:

!IF  "$(CFG)" == "Example - Win32 Debug English"

!ELSEIF  "$(CFG)" == "Example - Win32 Debug Chinese"

第五步、现在打开工程,按照不同的要求编译不同版本就行了,比如这个时候我们要英文版本

  在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug English 即可,如果要中文版本 , 在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug Chinese 即可。

结论

   如果以后要添加资源,只要在 Resourch。h 文件中定义资源号,然后在中英文资源文件中添加相应的资源串就行,当然这个时候不能直接在工作区的 Resourc 中添加 ,而要用记事本等工具打开资源文件再添加哟。

本程序在Win2000,VC++6.0英文版本下编译通过。

 

 

原文地址:http://www.vckbase.com/document/viewdoc/?id=1079

 

VC++实现软件的多语种支持 作者:卞远 VC++实现软件的多语种支持 作者:卞远 发布时间:2001/04/25 文章摘要:  本文介绍了如何编制自己的双语或多语种软件。首先,创建一个包含所有英文资源的DLL,在使用这个资源DLL时,应用程序就会以英文形式出现,即软件为英文版;然后,创建中文DLL,再次运行StateDemo程序,程序就以中文形式出现(即使应用 阅读详情

相关推荐

VC中使用纯资源dll实现多语言版本()

<br /> <br /> 由于MFC应用程序也有自己的资源文件,当你调用MFC函数比如 CString::LoadString 或其它 LoadIcon <br />时,MFC应用程序框架首先跟踪搜索EXE文件的资源,然后才是DLL和MFC的资源,因此在使用纯资源DLL时候,必须人为先改变资源的搜索顺序,可以通过使用 <br />AfxSetResourceHandle 函数来实现,具体实现如下:<br /> <br />      BOOL CMultilanguageApp::InitInstance

catman70246的专栏 1671

VC 为程序窗口添加多国语言选择切换功能.rar

VC 为程序窗口添加多国语言选择切换功能,让不同的用户使用不同的语言,在简体中文、英文两种语言间切换,当然还可以添加其它国家的语言,只要你需要,就可在此基础上扩充完善。让程序实现多国语言动态切换的方法:   传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不能动态切换语言,如果更换语言后必须重新启动软件。当然,没有人会需要经常的切换语言玩儿,但是采用动态库的方法,如果程序需要修改资源的话,就要更新所有的动态库,这是一个非常枯燥而且容易出现疏漏的工作。   本源码所演示的方法是把所有用到的字符串都放到文件中,一种语言一个文件,根据选择的语言到对应的文件中去加载字符串。这样不但可以动态切换语言,而且用户可以根据需要自己添加新的语言

VC实现多语言程序版本

VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本VC实现多语言程序版本

VC中创建两套资源解决中英文版本发布的问题

一、背景         当软件需要发布多个不同语言版本时,对资源编辑的菜单,按钮,对话框大小形状有不同的要求。比如同个单词用中文/英文描述字符长度差异较大,如果这个单词用作按钮的标题,对按钮的大小要求就不一样。这时可以有两种解决方法:1、通过代码动态调整按钮的大小,较麻烦,也

Neo.Yang的专栏 1972

vc实现多语言资源

<br />用VC5.0实现:软件中的多种语言支持<br /><br />  MS Windows操作系统是一个世界上广泛使用的操作系统,对于不同语种的国家MS Windows有相应语种的版本。在不同语种的Windows平台上应该运行相应语种的应用程序。也就是说程序的用户界面(如菜单、对话框、状态条)中的提示文字应该使用和Windows操作系统所使用的语种一致。当然英语用户界面的程序可以运行在其它语言平台上,但比较复杂的程序或多或少都有问题,如对话框的尺寸不对,特殊的ASCII字符显示为文字,输入字符串可能

qsycn的专栏 1944

VC工程中添加多语言支持

VC工程中添加多语言支持(2008-06-18 12:05:26)标签:vc多语言支持 资源dll it  分类:编程手记随着贸易国际化,在软件开发过程中,常会碰到需在现有中文版软件加入多语言支持的情况。由于不同语言版本间的差别通常仅是软件操作界面的不同,为实现多语言支持,使用纯资源DLL是一个不错的解决之道。所谓纯资源DLL是指只

tikycc2的专栏 799

VC2008以资源形式实现多语言版本

越来越多的程序支持多语言切换,或者能自动适应当前系统语言,让自己开发的程序支持多语言不仅可以让自己的程序被国人使用,也能让外国程序爱好者使用。VC开发多语言程序有多种方法,或读取配置文件,或使用不同资源DLL等等。这里介绍以资源形式实现多语言版本。 1.打开Visual Studio 2008,新建一个基于对话框工程,名称为LanguageTest,不使用Unicode库 ,资源语言一共有十

无幻 1万+

载:VC一个工程实现多语言版本

载地址:http://www.vckbase.com/index.php/wv/813 VC一个工程实现多语言版本 前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不

春夜喜雨的专栏 1448

VC6中实现多语言支持

VC6中实现多语言支持张志刚  2004年6月30日       随着计算机在各种行业的普及,以及我国软件行业的发展,国产软件在不断的走出国门,所以各种软件的多语言支持也被越来越多的程序员所关注。对于一个软件程序为了支持不同语言,而创建不同的源程序显然不是一个很好的方法。本文主要介绍如何在VC6环境下通过创建支持多语言资源文件实现多语言支持。首先创建一个支持简体中文的工程项目Test,对该工

zzgff的专栏 2132

VC一个工程实现多语言版本

前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不同版本时,程序可以自动链接不同资源文件 。下面把具体的方法写出来。供大家参考一下。 第一步、创建中英文版本资源文件 我们先创建

chaoguodong的专栏 1532

VC实现界面多语言

VC实现界面多语言化 几种常见的多语言化方法 VC实现多语言化有多种方法,下面简要介绍了几种方法并进行了比较。 方法1:为每个资源项(对话框、字符串、菜单等)创建一个或者多个副本,并将其内容更改为目标语言,并在程序启动时调用SetThreadLocale()函数设置语言环境,以后程序就会自动调用指定语言版本的资源了。如需从资源加载一个字符串,代码如下: CStrings;

My学习空间 8651

VC++ 实现软件多语言版本

资源库的切换实现,把自己的资源编译成一个dll,在exe中通过调用AfxSetResourceHandle的方式来切换当前资源从而实现语言的切换 1.实现简单 2.对于不同语言,可以修改相应资源适应界面,不会出现界面显示不完整的问题

vc多国语言动态切换的一种实现

vc多国语言动态切换的一种实现Stringtable加载实现

VC一个工程实现多语言版本源代码

前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不同版本时,程序可以自动链接不同资源文件。下面把具体的方法写出来。供大家参考一下。 关键字:language,resource

VC中使用纯资源dll实现多语言版本

VC纯资源dll解决国际化问题这的确是个老话重谈了,因为这里面确实也没有什么可以称的上技术含量的,只是实现起来有点烦琐,不过我还是要写出来,希望刚接触这方面的同行们不至于走太多的弯路。  由于MFC应用程序也有自己的资源文件,当你调用MFC函数比如 CString::LoadString 或其它 LoadIcon 时,MFC应用程序框架首先跟踪搜索EXE文件的资源,然后才是DLL和MFC的

开发 2407

VC2008以资源形式实现多语言版本(非Unicode) .

http://blog.csdn.net/jiht594/article/details/7043520对比,本文使用了SetThreadLocale。 越来越多的程序支持多语言切换,或者能自动适应当前系统语言,让自己开发的程序支持多语言不仅可以让自己的程序被国人使用,也能让外国程序爱好者使用。VC开发多语言程序有多种方法,或读取配置文件,或使用不同资源DLL等等。这里介绍...

dizhi5320的博客 113
上一篇: 关于using namesapce std
下一篇: VC6.0到VS2008迁移排错
Bilter
博客等级 码龄21年 87粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值