Spaces:
Build error
Build error
| import gradio as gr | |
| from google_trans import LANGCODES | |
| from translate.translate import Translator | |
| from logger import log | |
| LANGUAGES = [lang.title() for lang in LANGCODES.keys()] | |
| def translate(text, from_lang, to_lang, history): | |
| if text.strip() == "": | |
| return "", history | |
| if not from_lang: | |
| raise gr.Error("From Language not selected") | |
| if not to_lang: | |
| raise gr.Error("To Language not selected") | |
| translator = Translator( | |
| from_lang=LANGCODES[from_lang.lower()], to_lang=LANGCODES[to_lang.lower()] | |
| ) | |
| translated_text = translator.translate(text) | |
| history.append((text, translated_text)) | |
| log(text, from_lang, to_lang, translated_text) | |
| return "", history | |
| def switch_languages(from_lang, to_lang): | |
| return to_lang, from_lang | |
| with gr.Blocks() as app: | |
| gr.Markdown("# Tranlato Bot 🤖") | |
| chat_bot = gr.Chatbot() | |
| text = gr.Textbox(label="Text", show_label=False, placeholder="Enter text to Translate...") | |
| with gr.Row(): | |
| from_lang = gr.Dropdown(LANGUAGES, label="From Language", scale=2) | |
| switch = gr.Button("⇄") | |
| to_lang = gr.Dropdown(LANGUAGES, label="To Language", scale=2) | |
| with gr.Row(): | |
| translate_btn = gr.Button("Translate") | |
| gr.ClearButton([text, from_lang, to_lang, chat_bot]) | |
| gr.Examples( | |
| examples=[ | |
| ["The weather is nice today.", "English", "Tamil"], | |
| ["இன்று காலநிலை நல்லது.", "Tamil", "English"], | |
| ["अब क्या समय हो रहा है?", "Hindi", "Spanish"], | |
| ["¿Qué hora es?", "Spanish", "Hindi"], | |
| ], | |
| inputs=[text, from_lang, to_lang, chat_bot], | |
| ) | |
| switch.click(switch_languages, [from_lang, to_lang], [from_lang, to_lang]) | |
| text.submit(translate, [text, from_lang, to_lang, chat_bot], [text, chat_bot]) | |
| translate_btn.click( | |
| translate, [text, from_lang, to_lang, chat_bot], [text, chat_bot] | |
| ) | |
| app.title = "Translato Bot" | |
| app.launch() | |