| import gradio as gr |
| from deep_translator import GoogleTranslator |
|
|
| |
| 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)}" |
|
|
|
|
| |
| languages = GoogleTranslator().get_supported_languages(as_dict=True) |
|
|
| |
| language_names = list(languages.keys()) |
|
|
| |
| 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() |