feat: add translate interval setting

This commit is contained in:
Gabe Yuan
2024-03-17 12:09:32 +08:00
parent 61ef5df559
commit 75830aaea7
3 changed files with 21 additions and 1 deletions

View File

@@ -167,6 +167,10 @@ export const I18N = {
zh: `请求间隔时间 (0-5000ms)`, zh: `请求间隔时间 (0-5000ms)`,
en: `Request Interval (0-5000ms)`, en: `Request Interval (0-5000ms)`,
}, },
translate_interval: {
zh: `翻译间隔时间 (100-5000ms)`,
en: `Translate Interval (100-5000ms)`,
},
min_translate_length: { min_translate_length: {
zh: `最小翻译长度 (1-100)`, zh: `最小翻译长度 (1-100)`,
en: `Min Translate Length (1-100)`, en: `Min Translate Length (1-100)`,

View File

@@ -430,10 +430,13 @@ export class Translator {
_reTranslate = debounce(() => { _reTranslate = debounce(() => {
if (this._rule.transOpen === "true") { if (this._rule.transOpen === "true") {
window.removeEventListener("keydown", this._handleKeydown);
this._mutaObserver.disconnect();
this._interseObserver.disconnect();
this._removeInjector(); this._removeInjector();
this._register(); this._register();
} }
}, 500); }, this._setting.transInterval);
_invalidLength = (q) => _invalidLength = (q) =>
!q || !q ||

View File

@@ -52,6 +52,9 @@ export default function Settings() {
case "fetchInterval": case "fetchInterval":
value = limitNumber(value, 0, 5000); value = limitNumber(value, 0, 5000);
break; break;
case "transInterval":
value = limitNumber(value, 100, 5000);
break;
case "minLength": case "minLength":
value = limitNumber(value, 1, 100); value = limitNumber(value, 1, 100);
break; break;
@@ -94,6 +97,7 @@ export default function Settings() {
contextMenuType = 1, contextMenuType = 1,
touchTranslate = 2, touchTranslate = 2,
blacklist = DEFAULT_BLACKLIST.join(",\n"), blacklist = DEFAULT_BLACKLIST.join(",\n"),
transInterval = 500,
} = setting; } = setting;
const { isHide = false } = fab || {}; const { isHide = false } = fab || {};
@@ -134,6 +138,15 @@ export default function Settings() {
onChange={handleChange} onChange={handleChange}
/> />
<TextField
size="small"
label={i18n("translate_interval")}
type="number"
name="transInterval"
defaultValue={transInterval}
onChange={handleChange}
/>
<TextField <TextField
size="small" size="small"
label={i18n("min_translate_length")} label={i18n("min_translate_length")}