> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# LanguageDatabase Object (ILanguageDatabase Interface)

This object provides means for performing advanced operations with recognition languages. It allows you to work with the whole set of ABBYY FineReader Engine predefined languages, and also to import custom languages. This object allows you to create compound recognition language of several predefined languages and/or imported custom languages.

<Warning>
  Visual Components are currently only supported for Windows.
</Warning>

You may combine the loaded custom languages with each other and with predefined languages and use them for text recognition. You may choose not to load any custom languages into the language database. In this case, only the predefined languages will be available.

In Windows, Visual Components, with their user interface, provide relatively simple way to create custom recognition languages. See the procedure of creating and importing recognition languages in the description of the [ILanguageDatabase::LoadFrom](/fine-reader/engine/api-reference/language-related-objects/languagedatabase/loadfrom-method) method.

<Note>
  For Linux and macOS, you can create custom recognition languages in the Windows version of ABBYY FineReader Engine.
</Note>

## Properties

<table><thead><tr><th><p><strong>Name</strong></p></th><th><p><strong>Type</strong></p></th><th><p><strong>Description</strong></p></th></tr></thead><tbody><tr><td><p><strong>Application</strong></p></td><td><p><strong><a href="/fine-reader/engine/api-reference/engine-object-iengine-interface">Engine</a></strong>, <a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties#readonly_properties">read-only</a></p></td><td><p>Returns the <strong>Engine</strong> object.</p></td></tr><tr><td><p><a name="dictionaryextensionspath" /><strong>DictionaryExtensionsPath</strong></p></td><td><p><strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">BSTR</a></strong></p></td><td><p>Specifies the full path to the folder with dictionary extension files (\*.ame). These files contain words added to the dictionary by the user; they can only be created for languages that already have standard dictionary support. These files can be created in ABBYY FineReader, where they are called user dictionaries. ABBYY FineReader stores extensions of standard dictionaries in the <strong>%appdata%\ABBYY\FineReader\15\FineReaderShell\UserDictionaries</strong> folder.</p><Note>You can edit dictionary extension as a user dictionary via the <a href="/fine-reader/engine/api-reference/language-related-objects/dictionary">Dictionary</a> object, which can be received with the help of the OpenDictionaryExtension method.</Note><p>By default, this property contains the path to the <strong>UserDictionaries</strong> folder, located in the FineReader Engine data folder:</p><ul><li><strong>Linux</strong> for automatic installation:<strong> /var/lib/ABBYY/SDK/12/FineReader Engine</strong></li><li>macOS for automatic installation:<strong> /Library/Application Support/ABBYY/SDK/12/FineReader Engine</strong></li><li><strong>Windows</strong>: <a href="/fine-reader/engine/distribution/distribution-windows/distribution-kit#finereader_engine_data_folder">FineReader Engine data folder</a></li></ul></td></tr></tbody></table>

## Methods

| Name                                                                                                                                        | Description                                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CreateCompoundTextLanguage](/fine-reader/engine/api-reference/language-related-objects/languagedatabase/createcompoundtextlanguage-method) | Creates the [TextLanguage](/fine-reader/engine/api-reference/language-related-objects/textlanguage) object of one or more predefined and/or custom languages included in the language database.                   |
| [CreateNewDictionary](/fine-reader/engine/api-reference/language-related-objects/languagedatabase/createnewdictionary-method)               | Creates a new empty user dictionary at the specified location and returns interface pointer of the [Dictionary](/fine-reader/engine/api-reference/language-related-objects/dictionary) object associated with it. |
| [CreateTextLanguage](/fine-reader/engine/api-reference/language-related-objects/languagedatabase/createtextlanguage-method)                 | Creates the [TextLanguage](/fine-reader/engine/api-reference/language-related-objects/textlanguage) object.                                                                                                       |
| [LoadFrom](/fine-reader/engine/api-reference/language-related-objects/languagedatabase/loadfrom-method)                                     | Loads custom languages into the language database.                                                                                                                                                                |
| [OpenDictionaryExtension](/fine-reader/engine/api-reference/language-related-objects/languagedatabase/opendictionaryextension-method)       | Provides access to the dictionary extension of the standard dictionary for the specified language. The path to the dictionary extension is defined by the DictionaryExtensionsPath property.                      |
| [OpenExistingDictionary](/fine-reader/engine/api-reference/language-related-objects/languagedatabase/openexistingdictionary-method)         | Opens an existing user dictionary for editing.                                                                                                                                                                    |

## Output parameter

This object is the output parameter of the [CreateLanguageDatabase](/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods) method of the [Engine](/fine-reader/engine/api-reference/engine-object-iengine-interface) object.

## Samples

<Accordion title="C# code">
  ```csharp theme={null}
  FREngine.IEngine engine;
  // Use LanguageDatabase to create a compound text language
  FREngine.ILanguageDatabase langDatabase = Engine.CreateLanguageDatabase();
  FREngine.ITextLanguage textLanguage =
   langDatabase.CreateCompoundTextLanguage( "English,German" );
  ```
</Accordion>

The object is used in the following code samples:

* Linux: [CustomLanguage](/fine-reader/engine/guided-tour/samples#customlanguage), [CommandLineInterface](/fine-reader/engine/guided-tour/samples#commandlineinterface)
* Windows: [CustomLanguage](/fine-reader/engine/guided-tour/samples#customlanguage), [CommandLineInterface](/fine-reader/engine/guided-tour/samples#commandlineinterface); and demo tools: [BatchProcessingRecognition](/fine-reader/engine/guided-tour/samples#batchprocessingrecognition), [MultiProcessingRecognition](/fine-reader/engine/guided-tour/samples#multiprocessingrecognition), [PDFExportProfiles](/fine-reader/engine/guided-tour/samples#pdfexportprofiles)

## See also

[Working with Languages](/fine-reader/engine/guided-tour/advanced-techniques/working-with-languages)
