Halbautomatische Übersetzung mit DeepL

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.

Windows 10: Ausrichtung der Menüs wiederherstellen

Vor Jahren hatte ich schonmal geschrieben, wie man rechtsbündig ausgerichteten Menüs wieder zur standardmäßigen Linksbündigkeit verhelfen kann. Aus mir unbekannten Gründen, hat sich die Menüausrichtung bei mir unter Windows 10 mal wieder geändert. Da der im oben verlinkten Artikel vorhandene Dialog unter Windows 10 mittlerweile fehlt, muss ich die Ausrichtung per Registry ändern.

Rechtsbündig ausgerichtetes Menü

Dazu einfach die Windowstaste drücken und regedit eingeben. Dort dann nach

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

wechseln (einfach in den Registryeditor einfügen) und den Eintrag MenuDropAlignment auf 0 setzen. Nach einem Windowsneustart passen die Menüs wieder.

Firefox: Eingaben in der Adressleiste und die Lesezeichen im neuen Tab öffnen

Jahrelang hatte ich Firefox so eingestellt, dass alle in der Adressleiste eingebenen Dinge in einem neuen Tab geöffnet wurden. Seit Quantum und dem Wegfall der Tab Mix Plus-Erweiterung funktionierte das nicht mehr. Wenn man einen neuen Tab will, dann muss man standardmäßig [Alt] gedrückthalten, wenn man mit [Enter] die Eingabe bestätigen will.

Jetzt habe ich eine Lösung gefunden, mit der ich die nervende [Alt]-Taste weglassen kann. Einfach in den Einstellungen unter „about:config“ den Wert von „browser.urlbar.openintab“ von false auf true ändern. Bei dieser Gelegenheit kann gleich noch der Wert von browser.tabs.loadBookmarksInTabs ebenfalls auf true gesetzt werden, um auch die Lesezeichen im neuen Tab zu öffnen. Ein Neustart des Browsers ist nicht nötig. Funktioniert bei mir in Version 60.0.1.

Wieder ein Grund mehr, der für Firefox spricht, denn die chromeartigen Browser können das nicht (auch nicht der Vivaldi).

[Quelle]

Standardprogramme unter Windows 10 (1607) ändern – So funktioniert´s endlich

Mindestens seit Windows 10 Version 1607 lassen sich die Standardprogramme wie Browser oder Bildbetrachter nicht mehr über die neuen Windowseinstellungen ändern. Man kann sie dort zwar auswählen, aber übernommen wird nichts. Auch ein Zurücksetzen auf die Standardoptionen bringt nix.

Hinweis:
Diese Anleitung funktioniert ab Windows 10 – 1709 nicht mehr. Um zu überprüfen, welche Windowsversion installiert ist, einfach die Starttaste drücken, „winver“ eingeben und Enter drücken.

Das Internet ist voll von Anfragen dazu, einzig die Lösung ist kaum zu finden. Ich habe sie dennoch ausfindig gemacht und schreibe sie hier nochmal auf. Vielleicht hilft sie ja dem einen oder anderen.

Als erstes muss die alte, von Windows 7 oder älteren Windowsversionen bekannte Systemsteuerung aufgerufen werden. Ich mache das unter Windows 10 immer über einen Rechtsklick auf das Windowssymbol und wähle danach „Systemsteuerung„:

In der Systemsteuerung wähle ich den dann Punkt „Standardprogramme“ aus:

02_standardprogramme_waehlen

In der folgenden Ansicht muss ich nochmals auf „Standardprogramme festlegen„:

03_standardprogramme_festlegen

Nun kann ich  links aus der Liste das Programm auswählen, das ich als Standard setzen möchte. In diesem Beispiel will ich den Firefox als Standardbrowser setzen. Also klicke ich ihn links in der Liste an, danach wähle ich „Dieses Programm als Standard festlegen„:

04_standardprogramm_bestaetigen

Direkt darauf wird der Browser auch in den Einstellungen von Windows 10 bei „Standard-Apps“ angezeigt:

05_standard-festgelegt

Das ist die schnellste Lösung. Falls ich dem Programm nur eine Dateiendung oder einem Protokoll zuordnen will, klicke ich oben auf „Standards für dieses Programm auswählen„. Das geht schneller, als die allgemeine Auswahl nach Dateitypen zu nutzen, die oben im dritten Screenshot auswählbar ist.

Sprachumschaltung unter Windows deaktivieren

Im Techniktagebuch lese ich gerade, dass es auch andere stört, dass Windows hin- und wieder die Sprache umstellt. Drückt man nämlich die [Umsch] und die [Alt]-Taste gleichzeitig (oder unter Windows 8 auch die [Win + Leer]), wechselt Windows zur nächsten Sprache, meist Englisch.

Im oben verlinkten Beitrag wird eine Lösung bei Heise verlinkt, die aber so in Windows 8 bzw. 8.1 nicht mehr funktioniert. Ich habe mal für Windows 8.1 rausgesucht, wie es nun funktioniert. Und weiter unten stelle ich noch eine Lösung mit und für Autohotkey vor.

Sprachumschaltung in Windows 8.1 entfernen

Alternativ kann man die Sprachumschaltung auch direkt in der Systemsteuerung abschalten. Das ist allerdings etwas schwierig zu finden, sodass ich es auch jetzt erst entdeckt habe:

1. Systemsteuerung öffnen

2. „Sprache“ auswählen

3. Links auf „Erweiterte Einstellungen“ klicken

4. In etwa in der Mitte bei „Wechseln der Eingabemethode“ den Haken bei (1) setzen:

eingabemethode

5. Danach auf „Abkürzungstasten der Sprachleiste verändern“ (2) klicken.

6. Im Dialog „Textdienste und Eingabesprachen“ unten auf „Tastenkombination ändern …“

tastenkombi

7. Im Dialog „Tastenkombination ändern“ oben alle beide Spalten auf „Nicht zugewiesen“ setzen.

8. Dialog mit „OK“ verlassen

9. Im Dialog „Textdienste und Eingabesprachen“ jetzt auch die Registerkarte „Sprachenleiste“ wechseln und den Haken bei „Ausblenden“ setzen. Damit verschwindet auch das „DEU“-Symbol aus der Taskleiste neben der Uhr:

sprachleiste

10. Diesen Dialog mit „OK“ verlassen und das Gleiche mit den „Erweiterten Einstellungen“ machen.

Sprachumschaltung mit Autohotkey deaktivieren

Wer viel auf anderen Rechnern unterwegs ist und nicht jedesmal diese Einstellungen durchhecheln will, kann sich auch ein Autohotkeyscript bauen. Mit diesen Zeilen wird die Umschaltung deaktiviert, allerdings bleibt das Symbol in der Taskleiste erhalten.

LShift & LAlt::SendPlay {Space} 
LAlt & LShift::SendPlay {Space}
#Space::SendPlay {Space}

Die erste Zeile fängt [Umsch + Alt] ab und sendet stattdessen ein Leerzeichen, das nur Autohotkeyintern verwendet, aber nicht dargestellt wird. Die zweite Zeile fängt die umgekehrte Kombination, nämlich [Alt + Umsch], ab. Die dritte Zeile schließlich sorgt dafür, dass [Win + Leer] oder [Leer + Win] unter Windows 8 nicht mehr funktioniert.

WordPress: Menüs in Artikel oder Seiten einbauen

Seit ein paar Versionen unterstützt WordPress ja das Anlegen eigener Menüs und die modernen Themes unterstützen diese in der Regel. Die Menüs werden im Adminbereich unter „Design | Menüs“ angelegt und können standardmäßig in der Navigation und in der Sidebar als Widget eingesetzt werden.

Als ich vor einiger Zeit die Seite Tests, Vergleiche, Tipps & Anleitungen zu eBook-Readern angelegt habe, wollte ich gern das die aktuellen eReaderangebote mit in die Seite integrieren. Dann könnte ich sie über die Menüs pflegen und kann sicher sein, dass sie überall, wo sie eingebunden sind, aktuell bleiben.

Nach ein wenig herumgesuche bin ich bei Stephanie Leary fündig geworden. Dieser Schnipsel wird einfach in die functions.php im Themeverzeichnis eingefügt:

function print_menu_shortcode($atts, $content = null) {
    extract(shortcode_atts(array( 'name' => null, ), $atts));
    return wp_nav_menu( array( 'menu' => $name, 'echo' => false ) );
}
add_shortcode('menu', 'print_menu_shortcode');

Und mit diesem Shortcode kann ich nun alle meine Menüs in Artikel oder Seiten einbinden (Leerzeichen im Menüname funktionieren auch):

[menu name="Der Name des Menüs"]

Das Menü erhält außerdem jeweils eine eigene Klasse, die sich von der in der Sidebar unterscheiden und die per Styesheets entsprechend angesprochen werden kann.

Windows 8 – Selbstständiges Aufwachen aus dem Energiesparmodus verhindern

Normalerweise fahre ich abends meinen Rechner nicht komplett herunter, sondern versetze ihn in den Energiesparmodus. Dann kann ich ihn morgens mit einem Klick auf eine Maustaste wieder starten und er ist innerhalb ein paar Sekunden wieder startbereit.

Ein Phänomen hat mir längere Zeit Kopfzerbrechen bereitet. Meistens blieb der Rechner aus, manchmal aber war er schon eingeschaltet, wenn ich früh ins Büro kam. Da ich aber gern Strom sparen möchte, habe ich ewig gesucht und sogar eine Einstellung im BIOS gesetzt (die nicht geholfen hat), bis mir die bestechend einfache Lösung letztens einfach so über den Weg lief.

Hintergrund:
Windows kann einen Rechner, der sich im Energiesparmodus befindet, selbstständig starten, um wichtige Aufgaben zu erledigen.

Und so gehts:

  1. [Win]-Taste drücken und energie eingeben
  2. Rechts Einstellungen auswählen und dann links den Punkt Energiesparplan bearbeiten wählen
  3. Im gleichnamigen Dialog auf Erweiterte Energieeinstellungen ändern klicken:
    Windows 8 - Passwörter abschalten - Energiesparplan ändern
  4. Im Dialog Energieoptionen bei Energie sparen den Eintrag Zeitgeber zur Aktivierung zulassen auf Deaktiviert stellen:
    windows_8_zeitgeber_ausschalten

Das ist alles. Seit dem Ändern dieser Option bleibt mein Rechner auch Nachts zuverlässig ausgeschaltet.

WordPress: Spam wirkungsvoll verhindern

Seit Jahren setze ich auf verschiedenen Blogs das Plugin AntiSpam Bee von Sergej Müller ein, um mich vor Spam zu schützen. Das funktioniert ohne große Einstellungen in der Regel hervorragend. In den letzten Tagen allerdings hat es etlichen Spam durchgelassen. Nicht nur bei mir, sondern auch bei anderen.

Also habe ich mich entschlossen, das Plugin „Stop Spammer Registrations Plugin“ als zusätzliche Hilfe zu installieren. Zunächst stelle ich es vor, weiter unten habe ich noch meine gesetzten Einstellungen aufgeschrieben.

Vorstellung des Plugins

Wordpress Plugin - Stop Spammer Registrations Plugin
Screenshot aus dem WordPress-Pluginverzeichnis

Das Plugin kann zweierlei. Einerseits unterbindet es mit verschiedenen Methoden wirkungsvoll Spam und es filtert auch Spamanmeldungen heraus, falls man auf seinem Blog den Anwendern die Möglichkeit lässt, sich zu registrieren.

Das Plugin benutzt verschiedene Möglichkeiten, um Spam zu erkennen. So kann es Datenbanken einiger externer Dienste anzapfen, um zu schauen, ob der Kommentar(tor) schon auf anderen Blogs sein Unwesen getrieben hat. Wie auch AntiSpam Bee, kann das Project HoneyPot angezapt werden, aber auch Stop Forum Spam, BotScout und die wordpresseigene Spamfilterung, die normalerweise nur per Akismetplugin funktioniert. Wer diese Quellen nutzt, sollte sich allerdings im Klaren sein, dass bei allen die IP-Adresse des Users, und bei einigen zusätzlich Name bzw. E-Mailadresse an den jeweiligen Dienst übermittelt werden. Das ist möglicherweise bei persönlichen Informationen wie E-Mailadresse und Name nicht mit dem deutschen Datenschutzrecht vereinbar, da diese Daten nicht auf Nicht-EU-Servern lagern dürfen.

Ich habe mich auf michaelsonntag.net dafür entschieden, nur das Project HoneyPot heranzuziehen, denn es übermittelt nur die IP-Adresse. Nur äußerst lästige Spammer, die durch alle Schranken brechen, werde ich händisch an Stop Forum Spam melden. Das steht auch nochmal in meinem Datenschutzhinweis.

Ansonsten gibt es noch ein Automatismen, mit dem das Plugin arbeitet. So prüft es beispielsweise innerhalb welcher Zeitspanne nach Aufruf der Seite ein Kommentar abgegeben wurde. Falls er innerhalb sechs Sekunden geschrieben wird, kann davon ausgegangen werden, dass es Spam ist. Das Plugin kann auch prüfen, ob der HTTP-Header vollständig ist oder ob der User-Agent des Browsers gesetzt ist.

Über Black- und Whitelisten können IP-Adressen und E-Mails aus- oder eingeschlossen werden. Das Blockieren von Domains (TLDs) ist auch möglich, wie auch das Ausschließen von Kommentaren per Wörterbuch. Die IP-Adressen der Spammer landen auch automatisch auf der Blacklist.

Ich habe das Stop Spammer Registrations Plugin hier seit zwei Tagen im Einsatz und es hat mir trotz AntiSpam Bee schon knapp 80 Spamkommentare herausgefiltert. Und ich weiß auch aus Erfahrung anderswo, dass es beim Erkennen von Spamregistrierungen sehr gut funktioniert.

Meine Einstellungen

Mit den folgenden Einstellungen läuft es momentan recht gut hier:

API Keys

Ich habe API-Keys für Stop Forum Spam und Project Honeypot eingetragen.

Spam Limits

Diese Einstellungen habe ich so gelassen, wie sie sind

Other Checks

Ich liste jetzt nur die Einstellungen auf, die angehakt sind:

  • Block Spam missing the HTTP_ACCEPT header
    Blockiert User, die einen unvollständigen HTTP-Header senden
  • Block with missing or invalid HTTP_REFERER
    Blockiert User, die keinen oder einen ungültigen Referrer senden
  • Deny disposable email addresses
    Blockiert User, die mit Wegwerf-E-Mailadressen kommentieren möchten. Das grenzt möglicherweise einige aus
  • Check for long emails or author name
    Blockiert User, deren Name oder E-Mailadresse länger als 64 Zeichen ist
  • Check for missing HTTP_USER_AGENT
    Blockiert User, deren Browserkennung fehlt. Die meisten Skripte, die Spam verteilen, haben keinen.
  • Check session for quick responses (disabled if caching is active)
    Blockiert User, die innerhalb von sechs Sekunden nach Aufruf der Seite kommentieren. Menschen brauchen in der Regel länger, um den Inhalt der Seite zu erfassen.
  • Check against list of Ubiquity-Nobis and other Spam Server IPs
    Blockiert User, deren E-Mailadresse auf Servern liegt, die als Spammer bekannt sind
  • Automatically add admins to white list
    Fügt Admins automatisch in die Whitelist ein, damit sie nicht gesperrt werden können.

Lists

Hier habe ich den Haken bei „Check Spam Words“ gesetzt.

Events to Check

Auch hier ist alles angehakt.

Ich werde jetzt noch schauen, ob dieses Plugin langfristig Antispam Bee ablösen kann, denn ich bin der Meinung, dass man im Blog nur soviele Plugins wie nötig laufen lassen sollte.

WordPress: Anhangsseiten auf Artikel umleiten

Ich benutze auf diesem Blog hier und auch auf anderen gern die wordpresseigene Galeriefunktion zusammen mit einem entsprechenden Lightboxplugin. Damit das klappt, muss ich beim Einfügen der Galerie drauf achten, dass die Miniaturbilder auf den Dateinamen und nicht auf die Anhangsseite verlinken:

WordPress - Galerieeinstellungen - Auf Datei verlinken

Hin- und wieder ist mir allerdings aufgefallen, dass manche Leute einzelne Bilder auf der entsprechenden Bildanhangsseite kommentieren, obwohl es nirgends im Blog einen Link dahin gibt. Jetzt habe ich festgestellt, dass WordPress die Thumbnails der Galerien nicht richtig im RSS-Feed verlinkt. Die Vorschaubilder im Blog selbst werden korrekt auf die Dateinamen verlinkt:

WordPress - Galerieeinstellungen - Galerie linkt im Artikel korrekt auf DateiIm Feedreader allerdings werden die gleichen Thumbnails auf die Bildanhangsseite gelinkt:

WordPress - Galerieeinstellungen - Galerie linkt im Feed auf die Anhangsseite

Das führt mitunter zu Verwirrungen, nicht nur beim Besucher. Das zeigt sich auch in den Google Webmastertools, wenn diese doppelte Titeltag anmeckern.

Um das Problem nun zu beheben, muss folgender Code in der functions.php des benutzen Themes eingefügt werden:

add_action( 'template_redirect', 'attachment_redirect', 1 );
/**
 * Redirect any attachment page to their parent with 301 redirection
 */
function attachment_redirect() {
  global $post;
  if ( is_attachment() AND isset( $post->post_parent) AND is_numeric( $post->post_parent ) ) {
    wp_redirect( get_permalink( $post->post_parent ), 301 );
    exit();
  }
}

[Quelle]

Der Schnipsel sorgt dafür, dass alle Anfragen auf ein Bild, welches sich in einer Anhangsseite befindet, auf den Ursprungsartikel umleitet, mit dem die Galerie verknüpft ist.

Handschrifterkennung unter Windows 7 aktivieren

Wer ein Grafiktablett sein Eigen nennt, kann unter Windows 7 die Handschrifterkennung einschalten. Das ist ein kleines Fenster, mit dem man schnell etwas schreiben kann und Windows übersetzt das dann in lesbare Schrift. Das Eingabefeld sieht so aus:

Windows 7 - Eingabebereich für Tabletts

Leider wird diese Erkennung standardmäßig nicht aktiviert, wenn ein Tablett installiert wird. Man kann sie aber ganz einfach nachinstallieren:

  1. [Win] drücken und “Programme und Funktionen” eingeben
  2. [Enter] drücken
  3. links auf “Windows-Funktionen aktivieren oder deaktivieren” klicken
  4. Im folgenden Dialog einen Haken an “Tablet-PC Komponenten” machen

Windows 7 - Tablet PC-Komponenten aktivieren

Nachdem die Komponenten nachinstalliert und der Rechner neu gestartet wurde, guckt oben links am Bildschirmrand das Eingabefeld raus, sobald der Stift das Tablett berührt (oder in die Nähe dessen kommt).

Menüs schlagen rechts an

Wenn man als Rechtshänder ein Tablet bedient, kann es vorkommen, dass Windows (oder der Tablet-Treiber – so genau konnte ich das nicht herausfinden) die Seite, an der die Menüs in den Programmen anschlagen, vertauscht. Das nervt, weil man ja gewohnt ist, dass die Menüs links angeschlagen sind und nach rechts aufklappen. Wenn Untermenüs aufklappen, finde ich das besonders verwirrend.

Tablet PC-Einstellungen - Anschlag der Menüs

Um das wieder zurechtzurücken, einfach folgende Schritte ausführen:

  1. [Win] drücken und “Tablet PC-Einstellungen” eingeben
  2. [Enter] drücken
  3. Im folgenden Dialog einen Haken bei “Linkshändig – Menüs werden rechts neben Ihrer Hand angezeigt” machen

Windows 7 - Menüs linksbündig anzeigen

Übrigens funktioniert die Handschriftenerkennung unter Windows 7 hervorragend. Selbst meine Sauklaue erkennt sie regelmäßig, aber sie kann auch an die eigene Handschrift gewöhnt werden.