正在阅读:让你的VB程序支持多国语言的切换让你的VB程序支持多国语言的切换

2004-10-10 15:07 出处:CSDN 作者:tonylk 责任编辑:linjixiong

  调用很简单,在作为程序主窗口的Form中这么写:


  Private Sub Form_Load()
  On Error GoTo ErrFun
  Language = "English"
  If FileExists(AddSplash(App.Path) & "Sys.Ini") Then    '从程序的配置文件中读取上次设置的语言文件名称
  Open AddSplash(App.Path) & "Sys.Ini" For Input As #1
  Input #1, Language
  Close #1
  End If
  SelectLanguage (Language)    '设置全局变量,指定使用的语言
  TranslateForm Me    '自动转换界面文字
  
  ErrFun:
  Resume Next
  End Sub

  其它Form中都用类似的写法,在FormLoad中调用TranslateForm(Me)的方法将Form上的Button,Label等切换语言文字。

  最后,用到的语言文件的格式像这样:


  [FormMain]
  Caption=PCTV Player
  LabelCmd1=Start Play
  LabelCmd2=Edit Play List
  LabelCmd3=Options...
  LabelCmd4=Help
  LabelCmd5=Exit
  LabelCmd6=Exit && Shut down computer


  [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.NET属于另一种概念了)还是挺弱的,所以也只能将就这做到这个程度了,如果要增加一些其它控件或者其它属性的自动文字转换支持,那么你必须自行扩展TranslateForm()函数。(不像Delphi,可以使用RTTI来搞定一切)

  另外,比较麻烦的是如果在同时有几个Form显示着的情况下要切换界面语言,那么需要手工分别对各个窗口调用TranslateForm()函数,如果你想改进,那么可以再写个过程遍历所有窗口并调用该函数,这个就留给你来做吧。

  希望这些对大家有帮助。


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品