> ## 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.

# PredefinedLanguage Object (IPredefinedLanguage Interface)

This object represents a single predefined language from a collection of [ABBYY FineReader Engine predefined languages](/fine-reader/engine/specifications/predefined-languages). Predefined languages are languages that are supported by default. This object contains properties reflecting predefined language attributes, such as its external name, components and category. Property TextLanguage contains the corresponding text language.

## 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><strong>ExternalName</strong></p></td><td><p><strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">BSTR</a></strong>, read-only</p></td><td><p>Stores the external name of the predefined language. This name is localized and may be used in user interface. The value of this property depends on the current messages language (<strong><a href="/fine-reader/engine/api-reference/engine-object-iengine-interface">IEngine::MessagesLanguage</a></strong> property). For example if the messages language is English, then the name of the predefined language corresponding to the French, will be "French". If the messages language is French, then the name of the same predefined language will be "Français".</p></td></tr><tr><td><p><strong>InternalName</strong></p></td><td><p><strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">BSTR</a></strong>, read-only</p></td><td><p>Stores the internal name of the predefined language. It is this name that should be passed to the <strong><a href="/fine-reader/engine/api-reference/language-related-objects/predefinedlanguages/find-method">IPredefinedLanguages::Find</a></strong> method. For the list of available internal names of the predefined languages see <a href="/fine-reader/engine/specifications/predefined-languages">List of ABBYY FineReader Engine predefined languages</a>.</p></td></tr><tr><td><p><a name="languagecategory" /><strong>LanguageCategory</strong></p></td><td><p><strong><a href="/fine-reader/engine/api-reference/enumerations/languagecategoryenum">LanguageCategoryEnum</a></strong>, read-only</p></td><td><p>Indicates the category to which the current predefined language belongs. You may use this property to organize languages in your user interface.</p></td></tr><tr><td><p><a name="textlanguage" /><strong>TextLanguage</strong></p></td><td><p><strong><a href="/fine-reader/engine/api-reference/language-related-objects/textlanguage">TextLanguage</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>Provides access to the <strong><a href="/fine-reader/engine/api-reference/language-related-objects/textlanguage">TextLanguage</a> </strong>object corresponding to the current predefined language. The <strong>TextLanguage </strong>object returned by this property is read-only (its modification methods return E\_FAIL). Whenever you need to create an editable text language corresponding to a predefined recognition language, do the following two steps:</p><ol><li value="1">Create an empty <strong><a href="/fine-reader/engine/api-reference/language-related-objects/textlanguage">TextLanguage</a> </strong>object.</li><li value="2">Call its <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/copyfrom-method">CopyFrom</a></strong> method with a pointer to a predefined <strong>TextLanguage </strong>object's interface as its input parameter. A pointer to a predefined text language object's interface may be got from this property.</li></ol><p>You may want to use this property to initialize the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams#textlanguage">IRecognizerParams::TextLanguage</a></strong> property with the value corresponding to the predefined language. The alternative way is to call the <strong><a href="/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams/setpredefinedtextlanguage-method">IRecognizerParams::SetPredefinedTextLanguage</a></strong> method.</p></td></tr></tbody></table>

## Related objects

<img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/predefinedlanguage.gif?s=107956e7225e7551c47bb4b869a9dc8e" alt="PredefinedLanguage" width="154" height="92" data-path="images/fine-reader/engine/predefinedlanguage.gif" />[](/fine-reader/engine/api-reference/language-related-objects/textlanguage)[](/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/element-property)[](/fine-reader/engine/api-reference/language-related-objects/predefinedlanguages)

[Object Diagram](/fine-reader/engine/api-reference/object-diagram)

## Output parameter

This object is the output parameter of the [Item](/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/item-method), [Find](/fine-reader/engine/api-reference/language-related-objects/predefinedlanguages/find-method) methods of the [PredefinedLanguages](/fine-reader/engine/api-reference/language-related-objects/predefinedlanguages) object.

## Samples

<Accordion title="C# code">
  ```csharp theme={null}
  FREngine.IEngine engine;
  // Create new TextLanguage object as a copy of predefined English language
  ILanguageDatabase languageDatabase = Engine.CreateLanguageDatabase();
  ITextLanguage textLanguage = languageDatabase.CreateTextLanguage();
  // Copy all attributes from predefined English language
  ITextLanguage englishLanguage = Engine.PredefinedLanguages.Find( "English" )
   .TextLanguage;
  textLanguage.CopyFrom( englishLanguage );
  textLanguage.InternalName = "SampleTextLanguage";
  ```
</Accordion>

The object is used in the following code samples:

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

## See also

[PredefinedLanguages](/fine-reader/engine/api-reference/language-related-objects/predefinedlanguages)

[TextLanguage](/fine-reader/engine/api-reference/language-related-objects/textlanguage)

[List of ABBYY FineReader Engine predefined languages](/fine-reader/engine/specifications/predefined-languages)

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

[Working with Properties](/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties)
