起因
- 前端活动需要
- 日本包本地化需要初始化页面文案汇总
- 前端活动需要
- 服务端文字替换
功能
- 文案提取
- 将提取的导出txt或者Excel
- 文字翻译
实现
百度API接口文档
- api.fanyi.baidu.com/doc/21
- 传入信息
- 返回信息
要翻译的内容,如何处理进行传参数?怎么过滤不同语言的代码标签?
- 只提取中文,将页面中午汇总成字符串进行请求。
var reg = /[\u4e00-\u9fa5]+/g;
let query =this.text.match(reg).join();
console.log('需要传递到参数:',query)
- 处理后内容
获取回来的是字符串,如何实现匹配内容进行替换?
-
问题
-
解决方案
console.log('拿到的内容',res.data);
const {trans_result}=res.data;
let arrSrc = trans_result[0].src.split(',');
let arrDst = trans_result[0].dst.match(reg);
console.log(arrSrc,arrDst)
this.after=this.text.replace(reg,res=>{
let val=''
arrSrc.some((item,index)=>{
if(item==res) val= arrDst[index];
})
return val;
})
将返回内容src通过‘,’号进行分割为数组
将返回内容dst通过‘,’号进行分割为数组
将返回的页面匹配到中文进行对比,如果一样,通过索引,将dst内容取回
文字过多导致请求失败,如何处理?
通过动态IP方式进行处理 将内容数量进行管控。超出即分批进行请求。拿到所有数据后统一进行替换
用户体验建议?
- 直接将要翻译的文件拖入目标文件夹
- 开完发手动将目标内容放入翻译框