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.
cd ~/Downloads
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 JAVA_HOME=~/Downloads/java
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.
cd ~/Downloads
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.
#!/bin/bash
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.
curl --noproxy localhost -d "language=en-US" -d "text=a simple test" http://localhost:8081/v2/check
{"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 daemon-reload
sudo systemctl enable --now LanguageTool
sudo systemctl status LanguageTool
Viel Spass!