File size: 1,474 Bytes
484a25c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
40
41
42
43
44
45
46
47
48
49
import streamlit as st
from transformers import MarianMTModel, MarianTokenizer

def translate_text(text, src_lang, tgt_lang):
    model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
    model = MarianMTModel.from_pretrained(model_name)
    tokenizer = MarianTokenizer.from_pretrained(model_name)
    
    translated = model.generate(**tokenizer(text, return_tensors="pt", padding=True))
    translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
    
    return translated_text

def main():
    st.title("Language Translator App")
    
    # Language options
    language_dict = {
        "English": "en",
        "French": "fr",
        "German": "de",
        "Spanish": "es",
        "Italian": "it",
        "Russian": "ru",
        "Chinese": "zh",
        "Japanese": "ja",
        "Korean": "ko",
        "Arabic": "ar",
    }
    
    src_lang = st.selectbox("Select Source Language", list(language_dict.keys()))
    tgt_lang = st.selectbox("Select Target Language", list(language_dict.keys()))
    
    # Text input
    text = st.text_area("Enter Text to Translate")
    
    # Translate button
    if st.button("Translate"):
        if text:
            translated_text = translate_text(text, language_dict[src_lang], language_dict[tgt_lang])
            st.write("Translated Text:")
            st.success(translated_text)
        else:
            st.warning("Please enter text to translate.")

if __name__ == "__main__":
    main()