ConsolidateSpellingLibs

Revision 10 as of 2006-11-11 01:34:10

Clear message

Summary

Reduce the number of spelling libraries used in main; modify / extend applications currently not using the "system spellchecker" to use the system spell checker as well. Currently up to four implementations are in use:

  • ispell: still used by some applications, it's getting replaced by aspell (no application in main uses it any more).
  • aspell: ispell replacement, biggest users in main are Gnome and KDE
  • myspell: ispell replacement, currently used by thunderbird, mozilla.
  • hunspell: fork/replacement for myspell, dictionaries beeing compatible with myspell, used by openoffice.

ispell and aspell provide a C interface, myspell and hunspell provide a C++ interface. The enchant library provides a way to abstract from the underlying spell checker (aspell or myspell) and can be used to convert applications to a common interface.

Dictionary support is splitted out in its own spec ConsolidateDictionaries.

Rationale

Support only one implementation in the long term. More importantly, only support one source of dictionaries for one spelling library.

Use cases

Jane wonders why some words she writes in Gaim are marked as wrong, although they aren't marked as wrong in OpenOffice.

Asdf Qwert worries about the fact that no program knows his name. He is very depressed, because there is no easy way to teach it to all programs.

Karl from Germany, who knows that Thunderbird uses ispell, wonders why Thunderbird isn't able to spellcheck his emails using a German dictionary, although he has installed ingerman and iogerman. He also wonders why OpenOffice finds his dictionaries and Thunderbird doesn't. (TB uses an older version of ispell and dictionaries are installed via xpis.)

 tfheen: please provide use cases which show how things are supposed to work, not how they are currently broken 

Scope

Design

Implementation

The system spellchecker used in both Gnome and KDE is aspell. Two applications are not yet using aspell:

Firefox

  • First step: use hunspell instead of myspell with the goal to demote myspell from main. myspell and hunspell are supposed to be API compatible.
  • Convert to use enchant.

OpenOffice.org

OOo makes use of hunspell-based dictionaries and hyphenation patterns. Hypenation patterns are not (?) supported by aspell, so it may prove difficult to completely replace the use of hunspell by aspell. In a first step, write a plugin to additionally read/write the aspell system and user dictionaries in addition to using the aspell dictionaries.

Outstanding issues

BoF agenda and discussion

Additional requests from the 2005 spec:

* It would be universally cool if we could somehow tie in Rosetta, language packs and this unified spellchecking library. This way translators and users would be using the same de-facto list, and translators could on the fly correct the list if there happened to be a problem. This would definitely make my life as a translator a tad easier.

* It should be easy to switch between languages for spell checking. People have a local language set but often need to use other languages to engage on-line (like I'm doing here). (I'm thinking of programs like Xchat/gaim/firefox that only check the local system language.) Spell checking should be enabled throughout the system for all languages selected in "language support". There should be a standard way to switch between languages in applications, but perhaps it is even possible to detect what language is being used in a particular field. - finalbeta


CategorySpec