mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	[mod] refactor searx.webapp.get_locale
* Log each call to get_locale: display the URL, the locale and the source (browser, preferences, form). * Rename _get_browser_language to _get_browser_or_settings_language to match the actual code.
This commit is contained in:
		
							parent
							
								
									2fd582d457
								
							
						
					
					
						commit
						f9664037a6
					
				
					 1 changed files with 16 additions and 11 deletions
				
			
		|  | @ -159,7 +159,7 @@ def _get_translations(): | ||||||
| flask_babel.get_translations = _get_translations | flask_babel.get_translations = _get_translations | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_browser_language(request, lang_list): | def _get_browser_or_settings_language(request, lang_list): | ||||||
|     for lang in request.headers.get("Accept-Language", "en").split(","): |     for lang in request.headers.get("Accept-Language", "en").split(","): | ||||||
|         if ';' in lang: |         if ';' in lang: | ||||||
|             lang = lang.split(';')[0] |             lang = lang.split(';')[0] | ||||||
|  | @ -171,26 +171,31 @@ def _get_browser_language(request, lang_list): | ||||||
| 
 | 
 | ||||||
| @babel.localeselector | @babel.localeselector | ||||||
| def get_locale(): | def get_locale(): | ||||||
|     locale = _get_browser_language(request, settings['locales'].keys()) |  | ||||||
| 
 |  | ||||||
|     logger.debug("default locale from browser info is `%s`", locale) |  | ||||||
| 
 |  | ||||||
|     if request.preferences.get_value('locale') != '': |  | ||||||
|         locale = request.preferences.get_value('locale') |  | ||||||
| 
 |  | ||||||
|     if 'locale' in request.form\ |     if 'locale' in request.form\ | ||||||
|        and request.form['locale'] in settings['locales']: |        and request.form['locale'] in settings['locales']: | ||||||
|  |         # use locale from the form | ||||||
|         locale = request.form['locale'] |         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, settings['locales'].keys()) | ||||||
|  |         locale_source = 'browser' | ||||||
| 
 | 
 | ||||||
|  |     # | ||||||
|     if locale == 'zh_TW': |     if locale == 'zh_TW': | ||||||
|         locale = 'zh_Hant_TW' |         locale = 'zh_Hant_TW' | ||||||
| 
 | 
 | ||||||
|  |     # see _get_translations function | ||||||
|  |     # and https://github.com/searx/searx/pull/1863 | ||||||
|     if locale == 'oc': |     if locale == 'oc': | ||||||
|         request.form['use-translation'] = 'oc' |         request.form['use-translation'] = 'oc' | ||||||
|         locale = 'fr_FR' |         locale = 'fr_FR' | ||||||
| 
 | 
 | ||||||
|     logger.debug("selected locale is `%s`", locale) |     logger.debug("%s uses locale `%s` from %s", request.url, locale, locale_source) | ||||||
| 
 |  | ||||||
|     return locale |     return locale | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -472,7 +477,7 @@ def pre_request(): | ||||||
| 
 | 
 | ||||||
|     # init search language and locale |     # init search language and locale | ||||||
|     if not preferences.get_value("language"): |     if not preferences.get_value("language"): | ||||||
|         preferences.parse_dict({"language": _get_browser_language(request, LANGUAGE_CODES)}) |         preferences.parse_dict({"language": _get_browser_or_settings_language(request, LANGUAGE_CODES)}) | ||||||
|     if not preferences.get_value("locale"): |     if not preferences.get_value("locale"): | ||||||
|         preferences.parse_dict({"locale": get_locale()}) |         preferences.parse_dict({"locale": get_locale()}) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Alexandre Flament
						Alexandre Flament