mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-04 03:27:06 -05:00 
			
		
		
		
	searx.locales: improve support for languages not supported by babel
* refactor get_translations() to rely on ADDITIONAL_TRANSLATIONS and LOCALE_BEST_MATCH * update RTL_LOCALES for languages in ADDITIONAL_TRANSLATIONS
This commit is contained in:
		
							parent
							
								
									7438e48d13
								
							
						
					
					
						commit
						20d951fc5c
					
				@ -80,15 +80,11 @@ def localeselector():
 | 
			
		||||
 | 
			
		||||
def get_translations():
 | 
			
		||||
    """Monkey patch of :py:obj:`flask_babel.get_translations`"""
 | 
			
		||||
    if has_request_context() and flask.request.form.get('use-translation') == 'oc':
 | 
			
		||||
        babel_ext = flask_babel.current_app.extensions['babel']
 | 
			
		||||
        return Translations.load(next(babel_ext.translation_directories), 'oc')
 | 
			
		||||
    if has_request_context() and flask.request.form.get('use-translation') == 'szl':
 | 
			
		||||
        babel_ext = flask_babel.current_app.extensions['babel']
 | 
			
		||||
        return Translations.load(next(babel_ext.translation_directories), 'szl')
 | 
			
		||||
    if has_request_context() and flask.request.form.get('use-translation') == 'pap':
 | 
			
		||||
        babel_ext = flask_babel.current_app.extensions['babel']
 | 
			
		||||
        return Translations.load(next(babel_ext.translation_directories), 'pap')
 | 
			
		||||
    if has_request_context():
 | 
			
		||||
        use_translation = flask.request.form.get('use-translation')
 | 
			
		||||
        if use_translation in ADDITIONAL_TRANSLATIONS:
 | 
			
		||||
            babel_ext = flask_babel.current_app.extensions['babel']
 | 
			
		||||
            return Translations.load(next(babel_ext.translation_directories), use_translation)
 | 
			
		||||
    return _flask_babel_get_translations()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -136,13 +132,18 @@ def locales_initialize(directory=None):
 | 
			
		||||
    flask_babel.get_translations = get_translations
 | 
			
		||||
 | 
			
		||||
    for tag, descr in ADDITIONAL_TRANSLATIONS.items():
 | 
			
		||||
        locale = Locale.parse(LOCALE_BEST_MATCH[tag], sep='-')
 | 
			
		||||
        LOCALE_NAMES[tag] = descr
 | 
			
		||||
        if locale.text_direction == 'rtl':
 | 
			
		||||
            RTL_LOCALES.add(tag)
 | 
			
		||||
 | 
			
		||||
    for tag in LOCALE_BEST_MATCH:
 | 
			
		||||
        descr = LOCALE_NAMES.get(tag)
 | 
			
		||||
        if not descr:
 | 
			
		||||
            locale = Locale.parse(tag, sep='-')
 | 
			
		||||
            LOCALE_NAMES[tag] = get_locale_descr(locale, tag.replace('-', '_'))
 | 
			
		||||
            if locale.text_direction == 'rtl':
 | 
			
		||||
                RTL_LOCALES.add(tag)
 | 
			
		||||
 | 
			
		||||
    for dirname in sorted(os.listdir(directory)):
 | 
			
		||||
        # Based on https://flask-babel.tkte.ch/_modules/flask_babel.html#Babel.list_translations
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user