德文口譯  Close #1
 On Error Resume Next
  Open AddSplash(App.Path) & "Sys.Ini" For Input As #1
  ListView.Title2=Time
  Cmd6=Quit Edit
  Cmd2=Edit Program
  Case "Chinese(Traditional)":
  調用很簡單,在作為程式主窗口的Form中這麼寫:

Private Sub Form_Load()
  LabelCmd2=Edit Play List
  Caption=PCTV Player
 End If

 TranslateForm Me '主動轉換介面文字
  別的,比力麻煩的是若是在同時有幾個Form顯示著的環境下要切換介面說話,那麼需要手工別離對各個窗口挪用TranslateForm()函數,若是你想改良,那麼可以再寫個進程遍歷所有窗口並挪用該函數,這個就留給你來做吧。

  LabelCmd4=Help
  ListView.Title4=Title

  LabelCmd5=Exit

End Sub
   LanguageFileName = AddSplash(App.Path) & "ChineseT.Lan"
  [FormEdit]
  ListView.Title1=ID
End Sub
  LabelCmd6=Exit && Shut down computer
  ListView.Title3=Type
 On Error Resume Next

 End If

End Sub
  模組 MdlLanMgr.bas :
 On Error Resume Next
 Dim sValue As String * 128
 Frm.Caption = TranslateStr(Frm.Name, "Caption"翻譯社 Frm.Caption)
 On Error GoTo ErrFun
  Case "Chinese(Simplify)":
  If (TypeOf Frm.Controls(I) Is CommandButton) Or (TypeOf Frm.Controls(I) Is Label) _
  Cmd3=Del Program
  Caption=Edit PlayList...
  Case "English":
  
  
  Input #1翻譯社 Language
Public Sub TranslateForm(Frm As Form)


 TranslateStr = sDefVal
Option Explicit
 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)
  最後,用到的語言文件的花樣像如許:
  Exit Function
  
 Select Case LanName '按照用戶選擇的說話的名稱,別離讀取分歧的說話文件
 Language = "English"
   LanguageFileName = AddSplash(App.Path) & "ChineseS.Lan"
 End Select
  Cmd4=Move Up


  
  LabelCmd3=Options...
  
  LabelCmd1=Start Play
  TranslateStr = Left(sValue, N)
End Function
ErrFun:

  
Public Sub SelectLanguage(LanName As String)

Public Function TranslateStr(sSection As String, sKey As String, sDefVal As String) As String
  由於VB語言(這裡指VB6.0及之前版本,VB.NET屬於另外一種概念了)還是挺弱的,所以也只能遷就這做到這個水平了,若是要增加一些其它控件或其它屬性的主動文字轉換支援,那麼翻譯公司必需自行擴大TranslateForm()函數。(不像Delphi,可使用RTTI來搞定一切)
  Case Else:
  End If
 Next I
   LanguageFileName = ""
'選擇說話
 SelectLanguage (Language) '設定全局變量,指定使用的說話
 End If
 Resume Next

Attribute VB_Name = "ModuleLanMgr"
  [FormMain]
 If Not FileExists(LanguageFileName) Then
 For I = 0 To Frm.Controls.Count - 1
 Dim N As Long
  Or (TypeOf Frm.Controls(I) Is OptionButton) Or (TypeOf Frm.Controls(I) Is CheckBox) Then
 If FileExists(AddSplash(App.Path) & "Sys.Ini") Then '從程式的配置文件中讀取前次設定的說話檔案名稱稱
   Frm.Controls(I).Caption = TranslateStr(Frm.Name翻譯社 Frm.Controls(I).Name翻譯社 Frm.Controls(I).Caption)
   LanguageFileName = AddSplash(App.Path) & "English.Lan"
  Cmd5=Move Down


'主動轉換Form上的一些基本控件(也可自行擴展,目前支援CommandButton,Label,OptionButton,CheckButton)

之前做過一個vb的小項目,用戶需要軟體同時可以或許支援中文和英文,為此寫了一個主動說話切換的模組來用,不敢獨享,拿來給大師參考一下翻譯
 N = GetPrivateProfileString(sSection, sKey, sDefVal, sValue, 127, LanguageFileName)
  其它Form中都用雷同的寫法,在FormLoad中調用TranslateForm(Me)的方式將Form上的Button,Label等切換說話文字。

Private LanguageFileName As String
 Dim I As Long
  Cmd1=Add Program
 If N > 0 Then
'翻譯文字


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

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

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


    留言列表 留言列表

    發表留言