越来越多的程序支持多语言切换 , 或者能自动适应当前系统语言 , 让自己开发的程序支持多语言不仅可以让自己的程序被国人使用 , 也能让外国程序爱好者使用 。VC开发多语言程序有多种方法 , 或读取配置文件 , 或使用不同资源DLL等等 。这里介绍以资源形式实现多语言版本 。
1.打开2008 , 新建一个基于对话框工程 , 名称为 , 不使用库 , 资源语言一共有十种(当前操作系统为 7简体中文版) , 如下图所示:
在此选择“中文(简体 , 中国)” , 单击“完成”按钮 。
2.在对话框设计界面上 , 放置一个按钮(ID号)、一个静态文本(ID号 , 必须改其默认ID号)和一个编辑框(ID号) , 资源视图如下所示:
可以看到资源视图里面都是简体中文的资源文件 , 现在在“ Table”字符串表类型下 , 双击打开其子项“ Table” , 默认只有一条字符串 , 是窗口菜单里的“关于 (&A)...” , 如图所示:
现在点一下第二行(以黑色外框标志) , 新建一条字符串(值会默认增长 , 注意不要与已有的冲突) , “标题”是“ID”号所代表的字符串内容 , 我们增加字符串如下图所示:
3.在“解决方案管理器”下双击打开“.cpp”文件 , 在其初始化函数()增加如下红色代码:
::()
::();
//将“关于...”菜单项添加到系统菜单中 。
//必须在系统命令范围内 。
((&)==);
(nu();
【window国际化文案】->(,,);
//设置此对话框的图标 。当应用程序主窗口不是对话框时 , 框架将自动
//执行此操作
(,TRUE);//设置大图标
(,FALSE);//设置小图标
//TODO:在此添加额外的初始化代码
;
.();//读取一个ID号定义的字符串资源
(,);
.();
(,);
.();
(,);
;//除非将焦点设置到控件 , 否则返回TRUE
编译运行 , 结果如下图所示:
4.制作英文版的“ Table” 。右击“资源视图”下的“ Table”子项 , 选择“插入副本” , 在弹出的对话框选择“英语(美国)” , 如下图所示:
“确定”按下之后 , 就会多出一个字符串资源来 , 并且在后面名称多了标记“[英语(美国)]” , 双击打开其内容与简体中文字符串资源一样 , 如下图所示:
将所有字符串修改“标题”内容为英文 , 如下图所示:
再编译生成 , 此时应用程序就能适应简体中文操作系统和英文美国操作系统了 , 会自动显示为默认操作系统语言 。可是由于此时没有英文版系统可以验证 , 无法确定是否完全正确 , 待以后验证 。
5.接下去 , 欲使用自由切换程序界面语言 , 在应用程序类初始化函数()添加如下代码:
(((,),));
运行程序 , 出现问号乱码情况 , 当前 7系统的显示语言只有“中文(简体)” , 而“当前系统区域设置”为“中文(简体 , 中国)” , 如下图所示:
自由切换语言失败 , 参考MSDN帮助文档 , 对的介绍说明:%28VS.85%29.aspx
:..,.,.
,:..,.
另有一篇文章讨论 noGUIin Vista
替换成如下代码:
((,));
运行发现可以显示“英文”资源字符串 , 如下图所示:
可以使用uage()判断当前用户界面语言 , 如下当用户界面语言为“简体中文”时 , 设置为“英文(美国)”:
- 【WIndows 10如何搭建FTP服务器】
- Windows 7的“上帝模式”详细解析
- SENS win10无法连接到这个网络_win10无法连接到Windows服务
- 无法连接到Windows服务——Windows无法连接到SENS服务
- 【日常运维】巧用Windows任务计划对重要文件进行定时备份
- 【转帖】剖析Windows XP x64操作系统
- Win系统 - Windows系统的普及,让这个按键消失了?
- 野花的文案高级感的有那些
- 抖音文案怎么写吸引人
- 【愚公系列】2023年10月 WPF控件专题 Window窗体属性和事件