一、配置说明

如果你是运维人员,或者具备服务器的管理权限,只需要把以下信息配置到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

二、验证步骤

  1. 使用 nginx -t 命令检查配置语法是否正确
  2. 重载Nginx配置:systemctl reload nginx
  3. 访问示例:https://example.com/zh-cn/ 将被代理到 http://engine.ltranslate.cn?target-lang=en

三、前端配置

经过前面的nginx配置后,你就可以在前端页面进行跳转了。

查看前端样例代码

四、支持的语言

Ltranslate支持大多数国家和地区的语言,具体支持的语言列表如下:

查看支持的语言列表

提示:Ltranslate暂不支持在线修改【语言代码】,但你可以通过nginx配置文件,进行URL REWRITE,例如:

rewrite ^/ja/?(.*)$ /jp$1 permanent;

五、常见问题

Q: 配置后出现502错误?

A: 请检查proxy_pass地址是否正确,以及上游服务是否正常运行。

Q: 语言代码不匹配?

A: 请确认正则表达式中的语言代码列表是否完整,可以参考支持的语言列表。

Q: 如何获取API Key?

A: 请登录Ltranslate控制台,在网站管理页面得到API Key。