[i18n] Fix set_language error with empty lang string

The Web server config for language was set to an empty string which
resulted in an warning logged by i18n set_language.

* Changed set_language to ignore empty language string and do nothing.
We don't want to override the user's system language unless actually
specified by the user.
* Improved the translation warning message.
This commit is contained in:
Calum Lind 2021-12-15 17:48:51 +00:00
parent a03e649da6
commit 58cc278145
No known key found for this signature in database
GPG Key ID: 90597A687B836BA3

View File

@ -69,18 +69,21 @@ def set_language(lang):
:param lang: the language, e.g. "en", "de" or "en_GB"
:type lang: str
"""
if not lang:
return
# Necessary to set these environment variables for GtkBuilder
deluge.common.set_env_variable('LANGUAGE', lang) # Windows/Linux
deluge.common.set_env_variable('LANG', lang) # For OSX
translations_path = get_translations_path()
try:
ro = gettext.translation(
'deluge', localedir=translations_path, languages=[lang]
translation = gettext.translation(
'deluge', localedir=get_translations_path(), languages=[lang]
)
ro.install()
except IOError as ex:
log.warning('IOError when loading translations: %s', ex)
except IOError:
log.warning('Unable to find translation (.mo) to set language: %s', lang)
else:
translation.install()
def setup_mock_translation(warn_msg=None):