The state of Open Source spell checking on Mac OS X

Starting with OS X 10.6 (Snow Leopard) Apple has implemented a near identical service to OpenXSpell under the name OpenSpell.
Due to the confusion resulting from such similar naming, OpenXSpell will now be referred to as just Xspell.

Apple's OpenSpell, like Xspell, Firefox and OpenOffice, also relies on Hunspell dictionaries.
This means you are able to utilise existing publicly available dictionaries right out of the box on OS X 10.6+.
Apple itself provides Polish language spell checking in this way.

If you want to do so just drag a Hunspell dictionary .dic & .aff file pair for your language to ~/Library/Spelling or /Library/Spelling.
The latter location will make it available to all system users.

If you are only interested in getting spell-checking working on Snow Leopard for a language that Apple doesn't support out the box and for which a Hunspell dictionary exists, I suggest you make use of Apple's OpenSpell service and that you do not install Xspell.
Just download the dictionaries from the OpenOffice website here and forget all about Xspell.

If however you are interested in implementing your own spell checker with a different engine than Hunspell, feel free to play around with Xspell.
I would be happy to share my experience regarding the technical details of implementing a spell checking service on OS X.
In this case feel free to contact me at crs?

If you do play around with Xspell here follows instructions for adding languages:

Make sure Xspell installed successfully before following these instructions.

The process involves 3 steps:

  1. Downloading the dictionary files for your language;
  2. Moving and possibly renaming the dictionary files;
  3. Editing the Xspell Info.plist file to specify your language;

Xspell utilises the same dictionary files as OpenOffice and Firefox.
For a sample list of compatible dictionaries, go to

Ignore the parts about OO 3.0 extensions and scroll down to the list of languages. From this list download the appropriate "Spelling" archive.
Extract the archive (double-click should do it) and you will find two important files:
a .aff file and a .dic file.

These two files will have the same name which will be an ISO 639-1 two(or three)-letter language and two-letter region code combination. For example:
Afrikaans (South Africa) is af_ZA
Polish (Poland) is pl_PL
If the .aff and .dic file pair downloaded is not named in this manner then it is up to you to rename them appropriately before continuing.

Now move the .aff and .dic files to /Library/Application Support/Xspell/Dictionaries.
Apple actually recognises the IETF language tag instead of ISO 639-x so the filenames and plist entries (see below) can be the shortened version found here:
IETF language registry

Finally, open a Finder window at /Library/Services/ and right-click on Xspell.service.
Select "Show Package Contents"
Expand the Contents folder and click to edit the Info.plist.

The property list file contains a NSLanguages entry below the top-level Services.
Replace the value for Item 0 of NSLanguages with the language code referred to previously.
It is extremely important that this value match the .aff and .dic file names exactly otherwise the language will be unavailable.
Remember to save your changes to the Info.plist file.

If you have more than one language, follow the same procedure and enter the language codes as further Items under NSLanguages - assuming the appropriate .aff and .dic files are available.

Log out and log back in.

Spell checking should now be available system-wide for the language(s) you installed.

If you experience any difficulties, check out the bug report filed Bug Id 7290111