繁中翻簡中 Exit Function
'自動轉換Form上的一些根基控件(也可自行擴大,今朝支援CommandButton,Label翻譯社OptionButton,CheckButton)
Cmd3=Del Program
LabelCmd1=Start Play
End If
Option Explicit
Case "English":
其它Form中都用近似的寫法,在FormLoad中調用TranslateForm(Me)的方式將Form上的Button,Label等切換說話文字。
On Error Resume Next
N = GetPrivateProfileString(sSection, sKey, sDefVal, sValue, 127, LanguageFileName)
Cmd5=Move Down
LanguageFileName = ""
If Not FileExists(LanguageFileName) Then
On Error Resume Next
由於VB語言(這裡指VB6.0及之前版本,VB.NET屬於另外一種概念了)仍是挺弱的,所以也只能遷就這做到這個程度了,若是要增加一些其它控件或其它屬性的主動文字轉換支援,那麼
Language = "English"
Resume Next
On Error GoTo ErrFun
TranslateStr = Left(sValue翻譯社 N)
Case "Chinese(Simplify)":
LabelCmd5=Exit
Caption=Edit PlayList...
End Select
For I = 0 To Frm.Controls.Count - 1
LanguageFileName = AddSplash(App.Path) & "English.Lan"
Public Function TranslateStr(sSection As String翻譯社 sKey As String, sDefVal As String) As String
Attribute VB_Name = "ModuleLanMgr" ListView.Title1=ID Public Sub TranslateForm(Frm As Form) Cmd2=Edit Program Caption=PCTV Player LanguageFileName = AddSplash(App.Path) & "ChineseS.Lan" End Sub |
Open AddSplash(App.Path) & "Sys.Ini" For Input As #1
Or (TypeOf Frm.Controls(I) Is OptionButton) Or (TypeOf Frm.Controls(I) Is CheckBox) Then
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)
ListView.Title3=Type
Close #1
最後,用到的說話文件的花樣像如許:
On Error Resume Next
Cmd4=Move Up
LabelCmd2=Edit Play List
之前做過一個vb的小項目,用戶需要軟體同時可以或許支援中文和英文,為此寫了一個主動說話切換的模組來用,不敢獨享,拿來給大師參考一下翻譯
Dim N As Long
LanguageFileName = AddSplash(App.Path) & "ChineseT.Lan"
If N > 0 Then
Frm.Caption = TranslateStr(Frm.Name, "Caption", Frm.Caption)
Select Case LanName '根據用戶選擇的說話的名稱,劃分讀取分歧的說話文件
Private LanguageFileName As String
Input #1翻譯社 Language
挪用很簡單,在作為程式主窗口的Form中這麼寫:
Case Else:
Dim sValue As String * 128
Cmd6=Quit Edit
Cmd1=Add Program
TranslateStr = sDefVal
End Sub
End Sub
[FormMain] TranslateForm Me '主動轉換介面文字 ListView.Title4=Title |
If FileExists(AddSplash(App.Path) & "Sys.Ini") Then '從程式的設置裝備擺設文件中讀取上次設定的說話檔案名稱稱
Private Sub Form_Load() End If ListView.Title2=Time LabelCmd6=Exit && Shut down computer [FormEdit] Frm.Controls(I).Caption = TranslateStr(Frm.Name, Frm.Controls(I).Name, Frm.Controls(I).Caption) Case "Chinese(Traditional)": 模組 MdlLanMgr.bas : LabelCmd3=Options... Dim I As Long End If End If ErrFun: SelectLanguage (Language) '設定全局變量,指定利用的說話 If (TypeOf Frm.Controls(I) Is CommandButton) Or (TypeOf Frm.Controls(I) Is Label) _ '選擇說話 Public Sub SelectLanguage(LanName As String) 另外,對照麻煩的是假如在同時有幾個Form顯示著的情形下要切換介面說話,那麼需要手工別離對各個窗口調用TranslateForm()函數,假如你想改善,那麼可以再寫個過程遍歷所有窗口並挪用該函數,這個就留給你來做吧。 End Function '翻譯文字 Next I LabelCmd4=Help 引用自: http://mypaper.pchome.com.tw/meteor0721/post/1325789038有關各國語文翻譯公證的問題歡迎諮詢華頓翻譯公司02-77260932 |