import gradio as gr from deep_translator import GoogleTranslator # Translation Function def getTranslateText(text: str, dest: str) -> str: try: if not text.strip(): return "Please enter text." translated = GoogleTranslator(source='auto', target=dest).translate(text) return translated except Exception as e: return f"Translation error: {str(e)}" # Supported Languages languages = GoogleTranslator().get_supported_languages(as_dict=True) # Convert to readable dropdown list language_names = list(languages.keys()) # Gradio UI with gr.Blocks() as demo: gr.Markdown("# 🌍 Simple Google Translator") gr.Markdown("Auto-detect source language → translate to selected language.") with gr.Row(): with gr.Column(): input_text = gr.Textbox( lines=5, placeholder="Enter text to translate...", label="Input Text" ) target_lang = gr.Dropdown( choices=language_names, value="english", label="Target Language" ) translate_btn = gr.Button("Translate 🚀", variant="primary") with gr.Column(): output_text = gr.Textbox( lines=5, label="Translated Text" ) translate_btn.click( fn=lambda text, lang: getTranslateText(text, languages[lang]), inputs=[input_text, target_lang], outputs=output_text ) if __name__ == "__main__": demo.launch()