# Language

The `language` manipulator allows you to replace language IDs in a content with other language IDs. This is useful when you have a content that has a language ID that has a different value in the destination.

## Properties

| Property             | Purpose                                                                          | Required |
| -------------------- | -------------------------------------------------------------------------------- | -------- |
| languageIdPairs      | Language ID pairs to replace, separated by comma, e.g. en-US:en-GB,de-DE:de-AT   | True     |
| extraLanguageIdPairs | Extra Language ID pairs to add, separated by comma, e.g. en-US:en-GB,de-DE:de-AT | False    |

## Examples

### 1. `languageIdPairs` Source Endpoint Language ID: en-US and Destination Endpoint Language ID: en-GB

In this example, the source endpoint has a language ID of `en-US` and the destination endpoint has a language ID of `en-GB`. The `languageIdPairs` property is set to `en-US:en-GB`. This will replace all instances of `en-US` with `en-GB` in the content.

### 2. `extraLanguageIdPairs` Source Endpoint Language ID: en-US and Destination Endpoint Language ID: en-US, en-GB

In this example, the source endpoint has a language ID of `en-US` and the destination endpoint has multiple languages, `en-US` and `en-GB`. The `extraLanguageIdPairs` property is set to `en-US:en-GB`. This will replace duplicate instances of `en-US` with `en-GB` in the content.

## Known Bugs/Workarounds

There is a bug where the required `Fieldname` config value when populated to a field that exists will cause the values to sync as empty values except for the paired language(s).

The workaround for this is to set the `Fieldname` config value to a whitespace ' '. This manipulator does not use the `Fieldname` value and thus the value can be set as an empty space. If using the API the attribute can be ignored.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://motivlabs.gitbook.io/impulse-user-manual/content-manipulators-motators/language.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
