1. Overview

The User Dictionary is a special functionality that is aimed at the end users of web-based system where the WebSpellChecker products are integrated. It allows each end user to create personal dictionaries with custom words (complex words, acronyms, proper names, etc.) and use them while working with the system. Going further, all the words added to a personal dictionary will not be considered as misspellings, and they will also be available in the suggestions list. 

By default, all words added to the personal dictionary are stored in the browser local storage on the user side. As soon as the user creates a new dictionary, all new words and the words from the browser local storage will be added to this dictionary and stored on the system server. It allows the user access this personal dictionary from different browsers and machines (or devices) while working with the system. Thus, users are not limited by one particular browser on their side as in case with the words stored in the browser local storage.



2. User Dictionaries UI Overview

2.1. Personal User Dictionaries in WProofreader

To access personal user dictionaries in WProofreader: 

  1. Locate the orange badge in the lower-right corner of your web application with integrated WProofreader and hover your mouse over it.

  2. In the menu which appears, click a button with gears. 

  3. In the WProofreader dialog which opens, navigate to the WProofreader Settings > Dictionaries options group. 


The personal user dictionary can be managed via simple user interface of the Settings dialog on the Dictionary tab. It allows users to create personal dictionaries with custom words (complex words, acronyms, proper names, etc.) and use them while working with the system. All the words added to a personal dictionary will not be considered as misspellings and these words will also be available in the suggestions list. The user can look through the full list of the words that have been added to this dictionary and also manage the words list. The words can be added either from using a context menu, Add word command or directly on the Dictionary tab.

2.2. Personal User Dictionary in SCAYT Plugin for CKEditor 4

To add the words to the personal user dictionary in SCAYT plugin for CKEditor 4:

  1. On CKEditor toolbar locate and click the ABC icon. In the dropdown menu, select Dictionaries.
  2. The SCAYT dialog opens with the Dictionary tab selected. 
  3. Click the Dictionary Preferences button.
  4. Type the new dictionary name and click either Create button to create a brand new dictionary or click Connect to connect with already existing server user dictionary.
  5. Click OK to save your changes.

SCAYT Plugin for CKEditor 4 Dictionaries tab

Now all new words are added to the browser local storage. If there are any words which have already been added while working with it, these words are added to a newly created dictionary. Note that this dictionary is available for a particular user who has created it and knows the name of dictionary.

3. Predefined User Dictionary

You have an option to set a predefined user dictionary for your end users. With such an approach all the words added using Add word by your end users will be saved and stored in the dictionary that you predefined. Just add the User Dictionary parameter and specify your predefined dictionary name as a value.

Below you can find a table with the names of User Dictionary parameter by product type:

Product Integration

User Dictionary Parameter

SCAYT plugin for CKEditor 4

scayt_userDictionaryName

WSC plugin for CKEditor 4

wsc_userDictionaryName

SCAYT plugin for Froala EditoruserDictionaryName

WProofreader

userDictionaryName

3.1. Example of Setting up a Predefined Personal User Dictionary in WProofreader

For example, to predefine  a personal user dictionary in WProofreader, follow the procedure described below:

     1. Initialize WProofreader using the procedure described in Get Started with WProofreader Server (autoSearch) guide.

     2. Add the userDictionaryName option with a name of dictionary as shown below.
<script> 
	window.WEBSPELLCHECKER_CONFIG = {
		... 
		userDictionaryName: 'predefineduser_dictionary',
		...
	}; 
</script>

     3. To disable the dictionary preferences UI for your users, specify the disableDictionariesPreferences option as true as shown below.

<script>
	window.WEBSPELLCHECKER_CONFIG = {
		....
		userDictionaryName: 'predefined_user_dictionary',
		disableDictionariesPreferences: true, 
		...
	};
</script>

After performing this step, the highlighted area of the Dictionaries options group becomes disabled for WProofreader users. 

3.2. Example of Setting up a Predefined User Dictionary in SCAYT plugin for CKEditor 4

To set up a predefined user dictionary in SCAYT plugin for CKEditor 4:  

  1. Initialize SCAYT plugin for CKEditor. For details, refer to Configuring SCAYT Plugin for CKEditor 4 guide.
  2. Along with the rest of parameters for SCAYT plugin in CKEditor config.js file, add scayt_userDictionaryName parameter to it as shown in the example below:
CKEditor config.js file
...
config.scayt_autoStartup = true;
config.grayt_autoStartup = true;
config.scayt_sLang ="en_US";
config.scayt_userDictionaryName="user_dictionary_name";
...

A predefined user dictionary is now available in WProofreader and SCAYT plugin for CKEditor 4.

4. Manage User Dictionary on Server

WebSpellChecker Server provides a list of options for advanced User Dictionaries management.

4.1. Location of User Dictionaries on Server

By default, all created personal user dictionaries are saved and stored in the UserDictionaries folder: <WebSpellChecker_Installation_Path>/AppServer/UserDictionaries. These dictionaries are saved as simple text files in *.txt format with UTF-8 encoding. 

4.2. User Dictionaries Web API Commands 

There is a list of the Web API commands available that allows administrators to manage the User Dictionary functionality. The full list of Web API commands for User Dictionary can be found in the Using WebSpellChecker Server Web API#4.UserDictionaryCommand manual.

5. Set up User Dictionary on a Remote Server 

There is a special mechanism available for the User Dictionary functionality which allows working with personal user dictionaries on the environment running under a Load Balancer. It is aimed at synchronizing the work of the User Dictionary functionality among a number of WebSpellChecker Servers running at the same time.

In a nutshell, with such an approach, one of WebSpellChecker Servers should be defined as a User Dictionary Server. All personal user dictionaries created by end users will be stored only on this particular server. The rest WebSpellChecker Servers will be considered as User Dictionary Clients which will access a defined User Dictionary Server in case of any operations with User Dictionary functionality. 

This approach can be easily configured in your environment. Just follow the step-by-step instructions below.

5.1.  Define and Configure User Dictionary Server

On this step you need to assign a User Dictionary Server role to one of WebSpellChecker Servers. The rest application servers will be User Dictionary Clients that will be connected with the assigned User Dictionary Server. Here are the steps that need to be performed to configure a User Dictionary Server.

Stage 1: Editing AppServerX.xml file

Edit in AppServerX.xml file to specify a unique port number for User Dictionary Server. To do so:

  • Stop AppServer before editing the AppServerX.xml file. Refer to Main AppServer Commands guide, Stop AppServer section for details.
  • Open <WebSpellChecker_Installation_Path>/AppServer/AppServerX.xml of the WebSpellChecker Server that will be used as a User Dictionary Server address.
  • Locate the <Port> tag and change the default port value to any available (e.g. 2882) as shown below.
<Port>2882</Port>

Stage 2: Editing the ssrv.ini file

This step is required when you have selected WebSpellChecker Dialog for CKEditor 4 product (which is enabled via the FastCGI module) during the setup process.

To edit the ssrv.ini file:

  • 1. Open the <WebSpellChecker_Installation_Path>/WebComponents/WebInterface/script/ssrv.ini file.
  • 2. Locate appserver_port parameter and change the default port value to 2882 (the same as on the previous step). 
appserver_port = 2882

3. Restart your web or Java application server after the changes made to the ssrv.ini file.

5.2. Configure User Dictionary Clients

As soon as the User Dictionary Server is defined, the next step is configure other WebSpellChecker Servers that will be considered as User Dictionary Clients.

  • Stop AppServer before editing the AppServerX.xml file. Refer to Main AppServer Commands guide, Stop AppServer section for details.
  • Open <WebSpellChecker_Installation_Path>/AppServer/AppServerX.xml of each WebSpellChecker Server that should work as a User Dictionary Client.
  • Locate the <UserDictServers> tag.
  • In the tag, set the <EnableUserDictServer> tag value as true and specify the default <UserDictHost> tag providing a host address and port number of a designated User Dictionary Server.
<UserDictServers>
	<EnableUserDictServer>true</EnableUserDictServer>
    <UserDictHost>127.0.0.1:2882</UserDictHost>
</UserDictServers>
  • As soon as the modifications are completed, restart the WebSpellChecker Application Server (AppServer) for the changes to take effect. Refer to Main AppServer Commands guide, Start AppServer section for details.

Actions described in Step 2 must be performed for each copy of the WebSpellChecker Server which is working as a User Dictionary Client.

5.3. Verify the Work of Remote User Dictionary

Follow the steps below to verify the work of the remote User Dictionary Server.

  • Go to WebSpellChecker Samples shipped with the installation package:

  • Open WProofreader for Rich Text Editors, for example, CKEditor 4 with WProofreader enable.
  • Create a sample user dictionary and add some words to this dictionary. To do so:  
    • Locate the orange badge in the lower-right corner of your web application with integrated WProofreader and hover your mouse over it.
    • In the menu which appears, click an icon with gears.
    • In the WProofreader dialog which opens, navigate to the Dictionaries options area, type a new dictionary name, for example, "Test" and click Create.
    • In the Add new word area, type some words to be added to this newly created personal user dictionary and either press Enter or click the Add word button.
  • Navigate  to User Dictionaries folder (UserDictionaries) of each copy of the WebSpellChecker Server that is configured as a User Dictionary Client. Make sure that these folders don’t contain a newly created user dictionary named "Test". Your dictionary and any words that you have added to it must be located in a folder with the same name on a User Dictionary Server only.