@@ -56,6 +56,7 @@ from flask import (
5656from babel.support import Translations
5757import flask_babel
5858from flask_babel import Babel, gettext, format_date, format_decimal
59+from flask.ctx import has_request_context
5960from flask.json import jsonify
6061from searx import brand
6162from searx import settings, searx_dir, searx_debug
@@ -165,13 +166,11 @@ _flask_babel_get_translations = flask_babel.get_translations
165166
166167# monkey patch for flask_babel.get_translations
167168def _get_translations():
168− translation_locale = request.form.get('use-translation')
169− if translation_locale:
169+ if has_request_context() and request.form.get('use-translation') == 'oc':
170170 babel_ext = flask_babel.current_app.extensions['babel']
171− translation = Translations.load(next(babel_ext.translation_directories), 'oc')
172− else:
173− translation = _flask_babel_get_translations()
174− return translation
171+ return Translations.load(next(babel_ext.translation_directories), 'oc')
172+
173+ return _flask_babel_get_translations()
175174
176175
177176flask_babel.get_translations = _get_translations
@@ -627,7 +626,7 @@ def index():
627626 'corrections': list(result_container.corrections),
628627 'infoboxes': result_container.infoboxes,
629628 'suggestions': list(result_container.suggestions),
630− 'unresponsive_engines': list(result_container.unresponsive_engines)},
629+ 'unresponsive_engines': __get_translated_errors(result_container.unresponsive_engines)}, # noqa
631630 default=lambda item: list(item) if isinstance(item, set) else item),
632631 mimetype='application/json')
633632 elif output_format == 'csv':
@@ -695,7 +694,7 @@ def index():
695694 corrections=correction_urls,
696695 infoboxes=result_container.infoboxes,
697696 paging=result_container.paging,
698− unresponsive_engines=result_container.unresponsive_engines,
697+ unresponsive_engines=__get_translated_errors(result_container.unresponsive_engines),
699698 current_language=match_language(search_query.lang,
700699 LANGUAGE_CODES,
701700 fallback=request.preferences.get_value("language")),
@@ -706,6 +705,16 @@ def index():
706705 )
707706
708707
708+def __get_translated_errors(unresponsive_engines):
709+ translated_errors = []
710+ for unresponsive_engine in unresponsive_engines:
711+ error_msg = gettext(unresponsive_engine[1])
712+ if unresponsive_engine[2]:
713+ error_msg = "{} {}".format(error_msg, unresponsive_engine[2])
714+ translated_errors.append((unresponsive_engine[0], error_msg))
715+ return translated_errors
716+
717+
709718@app.route('/about', methods=['GET'])
710719def about():
711720 """Render about page"""