讓你的VB程式支援多國語言的切換

2021-03-31 08:56:30 字數 1825 閱讀 9539

mdllanmgr.bas :

attribute vb_name = "modulelanmgr"

option explicit

private languagefilename as string

'選擇語言

public function translatestr(ssection as string, skey as string, sdefval as string) as string

dim svalue as string * 128

dim n as long

on error resume next

translatestr = sdefval

if not fileexists(languagefilename) then

exit function

end if

n = getprivateprofilestring(ssection, skey, sdefval, svalue, 127, languagefilename)

if n > 0 then

translatestr = left(svalue, n)

end if

end function

'自動轉換form上的一些基本控制項(也可自行擴充套件,目前支援***mandbutton,label,optionbutton,checkbutton)

public sub translateform(frm as form)

dim i as long

on error resume next

frm.caption = translatestr(frm.name, "caption", frm.caption)

for i = 0 to frm.controls.count - 1

if (typeof frm.controls(i) is ***mandbutton) or (typeof frm.controls(i) is label) _

or (typeof frm.controls(i) is optionbutton) or (typeof frm.controls(i) is checkbox) then

frm.controls(i).caption = translatestr(frm.name, frm.controls(i).name, frm.controls(i).caption)

end if

next i

end sub

[formedit]

caption=edit playlist...

cmd1=add program

cmd2=edit program

cmd3=del program

cmd4=move up

cmd5=move down

cmd6=quit edit

listview.title1=id

listview.title2=time

listview.title3=type

listview.title4=title

由於vb語言(這裡指vb6.0及以前版本,vb.***屬於另一種概念了)還是挺弱的,所以也只能將就這做到這個程度了,如果要增加一些其它控制項或者其它屬性的自動文字轉換支援,那麼你必須自行擴充套件translateform()函式。(不像delphi,可以使用rtti來搞定一切)

另外,比較麻煩的是如果在同時有幾個form顯示著的情況下要切換介面語言,那麼需要手工分別對各個視窗呼叫translateform()函式,如果你想改進,那麼可以再寫個過程遍歷所有視窗並呼叫該函式,這個就留給你來做吧。

希望這些對大家有幫助。。

C WPF 的多國語言處理

c wpf 的多語言處理 multilanguagelib 為類庫資源,生成dll引用至主專案或者直接複製內部的單個類檔案到主專案即可 4.窗體控制項引用字典資源 title 5.內引用資源字典 private void window loaded object sender,routedevent...

明白ORACLE的多國語言設定

wlgyhnj 冷風0 明白oracle的多國語言設定,oracle多國語言設定是為了支援世界範圍的語言與字符集,一般對語言提示,貨幣形式,排序方式和char,varchar2,clob,long欄位的資料的顯示等有效。oracle的多國語言設定最主要的兩個特性就是國家語言設定與字符集設定,國家語言...

如何實現wpf的多國語言

4.0版本的locbaml 使用visual studio的msbuild切換目錄 msbuild t updateuid 千萬不要打錯這個命令,是updateuid,uid不是id 之後可以再check uid 此命令不能再git bash中執行,必須在vs自帶的開發人員命令提示中執行 f tes...