Refactor get_language_name function to handle missing language names

This commit is contained in:
Daniel Edwards 2024-03-19 10:40:02 +11:00
parent becb84a73d
commit cfe61a26d0
No known key found for this signature in database
GPG Key ID: 9F6FA6ECD4DF3A35

View File

@ -49,15 +49,24 @@ except ImportError:
def get_language_names(locale):
return _LANGUAGE_NAMES.get(str(locale))
names = _LANGUAGE_NAMES.get(str(locale))
if names is None:
names = _LANGUAGE_NAMES.get(locale.language)
return names
def get_language_name(locale, lang_code):
try:
return get_language_names(locale)[lang_code]
except KeyError:
log.error('Missing translation for language name: {}'.format(lang_code))
return "Unknown"
UNKNOWN_TRANSLATION = "Unknown"
names = get_language_names(locale)
if names is None:
log.error(f"Missing language names for locale: {str(locale)}/{locale.language}")
return UNKNOWN_TRANSLATION
name = names.get(lang_code, UNKNOWN_TRANSLATION)
if name == UNKNOWN_TRANSLATION:
log.error("Missing translation for language name: {}".format(lang_code))
return name
def get_language_codes(locale, language_names, remainder=None):