ConsolidateSpellingLibs

Differences between revisions 7 and 8
Revision 7 as of 2006-11-06 20:54:01
Size: 3159
Editor: 207
Comment: update for feisty
Revision 8 as of 2006-11-06 23:26:42
Size: 3837
Editor: 207
Comment: application specific changes
Deletions are marked like this. Additions are marked like this.
Line 20: Line 20:
ispell and aspell do provide a C interface, myspell and hunspell do provide a C++ interface. 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.
Line 46: Line 46:
 * 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.
Line 48: Line 52:

=== Code ===

=== Data preservation and migration ===
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.
Line 57: Line 58:
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. Additional requests from the 2005 spec:
Line 59: Line 60:
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 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 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, its getting replaced by aspell (no application in main using it anymore).
  • 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 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.

Dictionary support is splitted out in its own spec ConsolidateDictionaries.

Rationale

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

Use cases

Jane wonders why some words, she writes in Gaim, are marked wrong, although they aren't marked 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 all programs his name.

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.)

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 use 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 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 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)