ConsolidateSpellingLibs

Differences between revisions 8 and 10 (spanning 2 versions)
Revision 8 as of 2006-11-06 23:26:42
Size: 3837
Editor: 207
Comment: application specific changes
Revision 10 as of 2006-11-11 01:34:10
Size: 3878
Editor: 207
Comment: Review
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * '''Created''': 2005-10-30 by MatthiasKlose
 * '''Contributors''':
Line 12: Line 10:
 * ispell: still used by some applications, its getting replaced by aspell (no application in main using it anymore).  * ispell: still used by some applications, it's getting replaced by aspell (no application in main uses it any more).
Line 20: Line 18:
ispell and aspell do provide a C interface, myspell and hunspell do 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. 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.
Line 26: Line 24:
Support only one implementation in the long term, and more importantly, only support one source for dictionaries for one spelling library. Support only one implementation in the long term. More importantly, only support one source of dictionaries for one spelling library.
Line 30: Line 28:
Jane wonders why some words, she writes in Gaim, are marked wrong, although they aren't marked wrong in OpenOffice. Jane wonders why some words she writes in Gaim are marked as wrong, although they aren't marked as wrong in OpenOffice.
Line 32: Line 30:
Asdf Qwert worries about the fact that no program knows his name. He is very depressed, because there is no easy way to teach all programs his name. 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.
Line 35: Line 33:

{{{ tfheen: please provide use cases which show how things are supposed to work, not how they are currently broken }}}
Line 52: Line 52:
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 use the aspell dictionaries. 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.
Line 60: Line 60:
* 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 defacto list and translators could on the fly correct the list if there happened to be a problem. This would definately make my life as a translator just a tad easier. * 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.
Line 62: Line 62:
* 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 * 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

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

ConsolidateSpellingLibs (last edited 2008-08-06 16:16:08 by localhost)