VC下多语言程序实现

[ 2007-11-04 17:33 | 作者: 阿少 ]
字体: | |
作为软件开发作者,经常希望自己的软件能够被更多更广泛的用户使用,其中有可能包括外国用户,如果软件界面能够支持用户本国语言当然会有利于软件的推广,所以很多作者都想实现自己的软件多语言支持,以下根据自己的经验对集中实现方式做一下简单的对比(针对VC开发者)

1. 修改资源文件
该方法是最早实现多语言版本的方式, VC支持多钟语言资源,根据用户喜好动态调入特定资源库文件,该方式实现简单,对程序本身的影响不大,只需要写好调入资源库代码就OK,而且该方法可以根据不同语言习惯调整窗口布局方式。不过此方法也有缺点,每次修改资源都需要重新编译库文件才能使用。

2. 使用类似INI文件的语言文件方式
这种方法需要定义与窗口和窗口上控件对象对应的字符串,在更换语言后加载新的语言文件即可。该方法优点显而易见,翻译途径多样化,任何人如果完成翻译, 只要把翻译文件放在指定目录就可以被程序搜索到并且可以直接使用,相对而言灵活方便。 但此方法不能顾及到不同语言的语言习惯下的窗口布局, 只能是针对字句的翻译。

3. 使用XML方式
用XML定义窗口(对话框) 的布局以及文本信息,翻译方便的同时能够根据不同语言调整布局,非常方便使用,不过对程序的解析部分要求较高。

个人比较喜欢使用第二种方式,也就是才用INI 文件的方式实现,一般做法是对不同功能进行分类作为section, 功能内的窗口控件对象的编号作为key,比如
中文版
[1000]
1001=确定

英文版
[1000]
1001=OK

其中1000就是section,一般为对话框或者功能分类代码, 1001作为该分类的对象也就是Key,上例中是作为一个按钮控件

然后使用Win32 API GetPrivateProfileString()读取相应的字符窜 替换对象文本即可。

Image Converter One(改图快手)就是使用第二种方式实现
[本日志最后由1于2007-11-04 19:13编辑]
引用通告地址:
GB2312 http://blog.ashongsoft.com/trackback.php?id=13&encode=gb2312
UTF-8    http://blog.ashongsoft.com/trackback.php?id=13&encode=utf-8
Big5       http://blog.ashongsoft.com/trackback.php?id=13&encode=big5
暂时没有评论,正等待您的添加.

发表评论

表情
smile cool lol laugh
sad cry playfull sweat
crazy redface what shocked
sex heart gift rose
ok shakehand yes no
使用 UBB 代码
自动转化URL
隐藏
*请输入验证码  
插入粗体文本 插入斜体文本 插入下划线 居中对齐 插入超级链接 插入邮件地址 插入图像 插入 flash 插入Media player文件,如MP3 WMA WMV ASF等 插入RealOne Player文件,如rm等 插入代码 插入引用 插入列表