C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)

        实现 多语言程序的思路比较简单清楚,主要是通过创建不同语言的资源文件即可,网上的帖子也挺多,不过个人感觉比较杂,经过研究,总结得出自己的开发心得。

在本次学习中,还用到了Xtreme ToolkitPro界面库,可以一起综合学习。

       一、首先要创建多语言资源的DLL文件:

      步骤:

      1、使用VS2008创建多语言示例程序MultiLanguageDemo,程序用到的是多文档视图结构;

      2、创建后在解决方案目录创建文件夹Translations,用来创建多语言资源工程, 当然,你也可以在其他地方创建;

     3、在文件夹Translations下创建解决方案,并创建新的语言项目,比如创建英语资源为ResourceEn过程如下:

C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第1张图片

        这里本人选择的是Win32项目,主要是创建空的DLL项目,当然,使用MFC DLL项目也是可以,只是生成的项目文件比较多,后面还要删除,所以没必要。

C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第2张图片

       点击确定开始进入创建向导后按下一步后,出现这个项目类型,这里关键选择的是DLL和空项目,点击完成即可。

    4、接下来是关键:

  • MultiLanguageDemo工程目录下的res文件夹和MultiLanguageDemo.rc拷贝到ResourceEn工程目录下,并将MultiLanguageDemo.rc重命名为ResourceEn.rc;
  • 修改ResourceEn.rc引入的头文件“resource.h”:
  •     C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第3张图片
  • 在“资源视图”中修改rc的语言信息:
  • C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第4张图片

  • 修改确定之后在解决方案视图中添加了资源文件,还有“resource.h”文件,把这个删除,直接在.rc文件中按之前那样引入即可:

C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第5张图片

  •  继续修改ResourceEn.rc源代码如下:
  • C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第6张图片
  • 这里定义了资源的语言,因为VS2008默认产生的是英语,这里并不需要修改,在创建其他语言的时候需要做相应的修改,如简体中文:
  • 设置项目Release属性:

C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第7张图片

  • 确定后编译成功后会生成ResourceEn.dll文件,至此,资源DLL文件编译完成。
      好奇一下,这样生成的DLL是怎么样的,Xtreme ToolkitPro提供了很好的工具。
    在Xtreme ToolkitPro源码中,主要是两个关于多语言的例子:ScribbleMultiLang(Xtreme ToolkitPro v15.2.1\Samples\CommandBars\ScribbleMultiLang\)和MultiLanguage(Xtreme ToolkitPro v15.2.1\Samples\ToolkitPro\MultiLanguage)可以供我们学习。
      在ScribbleMultiLang中,发现一个名为BuildXML.bat的文件,打开发现原来是用来调用XMLResource.exe这个工具将DLL转为XML,这样,随便修改下路径就可以将刚刚产生的ResourceEn.dll转为ResourceEn.xml,打开之后发现ResourceEn.xml内容如下:
C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)_第8张图片
      不同的语言资源只是编码方式和ID不一样,使用的资源是一样的,这样MultiLanguageDemo程序就可以根据不同的情况调用不同的DLL,从而实现了多语言的切换。至于具体怎么使用,可以参看刚刚提到的Xtreme ToolkitPro多语言示例程序。


你可能感兴趣的:(MFC)