两行 js 实现 html 全自动翻译。 无需改动页面、无语言配置文件、无 API Key、对 SEO 友好!
升级说明
- 增加翻译接口响应错误的打印,以便于各种情况下的异常调试提醒
- 增加翻译原理的结构图,可用于详细了解翻译的原理
- 增加 translate.request.translateText() 可以手动进行传入要翻译的文本的操作
- 增加 translate.nodeHistory 用于增量翻译能力,只对改动的动态文本进行翻译,大幅降低了后端翻译服务的翻译字符。
- 初步增加 translate.reset() 翻译还原的能力
- 引入 https://gitee.com/mail_osc/nodeuuid.js 用于对node节点提取唯一标识符
- translate.service 中修复hash序列化在高并发下异常的问题
- 修复 tcdn.sh 安装文件中,天使土豆条提出的 service 应用安装时路径的错误
- 更新根据所在国家自动切换其使用的语种的能力,补充数百个国家的使用者可以根据自己所在国家,自动切换当前国家所使用的语言
- 优化 translate.service翻译服务,增加 from 、 to 两个传入参数的友好校验判断,如果不在支持语种,会返回友好提示,而不是返回500响应出错
- translate.service 中,过滤掉回车换行,避免转数组时、以及hash化等出现异常
- 优化翻译队列加入判断,执行 translate.execute() 翻译时,如果浏览器缓存中有翻译缓存了,那么在使用缓存渲染后,还会对渲染的node元素重新进行扫描,去除已翻译的文本,对未翻译的文本重新扫描,加入翻译队列。极大提高文本多的场景下翻译的速度
- 优化前端缓存会打散翻译队列造成某些句子不能正常翻译的问题。
- 将translate.nodeQueue中的 beforeText、after 有第五维放到第七维,避免中文转英文时,单词在一个元素中出现多次,会导致有时两个英文单词连起来的问题
- 初步修复了中文转日文、英文转法语等在第二次及更多次执行翻译会导致内容出现逐渐增加的情况
- 修复 translate.service翻译服务,统计翻译字数时,如果数据中有非法传入null会导致响应报错的问题
- translate.listener.renderTaskFinish 翻译渲染完成后触发时间调整为延迟50毫秒执行,以便保证页面真能渲染完毕
- 将一些v1版本的方法如 translate.resourcesUrl 、translate.currentLanguage 等加入已废弃的注释进行标注
- 增大 translate.listener.start() 启动的延迟时间,有50毫秒变为300毫秒,页面加载完毕后的300毫秒后开始执行监控页面元素的改变
- 移除 translate.listener.isExecuteFinish 属性
- 移除 translate.temp_executeFinishNumber 属性
在线体验
http://res.zvo.cn/translate/demo.html
快速使用
在你的网页最末尾, </html>
之前,加入以下代码,会在页面的最底部出现选择语言的标签:
<script src="https://res.zvo.cn/translate/translate.js"></script> <script> translate.language.setLocal('chinese_simplified'); //设置本地语种(当前网页的语种)。如果不设置,默认自动提取网页中所显示字符出现次数最多的为本地语种 translate.execute();//进行翻译 </script>