fix: optimize terms function
This commit is contained in:
@@ -46,7 +46,7 @@ export class Translator {
|
|||||||
_eventName = genEventName();
|
_eventName = genEventName();
|
||||||
_mouseoverNode = null;
|
_mouseoverNode = null;
|
||||||
_keepSelector = [null, null];
|
_keepSelector = [null, null];
|
||||||
_terms = new Map();
|
_terms = [];
|
||||||
_docTitle = "";
|
_docTitle = "";
|
||||||
|
|
||||||
// 显示
|
// 显示
|
||||||
@@ -111,13 +111,10 @@ export class Translator {
|
|||||||
this._keepSelector = (rule.keepSelector || "")
|
this._keepSelector = (rule.keepSelector || "")
|
||||||
.split(SHADOW_KEY)
|
.split(SHADOW_KEY)
|
||||||
.map((item) => item.trim());
|
.map((item) => item.trim());
|
||||||
const terms = (rule.terms || "")
|
this._terms = (rule.terms || "")
|
||||||
.split(/\n|;/)
|
.split(/\n|;/)
|
||||||
.map((item) => item.split(",").map((item) => item.trim()))
|
.map((item) => item.split(",").map((item) => item.trim()))
|
||||||
.filter(([term]) => Boolean(term));
|
.filter(([term]) => Boolean(term));
|
||||||
if (terms.length > 0) {
|
|
||||||
this._terms = new Map(terms);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rule.transOpen === "true") {
|
if (rule.transOpen === "true") {
|
||||||
this._register();
|
this._register();
|
||||||
@@ -475,13 +472,15 @@ export class Translator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 专业术语
|
// 专业术语
|
||||||
if (this._terms.size > 0) {
|
if (this._terms.length > 0) {
|
||||||
const re = new RegExp([...this._terms.keys()].join("|"), "g");
|
for (let term of this._terms) {
|
||||||
q = q.replace(re, (term) => {
|
const re = new RegExp(term[0], "g");
|
||||||
const text = `[${keeps.length}]`;
|
q = q.replace(re, (t) => {
|
||||||
keeps.push(this._terms.get(term) || term);
|
const text = `[${keeps.length}]`;
|
||||||
return text;
|
keeps.push(term[1] || t);
|
||||||
});
|
return text;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
traEl = document.createElement(APP_LCNAME);
|
traEl = document.createElement(APP_LCNAME);
|
||||||
|
|||||||
Reference in New Issue
Block a user