fix(pdf): add support for translate_images to PDFTranslator to fix API mismatch
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m36s

This commit is contained in:
2026-05-31 10:36:30 +02:00
parent 78eca6d453
commit a5b18b5a24

View File

@@ -84,6 +84,8 @@ class PDFTranslator:
source_language: str = "auto", source_language: str = "auto",
progress_callback: Optional[Callable[[Dict[str, Any]], None]] = None, progress_callback: Optional[Callable[[Dict[str, Any]], None]] = None,
pdf_mode: str = "layout", pdf_mode: str = "layout",
translate_images: bool = False,
**kwargs,
) -> Path: ) -> Path:
input_path = Path(input_path) input_path = Path(input_path)
output_path = Path(output_path) output_path = Path(output_path)
@@ -94,7 +96,8 @@ class PDFTranslator:
input_path, output_path, target_language, source_language, progress_callback input_path, output_path, target_language, source_language, progress_callback
) )
return self._translate_preserve_layout( return self._translate_preserve_layout(
input_path, output_path, target_language, source_language, progress_callback input_path, output_path, target_language, source_language, progress_callback,
translate_images=translate_images,
) )
# ------------------------------------------------------------------ # # ------------------------------------------------------------------ #
@@ -108,6 +111,7 @@ class PDFTranslator:
target_language: str, target_language: str,
source_language: str, source_language: str,
progress_callback, progress_callback,
translate_images: bool = False,
) -> Path: ) -> Path:
"""Translate PDF preserving layout via PyMuPDF direct text replacement.""" """Translate PDF preserving layout via PyMuPDF direct text replacement."""
start_time = time.time() start_time = time.time()
@@ -117,7 +121,8 @@ class PDFTranslator:
except ImportError: except ImportError:
logger.warning("pymupdf_missing_fallback_docx") logger.warning("pymupdf_missing_fallback_docx")
return self._translate_preserve_layout_fallback( return self._translate_preserve_layout_fallback(
input_path, output_path, target_language, source_language, progress_callback input_path, output_path, target_language, source_language, progress_callback,
translate_images=translate_images,
) )
doc = fitz.open(str(input_path)) doc = fitz.open(str(input_path))
@@ -162,7 +167,8 @@ class PDFTranslator:
doc.close() doc.close()
logger.warning("inplace_failed_fallback", error=str(e)) logger.warning("inplace_failed_fallback", error=str(e))
return self._translate_preserve_layout_fallback( return self._translate_preserve_layout_fallback(
input_path, output_path, target_language, source_language, progress_callback input_path, output_path, target_language, source_language, progress_callback,
translate_images=translate_images,
) )
def _process_pages_inplace( def _process_pages_inplace(
@@ -517,6 +523,7 @@ class PDFTranslator:
target_language: str, target_language: str,
source_language: str, source_language: str,
progress_callback, progress_callback,
translate_images: bool = False,
) -> Path: ) -> Path:
"""Fallback: PDF → DOCX (pdf2docx) → WordTranslator → PDF (LibreOffice).""" """Fallback: PDF → DOCX (pdf2docx) → WordTranslator → PDF (LibreOffice)."""
start_time = time.time() start_time = time.time()
@@ -546,6 +553,7 @@ class PDFTranslator:
docx_path, translated_docx, docx_path, translated_docx,
target_language, source_language, target_language, source_language,
progress_callback=None, progress_callback=None,
translate_images=translate_images,
) )
if progress_callback: if progress_callback: