summaryrefslogtreecommitdiff
path: root/libs/hunspell/docs/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hunspell/docs/README.md')
-rw-r--r--libs/hunspell/docs/README.md182
1 files changed, 182 insertions, 0 deletions
diff --git a/libs/hunspell/docs/README.md b/libs/hunspell/docs/README.md
new file mode 100644
index 0000000000..13bac95c78
--- /dev/null
+++ b/libs/hunspell/docs/README.md
@@ -0,0 +1,182 @@
+About Hunspell
+==============
+
+NOTICE: Version 2 is in the works. For contributing see
+[version 2 specification][v2spec] and the folder `src/hunspell2`.
+
+[v2spec]: https://github.com/hunspell/hunspell/wiki/Version-2-Specification
+
+Hunspell is a spell checker and morphological analyzer library and program
+designed for languages with rich morphology and complex word compounding or
+character encoding. Hunspell interfaces: Ispell-like terminal interface
+using Curses library, Ispell pipe interface, C++ class and C functions.
+
+Hunspell's code base comes from the OpenOffice.org MySpell
+(http://lingucomponent.openoffice.org/MySpell-3.zip). See README.MYSPELL,
+AUTHORS.MYSPELL and license.myspell files.
+Hunspell is designed to eventually replace Myspell in OpenOffice.org.
+
+Main features of Hunspell spell checker and morphological analyzer:
+
+- Unicode support (affix rules work only with the first 65535 Unicode
+ characters)
+- Morphological analysis (in custom item and arrangement style) and stemming
+- Max. 65535 affix classes and twofold affix stripping (for agglutinative
+ languages, like Azeri, Basque, Estonian, Finnish, Hungarian, Turkish, etc.)
+- Support complex compoundings (for example, Hungarian and German)
+- Support language specific features (for example, special casing of
+ Azeri and Turkish dotted i, or German sharp s)
+- Handle conditional affixes, circumfixes, fogemorphemes,
+ forbidden words, pseudoroots and homonyms.
+- Free software. Versions 1.x are licenced under LGPL, GPL, MPL tri-license.
+ Version 2 is licenced only under GNU LGPL.
+
+Compiling on GNU/Linux and Unixes
+=================================
+
+ autoreconf -vfi
+ ./configure
+ make
+ sudo make install
+ sudo ldconfig
+
+For dictionary development, use the `--with-warnings` option of configure.
+
+For interactive user interface of Hunspell executable, use the `--with-ui option`.
+
+The developer packages you need to compile Hunspell's interface:
+
+ autoconf automake autopoint libtool g++
+
+Optional developer packages:
+
+- ncurses (need for --with-ui), eg. libncursesw5 for UTF-8
+- readline (for fancy input line editing,
+ configure parameter: --with-readline)
+- locale and gettext (but you can also use the
+ --with-included-gettext configure parameter)
+
+Compiling on Windows
+====================
+
+## 1. Compiling with Mingw64 and MSYS2
+
+Download Msys2, update everything and install the following packages:
+
+ pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libtool
+
+Open Mingw-w64 Win64 prompt and compile the same way as on Linux, see above.
+
+## 2. Compiling in Cygwin environment
+
+Download and install Cygwin environment for Windows with the following
+extra packages:
+
+- make
+- automake
+- autoconf
+- libtool
+- gcc-g++ development package
+- ncurses, readline (for user interface)
+- iconv (character conversion)
+
+Then compile the same way as on Linux. Cygwin builds depend on Cygwin1.dll.
+
+Debugging
+=========
+
+For debugging we need to create a debug build and then we need to start `gdb`.
+
+ make clean
+ make CXXFLAGS='-g -O0'
+ libtool --mode=execute gdb src/tools/hunspell
+
+Testing
+=======
+
+Testing Hunspell (see tests in tests/ subdirectory):
+
+ make check
+
+or with Valgrind debugger:
+
+ make check
+ VALGRIND=[Valgrind_tool] make check
+
+For example:
+
+ make check
+ VALGRIND=memcheck make check
+
+Documentation
+=============
+
+features and dictionary format:
+
+ man 5 hunspell
+ man hunspell
+ hunspell -h
+
+http://hunspell.github.io/
+
+Usage
+=====
+
+The src/tools directory contains ten executables after compiling:
+
+- affixcompress: dictionary generation from large (millions of words)
+ vocabularies
+- analyze: example of spell checking, stemming and morphological analysis
+- chmorph: example of automatic morphological generation and conversion
+- example: example of spell checking and suggestion
+- hunspell: main program for spell checking and others (see manual)
+- hunzip: decompressor of hzip format
+- hzip: compressor of hzip format
+- makealias: alias compression (Hunspell only, not back compatible with MySpell)
+- munch: dictionary generation from vocabularies (it needs an affix file, too).
+- unmunch: list all recognized words of a MySpell dictionary
+- wordforms: word generation (Hunspell version of unmunch)
+
+After compiling and installing (see INSTALL) you can
+run the Hunspell spell checker (compiled with user interface)
+with a Hunspell or Myspell dictionary:
+
+ hunspell -d en_US text.txt
+
+or without interface:
+
+ hunspell
+ hunspell -d en_UK -l <text.txt
+
+Dictionaries consist of an affix and dictionary file, see tests/
+or http://wiki.services.openoffice.org/wiki/Dictionaries.
+
+Using Hunspell library with GCC
+===============================
+
+Including in your program:
+
+ #include <hunspell.hxx>
+
+Linking with Hunspell static library:
+
+ g++ -lhunspell example.cxx
+
+Dictionaries
+------------
+
+Myspell & Hunspell dictionaries:
+
+- http://extensions.libreoffice.org
+- http://cgit.freedesktop.org/libreoffice/dictionaries
+- http://extensions.openoffice.org
+- http://wiki.services.openoffice.org/wiki/Dictionaries
+
+Aspell dictionaries (need some conversion):
+
+- ftp://ftp.gnu.org/gnu/aspell/dict
+
+Conversion steps: see relevant feature request at http://hunspell.github.io/ .
+
+László Németh
+nemeth at numbertext org