# Translations

## "Translations" tab

Tab **Translations**, available in the application editor, allows adding translations for the application, composite components, and business components. In this place, you can also add keys that override the default application content (details in the chapter *Platform translation keys*).

This tab also allows you to add or modify validator messages associated with components (details in the chapters [*Composite validations*](/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/praca-z-komponentami-bazowymi/walidacja-wartosci-komponentow/walidacje-zlozone-wlasne.md) and [*Script validators*](/documentation/documentation-en/budowanie-aplikacji/logika-biznesowa/scriptcode/walidatory-skryptowe-validationscript.md)).

<figure><img src="/files/fca03e748029db1736b0d28a10c396e9ec54b563" alt=""><figcaption><p><em><strong>Figure 1.</strong> Application editor window - "Translations" tab</em></p></figcaption></figure>

***

### Editing a key and values

After selecting a cell in the table, you can edit both the key and the translation values for individual languages.

For multiline values, the edit field will automatically expand to show the entire content.

<figure><img src="/files/d35ffc0fea443fc85d68f2ba6cb85b8034c3fef7" alt=""><figcaption><p><em><strong>Figure 2.</strong> Editing translations</em></p></figcaption></figure>

***

### Deleting a key

To delete an entire translation row, click the icon on the right side of the given key.

<figure><img src="/files/89bde5a2ba3c043b668fe68188a902d85926a3d2" alt=""><figcaption><p><em><strong>Figure 3.</strong> Deleting a translation key</em></p></figcaption></figure>

After deleting a key, a notification with an option to undo the action will appear at the bottom of the screen.

<figure><img src="/files/caaff981631ae5a6b33e9abfee4be423f2994491" alt=""><figcaption><p><em><strong>Figure 4.</strong> Notification with an option to undo key deletion</em></p></figcaption></figure>

***

### Adding a key

It is possible to add a translation for every application element displaying text - titles, descriptions, labels, validation messages, and content returned by external services.

Keys corresponding to validation error messages are added automatically after adding a validator. The exception is **script validators**, for which the key must be added manually.

To add a new key, use the button **Add key** located above the language columns.4

<figure><img src="/files/42c375cda911e07606989e1fb65ccca77c94f568" alt=""><figcaption><p><em><strong>Figure 5.</strong> Button used to add a new translation key</em></p></figcaption></figure>

Clicking adds an empty row in which at least the key name must be filled in (column *KEY*).\
If the field is left empty, the system will automatically assign the name:

* `empty`
* `empty.copy`
* `empty.copy1`\
  and subsequent ones, if needed.

<figure><img src="/files/976b0d57cd4b79232dbbf37bb2d283a423d7b4d9" alt=""><figcaption><p><em><strong>Figure 6.</strong> Row after adding a key and not filling in its name</em></p></figcaption></figure>

***

### Selecting the default language (tag)

The default language can be selected in the table header. This option is available only while editing the process.

The default language is **Polish**.

To set a language as default, click the star icon next to the language code. ![](/files/bfbdce0d497da4e150d142e0a35be453a829deac)\
The yellow star indicates the currently selected default language. ![](/files/71f5d613de9bdb6171a90997cda23435f870aaed)

<figure><img src="/files/97892e532975ac3d640f1a3059880457a1635db2" alt=""><figcaption><p><em><strong>Figure 7.</strong> Selecting the translation language</em></p></figcaption></figure>

***

### Filtering empty translations

To hide keys without translations, click the icon in the column **KEY**.

The active filter is marked with a crossed-out eye symbol ![](/files/91d5cbbdf33ed50da9209bc224e00b17dfe78198). In addition, information about the number of hidden keys is displayed ![](/files/90fa31b1947fd59182585baaf80dc25697343480).

***

### Searching translations

The search works both by key names and by translation values.

<figure><img src="/files/0d26ee15f38605b49414f579267be573a2690925" alt=""><figcaption><p><em><strong>Figure 8.</strong> Searching translations</em></p></figcaption></figure>

If no results are found, the following message is displayed:

```
We could not find a key or translation: ${szukanyTekst}
```

At this point, the user also receives a suggestion to add a new key.\
After adding the key, the search field is automatically cleared.

***

### Adding and editing languages

To add a new language, click the add new column button located on the right side of the table.

<figure><img src="/files/32262aa437ae836b5b04fd1af21449e4862fb006" alt=""><figcaption><p><em><strong>Figure 9.</strong> Button for adding a new translation language</em></p></figcaption></figure>

The language name (tag) can be changed by clicking its header.

**Language code** should comply with the **ISO 639**standard, written in lowercase.\
The list of supported codes is available at:\
<https://www.oracle.com/technetwork/java/javase/java8locales-2095355.html>

***

## Determining the language used when opening an application

When taking an application to fill in, the system determines the language in the following order:

#### 1. The "locale" parameter in the URL

If the input address contains the `locale`parameter and the template contains translations for the given language, that language will be used.

**Example:**

```
https://url.eximee/webforms/ek/index.html?locale=en
```

***

#### 2. Browser accepted languages (Accept-Language)

If the URL parameter is not available and in the Webforms configuration the parameter:

```
server/locale/browserLocaleAllowed = true
```

then the system will read the language from the header `Accept-Language`, provided that the template has the appropriate translations.

**Example:**

```
https://url.eximee/webforms/ek/index.html
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7,en-gb;q=0.6,fr-FR;q=0.4,fr;q=0.3,es-CO;q=0.2,es;q=0.1
```

***

#### 3. Default template language

If none of the above conditions are met, the **default template language**set in Eximee Designer is used.


---

# 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://docs.eximee.com/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/tworzenie-formularza/tlumaczenia.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.
