Skip to content

Commit c067e1f

Browse files
committed
Fix BabelLanguage to handle both 2-letter and 3-letter codes
The babelfish library requires different constructors for different ISO language code formats: - fromalpha2() for 2-letter codes (e.g., 'en') - direct constructor for 3-letter codes (e.g., 'eng') This fixes the OCR conversion error when language codes are in different formats.
1 parent 6a3dcd2 commit c067e1f

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

fastflix/widgets/background_tasks.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,11 +242,20 @@ def _convert_sup_to_srt(self, sup_filepath: str) -> bool:
242242
sup_path = Path(sup_filepath)
243243
media = Mkv(sup_filepath)
244244

245-
# Configure options for pgsrip - use 3-letter language code (e.g., "eng", "spa", "fra")
246-
# BabelLanguage expects 3-letter ISO 639-2 codes
245+
# Configure options for pgsrip
246+
# BabelLanguage needs different constructors for 2-letter vs 3-letter codes
247247
try:
248+
# Detect if language code is 2-letter or 3-letter
249+
if len(self.language) == 2:
250+
babel_lang = BabelLanguage.fromalpha2(self.language)
251+
elif len(self.language) == 3:
252+
babel_lang = BabelLanguage(self.language)
253+
else:
254+
# Try as language name
255+
babel_lang = BabelLanguage.fromname(self.language)
256+
248257
options = Options(
249-
languages={BabelLanguage(self.language)}, # Use 3-letter code directly
258+
languages={babel_lang},
250259
overwrite=True, # Overwrite existing .srt files
251260
)
252261
except Exception:

0 commit comments

Comments
 (0)