X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/00a605a2a877528ec3d4eabc6562e262c427b839..101ee6ade2a24e8c468badb82d56c17b04e0df37:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index e64e2e022..6e9be2de4 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -250,6 +250,8 @@ class ApplicationController < ActionController::Base I18n.locale = request.compatible_language_from(I18n.available_locales) || I18n.default_locale + logger.info "Selected locale #{I18n.locale} from #{request.user_preferred_languages.inspect}" + response.headers['Content-Language'] = I18n.locale.to_s end @@ -299,8 +301,14 @@ class ApplicationController < ActionController::Base OSM::Timer.timeout(WEB_TIMEOUT) do yield end - rescue ActionView::TemplateError => ex - if ex.original_exception.is_a?(Timeout::Error) + rescue ActionView::Template::Error => ex + ex = ex.original_exception + + if ex.is_a?(ActiveRecord::StatementInvalid) and ex.message =~ /^Timeout::Error/ + ex = Timeout::Error.new + end + + if ex.is_a?(Timeout::Error) render :action => "timeout" else raise