Sha256: c59e7ccd16eb63096957d841d6e4ea753980a22e2e1c57036f03f16ec66fc784
Contents?: true
Size: 964 Bytes
Versions: 1
Compression:
Stored size: 964 Bytes
Contents
class Brut::FrontEnd::RouteHooks::LocaleDetection < Brut::FrontEnd::RouteHook def before(app_session:,env:) http_accept_language = Brut::I18n::HTTPAcceptLanguage.from_header(env["HTTP_ACCEPT_LANGUAGE"]) if !app_session.http_accept_language.known? app_session.http_accept_language = http_accept_language end best_locale = nil app_session.http_accept_language.weighted_locales.each do |weighted_locale| if ::I18n.available_locales.include?(weighted_locale.locale.to_sym) best_locale = weighted_locale.locale.to_sym break elsif ::I18n.available_locales.include?(weighted_locale.primary_only.locale.to_sym) best_locale = weighted_locale.primary_only.locale.to_sym break end end if best_locale ::I18n.locale = best_locale else SemanticLogger["Brut"].warn("None of the user's locales are available: #{app_session.http_accept_language}") end continue end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
brut-0.0.1 | lib/brut/front_end/route_hooks/locale_detection.rb |