AdeebaZahra commited on
Commit
821e7c3
·
verified ·
1 Parent(s): 9a72837

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -0
app.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import pipeline
3
+ from langdetect import detect
4
+
5
+ # Title of the app
6
+ st.title("Language Translator App")
7
+
8
+ # Available translation models
9
+ MODELS = {
10
+ "English to German": "Helsinki-NLP/opus-mt-en-de",
11
+ "German to English": "Helsinki-NLP/opus-mt-de-en",
12
+ "English to French": "Helsinki-NLP/opus-mt-en-fr",
13
+ "French to English": "Helsinki-NLP/opus-mt-fr-en",
14
+ "English to Spanish": "Helsinki-NLP/opus-mt-en-es",
15
+ "Spanish to English": "Helsinki-NLP/opus-mt-es-en",
16
+ "English to Chinese": "Helsinki-NLP/opus-mt-en-zh",
17
+ "Chinese to English": "Helsinki-NLP/opus-mt-zh-en",
18
+ "English to Russian": "Helsinki-NLP/opus-mt-en-ru",
19
+ "Russian to English": "Helsinki-NLP/opus-mt-ru-en",
20
+ "English to Arabic": "Helsinki-NLP/opus-mt-en-ar",
21
+ "Arabic to English": "Helsinki-NLP/opus-mt-ar-en",
22
+ "English to Hindi": "Helsinki-NLP/opus-mt-en-hi",
23
+ "Hindi to English": "Helsinki-NLP/opus-mt-hi-en",
24
+ }
25
+
26
+ # Sidebar for model selection
27
+ st.sidebar.header("Settings")
28
+ translation_direction = st.sidebar.selectbox(
29
+ "Choose translation direction",
30
+ list(MODELS.keys())
31
+ )
32
+
33
+ # Load the translation pipeline
34
+ @st.cache_resource
35
+ def load_translator(model_name):
36
+ return pipeline("translation", model=model_name)
37
+
38
+ translator = load_translator(MODELS[translation_direction])
39
+
40
+ # Input text area
41
+ st.header("Enter Text to Translate")
42
+ input_text = st.text_area("Input Text", "Hello, how are you?")
43
+
44
+ # Detect language
45
+ if input_text.strip() != "":
46
+ try:
47
+ detected_lang = detect(input_text)
48
+ st.subheader("Detected Language")
49
+ st.write(f"The detected language is: **{detected_lang}**")
50
+ except Exception as e:
51
+ st.error(f"Language detection failed: {e}")
52
+
53
+ # Translate button
54
+ if st.button("Translate"):
55
+ if input_text.strip() == "":
56
+ st.warning("Please enter some text to translate.")
57
+ else:
58
+ with st.spinner("Translating..."):
59
+ try:
60
+ translation = translator(input_text)
61
+ translated_text = translation[0]['translation_text']
62
+ st.success("Translation Complete!")
63
+ st.subheader("Translated Text")
64
+ st.write(translated_text)
65
+ except Exception as e:
66
+ st.error(f"Translation failed: {e}")