sainkan commited on
Commit
1d6f91e
Β·
verified Β·
1 Parent(s): 3eb4473

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +69 -16
app.py CHANGED
@@ -1,5 +1,6 @@
1
  import streamlit as st
2
  from transformers import MarianMTModel, MarianTokenizer
 
3
 
4
  # Define available languages with MarianMT models
5
  LANGUAGES = {
@@ -13,9 +14,24 @@ LANGUAGES = {
13
  'Russian': 'ru',
14
  'Italian': 'it',
15
  'Portuguese': 'pt',
16
- # Add more languages if needed
17
  }
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  # Function to load the model based on the selected language
20
  @st.cache_resource
21
  def load_model(src_lang='en', tgt_lang='es'):
@@ -31,27 +47,64 @@ def translate_text(model, tokenizer, text):
31
  translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
32
  return translated_text
33
 
34
- # Streamlit app
35
- st.title("Language Translator")
36
- st.write("Translate English text to any language using Hugging Face models.")
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  # Input text
39
- text = st.text_area("Enter text in English to translate:")
40
 
41
- # Language selection
42
- language = st.selectbox("Choose target language", list(LANGUAGES.keys()))
43
 
 
44
  if st.button("Translate"):
45
  if text:
46
- # Load model and tokenizer based on selected language
47
- tgt_lang = LANGUAGES[language]
48
- model, tokenizer = load_model('en', tgt_lang)
49
-
50
- # Perform translation
51
- translated_text = translate_text(model, tokenizer, text)
 
 
52
 
53
  # Display the translation
54
- st.write(f"**Translated text ({language}):**")
55
- st.write(translated_text)
56
  else:
57
- st.write("Please enter text to translate.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
  from transformers import MarianMTModel, MarianTokenizer
3
+ from PIL import Image
4
 
5
  # Define available languages with MarianMT models
6
  LANGUAGES = {
 
14
  'Russian': 'ru',
15
  'Italian': 'it',
16
  'Portuguese': 'pt',
 
17
  }
18
 
19
+ # Load a background image for the app
20
+ def add_bg_image(image_path):
21
+ with open(image_path, "rb") as f:
22
+ data = f.read()
23
+ st.markdown(
24
+ f"""
25
+ <style>
26
+ .stApp {{
27
+ background-image: url(data:image/{"png"};base64,{data.encode("base64").decode()});
28
+ background-size: cover;
29
+ }}
30
+ </style>
31
+ """,
32
+ unsafe_allow_html=True
33
+ )
34
+
35
  # Function to load the model based on the selected language
36
  @st.cache_resource
37
  def load_model(src_lang='en', tgt_lang='es'):
 
47
  translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
48
  return translated_text
49
 
50
+ # Load the background image
51
+ add_bg_image("path_to_your_image.png") # You need to provide your image
52
+
53
+ # Streamlit app layout
54
+ st.markdown("<h1 style='text-align: center; color: #4B9CD3;'>🌍 Multilingual Translator 🌍</h1>", unsafe_allow_html=True)
55
+ st.markdown("<p style='text-align: center; color: #333; font-size: 18px;'>Translate English text into multiple languages</p>", unsafe_allow_html=True)
56
+
57
+ # Sidebar for language selection and instructions
58
+ st.sidebar.title("Language Options")
59
+ language = st.sidebar.selectbox("Choose target language", list(LANGUAGES.keys()))
60
+
61
+ st.sidebar.markdown("### How to use")
62
+ st.sidebar.write("1. Enter English text in the box below.")
63
+ st.sidebar.write("2. Select the target language from the options.")
64
+ st.sidebar.write("3. Click **Translate** to get the result.")
65
 
66
  # Input text
67
+ text = st.text_area("Enter text in English to translate:", height=150)
68
 
69
+ # Character count
70
+ st.write(f"Character count: {len(text)}")
71
 
72
+ # Button to translate
73
  if st.button("Translate"):
74
  if text:
75
+ # Show a spinner during the translation process
76
+ with st.spinner('Translating...'):
77
+ # Load model and tokenizer based on selected language
78
+ tgt_lang = LANGUAGES[language]
79
+ model, tokenizer = load_model('en', tgt_lang)
80
+
81
+ # Perform translation
82
+ translated_text = translate_text(model, tokenizer, text)
83
 
84
  # Display the translation
85
+ st.markdown("<h3 style='color: #4B9CD3;'>Translated Text:</h3>", unsafe_allow_html=True)
86
+ st.success(translated_text)
87
  else:
88
+ st.error("Please enter text to translate.")
89
+
90
+ # Footer with styling
91
+ st.markdown(
92
+ """
93
+ <style>
94
+ footer {visibility: hidden;}
95
+ .footer-text {
96
+ position: fixed;
97
+ bottom: 0;
98
+ left: 0;
99
+ right: 0;
100
+ background-color: #f9f9f9;
101
+ padding: 10px;
102
+ text-align: center;
103
+ color: #4B9CD3;
104
+ font-weight: bold;
105
+ }
106
+ </style>
107
+ <div class="footer-text">Powered by Hugging Face Transformers</div>
108
+ """,
109
+ unsafe_allow_html=True
110
+ )