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

# Localisation

> Exécutez un déploiement Kubernetes dans une seule langue, ou dans plusieurs langues sur leurs propres sous-domaines.

Le service **web** choisit la langue de l'interface à partir des paramètres ci-dessous, pour chaque requête, d'après le nom d'hôte utilisé par le navigateur. Les langues et les paramètres sont décrits dans [Localisation](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/overleaf-toolkit/localization.md).

| | |
| - | - |
| Service | web, dans chaque pod Ayakaleaf Pro ; lu au démarrage de web |
| Réseau | un nom d'hôte par langue, tous acheminés vers Ayakaleaf Pro |
| Tâches périodiques | aucune |

### Une seule langue

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

### Plusieurs langues sur des sous-domaines

**1. Acheminer chaque hôte de langue vers Ayakaleaf Pro**

Ajoutez un nom DNS par langue et acheminez-les tous vers Ayakaleaf Pro avec un certificat qui les couvre, par exemple `*.example.com`. Votre ingress ou votre équilibreur de charge doit transmettre l'en-tête `Host` sans le modifier, ce que font ingress-nginx et HAProxy par défaut.

Les utilisateurs doivent accéder aux hôtes de langue sur les ports standard (`https://cn.example.com`, et non `https://cn.example.com:30443`) : Ayakaleaf Pro compare l'hôte sans le port.

**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` permet au cookie de connexion de fonctionner sur chaque hôte de langue. Placez le JSON entre apostrophes simples. Un JSON invalide dans `OVERLEAF_LANG_DOMAIN_MAPPING` arrête tous les services du pod au démarrage ; vérifiez donc `kubectl -n overleaf get pod` après le redémarrage.

### Plusieurs répliques

La langue provient du nom d'hôte de chaque requête ; elle ne dépend donc pas de la réplique. Le cookie de persistance (sticky) de l'équilibreur de charge est défini par nom d'hôte, sauf si vous lui attribuez un domaine ; changer de langue peut donc déplacer un utilisateur vers une autre réplique. Sa session se trouve dans Redis et reste valide.

### Testé sur Kubernetes

Sur Kubernetes 1.37 derrière HAProxy, avec `OVERLEAF_LANG_DOMAIN_MAPPING` associant l'hôte du site à l'anglais, un hôte `de.` à l'allemand et un hôte `fr.` avec le NodePort `:30081` au français : l'hôte du site affichait l'anglais, l'hôte `de.` l'allemand, et l'hôte `fr.` avec le port revenait à l'anglais, comme décrit ci-dessus.


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