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

# Localización

> Ejecuta un despliegue de Kubernetes en un solo idioma, o en varios idiomas en sus propios subdominios.

El servicio **web** elige el idioma de la interfaz a partir de los ajustes siguientes, en cada petición según el nombre de host que usó el navegador. Los idiomas y los ajustes se describen en [Localización](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/overleaf-toolkit/localization.md).

| | |
| - | - |
| Servicio | web, en cada pod de Ayakaleaf Pro; se lee cuando web arranca |
| Red | un nombre de host por idioma, todos dirigidos a Ayakaleaf Pro |
| Tareas periódicas | ninguna |

### Un solo idioma

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

### Varios idiomas en subdominios

**1. Dirigir cada host de idioma a Ayakaleaf Pro**

Añade un nombre DNS por idioma y dirígelos todos a Ayakaleaf Pro con un certificado que los cubra, por ejemplo `*.example.com`. Tu ingress o balanceador de carga debe pasar la cabecera `Host` sin cambios, algo que ingress-nginx y HAProxy hacen por defecto.

Los usuarios deben acceder a los hosts de idioma en los puertos estándar (`https://cn.example.com`, no `https://cn.example.com:30443`): Ayakaleaf Pro compara el host sin el puerto.

**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` hace que la cookie de inicio de sesión funcione en todos los hosts de idioma. Pon el JSON entre comillas simples. Un JSON no válido en `OVERLEAF_LANG_DOMAIN_MAPPING` detiene todos los servicios del pod al arrancar, así que comprueba `kubectl -n overleaf get pod` después del reinicio.

### Varias réplicas

El idioma proviene del nombre de host de cada petición, por lo que no depende de la réplica. La cookie de afinidad del balanceador de carga se establece por nombre de host salvo que le indiques un dominio, de modo que cambiar de idioma puede llevar a un usuario a otra réplica; su sesión está en Redis y sigue siendo válida.

### Probado en Kubernetes

En Kubernetes 1.37 detrás de HAProxy, con `OVERLEAF_LANG_DOMAIN_MAPPING` asignando el host del sitio al inglés, un host `de.` al alemán y un host `fr.` con el NodePort `:30081` al francés: el host del sitio mostró inglés, el host `de.` alemán, y el host `fr.` con el puerto volvió al inglés, como se describe arriba.


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