diff --git a/src/config/rules.js b/src/config/rules.js index 02fce65..1f792fb 100644 --- a/src/config/rules.js +++ b/src/config/rules.js @@ -224,6 +224,11 @@ const RULES_MAP = { rootsSelector: `ytd-page-manager`, ignoreSelector: `aside, button, footer, form, header, pre, mark, nav, #player, #container, .caption-window, .ytp-settings-menu`, }, + "web.telegram.org": { + autoScan: `false`, + selector: ".text-content, .embedded-text-wrapper", + rootsSelector: ".Transition", + }, }; export const BUILTIN_RULES = Object.entries(RULES_MAP).map( diff --git a/src/libs/translator.js b/src/libs/translator.js index c3a96d1..2f10a4a 100644 --- a/src/libs/translator.js +++ b/src/libs/translator.js @@ -261,13 +261,17 @@ export class Translator { } // 内置忽略元素 + static KISS_IGNORE_SELECTOR = `${APP_LCNAME}, .kiss-caption-container, .kiss-subtitle-controls + #${APP_CONSTS.fabID}, .${APP_CONSTS.fabID}_warpper, + #${APP_CONSTS.boxID}, .${APP_CONSTS.boxID}_warpper, + #${APP_CONSTS.popupID}, .${APP_CONSTS.popupID}_warpper`; + static BUILTIN_IGNORE_SELECTOR = `address, area, audio, br, canvas, data, datalist, embed, head, iframe, input, noscript, map, object, option, param, picture, progress, select, script, style, track, textarea, template, video, wbr, .notranslate, [contenteditable], [translate='no'], - ${APP_LCNAME}, #${APP_CONSTS.fabID}, #${APP_CONSTS.boxID}, - .${APP_CONSTS.fabID}_warpper, .${APP_CONSTS.boxID}_warpper`; + ${Translator.KISS_IGNORE_SELECTOR}`; #setting; // 设置选项 #rule; // 规则 @@ -314,6 +318,10 @@ export class Translator { // 忽略元素 get #ignoreSelector() { + if (this.#rule.autoScan === "false") { + return `${Translator.KISS_IGNORE_SELECTOR}, ${this.#rule.ignoreSelector}`; + } + return `${Translator.BUILTIN_IGNORE_SELECTOR}, ${this.#rule.ignoreSelector}`; } diff --git a/src/subtitle/YouTubeCaptionProvider.js b/src/subtitle/YouTubeCaptionProvider.js index 63e1ec1..b656612 100644 --- a/src/subtitle/YouTubeCaptionProvider.js +++ b/src/subtitle/YouTubeCaptionProvider.js @@ -165,14 +165,14 @@ class YouTubeCaptionProvider { this.#ytControls = ytControls; const kissControls = document.createElement("div"); - kissControls.className = "kiss-bilingual-subtitle-controls"; + kissControls.className = "notranslate kiss-subtitle-controls"; Object.assign(kissControls.style, { height: "100%", }); const toggleButton = document.createElement("button"); toggleButton.className = - "ytp-button notranslate kiss-bilingual-subtitle-button"; + "ytp-button kiss-subtitle-button"; toggleButton.title = APP_NAME; Object.assign(toggleButton.style, { color: "white",