MCPcopy
hub / github.com/languagetool-org/languagetool

github.com/languagetool-org/languagetool @v6.8 sqlite

repository ↗ · DeepWiki ↗ · release v6.8 ↗
17,288 symbols 61,008 edges 2,054 files 4,005 documented · 23%
README

LanguageTool

LanguageTool is open-source proofreading software for English, Spanish, French, German, Portuguese, Polish, Dutch, and more than 20 other languages. It finds many errors that a simple spell checker cannot detect.

For more information, please see our homepage, at languagetool.org, this README, and CHANGES.

The LanguageTool core (this repo) is freely available under the LGPL 2.1 or later.

Docker

Try one of the following projects for a community-contributed Docker file:

github.com hub.docker.com/r
meyayl/docker-languagetool meyay/languagetool
Erikvl87/docker-languagetool erikvl87/languagetool
silvio/docker-languagetool silviof/docker-languagetool

Contributions

The development overview describes how you can contribute error detection rules.

For more technical details, see our dev pages.

Scripted installation and building

To install or build using a script, simply type:

#!/usr/bin/env sh
curl -L https://raw.githubusercontent.com/languagetool-org/languagetool/master/install.sh | sudo bash $options

If you wish to have more options, download the install.sh script. Usage options follow:

sudo bash install.sh <options>

Usage: install.sh <option> <package>
Options:
   -h --help                   Show help
   -b --build                  Builds packages from the bleeding edge development copy of LanguageTool
   -c --command <command>      Specifies post-installation command to run (default gui when screen is detected)
   -q --quiet                  Shut up LanguageTool installer! Only tell me important stuff!
   -t --text <file>            Specifies what text to be spellchecked by LanguageTool command line (default spellcheck.txt)
   -d --depth <value>          Specifies the depth to clone when building LanguageTool yourself (default 1).
   -p --package <package>      Specifies package to install when building (default all)
   -o --override <OS>          Override automatic OS detection with <OS>
   -a --accept                 Accept the oracle license at http://java.com/license. Only run this if you have seen the license and agree to its terms!
   -r --remove <all/partial>   Removes LanguageTool install. <all> uninstalls the dependencies that were auto-installed. (default partial)

Packages(only if -b is specified):
   standalone                  Installs standalone package
   wikipedia                   Installs Wikipedia package
   office-extension            Installs the LibreOffice/OpenOffice extension package

Commands:
   GUI                         Runs GUI version of LanguageTool
   commandline                 Runs command line version of LanguageTool
   server                      Runs server version of LanguageTool

Alternate way to build from source

Before start: you will need to clone from GitHub and install Java 17 and Apache Maven.

Warning: a complete clone requires downloading more than 500 MiB and needs more than 1 500 MiB on disk. This can be reduced, if you only need the last few revisions of the master branch by creating a shallow clone:

#!/usr/bin/env sh
git clone --depth 5 https://github.com/languagetool-org/languagetool.git

A shallow clone downloads less than 60 MiB, and needs less than 200 MiB on disk.

In the root project folder, run:

#!/usr/bin/env sh
mvn clean test

(Sometimes, you can skip Maven step for repeated builds.)

#!/usr/bin/env sh
./build.sh languagetool-standalone package -DskipTests

Test the result in languagetool-standalone/target/.

#!/usr/bin/env sh
./build.sh languagetool-wikipedia package -DskipTests

Test the result in languagetool-wikipedia/target.

Now, you can use the bleeding edge development copy of LanguageTool *.jar files, be aware that it might contain regressions.

How to run under Mac M1 or M2

  1. Install Brew for Rosetta:

sh #!/usr/bin/env sh arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

  1. Install OpenJDK for Rosetta:

sh #!/usr/bin/env sh arch -x86_64 brew install openjdk

  1. Install Maven for Rosetta:

sh #!/usr/bin/env sh arch -x86_64 brew install maven

  1. Now, run the build scripts.

License

Unless otherwise noted, this software – the LanguageTool core – is distributed under the LGPL; see COPYING.txt.

Extension points exported contracts — how you extend this code

Tokenizer (Interface)
Interface for classes that tokenize text into smaller units. @author Daniel Naber [38 implementers]
languagetool-core/src/main/java/org/languagetool/tokenizers/Tokenizer.java
TextMapFilter (Interface)
(no doc) [16 implementers]
languagetool-wikipedia/src/main/java/org/languagetool/dev/wikipedia/TextMapFilter.java
SavablePanel (Interface)
Interface for JPanel that can persist its state. See ConfigurationDialog#addExtraPanel @author Panagiotis M [2 implementers]
languagetool-gui-commons/src/main/java/org/languagetool/gui/SavablePanel.java
ErrorCorpus (Interface)
Access to a corpus with error markups. @since 2.7 [2 implementers]
languagetool-dev/src/main/java/org/languagetool/dev/errorcorpus/ErrorCorpus.java
ActiveRulesMBean (Interface)
(no doc) [2 implementers]
languagetool-server/src/main/java/org/languagetool/server/ActiveRulesMBean.java
Tagger (Interface)
The part-of-speech tagger interface, whose implementations are usually language-dependent. @author Daniel Naber [13 implementers]
languagetool-core/src/main/java/org/languagetool/tagging/Tagger.java
AbTestService (Interface)
(no doc) [1 implementers]
languagetool-server/src/main/java/org/languagetool/server/AbTestService.java
WordTagger (Interface)
Find the potential part-of-speech tags (POS tags) for a word. Implementations just look up the word in a text or binary [38 …
languagetool-core/src/main/java/org/languagetool/tagging/WordTagger.java

Core symbols most depended-on inside this repo

put
called by 3711
languagetool-language-modules/de/src/main/java/org/languagetool/rules/de/GermanSpellerRule.java
add
called by 2889
languagetool-core/src/main/java/org/languagetool/rules/spelling/hunspell/HunspellDictionary.java
compile
called by 1585
languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternToken.java
get
called by 1438
languagetool-core/src/main/java/org/languagetool/Premium.java
contains
called by 1406
languagetool-language-modules/uk/src/main/java/org/languagetool/tagging/uk/IPOSTag.java
getToken
called by 1271
languagetool-core/src/main/java/org/languagetool/rules/ml/MLServerProto.java
println
called by 1213
languagetool-dev/src/main/java/org/languagetool/dev/bigdata/ConfusionRuleEvaluator.java
get
called by 1184
languagetool-language-modules/de/src/main/java/org/languagetool/tagging/de/VerbPrefixes.java

Shape

Method 14,702
Class 2,354
Function 105
Interface 71
Enum 56

Languages

Java99%
Python1%

Modules by API surface

languagetool-core/src/main/java/org/languagetool/rules/ml/MLServerProto.java1,529 symbols
languagetool-core/src/main/java/org/languagetool/tools/Cache/ProtoResultCache.java479 symbols
languagetool-core/src/main/java/org/languagetool/languagemodel/bert/grpc/BertLmProto.java405 symbols
languagetool-core/src/main/java/org/languagetool/grpc/Synthesizer.java294 symbols
languagetool-server/src/main/java/org/languagetool/server/HTTPServerConfig.java163 symbols
languagetool-gui-commons/src/main/java/org/languagetool/gui/Configuration.java154 symbols
languagetool-standalone/src/main/java/org/languagetool/gui/Main.java141 symbols
languagetool-core/src/main/java/org/languagetool/JLanguageTool.java96 symbols
languagetool-core/src/main/java/org/languagetool/Language.java88 symbols
languagetool-language-modules/de/src/main/java/org/languagetool/rules/de/GermanSpellerRule.java84 symbols
languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternToken.java82 symbols
languagetool-language-modules/pt/src/test/java/org/languagetool/rules/pt/MorfologikPortugueseSpellerRuleTest.java74 symbols

Dependencies from manifests, versioned

at.favre.lib:bcrypt
ch.qos.logback:logback-classic
co.elastic.logging:logback-ecs-encoder
com.github.lucene-gosen:lucene-gosen
com.gitlab.dumonts:hunspell
com.google.protobuf:protobuf-java
com.hankcs:aho-corasick-double-array-trie
com.ibm.icu:icu4j

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add languagetool \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact