Skip to main content
web 服务根据以下设置选择界面语言,并针对每个请求依据浏览器所使用的主机名来确定。可用语言及相关设置请参见本地化。

单一语言

在子域名上使用多种语言

1

将每个语言主机路由到 Ayakaleaf Pro

为每种语言添加一个 DNS 名称,并使用覆盖所有这些名称的证书(例如 *.example.com)将它们全部路由到 Ayakaleaf Pro。你的 ingress 或负载均衡器必须原样传递 Host 请求头,ingress-nginx 和 HAProxy 默认就是这样做的。用户必须通过标准端口访问语言主机(https://cn.example.com,而不是 https://cn.example.com:30443):Ayakaleaf Pro 在比较主机时不包含端口。
2

ConfigMap

30-config.yaml (additions)
COOKIE_DOMAIN 使登录 cookie 能在每个语言主机上生效。请将 JSON 放在单引号中。OVERLEAF_LANG_DOMAIN_MAPPING 中的 JSON 无效会导致 pod 的所有服务在启动时停止,因此请在重启后检查 kubectl -n overleaf get pod。

多个副本

语言取决于每个请求的主机名,因此与副本无关。负载均衡器的粘性 cookie 是按主机名设置的(除非你为其指定域名),因此切换语言可能会将用户转移到另一个副本;其会话保存在 Redis 中,仍然有效。

在 Kubernetes 上的测试

在 Kubernetes 1.37 上部署于 HAProxy 之后,OVERLEAF_LANG_DOMAIN_MAPPING 将站点主机映射为英语、de. 主机映射为德语、带有 NodePort :30081 的 fr. 主机映射为法语:站点主机显示英语,de. 主机显示德语,而带端口的 fr. 主机回退为英语,与上文所述一致。
最后修改于 2026年11月2日