From 3e931c0e80c6c73aeec35e814c406f9763977c84 Mon Sep 17 00:00:00 2001 From: David Sangrey Date: Mon, 4 Mar 2024 18:02:42 -0500 Subject: [PATCH] Merge pull request #2164 from HullSeals/fix/1181/coriolis-overrides-change-when-switching-languages [1181] Save Coriolis URL override when changing languages --- L10n/en.template | 6 +++--- plugins/coriolis.py | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/L10n/en.template b/L10n/en.template index 86361108..14bbf10d 100644 --- a/L10n/en.template +++ b/L10n/en.template @@ -255,13 +255,13 @@ /* l10n.py: The system default language choice in Settings > Appearance; prefs.py: Settings > Configuration - Label on 'reset journal files location to default' button; prefs.py: The system default language choice in Settings > Appearance; prefs.py: Label for 'Default' theme radio button; In files: l10n.py:193; prefs.py:455; prefs.py:709; prefs.py:742; */ "Default" = "Default"; -/* coriolis.py: 'Auto' label for Coriolis site override selection; coriolis.py: Coriolis normal/beta selection - auto; In files: coriolis.py:74; coriolis.py:77; coriolis.py:123; coriolis.py:139; coriolis.py:145; */ +/* coriolis.py: 'Auto' label for Coriolis site override selection; coriolis.py: Coriolis normal/beta selection - auto; In files: coriolis.py:48; coriolis.py:74; coriolis.py:77; coriolis.py:94; coriolis.py:123; coriolis.py:139; coriolis.py:145; coriolis.py:179; coriolis.py:182; */ "Auto" = "Auto"; -/* coriolis.py: 'Normal' label for Coriolis site override selection; coriolis.py: Coriolis normal/beta selection - normal; In files: coriolis.py:75; coriolis.py:121; coriolis.py:137; */ +/* coriolis.py: 'Normal' label for Coriolis site override selection; coriolis.py: Coriolis normal/beta selection - normal; In files: coriolis.py:49; coriolis.py:75; coriolis.py:95; coriolis.py:121; coriolis.py:137; coriolis.py:180; */ "Normal" = "Normal"; -/* coriolis.py: 'Beta' label for Coriolis site override selection; coriolis.py: Coriolis normal/beta selection - beta; In files: coriolis.py:76; coriolis.py:122; coriolis.py:138; */ +/* coriolis.py: 'Beta' label for Coriolis site override selection; coriolis.py: Coriolis normal/beta selection - beta; In files: coriolis.py:50; coriolis.py:76; coriolis.py:96; coriolis.py:122; coriolis.py:138; coriolis.py:181; */ "Beta" = "Beta"; /* coriolis.py: Settings>Coriolis: Help/hint for changing coriolis URLs; In files: coriolis.py:91:93; */ diff --git a/plugins/coriolis.py b/plugins/coriolis.py index 9de635d0..c142c686 100644 --- a/plugins/coriolis.py +++ b/plugins/coriolis.py @@ -45,6 +45,9 @@ class CoriolisConfig: self.normal_url = '' self.beta_url = '' self.override_mode = '' + self.override_text_old_auto = _('Auto') # LANG: Coriolis normal/beta selection - auto + self.override_text_old_normal = _('Normal') # LANG: Coriolis normal/beta selection - normal + self.override_text_old_beta = _('Beta') # LANG: Coriolis normal/beta selection - beta self.normal_textvar = tk.StringVar() self.beta_textvar = tk.StringVar() @@ -87,6 +90,11 @@ def plugin_prefs(parent: ttk.Notebook, cmdr: str | None, is_beta: bool) -> tk.Fr PADY = 1 # noqa: N806 BOXY = 2 # noqa: N806 # box spacing + # Save the old text values for the override mode, so we can update them if the language is changed + coriolis_config.override_text_old_auto = _('Auto') # LANG: Coriolis normal/beta selection - auto + coriolis_config.override_text_old_normal = _('Normal') # LANG: Coriolis normal/beta selection - normal + coriolis_config.override_text_old_beta = _('Beta') # LANG: Coriolis normal/beta selection - beta + conf_frame = nb.Frame(parent) conf_frame.columnconfigure(index=1, weight=1) cur_row = 0 @@ -157,6 +165,25 @@ def prefs_changed(cmdr: str | None, is_beta: bool) -> None: _('Auto'): 'auto', # LANG: Coriolis normal/beta selection - auto }.get(coriolis_config.override_mode, coriolis_config.override_mode) + # Check if the language was changed and the override_mode was valid before the change + if coriolis_config.override_mode not in ('beta', 'normal', 'auto'): + coriolis_config.override_mode = { + coriolis_config.override_text_old_normal: 'normal', + coriolis_config.override_text_old_beta: 'beta', + coriolis_config.override_text_old_auto: 'auto', + }.get(coriolis_config.override_mode, coriolis_config.override_mode) + # Language was seemingly changed, so we need to update the textvars + if coriolis_config.override_mode in ('beta', 'normal', 'auto'): + coriolis_config.override_textvar.set( + value={ + 'auto': _('Auto'), # LANG: 'Auto' label for Coriolis site override selection + 'normal': _('Normal'), # LANG: 'Normal' label for Coriolis site override selection + 'beta': _('Beta') # LANG: 'Beta' label for Coriolis site override selection + # LANG: 'Auto' label for Coriolis site override selection + }.get(coriolis_config.override_mode, _('Auto')) + ) + + # If the override mode is still invalid, default to auto if coriolis_config.override_mode not in ('beta', 'normal', 'auto'): logger.warning(f'Unexpected value {coriolis_config.override_mode=!r}. Defaulting to "auto"') coriolis_config.override_mode = 'auto'