sainkan commited on
Commit
5110299
·
verified ·
1 Parent(s): 118667f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -38
app.py CHANGED
@@ -1,25 +1,20 @@
1
  import streamlit as st
2
  from transformers import MarianMTModel, MarianTokenizer
3
 
4
- # Define available languages with MarianMT models
5
- LANGUAGES = {
6
- 'Spanish': 'es',
7
- 'French': 'fr',
8
- 'German': 'de',
9
- 'Chinese': 'zh',
10
- 'Hindi': 'hi',
11
- 'Arabic': 'ar',
12
- 'Japanese': 'ja',
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'):
22
- model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
23
  model = MarianMTModel.from_pretrained(model_name)
24
  tokenizer = MarianTokenizer.from_pretrained(model_name)
25
  return model, tokenizer
@@ -37,7 +32,7 @@ st.markdown("<p style='text-align: center; color: #333; font-size: 18px;'>Transl
37
 
38
  # Sidebar for language selection and instructions
39
  st.sidebar.title("Language Options")
40
- language = st.sidebar.selectbox("Choose target language", list(LANGUAGES.keys()))
41
 
42
  st.sidebar.markdown("### How to use")
43
  st.sidebar.write("1. Enter English text in the box below.")
@@ -56,36 +51,17 @@ if st.button("Translate"):
56
  # Show a spinner during the translation process
57
  with st.spinner('Translating...'):
58
  # Load model and tokenizer based on selected language
59
- tgt_lang = LANGUAGES[language]
60
- model, tokenizer = load_model('en', tgt_lang)
61
 
62
  # Perform translation
63
  translated_text = translate_text(model, tokenizer, text)
64
 
65
  # Display the translation
66
- st.markdown("<h3 style='color: #4B9CD3;'>Translated Text:</h3>", unsafe_allow_html=True)
67
  st.success(translated_text)
68
  else:
69
  st.error("Please enter text to translate.")
70
 
71
- # Footer with styling
72
- st.markdown(
73
- """
74
- <style>
75
- footer {visibility: hidden;}
76
- .footer-text {
77
- position: fixed;
78
- bottom: 0;
79
- left: 0;
80
- right: 0;
81
- background-color: #f9f9f9;
82
- padding: 10px;
83
- text-align: center;
84
- color: #4B9CD3;
85
- font-weight: bold;
86
- }
87
- </style>
88
- <div class="footer-text">Powered by Hugging Face Transformers</div>
89
- """,
90
  unsafe_allow_html=True
91
  )
 
1
  import streamlit as st
2
  from transformers import MarianMTModel, MarianTokenizer
3
 
4
+ # Define available target languages and their Hugging Face model names
5
+ language_options = {
6
+ "French": "Helsinki-NLP/opus-mt-en-fr",
7
+ "German": "Helsinki-NLP/opus-mt-en-de",
8
+ "Spanish": "Helsinki-NLP/opus-mt-en-es",
9
+ "Italian": "Helsinki-NLP/opus-mt-en-it",
10
+ "Dutch": "Helsinki-NLP/opus-mt-en-nl",
11
+ "Urdu": "Helsinki-NLP/opus-mt-en-ur", # Urdu language model
12
+ # Add more languages as needed
 
 
 
 
13
  }
14
 
15
  # Function to load the model based on the selected language
16
  @st.cache_resource
17
+ def load_model(model_name):
 
18
  model = MarianMTModel.from_pretrained(model_name)
19
  tokenizer = MarianTokenizer.from_pretrained(model_name)
20
  return model, tokenizer
 
32
 
33
  # Sidebar for language selection and instructions
34
  st.sidebar.title("Language Options")
35
+ language = st.sidebar.selectbox("Choose target language", list(language_options.keys()))
36
 
37
  st.sidebar.markdown("### How to use")
38
  st.sidebar.write("1. Enter English text in the box below.")
 
51
  # Show a spinner during the translation process
52
  with st.spinner('Translating...'):
53
  # Load model and tokenizer based on selected language
54
+ model_name = language_options[language]
55
+ model, tokenizer = load_model(model_name)
56
 
57
  # Perform translation
58
  translated_text = translate_text(model, tokenizer, text)
59
 
60
  # Display the translation
61
+ st.markdown(f"<h3 style='color: #4B9CD3;'>Translated Text ({language}):</h3>", unsafe_allow_html=True)
62
  st.success(translated_text)
63
  else:
64
  st.error("Please enter text to translate.")
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  unsafe_allow_html=True
67
  )