summaryrefslogtreecommitdiff
path: root/searx/webapp.py
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-02-05 10:55:37 +0100
committerGitHub <noreply@github.com>2021-02-05 10:55:37 +0100
commit1e35c3ccce217df6f718034d47760fe9e42fa4bc (patch)
tree6c79284801233a2edc14716e82c0df46516794a6 /searx/webapp.py
parent321788f14a8a674984b9884094dd9626d6162a33 (diff)
parentc937a9e85f510820f7d9b98666dcf83f72f80ceb (diff)
Merge pull request #2531 from MarcAbonce/fix-browser-locale
[fix] Get correct locale with country from browser
Diffstat (limited to 'searx/webapp.py')
-rwxr-xr-xsearx/webapp.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/searx/webapp.py b/searx/webapp.py
index 985eced18..4752eb279 100755
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -142,6 +142,7 @@ babel = Babel(app)
rtl_locales = ['ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'fa_IR', 'glk', 'he',
'ku', 'mzn', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']
+ui_locale_codes = [l.replace('_', '-') for l in settings['locales'].keys()]
# used when translating category names
_category_names = (gettext('files'),
@@ -175,6 +176,9 @@ def _get_browser_or_settings_language(request, lang_list):
for lang in request.headers.get("Accept-Language", "en").split(","):
if ';' in lang:
lang = lang.split(';')[0]
+ if '-' in lang:
+ lang_parts = lang.split('-')
+ lang = "{}-{}".format(lang_parts[0], lang_parts[-1].upper())
locale = match_language(lang, lang_list, fallback=None)
if locale is not None:
return locale
@@ -194,13 +198,10 @@ def get_locale():
locale_source = 'preferences'
else:
# use local from the browser
- locale = _get_browser_or_settings_language(request, settings['locales'].keys())
+ locale = _get_browser_or_settings_language(request, ui_locale_codes)
+ locale = locale.replace('-', '_')
locale_source = 'browser'
- #
- if locale == 'zh_TW':
- locale = 'zh_Hant_TW'
-
# see _get_translations function
# and https://github.com/searx/searx/pull/1863
if locale == 'oc':