Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
作者:马健 邮箱:stronghorse_mj@hotmail.com主页:https://blog.csdn.net/stronghorse/
以前我以为PDG相关软件只会在国内流行,所以发行简体中文版足矣,没想到现在流传到繁体中文环境下去了,还被人报告在繁体中文Windows下,Unicode版软件界面出现乱码。所以上网查了一下国际化多语言用户界面(Multilingual User Interface,MUI)技术,发现还有一些问题需要解决,所以把解决过程记录下来,形成这篇笔记。
=============================================================
目前网上能查到的基于MFC的多语言用户界面(MUI)实现,基本上都是对同一个资源ID复制不同的语言备份,然后在应用初始化时调用SetThreadLocale(XP)、SetThreadUILanguage(Vista+)设置语言,让FindResource函数自动根据所设置的语言读取对应的资源。这样做能达到以下效果:
- 如果同一资源ID有不同语言的备份,则FindResource会自动按照所设置的语言选择一个,从而达到根据用户选项切换界面语言文字的目的。
- 对于afxdlgs.h中定义的公共对话框,包括文件选择、字体选择、打印设置、查找替换等,也会自动按照所设置的语言显示按钮和文字。
但也存在下列问题:
- 项目的字符集必须设置为Unicode,否则在非同族语言下不论怎么搞都是乱码。
- PropertySheet、MessageBox的按钮不管是用SetThreadLocale还是SetThreadUILanguage设置,都会显示Windows当前语言的文字,如英文Windows下显示的按钮文字就是OK而不是“确定”,即使已经用SetThreadUILanguage设置了简体中文。
- 受PropertySheet影响,打印机选择对话框(CPrintDialogEx)左下角的两个按钮也会按当前语言显示。
- SHBrowseForFolder中的标题、按钮、提示不管用SetThreadLocale还是SetThreadUILanguage设置,都会按照Windows当前语言显示。
- 如果在资源编辑器中设置了下拉框(ComboBox)的中文data,即简体中文的初始化文字,则在其他语言下会出现乱码,包括对话框(Dialog)、PropertyPage中的下拉框都是这样。
以上问题至少我目前没有在网上找到答案,所