Google-Übersetzer

  • Ich wollte für mich nen google-übersetzer machen, doch leider komme ich nicht weiter.

    Der wählt die Sprache nähmlich bei 'suchen und übersetzen' aus.

    Den Text hingegen fügt er richtig ein und zwar bei 'Text Übersetzen'.

    Wie kann ich das machen, das er bei 'Text übersetzen' die Sprachen auswählt?

    Ich habe die Combox-erstmal weggelassen....

    Hier ist mein bisheriges Script:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include<IE.au3>
    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Sebastian\Desktop\autoit\google_übersetzer\translater.kxf
    $Form1 = GUICreate("Form1", 603, 506, 207, 132)
    $Input1 = GUICtrlCreateInput("Übersetzer Text", 328, 0, 273, 400,$WS_VSCROLL+$ES_MULTILINE+$ES_WANTRETURN)
    $Input2 = GUICtrlCreateInput("Zu Übersetzender Text", 8, 0, 249, 400,$WS_VSCROLL+$ES_MULTILINE+$ES_WANTRETURN)
    $Button1 = GUICtrlCreateButton("Go!", 256, 0, 73, 505, $WS_GROUP)
    $Combo1 = GUICtrlCreateCombo("Deutsch", 8, 424, 241, 25)
    $Combo2 = GUICtrlCreateCombo("Deutsch", 336, 424, 265, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $f_fireevent=1
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button1
    $seite=_IECreate("http://www.google.de/language_tools?hl=de",1,1)
    _IELoadWait($seite)
    $form=_IEFormGetObjByName($seite,'text_form')
    $object=_IEFormElementGetObjByName($form,'text')
    _IEFormElementSetValue($object,guictrlread($Input2),1)
    $fromlan=_IEGetObjById($form,'sl')
    msgbox(0,"", @extended)
    _IEFormElementOptionSelect($fromlan,"Dänisch",1,"byText")
    $fromlan=_IEGetObjById($form,'tl')
    _IEFormElementOptionSelect($fromlan,"Deutsch",1,"byText")
    sleep(5000)
    ;_IEFormSubmit($form)
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von der Scripter (27. Juni 2009 um 15:20)

  • Ich habe das gleiche schonmal gecodet. Vielleicht hilft dir ja mein Script, wenn du dir den Code anschaust.

    Übersetzt: Deutsch, Englisch, Schwedisch, Französich, Italienisch

    Script:

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <ComboConstants.au3>
    #include <String.au3>
    #include <IE.au3>
    #include <GuiComboBoxEx.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $temp_readtxt, $wort
    Dim $language[5]
    $language[0] = "de"
    $language[1] = "en"
    $language[2] = "sv"
    $language[3] = "fr"
    $language[4] = "it"
    Dim $iconending[5]
    $iconending[0] = 'germany.ico'
    $iconending[1] = 'france.ico'
    $iconending[2] = 'sweden.ico'
    $iconending[3] = 'italy.ico'
    $iconending[4] = 'uk.ico'
    Dim $downloadlinks[5]
    $downloadlinks[0] = 'http://www.iconarchive.com/download/icon/iconscity/flags/germany.ico'
    $downloadlinks[1] = 'http://www.iconarchive.com/download/icon/iconscity/flags/france.ico'
    $downloadlinks[2] = 'http://www.iconarchive.com/download/icon/iconscity/flags/sweden.ico'
    $downloadlinks[3] = 'http://www.iconarchive.com/download/icon/iconscity/flags/italy.ico'
    $downloadlinks[4] = 'http://www.iconarchive.com/download/icon/iconscity/flags/uk.ico'
    Dim $i = 0
    Dim $proz = 0
    Dim $translateurl = 'http://translate.google.de/translate_t?hl=de#'

    [/autoit] [autoit][/autoit] [autoit]

    $dlread = IniRead(@ScriptDir & "config.ini", "Dl-Icons", "?", "default")
    If $dlread = "default" Then
    DirCreate(@ScriptDir & "translater-icons")
    ProgressOn("Download", "Icons werden gedownloadet ...", "Icon[1/5]: 0 %", 10, 10)
    _Download()
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Form1_1 = GUICreate("Translater - Jautois", 482, 305, 193, 125)
    GUISetIcon(@ScriptDir & "translatergermany.ico")
    $input = GUICtrlCreateEdit("", 8, 8, 465, 129)
    $hCombo = _GUICtrlComboBoxEx_Create($Form1_1, "", 8, 272, 121, 200, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("in", 136, 275, 13, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $hCombo2 = _GUICtrlComboBoxEx_Create($Form1_1, "", 152, 272, 120, 200, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
    $translatebut = GUICtrlCreateButton("Übersetzen", 352, 271, 121, 24, 0)
    $output = GUICtrlCreateEdit("", 8, 144, 465, 113, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN))
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Copy = GUICtrlCreateButton("Copy", 280, 271, 64, 24, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_AddIcon($hImage, @ScriptDir & "translater-iconsgermany.ico")
    _GUIImageList_AddIcon($hImage, @ScriptDir & "translater-iconsuk.ico")
    _GUIImageList_AddIcon($hImage, @ScriptDir & "translater-iconssweden.ico")
    _GUIImageList_AddIcon($hImage, @ScriptDir & "translater-iconsfrance.ico")
    _GUIImageList_AddIcon($hImage, @ScriptDir & "translater-iconsitaly.ico")
    _GUICtrlComboBoxEx_SetImageList($hCombo, $hImage)
    _GUICtrlComboBoxEx_AddString($hCombo, "Deutsch", 0, 0)
    _GUICtrlComboBoxEx_AddString($hCombo, "Englisch", 1, 1)
    _GUICtrlComboBoxEx_AddString($hCombo, "Schwedisch", 2, 2)
    _GUICtrlComboBoxEx_AddString($hCombo, "Französich", 3, 3)
    _GUICtrlComboBoxEx_AddString($hCombo, "Italienisch", 4, 4)

    [/autoit] [autoit][/autoit] [autoit]

    $hImage2 = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_AddIcon($hImage2, @ScriptDir & "translater-iconsgermany.ico")
    _GUIImageList_AddIcon($hImage2, @ScriptDir & "translater-iconsuk.ico")
    _GUIImageList_AddIcon($hImage2, @ScriptDir & "translater-iconssweden.ico")
    _GUIImageList_AddIcon($hImage2, @ScriptDir & "translater-iconsfrance.ico")
    _GUIImageList_AddIcon($hImage2, @ScriptDir & "translater-iconsitaly.ico")
    _GUICtrlComboBoxEx_SetImageList($hCombo2, $hImage2)
    _GUICtrlComboBoxEx_AddString($hCombo2, "Deutsch", 0, 0)
    _GUICtrlComboBoxEx_AddString($hCombo2, "Englisch", 1, 1)
    _GUICtrlComboBoxEx_AddString($hCombo2, "Schwedisch", 2, 2)
    _GUICtrlComboBoxEx_AddString($hCombo2, "Französich", 3, 3)
    _GUICtrlComboBoxEx_AddString($hCombo2, "Italienisch", 4, 4)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Copy
    $temp_readoutput = GUICtrlRead($output)
    ClipPut($temp_readoutput)
    Case $translatebut
    $temp_readtxt = GUICtrlRead($input)
    $firsttrans = _GUICtrlComboBoxEx_GetCurSel($hCombo)
    $secondtrans = _GUICtrlComboBoxEx_GetCurSel($hCombo2)
    If ($firsttrans = -1) Or ($secondtrans = -1) Then
    MsgBox(0, "Error", "Bitte Sprache auswählen!")
    ElseIf ($firsttrans <> $secondtrans) Then
    $url = 'http://translate.google.de/translate_t?hl=de#' & $language[$firsttrans] & "|" & $language[$secondtrans] & "|"
    GUICtrlSetData($output, _getTranslationByGoogle($temp_readtxt))
    EndIf
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _getTranslationByGoogle($wort)
    $oIE = _IECreate($url & $wort, 0, 0)
    $text = _IEBodyReadText($oIE)
    Do
    $text = _IEBodyReadText($oIE)
    Until StringInStr($text, "Wir danken") <> 0
    If $firsttrans = 0 Then
    $text2 = _StringBetween($text, $wort & " ", "Deutsch")
    Else
    If $firsttrans = 1 Then
    $text2 = _StringBetween($text, $wort & " ", "Englisch")
    Else
    If $firsttrans = 2 Then
    $text2 = _StringBetween($text, $wort & " ", "Schwedisch")
    Else
    If $firsttrans = 3 Then
    $text2 = _StringBetween($text, $wort & " ", "Französisch")
    Else
    If $firsttrans = 4 Then
    $text2 = _StringBetween($text, $wort & " ", "Italienisch")
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    _IEQuit($oIE)
    Return $text2[0]
    EndFunc ;==>_getTranslationByGoogle

    [/autoit] [autoit][/autoit] [autoit]

    Func _Download()
    While $i < 6
    If $i = 5 Then
    IniWrite(@ScriptDir & "config.ini", "Dl-Icons", "?", "1")
    ProgressOff()
    ExitLoop
    EndIf
    InetGet($downloadlinks[$i], @ScriptDir & "translater-icons" & $iconending[$i], 0, 1)
    While @InetGetActive
    $fullfilezize = InetGetSize($downloadlinks[$i])
    $proz = @InetGetBytesRead / $fullfilezize * 100
    $stringforprogress = Round($proz, 1)
    ProgressSet($proz, "Icon [" & $i + 1 & "/5]: " & $stringforprogress & " %")
    WEnd
    $i = $i + 1
    WEnd
    EndFunc ;==>_Download

    [/autoit]

    Screenshot:

    Spoiler anzeigen
  • Also folgender Fehler habe ich gefunden.

    Deusch / Englisch
    Guten Tag / Good day suche

    Da schreibt er ein Wort zu viel !!!

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Alina: Das liegt an Google die den Quellcode der Seite etwas verändert hat. Da das Script schon recht alt ist, stimmt dies nicht mehr überein.

  • Ist ne geile Idee, hab auch mal schnell einen gemacht mit Paketen:

    Spoiler anzeigen
    [autoit]

    #include <WinHTTP.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $MainGUI = GUICreate("Übersetzer von Greek", 522, 341, -1, -1)
    $Absenden = GUICtrlCreateButton("Übersetzen", 416, 288, 97, 41, $WS_GROUP)
    $Eingabetext = GUICtrlCreateEdit("", 8, 32, 249, 233,$ES_MULTILINE)
    $Ergebnis = GUICtrlCreateEdit("", 264, 32, 249, 233,$ES_MULTILINE)
    $Input = GUICtrlCreateLabel("Eingabetext", 80, 8, 94, 22)
    GUICtrlSetFont(-1, 12, 800, 2, "Arial")
    $Output = GUICtrlCreateLabel("Ausgabetext", 344, 8, 100, 22)
    GUICtrlSetFont(-1, 12, 800, 2, "Arial")
    $AutoLabel=GUICtrlCreateLabel("Sprache wird automatisch erkannt", 8, 288, 121, 30)
    $Sprache=GUICtrlCreateCombo("", 264, 288, 121, 19, $CBS_DROPDOWNLIST)
    GUICtrlSetData($Sprache,"Englisch|Französisch|Italienisch")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Absenden
    _Translate(GUICtrlRead($Sprache),GUICtrlRead($Eingabetext))
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Translate($Zielssprache,$sText)
    Switch GUICtrlRead($Sprache)
    Case "Englisch"
    $Zielssprache="en"
    Case "Französisch"
    $Zielssprache="fr"
    Case "Italienisch"
    $Zielssprache="it"
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ausgangssprache="auto"

    [/autoit] [autoit][/autoit] [autoit]

    $sPost="hl=de&ie=UTF-8&text="&_URIEncode($sText)&"&sl="&$Ausgangssprache&"&tl="&$Zielssprache
    $hw_open = _WinHttpOpen("Übersetzer")
    $hw_connect = _WinHttpConnect($hw_open, "translate.google.de")
    $h_openRequest = _WinHttpOpenRequest($hw_connect,"POST", "/translate_t","HTTP/1.1", "http://translate.google.de/")
    _WinHttpSendRequest($h_openRequest, "Content-Type: application/x-www-form-urlencoded"& @CRLF, $sPost)
    _WinHttpReceiveResponse($h_openRequest)

    [/autoit] [autoit][/autoit] [autoit]

    Local $data=""
    Do
    $data&=_WinHttpReadData($h_openRequest)
    Until @error
    $result = StringRegExp($data, "id=result_box.*?>(.*?)</div>",3)
    GUICtrlSetData ($Ergebnis,$result[0])

    [/autoit] [autoit][/autoit] [autoit]

    _WinHttpCloseHandle($h_openRequest)
    _WinHttpCloseHandle($hw_connect)
    _WinHttpCloseHandle($hw_open)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _URIEncode($sData)
    ; Prog@ndy
    Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
    Local $nChar
    $sData = ""
    For $i = 1 To $aData[0]
    ;~ ConsoleWrite($aData[$i] & @CRLF)
    $nChar = Asc($aData[$i])
    Switch $nChar
    Case 45, 46, 48 - 57, 65 To 90, 95, 97 To 122, 126
    $sData &= $aData[$i]
    Case 32
    $sData &= "+"
    Case Else
    $sData &= "%" & Hex($nChar, 2)
    EndSwitch
    Next
    Return $sData
    EndFunc ;==>_URIEncode

    [/autoit]

    Include gibt es hier:

    Includes