新增及优化了百多项功能及使用细节,v4版本将重点优化视觉感知体验、AI自动化接入微调方面的能力。
全面开放私有化部署能力,部署后可自动接入集成GIteeAI大模型通道,采用混元翻译模型,开启内存缓存加速,具备毫秒相应、高稳定支持。
translate.js 更新项:
- 增加 translate.debug 可以对私有部署翻译服务后的一些细节优化进行自检
- 增加 debug.js 用于开发模式使用,可将二维网页进行升维处理、元素分离分层处理、立体旋转、鼠标跟随、节点定位、数据变动轨迹展示等,以便后续开发AI自动化
- translate.ignore.class 增加更精准的控制参数使用,可以传入自定义function方法进行编程控制
- 增加 Vue3 的适配插件
- 增加 ArcoDesign Vue3 的适配插件
- 增加 NaiveUI Vue3 的适配插件
- 增加 translate.visual.filterRectsByLineInterval 按行间隔筛选rects数组中的节点;
- 增加 translate.js.objToString 将js对象转为字符串
- 增加 layui i18n 插件的ai一键翻译语言配置文件
- 增加 translate.lifecycle.changeLanguage 的钩子,当用户点击切换语言时,触发
- 增加 translate.time 对翻译的每个过程进行耗时监控;
- 增加 translate.node ,用于实时整理记录当前参与翻译的node
- 增加 translate.util.findParticiple 分词发现,用于寻找分词外的指定文本下标返回
- 增加 translate.node.refresh(); 用于同步刷新当前dom跟翻译数据。
- 增加对 html.translatejs-text-hidden small 的文本遮罩
- 增加无刷新页面切换语言的能力
- 增加 translate.language.systems 语言体系,包含阿拉伯字母体系、西里尔字母体系、拉丁体系、泰语体系;
- 增加 translate.language. recognition_languageName_force 强制识别为某个语种,而忽略字符百分比,这个暂时跟translate.language.translateLocal配合使用;
- 增加 addNodeToQueueAnalysis 等返回值,优化全部命中自定义术语后,会漏掉某些加入 translate.node 的场景
- 增加 translate.node.data.key.translateResults 、 translate.element.nodeAnalyse.analyseReplaceBefore_DateToTranslateNode 解决transalte.node 误删除的问题
- 增加 translate.time.execute.start(); 用于实时显示性能耗时情况
- 增加 translate.visual.webPageLoadTranslateBeforeHiddenText_use 用以当触发切换语言时,会自动隐藏切换回源语种的一闪的几秒钟间隙,避免源语种闪现;
- 增加 translate.reset 的 config 参数的传入
- 增加 translate.visual.webPageLoadTranslateBeforeHiddenText 的 config 传入配置参数
- 增加 translate.util.compareStringsIgnoringNumbers 用于排除数字的两个字符串比对
- 增加 translate.lifecycle.execute.finally 用于监控翻译的触发完成;
- 增加 translate.lifecycle.execute.trigger 用于监听 translate.execute 触发
- 增加 translate.visual.filterNodeRepeat 对 node 去重;
- 增加 translate.executeTriggerNumber 用于记录translate.execute 触发了多少次;
- 增加 translate.node.data 的初始化
- 增加 translate.lifecycle.execute.translateNetworkAfter 网络请求之后的触发钩子
- 优化 translate.request.listener.start 必须在翻译执行后才会触发;
- 增加 translate.history 历史翻译信息、 translate.recycle 内存回收,避免长时间及适配异常导致页面卡顿
- 增加 translate.isTranslateExecute() 用以判定当前是否使用翻译,也就是使用多语言切换能力
- 增加 translate.faultTolerance 针对一些UI框架的容错能力;
- 增加 translate.lifecycle.execute.trigger 返回值控制翻译的是否执行、 增加 docs、executeTriggerNumber 参数获取
- 增加 translate.log 用于统一处理控制台日志打印
- 增加 translate.element.nodeToElement 将 node转化为实际的元素节点;
- 增加 translate.ignore 忽略翻译的识别方面,对元素属性的适配;
- 增加 translate.listener.nodeValueChangeNeedTranslate 用于监听发生改变的这个 node 是否有正常需要翻译的内容、以及是否是非translate.js触发的需要被翻译;
- 增加 translate.element.nodeAnalyse.gets 扫描 element/node 下的所有可翻译的子节点(下层节点),返回数组形态;
- 增加 translate.selectLanguageTag.customLanguagesHandle 用以对translate.selectLanguageTag.languages自定义语种进行过滤及自定义显示语种的顺序保持
- 增加 translate.visual.rectsSpaceEliminateOverlap 针对元素的视觉空间重叠计算
- 增加 translate.request.post 请求数据的参数返回;
- 增加对离线配置文件中,每行配置缩进的自识别,以避免漏掉某些配置本身开头就有空格的情况;
- 增加 translate.listener.input 增加对一些UI框架比如 vant 中会有组件的值以 input 的 value 作为显示时,当组件动态改变后,显示的文本未实时跟随翻译的问题;
- 增加 translate.listener.reset 用于还原撤销dom监控;
- 增加 translate.lifecycle.changeLanguage.resetAfter 用于监控语言切换触发
- 增加 translate.config 用于一键导出、导入 所有配置,可以再不同translate对象之间快速进行配置复制克隆。
- 增加 translate.element.iframe 对 iframe进行自动注入并将主页面的配置自动复制进去
- 增加对iframe无src属性的适配,增加对 iframe的src属性动态改变后的自动监听注入
- 增加 translate.ignore.class.push 的传入参数 function 作为第二个参数,用于忽略某个范围内的元素可以编程的方式进行精准调控;
- 增加 translate.util.text_full_half_width_generate 对翻译文本进行逆向回溯;
- 优化 translateText 函数,使其包含用于处理翻译失败的 abnormalFunc。更新了使用示例,以演示如何使用 XMLHttpRequest 对象进行错误处理。
- 优化翻译失败判定,兼容最新增加的giteeai 账户余额不足返回的错误码;
- 修复 translate.lifecycle.execute.renderFinish 异常会因翻译网络请求导致多次触发的异常;
- 优化 translate.visual.webPageLoadTranslateBeforeHiddenText(); 的体验
- 优化自定义术语的适配问题
- 优化 translate.visual.getRects 识别,将返回的一维数组改为二维数组,第二维度每行都单独计算;
- 优化 translate.visual.hideText.hide();、show() 可以传入id
- 优化 translate.progress.api.startUITip(); 遮罩层美化
- 修复同一个标签中,有多个要翻译的属性,且属性的值相同时,会只翻译其中某一个的bug
- 优化 translate.js.transString 的适配
- 优化 translate.js.transObject 对 translate.ignore.text 的支持,以适配 layui i18n 的翻译数据配置的自动化翻译
- 优化 translate.js.find 返回值增加 functionResult 的返回,以适配 function 的value
- 调整自定义术语的 translate.nomenclature.append 传入的第一个from参数,允许为null或空字符串,此时将会自动识别网页当前语种或继承设置的当前本地语种
- 优化当页面本身没有被翻译,打开后手动触发 translate.changeLanguage 进行翻译后,定义的 元素动态监听未能生效的异常
- 优化 translate.listener.start 动态监听 dom ,使处理更高效及避免遗漏
- 优化 translate.util.textReplace ,增加分词 participles 的传入,传入的分词将会被完好的保留,不会被打散。
- 优化 translate.request.send 对 giteeai 注册用户的支持
- 优化 translate.reset ,将有 translate.node 提供数据还原支持
- 优化 translate.request.listener.start 监听,只有当 translate.execute 执行完一次后,才能被触发;
- 优化自定义术语在来回切换语言时,自定义术语会导致有部分命中其他术语语言的,的不被翻译
- 优化 translate.reset() 对 属性的还原
- 优化在gb2312的网页编码上偶发报错问题
- 优化属性变动的监听,以及 class 改动时直接忽略;
- 优化 translate.time.execute 打印每次的翻译语种及翻译文本
- 优化 translate.progress.api.startUITip(); 遮罩的美观
- 优化隐藏文本为瞬间隐藏,禁用动画产生时间差;
- 优化 reset 的顺序及切换语言的语言选择框渲染
- 优化 translate.lifecycle.execute.translateNetworkBefore 增加具体参与翻译的 node 集合的传入
- 优化翻译提示, 当前翻译未完结,新翻译任务已加入等待翻译队列,待上个翻译任务结束后便会执行当前翻译任务,在后面增加此次增加的标签或node
- 优化 translate.lifecycle.execute.translateNetworkBefore 的传入参数,增加 nodes 的传入;
- 优化 translate.lifecycle.execute.start 的传参为对象形态;
- 优化语言下拉选择,第一次会自动缓存语言信息,以后在进行渲染时将不再重新从网络拉取语言信息
- 优化 translate.nomenclature.dispose 对自定义忽略文本的支持
- 优化自定义术语命中部分后,会导致 reset 无法正常还原这个节点的异常
- 优化 translate.request.data ,细化记录的网络请求;
- 优化 translate.progress.api.startUITip(); 对input 的 placeholder 文本隐藏控制并使其更精细处理;
- 优化 translate.nomenclature.replace、 translate.nomenclature.dispose 的传入参数 nodeObject 移除 attribute 属性。 如果目标是元素的属性,应该传入这个属性的node ,使之定位更清晰;
- 优化 translate.listener.addListener 当属性发生改变时,根据属性来精确判定是否需要被翻译,此时也会适配用户所自定义翻译的属性;
- 优化 translate.execute 当上一次翻译还未完成时的拦截,控制台打印提示,增加对传入的属性node也进行参与打印;
- 优化 translate.node 中的记录方式,将原本元素按照属性拆分改为直接按照最终节点进行记录,移除不同属性不同记录,增强约束;
- 优化 layui i18n 一键翻译能力,优化对内容中换行符的适配、优化对function方法体中出现的文本进行翻译适配
- 优化 objToString 方法,优化对内容中换行符的适配、优化对function方法体中出现的文本进行翻译适配
- 优化 translate.office.fullExtract.export 导出,导出的js源码可以直接运行使用
- 优化 translate.office 调整为 translate.offline
- 优化自定义翻译标签元素的 textarea 的 value
- 优化调整 renderTask.taskQueue 以 node 为key,在多个同样翻译文本属不同node的场景下,更精准匹配
- 优化自定义术语跟 input - value 一起时匹配异常的问题
- 优化 translate.progress.api.startUITip() 遮罩增加视觉去重叠;
- 优化网络请求钩子在响应异常时也能正常捕获完成
- 优化 translate.visual.filterNodeRepeat ,增加对视觉面积小的进行过滤移除,以提高视觉效果
- 优化 iframe 中,互相控制切换语种的问题
- 优化离线翻译对配置文本中换行符的支持;
- 优化导出离线翻译数据时对无效字符的处理;
- 优化 translate.renderTask.execute 中进行渲染翻译结果时,如果有dom频繁变动导致 translate.node 中的历史数据出现时间差,导致对不上时,为更好提高容错增加自动创建新的node数据到 translate.node 进行完整数据集;
- 优化 translate.node.get(xxx). lastTranslateRenderTime 的改变放在渲染DOM的前一刻;
- 优化 translate.listener.start(); 监听时,会自动忽略动态增加的 translate.ignore.tag 中的元素,不会触发对其扫描
- 优化 将提示的 translate.execute( docs ) 传入的docs.length 过大 从 1500 放宽到 15000
- 优化忽略class name ,对某些特殊情况如 svg中的文本忽略父节点class name时异常的问题
- 优化 translate.setDocuments() 传入参数,增加参数有效性检查,自动剔除无效不存在的传入对象;
- 优化 translate.language. getTranslateAreaText() 异常返回,即使遇到异常,返回值也是空字符串,而不会存在undefined
- 优化 translate.element.iframe.use(...); 如果以file访问时的拦截提示
- 优化 translate.util.textReplace 对分词处理时,分词中包含多个翻译文本时会出现数据下标异常问题;
- 移除 translate.execute 第二次扫描重组待翻译文本,避免一些自定义分词被打散、提升翻译速度
- 移除 translate.nodeHistory ,有 translate.node 替代
- 移除 translate.addNodeToQueueTextAnalysis ,功能有 translate.nomenclature.dispose 取代
- 移除 translate.execute 在扫面完后继续对历史node进行的判定
- 移除多分词识别字符串的debug打印
- 移除 translate.node.getAttribute ,加入 translate.node 的 node 将不再分 attribute ,使定位更清晰,约束增强;
- 移除 v2 版本的 translate.inProgressNodes
- 移除旧版的 translate.listener.ignoreNode
- 移除旧版本的根据客户端的ip来计算所在国家,进而判定出用户使用的语种,有更精确的用户自己设置的浏览器默认语种替代
翻译服务端更新:
- 文本预处理能力全部重构,对邮箱、网址、文件名、等进行翻译前自动识别处理,对长文本英文语句进行自动拆句、对html文本进行自动识别处理
- 增加删除域名管理页面多余提示,以及安装SSL页面完善拦截增加HTTPS域名访问拦截安装SSL证书操作
- 增加译文微调页面,目标域名校验以及翻译结果空字符校验
- 增加 standbyConfig 修复通道的 accuracy 单独配置
- 增加启动后的请求拦截,在 translate.service 未完全初始化完成之前,禁止任何请求进入
- 增加腾讯混元大模型的接入支持
- 增加译文微调页面,目标域名校验以及翻译结果空字符校验
- 增加 noTranslateModel 无翻译模型通道的配置
- 增加 config.properties 中的 translate.service.set.networktimeout 配置
- 增加 BigModelUtil.trans 中 platform 参数传入,以更好适配各个平台精准匹配;
- 增加对 windows的适配
- 增加 translate.service.set.bigModel.appendPrompt 的设置,可以自定义追加提示词
- 增加控制台操作自定义术语的能力
- 优化将管理平台安装SSL页面线上静态layui样式引入替换为本地路径
- 优化域名管理列表加载慢问题去掉导航js引入
- 优化大模型对giteeai余额不足的拦截问题
- 优化 /admin/system/status.json 增加 gc 相关参数返回
- 优化 cache 序列化内存泄露问题
- 优化私有化部署的GIteeAI自动接入引导步骤
- 优化健康检查请求接口,对通道、redis、gc、线程池等进行全面检查
- 优化大模型拆分使用 ListUtil,而不再使用 JsonUtil,避免一些特殊文字如 null 会序列化异常的问题
- 优化 bigmodelUtil 的 textBeforeAfterHandle 下标异常问题
- 优化健康检查及响应非200将计入 error.log
- 优化 Ollama 的精准微调
- 优化 LibreTranslte 数组分割异常问题,同大模型的分割,每次只翻译其中一个,而非一次性翻译多个
- 优化重构授权体系
- 优化域名管理大模型字段检测如果不是giteeAI模型将不再显示,并且修改掉写入设置config配置文件没有空行问题
- 优化新增编辑域名模型时将域名管理中的大模型传值错误的model参数替换
- 优化域名管理保存大模型时giteeAI名称错误问题
- 优化 ServiceLoad 的翻译服务加载,避免极其频繁的从反射中加载类