[enh] reduce the available language list

close #406

settings['search']['languages'] contains the languages codes and 'all'
This commit is contained in:
Alexandre Flament 2021-10-21 10:41:57 +02:00
parent dfdf71bf08
commit 60db344cc0
5 changed files with 36 additions and 13 deletions

View file

@ -90,7 +90,6 @@ from searx.plugins.oa_doi_rewrite import get_doi_resolver
from searx.preferences import (
Preferences,
ValidationException,
LANGUAGE_CODES,
)
from searx.answerers import (
answerers,
@ -432,7 +431,7 @@ def render(template_name, override_theme=None, **kwargs):
kwargs['categories'] = _get_enable_categories(kwargs['all_categories'])
# i18n
kwargs['language_codes'] = languages # from searx.languages
kwargs['language_codes'] = [ l for l in languages if l[0] in settings['search']['languages'] ]
kwargs['translations'] = json.dumps(get_translations(), separators=(',', ':'))
locale = request.preferences.get_value('locale')
@ -442,7 +441,7 @@ def render(template_name, override_theme=None, **kwargs):
kwargs['rtl'] = True
if 'current_language' not in kwargs:
kwargs['current_language'] = match_language(
request.preferences.get_value('language'), LANGUAGE_CODES )
request.preferences.get_value('language'), settings['search']['languages'] )
# values from settings
kwargs['search_formats'] = [
@ -524,7 +523,7 @@ def pre_request():
# language is defined neither in settings nor in preferences
# use browser headers
if not preferences.get_value("language"):
language = _get_browser_language(request, LANGUAGE_CODES)
language = _get_browser_language(request, settings['search']['languages'])
preferences.parse_dict({"language": language})
# locale is defined neither in settings nor in preferences
@ -807,7 +806,7 @@ def search():
),
current_language = match_language(
search_query.lang,
LANGUAGE_CODES,
settings['search']['languages'],
fallback=request.preferences.get_value("language")
),
theme = get_current_theme_name(),