2021-09-09 22:17:42 索煒達(dá)電子 746
項(xiàng)目編號(hào):E971
文件大?。?05K
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡(jiǎn)要概述:
做界面每次被多語言搞得要死,干脆自己動(dòng)手做了個(gè)小工具。
1、 用我的工具生成語言包。
2、 用GUIBuilder做界面,在要寫中文或其他語言的地方按你的需求寫就行了,位置1顯示不正常沒關(guān)系,位置2顯示正常就行。(此處即保證輸入的內(nèi)容在當(dāng)前windows系統(tǒng)編碼下是可以正常顯示的)。
3、 設(shè)計(jì)好界面后保存為C文件,用notepad++打開,將文件編碼格式轉(zhuǎn)換為UFT-8并保存。
4、 在GUI初始化的時(shí)候設(shè)置系統(tǒng)默認(rèn)字體為語言包中的某個(gè)字體,或者在空間回調(diào)函數(shù)的初始化條件中設(shè)置單個(gè)控件的字體為語言包中的某個(gè)字體。
5、 到此即可在GUI中正確顯示中文。
此處用法的原理在于只需要保證語言包中的編碼和使用的時(shí)候的編碼一致,即可正確顯示。當(dāng)然語言包中需要包含你顯示的內(nèi)容,否則將找不到字體點(diǎn)陣信息。
但個(gè)人認(rèn)為GUIBuilder工具只是方便初學(xué)者上手和前期界面效果設(shè)計(jì),其生成的代碼并不適合作為多語言系統(tǒng)使用,所有的顯示內(nèi)容都直接以字符串的形式嵌入在代碼的各個(gè)位置,不便于統(tǒng)一管理。
建議在所有使用顯示內(nèi)容字符串的地方都用ID號(hào)(或指針)表示,這樣對(duì)于不同的語言,ID號(hào)是不變的,只需要重新查找到對(duì)應(yīng)該語言的顯示字符串即可。