Spaces:
Running on Zero
Running on Zero
File size: 1,389 Bytes
02ad302 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | """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
|