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 }) {
+
+
+ {GlobalItem}
+
+
+
+