| | 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() |