Connect failed: Connection timed out

[GastForen Programmierung/Entwicklung AppleScript AppleScript für den DeepL Überstetzer (HTTP Request API)?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

AppleScript für den DeepL Überstetzer (HTTP Request API)?

EinNeuling
Beiträge gesamt: 7

8. Dez 2018, 17:30
Beitrag # 1 von 12
Bewertung:
(10032 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

kennt sich jemand mit AppleScript aus?
ich würde sehr gerne mithilfe vom AppleScript (Automator) den DeepL-Übersetzer (vgl. https://www.deepl.com/translator) einbinden bzw. markierte Texte automatisch damit übersetzen.

So eine ähnliche Lösung gibt es ja für Google (vgl. https://www.apfelpage.de/...er-das-kontextmenue/):
Code
on run argv 
set tex to item 1 of argv
set tex to do shell script "php -r 'echo trim(urlencode(" & "\"" & tex & "" & "\"));'"
do shell script "open http://translate.google.com/#auto/de/" & tex
end run

​
So etwas hätte ich gerne auch für den DeepL-Übersetzer. Ich kann jedoch (noch) nicht mit dem AppleScript programmieren... :(

Ich habe noch keine solche Lösung im Internet gefunden.
Es gibt eine Lösung mit dem Python3 und KM. Dieser Script wird dafür verwendet: http://github.com/.../master/translate.py
Jemand, der sich jedoch mit AppleScript nicht auskennt, meinte, dass man das gleiche Pronzip (ab Zeile 35) evtl. als Grundlage nehmen könnte. Das würde dann Folgendes bedeuten:
Einen POST-Request an https://deepl.com/jsonrpc und geben als Payload die JSON-Struktur an, wie sie das Skript definiert. In die muss man den zu übersetzenden Text und die Sprachen einsetzen. Die DeepL-API antwortet dann ebenfalls mit JSON. Die Ergebnisse stehen in ['result']['translations'].
Also: HTTP-Request an den API-Server und Ergebnisse auswerten. Der Trick besteht darin das richtige Format zu
finden, aber das könnte man sich von dem Python-Skript abschauen...
So weit die Theorie...

Kann jemand damit etwas anfangen und mir weiterhelfen? Wie würde dieser AppleScript aussehen?

Ich muss zugestehen, dass ich ein absoluter Anfänger bin und deswegen suche ich nach Profis hier...

(Dieser Beitrag wurde von EinNeuling am 8. Dez 2018, 17:58 geändert)
X

AppleScript für den DeepL Überstetzer (HTTP Request API)?

Hans Haesler
  
Beiträge gesamt: 5826

8. Dez 2018, 18:00
Beitrag # 2 von 12
Beitrag ID: #567945
Bewertung:
(10026 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo EinNeuling,

herzlich willkommen im AppleScript-Forum auf HilfDirSelbst! :-)

Ein happige Aufgabe ... Ob es möglich ist, diese mit einem AppleScript zu lösen kann ich nicht sagen.
Aber der Aufwand wird recht gross sein und sollte entsprechend honoriert werden.

Warten wir mal ab, ob sich jemand damit befassen wird.

Gruss, Hans


als Antwort auf: [#567944]

AppleScript für den DeepL Überstetzer (HTTP Request API)?

EinNeuling
Beiträge gesamt: 7

8. Dez 2018, 18:04
Beitrag # 3 von 12
Beitrag ID: #567946
Bewertung:
(10023 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf:
Ein happige Aufgabe ...
Aber der Aufwand wird recht gross sein


OK, ich war so naiv zu denken, dass es so ein scheinbar "kleines" Script sein wird, wie bei der Lösung für den Google Übersetzer...


als Antwort auf: [#567945]

AppleScript für den DeepL Überstetzer (HTTP Request API)?

Hans Haesler
  
Beiträge gesamt: 5826

8. Dez 2018, 20:04
Beitrag # 4 von 12
Beitrag ID: #567947
Bewertung:
(10006 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo EinNeuling,

nun ... ein Hilfswilliger hat vermutlich den DeepL Übersetzer nicht zur Hand und muss ihn herunterladen (Probeabo).
Dann herausfinden, mit welchem Wortschatz welche Befehle ausgeführt werden können. Und schliesslich versuchen, die Anforderung umzusetzen.
Das alles ist vermutlich nicht so schnell erledigt.

Gruss, Hans


als Antwort auf: [#567946]

AppleScript für den DeepL Überstetzer (HTTP Request API)?

EinNeuling
Beiträge gesamt: 7

8. Dez 2018, 20:07
Beitrag # 5 von 12
Beitrag ID: #567948
Bewertung:
(10001 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wahrscheinlich hatte ich einen Denkfehler. Ich dachte, dass man von der anderen Lösung mit Python ableiten kann, ohne herunterladen zu müssen usw. ...


als Antwort auf: [#567947]
(Dieser Beitrag wurde von EinNeuling am 8. Dez 2018, 20:26 geändert)

AppleScript für den DeepL Überstetzer (HTTP Request API)?

Hans Haesler
  
Beiträge gesamt: 5826

9. Dez 2018, 09:02
Beitrag # 6 von 12
Beitrag ID: #567949
Bewertung:
(9951 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo EinNeuling,

es ist genau umgekehrt. Den Denkfehler machte ich ... Habe endlich die Sache näher angeschaut.

Zur "Strafe" werde ich versuchen, etwas zustandezubringen. Ohne Garantie, dass es brauchbar sein wird ...

Gruss, Hans


als Antwort auf: [#567948]

AppleScript für den DeepL Überstetzer (HTTP Request API)?

Hans Haesler
  
Beiträge gesamt: 5826

9. Dez 2018, 16:10
Beitrag # 7 von 12
Beitrag ID: #567954
Bewertung:
(9916 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo EinNeuling,

die gute Nachricht zuerst: Es gelang mir problemlos, die Automator-Aktion für den Google-Übersetzer zu erstellen.

Aber dann ... :-(( Hier in Lausanne sagen wir: "Essayé, pas pu." Das ist französisch für "Versucht, (aber) nicht gekonnt."
Das Portieren des Python-Scripts ist leider ausserhalb meiner Reichweite.

Hoffentlich meldet sich jemand, welcher die notwendigen Kenntnisse hat.

Gruss, Hans


als Antwort auf: [#567948]

AppleScript für den DeepL Überstetzer (HTTP Request API)?

EinNeuling
Beiträge gesamt: 7

9. Dez 2018, 21:11
Beitrag # 8 von 12
Beitrag ID: #567957
Bewertung:
(9899 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für deine Mühe!
Hoffentlich schafft das jemand anders...


als Antwort auf: [#567949]

AppleScript für den DeepL Überstetzer (HTTP Request API)?

EinNeuling
Beiträge gesamt: 7

11. Dez 2018, 13:42
Beitrag # 9 von 12
Beitrag ID: #567998
Bewertung:
(9792 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hilft diese FAQ-Info irgendwie weiter (vgl. https://www.deepl.com/pro-faq.html)?

Zitat How do I send a translation request as a POST request?

In a POST request, you do not send the data in the URL, but rather as data in the body of the request. There exist libraries for most programming languages to support the easy sending of POST requests.

However, if you have to create a POST request yourself, you should consider the following points:

1. Use POST as the request method.
2. Set the Content-Type request header to application/x-www-form-urlencoded.
3. Set the Content-Length request header to the number of bytes in the request body.
4. Insert your translation request parameters into the request body. The parameters should be URL-encoded using the UTF-8 character set. In other words, the body looks exactly like the query part of the equivalent GET-request (the characters after the question mark of a GET-request).
5. Use the same URL as for GET-requests, but without parameters, i.e. https://api.deepl.com/v2/translate.

The request https://api.deepl.com/v2/translate?auth_key=00000000-0000-0000-0000-000000000000&text=This%20is%20a%20Test.&target_lang=EN should look like this as a POST request:
Code
POST /v2/translate HTTP/1.1 
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 87

auth_key=00000000-0000-0000-0000-000000000000&text=This%20is%20a%20Test.&target_lang=EN




als Antwort auf: [#567957]
(Dieser Beitrag wurde von EinNeuling am 11. Dez 2018, 13:44 geändert)

AppleScript für den DeepL Überstetzer (HTTP Request API)?

EinNeuling
Beiträge gesamt: 7

23. Dez 2018, 18:04
Beitrag # 10 von 12
Beitrag ID: #568224
Bewertung:
(9523 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So, ich habe es fast geschafft...
Mit diesem Script (vom Google-Übersetzer übernommen und den passenden URL dazu) klappt es grundsätzlich, aber leider mit einem störenden Fehler (es werden Plus-Zeichen zwischen den Wörtern hinzugefügt!?):

Code
on run argv 
set tex to item 1 of argv
set tex to do shell script "php -r 'echo trim(urlencode(" & "\"" & tex & "" & "\"));'"
do shell script "open https://www.deepl.com/translator#en/de/" & tex
end run


Hat jemand eine Idee, wie ich die "+"-Zeichen wegbekommen kann? Evtl. wie ich den Script anpassen könnte???

Hier Screenshots vom Ergebnis beim Google- und DeepL-Übersetzer, wo auch der Unterschied zu sehen ist: https://drive.google.com/...njHKapU6SClBanpM6WA1


als Antwort auf: [#567998]
(Dieser Beitrag wurde von EinNeuling am 23. Dez 2018, 18:09 geändert)

AppleScript für den DeepL Überstetzer (HTTP Request API)?

Hans Haesler
  
Beiträge gesamt: 5826

23. Dez 2018, 20:39
Beitrag # 11 von 12
Beitrag ID: #568229
Bewertung:
(9504 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo EinNeuling,

gratuliere! Ganz nach dem Motto des Forums: HilfDirSelbst. :-)

Spass beiseite: Den störenden Fehler kann ich bestätigen. Etwas nachgeforscht und folgende Erklärung zu urlencode gefunden:

Zitat Gibt einen String zurück, in dem alle (...) Leerzeichen durch ein Plus (+) ersetzt werden.

Siehe hier: https://de.functions-online.com/urlencode.html

Auf derselben Seite ist rawurlencode erwähnt. Also direkt vor urlencode das Wort raw (bedeutet "roh") einfügen:

Code
on run argv 
set tex to item 1 of argv
set tex to do shell script "php -r 'echo trim(rawurlencode(" & "\"" & tex & "" & "\"));'"
do shell script "open https://www.deepl.com/translator#en/de/" & tex
end run

Ausprobiert ... Ergebnis: Es funktioniert wie gewünscht.

Gruss, Hans


als Antwort auf: [#568224]

AppleScript für den DeepL Überstetzer (HTTP Request API)?

EinNeuling
Beiträge gesamt: 7

23. Dez 2018, 21:30
Beitrag # 12 von 12
Beitrag ID: #568230
Bewertung:
(9491 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ausprobiert ... Ergebnis: Es funktioniert wie gewünscht.


Vielen Dank! Gemeinsam haben wir es gescafft!!!

Frohe Weihnachten!


als Antwort auf: [#568229]
(Dieser Beitrag wurde von EinNeuling am 23. Dez 2018, 21:31 geändert)
X