engrrifatullah's picture
Update app.py
9ddff09 verified
# Save this as `app.py`
import streamlit as st
from transformers import pipeline
# Set page configuration
st.set_page_config(
page_title="Multilingual Text Translator",
page_icon="🌍",
layout="centered",
)
# Title and Description
st.title("🌍 Multilingual Text Translator")
st.write("Translate text seamlessly across multiple languages with ease!")
# Add some spacing and styling
st.markdown(
"""
<style>
.stSidebar .css-1d391kg {background-color: #f0f2f6;}
</style>
""",
unsafe_allow_html=True,
)
# Sidebar for user input
st.sidebar.header("🌐 Translation Settings")
languages = {
"English": "en",
"French": "fr",
"Spanish": "es",
"German": "de",
"Chinese": "zh",
"Arabic": "ar",
"Hindi": "hi"
}
source_language_full = st.sidebar.selectbox(
"Source Language", list(languages.keys())
)
target_language_full = st.sidebar.selectbox(
"Target Language", list(languages.keys())
)
source_language = languages[source_language_full]
target_language = languages[target_language_full]
# Text input
st.subheader("Enter the text you want to translate:")
text = st.text_area("Type or paste your text below:", height=150)
if st.button("🌟 Translate Now!"):
if text.strip():
try:
# Load translation model
st.spinner("Loading translation model...")
translator = pipeline(
"translation", model=f"Helsinki-NLP/opus-mt-{source_language}-{target_language}"
)
# Translate text
with st.spinner("Translating..."):
translation = translator(text, max_length=400)[0]["translation_text"]
st.success("βœ… Translation Completed!")
st.subheader("Translated Text:")
st.write(f"### {translation}")
except ImportError:
st.error(
"⚠️ Required library `sentencepiece` is missing. "
"Please make sure to include it in your dependencies."
)
except Exception as e:
st.error(f"❌ An unexpected error occurred: {e}")
else:
st.warning("⚠️ Please enter some text to translate!")
# Footer
st.markdown(
"""
---
🌟 Developed with ❀️ using [Streamlit](https://streamlit.io) and [Hugging Face](https://huggingface.co)
"""
)