HMZaheer's picture
Update app.py
050c033 verified
import streamlit as st
from transformers import pipeline
# Function to initialize the translation pipeline
@st.cache_resource
def load_translation_pipeline(source_lang, target_lang):
model_name = f"Helsinki-NLP/opus-mt-{source_lang}-{target_lang}"
return pipeline("translation", model=model_name)
# Function to perform translation
def translate_text(text, source_lang, target_lang):
translator = load_translation_pipeline(source_lang, target_lang)
translated = translator(text, max_length=512)
return translated[0]['translation_text']
# Streamlit app
st.title("Language Translation App")
st.markdown("Translate text quickly between multiple languages using open-source models.")
# Input text area
text_to_translate = st.text_area("Enter text to translate:", placeholder="Type here...", height=150)
# Language selection options
languages = {
"English": "en",
"French": "fr",
"German": "de",
"Spanish": "es",
"Italian": "it",
"Chinese": "zh",
"Hindi": "hi",
"Urdu": "ur",
"Persian": "fa"
}
# Select source and target languages
source_language = st.selectbox("Select source language:", list(languages.keys()))
target_language = st.selectbox("Select target language:", list(languages.keys()))
# Get language codes
source_lang_code = languages[source_language]
target_lang_code = languages[target_language]
# Translate button
if st.button("Translate"):
if not text_to_translate.strip():
st.warning("Please enter some text to translate.")
elif source_lang_code == target_lang_code:
st.warning("Source and target languages must be different.")
else:
try:
translation = translate_text(text_to_translate, source_lang_code, target_lang_code)
st.success("Translation completed!")
st.text_area("Translated Text:", translation, height=150, disabled=True)
except Exception as e:
st.error(f"An error occurred during translation: {str(e)}")
# Footer
st.markdown("---")
st.markdown(
"**Note:** This app uses Hugging Face's Helsinki-NLP models for translation. These models are open-source and ideal for various language translation tasks."
)