程序实现多国语言的动态切换解决方案
实现思想:传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不能动态切换语言,如果更换语言后必须重新启动软件。当然,没有人会需要经常的切换语言玩儿,但是采用动态库的方法,如果程序需要修改资源的话,就要更新所有的动态库,这是一个非常枯燥而且容易出现疏漏的工作。
我的方法是把所有用到的字符串都放到文件中,一种语言一个文件,根据选择的语言到对应的文件中去加载字符串。这样不但可以动态切换语言,而且用户可以根据需要自己添加新的语言。
具体实现:
1、程序启动时检查所选择的语言,确定该语言文件,保存该文件路径
2、提供一个全局函数,如 g_LoadString(CString szID),根据提供的字符串ID返回
其内容,具体是哪个语言的在函数中判断,这样在程序中只要提供一个字符串ID就可以自动
加载不同语言的文字了。
3、如何在程序中使用:
原来代码:
CString str;
str = "语言";
改动后:
CString str;
str = g_LoadString("IDS_LANGUAGE");
4、对话框中如何实现
如果像在程序中使用一样,每一个字符串都要去加载一次的话,如果对话框比较多,工作量可就太大了。
所以我提供了一个函数g_SetDialogStrings(CDialog *pDlg,UINT uDlgID),每个对话框在初始化的时候调 用该函数,传递对话框的指针,我在函数中循环枚举所有的子控件,逐个设置文字。这样就可以省去很多工作
注意:由于静态文本(CStatic)默认的ID是IDC_STATIC,值都是65535,无法区分,所以在需要改变其文字 的CStatic的ID要改一改,不能用默认的
5、语言文件样例:
中文版:
[Setting]
Language=Chinese
[String]
IDS_MENU_FILE=文件
IDS_MENU_FILE_NEW=新建(&N)
IDS_MENU_FILE_OPEN=打开(&O)
IDS_MENU_FILE_CLOSE=关闭(&C)
IDS_MENU_FILE_EXIT=退出(&E)
英文版:
[Setting]
Language=English
[String]
IDS_MENU_FILE=File
IDS_MENU_FILE_NEW=&New
IDS_MENU_FILE_OPEN=&Open
IDS_MENU_FILE_CLOSE=&Close
IDS_MENU_FILE_EXIT=&Exit
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
程序实现多国语言的动态切换解决方案 实现思想:传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不能动态切换语言,如果更换语言后必须重新启动软件。当然,没有人会需要经常的切换语言玩儿,但是采用动态库的方法,如果程序需要修改资源的话,就要更新所有的动态库,这是一个非常枯燥而且容易出现疏漏的工作。 我的方法是把所有用到的字符串都放到文件中,一种语言一个文件,根据选择的语言到对应的文件中去加载字符串。这样不但可以动态切换语言,而且用户可以根据需要自己添加新的语言。
资源推荐
资源详情
资源评论
收起资源包目录
MultiLanguage_Source.zip (33个子文件)
MultiLanguageDlg.h 2KB
MultiLanguage.exe 32KB
StdAfx.cpp 215B
MultiLanguage.dsp 4KB
程序实现多国语言的动态切换解决方案.txt 2KB
MultiLanguage.h 1KB
MultiLanguage.cpp 7KB
StdAfx.h 1KB
MultiLanguageDlg.cpp 8KB
MultiLanguage_Source
MultiLanguageDlg.h 2KB
MultiLanguage.exe 32KB
StdAfx.cpp 215B
MultiLanguage.dsp 4KB
MultiLanguage.h 1KB
MultiLanguage.cpp 7KB
StdAfx.h 1KB
MultiLanguageDlg.cpp 8KB
Resource.h 1KB
MultiLanguage.dsw 549B
res
lang_eng.bin 801B
MultiLanguage.ico 1KB
lang_ch.bin 840B
setting.bin 29B
MultiLanguage.rc2 405B
MultiLanguage.rc 7KB
Resource.h 1KB
MultiLanguage.dsw 549B
res
lang_eng.bin 801B
MultiLanguage.ico 1KB
lang_ch.bin 840B
setting.bin 29B
MultiLanguage.rc2 405B
MultiLanguage.rc 7KB
共 33 条
- 1
资源评论
- yejiaojiaozzz2013-03-28操作起来比较简单。。很好
- 带发修行5102013-04-27分数太高,相同资源有0分的了,建议不要下
- g54682g2014-08-04还行,就是分数贵了点
liulaoyu
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功