diff --git a/src/config/i18n.js b/src/config/i18n.js
index 334a23f..3601899 100644
--- a/src/config/i18n.js
+++ b/src/config/i18n.js
@@ -1864,6 +1864,16 @@ export const I18N = {
en: `Style Code`,
zh_TW: `樣式程式碼`,
},
+ pre_trans_seconds: {
+ zh: `提前翻译时长 (10-36000s)`,
+ en: `Pre translation seconds (10-36000s)`,
+ zh_TW: `提前翻译时长 (10-36000s)`,
+ },
+ throttle_trans_interval: {
+ zh: `节流翻译间隔 (1-3600s)`,
+ en: `Throttling translation interval (1-3600s)`,
+ zh_TW: `节流翻译间隔 (1-3600s)`,
+ },
};
export const newI18n = (lang) => (key) => I18N[key]?.[lang] || "";
diff --git a/src/config/setting.js b/src/config/setting.js
index 682a7ef..9c26b43 100644
--- a/src/config/setting.js
+++ b/src/config/setting.js
@@ -112,6 +112,8 @@ export const DEFAULT_SUBTITLE_SETTING = {
apiSlug: OPT_TRANS_MICROSOFT,
segSlug: "-", // AI智能断句
chunkLength: 1000, // AI处理切割长度
+ preTrans: 90, // 提前翻译时长
+ throttleTrans: 30, // 节流翻译间隔
// fromLang: "en",
toLang: "zh-CN",
isBilingual: true, // 是否双语显示
diff --git a/src/subtitle/BilingualSubtitleManager.js b/src/subtitle/BilingualSubtitleManager.js
index a89ff24..2f9eb04 100644
--- a/src/subtitle/BilingualSubtitleManager.js
+++ b/src/subtitle/BilingualSubtitleManager.js
@@ -12,8 +12,8 @@ export class BilingualSubtitleManager {
#captionWindowEl = null;
#paperEl = null;
#currentSubtitleIndex = -1;
- #preTranslateSeconds = 90;
- #throttleSeconds = 30;
+ // #preTranslateSeconds = 90;
+ // #throttleSeconds = 30;
#setting = {};
#isAdPlaying = false;
#throttledTriggerTranslations;
@@ -34,7 +34,7 @@ export class BilingualSubtitleManager {
this.#throttledTriggerTranslations = throttle(
this.#triggerTranslations.bind(this),
- this.#throttleSeconds * 1000
+ (setting.throttleTrans ?? 30) * 1000
);
}
@@ -294,7 +294,8 @@ export class BilingualSubtitleManager {
* @param {number} currentTimeMs
*/
#triggerTranslations(currentTimeMs) {
- const lookAheadMs = this.#preTranslateSeconds * 1000;
+ const { preTrans = 90 } = this.#setting;
+ const lookAheadMs = preTrans * 1000;
for (const sub of this.#formattedSubtitles) {
const isCurrent = sub.start <= currentTimeMs && sub.end >= currentTimeMs;
diff --git a/src/views/Options/Subtitle.js b/src/views/Options/Subtitle.js
index bcf00b6..bbb33fa 100644
--- a/src/views/Options/Subtitle.js
+++ b/src/views/Options/Subtitle.js
@@ -30,6 +30,8 @@ export default function SubtitleSetting() {
apiSlug,
segSlug,
chunkLength,
+ preTrans = 90,
+ throttleTrans = 30,
toLang,
isBilingual,
skipAd = false,
@@ -114,6 +116,32 @@ export default function SubtitleSetting() {
max={20000}
/>
+
+
+
+
+
+