centralizar la detección del idioma

This commit is contained in:
f 2021-05-10 14:48:48 -03:00
parent e0eeaf7fc6
commit 9faecbc289
2 changed files with 12 additions and 2 deletions

View file

@ -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

View file

@ -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