From cb78942b8d05be4d581c7318f5b27abffa3a5f2e Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Sat, 9 Mar 2024 01:26:10 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8D[Update]=20Model/Veiw/Config=20:=20?= =?UTF-8?q?SELECTED=5FTAB=5FYOUR=5FLANGUAGES/SELECTED=5FTAB=5FTARGET=5FLAN?= =?UTF-8?q?GUAGES=E3=81=AE=E8=A1=A8=E7=8F=BE=E3=81=AE=E5=A4=89=E6=9B=B4?= =?UTF-8?q?=E3=81=AB=E4=BC=B4=E3=81=84=E5=87=A6=E7=90=86=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 42 +++++++++++++++----- controller.py | 32 ++++++--------- model.py | 19 +++++---- view.py | 16 ++++++-- vrct_gui/_CreateSelectableLanguagesWindow.py | 13 ++++-- 5 files changed, 78 insertions(+), 44 deletions(-) diff --git a/config.py b/config.py index bbcf2370..c177b833 100644 --- a/config.py +++ b/config.py @@ -293,8 +293,10 @@ class Config: 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()): + data = list(v.items())[0] + language = data["language"] + country = data["country"] + if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()): value[k] = value_old[k] self._SELECTED_TAB_YOUR_LANGUAGES = value except Exception: @@ -312,8 +314,10 @@ class Config: 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()): + data = list(v.items())[0] + language = data["language"] + country = data["country"] + if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()): value[k] = value_old[k] self._SELECTED_TAB_TARGET_LANGUAGES = value except Exception: @@ -902,14 +906,32 @@ class Config: "3":"CTranslate2", } self._SELECTED_TAB_YOUR_LANGUAGES = { - "1":{"Japanese":"Japan"}, - "2":{"Japanese":"Japan"}, - "3":{"Japanese":"Japan"}, + "1":{ + "language":"Japanese", + "country":"Japan" + }, + "2":{ + "language":"Japanese", + "country":"Japan" + }, + "3":{ + "language":"Japanese", + "country":"Japan" + }, } self._SELECTED_TAB_TARGET_LANGUAGES = { - "1":{"English":"United States"}, - "2":{"English":"United States"}, - "3":{"English":"United States"}, + "1":{ + "language":"English", + "country":"United States" + }, + "2":{ + "language":"English", + "country":"United States" + }, + "3":{ + "language":"English", + "country":"United States" + }, } self._SELECTED_TRANSCRIPTION_ENGINE = "Google" self._IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False diff --git a/controller.py b/controller.py index 32d7e249..9af68368 100644 --- a/controller.py +++ b/controller.py @@ -292,13 +292,11 @@ def initSetTranslateEngine(): def initSetLanguageAndCountry(): select = config.SELECTED_TAB_YOUR_LANGUAGES[config.SELECTED_TAB_NO] - language, country = list(select.items())[0] - config.SOURCE_LANGUAGE = language - config.SOURCE_COUNTRY = country + config.SOURCE_LANGUAGE = select["language"] + config.SOURCE_COUNTRY = select["country"] select = config.SELECTED_TAB_TARGET_LANGUAGES[config.SELECTED_TAB_NO] - language, country = list(select.items())[0] - config.TARGET_LANGUAGE = language - config.TARGET_COUNTRY = country + config.TARGET_LANGUAGE = select["language"] + config.TARGET_COUNTRY = select["country"] def setYourTranslateEngine(select): engines = config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES @@ -316,9 +314,8 @@ def setYourLanguageAndCountry(select): languages = config.SELECTED_TAB_YOUR_LANGUAGES languages[config.SELECTED_TAB_NO] = select config.SELECTED_TAB_YOUR_LANGUAGES = languages - language, country = list(select.items())[0] - config.SOURCE_LANGUAGE = language - config.SOURCE_COUNTRY = country + config.SOURCE_LANGUAGE = select["language"] + config.SOURCE_COUNTRY = select["country"] updateTranslationEngineAndEngineList() view.printToTextbox_selectedYourLanguages(select) @@ -326,9 +323,8 @@ def setTargetLanguageAndCountry(select): languages = config.SELECTED_TAB_TARGET_LANGUAGES languages[config.SELECTED_TAB_NO] = select config.SELECTED_TAB_TARGET_LANGUAGES = languages - language, country = list(select.items())[0] - config.TARGET_LANGUAGE = language - config.TARGET_COUNTRY = country + config.TARGET_LANGUAGE = select["language"] + config.TARGET_COUNTRY = select["country"] updateTranslationEngineAndEngineList() view.printToTextbox_selectedTargetLanguages(select) @@ -355,15 +351,13 @@ def callbackSelectedLanguagePresetTab(selected_tab_no): languages = config.SELECTED_TAB_YOUR_LANGUAGES select = languages[config.SELECTED_TAB_NO] - language, country = list(select.items())[0] - config.SOURCE_LANGUAGE = language - config.SOURCE_COUNTRY = country + config.SOURCE_LANGUAGE = select["language"] + config.SOURCE_COUNTRY = select["country"] languages = config.SELECTED_TAB_TARGET_LANGUAGES select = languages[config.SELECTED_TAB_NO] - language, country = list(select.items())[0] - config.TARGET_LANGUAGE = language - config.TARGET_COUNTRY = country + config.TARGET_LANGUAGE = select["language"] + config.TARGET_COUNTRY = select["country"] view.printToTextbox_changedLanguagePresetTab(config.SELECTED_TAB_NO) updateTranslationEngineAndEngineList() @@ -999,7 +993,7 @@ def createMainWindow(splash): "callback_your_language": setYourLanguageAndCountry, "callback_target_language": setTargetLanguageAndCountry, - "values": model.getListLanguageAndCountry(), + "values": [f"{v['language']} ({v['country']})" for v in model.getListLanguageAndCountry()], "callback_swap_languages": swapYourLanguageAndTargetLanguage, "callback_selected_language_preset_tab": callbackSelectedLanguagePresetTab, diff --git a/model.py b/model.py index 91adcf4c..2af4135a 100644 --- a/model.py +++ b/model.py @@ -106,19 +106,24 @@ class Model: def getListLanguageAndCountry(self): transcription_langs = list(transcription_lang.keys()) - tl_keys = translation_lang.keys() translation_langs = [] - for tl_key in tl_keys: + for tl_key in translation_lang.keys(): for lang in translation_lang[tl_key]["source"]: translation_langs.append(lang) translation_langs = list(set(translation_langs)) supported_langs = list(filter(lambda x: x in transcription_langs, translation_langs)) - langs = [] - for lang in supported_langs: - for country in transcription_lang[lang]: - langs.append(f"{lang}\n({country})") - return sorted(langs) + languages = [] + for language in supported_langs: + for country in transcription_lang[language]: + languages.append( + { + "language" : language, + "country" : country, + } + ) + languages = sorted(languages, key=lambda x: x['language']) + return languages def findTranslationEngines(self, source_lang, target_lang): compatible_engines = [] diff --git a/view.py b/view.py index d06e89de..37897dd9 100644 --- a/view.py +++ b/view.py @@ -1508,9 +1508,13 @@ class View(): # Update GuiVariable (view_variable) def updateGuiVariableByPresetTabNo(self, tab_no:str): - your_language, your_country = list(config.SELECTED_TAB_YOUR_LANGUAGES[tab_no].items())[0] + select = config.SELECTED_TAB_YOUR_LANGUAGES[tab_no] + your_language = select["language"] + your_country = select["country"] 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] + select = config.SELECTED_TAB_TARGET_LANGUAGES[tab_no] + target_language = select["language"] + target_country = select["country"] self.view_variable.VAR_TARGET_LANGUAGE.set(f"{target_language}\n({target_country})") @@ -1653,11 +1657,15 @@ class View(): def printToTextbox_selectedYourLanguages(self, selected_your_language): - your_language = ' '.join(f'{k} {v}' for k, v in selected_your_language.items()) + language = selected_your_language["language"] + country = selected_your_language["country"] + your_language = f"{language} {country}" 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 = ' '.join(f'{k} {v}' for k, v in selected_target_language.items()) + language = selected_target_language["language"] + country = selected_target_language["country"] + target_language = f"{language} {country}" 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 226cfaa6..b3cab8fe 100644 --- a/vrct_gui/_CreateSelectableLanguagesWindow.py +++ b/vrct_gui/_CreateSelectableLanguagesWindow.py @@ -49,9 +49,14 @@ class _CreateSelectableLanguagesWindow(CTkToplevel): def callbackSelectableLanguages(self, value, _e): - language, country = value.split("\n") - country = country[1:-1] - callback_value = {language: country} + language, country = value.split(" (") + country = country[:-1] + callback_value = { + "language" : language, + "country" : country, + } + set_value = f"{language}\n({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 @@ -59,7 +64,7 @@ class _CreateSelectableLanguagesWindow(CTkToplevel): callback = self._view_variable.CALLBACK_SELECTED_TARGET_LANGUAGE target_variable = self._view_variable.VAR_TARGET_LANGUAGE - target_variable.set(value) + target_variable.set(set_value) callFunctionIfCallable(callback, callback_value) self.vrct_gui._closeSelectableLanguagesWindow()