Commit c9a0bdbf authored by dmMaze's avatar dmMaze
Browse files

fix incorrect orientation assignment for CHT (#96) & support convert CHS to CHT (#100)

parent dca7279f
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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
@@ -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, 
@@ -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
@@ -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):
@@ -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'  
        
@@ -329,6 +342,7 @@ class CaiyunTranslator(TranslatorBase):
class DeeplTranslator(TranslatorBase):

    concate_text = False
    cht_require_convert = True
    setup_params: Dict = {
        'api_key': ''
    }
+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
+0 −1
Original line number Diff line number Diff line
@@ -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)
+2 −2
Original line number Diff line number Diff line
@@ -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 = {'', '', '', '', '', '', '', '', '', '(', '[', '{', '', ''}