Spaces:
Sleeping
Sleeping
import streamlit as st | |
from transformers import pipeline | |
# Function to load translation pipeline | |
def load_translator(target_language): | |
model_name = f"Helsinki-NLP/opus-mt-en-{target_language}" | |
return pipeline("translation", model=model_name) | |
# Supported languages | |
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 any supported language using Hugging Face models.") | |
# User input for text | |
input_text = st.text_area("Enter text in English:", placeholder="Type here...") | |
# Dropdown to select target language | |
target_language = st.selectbox( | |
"Select target language:", | |
options=list(supported_languages.keys()), | |
format_func=lambda lang: f"{supported_languages[lang]} ({lang})", | |
) | |
# Translate button | |
if st.button("Translate"): | |
if not input_text.strip(): | |
st.error("β Please enter some text to translate.") | |
else: | |
try: | |
st.info("β³ Translating...") | |
translator = load_translator(target_language) | |
translation = translator(input_text)[0]["translation_text"] | |
st.success("β Translated Text:") | |
st.write(translation) | |
except Exception as e: | |
st.error(f"β οΈ An error occurred: {str(e)}") | |