我們公司目前軟體大多數用mfc單文件實現,前段時間為了海外擴充套件,要求所以軟體採用多語言。
因此我給下屬下了乙個命令,就是歸納多語言實現方式,總結最優實現方式。
一共有四種方法:先介紹常規的前三種。
例子在資源裡面「mfc多語言實現方法」。
需要轉換語言的地方有:
1、程式介面:選單,控制項標籤等。
2、提示字串等。
一、字元放在dll資源檔案中,切換資源模組(程式預設使用exe模組資源)。
實現要點:
新建乙個只包含資源的dll。通過函式afxsetresourcehandle設定資源模組。
示意**為:
afxsetresourcehandle(loadlibrary("english.dll"));
cstring strmsg;
strmsg.loadstring(id_title);
setwindowtext(strmsg);
見例子mullanguage_dll.rar
二、字元放在exe資源檔案中,選擇對應的語言資源。
實現要點:
新建多個id相同,語言不同的資源。
通過setthreadlocale設定當前執行緒使用語言。
示意**:
setthreadlocale(makelangid(lang_english,sublang_english_us));
cstring strmsg;
strmsg.loadstring(id_title);
setwindowtext(strmsg);
例子:mullanguage_rc.rar
三、字元放在ini檔案中。
實現要點:
同種語言字元放在單獨的文字,通過切換檔案方式切換語言。
優點:增加一種新語言,只需增加相應的語言的檔案。
缺點:dll模組中的字元轉換,字元id命名。
cstring strmsg;
getprivateprofilestring(…);
setwindowtext(strmsg);
見例子mullanguage_ini.rar
綜合上面三種方法,從原理上看其實是同一種方法,獲取相應語言下的字元,再顯示字元,不同之處是字元存放位置不同。字元可以存放在dll資源中,exe資源中,文字檔案中。相應地獲取字元方式也不同。
MFC多語言實現方法
我們公司目前軟體大多數用 mfc單文件實現,前段時間為了海外擴充套件,要求所以軟體採用多語言 因此我給下屬下了乙個命令,就是歸納多語言實現方式,總結最優實現方式。一共有四種方法 先介紹常規的前三種。例子在資源裡面 mfc多語言實現方法 需要轉換語言的地方有 1 程式介面 選單,控制項標籤等。2 提示...
WPF 多語言實現
原文 wpf 多語言實現 很多國際化的程式都提供了多語言的選項,這樣方便不同國家的使用者更方便的使用軟體。這篇部落格中將介紹在wpf中實現多語言的方式。方式一,使用wpf動態資源的方式實現。先簡單介紹下staticresource和dynamicresource,這兩者的區別在於動態資源改變後會實時...
WPF 多語言實現
原文 wpf 多語言實現 很多國際化的程式都提供了多語言的選項,這樣方便不同國家的使用者更方便的使用軟體。這篇部落格中將介紹在wpf中實現多語言的方式。方式一,使用wpf動態資源的方式實現。先簡單介紹下staticresource和dynamicresource,這兩者的區別在於動態資源改變後會實時...