Spell Checker
CAUTION: THIS IS A BETA STAGE PLUGIN. IT CAN DO VERY BAD THINGS. USE AT YOUR OWN RISK.
This is a spell checker plugin that uses Hunspell to do the dirty work. Hunspell is the spell checker used by OpenOffice, so it should have a good range of dictionaries.
For message window plugins (let's call them all *srmm) it works transparently if those plugins implement the new notification API and have a richedit in the input area. Latest version (from Miranda build #0.7) of tabSRMM and scriver already do so. SRMM plugin don't have a rich edit, so you need this moded version:
Ansi: http://pescuma.mirandaim.ru/miranda/srmm.zip
Unicode: http://pescuma.mirandaim.ru/miranda/srmmW.zip
Patch: http://pescuma.mirandaim.ru/miranda/srmm.spellchecker.patch
For other plugins, it works throught providing 3 serices for them to interact:
- one to add handling of a rich edit control
- one to remove it
- one to append options needed to a popup menu and show it
The dictionaries: it uses hunspell dictionaries. Each is a couple of files with the name beeing the language and the extensions .dic and .aff. Both need to be inside the dir <Miranda Path>\Dictionaries (of a custom folder if folders plugin is installed). You can download then at: http://wiki.services.openoffice.org/wiki/Dictionaries.
PS: This path is read only at startup, so changing it needs a restart of miranda.
It has an options page to set the default dictionary and some other options. It is at Message Sessions/Spell Checker
The flags: new versions support showing flags to represent the dicts. This is done to have an visual way to represent the dict. To load the flags, the following steps are done:
1. Try to load from file Icons\flags.dll - in this case an icon resource must exist with same name as language (for ex: pt_BR). If this is found, the icon is also added to IconLib to allow further customizing.
2. Load unknown flag. It can be customized thorught IconLib
Currently there are 2 sets of flags, one from Angeli-Ka and one from the famfamfam.com site:
- famfamfam's icons as .ico: http://pescuma.mirandaim.ru/miranda/flags-famfamfam.zip (note that there are a lot of files inside this zip with wrong names. It happens because I don't know which languages they represent - and if they represent a language or not. So, if you think some file name must change, please tell me)
- famfamfam's icons as .dll: http://pescuma.mirandaim.ru/miranda/flags-dll-famfamfam.zip
- Angeli-Ka's icons as .ico: http://pescuma.mirandaim.ru/miranda/flags-angelika.zip
- Angeli-Ka's icons as .ico with language names: http://pescuma.mirandaim.ru/miranda/flags-angelika-name.zip
- Angeli-Ka's icons as .dll: http://pescuma.mirandaim.ru/miranda/flags-dll-angelika.zip
Many thanks to the Hunspell team and to Vladimir Vainer that made an initial version of the plugin. And thanks to the famfamfam.com site for the icons I'm using for the flags.
To report bugs/make suggestions, go to the forum thread: http://forums.miranda-im.org/showthread.php?t=11555
Changelog
. 0.1.0.2
+ Updated to Hunspell 1.2.2b (closes issue 16)
+ Use also TRY as word chars (closes issue 13)
. 0.1.0.1
+ Will use also language files avaiable for other apps (Thunderbird and Firefox by now) (thanks yb)
* Fix for showing popup menu in group chat
+ Now it can patch languages that are only equal in prefix (thanks yb)
. 0.1.0.0
+ First release in FL
. 0.0.4.0
* Updated to Hunspell 1.2.1
* Changes for compatibility with meSpeak
. 0.0.3.2
* Renamed to Use input language to select dictionary
. 0.0.3.1
+ Option to use keyboard locale to select dictionary (disabled by default)
. 0.0.3.0
+ Show dict flag on *srmm status bar
. 0.0.2.9
* Fix for big dict names
+ Put back folders support for flags.dll
+ Added de_frami_neu to list of known dict names
. 0.0.2.8
* Fix for wordchars (you can revert the WORDCHARS to old values)
+ Option to name the dict changing the db
. 0.0.2.7
* Fix to allow editing .ar by hand
* Fix for crash in options
- Changed how icons are read - now only throught IcoLib or Icons\flags.dll
+ Option to only replace user-defined words
+ New dialog to add a word to always auto-replace
+ Updated to latest version of Hunspell (side-effect: WORDCHARS now have to have all chars)
. 0.0.2.6
* Try to fix freeze when making an suggestion
. 0.0.2.5
+ Updated Hunspell to version 1.1.5
* Fix to avoid sending typing notification when correcting words
* Fix to store custom dics as encoded strings
. 0.0.2.4
+ Added support for Miranda 0.8
* Fixed big bad bug in text reading from richedit
. 0.0.2.3
* Fix for resource leak (thanks borkra)
. 0.0.2.2
* Better handling of icons (thanks borkra)
* Don't crash anymore if default SRMM is installed (thanks borkra)
. 0.0.2.1
+ Better handling of URLs
. 0.0.2.0
+ Now ignores URLs and email addresses
+ Added option to ignore words in UPPER CASE
+ Added custom folder for flags.dll
* Use number as part of words too
* Changed text of show all corrections
* Fix for interation with srmm icon API
. 0.0.1.9
* New icons for status bar (thanks Angeli-Ka)
* Changed links to new site
+ Option to show wrong word
+ Load flags from flags.dll (thanks Faith Healer)
. 0.0.1.8
* Fix for crash
. 0.0.1.7
* Better handling of poppup menus
. 0.0.1.6
+ Option to use flags
+ Unknown flag
+ Flags in other menus too
* Fix in typo in ShowAllCorrections setting. Sorry but the value of this setting will need to be reset
. 0.0.1.5
* Fix for checking while selecting
* Fix for CTRL-Z
* Fix for add words to dict
+ Added icon to status bar (needs improviment)
+ Start adding flags (thanks to famfamfam.com for the icons)
. 0.0.1.4
+ Option to show all wrong words in menu
* Fix for check while selecting
+ Added one more codepage to list of known ones
. 0.0.1.3
* Fix for disable in context menu
* Fix to not change fnt settings in tabSRMM (only underline is changed - can't do anything about it)
* Fix to ignore char when holding CTRL
. 0.0.1.2
* Fix in options
+ Added hwndOwner param into SPELLCHECKER_POPUPMENU struct
. 0.0.1.1
+ Don't check if field is read-only
* Fix for services
. 0.0.1.0
+ Auto replace
. 0.0.0.9
* Fix for auto-replace
+ Parse max 3 lines when typing (to speed a little)
. 0.0.0.8
* Fix for strange things
. 0.0.0.7
+ Unicode version (should fix encoding problems)
+ Better way to handle typing
+ Underline type
+ langpack txt
* Fixes
. 0.0.0.6
+ Try to guess contact dict language from spoken language in contact setting
* fix for srmm bkg color
. 0.0.0.5
+ Per contact dictionaries
+ Option to get dict from tabSRMM keyboard locale
. 0.0.0.4
+ More changes in srmm interface
+ Better marking of words
* Changed tabSRMM to new interface and made it handle WM_CONTEXTMENU
. 0.0.0.3
+ Added generic interface for SRMMs
* Changed srmm patch to this interface
+ Created scriver patch using this interface
. 0.0.0.2
+ Added support for SRMM
* Changes in options dialog (thanks sefo and Chudilo)
- Removed auto support for SRMMs (it didn't worked)
. 0.0.0.1
+ Initial version

Download
Ansi: spellchecker.zip - pdb
Uniode: spellcheckerW.zip - pdb
Latest Version
Spell Checker 0.1.0.2
Sources
SVN at https://developer.berlios.de/projects/mgoodies
License
GPL
Reader Comments
Someone needs to modify nCovers++ for it to support spell checker. I could try to do it, but it isn’t open source, so I can’t. You need to request it to the developer of nConvers++.
I see.
[...] Plugin zatím není umístÄ›n na oficiálních stránkách Mirandy. Budeme se tedy muset spokojit se stránkami autora, kde je ovÅ¡em jeho funkÄ?nost velice kvalitnÄ› popsána. Pokud chcete aktuální verzi pluginu stáhnout, použijte tento odkaz pro Unicode a tento pro ANSI verzi. Plugin bude fungovat s tabSRMM nebo Scriverem (ANSI verze), pÃ…â„¢ípadnÄ› lze použít upravené výchozí SRMM, které má autor na stránce ke stažení. [...]
I have no idea what the above comment means…
This site is on .ru zone, so I guess I could use russian?
ØÑ?ÿþûь÷ую Miranda 0.6.8, unicode. tabSRMM ÿûðóøý ýõ òøôøт, ò÷Ñ?тыù þтÑ?юôð ÿðтчõýыù srmm Miranda ÷ðóруöðть ýõ хþчõт (ÿрþÑ?тþ øóýþрøруõт ø ò Ñ?ÿøÑ?úõ ÿûðóøýþò ýõ þтþñрðöðõт). ßрø Ñ?тþü specllchecker-þÿцøø ò ýðÑ?трþùúðх ÿрøÑ?утÑ?тòуют. Ã’ чõü üþöõт ñыть ÿрþñûõüð?
ßрþшу ÿрþщõýøÑ?, ýðшõû þшøñúу (ôуüðû, чтþ from build 0.7 Ñ?тþ ýþüõр òõрÑ?øø Ñ?ðüþóþ tabSRMM, ð ýõ development-ñøûô üøрðýôы).
Sorry, I don’t understand russian, just English and Portuguese
Well, this is already doesn`t matter, but just for your information…
Spell checker plugin doesn`t worked for me on Miranda 0.6.8 with tabSRMM. The problem was that I thought that phrase “Latest version (from build #0.7) of tabSRMM already do so” is about tabSRMM plugin itself (and I had tabSRMM version > 1.0), but later I figured out that you mean Miranda 0.7 developers build. After replacing my old tabsrmm.dll with one from latest beta-build spell checker works ok.
Also on unicode 0.6.8 build Miranda ignore your patched srmm.dll and do not load it (this patched dll is for 0.7 also?)
And thanks for great plugin! I prefer to use grammatically correct language but I`m to absentminded to do it without spell checker ![]()
Yeap, 0.7 is the miranda version, and the srmm is from the 0.7 miranda too
Hi Dude!
Your plugin is awesome!
*Two Thumbs Up*
But the Dictionaries (*.dic) files are very big and due to their consitancy (text only) it would make sense to compress the dictionaries. This would requiere Spellchecker to read xyz compressed dicitionaries (no problem: there are so many free compression libraries, choose one).
My suggestions for the next versions are:
- Compressed Dicionaries (zip,tar whatever)
- Better Autocorrection (realtime)
- Autocompletion feature
Oh thank you dude, for this pluggy
hope ya realize some of my requests
This is just what I was looking for - thanks for the effort and work!
Seems to work fine with 0.7 alpha build 24 ![]()
1) whether It is impossible to use for check MS Office API??
2) to Add an option that it was impossible to send the message while all errors will not be corrected.
1) I do not intend to support Office API
2) Not on my list too (don’t even know if it is possible without changing *srmm plugins)
THANK YOU!
This is a wonderful plugin.
It works fine! Thanks from Russia.








What about nConvers++? I use this message plugin instead of *srmm. How can I use your very useful spellchecker?