王朝网络
分享
 
 
 

专为VB制做的多语言软件开发工具,可以轻松完成对可视界面的多语言化.

王朝vb·作者佚名  2006-01-10
宽屏版  字体: |||超大  

专为VB制做的多语言软件开发工具,可以轻松完成对可视界面的多语言化,您只需要制做语言包母板后翻译复制该母板即可.点这里下载示例工程.

界面介绍如下:

启动图标:

点这里将启动该程序.

程序将向您的代码中添加以下代码,以便您访问语言包:

API:

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

由于语言包是使用INI格式保存的,程序添加了该API函数,如果该API已经存在,将不添加.

在窗体的 Load 事件中添加调用界面语言加载子程序的代码.

Private Sub Form_Load()

Call frmMain.CoderHelper_VBMltLug_InitfrmMain(App.Path + IIf(Len(App.Path) = 3, "", "\") + App.EXEName + ".exe.lag") 'CoderHelper专用代码行请不要删除!

'括号内的过程是计算语言包文件的文件路径和文件名称,文件名称是以可执行文件的路径为准,其文件名后加".lag"为扩展名的文件.要翻译该文件,请复制后打开使用文本工具翻译.在后续版本中,将提供部分翻译和转换方面的工具.

添加界面初始化程序.该程序的参数为一个有效的语言包文件的完整路径.

Public Sub CoderHelper_VBMltLug_InitfrmMain(lngFileName As String)

'MysticBoy 提醒您:由于一些控件的属性可能是只读的或在运行时是不可用的,建议调试以下代码.

Me.CmdDown.Caption = ch_GetKeyVal(lngFileName, "frmMain.CmdDown", "Caption", "V")

{......}

End Sub

由于部分控件的部分属性在运行时是只读或是不可用的,建议在你编译工程之前,请调试该段代码,

该函数将用于访问语言包文件,读取指定字段中指定键的值,如果语言包无效或没有该值将使用默认值,即 DefValue参数指定值.

Public Function ch_GetKeyVal(ByVal FileName As String, ByVal Section As String, ByVal Key As String, Optional DefValue As String)

Dim RetVal As String, Worked As Integer

If Dir(FileName) <> "" And FileName <> "" Then

RetVal = String$(255, 0)

Worked = GetPrivateProfileString(Section, Key, DefValue, RetVal, Len(RetVal), FileName) If Worked = 0 Then

ch_GetKeyVal = DefValue

Else

ch_GetKeyVal = Left(RetVal, InStr(RetVal, Chr(0)) - 1)

End If

Else

ch_GetKeyVal = DefValue

End If

End Function

该函数用于读取指定语言包内的字符串.字符串可能包括代码中的提示内容或着窗体的标题等文本.

Public Function ch_GetStr(Key As String, Optional DefValue As String) '

'请使用此函数读取字符串信息'如 i = MsgBox(Prompt:=ch_GetStr("SaveFile", "文件是否保存?"), Title:=ch_GetStr("SaveFile1", "文件未保存"), Buttons:=vbYesNo) '

ch_GetStr = ch_GetKeyVal(App.Path + IIf(Len(App.Path) = 3, "", "\") + App.EXEName + ".exe.lag", "Strings", Key, DefValue)

End Function

'如果语言包你另有安排,请改写这段代码.

建议添加代码:

示例工程中,我们使用了这样的代码加载语言,首先把翻译好的语言包文件放置在资源文件中.然后使用以下直径读取资源保存到CoderHelper默认的语言包文件完整路径名称的文件.然后调用加载程序来加载语言.

Private Sub mEng_Click()

On Error GoTo errh

Dim lagfn As String, fn As Long

Dim ary() As Byte

fn = FreeFile

lagfn = App.Path + IIf(Len(App.Path) = 3, "", "\") + App.EXEName + ".exe.lag"

Open lagfn For Binary As #fn

ary = LoadResData(103, "lag") 'lag 为资源类型,103为当前语言包的资源代码.

Put #fn, , ary

Close #fn

Call frmMain.CoderHelper_VBMltLug_InitfrmMain(App.Path + IIf(Len(App.Path) = 3, "", "\") + App.EXEName + ".exe.lag")'加载语言.

errh:

If Err.Number <> 0 Then

MsgBox Err.Description, vbInformation

End If

End Sub

'多种语言放置在资源中.将方便您的访问.而加载不同语言,使用此建议代码,仅仅需要改动的是 ary = LoadResData(103, "lag"),您只需要改动资源ID号即可,多语言,建议最好使用控件数组.

Private Sub munLag(Index as Integer )

[...]

ary=LoadResData(100+Index,"lag")

[...]

End Sub

这是MysticBoy所建议的方式..

注意:在您所写的代码行中不要带"'CoderHelper专用代码行请不要删除!"这样的内容.否则.在重新生成代码时CoderHelper 将认为是CoderHelper 上次工作时添加的代码.在插入新代码前将删除.

此工具为CoderHelper正式发布的组件,因此产品是需要注册的.不注册的情况下.将和其它CoderHelper高级组件使用频率共同计数,限制在50次内.

最后祝愿您的软件开发成功.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有