mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-30 21:27:17 +00:00
33 lines
894 B
Ruby
33 lines
894 B
Ruby
module I18nHelper
|
|
def set_locale
|
|
# Save a given locale
|
|
if params[:locale] && available_locale?(params[:locale])
|
|
spree_current_user.update_attributes!(locale: params[:locale]) if spree_current_user
|
|
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_attributes!(locale: params[:locale])
|
|
end
|
|
|
|
I18n.locale = spree_current_user.andand.locale || cookies[:locale] || I18n.default_locale
|
|
end
|
|
|
|
def valid_locale(user)
|
|
if user.present? &&
|
|
user.locale.present? &&
|
|
available_locale?(user.locale)
|
|
user.locale
|
|
else
|
|
I18n.default_locale
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def available_locale?(locale)
|
|
Rails.application.config.i18n.available_locales.include?(locale)
|
|
end
|
|
end
|