默认网络请求的自定义控制

这里针对 translate.js 自带的默认的一些网络请求进行相关控制
比如页面一打开后, translate.js 会自动进行初始化相关接口请求 /init.json ,获取当前支持的语种列表 language.json ,进行多节点测速的 connectTest.json 等,这些如果不想让他发起这些网络请求,将其设置为空字符串即可,如:

  1. translate.request.api.language = '';
  2. translate.request.api.ip = '';
  3. translate.request.api.connectTest = '';
  4. translate.request.api.init = '';

另外针对其他的场景,也做了一些使用控制:

进行了网络转发,翻译的请求路径完全变了

比如经过API网关或者Nginx 进行网络转发,请求路径完全变了,比如正常翻译的网络请求是:

  1. http://12.12.12.12/translate.json

但是你经过网络转发后,它的实际请求URL变成了:

  1. http://12.12.12.12/fanyi/trans.php

这里,可以看到,路径、文件名完全变了,这样需要进行设置:

  1. translate.request.api.host = ['http://12.12.12.12/fanyi/']; //设置请求路径,详细可参考 http://translate.zvo.cn/4068.html
  2. translate.request.api.translate = 'trans.php'; //设置请求的url的文件名

设置不请求language.json时,默认的切换语言下拉框没了

这种场景多数是在一体机的场景,小型一体机,不会再额外去在一体机本身去部署 translate.service 服务,避免产生大的性能消耗。
但是有网环境下,开发时能正常通过语言切换的select切换语言,但是一体机中设置了不发起 language.json 请求,也就不会再返回支持的语种列表, 界面的select切换语言的入口自然也没了, 但是还需要这个进行切换语言,这是可以通过手动指定当前指定的切换语言的形式,来进行设定,比如这个小型一体机设备需要支持中文、韩语两种语言的切换,那么可以这么设置:

  1. translate.request.api.language = [{id: "chinese_simplified", name: "简体中文"},{id: "korean", name: "한국어"}];

这样它便可以继续出现有网络环境时所正常看到的 select切换语言 了,不过可切换的语言就只有所设置的简体中文、韩语 这两个。

注意

  1. 需要 translate.js v3.17.3.20250712 及更高版本
  2. 使用时,要放在 translate.execute() 前面