> ## 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.

# Lokalizacja

> Uruchom wdrożenie Kubernetes w jednym języku lub w kilku językach na osobnych subdomenach.

Usługa **web** wybiera język interfejsu na podstawie poniższych ustawień, dla każdego żądania według nazwy hosta użytej przez przeglądarkę. Języki i ustawienia opisano na stronie [Lokalizacja](https://ayakaleaf-pro.mintlify.site/pl/on-premises/configuration/overleaf-toolkit/localization.md).

| | |
| - | - |
| Usługa | web, w każdym podzie Ayakaleaf Pro; odczytywana przy uruchomieniu web |
| Sieć | jedna nazwa hosta na język, wszystkie kierowane do Ayakaleaf Pro |
| Zadania okresowe | brak |

### Jeden język

```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
```

### Kilka języków na subdomenach

**1. Skieruj każdy host językowy do Ayakaleaf Pro**

Dodaj nazwę DNS dla każdego języka i skieruj je wszystkie do Ayakaleaf Pro z certyfikatem, który je obejmuje, na przykład `*.example.com`. Twój ingress lub load balancer musi przekazywać nagłówek `Host` bez zmian, co ingress-nginx i HAProxy robią domyślnie.

Użytkownicy muszą łączyć się z hostami językowymi na standardowych portach (`https://cn.example.com`, a nie `https://cn.example.com:30443`): Ayakaleaf Pro porównuje host bez portu.

**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` sprawia, że ciasteczko logowania działa na każdym hoście językowym. Umieść JSON w pojedynczych cudzysłowach. Nieprawidłowy JSON w `OVERLEAF_LANG_DOMAIN_MAPPING` zatrzymuje każdą usługę poda przy uruchomieniu, więc po ponownym uruchomieniu sprawdź `kubectl -n overleaf get pod`.

### Kilka replik

Język wynika z nazwy hosta każdego żądania, więc nie zależy od repliki. Ciasteczko przypisania (sticky cookie) load balancera jest ustawiane dla każdej nazwy hosta, chyba że nadasz mu domenę, więc zmiana języka może przenieść użytkownika do innej repliki; jego sesja znajduje się w Redis i pozostaje ważna.

### Przetestowano na Kubernetes

Na Kubernetes 1.37 za HAProxy, z `OVERLEAF_LANG_DOMAIN_MAPPING` przypisującym hostowi witryny język angielski, hostowi `de.` język niemiecki, a hostowi `fr.` z NodePort `:30081` język francuski: host witryny wyświetlał język angielski, host `de.` niemiecki, a host `fr.` z portem powrócił do angielskiego, zgodnie z powyższym opisem.


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