From 4eaa3c5c89cc3a351632b923304c1921d9e05e97 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Tue, 10 Sep 2024 02:15:05 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B[bugfix]=20Model=20:=20=E5=A4=9A?= =?UTF-8?q?=E8=A8=80=E8=AA=9E=E7=BF=BB=E8=A8=B3=E3=82=92=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E3=81=97=E3=81=AA=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AB=E3=83=97?= =?UTF-8?q?=E3=83=A9=E3=82=A4=E3=83=9E=E3=83=AA=E3=81=AE=E8=A8=80=E8=AA=9E?= =?UTF-8?q?=E3=81=AE=E3=81=BF=E3=81=A7=E7=BF=BB=E8=A8=B3=E3=82=A8=E3=83=B3?= =?UTF-8?q?=E3=82=B8=E3=83=B3=E3=82=92=E9=81=B8=E6=8A=9E=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-python/config.py | 14 +++++++------- src-python/model.py | 12 ++++++++---- src-python/webui_controller.py | 4 +++- src-python/webui_mainloop.py | 1 + 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src-python/config.py b/src-python/config.py index b737048c..8114146e 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -291,14 +291,14 @@ class Config: # saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) @property - @json_serializable('ENABLE_MULTI_TRANSLATION') - def ENABLE_MULTI_TRANSLATION(self): - return self._ENABLE_MULTI_TRANSLATION + @json_serializable('ENABLE_MULTI_LANGUAGE_TRANSLATION') + def ENABLE_MULTI_LANGUAGE_TRANSLATION(self): + return self._ENABLE_MULTI_LANGUAGE_TRANSLATION - @ENABLE_MULTI_TRANSLATION.setter - def ENABLE_MULTI_TRANSLATION(self, value): + @ENABLE_MULTI_LANGUAGE_TRANSLATION.setter + def ENABLE_MULTI_LANGUAGE_TRANSLATION(self, value): if isinstance(value, bool): - self._ENABLE_MULTI_TRANSLATION = value + self._ENABLE_MULTI_LANGUAGE_TRANSLATION = value saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) @property @@ -1044,7 +1044,7 @@ class Config: }, } self._SELECTED_TRANSCRIPTION_ENGINE = "Google" - self._ENABLE_MULTI_TRANSLATION = False + self._ENABLE_MULTI_LANGUAGE_TRANSLATION = False self._IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False ## Config Window diff --git a/src-python/model.py b/src-python/model.py index 6ffa0495..bbe8235d 100644 --- a/src-python/model.py +++ b/src-python/model.py @@ -163,13 +163,17 @@ class Model: languages = sorted(languages, key=lambda x: x['language']) return languages - def findTranslationEngines(self, source_lang, target_lang): + def findTranslationEngines(self, source_lang, target_lang, multi_language_translation=False): compatible_engines = [] for engine in list(translation_lang.keys()): languages = translation_lang.get(engine, {}).get("source", {}) - source_langs = [e["language"] for e in list(source_lang.values())] - target_langs = [e["language"] for e in list(target_lang.values())] + if multi_language_translation is True: + source_langs = [e["language"] for e in list(source_lang.values())] + target_langs = [e["language"] for e in list(target_lang.values())] + else: + source_langs = [source_lang["primary"]["language"]] + target_langs = [target_lang["primary"]["language"]] language_list = list(languages.keys()) if all(e in language_list for e in source_langs) and all(e in language_list for e in target_langs): @@ -214,7 +218,7 @@ class Model: translations = [] success_flags = [] for key in target_languages.keys(): - if key == "primary" or config.ENABLE_MULTI_TRANSLATION is True: + if key == "primary" or config.ENABLE_MULTI_LANGUAGE_TRANSLATION is True: target_language = target_languages[key]["language"] target_country = target_languages[key]["country"] if target_language is not None or target_country is not None: diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index d7d28025..0fbc5490 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -377,7 +377,9 @@ def updateTranslationEngineAndEngineList(): engine = config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES[config.SELECTED_TAB_NO] engines = model.findTranslationEngines( config.SELECTED_TAB_YOUR_LANGUAGES[config.SELECTED_TAB_NO], - config.SELECTED_TAB_TARGET_LANGUAGES[config.SELECTED_TAB_NO]) + config.SELECTED_TAB_TARGET_LANGUAGES[config.SELECTED_TAB_NO], + config.ENABLE_MULTI_LANGUAGE_TRANSLATION, + ) if engine not in engines: engine = engines[0] config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES[config.SELECTED_TAB_NO] = engine diff --git a/src-python/webui_mainloop.py b/src-python/webui_mainloop.py index 262e1ef4..03a829a1 100644 --- a/src-python/webui_mainloop.py +++ b/src-python/webui_mainloop.py @@ -29,6 +29,7 @@ config_mapping = { "/config/selected_tab_your_languages": "SELECTED_TAB_YOUR_LANGUAGES", "/config/selected_tab_target_languages": "SELECTED_TAB_TARGET_LANGUAGES", "/config/selected_transcription_engine": "SELECTED_TRANSCRIPTION_ENGINE", + "/config/enable_multi_translation": "ENABLE_MULTI_LANGUAGE_TRANSLATION", "/config/is_main_window_sidebar_compact_mode": "IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE", "/config/transparency": "TRANSPARENCY", "/config/appearance_theme": "APPEARANCE_THEME",