videovoice / steps /lang /__init__.py
Rafii's picture
deploy: switch to chatterbox requirements @ 787c1dc
02ad302
"""Language-specific handlers for the translation pipeline.
Each language that needs special handling gets its own module (e.g. urdu.py).
This package provides a simple dispatcher so s3_translate.py stays language-agnostic.
"""
def _get_handler(target_language: str):
"""Lazy-import language handler module if it exists."""
lang = target_language.lower()
if lang == "urdu":
from . import urdu
return urdu
return None
def get_translation_prompt(target_language: str, default_prompt: str) -> str:
"""Return a language-specific translation prompt, or the default."""
handler = _get_handler(target_language)
if handler and hasattr(handler, 'get_translation_prompt'):
return handler.get_translation_prompt()
return default_prompt
def get_fallback_mode(target_language: str) -> str:
"""Return 'bedrock' or 'google' depending on the language."""
handler = _get_handler(target_language)
if handler and hasattr(handler, 'get_fallback_mode'):
return handler.get_fallback_mode()
return "google"
def post_translate(segments: list[dict], target_language: str) -> list[dict]:
"""Run any language-specific post-processing after translation."""
handler = _get_handler(target_language)
if handler and hasattr(handler, 'post_translate'):
return handler.post_translate(segments)
return segments