Loading modules/translators/trans_deepl.py +55 −3 Original line number Diff line number Diff line from .base import * import deepl @register_translator('DeepL') class DeeplTranslator(BaseTranslator): Loading @@ -9,8 +10,47 @@ class DeeplTranslator(BaseTranslator): params: Dict = { 'api_key': '', 'delay': 0.0, 'formality': { 'type': 'selector', 'options': [ 'less', 'more', 'default', 'prefer_more', 'prefer_less' ], 'select': 'default' }, 'context': { 'type': 'editor', 'content': '' }, 'preserve_formatting': { 'type': 'selector', 'options': ['enabled', 'disabled'], 'select': 'disabled' } } @property def preserve_formatting(self) -> bool: return self.params['preserve_formatting']['select'] == 'enabled' @property def context(self) -> str: try: return self.params['context']['content'] except KeyError: return '' @property def formality(self) -> str: try: return self.params['formality']['select'] except KeyError: return 'default' def _setup_translator(self): self.lang_map['简体中文'] = 'zh' self.lang_map['日本語'] = 'ja' Loading Loading @@ -44,9 +84,21 @@ class DeeplTranslator(BaseTranslator): def _translate(self, src_list: List[str]) -> List[str]: api_key = self.params['api_key'] translator = deepl.Translator(api_key) formality_selected = self.formality context_text = self.context preserve_formatting = self.preserve_formatting source = self.lang_map[self.lang_source] target = self.lang_map[self.lang_target] if source == 'EN-US': source = "EN" result = translator.translate_text(src_list, source_lang=source, target_lang=target) # Languages that support formality setting in DeepL languages_supporting_formality = ['de', 'fr', 'it', 'es', 'nl', 'pl', 'pt', 'pt-br', 'ru', 'ja'] # Check if the target language supports formality if target in languages_supporting_formality: result = translator.translate_text(src_list, source_lang=source, target_lang=target, formality=formality_selected, context=context_text, preserve_formatting=preserve_formatting) else: result = translator.translate_text(src_list, source_lang=source, target_lang=target, context=context_text, preserve_formatting=preserve_formatting) return [i.text for i in result] No newline at end of file Loading
modules/translators/trans_deepl.py +55 −3 Original line number Diff line number Diff line from .base import * import deepl @register_translator('DeepL') class DeeplTranslator(BaseTranslator): Loading @@ -9,8 +10,47 @@ class DeeplTranslator(BaseTranslator): params: Dict = { 'api_key': '', 'delay': 0.0, 'formality': { 'type': 'selector', 'options': [ 'less', 'more', 'default', 'prefer_more', 'prefer_less' ], 'select': 'default' }, 'context': { 'type': 'editor', 'content': '' }, 'preserve_formatting': { 'type': 'selector', 'options': ['enabled', 'disabled'], 'select': 'disabled' } } @property def preserve_formatting(self) -> bool: return self.params['preserve_formatting']['select'] == 'enabled' @property def context(self) -> str: try: return self.params['context']['content'] except KeyError: return '' @property def formality(self) -> str: try: return self.params['formality']['select'] except KeyError: return 'default' def _setup_translator(self): self.lang_map['简体中文'] = 'zh' self.lang_map['日本語'] = 'ja' Loading Loading @@ -44,9 +84,21 @@ class DeeplTranslator(BaseTranslator): def _translate(self, src_list: List[str]) -> List[str]: api_key = self.params['api_key'] translator = deepl.Translator(api_key) formality_selected = self.formality context_text = self.context preserve_formatting = self.preserve_formatting source = self.lang_map[self.lang_source] target = self.lang_map[self.lang_target] if source == 'EN-US': source = "EN" result = translator.translate_text(src_list, source_lang=source, target_lang=target) # Languages that support formality setting in DeepL languages_supporting_formality = ['de', 'fr', 'it', 'es', 'nl', 'pl', 'pt', 'pt-br', 'ru', 'ja'] # Check if the target language supports formality if target in languages_supporting_formality: result = translator.translate_text(src_list, source_lang=source, target_lang=target, formality=formality_selected, context=context_text, preserve_formatting=preserve_formatting) else: result = translator.translate_text(src_list, source_lang=source, target_lang=target, context=context_text, preserve_formatting=preserve_formatting) return [i.text for i in result] No newline at end of file