> ## 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/ko/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 이름을 추가하고, 이를 모두 포괄하는 인증서(예: `*.example.com`)와 함께 모두 Ayakaleaf Pro로 라우팅하세요. 인그레스 또는 로드 밸런서는 `Host` 헤더를 변경하지 않고 전달해야 하며, ingress-nginx와 HAProxy는 기본적으로 그렇게 동작합니다.

사용자는 표준 포트로 언어 호스트에 접근해야 합니다(`https://cn.example.com:30443`이 아닌 `https://cn.example.com`). 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`을 설정하면 로그인 쿠키가 모든 언어 호스트에서 동작합니다. JSON은 작은따옴표로 감싸세요. `OVERLEAF_LANG_DOMAIN_MAPPING`의 JSON이 유효하지 않으면 시작 시 파드의 모든 서비스가 중지되므로, 재시작 후 `kubectl -n overleaf get pod`로 확인하세요.

### 여러 레플리카

언어는 각 요청의 호스트 이름에서 결정되므로 레플리카와 무관합니다. 로드 밸런서의 고정(sticky) 쿠키는 도메인을 지정하지 않는 한 호스트 이름별로 설정되므로, 언어를 전환하면 사용자가 다른 레플리카로 이동할 수 있습니다. 세션은 Redis에 있으므로 계속 유효합니다.

### Kubernetes에서의 테스트

HAProxy 뒤의 Kubernetes 1.37에서 `OVERLEAF_LANG_DOMAIN_MAPPING`으로 사이트 호스트를 영어에, `de.` 호스트를 독일어에, NodePort `:30081`이 붙은 `fr.` 호스트를 프랑스어에 매핑했습니다. 위에서 설명한 대로 사이트 호스트는 영어, `de.` 호스트는 독일어로 표시되었고, 포트가 붙은 `fr.` 호스트는 영어로 대체되었습니다.


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