engrrifatullah commited on
Commit
9ddff09
Β·
verified Β·
1 Parent(s): c186119

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -18
app.py CHANGED
@@ -3,36 +3,83 @@
3
  import streamlit as st
4
  from transformers import pipeline
5
 
6
- # Title and description
7
- st.title("Multilingual Text Translator")
8
- st.write("Translate text into multiple languages seamlessly!")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
  # Sidebar for user input
11
- st.sidebar.header("Translation Settings")
12
- source_language = st.sidebar.selectbox(
13
- "Source Language (ISO 639-1 code)",
14
- ["en", "fr", "es", "de", "zh", "ar", "hi"] # Add more as needed
 
 
 
 
 
 
 
 
 
15
  )
16
- target_language = st.sidebar.selectbox(
17
- "Target Language (ISO 639-1 code)",
18
- ["en", "fr", "es", "de", "zh", "ar", "hi"] # Add more as needed
19
  )
20
 
 
 
 
21
  # Text input
22
- text = st.text_area("Enter the text to translate:", "")
 
23
 
24
- if st.button("Translate"):
25
  if text.strip():
26
  try:
27
  # Load translation model
28
- translator = pipeline("translation", model=f"Helsinki-NLP/opus-mt-{source_language}-{target_language}")
 
 
 
29
 
30
  # Translate text
31
- translation = translator(text, max_length=400)[0]['translation_text']
 
32
 
33
- st.success("Translation Completed!")
34
- st.write(f"### Translated Text: \n{translation}")
 
 
 
 
 
 
35
  except Exception as e:
36
- st.error(f"An error occurred: {e}")
37
  else:
38
- st.warning("Please enter some text to translate.")
 
 
 
 
 
 
 
 
 
3
  import streamlit as st
4
  from transformers import pipeline
5
 
6
+ # Set page configuration
7
+ st.set_page_config(
8
+ page_title="Multilingual Text Translator",
9
+ page_icon="🌍",
10
+ layout="centered",
11
+ )
12
+
13
+ # Title and Description
14
+ st.title("🌍 Multilingual Text Translator")
15
+ st.write("Translate text seamlessly across multiple languages with ease!")
16
+
17
+ # Add some spacing and styling
18
+ st.markdown(
19
+ """
20
+ <style>
21
+ .stSidebar .css-1d391kg {background-color: #f0f2f6;}
22
+ </style>
23
+ """,
24
+ unsafe_allow_html=True,
25
+ )
26
 
27
  # Sidebar for user input
28
+ st.sidebar.header("🌐 Translation Settings")
29
+ languages = {
30
+ "English": "en",
31
+ "French": "fr",
32
+ "Spanish": "es",
33
+ "German": "de",
34
+ "Chinese": "zh",
35
+ "Arabic": "ar",
36
+ "Hindi": "hi"
37
+ }
38
+
39
+ source_language_full = st.sidebar.selectbox(
40
+ "Source Language", list(languages.keys())
41
  )
42
+ target_language_full = st.sidebar.selectbox(
43
+ "Target Language", list(languages.keys())
 
44
  )
45
 
46
+ source_language = languages[source_language_full]
47
+ target_language = languages[target_language_full]
48
+
49
  # Text input
50
+ st.subheader("Enter the text you want to translate:")
51
+ text = st.text_area("Type or paste your text below:", height=150)
52
 
53
+ if st.button("🌟 Translate Now!"):
54
  if text.strip():
55
  try:
56
  # Load translation model
57
+ st.spinner("Loading translation model...")
58
+ translator = pipeline(
59
+ "translation", model=f"Helsinki-NLP/opus-mt-{source_language}-{target_language}"
60
+ )
61
 
62
  # Translate text
63
+ with st.spinner("Translating..."):
64
+ translation = translator(text, max_length=400)[0]["translation_text"]
65
 
66
+ st.success("βœ… Translation Completed!")
67
+ st.subheader("Translated Text:")
68
+ st.write(f"### {translation}")
69
+ except ImportError:
70
+ st.error(
71
+ "⚠️ Required library `sentencepiece` is missing. "
72
+ "Please make sure to include it in your dependencies."
73
+ )
74
  except Exception as e:
75
+ st.error(f"❌ An unexpected error occurred: {e}")
76
  else:
77
+ st.warning("⚠️ Please enter some text to translate!")
78
+
79
+ # Footer
80
+ st.markdown(
81
+ """
82
+ ---
83
+ 🌟 Developed with ❀️ using [Streamlit](https://streamlit.io) and [Hugging Face](https://huggingface.co)
84
+ """
85
+ )