diff --git a/src-python/config.py b/src-python/config.py index e8b17bf9..94881d75 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -264,7 +264,10 @@ class Config: for k1, v1 in v0.items(): language = v1["language"] country = v1["country"] - if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()): + enable = v1["enable"] + if (language not in list(transcription_lang.keys()) or + country not in list(transcription_lang[language].keys()) or + not isinstance(enable, bool)): value[k0][k1] = value_old[k0][k1] self._SELECTED_YOUR_LANGUAGES = value self.saveConfig(inspect.currentframe().f_code.co_name, value) @@ -282,7 +285,10 @@ class Config: for k1, v1 in v0.items(): language = v1["language"] country = v1["country"] - if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()): + enable = v1["enable"] + if (language not in list(transcription_lang.keys()) or + country not in list(transcription_lang[language].keys()) or + not isinstance(enable, bool)): value[k0][k1] = value_old[k0][k1] self._SELECTED_TARGET_LANGUAGES = value self.saveConfig(inspect.currentframe().f_code.co_name, value) @@ -299,17 +305,6 @@ class Config: self._SELECTED_TRANSCRIPTION_ENGINE = value self.saveConfig(inspect.currentframe().f_code.co_name, value) - @property - @json_serializable('MULTI_LANGUAGE_TRANSLATION') - def MULTI_LANGUAGE_TRANSLATION(self): - return self._MULTI_LANGUAGE_TRANSLATION - - @MULTI_LANGUAGE_TRANSLATION.setter - def MULTI_LANGUAGE_TRANSLATION(self, value): - if isinstance(value, bool): - self._MULTI_LANGUAGE_TRANSLATION = value - self.saveConfig(inspect.currentframe().f_code.co_name, value) - @property @json_serializable('CONVERT_MESSAGE_TO_ROMAJI') def CONVERT_MESSAGE_TO_ROMAJI(self): @@ -964,6 +959,7 @@ class Config: "primary": { "language": "Japanese", "country": "Japan", + "enable": True, }, } self._SELECTED_TARGET_LANGUAGES = {} @@ -972,18 +968,20 @@ class Config: "primary": { "language": "English", "country": "United States", + "enable": True, }, "secondary": { "language": "English", "country": "United States", + "enable": False, }, "tertiary": { "language": "English", "country": "United States", + "enable": False, }, } self._SELECTED_TRANSCRIPTION_ENGINE = "Google" - self._MULTI_LANGUAGE_TRANSLATION = False self._CONVERT_MESSAGE_TO_ROMAJI = False self._CONVERT_MESSAGE_TO_HIRAGANA = False self._MAIN_WINDOW_SIDEBAR_COMPACT_MODE = False diff --git a/src-python/model.py b/src-python/model.py index d57ebd19..35ac9cce 100644 --- a/src-python/model.py +++ b/src-python/model.py @@ -164,21 +164,17 @@ class Model: languages = sorted(languages, key=lambda x: x['language']) return languages - def findTranslationEngines(self, source_lang, target_lang, multi_language_translation=False): + def findTranslationEngines(self, source_lang, target_lang): compatible_engines = [] for engine in list(translation_lang.keys()): languages = translation_lang.get(engine, {}).get("source", {}) - - 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"]] + source_langs = [e["language"] for e in list(source_lang.values()) if e["enable"] is True] + target_langs = [e["language"] for e in list(target_lang.values()) if e["enable"] is True] 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): compatible_engines.append(engine) + if "DeepL_API" in compatible_engines: if config.AUTH_KEYS["DeepL_API"] is None: compatible_engines.remove('DeepL_API') @@ -218,10 +214,10 @@ class Model: translations = [] success_flags = [] - for key in target_languages.keys(): - if key == "primary" or config.MULTI_LANGUAGE_TRANSLATION is True: - target_language = target_languages[key]["language"] - target_country = target_languages[key]["country"] + for value in target_languages.values(): + if value["enable"] is True: + target_language = value["language"] + target_country = value["country"] if target_language is not None or target_country is not None: translation, success_flag = self.getTranslate( translator_name, diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index fedade0d..4cbbae7c 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -484,7 +484,6 @@ class Controller: engines = model.findTranslationEngines( config.SELECTED_YOUR_LANGUAGES[config.SELECTED_TAB_NO], config.SELECTED_TARGET_LANGUAGES[config.SELECTED_TAB_NO], - config.MULTI_LANGUAGE_TRANSLATION, ) return {"status":200, "result":engines} @@ -540,20 +539,6 @@ class Controller: config.SELECTED_TRANSCRIPTION_ENGINE = str(data) return {"status":200, "result":config.SELECTED_TRANSCRIPTION_ENGINE} - @staticmethod - def getMultiLanguageTranslation(*args, **kwargs) -> dict: - return {"status":200, "result":config.MULTI_LANGUAGE_TRANSLATION} - - @staticmethod - def setEnableMultiLanguageTranslation(*args, **kwargs) -> dict: - config.MULTI_LANGUAGE_TRANSLATION = True - return {"status":200, "result":config.MULTI_LANGUAGE_TRANSLATION} - - @staticmethod - def setDisableMultiLanguageTranslation(*args, **kwargs) -> dict: - config.MULTI_LANGUAGE_TRANSLATION = False - return {"status":200, "result":config.MULTI_LANGUAGE_TRANSLATION} - @staticmethod def getConvertMessageToRomaji(*args, **kwargs) -> dict: return {"status":200, "result":config.CONVERT_MESSAGE_TO_ROMAJI} diff --git a/src-python/webui_mainloop.py b/src-python/webui_mainloop.py index e81e01e4..cc8c9b30 100644 --- a/src-python/webui_mainloop.py +++ b/src-python/webui_mainloop.py @@ -141,10 +141,6 @@ mapping = { "/set/data/deepl_auth_key": {"status": False, "variable":controller.setDeeplAuthKey}, "/delete/data/deepl_auth_key": {"status": False, "variable":controller.delDeeplAuthKey}, - "/get/data/multi_language_translation": {"status": True, "variable":controller.getMultiLanguageTranslation}, - "/set/enable/multi_language_translation": {"status": True, "variable":controller.setEnableMultiLanguageTranslation}, - "/set/disable/multi_language_translation": {"status": True, "variable":controller.setDisableMultiLanguageTranslation}, - "/get/data/convert_message_to_romaji": {"status": True, "variable":controller.getConvertMessageToRomaji}, "/set/enable/convert_message_to_romaji": {"status": True, "variable":controller.setEnableConvertMessageToRomaji}, "/set/disable/convert_message_to_romaji": {"status": True, "variable":controller.setDisableConvertMessageToRomaji}, @@ -440,43 +436,52 @@ if __name__ == "__main__": "1":{ "primary": { "language": "Japanese", - "country": "Japan" + "country": "Japan", + "enabled": True, }, "secondary": { "language": "English", - "country": "United States" + "country": "United States", + "enabled": True, }, "tertiary": { "language": "Chinese Simplified", - "country": "China" + "country": "China", + "enabled": True, } }, "2":{ "primary":{ "language":"English", "country":"United States", + "enabled": True, }, "secondary":{ "language":"English", - "country":"United States" + "country":"United States", + "enabled": True, }, "tertiary":{ "language":"English", - "country":"United States" + "country":"United States", + "enabled": True, }, }, "3":{ "primary":{ "language":"English", "country":"United States", + "enabled": True, }, "secondary":{ "language":"English", - "country":"United States" + "country":"United States", + "enabled": True, }, "tertiary":{ "language":"English", - "country":"United States" + "country":"United States", + "enabled": True, }, }, }