项目需要中文版和英文版,开发环境vc2013,win7系统,准备在一个工程中同时维护2个RC资源文件,使用中英文软件共享源代码,通过不同配置实现即可编译为中文版,也可编译为英文版。现在已经实现将2个RC资源文件加入该工程中,但是不知道如何配置(比如在项目设置中选择不同的RC文件),各位大侠帮个忙,在线等,谢谢

解决方案 »

  1.   

    多语言切换一般有两种方式实现:
    1.资源库切换实现
    2.字典库实现对于资源库的切换实现,一般把自己的资源编译成一个dll,在exe中通过调用AfxSetResourceHandle的方式来切换当前资源从而实现语言的切换
    优点:1.实现简单
                2.对于不同语言,可以修改相应资源适应界面,不会出现界面显示不完整的问题
     缺点:1.资源dll比较多,如果要支持更多的语言极不方便
                 2.对于不熟悉的语言,自己没法翻译,也不可能交给别人来翻译(资源库,对话框,菜单,等等这些资源,翻译公司不可能帮你修改这些东西的)字典库实现多语言切换,实现相对复杂一点,原理是枚举软件中所有资源,将这些资源中的中文字符串记录到字典中,在字典中分别根据不同的语言翻译成不同的字符串,
    软件界面呈现时从字典库中取出相应的翻译串进行显示就OK。
    优点:1.可以切换任何一种语言,只要能翻译出来,方便切换
                 2.第三方翻译时不会受限于资源工程源文件,可以随时翻译
                 3.切换语言无需AfxSetResourceHandle切换资源,比较方便
    缺点:1.由于不需要修改界面等资源进行切换语言,会导致切换到不同的语言时,界面文字可能显示不完整
      

  2.   

    https://msdn.microsoft.com/en-us/library/1021kkz0.aspx
      

  3.   

    1楼已经讲得很清楚了,一般用资源DLL,把resource.h和.rc文件拷贝出来,建一个资源DLL文件分开翻译,如果以后增加,得在对应的h和rc分别手动添加!!!!!做微软VC的多语言实在太痛苦了!QT的多语言,敲几个命令行同步一下,lupdate lrelease  即可,只需要翻译新加的几条就可以了!!!微软要是能把这个功能简易化,那是相当赞的!
      

  4.   

    除了语言还有其他什么不同吗?如果其他都相同
    完全可以把语言文件独立出来,做成文件,然后根据语言分别读取就是了
    其他图标什么的,如果不同也可以通过打包软件来解决,例如inno setup
    这种不同语言不同编译开关的方式,到后面往往变成一锅乱粥,
      

  5.   

    用SOUI支持多语言就简单了。
    http://www.cnblogs.com/setoutsoft/p/6743006.html
      

  6.   

    VC本身就可以在一个资源中添加不同的语言版本,并且运行时系统会自动按系统语言来选择合适版本。维护起来很麻烦,没有办法自动同步,你加任何控件,那其他语言需要手动再加一编,界面和控件多了真不适合,这一点QT里面多语言完全秒杀VS
      

  7.   

    不要用多个资源
    用ini,参考android和ios的多语言实现办法