From 58cc278145eec62e55a8a9430ed3664586cf2da2 Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Wed, 15 Dec 2021 17:48:51 +0000 Subject: [PATCH] [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. --- deluge/i18n/util.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/deluge/i18n/util.py b/deluge/i18n/util.py index 81530c2ee..6ed4b97da 100644 --- a/deluge/i18n/util.py +++ b/deluge/i18n/util.py @@ -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):