Hier ein kleiner Tipp von mir wie man ganz einfach verschiedene Sprachen in seinem Programm einbinden kann:
Als erstes eine Sub um die Standart-Sprachdatei zu erstellen, welche man dann übersetzen (lassen) kann:
Dabei werden alle Controls durchlaufen und die Texte der Controls in der deutsch.txt gespeichert.
Jetzt kann man sich diese Datei vornehmen und Zeile für Zeile übersetzen und zB. als english.txt abspeichern.
Um diese dann aufzurufen, gibt es folgende Sub:
Somit werden wieder alle Controls durchlaufen und mit der entsprechenden Zeile der Textdatei versehen.
Soweit ich weiß, dürfte die Reihenfolge, wie die Controls durchlaufen werden, sich nicht ändern, solange das Programm nicht umgestaltet wird.
Ja, viel Erfolg beim nutzen
Als erstes eine Sub um die Standart-Sprachdatei zu erstellen, welche man dann übersetzen (lassen) kann:
VB.NET-Quellcode
- Private Sub OriginalSprachdateiErstellen(ByVal oContainer As Control)
- If Not IsNothing(oContainer) Then
- For Each oControl As Control In oContainer.Controls
- If oControl.Controls.Count > 0 Then
- If oControl.Text <> "" Then My.Computer.FileSystem.WriteAllText(Application.StartupPath & "\deutsch.txt", oControl.Text & vbCrLf, True)
- OriginalSprachdateiErstellen(oControl)
- Else
- If oControl.Text <> "" Then My.Computer.FileSystem.WriteAllText(Application.StartupPath & "\deutsch.txt", oControl.Text & vbCrLf, True)
- End If
- Next
- End If
- End Sub
Dabei werden alle Controls durchlaufen und die Texte der Controls in der deutsch.txt gespeichert.
Jetzt kann man sich diese Datei vornehmen und Zeile für Zeile übersetzen und zB. als english.txt abspeichern.
Um diese dann aufzurufen, gibt es folgende Sub:
VB.NET-Quellcode
- Private Liste As New List(Of Control) 'global deklarieren
- Private Sub SprachdateiLaden(ByVal Datei As String, ByVal oContainer As Control)
- If Not IsNothing(oContainer) Then
- For Each oControl As Control In oContainer.Controls
- If oControl.Controls.Count > 0 Then
- If oControl.Text <> "" Then Liste.Add(oControl)
- ListBox1.Items.Add(oControl.Name & " : " & oControl.Text)
- SprachdateiLaden(Datei, oControl)
- Else
- If oControl.Text <> "" Then Liste.Add(oControl)
- ListBox1.Items.Add(oControl.Name & " : " & oControl.Text)
- End If
- Next
- End If
- Dim arr As String() = Split(My.Computer.FileSystem.ReadAllText(Datei), vbCrLf)
- For i As Integer = 0 To Liste.Count - 1
- Liste(i).Text = arr(i)
- Next
- Liste.Clear()
- End Sub
Somit werden wieder alle Controls durchlaufen und mit der entsprechenden Zeile der Textdatei versehen.
Soweit ich weiß, dürfte die Reihenfolge, wie die Controls durchlaufen werden, sich nicht ändern, solange das Programm nicht umgestaltet wird.
Ja, viel Erfolg beim nutzen
Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!