Deutsch nach Englisch

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von AliveDevil.

    Deutsch nach Englisch

    Hallo,

    ich habe in einer form buttons labels usw wo man eben was reinschreiben kann nun möchte ich ein button machen das wenn man draufklickt das alle buttons labels usw. das der text darin auf englisch ist(Spracheinstellung).

    gruß vber
    Soll das übersetzt werden oder meinst du eine Sprachauswahl für dein Programm? In der eigentlichen Beschreibung sehe ich leider nur zwei Punkte und nur einen Großbuchstaben, sorry.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Ich bin mal so nett:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Runtime.Serialization.Formatters.Binary
    3. Imports System.IO.Compression
    4. Public Class Form1
    5. Dim MyTrans As Language
    6. Dim Languages As New List(Of Language)
    7. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    8. For Each item In Languages
    9. Serializer.SaveObjekt("Languages\" & item.Localization & ".xml", item, True)
    10. Next
    11. End Sub
    12. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    13. If Not IO.Directory.Exists("Languages") Then
    14. IO.Directory.CreateDirectory("Languages")
    15. End If
    16. If Not IO.File.Exists("Languages\de-de.xml") Then
    17. Serializer.SaveObjekt("Languages\de-de.xml", New Language("de-de", "Wechsle zu Englisch", "Dies ist ein deutscher Satz."), True)
    18. End If
    19. If Not IO.File.Exists("Languages\en-us.xml") Then
    20. Serializer.SaveObjekt("Languages\en-us.xml", New Language("en-us", "Switch to german", "This is an english sentence."), True)
    21. End If
    22. For Each item In IO.Directory.GetFiles("Languages")
    23. Dim tmp As Language = Nothing
    24. tmp = CType(Serializer.LoadObjekt(item, True), Language)
    25. Languages.Add(tmp)
    26. Next
    27. MyTrans = (From item In Languages Where item.Localization = "de-de" Select item)(0)
    28. ChangeLanguage()
    29. End Sub
    30. Sub ChangeLanguage()
    31. Label1.Text = MyTrans.TextLabel
    32. Button1.Text = MyTrans.TextButton
    33. End Sub
    34. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    35. If MyTrans.Localization = "de-de" Then
    36. MyTrans = (From item In Languages Where item.Localization = "en-us" Select item)(0)
    37. ElseIf MyTrans.Localization = "en-us" Then
    38. MyTrans = (From item In Languages Where item.Localization = "de-de" Select item)(0)
    39. End If
    40. ChangeLanguage()
    41. End Sub
    42. End Class
    43. <Serializable()> _
    44. Class Language
    45. Public Property Localization As String
    46. Public Property TextButton As String
    47. Public Property TextLabel As String
    48. Sub New()
    49. Localization = ""
    50. TextButton = ""
    51. TextLabel = ""
    52. End Sub
    53. Sub New(ByVal localization As String, ByVal textbutton As String, ByVal textlabel As String)
    54. Me.Localization = localization
    55. Me.TextButton = textbutton
    56. Me.TextLabel = textlabel
    57. End Sub
    58. End Class
    59. Class Serializer
    60. Public Shared Sub SaveObjekt(Of Typ)(ByVal Pfad As String, ByVal Objekt As Typ, Optional ByVal Komprimieren As Boolean = True)
    61. Dim FileStream As Stream = New FileStream(Pfad, FileMode.OpenOrCreate)
    62. Dim BinFor As New BinaryFormatter
    63. If Komprimieren = True Then FileStream = New GZipStream(FileStream, CompressionMode.Compress)
    64. BinFor.Serialize(FileStream, Objekt)
    65. FileStream.Close()
    66. End Sub
    67. Public Shared Function LoadObjekt(ByVal Pfad As String, Optional ByVal Komprimieren As Boolean = True) As Object
    68. If System.IO.File.Exists(Pfad) = True Then
    69. Dim FileStream As Stream = New FileStream(Pfad, FileMode.OpenOrCreate)
    70. Dim bf As New BinaryFormatter
    71. If Komprimieren = True Then FileStream = New GZipStream(FileStream, CompressionMode.Decompress)
    72. Dim tmp As Object = bf.Deserialize(FileStream)
    73. FileStream.Close()
    74. Return tmp
    75. Else
    76. Return Nothing
    77. End If
    78. End Function
    79. End Class


    Was du wissen musst:
    Jedesmal wenn du die Sprache wechselst, musst du auch die Sachen erneut laden ( Sub ChangeLanguage() )
    Ich habe es mir Serialization gelöst, wie du es machen willst, ist mir egal.
    Ich benutze [VB 2008] Easy Serializer
    Bei jedem schließen wird die Datei gespeichert und auf den letzten Stand gesetzt.
    Du brauchst zwei Buttons. Das .NET Framework 3.5 und ein Verweis auf System.LINQ.