While Trying to build a Language translator, Have Text_area which takes input On click of Translate button, Text area should show converted code

33 Views Asked by At

While trying to build a language translator, I have text_area which takes input and another text_area should show converted translated text. On click of Translate button, text_area should show converted code. Somehow this is not writing into translated_text

This is my code :

import streamlit as st
from deep_translator import GoogleTranslator

languages = GoogleTranslator().get_supported_languages(as_dict=True)

def translate_text(text, input_language, output_language):

  try:
    translator = GoogleTranslator(source=input_language, target=output_language)
    output_text = translator.translate(text)
    return output_text
  except Exception as e:

    st.error(f"Error during translation: {str(e)}")
    return "Error"  # Return a clear error message

st.set_page_config(page_title="Language Translator", page_icon=":globe_with_meridians:", layout="wide")
st.title("Language Translator")

col1, col2 = st.columns(2)

with col1:
      input_language = st.selectbox("Input Language:", 
       sorted(languages.keys()))

     text_to_translate = st.text_area("Enter Text to Translate", 
       height=200)

with col2:
     output_language = st.selectbox("Output Language:", 
                       sorted(languages.keys()))

     translated_text = st.text_area("Translated Text (English)", "", 
                       key="translated_text", height=200)

if st.button("Translate"):

     try:
         output_text = translate_text(text_to_translate, 
                input_language, 
                 output_language)

        # Update translated_text using session state

        st.session_state.translated_text = output_text

     except Exception as e:
         st.error(f"Error")
0

There are 0 best solutions below