| About Hunspell |
| ============== |
| |
| NOTICE: Verison 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 Unix/Linux and others |
| ================================== |
| |
| autoreconf -vfi |
| ./configure |
| make |
| make install #if neccesary prefix with sudo |
| ldconfig #not needed on windows, on linux sudo may be needed |
| |
| 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 |
| - gcc-g++ development package |
| - ncurses, readline (for user interface) |
| - iconv (character conversion) |
| |
| ###3.1. Cygwin1.dll dependent compiling |
| |
| Same as on Linux. |
| |
| 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 dictionary 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 |