diff --git a/src/common.js b/src/common.js index 1fe449b..1206115 100644 --- a/src/common.js +++ b/src/common.js @@ -135,15 +135,18 @@ async function showFab(translator) { * @param {*} param0 * @returns */ -function showTransbox({ - contextMenuType, - tranboxSetting = DEFAULT_TRANBOX_SETTING, - transApis, - darkMode, - uiLang, - langDetector, -}) { - if (!tranboxSetting?.transOpen) { +function showTransbox( + { + contextMenuType, + tranboxSetting = DEFAULT_TRANBOX_SETTING, + transApis, + darkMode, + uiLang, + langDetector, + }, + { transSelected } +) { + if (transSelected === "false") { return; } @@ -251,7 +254,7 @@ export async function run(isUserscript = false) { inputTranslate(setting); // 划词翻译 - showTransbox(setting); + showTransbox(setting, rule); // 浮球按钮 await showFab(translator); diff --git a/src/config/i18n.js b/src/config/i18n.js index be16fe9..f556c6d 100644 --- a/src/config/i18n.js +++ b/src/config/i18n.js @@ -962,4 +962,8 @@ export const I18N = { zh: `是否禁用`, en: `Is Disabled`, }, + translate_selected: { + zh: `是否启用划词翻译`, + en: `If translate selected`, + } }; diff --git a/src/config/index.js b/src/config/index.js index 5448ab2..acb1cd0 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -463,6 +463,7 @@ export const GLOBLA_RULE = { transTiming: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译 transTag: DEFAULT_TRANS_TAG, // 译文元素标签 transTitle: "false", // 是否同时翻译页面标题 + transSelected: "true", // 是否启用划词翻译 detectRemote: "false", // 是否使用远程语言检测 skipLangs: [], // 不翻译的语言 fixerSelector: "", // 修复函数选择器 @@ -501,7 +502,7 @@ export const OPT_TRANBOX_TRIGGER_ALL = [ ]; export const DEFAULT_TRANBOX_SHORTCUT = ["AltLeft", "KeyS"]; export const DEFAULT_TRANBOX_SETTING = { - transOpen: true, + // transOpen: true, // 是否启用划词翻译(作废,移至rule) translator: OPT_TRANS_MICROSOFT, fromLang: "auto", toLang: "zh-CN", diff --git a/src/config/rules.js b/src/config/rules.js index 38825f9..a7bd131 100644 --- a/src/config/rules.js +++ b/src/config/rules.js @@ -26,6 +26,7 @@ export const DEFAULT_RULE = { transTiming: GLOBAL_KEY, // 翻译时机/鼠标悬停翻译 transTag: GLOBAL_KEY, // 译文元素标签 transTitle: GLOBAL_KEY, // 是否同时翻译页面标题 + transSelected: GLOBAL_KEY, // 是否启用划词翻译 detectRemote: GLOBAL_KEY, // 是否使用远程语言检测 skipLangs: [], // 不翻译的语言 fixerSelector: "", // 修复函数选择器 diff --git a/src/libs/rules.js b/src/libs/rules.js index 99082cd..af9be8e 100644 --- a/src/libs/rules.js +++ b/src/libs/rules.js @@ -92,6 +92,7 @@ export const matchRule = async ( "transTiming", "transTag", "transTitle", + "transSelected", "detectRemote", "fixerFunc", ].forEach((key) => { @@ -161,6 +162,7 @@ export const checkRules = (rules) => { transTiming, transTag, transTitle, + transSelected, detectRemote, skipLangs, fixerSelector, @@ -188,6 +190,7 @@ export const checkRules = (rules) => { transTiming: matchValue([GLOBAL_KEY, ...OPT_TIMING_ALL], transTiming), transTag: matchValue([GLOBAL_KEY, "span", "font"], transTag), transTitle: matchValue([GLOBAL_KEY, "true", "false"], transTitle), + transSelected: matchValue([GLOBAL_KEY, "true", "false"], transSelected), detectRemote: matchValue([GLOBAL_KEY, "true", "false"], detectRemote), skipLangs: type(skipLangs) === "array" ? skipLangs : [], fixerSelector: type(fixerSelector) === "string" ? fixerSelector : "", diff --git a/src/views/Options/Rules.js b/src/views/Options/Rules.js index 129a55b..ba3d88f 100644 --- a/src/views/Options/Rules.js +++ b/src/views/Options/Rules.js @@ -93,6 +93,7 @@ function RuleFields({ rule, rules, setShow, setKeyword }) { transTiming = OPT_TIMING_PAGESCROLL, transTag = DEFAULT_TRANS_TAG, transTitle = "false", + transSelected = "true", detectRemote = "false", skipLangs = [], fixerSelector = "", @@ -413,6 +414,22 @@ function RuleFields({ rule, rules, setShow, setKeyword }) { {i18n("enable")} + + + {GlobalItem} + {i18n("disable")} + {i18n("enable")} + +