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")}