一、配置说明
如果你是运维人员,或者具备服务器的管理权限,只需要把以下信息配置到Nginx服务器,即可完成接入。
将以下规则加入站点的 server 块中(建议放在其他 location 之后,以免匹配冲突)。该规则会根据 URL 前缀语言代码,将请求转发到后端服务,并携带必要的头信息。
放置建议:
- 若生产启用 HTTPS:放入 443 端口的 server { ... } 内,与其他 location 平级。
- 若仅 HTTP 调试:放入 80 端口的 server { ... } 内。
示例配置:
location ~ ^/(en|zh-cn|af|am|an|ar|as|az|be|bg|bn|bo|bs|ca|ceb|cs|cy|da|de|dsb|dz|el|eo|es|et|eu|fa|fi|fr|fur|fy|gd|gl|gu|haz|he|hi|hr|hsb|hu|hy|id|is|it|ja|jv|ka|kab|kk|km|kn|ko|ku|ky|lo|lt|lv|mk|ml|mn|mr|ms|my|nb|ne|nl|zh-tw|ru)(/.*)?$ {
resolver 8.8.8.8 ipv4=on;
proxy_pass http://engine.ltranslate.cn/site/html?target-lang=$1;
proxy_set_header Host engine.ltranslate.cn;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header http_user_agent $http_user_agent;
proxy_set_header url https://youwebsite.com/$2;
proxy_set_header target-lang $1;
proxy_set_header cachetime 7200;
proxy_set_header api-key xxxx-xxxxxxxxxxxxxxxxxxx;
fastcgi_param CONTENT_TYPE $content_type;
}
参数说明:
| 参数 | 说明 |
|---|---|
| $1 | 正则捕获的语言代码(如 en、zh-CN 等) |
| $2 | 去掉语言前缀后的原始路径(不含首个斜杠) |
| proxy_pass | 将请求代理至 engine.ltranslate.cn,并通过查询参数 target-lang 传递语言代码 |
| proxy_set_header | 设置请求头信息 |
proxy_set_header 详细说明:
- Host:设置上游主机名
- X-Real-IP、X-Forwarded-For:传递真实客户端地址
- http_user_agent:传递用户代理
- url:将原始目标 URL 作为头传递(你的站点域名)
- target-lang:将语言代码作为头传递
- cachetime:缓存能加速页面,以秒为单位,默认864000
- deletecache:是否删除缓存,1为删除,默认0
- api-key:申请到的APIKEY
二、验证步骤
- 使用
nginx -t命令检查配置语法是否正确 - 重载Nginx配置:
systemctl reload nginx - 访问示例:https://example.com/zh-cn/ 将被代理到 http://engine.ltranslate.cn?target-lang=en
四、支持的语言
Ltranslate支持大多数国家和地区的语言,具体支持的语言列表如下:
查看支持的语言列表提示:Ltranslate暂不支持在线修改【语言代码】,但你可以通过nginx配置文件,进行URL REWRITE,例如:
rewrite ^/ja/?(.*)$ /jp$1 permanent;
五、常见问题
Q: 配置后出现502错误?
A: 请检查proxy_pass地址是否正确,以及上游服务是否正常运行。
Q: 语言代码不匹配?
A: 请确认正则表达式中的语言代码列表是否完整,可以参考支持的语言列表。
Q: 如何获取API Key?
A: 请登录Ltranslate控制台,在网站管理页面得到API Key。