diff --git a/app/helpers/i18n_helper.rb b/app/helpers/i18n_helper.rb index a04405ac97..c37d036f62 100644 --- a/app/helpers/i18n_helper.rb +++ b/app/helpers/i18n_helper.rb @@ -1,17 +1,17 @@ module I18nHelper def set_locale - # Save a given locale + # Save a given locale from params if params[:locale] && available_locale?(params[:locale]) spree_current_user&.update!(locale: params[:locale]) cookies[:locale] = params[:locale] end # After logging in, check if the user chose a locale before - if spree_current_user && spree_current_user.locale.nil? && cookies[:locale] - spree_current_user.update!(locale: params[:locale]) + if current_user_locale.nil? && cookies[:locale] + spree_current_user&.update!(locale: params[:locale]) end - I18n.locale = spree_current_user.andand.locale || cookies[:locale] || I18n.default_locale + I18n.locale = current_user_locale || cookies[:locale] || I18n.default_locale end def valid_locale(user) @@ -29,4 +29,8 @@ module I18nHelper def available_locale?(locale) Rails.application.config.i18n.available_locales.include?(locale) end + + def current_user_locale + spree_current_user.andand.locale + end end