Функция проверки правописания

МойнМойн использует три источника допустимых слов:

Если модуль dbhash входит в установку Python, файлы в каталоге dict читаются один раз и сохраняются в хэш-таблице. Это ускоряет процесс проверки, так как его временная сложность становится линейной в зависимости только от количества слов на проверяемой странице и (почти) не зависит от количества слов в словаре (занимает несколько сотен миллисекунд вместо нескольких секунд при размере словаря в 250 000 слов).

Замечание: построение базы может занимать до нескольких минут, но только при первом вызове проверки. Если обозреватель или веб-сервер прерывают загрузку страницы до окончания процесса построения индекса, решением может являться заход на сервер и ручной запрос страницы1.

UNIX-подобные ОС обычно уже содержат хотя бы один файл со списком слов; для его использования достаточно создать символьную ссылку в каталоге для словарей, например, так:

MoinMoin/dict> ln -s /usr/dict/words .

В некоторых системах список слов находится в файле /usr/share/dict/words.

Пример

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   289542 Aug 29  2000 russian.txt
-rw-r--r--   1 544      everyone    92631 Nov 30 15:24 top10000de.txt

Файлы со списками слов

Файлы со списками слов для американского английского и немецкого языков доступны в каталоге contrib/dict/ архива МойнМойн.

Если что-то не работает

В случае изменения содержимого каталогов MoinMoin/dict/ или data/dict/ (например, при добавлении или удалении словарей) или при создании одного из указанных каталогов необходимо удалить файл <путь_к_вики>/data/cache/spellchecker.dict (новый будет создан автоматически при следующем вызове проверки). Если этого не сделать, то новые словари не будут использоваться (например, будет использоваться только содержимое страницы LocalSpellingWords).

Ещё одной причиной проблем может явиться то, что словари были помещены в неиспользуемый каталог кода сервера МойнМойн, то есть не тот, который импортируется при запуске экземпляра сервера.


  1. Следующая версия будет предоставлять инструмент для построения базы из командной строки (1)