diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bc375dcf..acd0134d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -40,11 +40,21 @@ class ApplicationController < ActionController::Base site end + # Devuelve el idioma actual y si no lo encuentra obtiene uno por + # defecto. + # + # Esto se refiere al idioma de la interfaz, no de los artículos. + def current_locale(include_params: true, site: nil) + return params[:locale] if include_params && params[:locale].present? + + current_usuarie&.lang || I18n.locale + end + # El idioma es el preferido por le usuarie, pero no necesariamente se # corresponde con el idioma de los artículos, porque puede querer # traducirlos. def set_locale(&action) - I18n.with_locale(current_usuarie&.lang || I18n.default_locale, &action) + I18n.with_locale(current_locale(include_params: false), &action) end # Muestra una página 404 diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 5b8f1a16..34055faf 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -14,7 +14,7 @@ class PostsController < ApplicationController # Las URLs siempre llevan el idioma actual o el de le usuarie def default_url_options - { locale: params[:locale] || current_usuarie&.lang || I18n.locale } + { locale: current_locale } end def index