File size: 2,351 Bytes
85c18a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"""

Translation Module

==================

Handles text translation between English and Hindi using deep-translator.



Functions:

    - detect_language: Auto-detect if text is English or Hindi

    - translate_text: Translate text between languages

"""

from deep_translator import GoogleTranslator
from typing import Literal


def detect_language(text: str) -> Literal["en", "hi"]:
    """

    Detect if the input text is English or Hindi.

    

    Uses Unicode range detection for Devanagari script (Hindi).

    

    Args:

        text: Input text string to analyze

        

    Returns:

        'hi' if Hindi/Devanagari characters found, 'en' otherwise

        

    Example:

        >>> detect_language("Hello World")

        'en'

        >>> detect_language("नमस्ते")

        'hi'

    """
    # Check for Devanagari Unicode range (U+0900 to U+097F)
    for char in text:
        if '\u0900' <= char <= '\u097F':
            return "hi"
    return "en"


def translate_text(

    text: str, 

    source_lang: Literal["auto", "en", "hi"], 

    target_lang: Literal["en", "hi"]

) -> str:
    """

    Translate text from source language to target language.

    

    Uses Google Translator via deep-translator library for accurate

    translations between English and Hindi.

    

    Args:

        text: The text to translate

        source_lang: Source language code ('auto', 'en', or 'hi')

        target_lang: Target language code ('en' or 'hi')

        

    Returns:

        Translated text string

        

    Raises:

        ValueError: If text is empty

        

    Example:

        >>> translate_text("Hello", "en", "hi")

        'नमस्ते'

        >>> translate_text("नमस्ते", "auto", "en")

        'Hello'

    """
    # Validate input
    if not text or not text.strip():
        return ""
    
    # Auto-detect source language if needed
    if source_lang == "auto":
        source_lang = detect_language(text)
    
    # Skip translation if source and target are the same
    if source_lang == target_lang:
        return text
    
    # Perform translation using Google Translator
    translator = GoogleTranslator(source=source_lang, target=target_lang)
    translated = translator.translate(text)
    
    return translated