@@ -5,6 +5,7 @@ class ApplicationController < ActionController::Base
55 # allow_browser versions: :modern
66
77 include ApplicationHelper
8+ include I18nHelper
89 include Pundit ::Authorization
910
1011 MEMBER_ACTIONS = %i[ destroy edit show update ] . freeze
@@ -99,49 +100,4 @@ def mnemosyne_trace
99100 ::Mnemosyne ::Instrumenter . current_trace . meta [ 'csrf_token' ] = session [ :_csrf_token ]
100101 end
101102 end
102-
103- def sanitized_locale_param
104- sanitize_locale ( params [ :locale ] )
105- end
106-
107- def sanitized_session_locale
108- sanitize_locale ( session [ :locale ] )
109- end
110-
111- def sanitized_user_preferred_locale
112- return if current_user . nil?
113-
114- sanitize_locale ( current_user . preferred_locale )
115- end
116-
117- def choose_locale
118- sanitized_locale_param ||
119- sanitized_session_locale ||
120- sanitized_user_preferred_locale ||
121- http_accept_language . compatible_language_from ( I18n . available_locales ) ||
122- I18n . default_locale
123- end
124-
125- def switch_locale ( &)
126- locale = choose_locale
127- session [ :locale ] = locale
128- Sentry . set_extras ( locale :)
129- if current_user . present? && locale != sanitized_user_preferred_locale
130- current_user . update ( preferred_locale : locale )
131- end
132- I18n . with_locale ( locale , &)
133- end
134-
135- # Sanitize given locale.
136- #
137- # Return `nil` if the locale is blank or not available.
138- #
139- def sanitize_locale ( locale )
140- return if locale . blank?
141-
142- locale = locale . downcase . to_sym
143- return unless I18n . available_locales . include? ( locale )
144-
145- locale
146- end
147103end
0 commit comments