From 791ec655792efda22de57d3020c1e012ce6c4c4b Mon Sep 17 00:00:00 2001 From: Gabe Yuan Date: Wed, 11 Oct 2023 10:27:51 +0800 Subject: [PATCH] detect lang remote --- src/config/i18n.js | 16 ++++++++++++++++ src/config/index.js | 1 + src/hooks/Translate.js | 2 +- src/libs/translator.js | 3 ++- src/views/Options/Setting.js | 15 +++++++++++++++ 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/config/i18n.js b/src/config/i18n.js index b0756aa..5118be2 100644 --- a/src/config/i18n.js +++ b/src/config/i18n.js @@ -595,4 +595,20 @@ export const I18N = { zh: `标识后面可以加目标语言代码,如: “/en 你好”、“/zh hello”`, en: `The target language code can be added after the sign, such as: "/en 你好", "/zh hello"`, }, + detect_lang_remote: { + zh: `远程语言检测`, + en: `Remote language detection`, + }, + detect_lang_remote_help: { + zh: `启用后检测准确度增加,但会降低翻译速度,请酌情开启`, + en: `After enabling, the detection accuracy will increase, but it will reduce the translation speed. Please enable it as appropriate.`, + }, + disable: { + zh: `禁用`, + en: `Disable`, + }, + enable: { + zh: `启用`, + en: `Enable`, + }, }; diff --git a/src/config/index.js b/src/config/index.js index 44723ea..8684b21 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -319,6 +319,7 @@ export const DEFAULT_SETTING = { clearCache: false, // 是否在浏览器下次启动时清除缓存 injectRules: true, // 是否注入订阅规则 injectWebfix: true, // 是否注入修复补丁 + detectRemote: false, // 是否使用远程语言检测 subrulesList: DEFAULT_SUBRULES_LIST, // 订阅列表 owSubrule: DEFAULT_OW_RULE, // 覆写订阅规则 transApis: DEFAULT_TRANS_APIS, // 翻译接口 diff --git a/src/hooks/Translate.js b/src/hooks/Translate.js index db4d19c..74223fc 100644 --- a/src/hooks/Translate.js +++ b/src/hooks/Translate.js @@ -23,7 +23,7 @@ export function useTranslate(q, rule, setting) { try { setLoading(true); - const deLang = await tryDetectLang(q, true); + const deLang = await tryDetectLang(q, setting.detectRemote); if (deLang && toLang.includes(deLang)) { setSamelang(true); } else { diff --git a/src/libs/translator.js b/src/libs/translator.js index e088f4f..e4edafb 100644 --- a/src/libs/translator.js +++ b/src/libs/translator.js @@ -363,6 +363,7 @@ export class Translator { const apiSetting = (this._setting.transApis || DEFAULT_TRANS_APIS)[ translator ]; + const { detectRemote } = this._setting; let triggerShortcut = initTriggerShortcut; let triggerCount = initTriggerCount; @@ -421,7 +422,7 @@ export class Translator { try { addLoading(node, loadingId); - const deLang = await tryDetectLang(text, true); + const deLang = await tryDetectLang(text, detectRemote); if (deLang && toLang.includes(deLang)) { return; } diff --git a/src/views/Options/Setting.js b/src/views/Options/Setting.js index d977d30..a55e0c6 100644 --- a/src/views/Options/Setting.js +++ b/src/views/Options/Setting.js @@ -85,6 +85,7 @@ export default function Settings() { clearCache, newlineLength = TRANS_NEWLINE_LENGTH, mouseKey = OPT_MOUSEKEY_DISABLE, + detectRemote = false, } = setting; const { isHide = false } = fab || {}; @@ -183,6 +184,20 @@ export default function Settings() { + + {i18n("detect_lang_remote")} + + {i18n("detect_lang_remote_help")} + + {isExt ? ( {i18n("if_clear_cache")}