Spaces:
Sleeping
Sleeping
| 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() | |