diff options
| -rw-r--r-- | searx/engines/google.py | 1 | ||||
| -rw-r--r-- | searx/translations/nb_NO/LC_MESSAGES/messages.mo | bin | 8101 -> 8793 bytes | |||
| -rw-r--r-- | searx/translations/nb_NO/LC_MESSAGES/messages.po | 20 | ||||
| -rwxr-xr-x | searx/webapp.py | 60 | ||||
| -rw-r--r-- | tests/unit/test_webapp.py | 18 | ||||
| -rwxr-xr-x | utils/filtron.sh | 6 | ||||
| -rwxr-xr-x | utils/lib.sh | 3 | ||||
| -rwxr-xr-x | utils/searx.sh | 2 |
8 files changed, 60 insertions, 50 deletions
diff --git a/searx/engines/google.py b/searx/engines/google.py index 8e649c9d1..e1caabb12 100644 --- a/searx/engines/google.py +++ b/searx/engines/google.py @@ -298,6 +298,7 @@ def request(query, params): 'ie': "utf8", 'oe': "utf8", 'start': offset, + 'filter': '0', **additional_parameters, }) diff --git a/searx/translations/nb_NO/LC_MESSAGES/messages.mo b/searx/translations/nb_NO/LC_MESSAGES/messages.mo Binary files differindex 3bf1a37a6..3b9e4639a 100644 --- a/searx/translations/nb_NO/LC_MESSAGES/messages.mo +++ b/searx/translations/nb_NO/LC_MESSAGES/messages.mo diff --git a/searx/translations/nb_NO/LC_MESSAGES/messages.po b/searx/translations/nb_NO/LC_MESSAGES/messages.po index 21af0a268..96b0ecb3e 100644 --- a/searx/translations/nb_NO/LC_MESSAGES/messages.po +++ b/searx/translations/nb_NO/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2021-07-31 19:11+0200\n" -"PO-Revision-Date: 2021-08-13 03:06+0000\n" +"PO-Revision-Date: 2021-08-20 07:16+0000\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Language-Team: Norwegian Bokmål <https://weblate.bubu1.eu/projects/searxng/" "searxng/nb_NO/>\n" @@ -59,7 +59,7 @@ msgstr "kart" #: searx/webapp.py:196 msgid "onions" -msgstr "" +msgstr "løktjenester" #: searx/webapp.py:197 msgid "science" @@ -107,7 +107,7 @@ msgstr "for mange forespørsler" #: searx/webapp.py:223 msgid "access denied" -msgstr "" +msgstr "tilgang nektet" #: searx/webapp.py:224 msgid "server API error" @@ -143,11 +143,11 @@ msgstr "" #: searx/answerers/random/answerer.py:65 msgid "Random value generator" -msgstr "" +msgstr "Generator for tilfeldige tall" #: searx/answerers/random/answerer.py:66 msgid "Generate different random values" -msgstr "" +msgstr "Generer forskjellige tilfeldige verdier" #: searx/answerers/statistics/answerer.py:50 msgid "Statistics functions" @@ -155,11 +155,11 @@ msgstr "Statistikkfunksjoner" #: searx/answerers/statistics/answerer.py:51 msgid "Compute {functions} of the arguments" -msgstr "" +msgstr "Regn ut {functions} av parameterne" #: searx/engines/openstreetmap.py:155 msgid "Get directions" -msgstr "" +msgstr "Få veibeskrivelser" #: searx/engines/pdbe.py:90 msgid "{title} (OBSOLETE)" @@ -171,7 +171,7 @@ msgstr "Denne oppføringen har blitt erstattet av" #: searx/engines/pubmed.py:78 msgid "No abstract is available for this publication." -msgstr "" +msgstr "Sammendrag er ikke tilgjengelig for denne publikasjonen." #: searx/engines/qwant.py:196 msgid "Source" @@ -195,7 +195,7 @@ msgstr "Uendelig rulling" #: searx/plugins/infinite_scroll.py:4 msgid "Automatically load next page when scrolling to bottom of current page" -msgstr "" +msgstr "Last inn neste side automatisk ved rulling til bunnen av nåværende side" #: searx/plugins/oa_doi_rewrite.py:9 msgid "Open Access DOI rewrite" @@ -982,7 +982,7 @@ msgstr "" #: searx/templates/oscar/messages/no_results.html:17 #: searx/templates/simple/messages/no_results.html:18 msgid "Sorry!" -msgstr "" +msgstr "Beklager." #: searx/templates/oscar/messages/no_results.html:18 #: searx/templates/simple/messages/no_results.html:19 diff --git a/searx/webapp.py b/searx/webapp.py index 2daafeffa..a1abea887 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -223,21 +223,28 @@ exception_classname_to_text = { 'lxml.etree.ParserError': parsing_error_text, } -_flask_babel_get_translations = flask_babel.get_translations - # monkey patch for flask_babel.get_translations +_flask_babel_get_translations = flask_babel.get_translations def _get_translations(): if has_request_context() and request.form.get('use-translation') == 'oc': babel_ext = flask_babel.current_app.extensions['babel'] return Translations.load(next(babel_ext.translation_directories), 'oc') return _flask_babel_get_translations() +flask_babel.get_translations = _get_translations -flask_babel.get_translations = _get_translations +@babel.localeselector +def get_locale(): + locale = request.preferences.get_value('locale') if has_request_context() else 'en' + if locale == 'oc': + request.form['use-translation'] = 'oc' + locale = 'fr_FR' + logger.debug("%s uses locale `%s`", urllib.parse.quote(request.url), locale) + return locale -def _get_browser_or_settings_language(req, lang_list): +def _get_browser_language(req, lang_list): for lang in req.headers.get("Accept-Language", "en").split(","): if ';' in lang: lang = lang.split(';')[0] @@ -247,37 +254,7 @@ def _get_browser_or_settings_language(req, lang_list): locale = match_language(lang, lang_list, fallback=None) if locale is not None: return locale - return settings['search']['default_lang'] or 'en' - - -@babel.localeselector -def get_locale(): - if 'locale' in request.form\ - and request.form['locale'] in LOCALE_NAMES: - # use locale from the form - locale = request.form['locale'] - locale_source = 'form' - elif request.preferences.get_value('locale') != '': - # use locale from the preferences - locale = request.preferences.get_value('locale') - locale_source = 'preferences' - else: - # use local from the browser - locale = _get_browser_or_settings_language(request, UI_LOCALE_CODES) - locale = locale.replace('-', '_') - locale_source = 'browser' - - # see _get_translations function - # and https://github.com/searx/searx/pull/1863 - if locale == 'oc': - request.form['use-translation'] = 'oc' - locale = 'fr_FR' - - logger.debug( - "%s uses locale `%s` from %s", urllib.parse.quote(request.url), locale, locale_source - ) - - return locale + return 'en' # code-highlighter @@ -541,11 +518,18 @@ def pre_request(): logger.exception(e, exc_info=True) request.errors.append(gettext('Invalid settings')) - # init search language and locale + # language is defined neither in settings nor in preferences + # use browser headers if not preferences.get_value("language"): - preferences.parse_dict({"language": _get_browser_or_settings_language(request, LANGUAGE_CODES)}) + language = _get_browser_language(request, LANGUAGE_CODES) + preferences.parse_dict({"language": language}) + + # locale is defined neither in settings nor in preferences + # use browser headers if not preferences.get_value("locale"): - preferences.parse_dict({"locale": get_locale()}) + locale = _get_browser_language(request, UI_LOCALE_CODES) + locale = locale.replace('-', '_') + preferences.parse_dict({"locale": locale}) # request.user_plugins request.user_plugins = [] # pylint: disable=assigning-non-slot diff --git a/tests/unit/test_webapp.py b/tests/unit/test_webapp.py index 2cbdc83d6..8598113f7 100644 --- a/tests/unit/test_webapp.py +++ b/tests/unit/test_webapp.py @@ -220,6 +220,24 @@ class ViewsTestCase(SearxTestCase): 'Search language ignored browser preference.' ) + def test_brower_empty_locale(self): + result = self.app.get('/preferences', headers={'Accept-Language': ''}) + self.assertEqual(result.status_code, 200) + self.assertIn( + b'<option value="en" selected="selected">', + result.data, + 'Interface locale ignored browser preference.' + ) + + def test_locale_occitan(self): + result = self.app.get('/preferences?locale=oc') + self.assertEqual(result.status_code, 200) + self.assertIn( + b'<option value="oc" selected="selected">', + result.data, + 'Interface locale ignored browser preference.' + ) + def test_stats(self): result = self.app.get('/stats') self.assertEqual(result.status_code, 200) diff --git a/utils/filtron.sh b/utils/filtron.sh index 3bd6f016d..4e35199ee 100755 --- a/utils/filtron.sh +++ b/utils/filtron.sh @@ -302,6 +302,12 @@ install_rules() { return fi + if cmp --silent "${FILTRON_RULES}" "${FILTRON_RULES_TEMPLATE}"; then + info_msg "${FILTRON_RULES} is up to date with" + info_msg "${FILTRON_RULES_TEMPLATE}" + return + fi + rst_para "Diff between origin's rules file (+) and current (-):" echo "${FILTRON_RULES}" "${FILTRON_RULES_TEMPLATE}" $DIFF_CMD "${FILTRON_RULES}" "${FILTRON_RULES_TEMPLATE}" diff --git a/utils/lib.sh b/utils/lib.sh index f29666226..028450ab4 100755 --- a/utils/lib.sh +++ b/utils/lib.sh @@ -437,7 +437,8 @@ install_template() { if [[ "$do_eval" == "1" ]]; then template_file="${CACHE}${dst}${variant}" - info_msg "BUILD template ${template_file}" + info_msg "BUILD ${template_file}" + info_msg "BUILD using template ${template_origin}" if [[ -n ${SUDO_USER} ]]; then sudo -u "${SUDO_USER}" mkdir -p "$(dirname "${template_file}")" else diff --git a/utils/searx.sh b/utils/searx.sh index 3ebe5df11..a2d42c27b 100755 --- a/utils/searx.sh +++ b/utils/searx.sh @@ -621,7 +621,7 @@ install_settings() { fi mkdir -p "$(dirname "${SEARX_SETTINGS_PATH}")" - install_template \ + install_template --no-eval \ "${SEARX_SETTINGS_PATH}" \ "${SERVICE_USER}" "${SERVICE_GROUP}" configure_searx |