diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 1b77e800c..da8be35b0 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -385,12 +385,14 @@ class ApplicationController < ActionController::Base end def switch_locale(&action) - locale = extract_locale_from_query_params || + unchecked_locale = extract_locale_from_query_params || extract_locale_from_cookie || extract_locale_from_user || extract_locale_from_accept_language_header || I18n.default_locale + locale = unchecked_locale.to_sym.in?(I18n.available_locales) ? unchecked_locale : I18n.default_locale + gon.locale = locale I18n.with_locale(locale, &action)