This commit is contained in:
恍兮惚兮 2024-08-18 18:57:49 +08:00
parent b739e403aa
commit 80e2dd0f08
25 changed files with 18 additions and 57 deletions

View File

@ -65,7 +65,6 @@ def registrhotkeys(self):
windows.FindWindow("WNDCLS_Magpie_Core_CLI_Message", None), windows.FindWindow("WNDCLS_Magpie_Core_CLI_Message", None),
windows.RegisterWindowMessage("Magpie_Core_CLI_Message_ToggleOverlay"), windows.RegisterWindowMessage("Magpie_Core_CLI_Message_ToggleOverlay"),
), ),
"_26": gobject.baseobject.translation_ui.ocr_once_signal.emit,
"_27": gobject.baseobject.translation_ui.simulate_key_enter, "_27": gobject.baseobject.translation_ui.simulate_key_enter,
"_28": lambda: winsharedutils.clipboard_set( "_28": lambda: winsharedutils.clipboard_set(
gobject.baseobject.currenttranslate gobject.baseobject.currenttranslate

View File

@ -245,7 +245,6 @@ class TranslatorWindow(resizableframeless):
refreshtooliconsignal = pyqtSignal() refreshtooliconsignal = pyqtSignal()
hidesignal = pyqtSignal() hidesignal = pyqtSignal()
muteprocessignal = pyqtSignal() muteprocessignal = pyqtSignal()
ocr_once_signal = pyqtSignal()
resizesignal = pyqtSignal(QSize) resizesignal = pyqtSignal(QSize)
move_signal = pyqtSignal(QPoint) move_signal = pyqtSignal(QPoint)
closesignal = pyqtSignal() closesignal = pyqtSignal()
@ -467,13 +466,6 @@ class TranslatorWindow(resizableframeless):
else: else:
gobject.baseobject.textgetmethod(text, False) gobject.baseobject.textgetmethod(text, False)
def ocr_once_function(self):
def ocroncefunction(rect):
self.ocr_once_follow_rect = rect
self.ocr_do_function(rect)
rangeselct_function(ocroncefunction, False, False)
@threader @threader
def simulate_key_enter(self): def simulate_key_enter(self):
windows.SetForegroundWindow(gobject.baseobject.hwnd) windows.SetForegroundWindow(gobject.baseobject.hwnd)
@ -654,7 +646,6 @@ class TranslatorWindow(resizableframeless):
1, 1,
), ),
), ),
("ocr_once", self.ocr_once_signal.emit),
( (
"ocr_once_follow", "ocr_once_follow",
lambda: self.ocr_do_function(self.ocr_once_follow_rect), lambda: self.ocr_do_function(self.ocr_once_follow_rect),
@ -827,7 +818,6 @@ class TranslatorWindow(resizableframeless):
self.displaylink.connect(self.displaylink_f) self.displaylink.connect(self.displaylink_f)
self.displayglobaltooltip.connect(self.displayglobaltooltip_f) self.displayglobaltooltip.connect(self.displayglobaltooltip_f)
self.displaymessagebox.connect(self.displaymessagebox_f) self.displaymessagebox.connect(self.displaymessagebox_f)
self.ocr_once_signal.connect(self.ocr_once_function)
self.displaystatus.connect(self.showstatus) self.displaystatus.connect(self.showstatus)
self.showhideuisignal.connect(self.showhideui) self.showhideuisignal.connect(self.showhideui)
self.displayres.connect(self.showres) self.displayres.connect(self.showres)
@ -1255,11 +1245,20 @@ class TranslatorWindow(resizableframeless):
self.resizesignal.emit(size) self.resizesignal.emit(size)
def clickRange(self, auto): def clickRange(self, auto):
if globalconfig["sourcestatus2"]["ocr"]["use"] == False:
return
self.showhidestate = False
rangeselct_function(self.afterrange, auto, auto) def ocroncefunction(rect):
self.ocr_once_follow_rect = rect
self.ocr_do_function(rect)
def inocrmode(rect):
self.showhidestate = False
self.afterrange(rect)
if globalconfig["sourcestatus2"]["ocr"]["use"] == False:
f = ocroncefunction
else:
f = inocrmode
rangeselct_function(f, auto, auto)
@tryprint @tryprint
def afterrange(self, rect): def afterrange(self, rect):

View File

@ -382,7 +382,7 @@ def syncconfig(config1, default, drop=False, deep=0, skipdict=False):
if skipdict == False: if skipdict == False:
syncconfig(config1[key], default[key], drop, deep - 1) syncconfig(config1[key], default[key], drop, deep - 1)
if isinstance(config1, dict) and isinstance(default, dict): if isinstance(config1, dict) and isinstance(default, dict):
for key in ("name", "tip", "argstype", "args"): for key in ("name", "tip", "argstype", "args", "belong"):
if key in config1 and key not in default: if key in config1 and key not in default:
config1.pop(key) config1.pop(key)
if drop and deep > 0: if drop and deep > 0:

View File

@ -567,8 +567,8 @@
"copy_once", "copy_once",
"open_relative_link", "open_relative_link",
"open_game_setting", "open_game_setting",
"ocr_once",
"selectable", "selectable",
"ocr_once_follow",
"minmize", "minmize",
"quit" "quit"
], ],
@ -650,9 +650,6 @@
"selectocrrange": { "selectocrrange": {
"use": true, "use": true,
"tip": "选取OCR范围", "tip": "选取OCR范围",
"belong": [
"ocr"
],
"icon": "fa.crop", "icon": "fa.crop",
"align": 2 "align": 2
}, },
@ -665,12 +662,6 @@
"icon": "fa.square", "icon": "fa.square",
"align": 2 "align": 2
}, },
"ocr_once": {
"use": false,
"tip": "进行一次OCR",
"icon": "fa.crop",
"align": 0
},
"ocr_once_follow": { "ocr_once_follow": {
"use": false, "use": false,
"tip": "再次进行OCR", "tip": "再次进行OCR",
@ -1018,11 +1009,6 @@
"name": "Magpie_游戏内叠加层", "name": "Magpie_游戏内叠加层",
"keystring": "" "keystring": ""
}, },
"_26": {
"use": false,
"name": "进行一次OCR",
"keystring": ""
},
"_27": { "_27": {
"use": false, "use": false,
"name": "模拟按键Enter", "name": "模拟按键Enter",

View File

@ -486,7 +486,6 @@
"图标2": "أيقونات", "图标2": "أيقونات",
"刷新": "منعش", "刷新": "منعش",
"读取剪贴板": "قراءة الحافظة", "读取剪贴板": "قراءة الحافظة",
"进行一次OCR": "التعرف الضوئي على الحروف",
"有道OCR": "التعرف الضوئي على الحروف", "有道OCR": "التعرف الضوئي على الحروف",
"免费试用": "محاكمة مجانية", "免费试用": "محاكمة مجانية",
"通用文字识别 API": "المعهد العالمي التعرف على الحروف", "通用文字识别 API": "المعهد العالمي التعرف على الحروف",

View File

@ -486,7 +486,6 @@
"图标2": "圖示 2", "图标2": "圖示 2",
"刷新": "重新整理", "刷新": "重新整理",
"读取剪贴板": "讀取剪貼簿", "读取剪贴板": "讀取剪貼簿",
"进行一次OCR": "進行一次 OCR",
"有道OCR": "有道 OCR", "有道OCR": "有道 OCR",
"免费试用": "免費試用", "免费试用": "免費試用",
"通用文字识别 API": "一般文字識別 API", "通用文字识别 API": "一般文字識別 API",

View File

@ -485,7 +485,6 @@
"单次负载个数": "Počet jednotlivých nákladů", "单次负载个数": "Počet jednotlivých nákladů",
"过滤英文字母": "Filtrovat anglická písmena", "过滤英文字母": "Filtrovat anglická písmena",
"过滤包含乱码的文本行": "Filtrovat textové řádky obsahující zkreslené znaky", "过滤包含乱码的文本行": "Filtrovat textové řádky obsahující zkreslené znaky",
"进行一次OCR": "Provést OCR jednou",
"选取OCR范围——立即": "Vybrat rozsah OCR a okamžitě", "选取OCR范围——立即": "Vybrat rozsah OCR a okamžitě",
"有道OCR": "OCR Youdao", "有道OCR": "OCR Youdao",
"免费试用": "Zkušební verze zdarma", "免费试用": "Zkušební verze zdarma",

View File

@ -485,7 +485,6 @@
"单次负载个数": "Anzahl der Einzelladungen", "单次负载个数": "Anzahl der Einzelladungen",
"过滤英文字母": "Englische Buchstaben filtern", "过滤英文字母": "Englische Buchstaben filtern",
"过滤包含乱码的文本行": "Textzeilen mit verzerrten Zeichen filtern", "过滤包含乱码的文本行": "Textzeilen mit verzerrten Zeichen filtern",
"进行一次OCR": "OCR einmal ausführen",
"选取OCR范围——立即": "OCR-Bereich sofort auswählen", "选取OCR范围——立即": "OCR-Bereich sofort auswählen",
"有道OCR": "Youdao OCR", "有道OCR": "Youdao OCR",
"免费试用": "Kostenlose Testversion", "免费试用": "Kostenlose Testversion",

View File

@ -486,7 +486,6 @@
"图标2": "Icon 2", "图标2": "Icon 2",
"刷新": "Refresh", "刷新": "Refresh",
"读取剪贴板": "Read Clipboard", "读取剪贴板": "Read Clipboard",
"进行一次OCR": "Perform OCR",
"有道OCR": "Youdao OCR", "有道OCR": "Youdao OCR",
"免费试用": "Free Trial", "免费试用": "Free Trial",
"通用文字识别 API": "General OCR API", "通用文字识别 API": "General OCR API",

View File

@ -486,7 +486,6 @@
"图标2": "Icono 2", "图标2": "Icono 2",
"刷新": "Refrescar", "刷新": "Refrescar",
"读取剪贴板": "Leer el portapapeles", "读取剪贴板": "Leer el portapapeles",
"进行一次OCR": "Realizar un OCR",
"有道OCR": "Youdao OCR", "有道OCR": "Youdao OCR",
"免费试用": "Prueba gratuita", "免费试用": "Prueba gratuita",
"通用文字识别 API": "API universal de reconocimiento de texto", "通用文字识别 API": "API universal de reconocimiento de texto",

View File

@ -486,7 +486,6 @@
"图标2": "Icône 2", "图标2": "Icône 2",
"刷新": "Rafraîchir", "刷新": "Rafraîchir",
"读取剪贴板": "Lire le presse - papiers", "读取剪贴板": "Lire le presse - papiers",
"进行一次OCR": "Faites une ocr",
"有道OCR": "OCR avec piste", "有道OCR": "OCR avec piste",
"免费试用": "Essai gratuit", "免费试用": "Essai gratuit",
"通用文字识别 API": "API de reconnaissance de texte universelle", "通用文字识别 API": "API de reconnaissance de texte universelle",

View File

@ -486,7 +486,6 @@
"图标2": "Icona 2", "图标2": "Icona 2",
"刷新": "Aggiorna", "刷新": "Aggiorna",
"读取剪贴板": "Leggi gli appunti", "读取剪贴板": "Leggi gli appunti",
"进行一次OCR": "Condurre un OCR",
"有道OCR": "OCR Youdao", "有道OCR": "OCR Youdao",
"免费试用": "Prova gratuita", "免费试用": "Prova gratuita",
"通用文字识别 API": "API universale per il riconoscimento del testo", "通用文字识别 API": "API universale per il riconoscimento del testo",

View File

@ -486,7 +486,6 @@
"图标2": "アイコン2", "图标2": "アイコン2",
"刷新": "リフレッシュ", "刷新": "リフレッシュ",
"读取剪贴板": "クリップボードを読み込む", "读取剪贴板": "クリップボードを読み込む",
"进行一次OCR": "OCRを1回実行する",
"有道OCR": "チャネルOCR", "有道OCR": "チャネルOCR",
"免费试用": "無料トライアル", "免费试用": "無料トライアル",
"通用文字识别 API": "共通文字認識API", "通用文字识别 API": "共通文字認識API",

View File

@ -486,7 +486,6 @@
"图标2": "아이콘 2", "图标2": "아이콘 2",
"刷新": "새로 고침", "刷新": "새로 고침",
"读取剪贴板": "클립보드 읽기", "读取剪贴板": "클립보드 읽기",
"进行一次OCR": "OCR을 한번 진행해보도록 하겠습니다.",
"有道OCR": "유도 OCR", "有道OCR": "유도 OCR",
"免费试用": "무료 평가판", "免费试用": "무료 평가판",
"通用文字识别 API": "일반 문자 인식 API", "通用文字识别 API": "일반 문자 인식 API",

View File

@ -485,7 +485,6 @@
"单次负载个数": "Aantal enkelvoudige ladingen", "单次负载个数": "Aantal enkelvoudige ladingen",
"过滤英文字母": "Engelse letters filteren", "过滤英文字母": "Engelse letters filteren",
"过滤包含乱码的文本行": "Tekstregels met vervormde tekens filteren", "过滤包含乱码的文本行": "Tekstregels met vervormde tekens filteren",
"进行一次OCR": "Eenmaal OCR uitvoeren",
"选取OCR范围——立即": "OCR-bereik direct selecteren", "选取OCR范围——立即": "OCR-bereik direct selecteren",
"有道OCR": "Youdao OCR", "有道OCR": "Youdao OCR",
"免费试用": "Gratis proefperiode", "免费试用": "Gratis proefperiode",

View File

@ -486,7 +486,6 @@
"图标2": "Ikona 2", "图标2": "Ikona 2",
"刷新": "Odśwież", "刷新": "Odśwież",
"读取剪贴板": "Odczytaj schowek", "读取剪贴板": "Odczytaj schowek",
"进行一次OCR": "Przeprowadzenie OCR",
"有道OCR": "OCR Youdao", "有道OCR": "OCR Youdao",
"免费试用": "Bezpłatny próbny", "免费试用": "Bezpłatny próbny",
"通用文字识别 API": "Uniwersalne rozpoznawanie tekstu API", "通用文字识别 API": "Uniwersalne rozpoznawanie tekstu API",

View File

@ -485,7 +485,6 @@
"单次负载个数": "Número de cargas individuais", "单次负载个数": "Número de cargas individuais",
"过滤英文字母": "Filtrar letras inglesas", "过滤英文字母": "Filtrar letras inglesas",
"过滤包含乱码的文本行": "Filtrar linhas de texto contendo caracteres distorcidos", "过滤包含乱码的文本行": "Filtrar linhas de texto contendo caracteres distorcidos",
"进行一次OCR": "Executar OCR uma vez",
"选取OCR范围——立即": "Seleccionar o intervalo OCR - Imediatamente", "选取OCR范围——立即": "Seleccionar o intervalo OCR - Imediatamente",
"有道OCR": "OCR Youdao", "有道OCR": "OCR Youdao",
"免费试用": "Avaliação gratuita", "免费试用": "Avaliação gratuita",

View File

@ -486,7 +486,6 @@
"图标2": "Значок 2", "图标2": "Значок 2",
"刷新": "Обновить", "刷新": "Обновить",
"读取剪贴板": "Прочитать буфер обмена", "读取剪贴板": "Прочитать буфер обмена",
"进行一次OCR": "Выполнить OCR",
"有道OCR": "Путь OCR", "有道OCR": "Путь OCR",
"免费试用": "Бесплатная пробная версия", "免费试用": "Бесплатная пробная версия",
"通用文字识别 API": "Универсальное распознавание текста API", "通用文字识别 API": "Универсальное распознавание текста API",

View File

@ -485,7 +485,6 @@
"单次负载个数": "Antal enskilda laster", "单次负载个数": "Antal enskilda laster",
"过滤英文字母": "Filtrera engelska bokstäver", "过滤英文字母": "Filtrera engelska bokstäver",
"过滤包含乱码的文本行": "Filtrera textrader som innehåller förvrängda tecken", "过滤包含乱码的文本行": "Filtrera textrader som innehåller förvrängda tecken",
"进行一次OCR": "Utför OCR en gång",
"选取OCR范围——立即": "Välj OCR-område - omedelbart", "选取OCR范围——立即": "Välj OCR-område - omedelbart",
"有道OCR": "Youdao OCR", "有道OCR": "Youdao OCR",
"免费试用": "Gratis provperiod", "免费试用": "Gratis provperiod",

View File

@ -485,7 +485,6 @@
"单次负载个数": "จำนวนชิ้นโหลดเดียว", "单次负载个数": "จำนวนชิ้นโหลดเดียว",
"过滤英文字母": "กรองตัวอักษรภาษาอังกฤษ", "过滤英文字母": "กรองตัวอักษรภาษาอังกฤษ",
"过滤包含乱码的文本行": "กรองบรรทัดข้อความที่มีรหัสยุ่งเหยิง", "过滤包含乱码的文本行": "กรองบรรทัดข้อความที่มีรหัสยุ่งเหยิง",
"进行一次OCR": "ทำ OCR หนึ่งครั้ง",
"选取OCR范围——立即": "เลือกช่วง OCR - ตอนนี้", "选取OCR范围——立即": "เลือกช่วง OCR - ตอนนี้",
"有道OCR": "เส้นทาง OCR", "有道OCR": "เส้นทาง OCR",
"免费试用": "ทดลองใช้ฟรี", "免费试用": "ทดลองใช้ฟรี",

View File

@ -486,7 +486,6 @@
"图标2": "İşaretçi 2", "图标2": "İşaretçi 2",
"刷新": "Tazele", "刷新": "Tazele",
"读取剪贴板": "Pano Oku", "读取剪贴板": "Pano Oku",
"进行一次OCR": "OCR yap",
"有道OCR": "Youdao OCR", "有道OCR": "Youdao OCR",
"免费试用": "Özgür dava", "免费试用": "Özgür dava",
"通用文字识别 API": "Universal Text Recognition API", "通用文字识别 API": "Universal Text Recognition API",

View File

@ -486,7 +486,6 @@
"图标2": "Піктограма 2", "图标2": "Піктограма 2",
"刷新": "Оновити", "刷新": "Оновити",
"读取剪贴板": "Читати буфер обміну даними", "读取剪贴板": "Читати буфер обміну даними",
"进行一次OCR": "Виконати OCR",
"有道OCR": "Youdao OCR", "有道OCR": "Youdao OCR",
"免费试用": "Безкоштовне випробування", "免费试用": "Безкоштовне випробування",
"通用文字识别 API": "Універсальний програмний інтерфейс розпізнавання тексту", "通用文字识别 API": "Універсальний програмний інтерфейс розпізнавання тексту",

View File

@ -486,7 +486,6 @@
"图标2": "Biểu tượng 2", "图标2": "Biểu tượng 2",
"刷新": "Làm mới", "刷新": "Làm mới",
"读取剪贴板": "Đọc bảng nháp", "读取剪贴板": "Đọc bảng nháp",
"进行一次OCR": "Thực hiện OCR",
"有道OCR": "Có OCR", "有道OCR": "Có OCR",
"免费试用": "Dùng thử miễn phí", "免费试用": "Dùng thử miễn phí",
"通用文字识别 API": "API nhận dạng văn bản chung", "通用文字识别 API": "API nhận dạng văn bản chung",

View File

@ -485,7 +485,6 @@
"单次负载个数": "", "单次负载个数": "",
"过滤英文字母": "", "过滤英文字母": "",
"过滤包含乱码的文本行": "", "过滤包含乱码的文本行": "",
"进行一次OCR": "",
"选取OCR范围——立即": "", "选取OCR范围——立即": "",
"有道OCR": "", "有道OCR": "",
"免费试用": "", "免费试用": "",

View File

@ -58,16 +58,13 @@
点击按钮弹出选择游戏文本窗口来选择要翻译哪条HOOK到的文本。<br> 点击按钮弹出选择游戏文本窗口来选择要翻译哪条HOOK到的文本。<br>
不过,选择文本窗口在选择进程后会自动弹出,这个按钮实际上是用来更换选择的文本,或修改一些设置用的。 不过,选择文本窗口在选择进程后会自动弹出,这个按钮实际上是用来更换选择的文本,或修改一些设置用的。
1. #### <i class="fa fa-crop"></i> <i class="fa fa-icon fa-rotate-right"></i> 选取OCR范围 1. #### <i class="fa fa-crop"></i> <i class="fa fa-icon fa-rotate-right"></i> 选取OCR范围
**该按钮仅在OCR模式下可用**<br> **OCR模式下**选取OCR区域或者更换OCR区域或者当激活`OCR设置`->`其他`->`多重区域模式`时增加新的OCR区域
OCR模式先选取OCR区域或者更换OCR区域或者当激活`OCR设置`->`其他`->`多重区域模式`时增加新的OCR区域 **非OCR模式下**,合并了原`进行一次OCR`按钮的功能先进行OCR范围选择然后进行一次OCR然后进行翻译流程。一般用于在HOOK模式下遇到选择支时临时使用一次OCR进行翻译选择支。或者在OCR模式下临时去识别一次其他偶尔出现的新的位置。
1. #### <i class="fa fa-square"></i> <i class="fa fa-icon fa-rotate-right"></i> 显示/隐藏范围框 1. #### <i class="fa fa-square"></i> <i class="fa fa-icon fa-rotate-right"></i> 显示/隐藏范围框
**该按钮仅在OCR模式下可用**<br> **该按钮仅在OCR模式下可用**<br>
当未选择任何OCR范围时使用该按钮显示OCR范围会自动设置OCR范围为上一次选择的OCR。 当未选择任何OCR范围时使用该按钮显示OCR范围会自动设置OCR范围为上一次选择的OCR。
1. #### <i class="fa fa-crop"></i> <i class="fa fa-icon fa-rotate-right"></i> 进行一次OCR
该按钮和`读取剪贴板`类似不管当前的默认文本输入源是什么都会先进行OCR范围选择然后进行一次OCR然后进行翻译流程。<br>
该按钮一般用于在HOOK模式下遇到选择支时临时使用一次OCR进行翻译选择支。或者在OCR模式下临时去识别一次其他偶尔出现的新的位置。<br>
1. #### <i class="fa fa-spinner"></i> <i class="fa fa-icon fa-rotate-right"></i> 再次进行OCR 1. #### <i class="fa fa-spinner"></i> <i class="fa fa-icon fa-rotate-right"></i> 再次进行OCR
当使用过一次`进行一次OCR`后使用这个按钮可以在原来的位置上再次进行一次OCR而无需重新选择识别区域。 **非OCR模式下**,当使用过一次`选取OCR范围`后使用这个按钮可以在原来的位置上再次进行一次OCR而无需重新选择识别区域。
1. #### <i class="fa fa-book"></i> <i class="fa fa-icon fa-rotate-right"></i> 专有名词翻译_直接替换 1. #### <i class="fa fa-book"></i> <i class="fa fa-icon fa-rotate-right"></i> 专有名词翻译_直接替换
1. #### <i class="fa fa-book"></i> <i class="fa fa-icon fa-rotate-right"></i> 专有名词翻译_sakura_gpt_词典 1. #### <i class="fa fa-book"></i> <i class="fa fa-icon fa-rotate-right"></i> 专有名词翻译_sakura_gpt_词典