detect lang remote

This commit is contained in:
Gabe Yuan
2023-10-11 10:27:51 +08:00
parent dd99fddc07
commit 791ec65579
5 changed files with 35 additions and 2 deletions

View File

@@ -595,4 +595,20 @@ export const I18N = {
zh: `标识后面可以加目标语言代码,如: “/en 你好”、“/zh hello”`, zh: `标识后面可以加目标语言代码,如: “/en 你好”、“/zh hello”`,
en: `The target language code can be added after the sign, such as: "/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`,
},
}; };

View File

@@ -319,6 +319,7 @@ export const DEFAULT_SETTING = {
clearCache: false, // 是否在浏览器下次启动时清除缓存 clearCache: false, // 是否在浏览器下次启动时清除缓存
injectRules: true, // 是否注入订阅规则 injectRules: true, // 是否注入订阅规则
injectWebfix: true, // 是否注入修复补丁 injectWebfix: true, // 是否注入修复补丁
detectRemote: false, // 是否使用远程语言检测
subrulesList: DEFAULT_SUBRULES_LIST, // 订阅列表 subrulesList: DEFAULT_SUBRULES_LIST, // 订阅列表
owSubrule: DEFAULT_OW_RULE, // 覆写订阅规则 owSubrule: DEFAULT_OW_RULE, // 覆写订阅规则
transApis: DEFAULT_TRANS_APIS, // 翻译接口 transApis: DEFAULT_TRANS_APIS, // 翻译接口

View File

@@ -23,7 +23,7 @@ export function useTranslate(q, rule, setting) {
try { try {
setLoading(true); setLoading(true);
const deLang = await tryDetectLang(q, true); const deLang = await tryDetectLang(q, setting.detectRemote);
if (deLang && toLang.includes(deLang)) { if (deLang && toLang.includes(deLang)) {
setSamelang(true); setSamelang(true);
} else { } else {

View File

@@ -363,6 +363,7 @@ export class Translator {
const apiSetting = (this._setting.transApis || DEFAULT_TRANS_APIS)[ const apiSetting = (this._setting.transApis || DEFAULT_TRANS_APIS)[
translator translator
]; ];
const { detectRemote } = this._setting;
let triggerShortcut = initTriggerShortcut; let triggerShortcut = initTriggerShortcut;
let triggerCount = initTriggerCount; let triggerCount = initTriggerCount;
@@ -421,7 +422,7 @@ export class Translator {
try { try {
addLoading(node, loadingId); addLoading(node, loadingId);
const deLang = await tryDetectLang(text, true); const deLang = await tryDetectLang(text, detectRemote);
if (deLang && toLang.includes(deLang)) { if (deLang && toLang.includes(deLang)) {
return; return;
} }

View File

@@ -85,6 +85,7 @@ export default function Settings() {
clearCache, clearCache,
newlineLength = TRANS_NEWLINE_LENGTH, newlineLength = TRANS_NEWLINE_LENGTH,
mouseKey = OPT_MOUSEKEY_DISABLE, mouseKey = OPT_MOUSEKEY_DISABLE,
detectRemote = false,
} = setting; } = setting;
const { isHide = false } = fab || {}; const { isHide = false } = fab || {};
@@ -183,6 +184,20 @@ export default function Settings() {
</Select> </Select>
</FormControl> </FormControl>
<FormControl size="small">
<InputLabel>{i18n("detect_lang_remote")}</InputLabel>
<Select
name="detectRemote"
value={detectRemote}
label={i18n("detect_lang_remote")}
onChange={handleChange}
>
<MenuItem value={false}>{i18n("disable")}</MenuItem>
<MenuItem value={true}>{i18n("enable")}</MenuItem>
</Select>
<FormHelperText>{i18n("detect_lang_remote_help")}</FormHelperText>
</FormControl>
{isExt ? ( {isExt ? (
<FormControl size="small"> <FormControl size="small">
<InputLabel>{i18n("if_clear_cache")}</InputLabel> <InputLabel>{i18n("if_clear_cache")}</InputLabel>