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