MUI: 程序本地化(Localization)的问题

程序本地化的方式是为了让程序可以在不同的操作操作系统上,显示的字符串语言自适应(德文系统上显示的字符串为德文,英文系统上显示的字符串为英文)。但是有一些特殊情况需要单独处理,比如你应用程序没有做本地化处理,而应用程序调用的DLL做的本地化,那怎么办呢?这种情况下,你应用程序本身界面上的字符串是没有本地化处理的(比如是中文),但是由于程序运行在英文系统上,DLL 内的字符串显示或者返回的字符串(Localization的字符)的就会是英文(跟随操作系统),解决这种问题的方法是调用API:SetProcessPreferredUILanguages, 具体使用方法可以看MSDN

这种解决方式只能解决,我们已经本地化的字符串,如果字符串没有被本地化,那么还是显示默认的字符串,如果不是自己应用程序的字符串,比如利用AfxMessageBox显示的按钮或者用wizard,这些按钮都是系统资源,这时候显示的就跟系统一样。有一种方式可以修改,参考文章,但是不推荐使用。

创建Wizard的方式可以参考文献,Wizard的按钮是通过SetWizardButtons来设置的要显示的按钮(后退,下一步,完成),这些资源也是windows系统自带的,不过我们可以在设置完按钮后,修改button 的显示字符串来做到不本地化的目的,比如GetDlgItem(ID_WIZBACK)->SetWindowText(_T("后退"))。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值