Spaces:
Running on Zero
Running on Zero
| """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 | |