Multi-language speller and the SpellingReform

SpellCheck is an interesting feature in Editing and it has evolved quite a bit. In earlier versions, the spellcheck on the RichTextBox and Textbox would look at the lang property on the control. However, now in the case of RichTextBox the input language is determined and the appropriate speller is used. So for instance I type in "dogf" in English and then type the same with the Keyboard input being German, then for both the words the choices are diferent because 2 different spellers are at work. Thats a very nice enhancement when you compare it with MS Word which can have only one speller working at a time :)

When it comes to TextBox, the speller is based on the input language set on the control. In earlier versions this defaulted to English but now we default it to the input language. So if the Keyboard input language is German and the textbox is created, then the German speller would work. However, if we change the input language once the control is created the control's language property does not change and so the speller remains intact.

An interesting feature on SpellCheck is the SpellingReform property. This can have 3 values corresponding to SpellCheck.SpellingReform = PreReform/PostReform/PreAndPostRefirm. This setting is not aplicable to English but is useful for the French and German languages which use these settings.

An example of this is the word: règlemente in French settings. This word is shown as a spelling error with PreReform but is not an error in PostReform.