Spaces:
Sleeping
Sleeping
| """ | |
| 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 |