Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
..
fuzz 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
google 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
src 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
tests 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
BUILD.gn 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
COPYING 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
COPYING.LESSER 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
COPYING.MPL 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
DEPS 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
OWNERS 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README.chromium 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README.myspell 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
google.patch 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
hunspell.vsprops 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
update_google_patch.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
using_hunspell.vsprops 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago

README

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
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

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