close

馬薩巴語翻譯   LanguageFileName = AddSplash(App.Path) & "ChineseT.Lan"
  ListView.Title1=ID

Private Sub Form_Load()
'自動轉換Form上的一些基本控件(也可自行擴展,今朝支援CommandButton,Label,OptionButton,CheckButton)
 Select Case LanName '按照用戶選擇的語言的名稱,分別讀取分歧的說話文件
  
  Close #1
 On Error Resume Next
  
  Caption=PCTV Player
  Exit Function
Attribute VB_Name = "ModuleLanMgr"
End Sub

  Cmd2=Edit Program
Option Explicit
  [FormMain]
  
  
  LabelCmd1=Start Play
  Case "Chinese(Traditional)":



  ListView.Title2=Time

之前做過一個vb的小項目,用戶需要軟體同時可以或許支援中文和英文,為此寫了一個主動說話切換的模組來用,不敢獨享,拿來給各人參考一下翻譯
   LanguageFileName = AddSplash(App.Path) & "English.Lan"
 TranslateStr = sDefVal
 Dim N As Long

Public Sub TranslateForm(Frm As Form)
  Open AddSplash(App.Path) & "Sys.Ini" For Input As #1
   Frm.Controls(I).Caption = TranslateStr(Frm.Name翻譯社 Frm.Controls(I).Name, Frm.Controls(I).Caption)
 End If
   LanguageFileName = AddSplash(App.Path) & "ChineseS.Lan"

  調用很簡單,在作為程式主窗口的Form中這麼寫:
End Sub
  [FormEdit]
 If Not FileExists(LanguageFileName) Then

  LabelCmd5=Exit
 End If
  
Public Function TranslateStr(sSection As String翻譯社 sKey As String翻譯社 sDefVal As String) As String
 Resume Next
 End If
  最後,用到的說話文件的格局像如許:
  Cmd3=Del Program
  TranslateStr = Left(sValue, N)
  ListView.Title3=Type
  LabelCmd2=Edit Play List
 Language = "English"

 For I = 0 To Frm.Controls.Count - 1
  
 On Error Resume Next
  Input #1, Language
  LabelCmd4=Help
  其它Form中都用近似的寫法,在FormLoad中挪用TranslateForm(Me)的方式將Form上的Button,Label等切換說話文字。
  Cmd4=Move Up
 Private Declare Function GetPrivateProfileString& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String翻譯社 ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long翻譯社 ByVal lpFileName As String)
   LanguageFileName = ""
'選擇說話
  ListView.Title4=Title


 On Error GoTo ErrFun

 TranslateForm Me '主動轉換介面文字
 Frm.Caption = TranslateStr(Frm.Name, "Caption", Frm.Caption)
 Dim sValue As String * 128

 N = GetPrivateProfileString(sSection, sKey翻譯社 sDefVal, sValue, 127, LanguageFileName)
  Case "Chinese(Simplify)":
  LabelCmd3=Options...
 If FileExists(AddSplash(App.Path) & "Sys.Ini") Then '從程式的配置文件中讀取上次設定的語言檔案名稱稱

  Case "English":
  Or (TypeOf Frm.Controls(I) Is OptionButton) Or (TypeOf Frm.Controls(I) Is CheckBox) Then
ErrFun:
 On Error Resume Next
'翻譯文字
 Dim I As Long
 Next I
 If N > 0 Then
  模組 MdlLanMgr.bas :
 SelectLanguage (Language) '設定全局變量,指定使用的語言
  LabelCmd6=Exit && Shut down computer

  由於VB說話(這裡指VB6.0及以前版本,VB.NET屬於另外一種概念了)照舊挺弱的,所以也只能將就這做到這個程度了,如果要增加一些其它控件或者其它屬性的自動文字轉換支援,那麼翻譯公司必須自行擴展TranslateForm()函數。(不像Delphi,可使用RTTI來搞定一切)
  別的,比力麻煩的是若是在同時有幾個Form顯示著的環境下要切換介面說話,那麼需要手工別離對各個窗口挪用TranslateForm()函數,若是你想改善,那麼可以再寫個過程遍歷所有窗口並挪用該函數,這個就留給你來做吧。

  Caption=Edit PlayList...
  If (TypeOf Frm.Controls(I) Is CommandButton) Or (TypeOf Frm.Controls(I) Is Label) _
  End If

End Sub

  Case Else:
End Function
  Cmd1=Add Program
  Cmd6=Quit Edit

 End Select

Public Sub SelectLanguage(LanName As String)

  Cmd5=Move Down
Private LanguageFileName As String


本文來自: http://mypaper.pchome.com.tw/meteor0721/post/1325789038有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931

arrow
arrow
    文章標籤
    翻譯社
    全站熱搜

    pearsoo71337 發表在 痞客邦 留言(0) 人氣()