分类: C/C++
2008-08-07 18:54:49
我的方法是把所有用到的字符串都放到文件中,一种语言一个文件,根据选择的语言到对应的文件中去加载字符串。这样不但可以动态切换语言,而且用户可以根据需要自己添加新的语言。
具体实现:
1、程序启动时检查所选择的语言,确定该语言文件,保存该文件路径
2、提供一个全局函数,如 g_LoadString(CString szID),根据提供的字符串ID返回
其内容,具体是哪个语言的在函数中判断,这样在程序中只要提供一个字符串ID就可以自动
加载不同语言的文字了。
3、如何在程序中使用:
原来代码:
CString str; str = "语言";改动后:
CString str; str = g_LoadString("IDS_LANGUAGE");4、对话框中如何实现
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下载本文示例代码