Funktionierender (übersichtlicher) Übersetzer für VB.NET

    • VB.NET

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

      Funktionierender (übersichtlicher) Übersetzer für VB.NET

      Hi

      Ich poste hier mal einen funktionierenden Übersetzer der alle Sprachen kann die auch Google kann :)
      Ihr braucht auf der Form 5 Controls (1 Button und 4 Textboxen, können auch andere Controls sein)

      Bennenung:
      TextBox2 "txtText"
      TextBox1 "lngOutput"
      TextBox3 "lngInput"
      TextBox4 "txtOutput"

      Nun die Hauptfunktion.

      VB.NET-Quellcode

      1. ''' <summary>
      2. ''' Übersetzt einen Text in eine andere Sprache
      3. ''' </summary>
      4. ''' <param name="stext">Der Text der übersetzt werden soll</param>
      5. ''' <param name="languageIn">Die Input-Sprache</param>
      6. ''' <param name="languageOut">Die Output-Sprache</param>
      7. ''' <returns></returns>
      8. ''' <remarks></remarks>
      9. Public Shared Function Translate(ByVal stext As String, ByVal languageIn As String, ByVal languageOut As String)
      10. 'Webclient erstellen
      11. Dim client As New Net.WebClient
      12. 'Übersetzung herunterladen
      13. Dim translation As String = client.DownloadString("http://translate.google.de/translate_a/t?client=t&text=" & stext & "&sl=" & languageOut & "&tl=" & languageIn)
      14. 'Übersetzung zurückgeben
      15. Return translation
      16. End Function

      Um diese Funktion zu benutzen könnt ihr diesen Code benutzen:

      VB.NET-Quellcode

      1. 'Neue Übersetzung
      2. Dim lngText As String = Translate(txtText.Text, lngInput.Text, lngOutput.Text)
      3. 'Formattieren (kann auch weggelassen werden, sieht dann aber nicht so schön aus)
      4. Dim finalText As String() = lngText.Split({Chr(34)}, StringSplitOptions.RemoveEmptyEntries)
      5. 'Bekommen
      6. txtOutput.Text = finalText(1)


      Viel Spaß damit!

      MFG PhoenixBlaster :)
      Hallo @PhoenixBlaster
      erst mal funktioniert die Query nur wenn ich statt "Text" "q" einsetze und wenn man das getan hat sollte man auch Option Strict on an machen und den Verweis Visual-Basic raus nehmen :)
      ich habe dann mal eine Klasse gebaut die ein bisschen Übersichtlicher ist und auch schneller da sie die Webrequest Klasse nutzt :)
      Klasse :
      Spoiler anzeigen

      VB.NET-Quellcode

      1. Public Class Translater
      2. Public Shared Function Translate(ByVal text As String, ByVal languageIn As Integer, ByVal languageOut As Integer) As String
      3. Dim endungen As String() = {"af", "sq", "ar", "hy", "az", "eu", "bn", "bs", "bg", "ceb", "zh-TW", "zh-CN", "da", "de", "en", "eo", "et", "fi", "fr", "gl", "ka", "el", "gu", "ht", "iw", "hi", "hmn", "id", "ga", "is", "it", "ja", "jw", "yi", "kn", "ca", "km", "ko", "hr", "lo", "la", "lv", "lt", "ms", "mt", "mr", "mk", "nl", "no", "fa", "pl", "pt", "ro", "ru", "sv", "sr", "sk", "sl", "es", "sw", "tl", "ta", "te", "th", "cs", "tr", "uk", "hu", "ur", "vi", "cy", "be"}
      4. Return GetHtml("https://translate.google.de/translate_a/t?client=t&sl=" & endungen(languageIn) & "&tl=" & endungen(languageOut) & "&q=" & text).Split({Convert.ToChar(34)}, StringSplitOptions.RemoveEmptyEntries)(1)
      5. End Function
      6. Private Shared Function GetHtml(ByVal URL As String) As String
      7. Try
      8. Dim request As Net.HttpWebRequest = CType(Net.HttpWebRequest.Create(URL), Net.HttpWebRequest)
      9. request.Method = Net.WebRequestMethods.Http.Get
      10. request.Timeout = 10000
      11. Dim response As Net.HttpWebResponse = CType(request.GetResponse, Net.HttpWebResponse)
      12. Dim leser As New IO.StreamReader(response.GetResponseStream())
      13. Return leser.ReadToEnd
      14. Catch ex As Exception
      15. Return String.Empty
      16. End Try
      17. End Function
      18. Public Enum Language
      19. Afrikanns = 0
      20. Albanisch = 1
      21. Arabisch = 2
      22. Armenisch = 3
      23. Aserbaidschanisch = 4
      24. Baskisch = 5
      25. Bengalisch = 6
      26. Bosnisch = 7
      27. Bulgarisch = 8
      28. Cebuano = 9
      29. Chinesisch_traditionel = 10
      30. Chinesisch_vereinfacht = 11
      31. Dänisch = 12
      32. Deutsch = 13
      33. Englisch = 14
      34. Esperanto = 15
      35. Estnisch = 16
      36. Finisch = 17
      37. Französisch = 18
      38. Galizisch = 19
      39. Georgisch = 20
      40. Griechisch = 21
      41. Gujarati = 22
      42. Haitianisch = 23
      43. Hebräisch = 24
      44. Hindi = 25
      45. Hmong = 26
      46. Indonesisch = 27
      47. Irisch = 28
      48. Isländisch = 29
      49. Italienisch = 30
      50. Japanisch = 31
      51. Javanesisch = 32
      52. Jiddisch = 33
      53. Kannada = 34
      54. Katalanisch = 35
      55. Khmer = 36
      56. Koreanisch = 37
      57. Kroatisch = 38
      58. Lao = 39
      59. Lateinisch = 40
      60. Lettisch = 41
      61. Litauisch = 42
      62. Malaysisch = 43
      63. Maltesisch = 44
      64. Marathisch = 45
      65. Mazedonisch = 46
      66. Niederländisch = 47
      67. Norwegisch = 48
      68. Persisch = 49
      69. Polnisch = 50
      70. Portugiesisch = 51
      71. Rumänisch = 52
      72. Russisch = 53
      73. Schwedisch = 54
      74. Serbisch = 55
      75. Slowakisch = 56
      76. Slowenisch = 57
      77. Spanisch = 58
      78. Suaheli = 59
      79. Tagalog = 60
      80. Tamil = 61
      81. Telugu = 62
      82. Thailändisch = 63
      83. Tschechisch = 64
      84. Türkisch = 65
      85. Ukrainisch = 66
      86. Ungarisch = 67
      87. Urdu = 68
      88. Vietnamesisch = 69
      89. Walisisch = 70
      90. Weißrussisch = 71
      91. End Enum
      92. End Class

      Aufruf :

      VB.NET-Quellcode

      1. Public Class Form1
      2. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      3. MessageBox.Show(Translater.Translate("Hallo Welt das ist ein Test", Translater.Language.Deutsch, Translater.Language.Englisch))
      4. End Sub
      5. End Class


      Habe einfach mal alle Google Sprachen in eine Enum eingefügt ist einfacher :)
      hoffe das es irgendwann mal jemand braucht :)
      MFG 0x426c61636b4e6574776f726b426974
      InOffical VB-Paradise IRC-Server
      webchat.freenode.net/
      Channel : ##vbparadise

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BlackNetworkBit“ ()

      Ich habe mir mal noch mal meinen Code angeschaut und ich habe ein paar mögliche Fehler behoben und eine String Extension eingebaut.
      Spoiler anzeigen

      VB.NET-Quellcode

      1. Imports System.Runtime.CompilerServices
      2. Public Class Form1
      3. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      4. Try
      5. MessageBox.Show("HALLO Welt ;)".Translate(Language.Deutsch, Language.Englisch))
      6. Catch ex As Exception
      7. MessageBox.Show(ex.ToString)
      8. End Try
      9. End Sub
      10. End Class
      11. Module Translation
      12. <Extension()>
      13. Public Function Translate(ByVal str As String, ByVal languageIn As Language, ByVal languageOut As Language) As String
      14. Dim endungen As String() = {"af", "sq", "ar", "hy", "az", "eu", "bn", "bs", "bg", "ceb", "zh-TW", "zh-CN", "da", "de", "en", "eo", "et", "fi", "fr", "gl", "ka", "el", "gu", "ht", "iw", "hi", "hmn", "id", "ga", "is", "it", "ja", "jw", "yi", "kn", "ca", "km", "ko", "hr", "lo", "la", "lv", "lt", "ms", "mt", "mr", "mk", "nl", "no", "fa", "pl", "pt", "ro", "ru", "sv", "sr", "sk", "sl", "es", "sw", "tl", "ta", "te", "th", "cs", "tr", "uk", "hu", "ur", "vi", "cy", "be"}
      15. Try
      16. If endungen.Count - 1 >= languageIn And endungen.Count - 1 >= languageOut Then Return GetHtml("https://translate.google.de/translate_a/t?client=t&sl=" & endungen(languageIn) & "&tl=" & endungen(languageOut) & "&q=" & str).Split({Convert.ToChar(34)}, StringSplitOptions.RemoveEmptyEntries)(1)
      17. Catch ex As Exception
      18. Throw New NoConnectionPossible("Der Gewünschte Text konnte nicht übersetzt werden." & Environment.NewLine & "Das könnte daran liegen das Google diese Abfrage nicht annimmt oder das sie keine internet Verbindung verfügen.")
      19. End Try
      20. Return str
      21. End Function
      22. Private Function GetHtml(ByVal URL As String) As String
      23. Try
      24. Dim request As Net.HttpWebRequest = CType(Net.HttpWebRequest.Create(URL), Net.HttpWebRequest)
      25. request.Method = Net.WebRequestMethods.Http.Get
      26. request.Timeout = 10000
      27. Dim response As Net.HttpWebResponse = CType(request.GetResponse, Net.HttpWebResponse)
      28. Dim leser As New IO.StreamReader(response.GetResponseStream())
      29. Return leser.ReadToEnd
      30. Catch ex As Exception
      31. Throw New NoConnectionPossible("Die Verbindung wurde nicht erfolgreich abgeschlossen.")
      32. Return String.Empty
      33. End Try
      34. End Function
      35. Public Enum Language
      36. Afrikanns = 0 : Albanisch = 1 : Arabisch = 2 : Armenisch = 3
      37. Aserbaidschanisch = 4 : Baskisch = 5 : Bengalisch = 6 : Bosnisch = 7
      38. Bulgarisch = 8 : Cebuano = 9 : Chinesisch_traditionel = 10 : Chinesisch_vereinfacht = 11
      39. Dänisch = 12 : Deutsch = 13 : Englisch = 14 : Esperanto = 15
      40. Estnisch = 16 : Finisch = 17 : Französisch = 18 : Galizisch = 19
      41. Georgisch = 20 : Griechisch = 21 : Gujarati = 22 : Haitianisch = 23
      42. Hebräisch = 24 : Hindi = 25 : Hmong = 26 : Indonesisch = 27
      43. Irisch = 28 : Isländisch = 29 : Italienisch = 30 : Japanisch = 31
      44. Javanesisch = 32 : Jiddisch = 33 : Kannada = 34 : Katalanisch = 35
      45. Khmer = 36 : Koreanisch = 37 : Kroatisch = 38 : Lao = 39
      46. Lateinisch = 40 : Lettisch = 41 : Litauisch = 42 : Malaysisch = 43
      47. Maltesisch = 44 : Marathisch = 45 : Mazedonisch = 46 : Niederländisch = 47
      48. Norwegisch = 48 : Persisch = 49 : Polnisch = 50 : Portugiesisch = 51
      49. Rumänisch = 52 : Russisch = 53 : Schwedisch = 54 : Serbisch = 55
      50. Slowakisch = 56 : Slowenisch = 57 : Spanisch = 58 : Suaheli = 59
      51. Tagalog = 60 : Tamil = 61 : Telugu = 62 : Thailändisch = 63
      52. Tschechisch = 64 : Türkisch = 65 : Ukrainisch = 66 : Ungarisch = 67
      53. Urdu = 68 : Vietnamesisch = 69 : Walisisch = 70 : Weißrussisch = 71
      54. End Enum
      55. Public Class NoConnectionPossible
      56. Inherits ApplicationException
      57. Public Sub New(ByVal message As String)
      58. MyBase.New(message)
      59. End Sub
      60. End Class
      61. End Module
      MFG 0x426c61636b4e6574776f726b426974
      InOffical VB-Paradise IRC-Server
      webchat.freenode.net/
      Channel : ##vbparadise

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BlackNetworkBit“ ()