X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/1368f194da3834559c195e6a9e269cd4cb580437..0f6dda6050204cba832bbe290a16181cbca0a77f:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 00104b0a1..3eefa4a91 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -101,18 +101,20 @@ class ApplicationController < ActionController::Base end def set_locale + response.header['Vary'] = 'Accept-Language' + if @user if !@user.languages.empty? request.user_preferred_languages = @user.languages + response.header['Vary'] = '*' elsif !request.user_preferred_languages.empty? @user.languages = request.user_preferred_languages @user.save end end - I18n.locale = request.preferred_language_from(I18n.available_locales) || - request.compatible_language_from(I18n.available_locales) - logger.info("Select #{I18n.locale} matching #{request.user_preferred_languages.join(',')} against #{I18n.available_locales.join(',')}") + I18n.locale = request.compatible_language_from(I18n.available_locales) + response.headers['Content-Language'] = I18n.locale.to_s end @@ -130,6 +132,8 @@ class ApplicationController < ActionController::Base rescue OSM::APIError => ex report_error ex.message, ex.status rescue Exception => ex + logger.info("API threw unexpected #{ex.class} exception: #{ex.message}") + ex.backtrace.each { |l| logger.info(l) } report_error "#{ex.class}: #{ex.message}", :internal_server_error end end