This commit is contained in:
恍兮惚兮 2024-11-23 21:44:07 +08:00
parent f01c6ef543
commit 92f4caa7ae
25 changed files with 82 additions and 45 deletions

View File

@ -1,7 +1,7 @@
set(VERSION_MAJOR 6) set(VERSION_MAJOR 6)
set(VERSION_MINOR 5) set(VERSION_MINOR 5)
set(VERSION_PATCH 7) set(VERSION_PATCH 8)
set(VERSION_REVISION 0) set(VERSION_REVISION 0)
set(LUNA_VERSION "{${VERSION_MAJOR},${VERSION_MINOR},${VERSION_PATCH},${VERSION_REVISION}}") set(LUNA_VERSION "{${VERSION_MAJOR},${VERSION_MINOR},${VERSION_PATCH},${VERSION_REVISION}}")
add_library(VERSION_DEF INTERFACE) add_library(VERSION_DEF INTERFACE)

View File

@ -386,18 +386,23 @@ class MAINUI:
text_solved, optimization_params = self.solvebeforetrans(text) text_solved, optimization_params = self.solvebeforetrans(text)
maybehaspremt = {} maybehaspremt = {}
skip_other_on_success = False
fix_rank = globalconfig["fix_translate_rank_rank"].copy() fix_rank = globalconfig["fix_translate_rank_rank"].copy()
if "rengong" in self.translators:
if "premt" in self.translators: contentraw = self.analyzecontent(text_solved, optimization_params)
try: try:
contentraw = text_solved res = self.translators["rengong"].translate(contentraw)
for _ in optimization_params: except:
if isinstance(_, dict): print_exc()
_gpt_dict = _.get("gpt_dict", None) res = None
if _gpt_dict is None: maybehaspremt["rengong"] = res
continue skip_other_on_success = (
contentraw = _.get("gpt_dict_origin") res and self.translators["rengong"].config["skip_other_on_success"]
)
if (not skip_other_on_success) and ("premt" in self.translators):
contentraw = self.analyzecontent(text_solved, optimization_params)
try:
maybehaspremt = self.translators["premt"].translate(contentraw) maybehaspremt = self.translators["premt"].translate(contentraw)
except: except:
print_exc() print_exc()
@ -406,11 +411,13 @@ class MAINUI:
fix_rank = fix_rank[:idx] + other + fix_rank[idx + 1 :] fix_rank = fix_rank[:idx] + other + fix_rank[idx + 1 :]
real_fix_rank = [] real_fix_rank = []
if skip_other_on_success:
for engine in fix_rank: real_fix_rank.append("rengong")
if (engine not in self.translators) and (engine not in maybehaspremt): else:
continue for engine in fix_rank:
real_fix_rank.append(engine) if (engine not in self.translators) and (engine not in maybehaspremt):
continue
real_fix_rank.append(engine)
if len(real_fix_rank) == 0: if len(real_fix_rank) == 0:
return _showrawfunction() return _showrawfunction()
@ -448,6 +455,15 @@ class MAINUI:
) )
return True return True
def analyzecontent(self, text_solved, optimization_params):
for _ in optimization_params:
if isinstance(_, dict):
_gpt_dict = _.get("gpt_dict", None)
if _gpt_dict is None:
continue
return _.get("gpt_dict_origin")
return text_solved
def _delaypreparefixrank(self, _showrawfunction, real_fix_rank): def _delaypreparefixrank(self, _showrawfunction, real_fix_rank):
_showrawfunction() _showrawfunction()
for engine in real_fix_rank: for engine in real_fix_rank:

View File

@ -188,8 +188,8 @@ class basetrans(commonbase):
@property @property
def transtype(self): def transtype(self):
# free/dev/api/offline/pre # free/dev/api/offline/pre
# dev/offline/pre 无视请求间隔 # dev/offline 无视请求间隔
# pre不使用翻译缓存 # pre全都有额外的处理不走该pipeline不使用翻译缓存
# offline不被新的请求打断 # offline不被新的请求打断
return globalconfig["fanyi"][self.typename].get("type", "free") return globalconfig["fanyi"][self.typename].get("type", "free")
@ -238,8 +238,6 @@ class basetrans(commonbase):
# 除了预翻译不使用翻译缓存以及手动触发gpt翻译外其他不管什么翻译都缓存下来。 # 除了预翻译不使用翻译缓存以及手动触发gpt翻译外其他不管什么翻译都缓存下来。
if self.is_gpt_like and not is_auto_run: if self.is_gpt_like and not is_auto_run:
return None return None
if self.transtype == "pre":
return None
res = self.shorttermcacheget(content) res = self.shorttermcacheget(content)
if res: if res:
return res return res
@ -359,8 +357,6 @@ class basetrans(commonbase):
# 保存缓存 # 保存缓存
# 不管是否使用翻译缓存,都存下来 # 不管是否使用翻译缓存,都存下来
if self.transtype == "pre":
return
self.shorttermcacheset(cache_use, res) self.shorttermcacheset(cache_use, res)
self.longtermcacheset(cache_use, res) self.longtermcacheset(cache_use, res)
@ -374,6 +370,7 @@ class basetrans(commonbase):
continue continue
gpt_dict = _gpt_dict gpt_dict = _gpt_dict
contentraw = _.get("gpt_dict_origin") contentraw = _.get("gpt_dict_origin")
break
return { return {
"text": contentsolved, "text": contentsolved,
@ -409,7 +406,7 @@ class basetrans(commonbase):
self.maybeneedreinit() self.maybeneedreinit()
if self.using_gpt_dict or self.transtype == "pre": if self.using_gpt_dict:
contentsolved = self.__parse_gpt_dict( contentsolved = self.__parse_gpt_dict(
contentsolved, optimization_params contentsolved, optimization_params
) )

View File

@ -113,8 +113,7 @@ class TS(basetrans):
collect.append(line) collect.append(line)
return "\n".join(collect) return "\n".join(collect)
def translate(self, content: dict): def translate(self, content):
content = content["contentraw"]
self.checkfilechanged( self.checkfilechanged(
self.unsafegetcurrentgameconfig(), tuple(self.config["jsonfile"]) self.unsafegetcurrentgameconfig(), tuple(self.config["jsonfile"])
) )

View File

@ -816,7 +816,8 @@
}, },
"rengong": { "rengong": {
"args": { "args": {
"jsonfile": [] "jsonfile": [],
"skip_other_on_success": false
}, },
"argstype": { "argstype": {
"jsonfile": { "jsonfile": {
@ -825,6 +826,10 @@
"dir": false, "dir": false,
"filter": "*.json", "filter": "*.json",
"multi": true "multi": true
},
"skip_other_on_success": {
"type": "switch",
"name": "成功时跳过其他翻译"
} }
} }
}, },

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "win32 سلسلة هوك", "Win32字符串函数钩子": "win32 سلسلة هوك",
"额外的钩子": "خطاف إضافية", "额外的钩子": "خطاف إضافية",
"自动前进": "التلقائي إلى الأمام", "自动前进": "التلقائي إلى الأمام",
"在新窗口中查词": "البحث عن الكلمات في نافذة جديدة" "在新窗口中查词": "البحث عن الكلمات في نافذة جديدة",
"成功时跳过其他翻译": "تخطي ترجمة أخرى عند النجاح"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32字串函數鉤子", "Win32字符串函数钩子": "Win32字串函數鉤子",
"额外的钩子": "額外的鉤子", "额外的钩子": "額外的鉤子",
"自动前进": "自動前進", "自动前进": "自動前進",
"在新窗口中查词": "在新窗口中查詞" "在新窗口中查词": "在新窗口中查詞",
"成功时跳过其他翻译": "成功時跳過其他翻譯"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 řetězcový funkční hák", "Win32字符串函数钩子": "Win32 řetězcový funkční hák",
"额外的钩子": "Extra háčky", "额外的钩子": "Extra háčky",
"自动前进": "Automaticky dopředu", "自动前进": "Automaticky dopředu",
"在新窗口中查词": "Vyhledávání slov v novém okně" "在新窗口中查词": "Vyhledávání slov v novém okně",
"成功时跳过其他翻译": "Přeskočit další překlady po úspěchu"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 String Function Hook", "Win32字符串函数钩子": "Win32 String Function Hook",
"额外的钩子": "Zusätzliche Haken", "额外的钩子": "Zusätzliche Haken",
"自动前进": "Automatisch vorwärts", "自动前进": "Automatisch vorwärts",
"在新窗口中查词": "Suche nach Wörtern in einem neuen Fenster" "在新窗口中查词": "Suche nach Wörtern in einem neuen Fenster",
"成功时跳过其他翻译": "Andere Übersetzungen überspringen, wenn erfolgreich"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 string function hook", "Win32字符串函数钩子": "Win32 string function hook",
"额外的钩子": "Extra hooks", "额外的钩子": "Extra hooks",
"自动前进": "Automatic Forward", "自动前进": "Automatic Forward",
"在新窗口中查词": "Search for words in a new window" "在新窗口中查词": "Search for words in a new window",
"成功时跳过其他翻译": "Skip other translations when successful"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Gancho de función de cadena Win32", "Win32字符串函数钩子": "Gancho de función de cadena Win32",
"额外的钩子": "Ganchos adicionales", "额外的钩子": "Ganchos adicionales",
"自动前进": "Avance automático", "自动前进": "Avance automático",
"在新窗口中查词": "Buscar palabras en una nueva ventana" "在新窗口中查词": "Buscar palabras en una nueva ventana",
"成功时跳过其他翻译": "Saltar otras traducciones cuando tenga éxito"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Crochet de fonction de chaîne Win32", "Win32字符串函数钩子": "Crochet de fonction de chaîne Win32",
"额外的钩子": "Crochets supplémentaires", "额外的钩子": "Crochets supplémentaires",
"自动前进": "Avance automatique", "自动前进": "Avance automatique",
"在新窗口中查词": "Rechercher des mots dans une nouvelle fenêtre" "在新窗口中查词": "Rechercher des mots dans une nouvelle fenêtre",
"成功时跳过其他翻译": "Sauter les autres traductions en cas de succès"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Aggancio della funzione stringa Win32", "Win32字符串函数钩子": "Aggancio della funzione stringa Win32",
"额外的钩子": "Ganci supplementari", "额外的钩子": "Ganci supplementari",
"自动前进": "Avanti automatico", "自动前进": "Avanti automatico",
"在新窗口中查词": "Cerca parole in una nuova finestra" "在新窗口中查词": "Cerca parole in una nuova finestra",
"成功时跳过其他翻译": "Salta altre traduzioni quando hai successo"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win 32文字列関数フック", "Win32字符串函数钩子": "Win 32文字列関数フック",
"额外的钩子": "エクストラフック", "额外的钩子": "エクストラフック",
"自动前进": "自動前進", "自动前进": "自動前進",
"在新窗口中查词": "新しいウィンドウで単語を調べる" "在新窗口中查词": "新しいウィンドウで単語を調べる",
"成功时跳过其他翻译": "成功時に他の翻訳をスキップ"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 문자열 함수 후크", "Win32字符串函数钩子": "Win32 문자열 함수 후크",
"额外的钩子": "추가 갈고리", "额外的钩子": "추가 갈고리",
"自动前进": "자동 전진", "自动前进": "자동 전진",
"在新窗口中查词": "새 창에서 단어 찾기" "在新窗口中查词": "새 창에서 단어 찾기",
"成功时跳过其他翻译": "성공 시 다른 번역 건너뛰기"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 tekenfunctiehook", "Win32字符串函数钩子": "Win32 tekenfunctiehook",
"额外的钩子": "Extra haken", "额外的钩子": "Extra haken",
"自动前进": "Automatisch voorwaarts", "自动前进": "Automatisch voorwaarts",
"在新窗口中查词": "Zoeken naar woorden in een nieuw venster" "在新窗口中查词": "Zoeken naar woorden in een nieuw venster",
"成功时跳过其他翻译": "Andere vertalingen overslaan wanneer succesvol"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Hook funkcji ciągów Win32", "Win32字符串函数钩子": "Hook funkcji ciągów Win32",
"额外的钩子": "Dodatkowe haki", "额外的钩子": "Dodatkowe haki",
"自动前进": "Automatyczne naprzód", "自动前进": "Automatyczne naprzód",
"在新窗口中查词": "Wyszukiwanie słów w nowym oknie" "在新窗口中查词": "Wyszukiwanie słów w nowym oknie",
"成功时跳过其他翻译": "Pomiń inne tłumaczenia po powodzeniu"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Gancho de função de cadeia Win32", "Win32字符串函数钩子": "Gancho de função de cadeia Win32",
"额外的钩子": "Ganchos extra", "额外的钩子": "Ganchos extra",
"自动前进": "Avançar Automático", "自动前进": "Avançar Automático",
"在新窗口中查词": "Procurar palavras numa nova janela" "在新窗口中查词": "Procurar palavras numa nova janela",
"成功时跳过其他翻译": "Ignorar outras traduções quando bem sucedidas"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 Строчный крюк", "Win32字符串函数钩子": "Win32 Строчный крюк",
"额外的钩子": "Дополнительный крюк", "额外的钩子": "Дополнительный крюк",
"自动前进": "Автоматическое продвижение вперед", "自动前进": "Автоматическое продвижение вперед",
"在新窗口中查词": "Проверка слов в новом окне" "在新窗口中查词": "Проверка слов в новом окне",
"成功时跳过其他翻译": "Скачать другие переводы при успехе"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 strängfunktionskrok", "Win32字符串函数钩子": "Win32 strängfunktionskrok",
"额外的钩子": "Extra krokar", "额外的钩子": "Extra krokar",
"自动前进": "Automatisk framåt", "自动前进": "Automatisk framåt",
"在新窗口中查词": "Sök efter ord i ett nytt fönster" "在新窗口中查词": "Sök efter ord i ett nytt fönster",
"成功时跳过其他翻译": "Hoppa över andra översättningar när de lyckas"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 ฟังก์ชั่นสตริงตะขอ", "Win32字符串函数钩子": "Win32 ฟังก์ชั่นสตริงตะขอ",
"额外的钩子": "ตะขอเพิ่มเติม", "额外的钩子": "ตะขอเพิ่มเติม",
"自动前进": "เดินหน้าอัตโนมัติ", "自动前进": "เดินหน้าอัตโนมัติ",
"在新窗口中查词": "ค้นหาคำในหน้าต่างใหม่" "在新窗口中查词": "ค้นหาคำในหน้าต่างใหม่",
"成功时跳过其他翻译": "ข้ามการแปลอื่นเมื่อสำเร็จ"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 string fonksiyonu", "Win32字符串函数钩子": "Win32 string fonksiyonu",
"额外的钩子": "Ekstra hücreler", "额外的钩子": "Ekstra hücreler",
"自动前进": "Otomatik İleri", "自动前进": "Otomatik İleri",
"在新窗口中查词": "Yeni pencerede kelimeler arayın" "在新窗口中查词": "Yeni pencerede kelimeler arayın",
"成功时跳过其他翻译": "Başarılı olduğunda diğer çevirileri atla"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Хук функції рядка Win32", "Win32字符串函数钩子": "Хук функції рядка Win32",
"额外的钩子": "Додаткові хаки", "额外的钩子": "Додаткові хаки",
"自动前进": "Автоматично вперед", "自动前进": "Автоматично вперед",
"在新窗口中查词": "Пошук слів у новому вікні" "在新窗口中查词": "Пошук слів у новому вікні",
"成功时跳过其他翻译": "Пропустити інші переклади, якщо вони успішні"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "Win32 Chuỗi chức năng Hook", "Win32字符串函数钩子": "Win32 Chuỗi chức năng Hook",
"额外的钩子": "Thêm móc", "额外的钩子": "Thêm móc",
"自动前进": "Tự động chuyển tiếp", "自动前进": "Tự động chuyển tiếp",
"在新窗口中查词": "Tra từ trong cửa sổ mới" "在新窗口中查词": "Tra từ trong cửa sổ mới",
"成功时跳过其他翻译": "Bỏ qua các bản dịch khác khi thành công"
} }

View File

@ -792,5 +792,6 @@
"Win32字符串函数钩子": "", "Win32字符串函数钩子": "",
"额外的钩子": "", "额外的钩子": "",
"自动前进": "", "自动前进": "",
"在新窗口中查词": "" "在新窗口中查词": "",
"成功时跳过其他翻译": ""
} }