The Spell Checking Option
MoinMoin looks for valid words in three places:
the "dict" directory in the MoinMoin package directory (if "dict" doesn't exist, you may need to create it)
/usr/lib/python2.4/site-packages/MoinMoin/dict (typical Linux location, Python 2.4) C:\Python24\Lib\site-packages\MoinMoin\dict (typical Windows location, Python 2.4)
- the "dict" directory of data directory of your wiki (per-wiki dictionary)
the page LocalSpellingWords
If the "dbhash" module is available with your Python installation, the files in "dict" are read only once and stored in a hash table. This speeds up the spell checking process because the number of words in the checked page determines the time needed for the checking, not the number of words in the dictionary (with 250000 words, some hundred milliseconds instead of several seconds).
Note that it may take a few minutes to build up this database, but only the first time the spellchecker is called. If your browser or the webserver timeouts before the file is completely built, one solution is to telnet into your webserver, and manually request the page1.
BTW, a UNIX machine normally comes with at least one words file; to use those, create a symlink within the dict directory, like so:
MoinMoin/dict> ln -s /usr/dict/words .
On some systems, the words file is found in "/usr/share/dict/words" instead.
MoinMoin> ls -l dict -rw-r--r-- 1 544 everyone 409067 Jan 04 06:38 american-english -rw-r--r-- 1 544 everyone 2913577 Jan 25 2000 german.txt -rw-r--r-- 1 544 everyone 92631 Nov 30 15:24 top10000de.txt
2. Words files
If you need words files for US English or German, see contrib/dict/ directory in your moin archive.
3. If it does not work
If you change the contents of MoinMoin/dict/ or data/dict/ (because of adding new / removing old dictionaries) or if you create a new MoinMoin/dict/ or data/dict/ directory, then you have to delete the file <yourwiki>/data/cache/spellchecker.dict (a new one will be created automagically).
If you don't, your new dictionaries won't be recognized (e.g. it will use only LocalSpellingWords). Another possible cause of problems is that you did not place the dictionaries in the active "MoinMoin" package directory, i.e. the one that is actually imported by your CGI script.
The next version will provide a tool to create the database on the command line. (1)