[LÖSUNG GEFUNDEN]Google übersetzer benutzen

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von jul.

    [LÖSUNG GEFUNDEN]Google übersetzer benutzen

    hallo.

    Ich hab wiedermal eine frage, und zwar:
    Wie kann ich den Text aus einer Textbox mit google-übersetzer ins Englishe bzw. ins Deutsche übersetzen?

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

    Cool, danke 8o

    //EDIT: Ätsch. Geht nicht:

    Deutscher Text schrieb:

    Test Übersetzung

    Ausgabe schrieb:

    {"sentences":[{"trans":"Test Ãœbersetzung","orig":"Test Ãœbersetzung","translit":""}],"src":"de"}

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

    Versuche mich ja auch gerade am Google-Übersetzer und habe das Problem, dass mir das Webbrowser-Steuerelement zwar das richtige anzeigt (eine Google-Übersetzung), aber wenn ich den Quelltext per

    VB.NET-Quellcode

    1. übersetzung = Form1.WebBrowser1.DocumentText()

    abfrage, erhalte ich in der Variable übersetzung nur Folgendes:
    "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">".
    Im Quelltext selber find ich die Zeile aber nirgendwo.
    Wie komme ich an den "richtigen" Quelltext?

    Gruß

    EDIT: Gerade rausgefunden: obiges passiert nur, wenn ich ein Wort mit Umlaut habe übersetzen lassen, bei Wörtern ohne Umlaute steht der Rest (das was ich wissen möchte) mit dabei. Nur: wie bekomme ich den Rest auch bei Umlauten?

    EDIT2: *Argh*, jetzt werde ich total verrückt 8| Es funktoiniert alles, allerdings nur, wenn ich die Anfrage zum zweiten Mal starte...

    EDIT3: Hat sich hiermit erledigt:

    VB.NET-Quellcode

    1. Do Until browser.ReadyState = WebBrowserReadyState.Complete
    2. Application.DoEvents()
    3. Loop

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „MasterPhönix“ ()

    VB.NET-Quellcode

    1. Do Until browser.ReadyState = WebBrowserReadyState.Complete
    2. Application.DoEvents()
    3. Loop


    Oder einfach in das Webbrowser.DocumentComplete Event schreiben(bin mir nicht sicher ob das genau so heißt)

    Mfg
    Firestorm
    Hast du dir das Tutorial von viperkill überhaupt durchgelesen und ausprobiert?

    Wie dem auch sei, Sinn und Zweck von Regular Expressions ist es hier, den übersetzen Text zu bekommen. Hier ein Beispiel:
    {"sentences":[{"trans":"house","orig":"Haus","translit":""}],"src":"de"}
    Die Info, die uns interessiert, ist doch in diesem Fall "house". Mit Regular Expressions findest du dies raus, indem du dem Programm einen gewissen Teil vor dem gewünschten Wort (das dort stehende darf sich natürlich nciht bei einer erneuten Anfrage verändern) und einen Teil hinter dem gesuchten Wort mitteilst und den Teil dazwischen (das gesuchte Wort) als "Variable" kennzeichnest. Bei obigem Beispiel würde sich z.B. "trans":" gut als Teil vor dem Wort und ","orig" als Teil hinter dem Wort eignen. Mit diesen Infos und dem Tutorial sollte das eigentlich kein Problem mehr sein. Ansonsten einfach melden.
    Gruß
    Es funzt net. Mein Code:

    VB.NET-Quellcode

    1. Dim TransRegEx As New Regex("\""trans"":""(?<string>([0-9.]*))\"",""orig""")
    2. Dim myTrans As String = TransRegEx.Match(Quelle).Groups("string").ToString()
    3. TextBox1.Text = "Übersetzung: " & myTrans


    Was is falsch?
    Soso, Tutorial nich fertig gelesen ;) Ich vermute, du musst ein paar der Zeichen escapen, da sie sonst vom Regex-Ding als irgendwas besonderes erkannt werden. Probiers mal mit:

    VB.NET-Quellcode

    1. Dim TransRegEx As New Regex("\""trans\""\:\""(?<string>(.*))\""\,\""orig\""")
    2. Dim myTrans As String = TransRegEx.Match(Quelle).Groups("string").ToString()
    3. TextBox1.Text = "Übersetzung: " & myTrans
    Ein ganz großes Dankeschön an MasterPhönix.

    Danke auch an alle anderen, die mir geholfen haben.

    Für die Nachwelt werde ich hier die komplette Function hinschreiben:

    VB.NET-Quellcode

    1. Function Übersetzen(ByVal stext As String, ByVal language_comes As String, ByVal language_goes As String) As String
    2. Dim client As New Net.WebClient
    3. Dim übersetzung_vorläufig As String = client.DownloadString("http://translate.google.de/translate_a/t?client=t&text=" & stext & "&sl=" & language_goes & "&tl=" & language_comes)
    4. Dim TransRegEx As New Regex("\""trans\""\:\""(?<string>(.*))\""\,\""orig\""")
    5. Dim myTrans As String = TransRegEx.Match(übersetzung_vorläufig).Groups("string").ToString()
    6. Return myTrans
    7. End Function

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