Spaces:
Sleeping
Sleeping
streamlit | |
transformers | |
torch | |
sentencepiece | |
sacremoses | |
import streamlit as st | |
from transformers import pipeline | |
# Initialize the translation pipeline | |
def load_translator(): | |
return pipeline("translation", model="Helsinki-NLP/opus-mt-en-{target}") | |
# Supported languages (ISO 639-1 codes mapped to language names) | |
supported_languages = { | |
"fr": "French", | |
"es": "Spanish", | |
"de": "German", | |
"zh": "Chinese", | |
"hi": "Hindi", | |
"ar": "Arabic", | |
"ru": "Russian", | |
"ja": "Japanese", | |
"ko": "Korean", | |
"it": "Italian", | |
} | |
# Streamlit App | |
st.title("Language Translator App") | |
st.write("Translate text from English to a selected target language using Hugging Face models.") | |
# Input text from user | |
input_text = st.text_area("Enter text in English:", placeholder="Type here...") | |
# Language selection | |
target_language = st.selectbox( | |
"Select target language:", | |
options=list(supported_languages.keys()), | |
format_func=lambda lang: supported_languages[lang], | |
) | |
# Translate button | |
if st.button("Translate"): | |
if input_text.strip() == "": | |
st.error("Please enter text to translate.") | |
else: | |
translator = load_translator() | |
# Replace `{target}` with the user-selected language in the model | |
translator = pipeline("translation", model=f"Helsinki-NLP/opus-mt-en-{target_language}") | |
translation = translator(input_text)[0]["translation_text"] | |
st.success("Translated Text:") | |
st.write(translation) | |