From bf4bf1ff2cdf318dfb8b7c11dc093dc274893e02 Mon Sep 17 00:00:00 2001 From: "Joao A. Candido Ramos" Date: Sat, 27 Jun 2020 20:23:17 +0000 Subject: [PATCH] Split interface and results language config (#89) Adding support to choose separately the language of search and the one for the interface (allowing a default givent by google). Co-authored-by: Joao --- app/models/config.py | 4 +++- app/request.py | 4 ++-- app/routes.py | 4 ++-- app/templates/index.html | 19 ++++++++++++++++--- test/test_routes.py | 3 ++- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/models/config.py b/app/models/config.py index 544d2d1..45b1b65 100644 --- a/app/models/config.py +++ b/app/models/config.py @@ -2,6 +2,7 @@ class Config: # Derived from here: # https://sites.google.com/site/tomihasa/google-language-codes#searchlanguage LANGUAGES = [ + {'name': 'Default (use server location)', 'value': ''}, {'name': 'English', 'value': 'lang_en'}, {'name': 'Afrikaans', 'value': 'lang_af'}, {'name': 'Arabic', 'value': 'lang_ar'}, @@ -298,7 +299,8 @@ class Config: def __init__(self, **kwargs): self.url = '' - self.lang = 'lang_en' + self.lang_search = '' + self.lang_interface = '' self.ctry = '' self.safe = False self.dark = False diff --git a/app/request.py b/app/request.py index fe7d3fb..192eedc 100644 --- a/app/request.py +++ b/app/request.py @@ -66,10 +66,10 @@ def gen_query(query, args, config, near_city=None): param_dict['source'] = '&source=' + args.get('source') param_dict['lr'] = ('&lr=' + ''.join([_ for _ in sub_lang if not _.isdigit()])) if sub_lang else '' else: - param_dict['lr'] = '&lr=' + config.lang + param_dict['lr'] = ('&lr=' + config.lang_search) if config.lang_search else '' param_dict['cr'] = ('&cr=' + config.ctry) if config.ctry else '' - param_dict['hl'] = '&hl=' + config.lang.replace('lang_', '') + param_dict['hl'] = ('&hl=' + config.lang_interface.replace('lang_', '')) if config.lang_interface else '' param_dict['safe'] = '&safe=' + ('active' if config.safe else 'off') for val in param_dict.values(): diff --git a/app/routes.py b/app/routes.py index ed288c0..7f1869c 100644 --- a/app/routes.py +++ b/app/routes.py @@ -59,13 +59,13 @@ def before_request_func(): if https_only and request.url.startswith('http://'): return redirect(request.url.replace('http://', 'https://', 1), code=308) - + g.user_config = Config(**session['config']) if not g.user_config.url: g.user_config.url = request.url_root.replace('http://', 'https://') if https_only else request.url_root - g.user_request = Request(request.headers.get('User-Agent'), language=g.user_config.lang) + g.user_request = Request(request.headers.get('User-Agent'), language=g.user_config.lang_search) g.app_location = g.user_config.url diff --git a/app/templates/index.html b/app/templates/index.html index 23e3fbd..a541413 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -55,11 +55,24 @@
- - {% for lang in languages %} + {% endfor %} + +
+
+ +