dmMaze / BallonsTranslator

深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning
GNU General Public License v3.0
2.25k stars 150 forks source link

翻譯失敗 #477

Closed Raiter123 closed 1 month ago

Raiter123 commented 1 month ago

最近翻譯時常常跑出一下的window,請問是發生什麽事了嗎 image Traceback (most recent call last): File "C:\Users\User-PC\BallonsTranslator\ui\module_manager.py", line 203, in _translate_page self.translator.translate_textblk_lst(page) File "C:\Users\User-PC\BallonsTranslator\modules\translators\base.py", line 205, in translate_textblk_lst _translations = self.translate(text_list) File "C:\Users\User-PC\BallonsTranslator\modules\translators\base.py", line 149, in translate text_trans = self._translate(text_source) File "C:\Users\User-PC\BallonsTranslator\modules\translators\trans_sakura.py", line 515, in _translate translations = self._check_translation_quality(queries, response) File "C:\Users\User-PC\BallonsTranslator\modules\translators\trans_sakura.py", line 460, in _check_translation_quality return self._translate_single_lines(queries) File "C:\Users\User-PC\BallonsTranslator\modules\translators\trans_sakura.py", line 471, in _translate_single_lines if self.detect_and_caculate_repeats(response)[0]: File "C:\Users\User-PC\BallonsTranslator\modules\translators\trans_sakura.py", line 381, in detect_and_caculate_repeats return repeated, s, count, pattern, actual_threshold UnboundLocalError: local variable 'count' referenced before assignment

image

dmMaze commented 1 month ago

@PiDanShouRouZhouXD

这个函数返回的 count, pattern 如果没进第一个 while 循环是没定义的 https://github.com/dmMaze/BallonsTranslator/blob/028ded8c234d3b267ac637de5e73d66ad19eb143/modules/translators/trans_sakura.py#L341-L381 而且最里面这个 while 循环让 j 每次加 pattern_length 会让所有 (j-i) % pattern_length != 0 的 pattern 漏检,比如这个字符串里的 ab: abbababababababababa 如果不是刻意设计成这样可以改用正则 https://stackoverflow.com/a/3519601

PiDanShouRouZhouXD commented 1 month ago

@PiDanShouRouZhouXD

这个函数返回的 count, pattern 如果没进第一个 while 循环是没定义的

https://github.com/dmMaze/BallonsTranslator/blob/028ded8c234d3b267ac637de5e73d66ad19eb143/modules/translators/trans_sakura.py#L341-L381

而且最里面这个 while 循环让 j 每次加 pattern_length 会让所有 (j-i) % pattern_length != 0 的 pattern 漏检,比如这个字符串里的 ab: abbababababababababa 如果不是刻意设计成这样可以改用正则 https://stackoverflow.com/a/3519601

我修一下