> For the complete documentation index, see [llms.txt](https://docs.fulfillmenttools.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fulfillmenttools.com/documentation/getting-started/authentication-and-authorization/localization.md).

# Localization

fulfillmenttools supports localization, enabling data management in multiple languages. This article explains how to change user and platform locales, request specific languages, and handle localized entity fields.

## Supported languages

We currently support 16 languages, including English, Spanish, French, German, and more. The list of supported languages can be retrieved via API:

```http
GET https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/configurations/supportedlocales
```

## Usage

Many entities already support localization. The system automatically applies the target language in responses.

For example, article titles require translations during creation:

```json
"titleLocalized": {
    "en_US": "This is a very nice title",
    "de_DE": "Dies ist ein sehr schöner Titel",
    "fr_FR": "Ce titre est très sympa"
}
```

**Validation rules for localized objects:**

* Must contain at least one entry
* Keys must be valid locale codes (for example, `en_US`) adhering to the ISO 639 language code (for example, `en`) and the ISO 3166-1 country code (for example, `US`).
* Values must have a minimum length of 1

When requested via the REST API, the `title` field is automatically filled with the appropriate translation. For a German user, the response is:

```json
"title": "Dies ist ein sehr schöner Titel",
"titleLocalized": {
    "de_DE": "Dies ist ein sehr schöner Titel",
    "en_US": "This is a very nice title",
    "fr_FR": "Ce titre est très sympa"   
}
```

## Request a specific language

Language selection can be controlled in three ways:

* **User locale**: Defined in the user object and included in the Bearer token.
* **Request locale**: Specified with the `locale` query parameter.
* **Localized field**: The `*Localized` field always contains all translations.

## Fallback language

If the requested language is unavailable, the system applies the following fallback order:

1. Language defined in user settings
2. Default platform language
3. English
4. First available language for the entity
5. Non-localized field value (legacy entities only)

## Change user locale

Refer to the [Users API documentation](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/users/search) for details.

To change a user's locale, send a `PATCH` request with the new locale. After updating, refresh the authentication token to apply the change.

```http
PATCH https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/users/{userId}
```

```json
{
    "actions": [
        {
            "action": "ModifyUser",
            "locale": "de_DE"
        }
    ],
    "version": 2
}
```

## Change default locale

Refer to the [Configurations API documentation](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/locale) for details.

The default locale defines the standard language for fulfillmenttools. Update it with a `PUT` request:

```http
PUT https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/configurations/locale
```

```json
{
    "locale": "de_DE",
    "version": 42,
    ...
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.fulfillmenttools.com/documentation/getting-started/authentication-and-authorization/localization.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
