From 88f9ac58f4577e3efed63bceb91b51258060a8a0 Mon Sep 17 00:00:00 2001 From: Dalf Date: Fri, 14 Feb 2020 13:45:50 +0100 Subject: [mod] move public instance list to https://searx.space --- searx/templates/__common__/about.html | 2 +- searx/templates/oscar/base.html | 2 +- searx/templates/simple/base.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'searx') diff --git a/searx/templates/__common__/about.html b/searx/templates/__common__/about.html index bf1733359..ff86ddd28 100644 --- a/searx/templates/__common__/about.html +++ b/searx/templates/__common__/about.html @@ -22,7 +22,7 @@ Searx can be added to your browser's search bar; moreover, it can be set as the

How can I make it my own?

-

Searx appreciates your concern regarding logs, so take the code and run it yourself!
Add your Searx to this list to help other people reclaim their privacy and make the Internet freer! +

Searx appreciates your concern regarding logs, so take the code and run it yourself!
Add your Searx to this list to help other people reclaim their privacy and make the Internet freer!
The more decentralized the Internet is, the more freedom we have!

diff --git a/searx/templates/oscar/base.html b/searx/templates/oscar/base.html index 66a9e6029..9465ca58a 100644 --- a/searx/templates/oscar/base.html +++ b/searx/templates/oscar/base.html @@ -88,7 +88,7 @@ {{ _('Powered by') }} searx - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
{{ _('Source code') }} | {{ _('Issue tracker') }} | - {{ _('Public instances') }} + {{ _('Public instances') }}

diff --git a/searx/templates/simple/base.html b/searx/templates/simple/base.html index 92597b654..bba02dbf8 100644 --- a/searx/templates/simple/base.html +++ b/searx/templates/simple/base.html @@ -53,7 +53,7 @@ {{ _('Powered by') }} searx - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
{{ _('Source code') }} | {{ _('Issue tracker') }} | - {{ _('Public instances') }} + {{ _('Public instances') }}

-- cgit v1.2.3 From 6df41728872934fe0e7f12c0a272d370f50d26a9 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 18 Feb 2020 00:56:27 +0100 Subject: [fix] allow settin custom locale from settins.yml --- searx/preferences.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'searx') diff --git a/searx/preferences.py b/searx/preferences.py index 669232b12..37d4f13a8 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -11,7 +11,7 @@ if version[0] == '3': COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years -LANGUAGE_CODES = [l[0] for l in languages] +LANGUAGE_CODES = [l[0].split('-')[0] for l in languages] LANGUAGE_CODES.append('all') DISABLED = 0 ENABLED = 1 -- cgit v1.2.3 From c0006cadf70f0ee457d881bbd4ec40e30b0acd8f Mon Sep 17 00:00:00 2001 From: Marc Abonce Seguin Date: Sun, 23 Feb 2020 02:03:42 -0700 Subject: fix default locale and language issues --- searx/preferences.py | 9 +++++++-- searx/settings.yml | 1 + searx/webapp.py | 22 +++++++++++----------- 3 files changed, 19 insertions(+), 13 deletions(-) (limited to 'searx') diff --git a/searx/preferences.py b/searx/preferences.py index 37d4f13a8..6e31aa187 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -4,6 +4,7 @@ from sys import version from searx import settings, autocomplete from searx.languages import language_codes as languages +from searx.utils import match_language from searx.url_utils import parse_qs, urlencode if version[0] == '3': @@ -11,7 +12,7 @@ if version[0] == '3': COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years -LANGUAGE_CODES = [l[0].split('-')[0] for l in languages] +LANGUAGE_CODES = [l[0] for l in languages] LANGUAGE_CODES.append('all') DISABLED = 0 ENABLED = 1 @@ -132,6 +133,10 @@ class SetSetting(Setting): class SearchLanguageSetting(EnumStringSetting): """Available choices may change, so user's value may not be in choices anymore""" + def _validate_selection(self, selection): + if not match_language(selection, self.choices, fallback=None) and selection != "": + raise ValidationException('Invalid language code: "{0}"'.format(selection)) + def parse(self, data): if data not in self.choices and data != self.value: # hack to give some backwards compatibility with old language cookies @@ -268,7 +273,7 @@ class Preferences(object): super(Preferences, self).__init__() self.key_value_settings = {'categories': MultipleChoiceSetting(['general'], choices=categories + ['none']), - 'language': SearchLanguageSetting(settings['ui']['default_locale'], + 'language': SearchLanguageSetting(settings['search']['default_lang'], choices=list(LANGUAGE_CODES) + ['']), 'locale': EnumStringSetting(settings['ui']['default_locale'], choices=list(settings['locales'].keys()) + ['']), diff --git a/searx/settings.yml b/searx/settings.yml index ab3de3951..65f42af8c 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -5,6 +5,7 @@ general: search: safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default + default_lang : "" # Default search language - leave blank to detect from browser information or use codes from 'languages.py' ban_time_on_fail : 5 # ban time in seconds after engine errors max_ban_time_on_fail : 120 # max ban time in seconds after engine errors diff --git a/searx/webapp.py b/searx/webapp.py index a856c07dd..8712cc3c1 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -157,14 +157,16 @@ _category_names = (gettext('files'), outgoing_proxies = settings['outgoing'].get('proxies') or None +def _get_browser_language(request, lang_list): + for lang in request.headers.get("Accept-Language", "en").split(","): + locale = match_language(lang, lang_list, fallback=None) + if locale is not None: + return locale + + @babel.localeselector def get_locale(): - locale = "en-US" - - for lang in request.headers.get("Accept-Language", locale).split(","): - locale = match_language(lang, settings['locales'].keys(), fallback=None) - if locale is not None: - break + locale = _get_browser_language(request, settings['locales'].keys()) logger.debug("default locale from browser info is `%s`", locale) @@ -372,8 +374,7 @@ def render(template_name, override_theme=None, **kwargs): kwargs['language_codes'] = languages if 'current_language' not in kwargs: kwargs['current_language'] = match_language(request.preferences.get_value('language'), - LANGUAGE_CODES, - fallback=locale) + LANGUAGE_CODES) # override url_for function in templates kwargs['url_for'] = url_for_theme @@ -444,11 +445,10 @@ def pre_request(): request.errors.append(gettext('Invalid settings')) # init search language and locale - locale = get_locale() if not preferences.get_value("language"): - preferences.parse_dict({"language": locale}) + preferences.parse_dict({"language": _get_browser_language(request, LANGUAGE_CODES)}) if not preferences.get_value("locale"): - preferences.parse_dict({"locale": locale}) + preferences.parse_dict({"locale": get_locale()}) # request.user_plugins request.user_plugins = [] -- cgit v1.2.3