| Creating the Translation Provider |
This section explains how to create a class that implements the ITranslationProvider interface, which forms the main part of a custom translation provider plug-in implementation.
The translation provider component represents a translation engine that provides functionality to translate segments. A translation provider is a class that implements ITranslationProvider. This functionality of this class can be categorized as follows:
A translation provider can support one or more language directions, i.e. source-to-target language combinations. The functionality for a specific language direction is provided by a class that implements ITranslationProviderLanguageDirection.

For more information on each of the properties that indicate whether the translation provider supports certain functionality or content, see ITranslationProvider.
A translation provider language direction is defined by a source and target language, both of which should be a region-qualified culture. The interface has two method related to language directions:
When a translation provider is added to an SDL Trados Studio 2015 project, two pieces of information are serialized: the URI and the additional state. The additional state can take the form of additional settings required by the translation provider.
Serialization of state is done using the SerializeState method. The translation provider implementation is free to determine the format that it serializes its state in. SDL Trados Studio 2015 will only store this state information in the project. Also, the state information is included in packages, so it is not recommended to include sensitive information like credentials in there. There is a seperate mechanism for credentials and other user specific settings. For more details on this mechanism, refer to the Authentication section in Creating the Translation Provider Factory.