Loading ballontranslator/dl/translators/__init__.py +14 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ from ..textdetector.textblock import TextBlock from ..moduleparamparser import ModuleParamParser from utils.registry import Registry from utils.io_utils import text_is_empty from .hooks import chs2cht TRANSLATORS = Registry('translators') register_translator = TRANSLATORS.register_module Loading Loading @@ -61,6 +62,7 @@ def check_language_support(check_type: str = 'source'): class TranslatorBase(ModuleParamParser): concate_text = True cht_require_convert = False def __init__(self, lang_source: str, Loading Loading @@ -101,6 +103,9 @@ class TranslatorBase(ModuleParamParser): self.set_source(lang_source) self.set_target(lang_target) if self.cht_require_convert: self.register_postprocess_hooks(self._chs2cht) def register_postprocess_hooks(self, callbacks: Union[List, Callable]): if callbacks is None: return Loading Loading @@ -183,6 +188,12 @@ class TranslatorBase(ModuleParamParser): def supported_src_list(self) -> List[str]: return self.valid_lang_list def _chs2cht(self, text: str, blk: TextBlock = None): if self.lang_target == '繁體中文': return chs2cht(text) else: return text @register_translator('google') class GoogleTranslator(TranslatorBase): Loading Loading @@ -290,12 +301,14 @@ class PapagoTranslator(TranslatorBase): class CaiyunTranslator(TranslatorBase): concate_text = False cht_require_convert = True setup_params: Dict = { 'token': '', } def _setup_translator(self): self.lang_map['简体中文'] = 'zh' self.lang_map['繁體中文'] = 'zh' self.lang_map['日本語'] = 'ja' self.lang_map['English'] = 'en' Loading Loading @@ -329,6 +342,7 @@ class CaiyunTranslator(TranslatorBase): class DeeplTranslator(TranslatorBase): concate_text = False cht_require_convert = True setup_params: Dict = { 'api_key': '' } Loading ballontranslator/dl/translators/hooks.py 0 → 100644 +10 −0 Original line number Diff line number Diff line import opencc CHS2CHT_CONVERTER = None def chs2cht(text: str) -> str: global CHS2CHT_CONVERTER if CHS2CHT_CONVERTER is None: CHS2CHT_CONVERTER = opencc.OpenCC('s2t.json') return CHS2CHT_CONVERTER.convert(text) No newline at end of file ballontranslator/ui/mainwindow.py +0 −1 Original line number Diff line number Diff line Loading @@ -765,7 +765,6 @@ class MainWindow(FramelessWindow): def on_imgtrans_pipeline_finished(self): self.postprocess_mt_toggle = True pass def postprocess_translations(self, blk_list: List[TextBlock]) -> None: src_is_cjk = is_cjk(self.config.dl.translate_source) Loading ballontranslator/utils/text_processing.py +2 −2 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ FULL2HALF = dict((i + 0xFEE0, i) for i in range(0x21, 0x7F)) FULL2HALF[0x3000] = 0x20 FULL2HALF[0x3002] = 0x2E LANGSET_CJK = {'简体中文', '繁体中文', '日本語', '한국어'} LANGSET_CH = {'简体中文', '繁体中文'} LANGSET_CJK = {'简体中文', '繁體中文', '日本語', '한국어'} LANGSET_CH = {'简体中文', '繁體中文'} PUNSET_RIGHT_ENG = {'.', '?', '!', ':', ';', ')', '}', "\""} PUNCTUATION_L = {'「', '『', '【', '《', '〈', '〔', '[', '{', '(', '(', '[', '{', '“', '‘'} Loading Loading
ballontranslator/dl/translators/__init__.py +14 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ from ..textdetector.textblock import TextBlock from ..moduleparamparser import ModuleParamParser from utils.registry import Registry from utils.io_utils import text_is_empty from .hooks import chs2cht TRANSLATORS = Registry('translators') register_translator = TRANSLATORS.register_module Loading Loading @@ -61,6 +62,7 @@ def check_language_support(check_type: str = 'source'): class TranslatorBase(ModuleParamParser): concate_text = True cht_require_convert = False def __init__(self, lang_source: str, Loading Loading @@ -101,6 +103,9 @@ class TranslatorBase(ModuleParamParser): self.set_source(lang_source) self.set_target(lang_target) if self.cht_require_convert: self.register_postprocess_hooks(self._chs2cht) def register_postprocess_hooks(self, callbacks: Union[List, Callable]): if callbacks is None: return Loading Loading @@ -183,6 +188,12 @@ class TranslatorBase(ModuleParamParser): def supported_src_list(self) -> List[str]: return self.valid_lang_list def _chs2cht(self, text: str, blk: TextBlock = None): if self.lang_target == '繁體中文': return chs2cht(text) else: return text @register_translator('google') class GoogleTranslator(TranslatorBase): Loading Loading @@ -290,12 +301,14 @@ class PapagoTranslator(TranslatorBase): class CaiyunTranslator(TranslatorBase): concate_text = False cht_require_convert = True setup_params: Dict = { 'token': '', } def _setup_translator(self): self.lang_map['简体中文'] = 'zh' self.lang_map['繁體中文'] = 'zh' self.lang_map['日本語'] = 'ja' self.lang_map['English'] = 'en' Loading Loading @@ -329,6 +342,7 @@ class CaiyunTranslator(TranslatorBase): class DeeplTranslator(TranslatorBase): concate_text = False cht_require_convert = True setup_params: Dict = { 'api_key': '' } Loading
ballontranslator/dl/translators/hooks.py 0 → 100644 +10 −0 Original line number Diff line number Diff line import opencc CHS2CHT_CONVERTER = None def chs2cht(text: str) -> str: global CHS2CHT_CONVERTER if CHS2CHT_CONVERTER is None: CHS2CHT_CONVERTER = opencc.OpenCC('s2t.json') return CHS2CHT_CONVERTER.convert(text) No newline at end of file
ballontranslator/ui/mainwindow.py +0 −1 Original line number Diff line number Diff line Loading @@ -765,7 +765,6 @@ class MainWindow(FramelessWindow): def on_imgtrans_pipeline_finished(self): self.postprocess_mt_toggle = True pass def postprocess_translations(self, blk_list: List[TextBlock]) -> None: src_is_cjk = is_cjk(self.config.dl.translate_source) Loading
ballontranslator/utils/text_processing.py +2 −2 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ FULL2HALF = dict((i + 0xFEE0, i) for i in range(0x21, 0x7F)) FULL2HALF[0x3000] = 0x20 FULL2HALF[0x3002] = 0x2E LANGSET_CJK = {'简体中文', '繁体中文', '日本語', '한국어'} LANGSET_CH = {'简体中文', '繁体中文'} LANGSET_CJK = {'简体中文', '繁體中文', '日本語', '한국어'} LANGSET_CH = {'简体中文', '繁體中文'} PUNSET_RIGHT_ENG = {'.', '?', '!', ':', ';', ')', '}', "\""} PUNCTUATION_L = {'「', '『', '【', '《', '〈', '〔', '[', '{', '(', '(', '[', '{', '“', '‘'} Loading