用VFP做一個多語言的系統,有什么好的辦法嗎?
用VFP做一個多語言的系統,有什么好的辦法嗎?
[解决办法]
请参考:
增加數據表:
langTxt.dbf //共五個字段,textno--編號;mod_type--模塊代號;tchinese--繁體文字;schinese--簡體文字;english--英文; 用來保存label的各種語言要顯示的文字
langType.dbf //語言類型,設1為繁體,2為簡體,3為英文;兩個字段,一個字段為類型,一個字段為語言說明
langValue.dbf //保存當前語言類型,一個字段就夠,設默認值為 '1 '
新增加一個label類,在init屬性中加入以下代碼:
sele langtxt
locate for allt(textno)==allt(this.name)
if allt(langValue.lang_no)== '1 '
this.caption=allt(tchinese)
else
if allt(langValue.lang_no)== '2 '
this.caption=allt(schinese)
else
this.caption=allt(english)
endif
endif
然后在程序中用這個新類增加label,label的name值定義和langTxt.textNo的值相對應,這時只要修改langValue.lang_no的值,就可以實現三種語言切換了~~
相同的方法,在langTxt.dbf中增加几個表示語言的字段,init代碼稍加更改,就可以實現更多種語言的程序設計;文本維護并不會很復雜~
语言切换,感觉做成DLL比用DBF的效率应该高些
分别做三个DLL,英文、繁体、简体
一般都会在进入系统时选语言
这时,就选好是读哪个DLL
以后对于每个控件的语言切换,只需查找编号,而无需再判断
if allt(langValue.lang_no)== '1 '
this.caption=allt(tchinese)
else
if allt(langValue.lang_no)== '2 '
this.caption=allt(schinese)
else
this.caption=allt(english)
endif