translator_bot / app.py
GoppyKrishna77's picture
Initial Upload
b1add7a verified
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()