From e6f26f65459489de6c59dda8bc8e4abc213ba762 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Tue, 18 Dec 2018 18:53:40 -0800 Subject: When discovering default locale, default to english if locale.getdefaultlocale() returns None. Also, make locales that include country codes (pt_PT and pt_BR) actually work as default locales --- onionshare/settings.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/onionshare/settings.py b/onionshare/settings.py index fc68ffc9..91844c8d 100644 --- a/onionshare/settings.py +++ b/onionshare/settings.py @@ -111,7 +111,19 @@ class Settings(object): # Choose the default locale based on the OS preference, and fall-back to English if self._settings['locale'] is None: - default_locale = locale.getdefaultlocale()[0][:2] + language_code, encoding = locale.getdefaultlocale() + + # Default to English + if not language_code: + language_code = 'en_US' + + if language_code == 'pt_PT' and language_code == 'pt_BR': + # Portuguese locales include country code + default_locale = language_code + else: + # All other locales cut off the country code + default_locale = language_code[:2] + if default_locale not in self.available_locales: default_locale = 'en' self._settings['locale'] = default_locale -- cgit v1.2.3-54-g00ecf