1. Overview

The custom dictionary is a special mechanism that allows creating company-wide dictionaries that are intended to extend the vocabulary of the standard dictionary with custom words specific to your industry, domain, etc.

2. Custom Dictionary Format

There are two types of custom dictionary formats supported by the application: textual (*.tlx, *.txt) and native compiled (*.clx).

  • textual dictionary is stored in text lexicon files (*.tlx, *.txt). It has a simple structure where each line contains only one word.

The last line in such a file must be empty, otherwise the last term in the list won't be recognized by the engine.

  • native dictionary is a compiled version of a textual dictionary (*.clx). Compiling a custom dictionary into the native format will significantly improve the performance of the application especially when the number of terms in the dictionary is over several hundreds. 

3. Create Custom Dictionary

3.1. Create Custom Dictionary for Default Language

Option A. Plain Textual Dictionary

  • Open any text editor that is available on your system. 
  • Create a new wordlist in *.txt format with a so-called “ANSI” encoding which also might refer to the ISO 8859-1 standard, Latin alphabet No. 1 (ISO Latin 1) or Windows-1252 code page. Each new word in such a wordlist has to start from a new line. Also, it is recommended to sort the wordlist in alphabetical order. 
  • Place the newly created wordlist in <WebSpellChecker_Installation_Path>/AppServer/CustomDictionaries.
  • Open the CustDictConfig.xml file for editing.

  • Inside the <CustomerDb> </CustomerDb> tag, add a new Dictionary tag for your new dictionary: 

    • Dictionary DicId  a custom dictionary ID. It must be an unique digital number (e.g. “1”). Also, make sure that the CustDictConfig.xml file doesn't contain the same ID assigned for another custom dictionary.

    • FileName  a custom dictionary file name (e.g. custom_dictionary_name.txt).

    • LangShortName  a special short code for a default language (e.g. the language short code for the American English language is en_US). The full list of the default languages with their short codes is available here.

    • Description  a short custom dictionary description.

Here is an example of CustDictConfig.xml with two global custom dictionaries. One for American English and the other for British English.

CustDictConfig.xml
<CustomerDb>
	<Dictionary DicId="1">
	<FileName>custom_dictionary_name.txt</FileName>
	<LangShortName>en_US</LangShortName>
	<Description>An example of a plain textual custom dictionary for the American English language (en_US)</Description>
	</Dictionary>

	<Dictionary DicId="2">
	<FileName>custom_dictionary_name2.txt</FileName>
	<LangShortName>en_GB</LangShortName>
	<Description>An example of a plain textual custom dictionary for the British English language (en_GB)</Description>
	</Dictionary>

</CustomerDb>

Option B. Compiled Dictionary

Also, you may choose to create a compiled custom dictionary instead of a plain textual dictionary to improve overall performance of the application when working with huge custom dictionaries.

  • Open any text editor that is available on your system. 
  • Create a new wordlist in *.txt format with a so-called “ANSI” encoding which also might refer to the ISO 8859-1 standard, Latin alphabet No. 1 (ISO Latin 1) or Windows-1252 code page. Each new word in such a wordlist has to start from a new line. Also, it is recommended to sort the wordlist in alphabetical order. 
  • Place the newly created wordlist in <WebSpellChecker_Installation_Path>/AppServer.
  • Compile a previously created wordlist using the compileCustDict command with appropriate values for FileName and LangShortName parameters as shown below . A new compiled custom dictionary will be placed into <WebSpellChecker_Installation_Path>/AppServer/CustomDictionaries/.

Compile Custom Dictionary on Windows

  • Open Command Prompt –> Switch to <WebSpellChecker_Installation_Path>/AppServer/
  • Execute the next command: 
AppServerX.exe -compileCustDict CustomDictionaries/custom_dictionary_name.txt en_US

Compile Custom Dictionary on Linux

  • Open command line –> Switch to <WebSpellChecker_Installation_Path>/AppServer/
  • Run the next command: 
./AppServerX -compileCustDict CustomDictionaries/custom_dictionary_name.txt en_US
  • Go to the CustDictConfig.xml configuration file to verify if a new custom dictionary record has been written there. It will be added automatically by compileCustDict.
CustDictConfig.xml
<CustomerDb>
	<Dictionary DicId="2">
	<FileName>custom_dictionary_name.clx</FileName>
	<LangShortName>en_US</LangShortName>
	<Description>An example of a compiled custom dictionary for the American English language (en_US)</Description>
	</Dictionary>
</CustomerDb>

3.2. Create Custom Dictionary for Additional Language

  • Open any text editor that is available on your system. 
  • Create a new wordlist in *.txt format with UTF-8 encoding. Each new word in such a wordlist has to start from a new line. Also, it is recommended to sort the wordlist in alphabetical order. 
  • Place the newly created wordlist in <WebSpellChecker_Installation_Path>/AppServer/CustDictDir directory.
  • Open the <WebSpellChecker_Installation_Path>/AppServer/CustDictConfig.xml file.
  • Open the CustDictConfig.xml file for editing.

  • Inside the <CustomerDb> </CustomerDb> tag add a new Dictionary tag for your new dictionary: 

    • Dictionary DicId  a custom dictionary ID. It must be an unique digital number (e.g. “3”). Also, make sure that the CustDictConfig.xml file doesn't contain the same ID assigned for another custom dictionary.

    • FileName  a custom dictionary file name (e.g. custom_dictionary_name.txt).

    • Description  a short custom dictionary description.

    • LangShortName  a special short code for an additional language (e.g. the language short code for the Arabic language is ar_SA). The full list of the additional languages with their short codes is available here.


CustDictConfig.xml
<CustomerDb>
	<Dictionary DicId="3">
	<FileName>custom_dictionary_name.txt</FileName>
	<LangShortName>ar_SA</LangShortName>
	<Description>Custom dictionary for the Arabic language</Description>
	</Dictionary>
</CustomerDb>

4. Enable Custom Dictionary in Web Application

Depending on the product and where it is integrated, pass an appropriate custom dictionary parameter with a required dictionary ID (DicId) as a value on your web-page.

Product Integration

Custom Dictionary Parameter

SCAYT plugin for CKEditor 4

CKEDITOR.config.scayt_customDictionaryIds: 'DicId'

WSC Dialog plugin for CKEditor 4

CKEDITOR.config.wsc_customDictionaryIds: 'DicId'

SCAYT plugin for Froala Editor

customDictionaryIds: 'DicId'

 WProofreader (integration with HTML Editable Controls, WYSIWYG editors)

options.customDictionaryIds: 'DicID'