diff --git a/config.py b/config.py index 226ea190..bbcf2370 100644 --- a/config.py +++ b/config.py @@ -289,15 +289,17 @@ class Config: @SELECTED_TAB_YOUR_LANGUAGES.setter def SELECTED_TAB_YOUR_LANGUAGES(self, value): - if isinstance(value, dict): - value_old = self.SELECTED_TAB_YOUR_LANGUAGES - for k, v in value.items(): - lang, country = v.split("\n") - country = country[1:-1] - if lang not in list(transcription_lang.keys()) or country not in list(transcription_lang[lang].keys()): - value[k] = value_old[k] - self._SELECTED_TAB_YOUR_LANGUAGES = value - saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) + try: + if isinstance(value, dict): + value_old = self.SELECTED_TAB_YOUR_LANGUAGES + for k, v in value.items(): + lang, country = list(v.items())[0] + if lang not in list(transcription_lang.keys()) or country not in list(transcription_lang[lang].keys()): + value[k] = value_old[k] + self._SELECTED_TAB_YOUR_LANGUAGES = value + except Exception: + pass + saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) @property @json_serializable('SELECTED_TAB_TARGET_LANGUAGES') @@ -306,15 +308,17 @@ class Config: @SELECTED_TAB_TARGET_LANGUAGES.setter def SELECTED_TAB_TARGET_LANGUAGES(self, value): - if isinstance(value, dict): - value_old = self.SELECTED_TAB_TARGET_LANGUAGES - for k, v in value.items(): - lang, country = v.split("\n") - country = country[1:-1] - if lang not in list(transcription_lang.keys()) or country not in list(transcription_lang[lang].keys()): - value[k] = value_old[k] - self._SELECTED_TAB_TARGET_LANGUAGES = value - saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) + try: + if isinstance(value, dict): + value_old = self.SELECTED_TAB_TARGET_LANGUAGES + for k, v in value.items(): + lang, country = list(v.items())[0] + if lang not in list(transcription_lang.keys()) or country not in list(transcription_lang[lang].keys()): + value[k] = value_old[k] + self._SELECTED_TAB_TARGET_LANGUAGES = value + except Exception: + pass + saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) @property @json_serializable('SELECTED_TRANSCRIPTION_ENGINE') @@ -898,14 +902,14 @@ class Config: "3":"CTranslate2", } self._SELECTED_TAB_YOUR_LANGUAGES = { - "1":"Japanese\n(Japan)", - "2":"Japanese\n(Japan)", - "3":"Japanese\n(Japan)", + "1":{"Japanese":"Japan"}, + "2":{"Japanese":"Japan"}, + "3":{"Japanese":"Japan"}, } self._SELECTED_TAB_TARGET_LANGUAGES = { - "1":"English\n(United States)", - "2":"English\n(United States)", - "3":"English\n(United States)", + "1":{"English":"United States"}, + "2":{"English":"United States"}, + "3":{"English":"United States"}, } self._SELECTED_TRANSCRIPTION_ENGINE = "Google" self._IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False diff --git a/controller.py b/controller.py index f695ee45..32d7e249 100644 --- a/controller.py +++ b/controller.py @@ -292,11 +292,11 @@ def initSetTranslateEngine(): def initSetLanguageAndCountry(): select = config.SELECTED_TAB_YOUR_LANGUAGES[config.SELECTED_TAB_NO] - language, country = model.getLanguageAndCountry(select) + language, country = list(select.items())[0] config.SOURCE_LANGUAGE = language config.SOURCE_COUNTRY = country select = config.SELECTED_TAB_TARGET_LANGUAGES[config.SELECTED_TAB_NO] - language, country = model.getLanguageAndCountry(select) + language, country = list(select.items())[0] config.TARGET_LANGUAGE = language config.TARGET_COUNTRY = country @@ -316,7 +316,7 @@ def setYourLanguageAndCountry(select): languages = config.SELECTED_TAB_YOUR_LANGUAGES languages[config.SELECTED_TAB_NO] = select config.SELECTED_TAB_YOUR_LANGUAGES = languages - language, country = model.getLanguageAndCountry(select) + language, country = list(select.items())[0] config.SOURCE_LANGUAGE = language config.SOURCE_COUNTRY = country updateTranslationEngineAndEngineList() @@ -326,7 +326,7 @@ def setTargetLanguageAndCountry(select): languages = config.SELECTED_TAB_TARGET_LANGUAGES languages[config.SELECTED_TAB_NO] = select config.SELECTED_TAB_TARGET_LANGUAGES = languages - language, country = model.getLanguageAndCountry(select) + language, country = list(select.items())[0] config.TARGET_LANGUAGE = language config.TARGET_COUNTRY = country updateTranslationEngineAndEngineList() @@ -355,13 +355,13 @@ def callbackSelectedLanguagePresetTab(selected_tab_no): languages = config.SELECTED_TAB_YOUR_LANGUAGES select = languages[config.SELECTED_TAB_NO] - language, country = model.getLanguageAndCountry(select) + language, country = list(select.items())[0] config.SOURCE_LANGUAGE = language config.SOURCE_COUNTRY = country languages = config.SELECTED_TAB_TARGET_LANGUAGES select = languages[config.SELECTED_TAB_NO] - language, country = model.getLanguageAndCountry(select) + language, country = list(select.items())[0] config.TARGET_LANGUAGE = language config.TARGET_COUNTRY = country view.printToTextbox_changedLanguagePresetTab(config.SELECTED_TAB_NO) diff --git a/model.py b/model.py index e39b718f..91adcf4c 100644 --- a/model.py +++ b/model.py @@ -120,13 +120,6 @@ class Model: langs.append(f"{lang}\n({country})") return sorted(langs) - @staticmethod - def getLanguageAndCountry(select): - parts = select.split("\n") - language = parts[0] - country = parts[1][1:-1] - return language, country - def findTranslationEngines(self, source_lang, target_lang): compatible_engines = [] for engine in list(translation_lang.keys()): diff --git a/view.py b/view.py index e7962850..d06e89de 100644 --- a/view.py +++ b/view.py @@ -1508,8 +1508,10 @@ class View(): # Update GuiVariable (view_variable) def updateGuiVariableByPresetTabNo(self, tab_no:str): - self.view_variable.VAR_YOUR_LANGUAGE.set(config.SELECTED_TAB_YOUR_LANGUAGES[tab_no]) - self.view_variable.VAR_TARGET_LANGUAGE.set(config.SELECTED_TAB_TARGET_LANGUAGES[tab_no]) + your_language, your_country = list(config.SELECTED_TAB_YOUR_LANGUAGES[tab_no].items())[0] + self.view_variable.VAR_YOUR_LANGUAGE.set(f"{your_language}\n({your_country})") + target_language, target_country = list(config.SELECTED_TAB_TARGET_LANGUAGES[tab_no].items())[0] + self.view_variable.VAR_TARGET_LANGUAGE.set(f"{target_language}\n({target_country})") def updateList_selectableLanguages(self, new_selectable_language_list:list): @@ -1651,11 +1653,11 @@ class View(): def printToTextbox_selectedYourLanguages(self, selected_your_language): - your_language = selected_your_language.replace("\n", " ") + your_language = ' '.join(f'{k} {v}' for k, v in selected_your_language.items()) self._printToTextbox_Info(i18n.t("main_window.textbox_system_message.selected_your_language", your_language=your_language)) def printToTextbox_selectedTargetLanguages(self, selected_target_language): - target_language = selected_target_language.replace("\n", " ") + target_language = ' '.join(f'{k} {v}' for k, v in selected_target_language.items()) self._printToTextbox_Info(i18n.t("main_window.textbox_system_message.selected_target_language", target_language=target_language)) def printToTextbox_changedLanguagePresetTab(self, tab_no:str): diff --git a/vrct_gui/_CreateSelectableLanguagesWindow.py b/vrct_gui/_CreateSelectableLanguagesWindow.py index dd6c6327..226cfaa6 100644 --- a/vrct_gui/_CreateSelectableLanguagesWindow.py +++ b/vrct_gui/_CreateSelectableLanguagesWindow.py @@ -49,6 +49,9 @@ class _CreateSelectableLanguagesWindow(CTkToplevel): def callbackSelectableLanguages(self, value, _e): + language, country = value.split("\n") + country = country[1:-1] + callback_value = {language: country} if self.selectable_language_window_type == "your_language": callback = self._view_variable.CALLBACK_SELECTED_YOUR_LANGUAGE target_variable = self._view_variable.VAR_YOUR_LANGUAGE @@ -57,7 +60,7 @@ class _CreateSelectableLanguagesWindow(CTkToplevel): target_variable = self._view_variable.VAR_TARGET_LANGUAGE target_variable.set(value) - callFunctionIfCallable(callback, value) + callFunctionIfCallable(callback, callback_value) self.vrct_gui._closeSelectableLanguagesWindow()