summaryrefslogtreecommitdiff
path: root/index.html
blob: 26eb8d7a7c2793351e912d89999d14700c8a8fd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<!--responsive layout-->
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!--bootstrap-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">

<title>Enchant</title>
</head>
<body>
<div class="content container my-5">
<h1>Enchant</h1>
<p>by Dom Lachowicz</p>
<p>Current maintainer: Reuben Thomas</p>

<hr />

<h2><a href="https://github.com/AbiWord/enchant/releases">Releases</a></h2>

<h2>What is Enchant?</h2>

<p>Enchant is a library (and command-line program) that wraps a number of
different spelling libraries and programs with a consistent interface. By
using Enchant, you can use a wide range of spelling libraries, including
some specialised for particular languages, without needing to program to
each library's interface. If it's not convenient to call a C library, you
can access most of Enchant's functionality via the enchant program, which
communicates over a pipe, like ispell, and is indeed ispell-compatible.</p>

<h2>Backends</h2>

<p>Enchant is capable of having multiple backends loaded at once. Currently, Enchant has the following backends:</p>

<ul>
<li><a href="https://hunspell.github.io/">Hunspell</a> (used by many other programs, including Firefox and Thunderbird)</li>
<li><a href="https://nuspell.github.io/">Nuspell</a> (newest spell checker to be used by many other programs, including Firefox and Thunderbird)</li>
<li><a href="http://aspell.net/">GNU Aspell</a> (old Ispell replacement)</li>
<li><a href="http://hspell.ivrix.org.il/">Hspell</a> (Hebrew)</li>
<li><a href="https://voikko.puimula.org/">Voikko</a> (Finnish)</li>
<li><a href="https://code.google.com/archive/p/zemberek/">Zemberek</a> (Turkish)</li>
<li><a href="https://developer.apple.com/">AppleSpell</a> (macOS)</li>
</ul>

<h2>Getting Enchant</h2>

<p>You can get Enchant from <a
href="https://github.com/AbiWord/enchant">GitHub</a>.</p>

<p>Older versions are still available from the <a
href="http://www.nl.abisource.com/downloads/enchant/">AbiSource website</a>.</p>

<ul>
  <li><a href="https://github.com/AbiWord/enchant/blob/master/src/enchant.h">C API</a></li>
  <li><a href="https://github.com/AbiWord/enchant/blob/master/src/enchant%2B%2B.h">C++ API</a></li>
  <li><a href="https://github.com/AbiWord/enchant/blob/master/src/enchant-provider.h">Provider plugin API</a></li>
  <li>You can <a href="https://github.com/AbiWord/enchant">browse Enchant's source code</a></li>
</ul>

<h2>User configuration</h2>

See <a href="src/enchant.html">enchant(5)</a>.

<h2>Command-line programs</h2>

Enchant comes with a couple of command-line utilities:

<dl>
  <dt><a href="src/enchant-lsmod-2.html">enchant-lsmod(1)</a></dt><dd>Gives
  information about the available dictionaries.</dd>
  <dt><a href="src/enchant-2.html">enchant(1)</a></dt><dd>Check the spelling of some text. This program is compatible with the ispell utility, but is for non-interactive use only.</dd>
</dl>

<h2>Programs using Enchant</h2>

<p>Enchant is used by <a href="https://www.gnu.org/software/emacs/">GNU
Emacs</a> (as of version 27.1), <a href="http://www.nl.abisource.com/">AbiWord</a>,
<a href="https://www.lyx.org">LyX</a>, and,
via <a href="https://wiki.gnome.org/Projects/gspell">gspell</a>
and <a href="http://gtkspell.sourceforge.net">GtkSpell</a>, a number of Gtk
and GNOME applications.</p>

<p>Backends for additional spell-checking systems are welcomed.</p>

<h2>Compatibility and bindings</h2>

<p>Enchant is written in plain C99 and C++11, and should therefore work on
most modern operating systems; other than the standard libraries, it
requires only <a href="https://wiki.gnome.org/Projects/GLib">GLib</a>. The
build system uses GNU Autotools, and therefore works with most compilers,
including Microsoft Visual C and XCode.</p>

<p>Bindings are available to many other languages:</p>

<ul>
  <li><a href="https://github.com/rfk/pyenchant/">Python</a></li>
  <li><a href="https://crates.io/crates/enchant">Rust</a></li>
  <li><a href="https://github.com/hermanschaaf/enchant">Go</a></li>
  <li><a href="https://github.com/tlikonen/cl-enchant">Common Lisp</a></li>
  <li>Vala: built in!</li>
</ul>

<p>All inputs and outputs are in UTF-8 encoding. Language tags use
the familiar ISO standards, and take the form of "xx_YY"
(language_LOCALE), where the locale ("_YY") portion is optional, but
encouraged.</p>

<h2>Bugs and development</h2>

<p>Please use <a
href="https://github.com/AbiWord/enchant/issues/">Github issue
    tracker</a> if possible to file bugs, offer patches or request new features.
  Even better, submit a <a href="https://github.com/AbiWord/enchant/pulls/">Pull Request</a>!
  Alternatively, feel free to send a message to the abiword-devel mailing list.
</p>

<p>Enchant is quite mature, but it still lacks features. Some work has
already been done as part of past Google Summer of Code projects that has
not yet been integrated into releases (see the issue tracker). Some
functionality available in the underlying spelling libraries but not yet
supported by Enchant could also usefully be added to Enchant's APIs.</p>

<p>If you'd like to contribute to Enchant, please read the file <a href="https://github.com/AbiWord/enchant/blob/master/HACKING"><code>HACKING</code></a>.

<h2>License</h2>

<p>Enchant is licensed under the LGPL license, with an
  <a href="https://github.com/AbiWord/enchant/blob/e61d5e73d4e2e410349508c08cfcf17d330503d2/src/enchant.h#L19-L28">exception</a> so that non-free plugin backends
can be loaded and used by Enchant. Thus, it is possible to use
the native spell checkers on proprietary platforms (macOS, MS Office, …).</p>

<h2>What's in a Name?</h2>

<p>The definition of "Enchant" is roughly "to cast a spell". So, it's a pun!</p>

</div>
<table style="text-align: left; background-color: rgb(244, 244, 244); width: 100%;" width="100%" border="0" cellspacing="2" cellpadding="2"><tbody><tr><td style="font-size: 8pt; align: center;"><div class="copyright">Copyright (C) 1998-2020, the AbiSource community.  All rights reserved.<br />
AbiSource, AbiSuite, and AbiWord are <a href="/information/license/tm_guide.phtml">trademarks</a> of Dom Lachowicz.  All other product names, company names, or logos cited herein are property of their respective owners.</div></td></tr></tbody></table>
<!--bootstrap and its dependencies-->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
</body>
</html>