Spell Checker

This is a spell checker for message windows. It also allow to configure replacements to auto-correct words.

It uses Hunspell to do the dirty work. Hunspell is the spell checker used by OpenOffice, so it should have a good range of dictionaries. The 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 them at: http://wiki.services.openoffice.org/wiki/Dictionaries .
PS: This path is read only at startup, so changing it needs a restart of miranda.

Note that this plugin does NOT work with SRMM, because it doesn't have a rich edit in the input field. I've done a moded version, but it is old and I'm not sure if it still works:
Ansi: http://pescuma.org/miranda/srmm.zip
Unicode: http://pescuma.org/miranda/srmmW.zip
Patch: http://pescuma.org/miranda/srmm.spellchecker.patch

It has an options page to set the default dictionary and some other options. It is at Message Sessions/Spell Checker .

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
These plugins have to call this services in other for the magic to happen. So, things like when the popup menu is show are handled by the calling plugin.

The flags: it supports 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:

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.

Needs Miranda 0.8

To report bugs/make suggestions, go to the forum thread: http://forums.miranda-im.org/showthread.php?t=11555

Changelog

. 0.2.6.0
  + improved support for UserInfoEx Plugin
  + added Updater support for Addons Page (pluginInfo.shortName didnt match Addons name due to separate Unicode/ANSI version)
  You will have to enable beta Versions in Updater again if you want beta versions
  + added error count to confirmation message
  + added support for Miranda IM path API
  the new default path for custom dictionaries is now %miranda_userdata%\Dictionaries
  This change allows per-profile-dictionaries
  IMPORTANT: You may have to move your custom dictionaries, as these are not moved automatically!!
  IMPORTANT: You also need at least Folders plugin 0.1.5.1 or newer!!
  * Updated some header files
  ! Fixed a bug with translated hotkeys (Fixes issue 115)
  - removed PLUGININFO support, since it is obsolete
  * internal Unicode transition
  * increased options dialog size a bit for translators
  * Fixed lookup of Language in UserInfo module of metacontacts
  * updated Hunspell library to version 1.3.1

. 0.2.5.0
  * Removed space in frame names in options
  * Added notification if using SRMM (closes issue #92)
  * Fix for autoreplacement of URL like texts (closes issue #127)
  * Better speed (but it is not "underscore-friendly" by default anymore)
  + Added hotkey to disable spell checker in dialog window (closes issue #132)
  * Fix icons in Vista

. 0.2.4.0
  + Applied "patch" from miranda-avd with x64 code (but no build using it yet)
  * Use default input language instead of keyboard layout to get language name (fixes issue #124)
  * Ctr-Z is now working again (fixes issue #125)

. 0.2.3.0
  + Option to don't send message with error
  * Better getting language name for non-english windows

. 0.2.2.0
  + Allow replacements that only change case
  + Ignore words with numbers
  * Fix for last char in a wrapped word
  * Enable replacements is now on replacement dialog

. 0.2.1.0
  * Fixes for translation
  * Better performance for backspace and delete
  * Keep without redrawing when replacing text
  * Fix for some cyrilic letters

. 0.2.0.0
  + Allow editing of auto-replacements
  + Allow variables in auto-replacements
  + Better handling of URLs
  * Fix for a lot of replacements at same line
  PS: The auto-replacement files (*.ar) are now stored as UTF-8, so you may need to fix some old replacements

. 0.1.2.0
  + Play nicer with underlines in IRC (it's not perfect)
  * Creates custom dicts folder if don't exist
  * Fix for tabSRMM timeout ballon

. 0.1.1.0
  + Remove underline on send to avoid sending it to the contact (Fixes issue 101)
  + Use language set with UInfoEx
  * Force one last check before send to replace errors (Fixes issue 67)

. 0.1.0.5
  * Fix for ICQ contacts with languages

. 0.1.0.4
  * Fix for codepage

. 0.1.0.3
  + Updated to Hunspell 1.2.8
  * Fix for wordchar in utf8 (fixes French dict)

. 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
Unicode: spellcheckerW.zip - pdb

Latest Version

Spell Checker 0.2.6.0

Sources

SVN at https://developer.berlios.de/projects/mgoodies

License

GPL











Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

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

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 :D

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.

1.0.3 stopped to work with Russian dictionary – it shows wrong words as suggestions and doesn’t understand right ones. Screenshot: http://clip2net.com/clip/m10037/1232017390-clip-69kb.png

New version 0.1.0.3 doesn’t work with Russian dictionary. Fix it, please!

New version 0.1.0.3 ain’t working with Russian dic.

Version 0.1.0.4 fixes it

Thank you! Beautiful work!

I am interested in using this plug-in but cannot seem to get it to work. I unarchived everything to the correct directories, and in MIM settings I can see spellchecker.dll and its options. In my tabsrmm window though, I don’t see the spell check icon or any underlining/etc as seen in the screenshot on the page. I have spellchecker 0.1.0.4 , tabsrmm 2.0.0.1 , and MIM 0.7.14. Any ideas? thanks.

@ jason
Have you downloaded the plugin from here or from miranda file listing? The one from here has only spell checker, while the one in FL has also an english dictionary and flags icons.

If you downloaded from here, try to download a dictionary or use the zip from FL. If none work, please post at the thread at miranda forums that I’ll try to help you further

Your new version plug-in duplicates option auto-replacement in plugin autoreplacer.dll, but autocomplete function you do not. Why? Besides, auto-replacement has no settings, such as in autoreplacer.dll, will probably be better to merge these plug-ins, or make similar, so I can remove extra plug autoreplacer.dll. Best wishes to you.

@ traktor
It has this functionality for some time now, I’ve just added a GUI to it.

You said: “but autocomplete function you do not”. What is autocomplete function?

I do not intend to merge with autoreplacer, nor replace it. I’ve only added a gui to better edit auto-corrections that were already possible.

I love this plugin, but I think auto-replacement would be much more useful (to me, at least) if it was case-sensitive. As it is, I can’t use it to replace ‘i’ with ‘I’, capitalise the days of the week and other names, and so on. I’d love to see this implemented in the future.\n\nThanks for your work, though.

pescuma, autoreplacer.dll – plugin allows automatic replacement and additions of words during dialogue. Do not know how to deal with duplicate functionality now, when there are 2 menu auto replacement(spellchecker.dll and autoreplacer.dll) :( http://addons.miranda-im.org/details.php?action=viewfile&id=593

Thx for the plugin! \n\nIs it possible to set a option for ignoring case-sensitive? I often write in lower case, but the dicts contains the correct information about lower and upper case.

same here.. case-insenstive option would be nice for lower case only writers! thx

Could you provide the x64 build of this spell checker plugin here?
I can’t download the x64 binary anywhere.