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