translator / app.py
RawadAlghamdi's picture
Update app.py
6a96eb6 verified
import gradio as gr
from transformers import pipeline
# Load the translation pipeline
translator = pipeline('translation', model='facebook/nllb-200-distilled-600M')
# Define languages and their codes
LANGUAGES = {
"English": "eng_Latn",
"French": "fra_Latn",
"Spanish": "spa_Latn",
"German": "deu_Latn",
"Italian": "ita_Latn",
"Russian": "rus_Cyrl",
"Arabic": "arb_Arab",
"Hindi": "hin_Deva"
}
def translate_wrapper(inputs):
"""Unpack inputs from Gradio into text, source, target."""
text, source, target = inputs
if not text.strip():
return ""
# Run translation using the chosen languages
result = translator(text, src_lang=LANGUAGES[source], tgt_lang=LANGUAGES[target])
return result[0]["translation_text"]
demo = gr.Interface(
fn=translate_wrapper,
inputs=[
gr.Textbox(label="Input Text", lines=3, placeholder="Enter text to translate..."),
gr.Dropdown(choices=list(LANGUAGES.keys()), value="English", label="Source Language"),
gr.Dropdown(choices=list(LANGUAGES.keys()), value="French", label="Target Language"),
],
outputs=gr.Textbox(label="Translated Text", lines=3),
title="Translation using NLLB-200",
description="Select source and target language, then translate the text.",
# This adds the "Flag" button in the UI:
allow_flagging="manual"
)
demo.launch()