From 2033ff6777fc3a0f9c87cd81832caee70c9bc34b Mon Sep 17 00:00:00 2001 From: Gabe Date: Tue, 14 Oct 2025 23:45:30 +0800 Subject: [PATCH] fix: subtitle: retry translation failed --- src/subtitle/BilingualSubtitleManager.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/subtitle/BilingualSubtitleManager.js b/src/subtitle/BilingualSubtitleManager.js index aa4d026..0823850 100644 --- a/src/subtitle/BilingualSubtitleManager.js +++ b/src/subtitle/BilingualSubtitleManager.js @@ -15,6 +15,7 @@ export class BilingualSubtitleManager { #preTranslateSeconds = 100; #setting = {}; #isAdPlaying = false; + #FAILED_TEXT = "[Translation failed]"; /** * @param {object} options @@ -284,7 +285,9 @@ export class BilingualSubtitleManager { const isCurrent = sub.start <= currentTimeMs && sub.end >= currentTimeMs; const isUpcoming = sub.start > currentTimeMs && sub.start <= currentTimeMs + lookAheadMs; - const needsTranslation = !sub.translation && !sub.isTranslating; + const needsTranslation = + (!sub.translation || sub.translation === this.this.#FAILED_TEXT) && + !sub.isTranslating; if ((isCurrent || isUpcoming) && needsTranslation) { this.#translateAndStore(sub); @@ -309,7 +312,7 @@ export class BilingualSubtitleManager { subtitle.translation = translatedText; } catch (error) { logger.info("Translation failed for:", subtitle.text, error); - subtitle.translation = "[Translation failed]"; + subtitle.translation = this.#FAILED_TEXT; } finally { subtitle.isTranslating = false;