diff --git a/src/config/api.js b/src/config/api.js
index 714044a..1d30682 100644
--- a/src/config/api.js
+++ b/src/config/api.js
@@ -56,6 +56,13 @@ export const OPT_ALL_TYPES = [
OPT_TRANS_CUSTOMIZE,
];
+export const OPT_LANGDETECTOR_ALL = [
+ OPT_TRANS_GOOGLE,
+ OPT_TRANS_MICROSOFT,
+ OPT_TRANS_BAIDU,
+ OPT_TRANS_TENCENT,
+];
+
// 翻译引擎特殊集合
export const API_SPE_TYPES = {
// 内置翻译
@@ -114,15 +121,9 @@ export const API_SPE_TYPES = {
OPT_TRANS_OPENROUTER,
OPT_TRANS_CUSTOMIZE,
]),
+ detector: new Set(OPT_LANGDETECTOR_ALL),
};
-export const OPT_LANGDETECTOR_ALL = [
- OPT_TRANS_GOOGLE,
- OPT_TRANS_MICROSOFT,
- OPT_TRANS_BAIDU,
- OPT_TRANS_TENCENT,
-];
-
export const BUILTIN_STONES = [
"formal", // 正式风格
"casual", // 口语风格
diff --git a/src/config/i18n.js b/src/config/i18n.js
index 9850da4..9447de1 100644
--- a/src/config/i18n.js
+++ b/src/config/i18n.js
@@ -344,6 +344,11 @@ export const I18N = {
en: `Translate Service`,
zh_TW: `翻譯服務`,
},
+ translate_service_multiple: {
+ zh: `翻译服务 (支持多选)`,
+ en: `Translation service (multiple supported)`,
+ zh_TW: `翻譯服務 (支援多選)`,
+ },
translate_timing: {
zh: `翻译时机`,
en: `Translate Timing`,
diff --git a/src/config/setting.js b/src/config/setting.js
index 6066974..e4d52e0 100644
--- a/src/config/setting.js
+++ b/src/config/setting.js
@@ -74,7 +74,7 @@ export const OPT_TRANBOX_TRIGGER_ALL = [
export const DEFAULT_TRANBOX_SHORTCUT = ["AltLeft", "KeyS"];
export const DEFAULT_TRANBOX_SETTING = {
transOpen: true, // 是否启用划词翻译
- apiSlug: OPT_TRANS_MICROSOFT,
+ apiSlugs: [OPT_TRANS_MICROSOFT],
fromLang: "auto",
toLang: "zh-CN",
toLang2: "en",
@@ -127,7 +127,7 @@ export const DEFAULT_SETTING = {
injectRules: true, // 是否注入订阅规则
fabClickAction: 0, // 悬浮按钮点击行为
// injectWebfix: true, // 是否注入修复补丁(作废)
- detectRemote: false, // 是否使用远程语言检测 (从rule移回)
+ // detectRemote: false, // 是否使用远程语言检测 (从rule移回)
// contextMenus: true, // 是否添加右键菜单(作废)
contextMenuType: 1, // 右键菜单类型(0不显示,1简单菜单,2多级菜单)
// transTag: DEFAULT_TRANS_TAG, // 译文元素标签(移至rule,作废)
@@ -146,7 +146,7 @@ export const DEFAULT_SETTING = {
// disableLangs: [], // 不翻译的语言(移至rule,作废)
skipLangs: [], // 不翻译的语言(从rule移回)
transInterval: 100, // 翻译等待时间
- langDetector: OPT_TRANS_MICROSOFT, // 远程语言识别服务
+ langDetector: "-", // 远程语言识别服务
mouseHoverSetting: DEFAULT_MOUSE_HOVER_SETTING, // 鼠标悬停翻译
preInit: true, // 是否预加载脚本
transAllnow: false, // 是否立即全部翻译
diff --git a/src/libs/detect.js b/src/libs/detect.js
index 7745a53..98caff2 100644
--- a/src/libs/detect.js
+++ b/src/libs/detect.js
@@ -5,6 +5,7 @@ import {
OPT_TRANS_TENCENT,
OPT_LANGS_TO_CODE,
OPT_LANGS_MAP,
+ API_SPE_TYPES,
} from "../config";
import { browser } from "./browser";
import {
@@ -27,15 +28,11 @@ const langdetectFns = {
* @param {*} text
* @returns
*/
-export const tryDetectLang = async (
- text,
- detectRemote = true,
- langDetector = OPT_TRANS_MICROSOFT
-) => {
+export const tryDetectLang = async (text, langDetector = "-") => {
let deLang = "";
// 远程识别
- if (detectRemote && langDetector) {
+ if (API_SPE_TYPES.detector.has(langDetector)) {
try {
const lang = await langdetectFns[langDetector](text);
if (lang) {
diff --git a/src/libs/translator.js b/src/libs/translator.js
index ef1bee6..844364e 100644
--- a/src/libs/translator.js
+++ b/src/libs/translator.js
@@ -849,14 +849,9 @@ export class Translator {
// 提前进行语言检测
let deLang = "";
const { fromLang = "auto", toLang } = this.#rule;
- const { detectRemote, skipLangs = [] } = this.#setting;
+ const { langDetector, skipLangs = [] } = this.#setting;
if (fromLang === "auto") {
- const { langDetector } = this.#setting;
- deLang = await tryDetectLang(
- node.textContent,
- detectRemote,
- langDetector
- );
+ deLang = await tryDetectLang(node.textContent, langDetector);
if (
deLang &&
(toLang.slice(0, 2) === deLang.slice(0, 2) ||
diff --git a/src/views/Options/Setting.js b/src/views/Options/Setting.js
index c7d0c5d..e62259e 100644
--- a/src/views/Options/Setting.js
+++ b/src/views/Options/Setting.js
@@ -13,7 +13,6 @@ import {
UI_LANGS,
TRANS_NEWLINE_LENGTH,
CACHE_NAME,
- OPT_TRANS_MICROSOFT,
OPT_LANGDETECTOR_ALL,
OPT_SHORTCUT_TRANSLATE,
OPT_SHORTCUT_STYLE,
@@ -118,10 +117,10 @@ export default function Settings() {
blacklist = DEFAULT_BLACKLIST.join(",\n"),
csplist = DEFAULT_CSPLIST.join(",\n"),
transInterval = 100,
- langDetector = OPT_TRANS_MICROSOFT,
+ langDetector = "-",
preInit = true,
skipLangs = [],
- detectRemote = true,
+ // detectRemote = true,
transAllnow = false,
} = setting;
const { isHide = false, fabClickAction = 0 } = fab || {};
@@ -315,7 +314,7 @@ export default function Settings() {
-
+ {/*
{i18n("enable")}
-
+ */}
+
{OPT_LANGDETECTOR_ALL.map((item) => (