diff --git a/src/config/i18n.js b/src/config/i18n.js
index a67b2cb..94a0f78 100644
--- a/src/config/i18n.js
+++ b/src/config/i18n.js
@@ -687,4 +687,12 @@ export const I18N = {
zh: `禁用翻译名单`,
en: `Translate Blacklist`,
},
+ disable_langs: {
+ zh: `不翻译的语言`,
+ en: `Disable Languages`,
+ },
+ disable_langs_helper: {
+ zh: `此功能依赖准确的语言检测,建议启用远程语言检测。`,
+ en: `This feature relies on accurate language detection. It is recommended to enable remote language detection.`,
+ }
};
diff --git a/src/config/index.js b/src/config/index.js
index 65c5eb4..dc2cab0 100644
--- a/src/config/index.js
+++ b/src/config/index.js
@@ -441,6 +441,7 @@ export const DEFAULT_SETTING = {
tranboxSetting: DEFAULT_TRANBOX_SETTING, // 划词翻译设置
touchTranslate: 2, // 触屏翻译
blacklist: DEFAULT_BLACKLIST.join(",\n"), // 禁用翻译名单
+ disableLangs: [], // 不翻译的语言
};
export const DEFAULT_RULES = [GLOBLA_RULE];
diff --git a/src/hooks/Translate.js b/src/hooks/Translate.js
index 14052d5..80ad96f 100644
--- a/src/hooks/Translate.js
+++ b/src/hooks/Translate.js
@@ -24,7 +24,11 @@ export function useTranslate(q, rule, setting) {
setLoading(true);
const deLang = await tryDetectLang(q, setting.detectRemote);
- if (deLang && toLang.includes(deLang)) {
+ const disableLangs = setting.disableLangs || [];
+ if (
+ deLang &&
+ (toLang.includes(deLang) || disableLangs.includes(deLang))
+ ) {
setSamelang(true);
} else {
const [trText, isSame] = await apiTranslate({
diff --git a/src/views/Options/Setting.js b/src/views/Options/Setting.js
index 9a10971..f9a2e12 100644
--- a/src/views/Options/Setting.js
+++ b/src/views/Options/Setting.js
@@ -23,6 +23,7 @@ import {
OPT_SHORTCUT_STYLE,
OPT_SHORTCUT_POPUP,
OPT_SHORTCUT_SETTING,
+ OPT_LANGS_TO,
DEFAULT_BLACKLIST,
} from "../../config";
import { useShortcut } from "../../hooks/Shortcut";
@@ -43,6 +44,7 @@ export default function Settings() {
const { fab, updateFab } = useFab();
const handleChange = (e) => {
+ console.log("e", e);
e.preventDefault();
let { name, value } = e.target;
switch (name) {
@@ -92,6 +94,7 @@ export default function Settings() {
detectRemote = false,
touchTranslate = 2,
blacklist = DEFAULT_BLACKLIST.join(",\n"),
+ disableLangs = [],
} = setting;
const { isHide = false } = fab || {};
@@ -220,6 +223,24 @@ export default function Settings() {
{i18n("detect_lang_remote_help")}
+
+ {i18n("disable_langs")}
+
+ {i18n("disable_langs_helper")}
+
+
{isExt ? (
{i18n("if_clear_cache")}