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
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