IPMSG中的多语言支持

来源:互联网 发布:c语言怎么写驱动 编辑:程序博客网 时间:2024/06/07 23:37

    05年开始用Eclipse的时候,才知道Eclipse(Java)的国际化编程是这样的:每个字符串都有一个固定的ID,在不同的语言包里,这个ID对应不同的字符串。程序运行时,它会根据当前的操作系统的语言(或者指定的语言)得到对应的语言包中的字符串。这样,我们运行程序时,在英文环境下看到的“hello”,到了中文环境下可能就变成了“你好”。(当然,这只是基本原理,日期/时间的格式之类、文字显示的美观等等这儿暂且不提)
    在此之前,我从没想到支持多语言会是这样简单。记得02年某国内著名的软件公司到学校去招聘的时候,在他们演讲会上,演讲者提到,“我们作开发的时候,一般的都是先开发英文版的,再开发中文版”的。”那个时候,我基本没什么项目经验,专业课我们只学理论知识,也不可能学这些项目中的细节。因而,可能他说的这句话没有错,但是我却产生了误解,以为是先开发好英文的,然后在这个英文的基础上把所有的语言相关的内容全部汉化,就成了中文版。

    这几天,项目临近发布,项目重要的bug基本没有,不重要的移到下一个milestone,手上的活不多。在这个空当时间学习下IPMSG的源代码。呵呵,尽管看懂的部分不是很多,不过它的国际化的问题倒是让我很感兴趣。
    在VC6中打开IPMSG项目,当选择Debug_English的时候,编译出来的可执行文件是英文的,而选择Debug_Japanese的时候,编译出来的是中文(我下载的这个版本是在日文版的基础上汉化的,实际上Debug_Japanese就是中文)的。
    其实,这两个选项使用了不同的资源文件不过两个资源文件中使用的资源使用的ID及其属性倒是一样的,只是显示的内容不一样,各自对应一种语言。
    假设两个资源文件分别为ipmsg_cn.res和ipmsg_en.res。可以在Debug_English的时候,选中ipmsg_en.res作为资源文件,而在Debug_Chinese.res的时候选择另外一个,这样我们在选择不同语言的debug/run模式,它就会出现相应的语言界面。

(完)

原创粉丝点击