Commit 70fa2c1c authored by dmMaze's avatar dmMaze
Browse files

fix #174

parent c3f81c3d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ class DummyTranslator(BaseTranslator):
        self.lang_map['日本語'] = 'ja'
        self.lang_map['English'] = 'en'  
        
    def _translate(self, text: List[str]) -> List[str]:
    def _translate(self, src_list: List[str]) -> List[str]:
        '''
        do the translation here.  
        This translator do nothing but return the original text.
@@ -94,7 +94,7 @@ class DummyTranslator(BaseTranslator):
Слишком медленно посылать запрос для каждого текстового блока, поэтому вся страница сшивается и переводится. concate_text настроен на автоматическое сшивание/разделение, и по умолчанию сшивает весь блок вместе с '\n###\n' в качестве разделителя, а затем разделяет переведенный текст обратно в текстовую таблицу с помощью '####'. Это работает для большинства проверенных мной переводчиков, но некоторые из них избавляются от #, поэтому вы можете отключить перевод concate_text блок за блоком или реализовать свой собственный метод сшивания.  
Некоторые апи, такие как Caiyun, поддерживают прямые текстовые таблицы в сообщениях, поэтому можно установить значение False.  
``` python
    def _translate(self, text: List[str]) -> List[str]:
    def _translate(self, src_list: List[str]) -> List[str]:
        api_key = self.params['api_key']  # 如此获取用户修改过的api_key
        source = self.lang_map[self.lang_source]
        target = self.lang_map[self.lang_target]
+2 −2
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ class DummyTranslator(BaseTranslator):
        self.lang_map['日本語'] = 'ja'
        self.lang_map['English'] = 'en'  
        
    def _translate(self, text: List[str]) -> List[str]:
    def _translate(self, src_list: List[str]) -> List[str]:
        '''
        do the translation here.  
        This translator do nothing but return the original text.
@@ -121,7 +121,7 @@ Implement ```_translate```, the following lang_source and lang_target are the la
If prementioned ```concate_text``` is set to False, input could be str list(all text recognized in a page) or str, else the input could be concated text of a str list (['text1', 'text2'] -> 'text1 \n###\n text2'), set it to True only if this translator is a online api and don't accept str list to make fewer requests.

``` python
def _translate(self, text: List[str]) -> List[str]:
def _translate(self, src_list: List[str]) -> List[str]:
    '''
    do the translation here.  
    This translator do nothing but return the original text.
+2 −2
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ class DummyTranslator(BaseTranslator):
        self.lang_map['日本語'] = 'ja'
        self.lang_map['English'] = 'en'  
        
    def _translate(self, text: List[str]) -> List[str]:
    def _translate(self, src_list: List[str]) -> List[str]:
        '''
        do the translation here.  
        This translator do nothing but return the original text.
@@ -112,7 +112,7 @@ params里的键值是界面里显示的对应参数名, 值可以是str, 下面
注意如果前面的concate_text设置为False, 这里传入的text会是字符串表, 对应当前翻译页面的每个文本块原文内容, 翻译的输出也应当是一一对应的译文表. 设置为True时传入的text是所有文本块内容拼接成的纯字符串, 输出应当是这个字符串的翻译文本.  
每个文本块都发请求太慢了所以拼接后整页一起翻译, concate_text设置后拼/拆是自动的这里不用管, 默认会将'\n###\n'作为分隔符拼接成一整个文本块, 再将译文用'###'分割回文本表. 这种方法对我测试过的多数翻译器管用, 但是有些翻译器会把这些#处理掉, 这时可以禁用concate_text逐个文本块翻译或者实现自己的拼接方法.  
``` python
    def _translate(self, text: List[str]) -> List[str]:
    def _translate(self, src_list: List[str]) -> List[str]:
        api_key = self.params['api_key']  # 如此获取用户修改过的api_key
        source = self.lang_map[self.lang_source]
        target = self.lang_map[self.lang_target]
+1 −1
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ class BaseTranslator(BaseModule):
    def set_target(self, lang: str):
        self.lang_target = lang

    def _translate(self, text: List[str]) -> List[str]:
    def _translate(self, src_list: List[str]) -> List[str]:
        raise NotImplementedError

    def translate(self, text: Union[str, List]) -> Union[str, List]:
+2 −2
Original line number Diff line number Diff line
@@ -36,11 +36,11 @@ class BaiduTranslator(BaseTranslator):
        self.lang_map['日本語'] = 'jp'
        self.lang_map['English'] = 'en'  
    
    def _translate(self, text: List[str]) -> List[str]:
    def _translate(self, src_list: List[str]) -> List[str]:

        n_queries = []
        query_split_sizes = []
        for query in text:
        for query in src_list:
            batch = query.split('\n')
            query_split_sizes.append(len(batch))
            n_queries.extend(batch)
Loading