为您的程序进行语言选择





1.00/5 (12投票s)
2004年5月2日
2分钟阅读

44664
让您的应用程序国际化!
引言
为您的程序进行语言选择
德语,英语,法语,西班牙语
让您的应用程序国际化!
以一种简单的方式
仅需3个函数和四个资源文件
函数是纯 Visual basic Net 代码版本,该函数是纯 Visual basic Net 代码版本 2003
函数 1
Imports System
导入 System.IO
导入 System.Collections
导入 System.Resources
导入 System.Globalization
导入 System.Threading
模块 ptLanguage
#Region "从资源文件中获取字符串"
Public Function ResString(ByVal rIndex As String, ByVal LgManuel As String) As String
'
On Error GoTo ErrorHandler
'
Dim lang As CultureInfo = Thread.CurrentThread.CurrentCulture
Dim spr As String = Trim(lang.ToString())
Dim spr_file As String
Dim SuchStr As String
Dim ret As String
Dim lgPfad As String = CurDir()
'
ret = "Error"
'
If Trim(LgManuel) <> "" Then
spr = Trim(LgManuel)
End If
'
Select Case spr
Case Is = "de-DE"
spr_file = "de.resources"
Case Is = "en-US"
spr_file = "us.resources"
Case Is = "fr-FR"
spr_file = "fr.resources"
Case Is = "es-ES"
spr_file = "es.resources"
Case Else
spr_file = "us.resources"
End Select
lgPfad = lgPfad & "\" & spr_file
If File.Exists(lgPfad) Then
Dim rr As ResourceReader = New ResourceReader(lgPfad)
Dim rlg As IDictionaryEnumerator = rr.GetEnumerator
While rlg.MoveNext()
SuchStr = CType(rlg.Key, String)
If Trim(SuchStr) = Trim(rIndex) Then
ret = CType(rlg.Value, String)
Exit While
End If
End While
rr.Close()
ResString = ret
End If
Exit Function
ErrorHandler
ret = "Error"
Exit Function
'
End Function
#End Region
#Region "从系统获取语言初始化"
'
Public Sub Language_Ini()
'
Dim lang As CultureInfo = Thread.CurrentThread.CurrentCulture
Dim spr As String = Trim(lang.ToString())
'
Select Case spr
Case Is = "de-DE"
Select_Language = CDe
Case Is = "en-US"
Select_Language = CUs
Case Is = "fr-FR"
Select_Language = CFr
Case Is = "es-ES"
Select_Language = CEs
Case Else
Select_Language = CUs
End Select
'
End Sub
'
#End Region
End Module
函数 2
Private Sub Language_FrmMain(ByVal sLanguage As String)
'
Me.Text = ResString("1", sLanguage)
Me.TbGerman.Text = ResString("100", sLanguage)
Me.TbUs.Text = ResString("101", sLanguage)
Me.TbFr.Text = ResString("102", sLanguage)
Me.TbEs.Text = ResString("103", sLanguage)
Me.Lbl1.Text = ResString("104", sLanguage)
Me.Lbl2.Text = ResString("105", sLanguage)
Me.Lbl3.Text = ResString("106", sLanguage)
Me.Lbl4.Text = ResString("107", sLanguage)
Me.Lbl5.Text = ResString("108", sLanguage)
Me.BtnExit.Text = ResString("109", sLanguage)
'
End Sub
更多源代码请参见