LanguageTool
Schon seit längerem setze ich LanguageTool zur Grammatik- und Rechtschreibprüfung ein und es hat mir mehr als einmal geholfen, halbwegs korrekte Texte zu verfassen.
Das Tool besteht aus einem Plugin für gängige Software, wie beispielsweise Webbrowser und Textverarbeitung und einer Serverkomponente, die man selber hosten kann oder die in "der Cloud" (tm) liegt. Momentan schreibe ich zu wenig, als dass sich ein Premium-Account für mich lohnen würde, allerdings bietet dieser zusätzliche Features.
Bei mir kommen beispielsweise die Plugins für Firefox und LibreOffice zum Einsatz. Für LaTeX setze ich das Visual Studio Code Plugin LanguageTool Extension und die dazu passenden Sprachen Deutsch und Englisch ein. Achtung: der Autor der VSCode-Extensions ist leider verstorben und daher werden sie nicht weiterentwickelt. Momentan funktionieren sie aber noch sehr gut. Für Thunderbird gibt es übrigens auch ein Plugin, was ich allerdings nicht getestet habe, weil ich kein Thunderbird benutze.
Wenn man den Server lokal betreiben will - das mache ich auf allen meinen Linux-Clients - benötigt man ein installiertes Java und den LanguageTool embedded HTTP Server, den man sich unter diesem Link herunterladen kann.
Ein aktuelles Java, kann man sich von der Webseite des OpenJDK-Projektes herunterladen.
Installation Java.
curl -LO https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_linux-x64_bin.tar.gz
tar xzf openjdk-17.0.1_linux-x64_bin.tar.gz
ln -s jdk-17.0.1 java
Anmerkung: Wenn ein aktuelleres oder anderes Java benutzt werden soll, muss man einfach den Link umsetzen.
Funktionstest.
export PATH=${JAVA_HOME}/bin:${PATH}
java -version
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-39)
OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)
Installation LanguageTool-Server.
curl -LO https://languagetool.org/download/LanguageTool-5.5.zip
unzip LanguageTool-5.5.zip
ln -s LanguageTool-5.5 LanguageTool
Sollte die aktuelle Version mit einem Plugin oder einer Extension nicht funktionieren, so findet man vorhergehende Versionen auf der Download-Seite.
Funktionstest.
Für den Funktionstest würde ich gleich ein Start-Skript - hier ~/Downloads/LanguageTool.bash
- schreiben, dass man später auch für das automatische Starten des Servers via systemd verwenden kann.
set -o errexit
set -o nounset
set -o pipefail
export JAVA_HOME=~/Downloads/java
cd ~/Downloads/LanguageTool
${JAVA_HOME}/bin/java -cp languagetool-server.jar \
org.languagetool.server.HTTPServer --port 8081 --allow-origin "*"
Getestet wird mit dem folgenden curl-Aufruf, der JSON zurückliefert.
{"software":{"name":"LanguageTool","version":"5.5","buildDate":"2021-10-02 12:33:00 +0000","apiVersion":1,"premium":false,"premiumHint":"You might be missing errors only the Premium version can find. Contact us at support<at>languagetoolplus.com.","status":""},"warnings":{"incompleteResults":false},"language":{"name":"English (US)","code":"en-US","detectedLanguage":{"name":"French","code":"fr","confidence":0.815771}},"matches":[{"message":"This sentence does not start with an uppercase letter.","shortMessage":"","replacements":[{"value":"A"}],"offset":0,"length":1,"context":{"text":"a simple test","offset":0,"length":1},"sentence":"a simple test","type":{"typeName":"Other"},"rule":{"id":"UPPERCASE_SENTENCE_START","description":"Checks that a sentence starts with an uppercase letter","issueType":"typographical","category":{"id":"CASING","name":"Capitalization"}},"ignoreForIncompleteSentence":true,"contextForSureMatch":-1}]}
Automatisches Starten mit systemd.
Erstellen der Datei /etc/systemd/system/LanguageTool.service
mit folgendem Inhalt ("EuerUser" und "EuerHome" müssen ent1sprechend ersetzt werden). Zu systemd-user-services mache ich einmal einen separaten Artikel.
[Unit] Description=LanguageTool Wants=network.target After=network.target [Service] User=Type=simple Restart=on-failure RestartSec=10s ExecStart= /Downloads/LanguageTool.bash WorkingDirectory= /Downloads/LanguageTool [Install] WantedBy=multi-user.target
Aktivieren des Services.
sudo systemctl enable --now LanguageTool
sudo systemctl status LanguageTool
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Jörg am :
Danke für den interessanten Artikel. Kannst du evtl. noch ein Beispiel nennen, wie ein Addon zu konfigurieren ist, damit es den lokal laufenden LanguageTool-Server nutzt?
Ich vermute, du trägst im jeweiligen Plugin irgendwo soetwas wie "http://localhost:" ein.
LG
Jörg
Jörg am :
Dirk Deimeke am :
Christian am :
Ich habe allerdings eine Dockerinstallation gemacht und einen Nginx Proxy davor gehängt, um eine vernünftige URL via HTTPS ansprechen zu können... Funktioniert wunderbar.
Viele Grüße
Christian
Dirk Deimeke am :
Bei mir war eher der Gedanke, dass ich eh Java auf dem Rechner habe, dann kann ich das auch für andere Dinge nutzen.
tux. am :
"das Visual-Studio-Code-Plugin"
Dirk Deimeke am :
Ist korrigiert.
Jörg am :
Danke für diesen tollen Tipp.
LG
Jörg
Dirk Deimeke am :
Schön, dass es Dir hilft.