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

# Bản địa hóa

> Chạy một bản triển khai Kubernetes bằng một ngôn ngữ, hoặc bằng nhiều ngôn ngữ trên các tên miền phụ riêng.

Dịch vụ **web** chọn ngôn ngữ giao diện dựa trên các cài đặt bên dưới, cho từng yêu cầu, theo tên máy chủ mà trình duyệt đã sử dụng. Các ngôn ngữ và cài đặt được mô tả trong [Bản địa hóa](https://ayakaleaf-pro.mintlify.site/vi/on-premises/configuration/overleaf-toolkit/localization.md).

| | |
| - | - |
| Dịch vụ | web, trong mọi pod Ayakaleaf Pro; được đọc khi web khởi động |
| Mạng | mỗi ngôn ngữ một tên máy chủ, tất cả đều được định tuyến tới Ayakaleaf Pro |
| Tác vụ định kỳ | không có |

### Một ngôn ngữ

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

### Nhiều ngôn ngữ trên các tên miền phụ

**1. Định tuyến mọi máy chủ ngôn ngữ tới Ayakaleaf Pro**

Thêm một tên DNS cho mỗi ngôn ngữ và định tuyến tất cả chúng tới Ayakaleaf Pro với một chứng chỉ bao phủ tất cả, ví dụ `*.example.com`. Ingress hoặc load balancer của bạn phải chuyển tiếp header `Host` mà không thay đổi, điều mà ingress-nginx và HAProxy làm theo mặc định.

Người dùng phải truy cập các máy chủ ngôn ngữ qua các cổng tiêu chuẩn (`https://cn.example.com`, không phải `https://cn.example.com:30443`): Ayakaleaf Pro so sánh tên máy chủ mà không tính cổng.

**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` cho phép cookie đăng nhập hoạt động trên mọi máy chủ ngôn ngữ. Hãy đặt JSON trong dấu nháy đơn. JSON không hợp lệ trong `OVERLEAF_LANG_DOMAIN_MAPPING` sẽ làm dừng mọi dịch vụ của pod khi khởi động, vì vậy hãy kiểm tra `kubectl -n overleaf get pod` sau khi khởi động lại.

### Nhiều replica

Ngôn ngữ được xác định từ tên máy chủ của mỗi yêu cầu, nên không phụ thuộc vào replica. Cookie sticky của load balancer được đặt theo từng tên máy chủ trừ khi bạn chỉ định một domain cho nó, nên việc chuyển ngôn ngữ có thể đưa người dùng sang một replica khác; phiên của họ nằm trong Redis và vẫn hợp lệ.

### Đã kiểm thử trên Kubernetes

Trên Kubernetes 1.37 phía sau HAProxy, với `OVERLEAF_LANG_DOMAIN_MAPPING` ánh xạ máy chủ của trang tới tiếng Anh, một máy chủ `de.` tới tiếng Đức và một máy chủ `fr.` với NodePort `:30081` tới tiếng Pháp: máy chủ của trang hiển thị tiếng Anh, máy chủ `de.` hiển thị tiếng Đức, còn máy chủ `fr.` có cổng thì quay về tiếng Anh, như mô tả ở trên.


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