> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/help-center/administrirovanie/nastroika-yazykov.md).

# Настройка языков

iEXExchanger поддерживает мультиязычность как для публичного сайта, так и для панели управления.

Все основные языковые настройки выполняются в административной панели. Дополнительно Frontend использует параметры из файла `.env`, которые определяют, какие языки доступны для Angular SSR.

Для корректной работы языка он должен быть:

* включён в административной панели;
* указан в `.env` Frontend;
* присутствовать в сборке Frontend.

Если хотя бы одно из этих условий не выполнено, язык может работать некорректно или быть недоступен.

***

## Какие языки поддерживаются

В текущей версии доступны следующие языки:

<table data-search="false"><thead><tr><th width="87.1875">Код</th><th>Язык</th><th width="143.4921875">Сайт</th><th>Панель управления</th></tr></thead><tbody><tr><td><code>ru</code></td><td>Русский</td><td>✓</td><td>✓</td></tr><tr><td><code>en</code></td><td>English</td><td>✓</td><td>✓</td></tr><tr><td><code>zh</code></td><td>简体中文</td><td>✓</td><td>✓</td></tr><tr><td><code>es</code></td><td>Español</td><td>✓</td><td>✓</td></tr><tr><td><code>fr</code></td><td>Français</td><td>✓</td><td>✓</td></tr><tr><td><code>kk</code></td><td>Қазақша</td><td>✓</td><td>✓</td></tr><tr><td><code>pl</code></td><td>Polski</td><td>✓</td><td>—</td></tr><tr><td><code>uk</code></td><td>Українська</td><td>✓</td><td>✓</td></tr><tr><td><code>ka</code></td><td>ქართული</td><td>✓</td><td>—</td></tr></tbody></table>

{% hint style="info" %}

## Важно:

* `ka` — грузинский язык.
* `kk` — казахский язык.
  {% endhint %}

## Разница между языками сайта и панели управления

В системе существуют два независимых набора языков.

{% stepper %}
{% step %}

### Языки сайта

Используются для публичной части обменного пункта и клиентского кабинета.

Например:

```
https://ваш_домен/ru/
https://ваш_домен/en/
https://ваш_домен/fr/
```

Именно эти языки видят ваши клиенты.
{% endstep %}

{% step %}

### Языки панели управления

Используются только администраторами и менеджерами.

Они никак не влияют на языки публичного сайта.

Например, можно использовать следующую схему:

```
Сайт:
ru
en
es
fr

Панель управления:
ru
en
```

В этом случае посетители смогут пользоваться четырьмя языками сайта, а сотрудники панели управления — только двумя.
{% endstep %}
{% endstepper %}

***

## Настройка языков в административной панели

Откройте раздел: **«Настройки» — «Общие настройки» — «Основное»** и найдите **«Регион и языки»**

<figure><img src="/files/yQRDFeJsuoXYrB4V3DIX" alt=""><figcaption></figcaption></figure>

Именно здесь выполняется основная настройка мультиязычности.

***

## Язык админки по умолчанию

Поле: **Язык админки по умолчанию**

Определяет язык страницы входа и панели управления до того момента, пока пользователь не выберет другой язык самостоятельно.

Эта настройка влияет только на административную панель и не изменяет язык публичного сайта.

Например: **Русский** или **English**

## Языки сайта и порядок

Поле: **Языки сайта и порядок**

Определяет, какие языки будут доступны посетителям сайта.

В этом разделе можно:

* включить нужные языки;
* отключить неиспользуемые;
* изменить порядок отображения.

Порядок языков определяет, в каком порядке они будут отображаться в переключателе языка на сайте.

Например:

```
ru
en
es
fr
```

или

```
ru
en
```

{% hint style="info" %}
Рекомендуется включать только те языки, которые действительно используются на вашем сайте.
{% endhint %}

Не стоит активировать все языки, если часть из них не переведена или не используется.

## Языки панели администратора

Поле: **Языки панели администратора**

Определяет, какие языки доступны администраторам и менеджерам внутри панели управления.

В этом разделе также можно:

* включить нужные языки;
* отключить лишние;
* изменить порядок отображения.

Рекомендуется оставлять только те языки, на которых действительно работают сотрудники.

Например:

```
ru
en
```

или

```
ru
en
es
```

## Как выбрать язык

После включения языков каждый пользователь может самостоятельно выбрать удобный язык.

{% stepper %}
{% step %}

### На сайте

Переключатель языка находится в верхней части сайта рядом с основным меню.

После выбора языка сайт автоматически откроется на выбранной языковой версии.

Например: `https://ваш_домен/en/` или `https://ваш_домен/fr/`
{% endstep %}

{% step %}

### В панели управления

После входа в административную панель язык можно изменить в любое время.

Переключатель языка расположен в правом верхнем углу панели управления рядом с профилем пользователя.

Каждый администратор или менеджер может выбрать язык независимо от других пользователей.

Это изменение влияет только на его собственную панель управления.
{% endstep %}
{% endstepper %}

***

## Настройка языков в Frontend

Кроме административной панели, список доступных языков необходимо указать в файле `.env` Frontend.

**Файл находится в корне основного сайта:**

{% content-ref url="/pages/MDuqJRjp8L1cHG9i4sRB" %}
[Файлы сайта в FastPanel](/help-center/upravlenie-serverom/panel-fastpanel/faily-saita-v-fastpanel.md)
{% endcontent-ref %}

```
/var/www/имя_пользователя_frontend/data/www/ваш_домен/.env
```

**Основные параметры:**

```dotenv
SUPPORTED_LANGUAGES=ru,en,es,fr,pl,uk,zh,ka,kk
DEFAULT_LANGUAGE=ru
```

`SUPPORTED_LANGUAGES`

Определяет языки, которые разрешены для Angular SSR.

`DEFAULT_LANGUAGE`

Определяет язык по умолчанию для Angular SSR.

Например, только русский и английский:

```bash
SUPPORTED_LANGUAGES=ru,en
DEFAULT_LANGUAGE=ru
```

Или все поддерживаемые языки:

```bash
SUPPORTED_LANGUAGES=ru,en,es,fr,pl,uk,zh,ka,kk
DEFAULT_LANGUAGE=ru
```

После изменения файла необходимо перезапустить Frontend:

{% content-ref url="/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

```bash
pm2 restart ecosystem.config.cjs --update-env
```

***

## Важное правило

Для корректной работы язык должен одновременно существовать:

* в сборке Frontend;
* в папке `dist/exchanger/browser/<код_языка>`;
* в параметре `SUPPORTED_LANGUAGES`;
* в списке языков сайта в административной панели.

Например, если указать: `SUPPORTED_LANGUAGES=ru,en,fr`

но в сборке отсутствует папка: `dist/exchanger/browser/fr` язык работать не будет.

## Проверка языковых сборок

Проверьте наличие языковых папок:

```
dist/exchanger/browser
```

Для полной мультиязычной сборки должны присутствовать:

```
en
es
fr
ka
kk
pl
ru
uk
zh
```

Также должна существовать серверная часть Angular SSR:

```
dist/exchanger/server
```

<details>

<summary>Как работает переключатель языка</summary>

Список языков на сайте формируется автоматически из настройки: **Языки сайта и порядок**

Например, если включены только:

```
ru
en
```

то посетители увидят только русский и английский языки, даже если Frontend поддерживает больше языков.

</details>

<details>

<summary>Как работает язык при обращении к Backend</summary>

Когда пользователь открывает сайт на определённом языке, Frontend автоматически передаёт активный язык в Backend.

Например: `https://example.com/en/`

Backend получает язык: `en`

Благодаря этому Backend возвращает данные сразу на нужном языке:

* названия валют;
* направления обмена;
* уведомления;
* ошибки;
* текстовые блоки;
* SEO-информацию;
* другой клиентский контент.

</details>

<details>

<summary>Нужно ли настраивать языки в Nginx</summary>

Нет.

Начиная с новой версии iEXExchanger, Nginx больше не управляет языками сайта.

Не нужно добавлять:

```nginx
map $http_accept_language
map $cookie_lang
location = /
location ~ ^/(ru|en)
```

Все языковые маршруты, редиректы и определение языка выполняет Angular SSR.

Задача Nginx — только передавать запросы на Frontend.

</details>

***

## Рекомендуемые варианты настройки

{% stepper %}
{% step %}

### Только русский язык

`.env`

```bash
SUPPORTED_LANGUAGES=ru
DEFAULT_LANGUAGE=ru
```

Админка:

```
Язык сайта по умолчанию:
ru

Языки сайта:
ru
```

{% endstep %}

{% step %}

### Русский и английский

`.env`

```bash
SUPPORTED_LANGUAGES=ru,en
DEFAULT_LANGUAGE=ru
```

Админка:

```
Язык сайта по умолчанию:
ru

Языки сайта:
ru
en
```

{% endstep %}

{% step %}

### Международный сайт

`.env`

```bash
SUPPORTED_LANGUAGES=ru,en,es,fr,pl,uk,zh,ka,kk
DEFAULT_LANGUAGE=ru
```

Админка:

```
Язык сайта по умолчанию:
ru

Языки сайта:
ru
en
es
fr
pl
uk
zh
ka
kk
```

{% endstep %}
{% endstepper %}

## Частые ошибки

<details>

<summary>Язык выбран в админке, но не открывается</summary>

Проверьте:

* указан ли язык в `SUPPORTED_LANGUAGES`;
* существует ли папка языка в `dist/exchanger/browser`.

</details>

<details>

<summary>Язык указан в.env, но отсутствует в переключателе</summary>

Проверьте настройку:

```
Языки сайта и порядок
```

Именно она определяет список языков на сайте.

</details>

<details>

<summary>После изменения <strong>.env</strong> ничего не изменилось</summary>

Перезапустите Angular SSR:

```bash
pm2 restart ecosystem.config.cjs --update-env
```

</details>

<details>

<summary>На сайте появляются адреса вида</summary>

```
/ru/fr
```

Причина почти всегда заключается в старых языковых правилах Nginx.

Удалите все старые языковые `map` и `location`.

</details>

<details>

<summary>В панели управления отсутствуют польский или грузинский языки</summary>

Это нормально.

В текущей версии:

* `pl`;
* `ka`;

используются только для публичного сайта и клиентского кабинета.

</details>

***

## Коротко

Для корректной работы мультиязычности необходимо выполнить три условия:

* включить нужные языки в административной панели;
* указать их в `SUPPORTED_LANGUAGES` Frontend;
* убедиться, что они присутствуют в сборке Angular SSR.

Рекомендуется включать только те языки, которые действительно используются вашим обменным пунктом. Это упрощает сопровождение проекта и делает интерфейс более удобным для клиентов и сотрудников.


---

# 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.iexexchanger.com/help-center/administrirovanie/nastroika-yazykov.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.
