From 61b017618aea90344050c9efec5101949261ec01 Mon Sep 17 00:00:00 2001 From: Gabe Yuan Date: Fri, 19 Jan 2024 17:55:18 +0800 Subject: [PATCH] feat: supported translation all when page opened --- src/config/i18n.js | 14 +++++++++----- src/config/index.js | 2 ++ src/libs/translator.js | 10 ++++++++++ src/views/Options/Setting.js | 4 ++-- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/config/i18n.js b/src/config/i18n.js index 00f5975..f79f2d6 100644 --- a/src/config/i18n.js +++ b/src/config/i18n.js @@ -183,13 +183,17 @@ export const I18N = { zh: `翻译服务`, en: `Translate Service`, }, - mouseover_translation: { - zh: `鼠标悬停翻译`, - en: `Mouseover translation`, + translate_timing: { + zh: `翻译时机`, + en: `Translate Timing`, }, mk_disable: { - zh: `禁用`, - en: `Disable`, + zh: `滚动加载(建议)`, + en: `Rolling Loading (Suggested)`, + }, + mk_pageopen: { + zh: `页面打开`, + en: `Page Open`, }, mk_mouseover: { zh: `鼠标悬停`, diff --git a/src/config/index.js b/src/config/index.js index dec4155..04944bc 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -298,12 +298,14 @@ export const OPT_STYLE_USE_COLOR = [ ]; export const OPT_MOUSEKEY_DISABLE = "mk_disable"; +export const OPT_MOUSEKEY_PAGEOPEN = "mk_pageopen"; export const OPT_MOUSEKEY_MOUSEOVER = "mk_mouseover"; export const OPT_MOUSEKEY_CONTROL = "mk_ctrlKey"; export const OPT_MOUSEKEY_SHIFT = "mk_shiftKey"; export const OPT_MOUSEKEY_ALT = "mk_altKey"; export const OPT_MOUSEKEY_ALL = [ OPT_MOUSEKEY_DISABLE, + OPT_MOUSEKEY_PAGEOPEN, OPT_MOUSEKEY_MOUSEOVER, OPT_MOUSEKEY_CONTROL, OPT_MOUSEKEY_SHIFT, diff --git a/src/libs/translator.js b/src/libs/translator.js index db0afec..fe18a89 100644 --- a/src/libs/translator.js +++ b/src/libs/translator.js @@ -8,6 +8,7 @@ import { OPT_STYLE_FUZZY, SHADOW_KEY, OPT_MOUSEKEY_DISABLE, + OPT_MOUSEKEY_PAGEOPEN, OPT_MOUSEKEY_MOUSEOVER, DEFAULT_TRANS_APIS, } from "../config"; @@ -293,6 +294,11 @@ export class Translator { this._tranNodes.forEach((_, node) => { this._interseObserver.observe(node); }); + } else if (this._setting.mouseKey === OPT_MOUSEKEY_PAGEOPEN) { + // 全文直接翻译 + this._tranNodes.forEach((_, node) => { + this._render(node); + }); } else { // 监听鼠标悬停 window.addEventListener("keydown", this._handleKeydown); @@ -376,6 +382,10 @@ export class Translator { // 移除已插入元素 node.querySelector(APP_LCNAME)?.remove(); }); + } else if (this._setting.mouseKey === OPT_MOUSEKEY_PAGEOPEN) { + this._tranNodes.forEach((_, node) => { + node.querySelector(APP_LCNAME)?.remove(); + }); } else { // 移除鼠标悬停监听 window.removeEventListener("keydown", this._handleKeydown); diff --git a/src/views/Options/Setting.js b/src/views/Options/Setting.js index 254f90f..aacb1f9 100644 --- a/src/views/Options/Setting.js +++ b/src/views/Options/Setting.js @@ -168,11 +168,11 @@ export default function Settings() { /> - {i18n("mouseover_translation")} + {i18n("translate_timing")}