feat: pre translate time
This commit is contained in:
@@ -1864,6 +1864,16 @@ export const I18N = {
|
|||||||
en: `Style Code`,
|
en: `Style Code`,
|
||||||
zh_TW: `樣式程式碼`,
|
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] || "";
|
export const newI18n = (lang) => (key) => I18N[key]?.[lang] || "";
|
||||||
|
|||||||
@@ -112,6 +112,8 @@ export const DEFAULT_SUBTITLE_SETTING = {
|
|||||||
apiSlug: OPT_TRANS_MICROSOFT,
|
apiSlug: OPT_TRANS_MICROSOFT,
|
||||||
segSlug: "-", // AI智能断句
|
segSlug: "-", // AI智能断句
|
||||||
chunkLength: 1000, // AI处理切割长度
|
chunkLength: 1000, // AI处理切割长度
|
||||||
|
preTrans: 90, // 提前翻译时长
|
||||||
|
throttleTrans: 30, // 节流翻译间隔
|
||||||
// fromLang: "en",
|
// fromLang: "en",
|
||||||
toLang: "zh-CN",
|
toLang: "zh-CN",
|
||||||
isBilingual: true, // 是否双语显示
|
isBilingual: true, // 是否双语显示
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ export class BilingualSubtitleManager {
|
|||||||
#captionWindowEl = null;
|
#captionWindowEl = null;
|
||||||
#paperEl = null;
|
#paperEl = null;
|
||||||
#currentSubtitleIndex = -1;
|
#currentSubtitleIndex = -1;
|
||||||
#preTranslateSeconds = 90;
|
// #preTranslateSeconds = 90;
|
||||||
#throttleSeconds = 30;
|
// #throttleSeconds = 30;
|
||||||
#setting = {};
|
#setting = {};
|
||||||
#isAdPlaying = false;
|
#isAdPlaying = false;
|
||||||
#throttledTriggerTranslations;
|
#throttledTriggerTranslations;
|
||||||
@@ -34,7 +34,7 @@ export class BilingualSubtitleManager {
|
|||||||
|
|
||||||
this.#throttledTriggerTranslations = throttle(
|
this.#throttledTriggerTranslations = throttle(
|
||||||
this.#triggerTranslations.bind(this),
|
this.#triggerTranslations.bind(this),
|
||||||
this.#throttleSeconds * 1000
|
(setting.throttleTrans ?? 30) * 1000
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -294,7 +294,8 @@ export class BilingualSubtitleManager {
|
|||||||
* @param {number} currentTimeMs
|
* @param {number} currentTimeMs
|
||||||
*/
|
*/
|
||||||
#triggerTranslations(currentTimeMs) {
|
#triggerTranslations(currentTimeMs) {
|
||||||
const lookAheadMs = this.#preTranslateSeconds * 1000;
|
const { preTrans = 90 } = this.#setting;
|
||||||
|
const lookAheadMs = preTrans * 1000;
|
||||||
|
|
||||||
for (const sub of this.#formattedSubtitles) {
|
for (const sub of this.#formattedSubtitles) {
|
||||||
const isCurrent = sub.start <= currentTimeMs && sub.end >= currentTimeMs;
|
const isCurrent = sub.start <= currentTimeMs && sub.end >= currentTimeMs;
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ export default function SubtitleSetting() {
|
|||||||
apiSlug,
|
apiSlug,
|
||||||
segSlug,
|
segSlug,
|
||||||
chunkLength,
|
chunkLength,
|
||||||
|
preTrans = 90,
|
||||||
|
throttleTrans = 30,
|
||||||
toLang,
|
toLang,
|
||||||
isBilingual,
|
isBilingual,
|
||||||
skipAd = false,
|
skipAd = false,
|
||||||
@@ -114,6 +116,32 @@ export default function SubtitleSetting() {
|
|||||||
max={20000}
|
max={20000}
|
||||||
/>
|
/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<Grid item xs={12} sm={12} md={6} lg={3}>
|
||||||
|
<ValidationInput
|
||||||
|
fullWidth
|
||||||
|
size="small"
|
||||||
|
label={i18n("pre_trans_seconds")}
|
||||||
|
type="number"
|
||||||
|
name="preTrans"
|
||||||
|
value={preTrans}
|
||||||
|
onChange={handleChange}
|
||||||
|
min={10}
|
||||||
|
max={36000}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} sm={12} md={6} lg={3}>
|
||||||
|
<ValidationInput
|
||||||
|
fullWidth
|
||||||
|
size="small"
|
||||||
|
label={i18n("throttle_trans_interval")}
|
||||||
|
type="number"
|
||||||
|
name="throttleTrans"
|
||||||
|
value={throttleTrans}
|
||||||
|
onChange={handleChange}
|
||||||
|
min={1}
|
||||||
|
max={3600}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
<Grid item xs={12} sm={12} md={6} lg={3}>
|
<Grid item xs={12} sm={12} md={6} lg={3}>
|
||||||
<TextField
|
<TextField
|
||||||
fullWidth
|
fullWidth
|
||||||
|
|||||||
Reference in New Issue
Block a user