From fd0aad2f0d92e72959ae9efc35fd998ef3731ddc Mon Sep 17 00:00:00 2001 From: Rong Mantle Bao Date: Mon, 31 Jan 2022 09:59:16 +0800 Subject: [PATCH] Provide a hack for proper locale initialization. Fix mu-editor/mu#2008. --- mu/app.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/mu/app.py b/mu/app.py index af3b5d25a..4c6d0fa8c 100644 --- a/mu/app.py +++ b/mu/app.py @@ -42,9 +42,25 @@ from . import i18n from .virtual_environment import venv, logger as vlogger from . import __version__ +from .resources import load_icon, load_movie, load_pixmap +from .interface.themes import NIGHT_STYLE, DAY_STYLE, CONTRAST_STYLE + +# HACK: Ensure that i18n settings are present before any gettext +# functions are called. +from . import settings +# +# Load settings from known locations and register them for +# autosave +# +settings.init() +old_session = settings.session +if "locale" in old_session: + user_locale = old_session["locale"].strip() + if user_locale: + i18n.set_language(user_locale) + from .logic import Editor, LOG_FILE, LOG_DIR, ENCODING from .interface import Window -from .resources import load_icon, load_movie, load_pixmap from .modes import ( PythonMode, CircuitPythonMode, @@ -57,8 +73,6 @@ LegoMode, PicoMode, ) -from .interface.themes import NIGHT_STYLE, DAY_STYLE, CONTRAST_STYLE -from . import settings class AnimatedSplash(QSplashScreen): @@ -272,11 +286,8 @@ def run(): logging.info("Python path: {}".format(sys.path)) logging.info("Language code: {}".format(i18n.language_code)) - # - # Load settings from known locations and register them for - # autosave - # - settings.init() + # Not loading settings here because the same has been done at the top of + # the script # Images (such as toolbar icons) aren't scaled nicely on retina/4k displays # unless this flag is set