There is a minor issue in non-compiled dictionaries: the last word in the list won't be recognized unless a new empty line (the end of a line character) is added at the very end of the wordlist. Thus, when creating a dictionary, make sure you have an empty line added at the end of the document. 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 a 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. 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. Compile Custom Dictionary on Windows Compile Custom Dictionary on Linux There is a minor issue in non-compiled dictionaries: the last word in the list won't be recognized unless a new empty line (the end of a line character) is added at the very end of the wordlist. Thus, when creating a dictionary, make sure you have an empty line added at the end of the document. 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. 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 scayt_customDictionaryIds: 'DicId' WSC Dialog plugin for CKEditor 4 (for v. less than 5.18.0.0) wsc_customDictionaryIds: 'DicId' WProofreader add-on for RTEs and HTML controls If you have or plan to run many copies of WebSpellChecker Server in your infrastructure, and your infrastructure is dynamic (for example, you need to add or terminate the servers depending on the workload), you may want to create a centralized folder with custom dictionaries to store them in a permanent location. There is no default functionality available for this. However, we can share the approach we have already implemented in the Cloud version. Follow these steps:3. Create custom dictionary
3.1. Create custom dictionary for default language (for the WebSpellChecker version less than 5.24.0.0)
Option A. Plain textual dictionary
<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
AppServerX.exe -compileCustDict CustomDictionaries/custom_dictionary_name.txt en_US
./AppServerX -compileCustDict CustomDictionaries/custom_dictionary_name.txt en_US
<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 Hunspell-based language (for the WebSpellChecker version 5.24.0.0+ for all languages)
<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 app
WebSpellChecker API custom_dictionary=DicID 5. Create shared custom dictionaries
Now each WebSpellChecker application located on different servers use the same Git repository for global custom dictionaries.
All your servers will now execute the 'git pull' command and will use updated Custom Global dictionaries.
CustDictConfig.xml
CustDictConfig.xml
CustDictConfig.xml