File size: 1,318 Bytes
97d638d
d2fe9df
97d638d
8fe9c6a
34b39cf
 
8fe9c6a
8562dd4
97d638d
34b39cf
 
 
 
 
 
 
 
97d638d
8fe9c6a
97d638d
 
 
8fe9c6a
 
97d638d
 
469f0ac
97d638d
 
 
8562dd4
 
 
97d638d
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import streamlit as st
from transformers import MarianMTModel, MarianTokenizer, pipeline

# Load translation models for Urdu-English and English-Urdu
model_names = {
    "en-ur": "Helsinki-NLP/opus-mt-en-ur",
    "ur-en": "Helsinki-NLP/opus-mt-ur-en"
}

models = {}

# Load models once at the start
for key, model_name in model_names.items():
    tokenizer = MarianTokenizer.from_pretrained(model_name)
    model = MarianMTModel.from_pretrained(model_name)
    models[key] = pipeline("translation", model=model, tokenizer=tokenizer)

# Streamlit UI
st.title("Urdu-English Translator")

# User section on the left
st.sidebar.title("User Section")
input_lang = st.sidebar.selectbox("Select Input Language", ["English", "Urdu"])
output_lang = st.sidebar.selectbox("Select Output Language", ["Urdu", "English"])

# Text input
input_text = st.text_area("Enter Text to Translate",placeholder =  "Type here...")

# Translation logic
if st.button("Translate"):
    model_key = f"{input_lang.lower()[0:2]}-{output_lang.lower()[0:2]}"
    if model_key in models:
        translator = models[model_key]
        translation = translator(input_text)
        st.write("Translated Text:")
        st.write(translation[0]['translation_text'])
    else:
        st.write("Translation for the selected languages is not available yet.")