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

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

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

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章