efront 4.8.2 → 4.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/coms/basic/parseKV.js
CHANGED
|
@@ -86,9 +86,53 @@
|
|
|
86
86
|
var baiduFanyiConfig = data.getInstance("fanyi-config");
|
|
87
87
|
var a = button;
|
|
88
88
|
var salt = `efront${Math.random().toString(36).slice(6, 16)}`;
|
|
89
|
-
var requestBaiduFanyi = async function (str, to, from = 'auto') {
|
|
89
|
+
var requestBaiduFanyi = async function (str, to, from = 'auto', nbr) {
|
|
90
90
|
var appid = baiduFanyiConfig.appid || "20210218000700622";
|
|
91
91
|
var sign = baiduFanyiConfig.sign || "xJf0dfXeJdzudCTBn3QS";
|
|
92
|
+
var limit = 6000;
|
|
93
|
+
if (str.length > limit || /[\r\n\u2028\u2029]/.test(str) && nbr !== false) {
|
|
94
|
+
var strs = [];
|
|
95
|
+
str.replace(/([^\r\n\u2028\u2029]*)([\r\n\u2028\u2029]*)/g, function (_, a, b) {
|
|
96
|
+
strs.push([a, b]);
|
|
97
|
+
});
|
|
98
|
+
var reqstr = [];
|
|
99
|
+
var reqbr = [];
|
|
100
|
+
var res = [];
|
|
101
|
+
var reqlength = 0;
|
|
102
|
+
var req = async function () {
|
|
103
|
+
var res = await requestBaiduFanyi(reqstr.join('\r\n'), to, from, false);
|
|
104
|
+
res = res.split("\r\n").map((a, i) => {
|
|
105
|
+
return a + reqbr[i];
|
|
106
|
+
}).join("");
|
|
107
|
+
return res;
|
|
108
|
+
};
|
|
109
|
+
for (var s of strs) {
|
|
110
|
+
var [a, b] = s;
|
|
111
|
+
if (a.length > limit) {
|
|
112
|
+
throw `i18n文本过长无法翻译!`;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
reqlength += a.length + 2;
|
|
116
|
+
if (reqlength > limit || !a && reqstr.length) {
|
|
117
|
+
res.push(await req());
|
|
118
|
+
await wait(200);
|
|
119
|
+
reqstr = [];
|
|
120
|
+
reqbr = [];
|
|
121
|
+
reqlength = a.length;
|
|
122
|
+
}
|
|
123
|
+
if (a) {
|
|
124
|
+
reqstr.push(a);
|
|
125
|
+
reqbr.push(b);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
res.push(b);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (reqlength) {
|
|
132
|
+
res.push(await req());
|
|
133
|
+
}
|
|
134
|
+
return res.join('');
|
|
135
|
+
}
|
|
92
136
|
var xhr = await cross("get", "https://fanyi-api.baidu.com/api/trans/vip/translate").send({
|
|
93
137
|
q: str,
|
|
94
138
|
from,
|
|
@@ -98,7 +142,10 @@
|
|
|
98
142
|
sign: md5(`${appid}${str}${salt}${sign}`),
|
|
99
143
|
});
|
|
100
144
|
var data = JSON.parse(xhr.response);
|
|
101
|
-
|
|
145
|
+
if (+data.error_code > 54000) {
|
|
146
|
+
throw data.error_msg;
|
|
147
|
+
}
|
|
148
|
+
return data.trans_result.map(a => a.dst).join('\r\n');
|
|
102
149
|
};
|
|
103
150
|
var editCode = function () {
|
|
104
151
|
supports.forEach(s => s.checked = false);
|
|
@@ -438,16 +485,21 @@
|
|
|
438
485
|
var liang = item.liang;
|
|
439
486
|
var text = item.text;
|
|
440
487
|
}
|
|
488
|
+
var from = 'auto';
|
|
441
489
|
if (!text) for (var k in fanyi) {
|
|
442
|
-
if (fanyi[k]) text = fanyi[k];
|
|
490
|
+
if (fanyi[k]) text = fanyi[k], from = k;
|
|
443
491
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
492
|
+
try {
|
|
493
|
+
for (var s of this.supports) {
|
|
494
|
+
if (fanyi[s.id] && fanyi[s.id].trim()) continue;
|
|
495
|
+
fanyi[s.id] = await requestBaiduFanyi(text, s.id, from);
|
|
496
|
+
liang++;
|
|
497
|
+
render.digest();
|
|
498
|
+
}
|
|
499
|
+
if (item) item.liang = liang;
|
|
500
|
+
} catch (e) {
|
|
501
|
+
alert(e, 'error');
|
|
449
502
|
}
|
|
450
|
-
if (item) item.liang = liang;
|
|
451
503
|
},
|
|
452
504
|
save() {
|
|
453
505
|
|