# Non-english spell check dictionaries for Mathematica?

I've spent a fair amount of time bending Mathematica for taking notes and I've been very happy with it, the only missing piece it seems is a nice spell check dictionary for Polish (my mother language).

If anyone could point me to the right resources; where to download or how to convert an existing dictionary to one compatible with Mathematica I'd be very grateful.

--- Update ---

Alright, so I've recognized that the spelling dictionary probably sits in Mathematica/Contents/SystemFiles/SpellingDictionaries/English/Mathematica.rws and I've found some clues that it might be an aspell dictionary, so I've downloaded an aspell polish dictionary from http://sjp.pl/slownik/en/, builded it to .rws (here's a zip) and then tried to replace the default English dictionary (because putting dictionaries side by side in /SpellingDictionaries didn't work either) and when I've tried to spell-check a document the box reported a problem with Mathematica.rws which probably is CodeSigned and therefore cannot be easily replaced...

--- Update 2 ---

The first 32 bytes look exactly the same so the format should (?) be correct.

Well, I guess we may be left stuck just one last step to a working solution.

• Have you seen How to | Spell Check a Notebook? – user9660 Sep 10 '15 at 12:47
• While I can't comment on features under development, the spell checking engine and dictionary format may change altogether, so that it would be much easier to add a dictionary for your language (if not already included). – ilian Sep 19 '15 at 15:32
• @ilian let me just note that modifying an LGPL library such as aspell and then linking it into Mathematica obliges WRI to make available (strictly, as part of the Mathematica distribution) the source code for the modified library. So far as I can tell, this has not been done, but should be. Thus, it ought to be possible (if a user is sufficiently motivated) to generate a compatible dictionary file. – Oleksandr R. Nov 22 '15 at 18:54
• @ilian the key distinction is as to what or is not is a derivative work. The modified library is clearly a derivative of the original and so must be made available under the terms of the (L)GPL. Code that links to it (rather than incorporating it) is not considered a derivative work under the LGPL but merely a combined work. This is in contrast to the GPL, where linking (understood in the broadest possible sense) is sufficient to produce a derivative work. These terms are to be understood in the context of copyright since GPL/LGPL rely on copyright law for their applicability. – Oleksandr R. Nov 22 '15 at 21:29
• @OleksandrR Thank you for explaining, I am not sure what the answer is, but I will let the appropriate people know. It is possible my speculation about what was modified was simply wrong. – ilian Nov 22 '15 at 22:14

In 10.4 there are new language functions like DictionaryWordQ and SpellingCorrectionList:

DictionaryWordQ["delfin", Language -> Interpreter["Language"]["Polish"]]
(*True*)

SpellingCorrectionList["telewozja", Language -> Interpreter["Language"]["Polish"]]
(*{"telewizja"}*)

• Great find! Now how can one easily spell check a notebook? – Ranza Mar 6 '16 at 11:09
$dictionaryLanguage = "Polish"; Unprotect[DictionaryLookup]; DictionaryLookup[pat : Except[_List], x___] /; ! TrueQ[$dicLang] &&
ValueQ[$dictionaryLanguage] := Block[{$dicLang = True},
DictionaryLookup[{\$dictionaryLanguage, pat}, x]]

DownValues[DictionaryLookup] =
RotateRight@DownValues[DictionaryLookup];

Protect[DictionaryLookup];

• can you please elaborate how this helps? – Ranza Sep 24 '15 at 15:48

I guess this is solved with version 11 of Mathematica.