ai-lover's picture
Update app.py
6905043 verified
import streamlit as st
from transformers import pipeline
# Supported languages mapping (extendable)
language_map = {
"English": "en",
"German": "de",
"French": "fr",
"Spanish": "es",
"Italian": "it",
"Russian": "ru",
"Arabic": "ar",
"Chinese": "zh",
"Urdu": "ur",
}
# Initialize Streamlit app
st.title("Language Translation App 🌐")
st.markdown("Translate text instantly between multiple languages using open-source models.")
# Language selection
input_language = st.selectbox("Select Input Language", options=list(language_map.keys()))
output_language = st.selectbox("Select Output Language", options=list(language_map.keys()))
# Text input
text_to_translate = st.text_area("Enter text to translate:", placeholder="Type your text here...")
# Translate button
if st.button("Translate"):
if not text_to_translate.strip():
st.warning("Please enter text to translate!")
elif input_language == output_language:
st.info("Input and output languages are the same. No translation needed.")
st.text_area("Translated Text:", value=text_to_translate, height=100, disabled=True)
else:
# Determine source and target languages
src_lang = language_map[input_language]
tgt_lang = language_map[output_language]
# Load the appropriate translation model
model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}"
try:
translator = pipeline("translation", model=model_name)
# Perform translation
translation = translator(text_to_translate, max_length=512)
translated_text = translation[0]["translation_text"]
# Display translated text
st.text_area("Translated Text:", value=translated_text, height=100, disabled=True)
except Exception as e:
st.error(f"Translation failed: {str(e)}")