| |
|
|
| import streamlit as st |
| from transformers import pipeline |
|
|
| |
| st.set_page_config( |
| page_title="Multilingual Text Translator", |
| page_icon="π", |
| layout="centered", |
| ) |
|
|
| |
| st.title("π Multilingual Text Translator") |
| st.write("Translate text seamlessly across multiple languages with ease!") |
|
|
| |
| st.markdown( |
| """ |
| <style> |
| .stSidebar .css-1d391kg {background-color: #f0f2f6;} |
| </style> |
| """, |
| unsafe_allow_html=True, |
| ) |
|
|
| |
| 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] |
|
|
| |
| 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: |
| |
| st.spinner("Loading translation model...") |
| translator = pipeline( |
| "translation", model=f"Helsinki-NLP/opus-mt-{source_language}-{target_language}" |
| ) |
| |
| |
| 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!") |
|
|
| |
| st.markdown( |
| """ |
| --- |
| π Developed with β€οΈ using [Streamlit](https://streamlit.io) and [Hugging Face](https://huggingface.co) |
| """ |
| ) |
|
|