| OLD | NEW |
| 1 About Hunspell | 1 About Hunspell |
| 2 -------------- | 2 ============== |
| 3 |
| 4 NOTICE: Verison 2 is in the works. For contributing see |
| 5 [version 2 specification][v2spec] and the folder `src/hunspell2`. |
| 6 |
| 7 [v2spec]: https://github.com/hunspell/hunspell/wiki/Version-2-Specification |
| 3 | 8 |
| 4 Hunspell is a spell checker and morphological analyzer library and program | 9 Hunspell is a spell checker and morphological analyzer library and program |
| 5 designed for languages with rich morphology and complex word compounding or | 10 designed for languages with rich morphology and complex word compounding or |
| 6 character encoding. Hunspell interfaces: Ispell-like terminal interface | 11 character encoding. Hunspell interfaces: Ispell-like terminal interface |
| 7 using Curses library, Ispell pipe interface, OpenOffice.org UNO module. | 12 using Curses library, Ispell pipe interface, C++ class and C functions. |
| 8 | 13 |
| 9 Hunspell's code base comes from the OpenOffice.org MySpell | 14 Hunspell's code base comes from the OpenOffice.org MySpell |
| 10 (http://lingucomponent.openoffice.org/MySpell-3.zip). See README.MYSPELL, | 15 (http://lingucomponent.openoffice.org/MySpell-3.zip). See README.MYSPELL, |
| 11 AUTHORS.MYSPELL and license.myspell files. | 16 AUTHORS.MYSPELL and license.myspell files. |
| 12 Hunspell is designed to eventually replace Myspell in OpenOffice.org. | 17 Hunspell is designed to eventually replace Myspell in OpenOffice.org. |
| 13 | 18 |
| 14 Main features of Hunspell spell checker and morphological analyzer: | 19 Main features of Hunspell spell checker and morphological analyzer: |
| 15 | 20 |
| 16 - Unicode support (affix rules work only with the first 65535 Unicode characters
) | 21 - Unicode support (affix rules work only with the first 65535 Unicode |
| 17 | 22 characters) |
| 18 - Morphological analysis (in custom item and arrangement style) and stemming | 23 - Morphological analysis (in custom item and arrangement style) and stemming |
| 19 | |
| 20 - Max. 65535 affix classes and twofold affix stripping (for agglutinative | 24 - Max. 65535 affix classes and twofold affix stripping (for agglutinative |
| 21 languages, like Azeri, Basque, Estonian, Finnish, Hungarian, Turkish, etc.) | 25 languages, like Azeri, Basque, Estonian, Finnish, Hungarian, Turkish, etc.) |
| 22 | |
| 23 - Support complex compoundings (for example, Hungarian and German) | 26 - Support complex compoundings (for example, Hungarian and German) |
| 24 | |
| 25 - Support language specific features (for example, special casing of | 27 - Support language specific features (for example, special casing of |
| 26 Azeri and Turkish dotted i, or German sharp s) | 28 Azeri and Turkish dotted i, or German sharp s) |
| 27 | |
| 28 - Handle conditional affixes, circumfixes, fogemorphemes, | 29 - Handle conditional affixes, circumfixes, fogemorphemes, |
| 29 forbidden words, pseudoroots and homonyms. | 30 forbidden words, pseudoroots and homonyms. |
| 30 | 31 - Free software. Versions 1.x are licenced under LGPL, GPL, MPL tri-license. |
| 31 - Free software (LGPL, GPL, MPL tri-license) | 32 Version 2 is licenced only under GNU LGPL. |
| 32 | 33 |
| 33 Compiling on Unix/Linux and others | 34 Compiling on Unix/Linux and others |
| 34 ---------------------------------- | 35 ================================== |
| 35 | 36 |
| 36 autoreconf -vfi | 37 » autoreconf -vfi |
| 37 ./configure | 38 » ./configure |
| 38 make | 39 » make |
| 39 make install» #if neccesary prefix with sudo | 40 » make install #if neccesary prefix with sudo |
| 40 ldconfig» #not needed on windows, on linux sudo may be needed | 41 » ldconfig #not needed on windows, on linux sudo may be needed |
| 41 | 42 |
| 42 For dictionary development, use the --with-warnings option of configure. | 43 For dictionary development, use the --with-warnings option of configure. |
| 43 | 44 |
| 44 For interactive user interface of Hunspell executable, use the --with-ui option. | 45 For interactive user interface of Hunspell executable, use the --with-ui option. |
| 45 | 46 |
| 46 The developer packages you need to compile Hunspell's interface: | 47 The developer packages you need to compile Hunspell's interface: |
| 47 | 48 |
| 48 autoconf automake autopoint libtool g++ | 49 » autoconf automake autopoint libtool g++ |
| 49 | 50 |
| 50 optional developer packages: | 51 optional developer packages: |
| 51 | 52 |
| 52 ncurses (need for --with-ui), eg. libncursesw5 for UTF-8 | 53 - ncurses (need for --with-ui), eg. libncursesw5 for UTF-8 |
| 53 readline (for fancy input line editing, | 54 - readline (for fancy input line editing, |
| 54 configure parameter: --with-readline) | 55 configure parameter: --with-readline) |
| 55 locale and gettext (but you can also use the | 56 - locale and gettext (but you can also use the |
| 56 --with-included-gettext configure parameter) | 57 --with-included-gettext configure parameter) |
| 57 | 58 |
| 58 Compiling on Windows | 59 Compiling on Windows |
| 59 -------------------- | 60 ==================== |
| 60 | 61 |
| 61 1. Compiling with Visual Studio | 62 1. Compiling with Mingw64 and MSYS2 |
| 62 | 63 ----------------------------------- |
| 63 Download the free Visual Studio Community Edition of Microsoft, open the | |
| 64 file hunspell/src/win_api/Hunspell.sln. Select the appropirate build (Debug, | |
| 65 Release, Win32, x64) and press Build. | |
| 66 | |
| 67 2. Compiling with Mingw64 and MSYS2 | |
| 68 | 64 |
| 69 Download Msys2, update everything and install the following packages: | 65 Download Msys2, update everything and install the following packages: |
| 70 | 66 |
| 71 pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libtool | 67 » pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libtool |
| 72 | 68 |
| 73 Open Mingw-w64 Win64 prompt and compile the same way as on Linux, see above. | 69 Open Mingw-w64 Win64 prompt and compile the same way as on Linux, see above. |
| 74 | 70 |
| 75 3. Compiling in Cygwin environment | 71 2. Compiling in Cygwin environment |
| 72 ---------------------------------- |
| 76 | 73 |
| 77 Download and install Cygwin environment for Windows with the following | 74 Download and install Cygwin environment for Windows with the following |
| 78 extra packages: | 75 extra packages: |
| 79 | 76 |
| 80 make | 77 - make |
| 81 automake | 78 - automake |
| 82 autoconf | 79 - autoconf |
| 83 gcc-g++ development package | 80 - gcc-g++ development package |
| 84 ncurses, readline (for user interface) | 81 - ncurses, readline (for user interface) |
| 85 iconv (character conversion) | 82 - iconv (character conversion) |
| 86 | 83 |
| 87 3.1. Cygwin1.dll dependent compiling | 84 ###3.1. Cygwin1.dll dependent compiling |
| 88 | 85 |
| 89 Same as on Linux. | 86 Same as on Linux. |
| 90 | 87 |
| 91 Testing | 88 Testing |
| 92 ------- | 89 ======== |
| 93 | 90 |
| 94 Testing Hunspell (see tests in tests/ subdirectory): | 91 Testing Hunspell (see tests in tests/ subdirectory): |
| 95 | 92 |
| 96 make check | 93 » make check |
| 97 | 94 |
| 98 or with Valgrind debugger: | 95 or with Valgrind debugger: |
| 99 | 96 |
| 100 make check | 97 » make check |
| 101 VALGRIND=[Valgrind_tool] make check | 98 » VALGRIND=[Valgrind_tool] make check |
| 102 | 99 |
| 103 For example: | 100 For example: |
| 104 | 101 |
| 105 make check | 102 » make check |
| 106 VALGRIND=memcheck make check | 103 » VALGRIND=memcheck make check |
| 107 | 104 |
| 108 Documentation | 105 Documentation |
| 109 ------------- | 106 ============= |
| 110 | 107 |
| 111 features and dictionary format: | 108 features and dictionary format: |
| 112 man 5 hunspell | |
| 113 | 109 |
| 114 man hunspell | 110 » man 5 hunspell |
| 115 hunspell -h | 111 » man hunspell |
| 112 » hunspell -h |
| 113 » |
| 116 http://hunspell.github.io/ | 114 http://hunspell.github.io/ |
| 117 | 115 |
| 118 Usage | 116 Usage |
| 119 ----- | 117 ===== |
| 120 | 118 |
| 121 The src/tools dictionary contains ten executables after compiling | 119 The src/tools dictionary contains ten executables after compiling: |
| 122 (or some of them are in the src/win_api): | |
| 123 | 120 |
| 124 affixcompress: dictionary generation from large (millions of words) vocabularies | 121 - affixcompress: dictionary generation from large (millions of words) |
| 125 analyze: example of spell checking, stemming and morphological analysis | 122 vocabularies |
| 126 chmorph: example of automatic morphological generation and conversion | 123 - analyze: example of spell checking, stemming and morphological analysis |
| 127 example: example of spell checking and suggestion | 124 - chmorph: example of automatic morphological generation and conversion |
| 128 hunspell: main program for spell checking and others (see manual) | 125 - example: example of spell checking and suggestion |
| 129 hunzip: decompressor of hzip format | 126 - hunspell: main program for spell checking and others (see manual) |
| 130 hzip: compressor of hzip format | 127 - hunzip: decompressor of hzip format |
| 131 makealias: alias compression (Hunspell only, not back compatible with MySpell) | 128 - hzip: compressor of hzip format |
| 132 munch: dictionary generation from vocabularies (it needs an affix file, too)
. | 129 - makealias: alias compression (Hunspell only, not back compatible with MySpell) |
| 133 unmunch: list all recognized words of a MySpell dictionary | 130 - munch: dictionary generation from vocabularies (it needs an affix file, too). |
| 134 wordforms: word generation (Hunspell version of unmunch) | 131 - unmunch: list all recognized words of a MySpell dictionary |
| 132 - wordforms: word generation (Hunspell version of unmunch) |
| 135 | 133 |
| 136 After compiling and installing (see INSTALL) you can | 134 After compiling and installing (see INSTALL) you can |
| 137 run the Hunspell spell checker (compiled with user interface) | 135 run the Hunspell spell checker (compiled with user interface) |
| 138 with a Hunspell or Myspell dictionary: | 136 with a Hunspell or Myspell dictionary: |
| 139 | 137 |
| 140 hunspell -d en_US text.txt | 138 » hunspell -d en_US text.txt |
| 141 | 139 |
| 142 or without interface: | 140 or without interface: |
| 143 | 141 |
| 144 hunspell | 142 » hunspell |
| 145 hunspell -d en_UK -l <text.txt | 143 » hunspell -d en_UK -l <text.txt |
| 146 | 144 |
| 147 Dictionaries consist of an affix and dictionary file, see tests/ | 145 Dictionaries consist of an affix and dictionary file, see tests/ |
| 148 or http://wiki.services.openoffice.org/wiki/Dictionaries. | 146 or http://wiki.services.openoffice.org/wiki/Dictionaries. |
| 149 | 147 |
| 150 Using Hunspell library with GCC | 148 Using Hunspell library with GCC |
| 151 ------------------------------- | 149 =============================== |
| 152 | 150 |
| 153 Including in your program: | 151 Including in your program: |
| 154 #include <hunspell.hxx> | 152 |
| 153 » #include <hunspell.hxx> |
| 155 | 154 |
| 156 Linking with Hunspell static library: | 155 Linking with Hunspell static library: |
| 157 g++ -lhunspell example.cxx | 156 |
| 157 » g++ -lhunspell example.cxx |
| 158 | 158 |
| 159 Dictionaries | 159 Dictionaries |
| 160 ------------ | 160 ------------ |
| 161 | 161 |
| 162 Myspell & Hunspell dictionaries: | 162 Myspell & Hunspell dictionaries: |
| 163 http://extensions.libreoffice.org | 163 |
| 164 http://cgit.freedesktop.org/libreoffice/dictionaries | 164 - http://extensions.libreoffice.org |
| 165 http://extensions.openoffice.org | 165 - http://cgit.freedesktop.org/libreoffice/dictionaries |
| 166 http://wiki.services.openoffice.org/wiki/Dictionaries | 166 - http://extensions.openoffice.org |
| 167 - http://wiki.services.openoffice.org/wiki/Dictionaries |
| 167 | 168 |
| 168 Aspell dictionaries (need some conversion): | 169 Aspell dictionaries (need some conversion): |
| 169 ftp://ftp.gnu.org/gnu/aspell/dict | 170 |
| 171 - ftp://ftp.gnu.org/gnu/aspell/dict |
| 172 |
| 170 Conversion steps: see relevant feature request at http://hunspell.github.io/ . | 173 Conversion steps: see relevant feature request at http://hunspell.github.io/ . |
| 171 | 174 |
| 172 László Németh | 175 László Németh |
| 173 nemeth at numbertext org | 176 nemeth at numbertext org |
| OLD | NEW |