Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,25 +1,20 @@
|
|
1 |
import streamlit as st
|
2 |
from transformers import MarianMTModel, MarianTokenizer
|
3 |
|
4 |
-
# Define available languages
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
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(
|
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(
|
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 |
-
|
60 |
-
model, tokenizer = load_model(
|
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 |
)
|