Breaking Changes
1. New Application Server v5.0 for WebSpellChecker Server
The new version is built based on new AppServer 5.0 which replaces the previous version – AppServer 4.0. With AppServer 5.0 we got rid of old manual code and replaced it modern and supported frameworks and libraries such as POCO libraries. Such an update allowed us to enhance the overall application security and performance, prevent possible memory leaks, and simplify further application development and support.
Moreover, the service requests for spell and grammar checking using products based on SpellCheckAsYouType (SCAYT), WebSpellChecker Proofreader and Web API can be processed directly by AppServer. Previously, all such requests before reaching AppServer were processed by quite old FastCGI component and only then were sent to AppServer. Getting rid of the intermediate step with FastCGI component for newer products simplified the process of the application configuration and significantly sped up the requests processing time.
Nevertheless, other integrations that are based on the WebSpellChecker Dialog (WSC )such as WSC for Editable Controls, WSC plugins for CKEditor and TinyMCE still require presence and configuration of the FastCGI component. Visit the WebSpellChecker Server Application Architecture Diagram page to acknowledge with the updated architecture of the application.
2. Unified WebSpellChecker Application Core – WSCBundle
We have combined bunch of separate applications which used for various integrations with rich text editors and plain HTML editable elements into a single unified bundle application. Previously each integration of our SpellCheckAsYouType (SCAYT) product with CKEditor, TinyMCE, Froala Editor, and HTML editable controls required specifying paths to separate applications JS files. Now we have a single backward compatible application JS file (wscbundle.js) that can be used instead for all these integrations.
In scope of this change, the following updates have been introduced:
- SpellCheckAsYouType (SCAYT) for Editable Controls is replaced with a new product called ”WebSpellChecker Proofreader”. At the moment WebSpellChecker Proofreader fully inherits the functionality of SCAYT.
Going further WebSpellChecker Proofreader will be the main product of WebSpellChecker and will combine functionality of old SCAYT and WebSpellChecker Dialog (WSC) products. Depending on the preferences end users will be able to proofread as they type and/or proofread in a dialog accordingly. Moreover, WebSpellChecker Proofreader will have a special auto-detection mechanism which will be auto-detecting all the editable areas on the page and enabling proofreading functionality for end users.
- New API for WebSpellChecker Proofreader. The new API inherits the main part options and methods of SCAYT API and compatible. However, some of the options names are changed to make them more precise. Check out our new API for WebSpellChecker Proofreader.
3. New Multi-language Grammar Engine
3.1. Enhanced American and English Grammar Checking
As a part of new AppServer 5.0, the old grammar engine has been replaced with an open-sourced multi-language cross-platform grammar engine – LanguageTool. LanguageTool provides more capabilities, better grammar checking results and available for wider range of languages. With release 5.0.0, advanced grammar checking option is available for American and British English.
In our next release 5.0.1, we will extend the grammar support to 14 languages from the default languages list which comes with the default package. You may check the grammar support availability on the Languages and Specialized Dictionaries Support page.
3.2. Cross-platform Grammar Support
In the previous versions of WebSpellChecker Server, up to version 4.9.5, the grammar checking option was available only for installations on Windows-based environments. In order to enable grammar option on Linux-based environment, our customers were required to configure the Wine tool, a compatibility layer capable of running Windows applications on Linux-based environments. Now grammar can be also used on the servers running on Linux-based environments without these additional steps.
The new grammar engine requires Java Runtime Environment (JRE) with Java 8+. Visit WebSpellChecker System Requirements to lean about the additional software and infrastructure you will need to run WebSpellChecker Server.
Enhancements 1. Structured and Documented WebSpellChecker Server Parameters
1. Structured and Documented WebSpellChecker Server Parameters
We have structured and documented all the available parameters of WebSpellChecker Server Application listed in the AppServerX.xml configuration file. These parameters can be used for advanced management of WebSpellChecker Server and adjusting its default settings in accordance with your needs and requirements. Visit the Configuring WebSpellChecker Server Parameters page, to explore the full list of available parameters.
- For convenience, all the parameters are sorted by categories and have the next structure: Tread, Memory, Connection, License, FailSafety, Log, SpellCheckEngine, GrammarCheckEngine, ThesaurusEngine, Dictionaries.
- New and updated parameters are marked with appropriate status labels (NEW | 5.0.0, UPDATED | 5.0.0).
2. Language Dictionaries Updates
2.1. New Additional Language
- Added support of the Uzbek Latin language. Check the quality of spell checking on the Uzbek Latin demo page.
2.2. No Longer Supported Languages
- Manx – Isle of Man (gv_GB) language is no longer available as an additional language.
- Interlingua (ia_XR) language is no longer available as an additional language.
2.3. Extended and Improved Language Dictionaries
- Georgian language dictionary has been enlarged with new words. Check the quality of Georgian spell checking on the Georgian language demo page.
- Swedish language dictionary has been enlarged with two new words: “styrketräning” and “städfirma”.
- Added missing word “Ensure” to the American/British/Canada English language dictionaries.
2.4. Updated Enchant & Hunspell Libraries
The versions of the Enchant and Hunspell libraries that are additionally used for spell checking have been updated to the version 1.6.1. and 1.6.2+ accordingly.
3. Revised Logging Mechanism
3.1. New Logging System
The old manually written logging system has been replaced with a new one from POCO libraries. You may find more information about existing parameters for logs managing in the Configuring WebSpellChecker Server Parameters#Log section.
3.2. Updated Logs Structure in AppServer
As a part of the logging system replacement, the structure of AppServer logs has been also changes. Up to the version 4.9.5, all the logs are recorded into a single log file AppServerX.log. Starting version 5.0.0, there is a separate sub-directory “Logs” under the AppServer directory. Logs directory contains one main log file (“Main.log”) and a list of child log files (e.g. “Child_0.log”, “Child_1.log”).
4. Windows and Linux Installers
4.1. Updated License Activation on Windows and Linux
On the first step of the license activation process, the system will ask to specify a valid “License Ticket ID” instead of the previous “User Name” value. License Ticket ID can be obtained either on the request of a trial evaluation copy or purchase of permanent server licenses. Visit the Licensing WebSpellChecker Server page to find instructions how to activate a license for WebSpellChecker Server Application.
4.2. Required Software License Agreement Step
We have updated terms and conditions of our standard Software License Agreement and Software Maintenance Agreement. Thus, before proceeding with the installation of WebSpellChecker Server, it is required to read and accept the updated terms and conditions of WebSpellChecker Software License Agreement. If you do not agree to these terms, you are not allowed to install or use the WebSpellChecker Products.
On the first step of WebSpellChecker Server installation for both Windows and Linux-based environments, you will find a short preamble with the references to our Software License Agreement on our website that must be read carefully and accepted.
5. WebSpellChecker Floating License Mechanism
5.1. WebSpellChecker License Server on Windows
Now the License Server for WebSpellChecker Server Application can be installed and running on Windows-based environments. Check the Floating Licensing page to find more information about floating licensing.
5.2. Changed Installation Directories
The default installation directory for License Server has been changed from:
Linux-based environments: /opt/WebSpellCheckerMaster –> /opt/WSC/LicServer
Windows-based environments: /WebSpellCheckerMaster –> /WebSpellChecker/LicServer
6. SCAYT & WebSpellChecker Proofreader
6.1. SCAYT & WebSpellChecker Proofreader Badge Button
A while ago we implemented a separate badge button component for SCAYT product. It was initially designed to simplify the SCAYT context menu view and make the focus on the most important actions for end users while they are proofreading. All the auxiliary action items such as settings, enable/disable, etc. will be moved to the easily-accessible badge button. If the badge button is enabled (“enableBadgeButton:true”), end users will see a small orange icon located at the right bottom section of editable area. On hover, an end user will be able to open settings dialog or enable/disable SCAYT.
6.2. Changed Number of Suggestions
The number of suggestions in the more suggestions section in the default view has been set to five (5). Thus, in total, end users will see only eight (8) suggestions, three (3) main suggestions and five (5) more suggestions. The most relevant suggestions are usually at the top of the suggestion list. Administrators of the system can still manage the number of suggestions to be shown to end users using appropriate parameters.
- By default the engine gives maximum eight suggestions for each misspelled word. Administrator of the application can change the maximum number of suggestions using MaxSuggestions parameter in the AppServerX.xml configuration file.
Changing MaxSuggestions to much higher number of suggestions may lead to significant performance decrease of the application.
- Separately, administrators can manage the number of suggestions shown to end users. Depending on the integration, administrator can change the default number of suggestions shown in the main suggestions section and in the more suggestions section using appropriate API options/parameters for each of the integrations. For example, there is a separate option/parameter moreSuggestionsCount for WebSpellChecker Proofreader, that can be used for managing the number of suggestions shown in the more suggestion section.
6.3. Updated User Manual
As a part of introduction of new product – WebSpellChecker Proofreader – based on the SpellCheckAsYouType (SCAYT) product, we have updated previous version of SCAYT User Manual to a new one. As it was already mentioned, at the moment there is no dramatic difference between SCAYT for Editable Controls and WebSpellChecker Proofreader. However, going further we will be introducing more and more new features in WebSpellChecker Proofreader.
Visit WebSpellChecker Proofreader User Manual.
Bug Fixes
- GitHub #141: SCAYT plugin for CKEditor: SCAYT throws Uncaught Error: Error in Rangy WrappedRange module: createRange(): Parameter must be a Window object or DOM node
- GitHub #153: SCAYT plugin for CKEditor: Chrome. Correcting word in widget moves focus to another editable
- GitHub #155: SCAYT plugin for CKEditor: SCAYT throw an error on IE8 and doesn’t work
- GitHub #156: SCAYT plugin for CKEditor: SCAYT doesn’t seem to work on IE10
- [WP-1608] – SCAYT plugin for CKEditor: After some text is drag & dropped, markup is not refreshed for grammar problems
- [WP-1634] – WSC plugin for CKEditor: Request to FastCGI fails when user tries to replace word with non-English characters with a proper suggestion
- [WP-1560] – SCAYT Core: CTRL+Z removes focus in FireFox
- [WP-1518] – SCAYT for Editable Controls: Backspace after Enter removes markup
- [WP-1579] – SCAYT for Editable Controls: No focus set on the input filed of Dictionary tab
- [WP-1581] – SCAYT for Editable Controls: Dictionary preferences are not keyboard operable
- [WP-1601] – SCAYT for Editable Controls: User Dictionary: Incorrect message is shown if user tried to create a dictionary with space(s) instead of name
- [WP-1652] – SCAYT for Editable Controls: Context menu doesn’t work with “enableOnTouchDevices = true”
- [WP-1753] – SCAYT for Editable Controls: Spell check and grammar check does not work on touch devices
- [WP-542] – Web API: Duplicated misspelled words result in duplicated response
- [WP-562] – Web API: Wrong position result is returned if a misspelled word has number
- [WP-574] – Web API: User Dictionary: No validation for an empty parameter “new_name”
- [WP-1247] – Web API: User Dictionary: “getdict” command doesn’t return “wordlist”
- [WP-1444] – WebSpellChecker Installer (Linux): J2EEServersComponents shouldn’t be installed if Apache HTTP Server is chosen
- [WP-1460] – WebSpellChecker Installer (Windows): The default port isn’t provided an a default option (e.g. 80/8080, 443/8443)
- [WP-1556] – Some static resources fail to load on Apache Tomcat due cross-origin policy. Added Access-Control-Allow-Origin to all files which are requested by Apache Tomcat
- [WP-1677] – Installation of WSC 4.9.5 under Windows Server 2012 does not set handlers for web.config file and causes 404 error when trying to access *ssrv.cgi