File size: 2,372 Bytes
78c4c77
 
 
 
 
9ddff09
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78c4c77
 
9ddff09
 
 
 
 
 
 
 
 
 
 
 
 
78c4c77
9ddff09
 
78c4c77
 
9ddff09
 
 
78c4c77
9ddff09
 
78c4c77
9ddff09
78c4c77
 
 
9ddff09
 
 
 
78c4c77
 
9ddff09
 
78c4c77
9ddff09
 
 
 
 
 
 
 
78c4c77
9ddff09
78c4c77
9ddff09
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# 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)
    """
)