Abdullah-Basar commited on
Commit
6554823
Β·
verified Β·
1 Parent(s): efb50f0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +82 -0
app.py ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+
4
+ # App Title and Description
5
+ st.title("🌐 Universal Language Translator App")
6
+ st.write("""
7
+ Translate text from any language to any other language using an open-source multilingual model.
8
+ This app supports many languages and ensures a user-friendly experience.
9
+ """)
10
+
11
+ # Instructions
12
+ st.sidebar.header("πŸ“ Instructions")
13
+ st.sidebar.write("""
14
+ 1. Enter the text you want to translate in the input box.
15
+ 2. Select the source language of the input text.
16
+ 3. Choose the target language for translation.
17
+ 4. Click the "Translate" button to see the translated text.
18
+ """)
19
+
20
+ # Supported Languages
21
+ languages = {
22
+ "English": "en",
23
+ "Spanish": "es",
24
+ "French": "fr",
25
+ "German": "de",
26
+ "Chinese": "zh",
27
+ "Hindi": "hi",
28
+ "Arabic": "ar",
29
+ "Russian": "ru",
30
+ "Italian": "it",
31
+ "Portuguese": "pt",
32
+ "Japanese": "ja",
33
+ "Korean": "ko",
34
+ "Dutch": "nl",
35
+ "Bengali": "bn",
36
+ "Turkish": "tr",
37
+ "Urdu": "ur",
38
+ "Greek": "el",
39
+ "Polish": "pl",
40
+ "Thai": "th",
41
+ "Vietnamese": "vi",
42
+ "Hebrew": "he",
43
+ "Swahili": "sw",
44
+ "Amharic": "am",
45
+ "Tamil": "ta",
46
+ "Telugu": "te",
47
+ "Punjabi": "pa",
48
+ "Malayalam": "ml",
49
+ }
50
+
51
+ # UI for Input and Language Selection
52
+ source_text = st.text_area("Enter text to translate:", height=150, placeholder="Type here...")
53
+ source_language = st.selectbox("Source Language:", options=list(languages.keys()), index=0)
54
+ target_language = st.selectbox("Target Language:", options=list(languages.keys()), index=1)
55
+
56
+ if st.button("Translate"):
57
+ if source_text.strip() == "":
58
+ st.error("Please enter some text to translate.")
59
+ else:
60
+ try:
61
+ # Define model name dynamically
62
+ model_name = f"Helsinki-NLP/opus-mt-{languages[source_language]}-{languages[target_language]}"
63
+
64
+ # Load tokenizer and model
65
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
66
+ model = MarianMTModel.from_pretrained(model_name)
67
+
68
+ # Translate
69
+ inputs = tokenizer(source_text, return_tensors="pt", padding=True, truncation=True)
70
+ translated_tokens = model.generate(**inputs)
71
+ translated_text = tokenizer.decode(translated_tokens[0], skip_special_tokens=True)
72
+
73
+ # Display Translated Text
74
+ st.subheader("πŸ”„ Translated Text:")
75
+ st.text_area("Translation Output:", value=translated_text, height=150)
76
+ except Exception as e:
77
+ st.error("Translation failed. Please ensure the selected languages are supported.")
78
+ st.error(str(e))
79
+
80
+ # Footer
81
+ st.write("---")
82
+ st.markdown("πŸ’‘ **Developed by Abdullah**")