屏蔽翻译发起的网络请求
translate.js 进行翻译的时候,会有一些初始化、多节点测速、根据用户所在国家自动切换语言、等请求,在一些定制化场景,比如纯私有化一体机无后端服务的场景,这几个网络请求是没有什么作用的,可以通过提前配置的方式,来屏蔽掉这几个网络请求,不在发起这几个网络请求:
init.json
language.json
ip.json
connectTest.json
设置方式为:
translate.request.api.init = '';
translate.request.api.language = '';
translate.request.api.ip = '';
translate.request.api.connectTest = '';
如果哪个不想发起网络请求,便将其设置为空字符便可,这样就不会再发起网络请求了。
每个请求的解释
translate.request.api.language
获取当前翻译服务所支持的语种,支持翻译哪些语种。 这是一个语种列表。
translate.request.api.ip
它是配合 自动切换为用户所使用的语种 来使用的。
自动切换为用户所使用的语种,首先会根据用户本身浏览器默认语种来自动切换,如果某些很小的情况没有获取到,才会触发通过这个接口,来获取用户所在哪个国家,然后根据哪个国家使用哪个语种比较多,来切换为这个语种。
也就是这个接口它实际使用率是很低的,可能有千分之一的几率。
translate.request.api.connectTest
translate.js 的自动测速能力,translate.js 支持介入多个独立的网络节点,当用户打开某个网页时,网页中会自动初始化去各个网络节点测速,采用速度最快的可用的网络节点来接入翻译能力。
translate.request.api.init
translate.js 启动后的一些初始化,比如判定当前translate.js 的版本号、当前可用的 translate.service 服务等。
当然,多数时候这个请求是并不会对translate.js的使用产生实质性作用的。
注意
- translate.js 需要 v3.16.6.20250624 及更高版本
- 设置的代码要放在
translate.execute();
的前面 - 其中的 translate.json 这个翻译请求是没有屏蔽的, 如果你的离线翻译缓存没有命中的话,它还是会发起这个翻译的网络请求。只不过你本身无网络,它发起也没啥作用而已。