# Translation Configuration

## Translation Configuration XML base

```
<TranslationConfiguration>
    <EntityTypes>
        <!-- EntityType elements -->
    </EntityTypes>
    <LinkTypes>
        <!-- LinkType elements -->
    </LinkTypes>
    <Languages>
        <!-- Language elements -->
    </Languages>
</TranslationConfiguration>
```

## 3.2.2 -> 3.3 - Upgrade example

Settings that will be removed and replaced by XML configuration, with an example value:

* childLinkTypes / ChildLinkTypes
  * `TranslationJobProduct,ProductItems`
* entityStatusFields / TranslateEntityStatusFields
  * `trProductEntityStatus,trItemEntityStatus`
* languageConfiguration / LanguageConfiguration
  * ```
    <Languages>
      <Language key="engb" lionbridgeCode="en-gb" inRiverCode="en" />
      <Language key="daDK" lionbridgeCode="da-DK" inRiverCode="da" />
      <Language key="svSE" lionbridgeCode="sv-SE" inRiverCode="sv" />
      <Language key="nbNO" lionbridgeCode="nb-NO" inRiverCode="no" />
    </Languages>
    ```

### Converted to XML based on settings

```
<TranslationConfiguration>
    <EntityTypes>
        <EntityType Id="Product">
            <!-- <InTranslationFieldType Id="trProductInTranslation" /> --> <!-- This fields will need to be created manually -->
            <!-- <TranslatedFieldType Id="trProductTranslated" /> --> <!-- This fields will need to be created manually -->
            <!-- <TranslationInfoFieldType Id="trProductTranslationStatus" /> --> <!-- This fields will need to be created manually -->
        </EntityType>
        <EntityType Id="Item">
            <!-- <InTranslationFieldType Id="trItemInTranslation" /> --> <!-- This fields will need to be created manually -->
            <!-- <TranslatedFieldType Id="trItemTranslated" /> --> <!-- This fields will need to be created manually -->
            <!-- <TranslationInfoFieldType Id="trItemTranslationStatus" /> --> <!-- This fields will need to be created manually -->
        </EntityType>
    </EntityTypes>
    <LinkTypes>
        <LinkType Id="TranslationJobProduct" />
        <LinkType Id="ProductItems" />
    </LinkTypes>
    <Languages>
            <Language key="engb" lionbridgeCode="en-gb" inRiverCode="en" />
            <Language key="daDK" lionbridgeCode="da-DK" inRiverCode="da" />
            <Language key="svSE" lionbridgeCode="sv-SE" inRiverCode="sv" />
            <Language key="nbNO" lionbridgeCode="nb-NO" inRiverCode="no" />
    </Languages>
</TranslationConfiguration>
```

## XML element details

#### `<TranslationConfiguration>` element

Contains translation configuration data.

**Properties**

| Name        | Required | Property type | Value type |
| ----------- | -------- | ------------- | ---------- |
| EntityTypes | Yes      | Element       | XML        |
| LinkTypes   | Yes      | Element       | XML        |
| Languages   | Yes      | Element       | XML        |

#### `<EntityTypes>`element

Contains information about entity types that can be translatable.

**Properties**

| Name       | Required | Property type | Value type |
| ---------- | -------- | ------------- | ---------- |
| EntityType | Yes      | Element       | XML        |

#### `<EntityType>`element

Contains information about an entity type that should be translatable

**Properties**

| Name                     | Required | Property type | Value type |
| ------------------------ | -------- | ------------- | ---------- |
| Id                       | Yes      | Attribute     | string     |
| InTranslationFieldType   | Yes      | Element       | XML        |
| TranslatedFieldType      | Yes      | Element       | XML        |
| TranslationInfoFieldType | Yes      | Element       | XML        |

**Id**

The entity type id of the translatable entity type

**\<InTranslationFieldType>**

**Properties**

| Name | Required | Property type | Value type |
| ---- | -------- | ------------- | ---------- |
| Id   | Yes      | Attribute     | string     |

**Id**

The field type id of the "In Translation" status field.

**\<TranslatedFieldType>element**

**Properties**

| Name | Required | Property type | Value type |
| ---- | -------- | ------------- | ---------- |
| Id   | Yes      | Attribute     | string     |

**Id**

The field type id of the "Translated" status field.

**TranslationInfoFieldTypeelement**

**Properties**

| Name | Required | Property type | Value type |
| ---- | -------- | ------------- | ---------- |
| Id   | Yes      | Attribute     | string     |

**Id**

The field type id of the field that the connector uses to store information about what has been sent for translation for a given entity.

#### `<LinkTypes>`element

Link types the connector can use to discover translatable entities.

**Properties**

| Name     | Required | Property type | Value type |
| -------- | -------- | ------------- | ---------- |
| LinkType | Yes      | Element       | XML        |

#### `<LinkType>`element

Link type the connector can use to discover translatable entities.

**Properties**

| Name | Required | Property type | Value type |
| ---- | -------- | ------------- | ---------- |
| Id   | Yes      | Attribute     | string     |

**Id**

Link type id the connector can use to discover translatable entities.

#### `<Languages>`element

Language information, more information about how to configure this can be found [here](language-configuration).

**Properties**

| Name     | Required | Property type | Value type |
| -------- | -------- | ------------- | ---------- |
| Language | Yes      | Element       | XML        |

#### `<Language>`element

Information about a single language.

**Properties**

| Name           | Required | Property type | Value type |
| -------------- | -------- | ------------- | ---------- |
| key            | Yes      | Attribute     | string     |
| lionbridgeCode | Yes      | Attribute     | string     |
| inRiverCode    | Yes      | Attribute     | string     |

**key**

Unique identifier for the language.

**lionbridgeCode**

Lionbridge language code for this language.

**inRiverCode**

inRiver language code for this language.
