Seit einiger Zeit nutze ich DeepL, um fremdsprachige Texte ins Deutsche oder deutschen Text in eine andere Sprache zu übersetzen. Die Qualität der Übersetzung ist dabei erheblich besser, als das was Google oder Microsoft liefern. Im Unterschied zu beiden ist DeepL aber nicht grundsätzlich kostenlos. In der kostenfreien Version können über das Webformular immerhin 5000 Zeichen am Stück übersetzt werden. Danach kann das Formular geleert werden, um die nächsten 5000 Zeichen einzufügen.
Un weil es für die Browser bisher auch keine praktikablen Addons gibt, die markieren Text direkt übersetzen können, habe ich mir meine eigene Lösung gebastelt. Dazu nutze ich Autohotkey, dass ich schon seit über zehn Jahren nutze. Zu meiner kleinen Einführung zu Autohotkey mit praktischen Beispielen gehts hier entlang.
Ich habe mir ein kleines Script gebastelt, dass markierten Text per [Strg + D] in die Zwischenablage übernimmt, DeepL in einem neuen Tab öffnet und den Text in das Formular kopiert. Die Übersetzung läuft dann ganz normal an.
; Übersetzen mit DeepL (Strg + d) (nur im Firefox)
#IfWinActive ahk_class MozillaWindowClass
^d::
xres = 1920 ; Breite des ersten Bildschirms in Pixeln
MouseGetPos, xpos, ypos
ClipSaved := ClipboardAll
Send, ^c
run https://www.deepl.com/translator
sleep, 1000
if(xpos > xres)
{
posx := xres + 500
} else
{
posx = 500
}
MouseClick, left, %posx%, 500
Send, ^v
sleep, 1000
Clipboard := ClipSaved
return
#IfWinActive
Das funktioniert nur im Firefox, wer den Chrome nutzt, kann die Zeile
#IfWinActive ahk_class MozillaWindowClass
durch
#IfWinActive ahk_class Chrome_WidgetWin_1
ersetzen. Für Microsoft Edge muss die Zeile hingegen so lauten:
#IfWinActive ahk_class ApplicationFrameWindow
Beim einem Aufruf der DeepL-Seite als eigenen Tab ist das Eingabeformular nicht aktiv, weswegen die Zeile
MouseClick, left, %posx%, 500
einen Mausklick darauf simuliert. Die Werte %posx%,500 entsprechen dabei der Klickposition.Wer zwei Bildschirme verwendet, muss die Breite des ersten Bildschrirms (in px) bei:
xres = 1920 ; Breite des ersten Bildschirms in Pixeln
eintragen. Nur damit funktioniert das Script auch auf dem zweiten Monitor. Ach und das Script sorgt natürlich auch dafür, dass der ursprüngliche Inhalt der Zwischenablage vor der Übernahme des Textes gespeichert und danach wieder hergestellt wird.
Hier mal ein Video, das zeigt, wie der ganze Kram funktioniert:
Ich nutze das Script jetzt schon eine ganze Weile und es funktioniert einwandfrei. Texte, die länger als 5000 Zeichen sind, werden komplett übernommen, aber eben nicht komplett übersetzt. Wenn man am Ende angekommen ist, kann man einfach die vorherigen 5000 Zeichen löschen und DeepL übersetzt dann den Rest des Textes ganz automatisch.
Weil die Qualität der Übersetzung so gut ist und ich den Dienst auch schon länger nutze, habe ich mich jetzt entschieden, mir ein Jahresabonnement des Starterpaketes zu gönnen. Damit kann ich dann mehr als 5000 Zeichen übersetzen lassen.
Update vom 25.12.2018: Ich habe die Pausen im Script auf jeweils eine Sekunde erhöht, weil ich festgestellt habe, dass der markierte Text nicht immer übernommen wurde. Das sollte jetzt besser funktionieren.
Update vom 20.06.2019: Ich habe noch eine Unterstützung für den Zweimontorbetrieb eingebaut, da die bisherige Version nur auf dem ersten Monitor funktionierte.