> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Локалізація

> Запускайте розгортання на Kubernetes однією мовою або кількома мовами на окремих піддоменах.

Служба **web** вибирає мову інтерфейсу на основі наведених нижче налаштувань — для кожного запиту за іменем хоста, яке використав браузер. Мови та налаштування описано в розділі [Локалізація](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/overleaf-toolkit/localization.md).

| | |
| - | - |
| Служба | web у кожному поді Ayakaleaf Pro; зчитується під час запуску web |
| Мережа | одне ім'я хоста на мову, усі спрямовані на Ayakaleaf Pro |
| Періодичні завдання | немає |

### Одна мова

```yaml theme={null}
  OVERLEAF_SITE_LANGUAGE: zh-CN
```

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

### Кілька мов на піддоменах

**1. Спрямуйте хост кожної мови на Ayakaleaf Pro**

Додайте DNS-ім'я для кожної мови та спрямуйте їх усі на Ayakaleaf Pro із сертифікатом, який їх охоплює, наприклад `*.example.com`. Ваш ingress або балансувальник навантаження має передавати заголовок `Host` без змін, що ingress-nginx і HAProxy роблять за замовчуванням.

Користувачі мають відкривати мовні хости на стандартних портах (`https://cn.example.com`, а не `https://cn.example.com:30443`): Ayakaleaf Pro порівнює хост без порту.

**2. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  OVERLEAF_SITE_URL: https://www.example.com
  COOKIE_DOMAIN: .example.com
  OVERLEAF_LANG_DOMAIN_MAPPING: '{"www": {"lngCode": "en", "url": "https://www.example.com"}, "cn": {"lngCode": "zh-CN", "url": "https://cn.example.com"}}'
```

`COOKIE_DOMAIN` дає змогу cookie входу працювати на кожному мовному хості. Візьміть JSON в одинарні лапки. Некоректний JSON в `OVERLEAF_LANG_DOMAIN_MAPPING` зупиняє всі служби пода під час запуску, тож після перезапуску перевірте `kubectl -n overleaf get pod`.

### Кілька реплік

Мова визначається іменем хоста кожного запиту, тож вона не залежить від репліки. Липка cookie балансувальника навантаження встановлюється для кожного імені хоста окремо, якщо ви не задасте їй домен, тож перемикання мови може перенести користувача на іншу репліку; його сесія зберігається в Redis і залишається дійсною.

### Перевірено на Kubernetes

На Kubernetes 1.37 за HAProxy, з `OVERLEAF_LANG_DOMAIN_MAPPING`, що зіставляє хост сайту з англійською, хост `de.` — з німецькою, а хост `fr.` з NodePort `:30081` — з французькою: хост сайту показував англійську, хост `de.` — німецьку, а хост `fr.` з портом повертався до англійської, як описано вище.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.