Hallo zusammen,
ich habe mich in letzter Zeit ein bisschen mit XML Dateien in VB.NET beschäftigt und eine kleine Klasse geschrieben, mit der man sein Programm mit Hilfe von Sprachdateien übersetzen kann.
Spoiler anzeigen
Die XML Dateien liegen im Ordner /lng relativ zum Programm und heißen z.B. de.xml, fr.xml, en.xml (/lng/de.xml, /lng/en.xml etc.). Die XML-Dateien sehen ungefähr so aus:
Beim initialisieren der Klasse kann eine Sprache angegeben werden:
Wenn keine Sprache angegeben wurde, wird die Systemsprache verwendet. Existiert die Systemsprache nicht, wird die Datei en.xml benutzt.
Über den Befehl
könnt ihr dann den String zu einem bestimmten Schlüsselwort auslesen.
Ich hoffe, die Klasse gefällt euch und jemand kann sie gebrauchen
Viele Grüße
Leo Bernard
ich habe mich in letzter Zeit ein bisschen mit XML Dateien in VB.NET beschäftigt und eine kleine Klasse geschrieben, mit der man sein Programm mit Hilfe von Sprachdateien übersetzen kann.
VB.NET-Quellcode
- Imports System.Xml
- Public Class languages
- Dim lnghash As New Hashtable
- Sub New(Optional ByVal lng As String = "")
- Debug.Print("Initializing the language Manager...")
- Dim r As XDocument
- If lng = "" Then
- lng = Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName
- End If
- Dim filename As String = Application.StartupPath & "\lng\" & lng & ".xml"
- Try
- If My.Computer.FileSystem.FileExists(filename) Then
- r = XDocument.Load(filename)
- Else : r = XDocument.Load(Application.StartupPath & "\lng\en.xml")
- End If
- Catch es As Exception
- MsgBox("The Languagefile could not be found.", MsgBoxStyle.Critical)
- Application.Exit()
- End Try
- For Each e As XElement In r....Elements("string")
- lnghash.Add(e.Attribute("name").Value, e.Value)
- Debug.Print("Added (" & e.Attribute("name").Value & ", " & e.Value & ") to the Hashtable")
- Next
- End Sub
- Public Function L(ByVal name As String, Optional ByVal Var1 As String = "", Optional ByVal Var2 As String = "", Optional ByVal Var3 As String = "", Optional ByVal Var4 As String = "", Optional ByVal Var5 As String = "", Optional ByVal Var6 As String = "", Optional ByVal Var7 As String = "", Optional ByVal Var8 As String = "", Optional ByVal Var9 As String = "", Optional ByVal Var10 As String = "") As String
- Try
- Dim text As String = String.Format(lnghash(name), Var1, Var2, Var3, Var4, Var5, Var6, Var7, Var8, Var9, Var10)
- Return text
- Catch ex As Exception
- Debug.Print("The Variable """ & name & """ doesn't exist!")
- Return ""
- End Try
- End Function
- End Class
Die XML Dateien liegen im Ordner /lng relativ zum Programm und heißen z.B. de.xml, fr.xml, en.xml (/lng/de.xml, /lng/en.xml etc.). Die XML-Dateien sehen ungefähr so aus:
Beim initialisieren der Klasse kann eine Sprache angegeben werden:
Wenn keine Sprache angegeben wurde, wird die Systemsprache verwendet. Existiert die Systemsprache nicht, wird die Datei en.xml benutzt.
Über den Befehl
könnt ihr dann den String zu einem bestimmten Schlüsselwort auslesen.
Ich hoffe, die Klasse gefällt euch und jemand kann sie gebrauchen
Viele Grüße
Leo Bernard
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()