feat(i18n & ux): auditoria, traduccion completa, correcciones ux y gestion de idioma en perfil

This commit is contained in:
Carlos Tello
2026-09-02 23:45:13 -03:00
parent 3d4e9992f8
commit d1d4be0428
31 changed files with 2356 additions and 488 deletions
+16 -1
View File
@@ -25,6 +25,10 @@ def login():
login_user(user, remember=form.remember_me.data)
user.update_last_login()
# Si el usuario tiene idioma configurado en su perfil, sobrescribe el navegador en toda la sesión
if user.preferred_language and user.preferred_language in ['es', 'en']:
session['language'] = user.preferred_language
next_page = request.args.get('next')
if not next_page or not next_page.startswith('/'):
next_page = url_for('main.dashboard')
@@ -41,15 +45,26 @@ def login():
def logout():
"""Handle user logout"""
logout_user()
# Al cerrar sesión, se limpia el idioma para que el login use el del navegador por defecto
session.pop('language', None)
flash('You have been logged out successfully.', 'info')
return redirect(url_for('auth.login'))
@auth_bp.route('/profile')
@auth_bp.route('/profile', methods=['GET', 'POST'])
@login_required
def profile():
"""User profile page"""
if request.method == 'POST':
lang = request.form.get('preferred_language')
if lang in ['es', 'en']:
current_user.preferred_language = lang
session['language'] = lang
db.session.commit()
flash('Idioma de preferencia actualizado correctamente.', 'success')
return redirect(url_for('auth.profile'))
return render_template('auth/profile.html')
@auth_bp.route('/change_password', methods=['GET', 'POST'])
@login_required
def change_password():