MUI: 程序本地化(Localization)的問題

程序本地化的方式是爲了讓程序可以在不同的操作操作系統上,顯示的字符串語言自適應(德文系統上顯示的字符串爲德文,英文系統上顯示的字符串爲英文)。但是有一些特殊情況需要單獨處理,比如你應用程序沒有做本地化處理,而應用程序調用的DLL做的本地化,那怎麼辦呢?這種情況下,你應用程序本身界面上的字符串是沒有本地化處理的(比如是中文),但是由於程序運行在英文系統上,DLL 內的字符串顯示或者返回的字符串(Localization的字符)的就會是英文(跟隨操作系統),解決這種問題的方法是調用API:SetProcessPreferredUILanguages, 具體使用方法可以看MSDN

這種解決方式只能解決,我們已經本地化的字符串,如果字符串沒有被本地化,那麼還是顯示默認的字符串,如果不是自己應用程序的字符串,比如利用AfxMessageBox顯示的按鈕或者用wizard,這些按鈕都是系統資源,這時候顯示的就跟系統一樣。有一種方式可以修改,參考文章,但是不推薦使用。

創建Wizard的方式可以參考文獻,Wizard的按鈕是通過SetWizardButtons來設置的要顯示的按鈕(後退,下一步,完成),這些資源也是windows系統自帶的,不過我們可以在設置完按鈕後,修改button 的顯示字符串來做到不本地化的目的,比如GetDlgItem(ID_WIZBACK)->SetWindowText(_T("後退"))。

 

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