AIdeaText commited on
Commit
6a1fc7b
·
verified ·
2 Parent(s): 796d785 7240873

Merge branch #AIdeaText/test' into 'AIdeaText/test2'

Browse files
Files changed (2) hide show
  1. app.py +40 -11
  2. modules/ui/ui.py +53 -13
app.py CHANGED
@@ -91,23 +91,51 @@ def main():
91
  def logged_in_interface():
92
  languages = {'Español': 'es', 'English': 'en', 'Français': 'fr'}
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  # Crear un contenedor para la barra superior
95
  with st.container():
96
  # Usar más columnas para un mejor control del espacio
97
  col1, col2, col3, col4, col5 = st.columns([1, 1, 0.8, 1, 1])
98
  with col1:
99
- st.markdown(f"<h3 style='margin-bottom: 0;'>Bienvenido, {st.session_state.username}</h3>", unsafe_allow_html=True)
100
  with col3:
101
- st.markdown("<p style='font-size: 1.2rem; margin-bottom: 0; padding-top: 15px;'>Selecciona el idioma del texto que analizarás</p>", unsafe_allow_html=True)
102
  with col4:
103
  st.markdown("<div style='padding-top: 15px;'>", unsafe_allow_html=True)
104
- selected_lang = st.selectbox("", list(languages.keys()), key="language_selector", label_visibility="collapsed")
105
  st.markdown("</div>", unsafe_allow_html=True)
106
  lang_code = languages[selected_lang]
 
 
 
107
 
108
  with col5:
109
  st.markdown("<div style='padding-top: 15px;'>", unsafe_allow_html=True)
110
- if st.button("Cerrar Sesión", key="logout_button"):
111
  st.session_state.logged_in = False
112
  st.experimental_rerun()
113
  st.markdown("</div>", unsafe_allow_html=True)
@@ -115,20 +143,21 @@ def logged_in_interface():
115
  # Añadir una línea divisoria
116
  st.markdown("---")
117
 
118
- tab1, tab2, tab3, tab4, tab5, tab6 = st.tabs(["Análisis morfosintáctico", "Análisis semántico", "Análisis del discurso", "Chat con Llama2", "Mi Progreso", "Formulario de Retroalimentación"])
 
119
 
120
  with tab1:
121
- display_morphosyntax_analysis_interface(nlp_models, lang_code)
122
  with tab2:
123
- display_semantic_analysis_interface(nlp_models, lang_code)
124
  with tab3:
125
- display_discourse_analysis_interface(nlp_models, lang_code)
126
  with tab4:
127
- display_chatbot_interface(lang_code)
128
  with tab5:
129
- display_student_progress(st.session_state.username, lang_code)
130
  with tab6:
131
- display_feedback_form(lang_code)
132
 
133
  ###################################################################################################################
134
  if __name__ == "__main__":
 
91
  def logged_in_interface():
92
  languages = {'Español': 'es', 'English': 'en', 'Français': 'fr'}
93
 
94
+ translations = {
95
+ 'es': {
96
+ 'welcome': "Bienvenido",
97
+ 'select_language': "Selecciona el idioma del texto que analizarás",
98
+ 'logout': "Cerrar Sesión",
99
+ 'tabs': ["Análisis morfosintáctico", "Análisis semántico", "Análisis del discurso", "Chat con Llama2", "Mi Progreso", "Formulario de Retroalimentación"]
100
+ },
101
+ 'en': {
102
+ 'welcome': "Welcome",
103
+ 'select_language': "Select the language of the text you will analyze",
104
+ 'logout': "Log Out",
105
+ 'tabs': ["Morphosyntactic Analysis", "Semantic Analysis", "Discourse Analysis", "Chat with Llama2", "My Progress", "Feedback Form"]
106
+ },
107
+ 'fr': {
108
+ 'welcome': "Bienvenue",
109
+ 'select_language': "Sélectionnez la langue du texte que vous allez analyser",
110
+ 'logout': "Déconnexion",
111
+ 'tabs': ["Analyse morphosyntaxique", "Analyse sémantique", "Analyse du discours", "Chat avec Llama2", "Mon Progrès", "Formulaire de Rétroaction"]
112
+ }
113
+ }
114
+
115
+ # Inicializar el idioma si no está establecido
116
+ if 'current_lang' not in st.session_state:
117
+ st.session_state.current_lang = 'es' # Idioma por defecto
118
+
119
  # Crear un contenedor para la barra superior
120
  with st.container():
121
  # Usar más columnas para un mejor control del espacio
122
  col1, col2, col3, col4, col5 = st.columns([1, 1, 0.8, 1, 1])
123
  with col1:
124
+ st.markdown(f"<h3 style='margin-bottom: 0;'>{translations[st.session_state.current_lang]['welcome']}, {st.session_state.username}</h3>", unsafe_allow_html=True)
125
  with col3:
126
+ st.markdown(f"<p style='font-size: 1.2rem; margin-bottom: 0; padding-top: 15px;'>{translations[st.session_state.current_lang]['select_language']}</p>", unsafe_allow_html=True)
127
  with col4:
128
  st.markdown("<div style='padding-top: 15px;'>", unsafe_allow_html=True)
129
+ selected_lang = st.selectbox("", list(languages.keys()), key="language_selector", label_visibility="collapsed", index=list(languages.values()).index(st.session_state.current_lang))
130
  st.markdown("</div>", unsafe_allow_html=True)
131
  lang_code = languages[selected_lang]
132
+ if st.session_state.current_lang != lang_code:
133
+ st.session_state.current_lang = lang_code
134
+ st.experimental_rerun()
135
 
136
  with col5:
137
  st.markdown("<div style='padding-top: 15px;'>", unsafe_allow_html=True)
138
+ if st.button(translations[st.session_state.current_lang]['logout'], key="logout_button"):
139
  st.session_state.logged_in = False
140
  st.experimental_rerun()
141
  st.markdown("</div>", unsafe_allow_html=True)
 
143
  # Añadir una línea divisoria
144
  st.markdown("---")
145
 
146
+ # Usar los nombres de tabs traducidos
147
+ tab1, tab2, tab3, tab4, tab5, tab6 = st.tabs(translations[st.session_state.current_lang]['tabs'])
148
 
149
  with tab1:
150
+ display_morphosyntax_analysis_interface(nlp_models, st.session_state.current_lang)
151
  with tab2:
152
+ display_semantic_analysis_interface(nlp_models, st.session_state.current_lang)
153
  with tab3:
154
+ display_discourse_analysis_interface(nlp_models, st.session_state.current_lang)
155
  with tab4:
156
+ display_chatbot_interface(st.session_state.current_lang)
157
  with tab5:
158
+ display_student_progress(st.session_state.username, st.session_state.current_lang)
159
  with tab6:
160
+ display_feedback_form(st.session_state.current_lang)
161
 
162
  ###################################################################################################################
163
  if __name__ == "__main__":
modules/ui/ui.py CHANGED
@@ -158,25 +158,47 @@ def admin_page():
158
 
159
  ##################################################################################################
160
  def user_page():
161
- st.title("Bienvenido a AIdeaText")
162
- st.write(f"Hola, {st.session_state.username}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
 
164
- # Aquí puedes añadir las funcionalidades para el usuario estudiante
165
- # Por ejemplo:
166
- tabs = st.tabs(["Análisis Morfosintáctico", "Análisis Semántico", "Análisis del Discurso", "Chat", "Mi Progreso", "Formulario de Retroalimentación"])
167
-
168
  with tabs[0]:
169
- display_morphosyntax_analysis_interface(nlp_models, 'es') # Asumiendo que 'es' es el idioma por defecto
170
  with tabs[1]:
171
- display_semantic_analysis_interface(nlp_models, 'es')
172
  with tabs[2]:
173
- display_discourse_analysis_interface(nlp_models, 'es')
174
  with tabs[3]:
175
- display_chatbot_interface('es')
176
  with tabs[4]:
177
- display_student_progress(st.session_state.username, 'es')
178
  with tabs[5]:
179
- display_feedback_form('es')
180
 
181
  ##################################################################################################
182
  def display_videos_and_info():
@@ -237,6 +259,7 @@ def register_form():
237
 
238
  ################################################################################
239
  def display_feedback_form(lang_code):
 
240
  translations = {
241
  'es': {
242
  'title': "Formulario de Retroalimentación",
@@ -247,7 +270,24 @@ def display_feedback_form(lang_code):
247
  'success': "¡Gracias por tu retroalimentación!",
248
  'error': "Hubo un problema al enviar el formulario. Por favor, intenta de nuevo."
249
  },
250
- # ... (traducciones para otros idiomas)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
251
  }
252
 
253
  t = translations[lang_code]
 
158
 
159
  ##################################################################################################
160
  def user_page():
161
+ # Asumimos que el idioma seleccionado está almacenado en st.session_state.lang_code
162
+ # Si no está definido, usamos 'es' como valor predeterminado
163
+ lang_code = st.session_state.get('lang_code', 'es')
164
+
165
+ translations = {
166
+ 'es': {
167
+ 'welcome': "Bienvenido a AIdeaText",
168
+ 'hello': "Hola",
169
+ 'tabs': ["Análisis Morfosintáctico", "Análisis Semántico", "Análisis del Discurso", "Chat", "Mi Progreso", "Formulario de Retroalimentación"]
170
+ },
171
+ 'en': {
172
+ 'welcome': "Welcome to AIdeaText",
173
+ 'hello': "Hello",
174
+ 'tabs': ["Morphosyntactic Analysis", "Semantic Analysis", "Discourse Analysis", "Chat", "My Progress", "Feedback Form"]
175
+ },
176
+ 'fr': {
177
+ 'welcome': "Bienvenue à AIdeaText",
178
+ 'hello': "Bonjour",
179
+ 'tabs': ["Analyse Morphosyntaxique", "Analyse Sémantique", "Analyse du Discours", "Chat", "Mon Progrès", "Formulaire de Rétroaction"]
180
+ }
181
+ }
182
+
183
+ t = translations[lang_code]
184
+
185
+ st.title(t['welcome'])
186
+ st.write(f"{t['hello']}, {st.session_state.username}")
187
+
188
+ tabs = st.tabs(t['tabs'])
189
 
 
 
 
 
190
  with tabs[0]:
191
+ display_morphosyntax_analysis_interface(nlp_models, lang_code)
192
  with tabs[1]:
193
+ display_semantic_analysis_interface(nlp_models, lang_code)
194
  with tabs[2]:
195
+ display_discourse_analysis_interface(nlp_models, lang_code)
196
  with tabs[3]:
197
+ display_chatbot_interface(lang_code)
198
  with tabs[4]:
199
+ display_student_progress(st.session_state.username, lang_code)
200
  with tabs[5]:
201
+ display_feedback_form(lang_code)
202
 
203
  ##################################################################################################
204
  def display_videos_and_info():
 
259
 
260
  ################################################################################
261
  def display_feedback_form(lang_code):
262
+ logging.info(f"display_feedback_form called with lang_code: {lang_code}")
263
  translations = {
264
  'es': {
265
  'title': "Formulario de Retroalimentación",
 
270
  'success': "¡Gracias por tu retroalimentación!",
271
  'error': "Hubo un problema al enviar el formulario. Por favor, intenta de nuevo."
272
  },
273
+ 'en': {
274
+ 'title': "Feedback Form",
275
+ 'name': "Name",
276
+ 'email': "Email",
277
+ 'feedback': "Your feedback",
278
+ 'submit': "Submit",
279
+ 'success': "Thank you for your feedback!",
280
+ 'error': "There was a problem submitting the form. Please try again."
281
+ },
282
+ 'fr': {
283
+ 'title': "Formulaire de Rétroaction",
284
+ 'name': "Nom",
285
+ 'email': "Adresse e-mail",
286
+ 'feedback': "Votre rétroaction",
287
+ 'submit': "Envoyer",
288
+ 'success': "Merci pour votre rétroaction !",
289
+ 'error': "Un problème est survenu lors de l'envoi du formulaire. Veuillez réessayer."
290
+ }
291
  }
292
 
293
  t = translations[lang_code]