"""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