Translates_Text / app.py
Shatha2030's picture
Create app.py
7016da7 verified
from transformers import pipeline
import torch
import gradio as gr
translator = pipeline("translation", model="facebook/nllb-200-distilled-600M")
languages = {
"English": "eng_Latn",
"French": "fra_Latn",
"Spanish": "spa_Latn",
"German": "deu_Latn",
"Arabic": "arb_Arab",
"Chinese": "zho_Hans",
"Russian": "rus_Cyrl"
}
def translate_text(text, src_lang, tgt_lang):
if not text.strip():
return "Please enter some text to translate."
translation = translator(text, src_lang=languages[src_lang], tgt_lang=languages[tgt_lang])
return translation[0]["translation_text"]
with gr.Blocks() as demo:
gr.Markdown("## Translation using NLLB-200")
gr.Markdown("Select source and target languages, then translate the text.")
with gr.Row():
with gr.Column():
input_text = gr.Textbox(label="Input Text", placeholder="Type here...", lines=3)
src_lang = gr.Dropdown(choices=list(languages.keys()), value="English", label="Source Language")
tgt_lang = gr.Dropdown(choices=list(languages.keys()), value="French", label="Target Language")
with gr.Row():
clear_btn = gr.Button("Clear")
submit_btn = gr.Button("Submit", variant="primary")
with gr.Column():
output_text = gr.Textbox(label="Translated Text", interactive=False, lines=3)
flag_btn = gr.Button("Flag")
submit_btn.click(translate_text, inputs=[input_text, src_lang, tgt_lang], outputs=output_text)
clear_btn.click(lambda: ("", "English", "French"), outputs=[input_text, src_lang, tgt_lang])
if __name__ == "__main__":
demo.launch(share=True)