From 6e8ef2bd0dcd13196baa3d840725019c4ebdc42f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=81=8D=E5=85=AE=E6=83=9A=E5=85=AE?= <1173718158@qq.com> Date: Wed, 4 Dec 2024 17:03:33 +0800 Subject: [PATCH] . --- cpp/version.cmake | 4 +- py/LunaTranslator/gui/inputdialog.py | 42 +++--- .../gui/setting_display_buttons.py | 2 +- py/LunaTranslator/gui/setting_translate.py | 57 +------- py/LunaTranslator/gui/usefulwidget.py | 47 +++++++ py/LunaTranslator/myutils/config.py | 6 +- py/LunaTranslator/myutils/utils.py | 3 +- py/LunaTranslator/translator/baidu_dev.py | 31 ----- py/LunaTranslator/translator/bing_dev.py | 16 --- py/LunaTranslator/translator/cdp_chatgpt.py | 62 +++++++++ .../{basetranslator_dev.py => cdp_helper.py} | 109 +++++++++++++-- py/LunaTranslator/translator/deepl.py | 83 +++++++++++- py/LunaTranslator/translator/deepl_dev.py | 66 --------- py/LunaTranslator/translator/dev_ali.py | 14 -- py/LunaTranslator/translator/dev_caiyun.py | 28 ---- py/LunaTranslator/translator/dev_chatgpt.py | 10 -- .../translator/dev_chatgpt_mirror.py | 30 ----- .../translator/dev_llm_common.py | 78 ----------- py/LunaTranslator/translator/dev_niutrans.py | 15 --- py/LunaTranslator/translator/dev_sogou.py | 28 ---- py/LunaTranslator/translator/dev_yandex.py | 16 --- py/LunaTranslator/translator/dev_youdao.py | 18 --- py/LunaTranslator/translator/google_dev.py | 28 ---- py/files/defaultconfig/config.json | 77 +---------- py/files/defaultconfig/translatorsetting.json | 126 +++++++++++++++++- py/files/lang/ar.json | 17 --- py/files/lang/cht.json | 17 --- py/files/lang/cs.json | 17 --- py/files/lang/de.json | 17 --- py/files/lang/en.json | 17 --- py/files/lang/es.json | 17 --- py/files/lang/fr.json | 17 --- py/files/lang/it.json | 17 --- py/files/lang/ja.json | 17 --- py/files/lang/ko.json | 17 --- py/files/lang/nl.json | 17 --- py/files/lang/pl.json | 17 --- py/files/lang/pt.json | 17 --- py/files/lang/ru.json | 17 --- py/files/lang/sv.json | 17 --- py/files/lang/th.json | 17 --- py/files/lang/tr.json | 17 --- py/files/lang/uk.json | 17 --- py/files/lang/vi.json | 17 --- py/files/lang/zh.json | 17 --- 45 files changed, 449 insertions(+), 887 deletions(-) delete mode 100644 py/LunaTranslator/translator/baidu_dev.py delete mode 100644 py/LunaTranslator/translator/bing_dev.py create mode 100644 py/LunaTranslator/translator/cdp_chatgpt.py rename py/LunaTranslator/translator/{basetranslator_dev.py => cdp_helper.py} (72%) delete mode 100644 py/LunaTranslator/translator/deepl_dev.py delete mode 100644 py/LunaTranslator/translator/dev_ali.py delete mode 100644 py/LunaTranslator/translator/dev_caiyun.py delete mode 100644 py/LunaTranslator/translator/dev_chatgpt.py delete mode 100644 py/LunaTranslator/translator/dev_chatgpt_mirror.py delete mode 100644 py/LunaTranslator/translator/dev_llm_common.py delete mode 100644 py/LunaTranslator/translator/dev_niutrans.py delete mode 100644 py/LunaTranslator/translator/dev_sogou.py delete mode 100644 py/LunaTranslator/translator/dev_yandex.py delete mode 100644 py/LunaTranslator/translator/dev_youdao.py delete mode 100644 py/LunaTranslator/translator/google_dev.py diff --git a/cpp/version.cmake b/cpp/version.cmake index 30ea2dda..d4e547ef 100644 --- a/cpp/version.cmake +++ b/cpp/version.cmake @@ -1,7 +1,7 @@ set(VERSION_MAJOR 6) -set(VERSION_MINOR 9) -set(VERSION_PATCH 7) +set(VERSION_MINOR 10) +set(VERSION_PATCH 0) set(VERSION_REVISION 0) set(LUNA_VERSION "{${VERSION_MAJOR},${VERSION_MINOR},${VERSION_PATCH},${VERSION_REVISION}}") add_library(VERSION_DEF ${CMAKE_CURRENT_LIST_DIR}/version_def.cpp) diff --git a/py/LunaTranslator/gui/inputdialog.py b/py/LunaTranslator/gui/inputdialog.py index 18211be5..0930de70 100644 --- a/py/LunaTranslator/gui/inputdialog.py +++ b/py/LunaTranslator/gui/inputdialog.py @@ -19,6 +19,7 @@ from gui.usefulwidget import ( getspinbox, SplitLine, getIconButton, + VisLFormLayout, ) from gui.dynalang import ( LFormLayout, @@ -464,7 +465,7 @@ class autoinitdialog__(LDialog): print_exc() self.show() return - formLayout = LFormLayout() + formLayout = VisLFormLayout() self.setLayout(formLayout) regist = {} @@ -596,6 +597,9 @@ class autoinitdialog__(LDialog): ) ) lineW.addWidget(combo) + _w = QWidget() + _w.setLayout(lineW) + lineW = _w elif line["type"] == "okcancel": lineW = QDialogButtonBox( QDialogButtonBox.StandardButton.Ok @@ -631,7 +635,9 @@ class autoinitdialog__(LDialog): ) regist[key] = functools.partial(__temp.__getitem__, "k") - + _ = QWidget() + _.setLayout(lineW) + lineW = _ elif line["type"] == "switch": lineW = MySwitch(sign=dd[key]) regist[key] = lineW.isChecked @@ -639,7 +645,9 @@ class autoinitdialog__(LDialog): _.addStretch() _.addWidget(lineW) _.addStretch() - lineW = _ + _w = QWidget() + _w.setLayout(_) + lineW = _w elif line["type"] in ["spin", "intspin"]: __temp = {"k": dd[key]} @@ -654,13 +662,6 @@ class autoinitdialog__(LDialog): regist[key] = lineW.value elif line["type"] == "split": lineW = SplitLine() - formLayout.addRow(lineW) - continue - refcombo = line.get("refcombo") - if refcombo: - if refcombo not in cachehasref: - cachehasref[refcombo] = [] - cachehasref[refcombo].append((lineW, line)) refswitch = line.get("refswitch", None) if refswitch: @@ -675,12 +676,19 @@ class autoinitdialog__(LDialog): lineW.setEnabled(dd[key]) hbox.addWidget(switch) hbox.addWidget(lineW) - lineW = hbox - if "name" in line: - formLayout.addRow(line["name"], lineW) - else: + _ = QWidget() + _.setLayout(hbox) + lineW = _ + if ("name" not in line) or (line["type"] == "split"): formLayout.addRow(lineW) + else: + formLayout.addRow(line["name"], lineW) + refcombo = line.get("refcombo") + if refcombo: + if refcombo not in cachehasref: + cachehasref[refcombo] = [] + cachehasref[refcombo].append((lineW, line)) for comboname, refitems in cachehasref.items(): def refcombofunction(refitems, _i): @@ -692,10 +700,7 @@ class autoinitdialog__(LDialog): vis = linwinfo.get("refcombo_i_r") != _i elif linwinfo.get("refcombo_l") is not None: vis = _i in linwinfo.get("refcombo_l") - w.setVisible(vis) - formLayout.itemAt(formLayout.indexOf(w) - 1).widget().setVisible( - vis - ) + formLayout.setRowVisible(w, vis) cachecombo[comboname].currentIndexChanged.connect( functools.partial(refcombofunction, refitems) @@ -703,6 +708,7 @@ class autoinitdialog__(LDialog): cachecombo[comboname].currentIndexChanged.emit( cachecombo[comboname].currentIndex() ) + self.show() diff --git a/py/LunaTranslator/gui/setting_display_buttons.py b/py/LunaTranslator/gui/setting_display_buttons.py index 57e771eb..b0f07cee 100644 --- a/py/LunaTranslator/gui/setting_display_buttons.py +++ b/py/LunaTranslator/gui/setting_display_buttons.py @@ -82,7 +82,7 @@ def changerank(item, up, sortlist, savelist, savelay): def createbuttonwidget(self, lay): # return table - grids = [["显示", "", "", "对齐", "", "图标", "", "图标2", "", "说明"]] + grids = [["显示", "", "", "对齐", "", "图标", "", "图标_2", "", "说明"]] sortlist = globalconfig["toolbutton"]["rank2"] savelist = [] savelay = [] diff --git a/py/LunaTranslator/gui/setting_translate.py b/py/LunaTranslator/gui/setting_translate.py index 9ed3f926..0b41f4b6 100644 --- a/py/LunaTranslator/gui/setting_translate.py +++ b/py/LunaTranslator/gui/setting_translate.py @@ -63,8 +63,6 @@ def loadvisinternal(btnplus, copy): is_gpt_likes, not_is_gpt_like = splitapillm(shoufei) elif btnplus == "offline": is_gpt_likes, not_is_gpt_like = splitapillm(lixians) - elif btnplus == "dev": - is_gpt_likes, not_is_gpt_like = splitapillm(develop) for _ in is_gpt_likes: if copy: @@ -332,12 +330,6 @@ def createmanybtn(self, countnum, btnplus): dynamiclink("{docs_server}/#/zh/guochandamoxing") ) ) - elif btnplus == "dev": - btn.clicked.connect( - lambda: gobject.baseobject.openlink( - dynamiclink("{docs_server}/#/zh/tiaoshiliulanqi") - ) - ) hbox.addWidget(btn) setattr(self, "btnmany" + btnplus, w) return w @@ -442,18 +434,6 @@ def initsome2(self, l, label=None, btnplus=None): return grids -def statuslabelsettext(self, text): - try: - self.statuslabel.setText(text) - except: - pass - - -def createstatuslabel(self): - - self.statuslabel = LLabel() - return self.statuslabel - def createbtnexport(self): @@ -543,56 +523,21 @@ def setTabTwo_lazy(self, basel: QVBoxLayout): {"type": "okcancel"}, ] - developgrid = [ - [ - ( - dict( - title="Chromium_设置", - type="grid", - grid=( - [ - "路径", - D_getIconButton( - callback=functools.partial( - autoinitdialog, - self, - globalconfig, - "Chromium_路径", - 800, - _items, - ), - icon="fa.gear", - ), - "", - "端口号", - D_getspinbox(0, 65535, globalconfig, "debugport"), - "", - ], - [(functools.partial(createstatuslabel, self), 0)], - ), - ), - 0, - "group", - ) - ], - ] lixians, pre, mianfei, develop, shoufei = splittranslatortypes() offlinegrid = initsome2(self, lixians, btnplus="offline") onlinegrid = initsome11(self, mianfei) - developgrid += initsome2(self, develop, btnplus="dev") online_reg_grid += initsome2(self, shoufei, btnplus="api") pretransgrid += initsome11(self, pre) gridlayoutwidget, do = makegrid(grids, delay=True) basel.addWidget(gridlayoutwidget) tab, dotab = makesubtab_lazy( - ["在线翻译", "注册在线翻译", "离线翻译", "调试浏览器", "预翻译"], + ["在线翻译", "注册在线翻译", "离线翻译", "预翻译"], [ functools.partial(makescrollgrid, onlinegrid), functools.partial(makescrollgrid, online_reg_grid), functools.partial(makescrollgrid, offlinegrid), - functools.partial(makescrollgrid, developgrid), functools.partial(makescrollgrid, pretransgrid), ], delay=True, diff --git a/py/LunaTranslator/gui/usefulwidget.py b/py/LunaTranslator/gui/usefulwidget.py index df1df1f9..c3ce2a18 100644 --- a/py/LunaTranslator/gui/usefulwidget.py +++ b/py/LunaTranslator/gui/usefulwidget.py @@ -2493,3 +2493,50 @@ class LRButton(LPushButton): if ev.button() == Qt.MouseButton.RightButton: self.rightclick.emit() return super().mouseReleaseEvent(ev) + + +class VisLFormLayout(LFormLayout): + # 简易实现 + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._row_widgets = {} + self._reverse = {} + self._row_vis = {} + + def addRow(self, label_or_field, field=None): + row_index = self.rowCount() + if field is None: + super().addRow(label_or_field) + field = label_or_field + label_or_field = None + else: + super().addRow(label_or_field, field) + self._row_widgets[row_index] = (label_or_field, field) + self._row_vis[row_index] = True + self._reverse[field] = row_index + return row_index + + def setRowVisible(self, row_index, visible): + if isinstance(row_index, int): + pass + elif isinstance(row_index, QWidget): + row_index = self._reverse[row_index] + if self._row_vis[row_index] == visible: + return + insert_position = sum(1 for i in range(row_index) if self._row_vis[i]) + if visible: + label, field = self._row_widgets[row_index] + if label is not None: + super().insertRow(insert_position, label, field) + else: + super().insertRow(insert_position, field) + if not field.isVisible(): + field.setVisible(True) + else: + tres = self.takeRow(insert_position) + label = tres.labelItem + if label is not None: + self.removeItem(label) + label.widget().deleteLater() + tres.fieldItem.widget().hide() + self._row_vis[row_index] = visible diff --git a/py/LunaTranslator/myutils/config.py b/py/LunaTranslator/myutils/config.py index c78d5015..a8ec8a16 100644 --- a/py/LunaTranslator/myutils/config.py +++ b/py/LunaTranslator/myutils/config.py @@ -586,14 +586,14 @@ def loadlanguage(): def _TR(k: str): if not k: return "" - if isascii(k): - return k - loadlanguage() if "_" in k: splits = k.split("_") return " ".join([_TR(_) for _ in splits]) if k.startswith("(") and k.endswith(")"): return "(" + _TR(k[1:-1]) + ")" + if isascii(k): + return k + loadlanguage() __ = languageshow.get(k) if __: return __ diff --git a/py/LunaTranslator/myutils/utils.py b/py/LunaTranslator/myutils/utils.py index 748d82d6..31f41905 100644 --- a/py/LunaTranslator/myutils/utils.py +++ b/py/LunaTranslator/myutils/utils.py @@ -359,7 +359,7 @@ def splittranslatortypes(): pre, offline, free, dev, api = [], [], [], [], [] for k in globalconfig["fanyi"]: try: - {"pre": pre, "offline": offline, "free": free, "dev": dev, "api": api}[ + {"pre": pre, "offline": offline, "free": free, "api": api}[ globalconfig["fanyi"][k].get("type", "free") ].append(k) except: @@ -1041,7 +1041,6 @@ def getannotatedapiname(x): + { "free": "在线翻译", "api": "注册在线翻译", - "dev": "调试浏览器", "pre": "预翻译", "offline": "离线翻译", }.get(tp, "unknown type") diff --git a/py/LunaTranslator/translator/baidu_dev.py b/py/LunaTranslator/translator/baidu_dev.py deleted file mode 100644 index 0b2c4f1e..00000000 --- a/py/LunaTranslator/translator/baidu_dev.py +++ /dev/null @@ -1,31 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://fanyi.baidu.com/mtpe-individual/multimodal" - - def langmap(self): - return { - "es": "spa", - "ko": "kor", - "fr": "fra", - "ja": "jp", - "cht": "cht", - "vi": "vie", - "uk": "ukr", - "ar": "ara", - "sv": "swe", - "la": "lat", - } - - def translate(self, content): - self.Runtime_evaluate( - """document.querySelector("#editor-text > div.AZLVLJHb > div.Ssl84aLh > span").click()""" - ) - self.Runtime_evaluate( - """document.querySelector("#editor-text > div.AZLVLJHb > div.Ssl84aLh > div.NNh5PamB.GEptIbSX > div > div").click()""" - ) - self.send_keys(content) - return self.wait_for_result( - """document.querySelector("#trans-selection").innerText""" - ) diff --git a/py/LunaTranslator/translator/bing_dev.py b/py/LunaTranslator/translator/bing_dev.py deleted file mode 100644 index 506645b6..00000000 --- a/py/LunaTranslator/translator/bing_dev.py +++ /dev/null @@ -1,16 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://www.bing.com/translator/" - - def check_url_is_translator_url(self, url): - return ".bing.com/translator/" in url - - def translate(self, content): - self.Runtime_evaluate('document.getElementById("tta_clear").click();') - self.Runtime_evaluate('document.querySelector("#tta_input_ta").click();') - self.send_keys(content) - return self.wait_for_result( - "document.getElementById('tta_output_ta').value", " ..." - ) diff --git a/py/LunaTranslator/translator/cdp_chatgpt.py b/py/LunaTranslator/translator/cdp_chatgpt.py new file mode 100644 index 00000000..2e3ab2df --- /dev/null +++ b/py/LunaTranslator/translator/cdp_chatgpt.py @@ -0,0 +1,62 @@ +from translator.basetranslator import basetrans +from translator.cdp_helper import cdp_helperllm +from myutils.utils import createenglishlangmap + +class chatgpt(cdp_helperllm): + target_url = "https://chatgpt.com/" + jsfile = "commonhookfetchstream.js" + function1 = 'url.includes("conversation")' + function2 = r"""thistext += typeof(chunk.v)=='string'?chunk.v:(chunk.v[0]?(chunk.v[0].o=='append'?chunk.v[0].v:''):'')""" + textarea_selector = "#prompt-textarea" + button_selector = 'button[data-testid="send-button"]' + + +class chatgpt_mirror(cdp_helperllm): + + @property + def target_url(self): + return self.config["target_url"] + + @property + def jsfile(self): + return ["commonhookfetchstream.js", "commonhookxhrstream"][ + self.config["request_method"] + ] + + @property + def function1(self): + return self.config["checkneturlfunction"] + + @property + def function2(self): + return self.config["extracttextfunction"] + + @property + def button_selector(self): + return self.config["button_selector"] + + @property + def textarea_selector(self): + return self.config["textarea_selector"] + + +class TS(basetrans): + + def langmap(self): + return createenglishlangmap() + + def inittranslator(self): + self.devtool = None + self.checkinterface() + + def checkinterface(self): + if (self.config["usewhich"] == 0) and (not isinstance(self.devtool, chatgpt)): + self.devtool = chatgpt(self) + elif (self.config["usewhich"] == 1) and ( + not isinstance(self.devtool, chatgpt_mirror) + ): + self.devtool = chatgpt_mirror(self) + + def translate(self, content): + self.checkinterface() + return self.devtool.translate(content) diff --git a/py/LunaTranslator/translator/basetranslator_dev.py b/py/LunaTranslator/translator/cdp_helper.py similarity index 72% rename from py/LunaTranslator/translator/basetranslator_dev.py rename to py/LunaTranslator/translator/cdp_helper.py index 2cb9d6c2..461796c3 100644 --- a/py/LunaTranslator/translator/basetranslator_dev.py +++ b/py/LunaTranslator/translator/cdp_helper.py @@ -5,7 +5,6 @@ from myutils.wrapper import threader from myutils.utils import checkportavailable from myutils.subproc import subproc_w import websocket, time, queue, os -from gui.setting_translate import statuslabelsettext class Commonloadchromium: @@ -32,18 +31,18 @@ class Commonloadchromium: port = globalconfig["debugport"] _path = self.getpath() if not _path: - statuslabelsettext(self, "No Chromium Found") + print("No Chromium Found") return try: requests.get("http://127.0.0.1:{}/json/list".format(port)).json() - statuslabelsettext(self, "连接成功") + print("连接成功") except: if checkportavailable(port): - statuslabelsettext(self, "连接失败") + print("连接失败") call = self.gencmd(_path, port) self.engine = subproc_w(call) else: - statuslabelsettext(self, "端口冲突") + print("端口冲突") def gencmd(self, path, port): hash_ = hashlib.md5(path.encode("utf8")).hexdigest() @@ -63,11 +62,14 @@ class Commonloadchromium: return None -class basetransdev(basetrans): +class cdp_helper: target_url = None - commonloadchromium = Commonloadchromium() - def check_url_is_translator_url(self, url): + @property + def using(self): + return True + + def check_url_is_translator_url(self, url: str): return url.startswith(self.target_url) def Page_navigate(self, url): @@ -95,12 +97,11 @@ class basetransdev(basetrans): time.sleep(0.1) ######################################### - def _private_init(self): - self.commonloadchromium.maybeload() + def __init__(self): + cdp_helper.commonloadchromium.maybeload() self._id = 1 self.sendrecvlock = threading.Lock() self._createtarget() - super()._private_init() def _SendRequest(self, method, params, ws=None): if self.using == False: @@ -116,7 +117,7 @@ class basetransdev(basetrans): ) res = ws.recv() except requests.RequestException: - self.commonloadchromium.maybeload() + cdp_helper.commonloadchromium.maybeload() raise Exception(_TR("连接失败")) res = json.loads(res) @@ -243,3 +244,87 @@ class basetransdev(basetrans): # self._SendRequest('Input.dispatchKeyEvent', {'type': 'keyUp', 'modifiers': 0, 'timestamp': 0, 'text': '', 'unmodifiedText': '', 'keyIdentifier': '', 'code': f'Key{char.upper()}', 'key': char, 'windowsVirtualKeyCode': code, 'nativeVirtualKeyCode': code, 'autoRepeat': False, 'isKeypad': False, 'isSystemKey': False, 'location': 0}) # self._SendRequest("Input.setIgnoreInputEvents", {"ignore": True}) + + commonloadchromium = Commonloadchromium() + + +class cdp_helperllm(cdp_helper): + jsfile = ... + textarea_selector = ... + button_selector = ... + function1 = ... + function2 = ... + + def __init__(self, ref: basetrans) -> None: + self.ref = ref + super().__init__() + + @property + def config(self): + return self.ref.config + + @property + def using(self): + return self.ref.using + + def injectjs(self): + with open( + os.path.join(os.path.dirname(__file__), self.jsfile), + "r", + encoding="utf8", + ) as ff: + js = ff.read() % ( + self.function1, + self.function2, + ) + self.Runtime_evaluate(js) + + def translate(self, content): + self.injectjs() + prompt = self.ref._gptlike_createsys("use_custom_prompt", "custom_prompt") + content = prompt + content + self.Runtime_evaluate( + "document.querySelector(`{}`).foucs()".format(repr(self.textarea_selector)) + ) + self.clear_input() + self.send_keys(content) + # chatgpt网站没有焦点时,用这个也可以。 + self.Runtime_evaluate( + 'textarea=document.querySelector({});textarea.value="";event = new Event("input", {{bubbles: true, cancelable: true }});textarea.dispatchEvent(event);textarea.value=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }});textarea.dispatchEvent(event);'.format( + repr(self.textarea_selector), content + ) + ) + + try: + # 月之暗面 + while self.Runtime_evaluate( + "document.querySelector({}).disabled".format(repr(self.button_selector)) + )["result"]["value"]: + time.sleep(0.1) + except: + pass + self.Runtime_evaluate( + "document.querySelector({}).click()".format(repr(self.button_selector)) + ) + if self.ref.config["usingstream"]: + __ = [""] + + def ___(__): + time.sleep(0.1) + thistext = self.Runtime_evaluate("thistext")["result"]["value"] + + if thistext.startswith(__[0]): + yield thistext[len(__[0]) :] + else: + yield "\0" + yield thistext + __[0] = thistext + + while not self.Runtime_evaluate("hasdone")["result"]["value"]: + yield from ___(__) + yield from ___(__) + else: + while not self.Runtime_evaluate("hasdone")["result"]["value"]: + time.sleep(0.1) + continue + yield self.Runtime_evaluate("thistext")["result"]["value"] diff --git a/py/LunaTranslator/translator/deepl.py b/py/LunaTranslator/translator/deepl.py index 901c0f4f..02d9870c 100644 --- a/py/LunaTranslator/translator/deepl.py +++ b/py/LunaTranslator/translator/deepl.py @@ -1,7 +1,8 @@ -from myutils.config import static_data from translator.basetranslator import basetrans +from translator.cdp_helper import cdp_helper import random import time, json +from urllib.parse import quote def getRandomNumber(): @@ -54,7 +55,83 @@ def initDeepLXData(sourceLang: str, targetLang: str): ) +class cdp_deepl(cdp_helper): + target_url = "https://www.deepl.com/en/translator" + + def __init__(self, ref: basetrans) -> None: + self.ref = ref + super().__init__() + + @property + def using(self): + return self.ref.using and self.ref.config["usewhich"] == 2 + + @property + def srclang(self): + if self.ref.srclang_1 == "cht": + return "zh" + return self.ref.srclang_1 + + @property + def tgtlang(self): + if self.ref.tgtlang_1 == "cht": + return "zh-hant" + return self.ref.tgtlang_1 + + def translate(self, content): + if self.srclang == "auto": + self.Runtime_evaluate( + 'document.querySelector("#translator-source-clear-button").click()' + ) + self.Runtime_evaluate( + "document.getElementsByTagName('d-textarea')[0].focus()" + ) + self.send_keys(content) + result = self.wait_for_result( + 'document.getElementsByTagName("d-textarea")[1].textContent', + ("complete", ""), + multi=True, + ) + while True: + href: str = self.wait_for_result("window.location.href") + try: + src, tgt = href.split("#")[1].split("/")[:2] + break + except: + time.sleep(0.1) + if tgt != self.tgtlang: + self.Page_navigate( + "https://www.deepl.com/en/translator#{}/{}/{}".format( + src, self.tgtlang, quote(content) + ) + ) + return self.wait_for_result( + 'document.getElementsByTagName("d-textarea")[1].textContent', + ("complete", ""), + multi=True, + ) + else: + return result + + else: + self.Page_navigate( + "https://www.deepl.com/en/translator#{}/{}/{}".format( + self.srclang, self.tgtlang, quote(content) + ) + ) + return self.wait_for_result( + 'document.getElementsByTagName("d-textarea")[1].textContent', + ("complete", ""), + multi=True, + ) + + class TS(basetrans): + def inittranslator(self): + self.devtool = None + if self.config["usewhich"] == 2: + self.devtool = cdp_deepl(self) + @property def srclang(self): if self.srclang_1 == "cht": @@ -73,6 +150,10 @@ class TS(basetrans): elif self.config["usewhich"] == 1: return self.translate_via_deeplx(translateText) + elif self.config["usewhich"] == 2: + if not self.devtool: + self.devtool = cdp_deepl(self) + return self.devtool.translate(translateText) def translate_via_deeplx(self, query): self.checkempty(["api"]) diff --git a/py/LunaTranslator/translator/deepl_dev.py b/py/LunaTranslator/translator/deepl_dev.py deleted file mode 100644 index 95f2246b..00000000 --- a/py/LunaTranslator/translator/deepl_dev.py +++ /dev/null @@ -1,66 +0,0 @@ -from urllib.parse import quote -import time -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://www.deepl.com/en/translator" - - @property - def srclang(self): - if self.srclang_1 == "cht": - return "zh" - return self.srclang_1 - - @property - def tgtlang(self): - if self.tgtlang_1 == "cht": - return "zh-hant" - return self.tgtlang_1 - - def translate(self, content): - if self.srclang == "auto": - self.Runtime_evaluate( - 'document.querySelector("#translator-source-clear-button").click()' - ) - self.Runtime_evaluate( - "document.getElementsByTagName('d-textarea')[0].focus()" - ) - self.send_keys(content) - result = self.wait_for_result( - 'document.getElementsByTagName("d-textarea")[1].textContent', - ("complete", ""), - multi=True, - ) - while True: - href: str = self.wait_for_result("window.location.href") - try: - src, tgt = href.split("#")[1].split("/")[:2] - break - except: - time.sleep(0.1) - if tgt != self.tgtlang: - self.Page_navigate( - "https://www.deepl.com/en/translator#{}/{}/{}".format( - src, self.tgtlang, quote(content) - ) - ) - return self.wait_for_result( - 'document.getElementsByTagName("d-textarea")[1].textContent', - ("complete", ""), - multi=True, - ) - else: - return result - - else: - self.Page_navigate( - "https://www.deepl.com/en/translator#{}/{}/{}".format( - self.srclang, self.tgtlang, quote(content) - ) - ) - return self.wait_for_result( - 'document.getElementsByTagName("d-textarea")[1].textContent', - ("complete", ""), - multi=True, - ) diff --git a/py/LunaTranslator/translator/dev_ali.py b/py/LunaTranslator/translator/dev_ali.py deleted file mode 100644 index a9518ac3..00000000 --- a/py/LunaTranslator/translator/dev_ali.py +++ /dev/null @@ -1,14 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://translate.alibaba.com/" - - def translate(self, content): - self.Runtime_evaluate('document.querySelector("#pre").innerText=""') - self.Runtime_evaluate( - 'i=document.querySelector("#source");i.value=``;event = new Event("input", {{bubbles: true, cancelable: true }});i.dispatchEvent(event);i.value=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }});i.dispatchEvent(event);'.format( - content - ) - ) - return self.wait_for_result('document.querySelector("#pre").innerText') diff --git a/py/LunaTranslator/translator/dev_caiyun.py b/py/LunaTranslator/translator/dev_caiyun.py deleted file mode 100644 index 6ba03e1a..00000000 --- a/py/LunaTranslator/translator/dev_caiyun.py +++ /dev/null @@ -1,28 +0,0 @@ -from translator.basetranslator_dev import basetransdev -import time - -class TS(basetransdev): - target_url = "https://fanyi.caiyunapp.com" - - def translate(self, content): - self.Runtime_evaluate( - 'document.querySelector("#app > div > div.fanyi-containers.router > div.scrollable-content > div:nth-child(1) > div.lang-middle > div.choose-box > div.two-column-layout > div:nth-child(1) > div > div.column-choose-langBox > img.closeImg").click()' - ) - self.Runtime_evaluate( - 'i=document.querySelector("#textarea");i.value=``;event = new Event("input", {{bubbles: true, cancelable: true }});i.dispatchEvent(event);i.value=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }});i.dispatchEvent(event);'.format( - content - ) - ) - return self.wait_for_result( - r"""childs=document.querySelector("#texttarget > div").children; -t="" -for(i=0;i span" - if(document.querySelector(x)){ - if(t.length)t+="\n" - t+=document.querySelector(x).innerText -} -} -t -""" - ) diff --git a/py/LunaTranslator/translator/dev_chatgpt.py b/py/LunaTranslator/translator/dev_chatgpt.py deleted file mode 100644 index 633f43e5..00000000 --- a/py/LunaTranslator/translator/dev_chatgpt.py +++ /dev/null @@ -1,10 +0,0 @@ -from translator.dev_llm_common import commonllmdev - - -class TS(commonllmdev): - target_url = "https://chatgpt.com/" - jsfile = "commonhookfetchstream.js" - function1 = 'url.includes("conversation")' - function2 = r"""thistext += typeof(chunk.v)=='string'?chunk.v:(chunk.v[0]?(chunk.v[0].o=='append'?chunk.v[0].v:''):'')""" - textarea_selector = "#prompt-textarea" - button_selector = 'button[data-testid="send-button"]' diff --git a/py/LunaTranslator/translator/dev_chatgpt_mirror.py b/py/LunaTranslator/translator/dev_chatgpt_mirror.py deleted file mode 100644 index d1a5a245..00000000 --- a/py/LunaTranslator/translator/dev_chatgpt_mirror.py +++ /dev/null @@ -1,30 +0,0 @@ -from translator.dev_llm_common import commonllmdev - - -class TS(commonllmdev): - - @property - def target_url(self): - return self.config["target_url"] - - @property - def jsfile(self): - return ["commonhookfetchstream.js", "commonhookxhrstream"][ - self.config["request_method"] - ] - - @property - def function1(self): - return self.config["checkneturlfunction"] - - @property - def function2(self): - return self.config["extracttextfunction"] - - @property - def button_selector(self): - return self.config["button_selector"] - - @property - def textarea_selector(self): - return self.config["textarea_selector"] diff --git a/py/LunaTranslator/translator/dev_llm_common.py b/py/LunaTranslator/translator/dev_llm_common.py deleted file mode 100644 index 975a2c45..00000000 --- a/py/LunaTranslator/translator/dev_llm_common.py +++ /dev/null @@ -1,78 +0,0 @@ -from translator.basetranslator_dev import basetransdev -import time, os -from myutils.utils import createenglishlangmap - - -class commonllmdev(basetransdev): - jsfile = ... - textarea_selector = ... - button_selector = ... - function1 = ... - function2 = ... - - def langmap(self): - return createenglishlangmap() - - def injectjs(self): - with open( - os.path.join(os.path.dirname(__file__), self.jsfile), - "r", - encoding="utf8", - ) as ff: - js = ff.read() % ( - self.function1, - self.function2, - ) - self.Runtime_evaluate(js) - - def dotranslate(self, content): ... - - def translate(self, content): - self.injectjs() - prompt = self._gptlike_createsys("use_custom_prompt", "custom_prompt") - content = prompt + content - self.Runtime_evaluate( - "document.querySelector(`{}`).foucs()".format(repr(self.textarea_selector)) - ) - self.clear_input() - self.send_keys(content) - # chatgpt网站没有焦点时,用这个也可以。 - self.Runtime_evaluate( - 'textarea=document.querySelector({});textarea.value="";event = new Event("input", {{bubbles: true, cancelable: true }});textarea.dispatchEvent(event);textarea.value=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }});textarea.dispatchEvent(event);'.format( - repr(self.textarea_selector), content - ) - ) - - try: - # 月之暗面 - while self.Runtime_evaluate( - "document.querySelector({}).disabled".format(repr(self.button_selector)) - )["result"]["value"]: - time.sleep(0.1) - except: - pass - self.Runtime_evaluate( - "document.querySelector({}).click()".format(repr(self.button_selector)) - ) - if self.config["usingstream"]: - __ = [""] - - def ___(__): - time.sleep(0.1) - thistext = self.Runtime_evaluate("thistext")["result"]["value"] - - if thistext.startswith(__[0]): - yield thistext[len(__[0]) :] - else: - yield "\0" - yield thistext - __[0] = thistext - - while not self.Runtime_evaluate("hasdone")["result"]["value"]: - yield from ___(__) - yield from ___(__) - else: - while not self.Runtime_evaluate("hasdone")["result"]["value"]: - time.sleep(0.1) - continue - yield self.Runtime_evaluate("thistext")["result"]["value"] diff --git a/py/LunaTranslator/translator/dev_niutrans.py b/py/LunaTranslator/translator/dev_niutrans.py deleted file mode 100644 index 415b2426..00000000 --- a/py/LunaTranslator/translator/dev_niutrans.py +++ /dev/null @@ -1,15 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://niutrans.com/trans?type=text" - - def translate(self, content): - self.Runtime_evaluate( - '(a=document.querySelector("#textTrans > div.translation-box > div > div:nth-child(1) > div > i"))?a.click():"";i=document.querySelector("#textarea");i.value=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }});i.dispatchEvent(event);'.format( - content - ) - ) - return self.wait_for_result( - "document.getElementsByClassName('results-container')[0].innerText" - ) diff --git a/py/LunaTranslator/translator/dev_sogou.py b/py/LunaTranslator/translator/dev_sogou.py deleted file mode 100644 index 2eb56017..00000000 --- a/py/LunaTranslator/translator/dev_sogou.py +++ /dev/null @@ -1,28 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://fanyi.sogou.com/" - - def translate(self, content): - if "lastlang" not in dir(self) or self.lastlang != (self.srclang, self.tgtlang): - self.Page_navigate( - "https://fanyi.sogou.com/text?keyword=&transfrom={}&transto={}&model=general".format( - self.srclang, self.tgtlang - ) - ) - self.lastlang = (self.srclang, self.tgtlang) - self.Runtime_evaluate( - r""" -document.querySelector("#J-container > div.translate-pc-main.text-translate > div.content-wrap > div > div.trans-box > div.trans-from > div > span").click() -textarea=document.querySelector("#trans-input"); -event = new Event("input", {{bubbles: true, cancelable: true }}); -textarea.dispatchEvent(event); -textarea=document.querySelector("textarea"); -textarea.value=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }}); -textarea.dispatchEvent(event); - """.format( - content - ) - ) - return self.wait_for_result('document.querySelector("#trans-result").innerText') diff --git a/py/LunaTranslator/translator/dev_yandex.py b/py/LunaTranslator/translator/dev_yandex.py deleted file mode 100644 index 86305cfa..00000000 --- a/py/LunaTranslator/translator/dev_yandex.py +++ /dev/null @@ -1,16 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://translate.yandex.com/" - - def translate(self, content): - self.Runtime_evaluate( - 'document.querySelector("#translation > span").innerText=""' - ) - self.Runtime_evaluate('document.querySelector("#fakeArea").innerText=""') - self.Runtime_evaluate('document.querySelector("#fakeArea").click()') - self.send_keys(content) - return self.wait_for_result( - 'document.querySelector("#translation > span").innerText' - ) diff --git a/py/LunaTranslator/translator/dev_youdao.py b/py/LunaTranslator/translator/dev_youdao.py deleted file mode 100644 index 7c157a97..00000000 --- a/py/LunaTranslator/translator/dev_youdao.py +++ /dev/null @@ -1,18 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - target_url = "https://fanyi.youdao.com/#/TextTranslate" - - def translate(self, content): - self.Runtime_evaluate( - 'document.querySelector("#TextTranslate > div.source > div.text-translate-top-right > a").click()' - ) - self.Runtime_evaluate( - 'i=document.querySelector("#js_fanyi_input");i.innerText=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }});i.dispatchEvent(event);'.format( - content - ) - ) - return self.wait_for_result( - '(o=document.querySelector("#js_fanyi_output_resultOutput"))?o.textContent:""' - ) diff --git a/py/LunaTranslator/translator/google_dev.py b/py/LunaTranslator/translator/google_dev.py deleted file mode 100644 index a86b7f30..00000000 --- a/py/LunaTranslator/translator/google_dev.py +++ /dev/null @@ -1,28 +0,0 @@ -from translator.basetranslator_dev import basetransdev - - -class TS(basetransdev): - def langmap(self): - return {"zh": "zh-CN", "cht": "zh-TW"} - - target_url = "https://translate.google.com/" - - def translate(self, content): - self.Runtime_evaluate( - 'document.querySelector("#yDmH0d > c-wiz > div > div.ToWKne > c-wiz > div.OlSOob > c-wiz > div.ccvoYb > div.AxqVh > div.OPPzxe > c-wiz.sciAJc > div > div.usGWQd > div > div.lRu31").innerText=""' - ) - if "lastlang" not in dir(self) or self.lastlang != (self.srclang, self.tgtlang): - self.Page_navigate( - "https://translate.google.com/?sl={}&tl={}".format( - self.srclang, self.tgtlang - ) - ) - self.lastlang = (self.srclang, self.tgtlang) - self.Runtime_evaluate( - 'textarea=document.querySelector("textarea");textarea.value="";event = new Event("input", {{bubbles: true, cancelable: true }});textarea.dispatchEvent(event);textarea=document.querySelector("textarea");textarea.value=`{}`;event = new Event("input", {{bubbles: true, cancelable: true }});textarea.dispatchEvent(event);'.format( - content - ) - ) - return self.wait_for_result( - 'document.querySelector("#yDmH0d > c-wiz > div > div.ToWKne > c-wiz > div.OlSOob > c-wiz > div.ccvoYb > div.AxqVh > div.OPPzxe > c-wiz.sciAJc > div > div.usGWQd > div > div.lRu31").innerText' - ) diff --git a/py/files/defaultconfig/config.json b/py/files/defaultconfig/config.json index 43aad0e1..4c8dd983 100644 --- a/py/files/defaultconfig/config.json +++ b/py/files/defaultconfig/config.json @@ -1773,83 +1773,16 @@ "deepl": { "use": false, "color": "blue", - "name": "DeepL/DeepLX", + "name": "DeepL", "useproxy": false, "type": "free" }, - "dev_chatgpt": { + "cdp_chatgpt": { "use": false, "color": "blue", - "type": "dev", - "name": "chatgpt", - "is_gpt_like": true - }, - "dev_chatgpt_mirror": { - "use": false, - "color": "blue", - "type": "dev", - "name": "chatgpt mirror", - "is_gpt_like": true - }, - "deepl_dev": { - "use": false, - "color": "blue", - "type": "dev", - "name": "deepl" - }, - "bing_dev": { - "use": false, - "color": "blue", - "type": "dev", - "name": "必应" - }, - "baidu_dev": { - "use": false, - "color": "blue", - "type": "dev", - "name": "百度" - }, - "google_dev": { - "use": false, - "color": "blue", - "type": "dev", - "name": "谷歌" - }, - "dev_youdao": { - "use": false, - "color": "blue", - "type": "dev", - "name": "有道" - }, - "dev_sogou": { - "use": false, - "color": "blue", - "type": "dev", - "name": "搜狗" - }, - "dev_ali": { - "use": false, - "color": "blue", - "type": "dev", - "name": "阿里" - }, - "dev_yandex": { - "use": false, - "color": "blue", - "type": "dev", - "name": "yandex" - }, - "dev_niutrans": { - "use": false, - "color": "blue", - "type": "dev", - "name": "niutrans" - }, - "dev_caiyun": { - "use": false, - "color": "blue", - "type": "dev", - "name": "彩云" + "name": "CDP_ChatGPT", + "useproxy": false, + "type": "free" }, "gemini": { "type": "api", diff --git a/py/files/defaultconfig/translatorsetting.json b/py/files/defaultconfig/translatorsetting.json index 03bb1ec3..00041c5b 100644 --- a/py/files/defaultconfig/translatorsetting.json +++ b/py/files/defaultconfig/translatorsetting.json @@ -23,7 +23,9 @@ "args": { "usewhich": 0, "github": "https://github.com/OwO-Network/DeepLX", - "api": "http://127.0.0.1:1188/translate" + "api": "http://127.0.0.1:1188/translate", + "chromepath": "", + "debugport": 9222 }, "argstype": { "github": { @@ -39,17 +41,137 @@ "refcombo_i": 1, "type": "textlist" }, + "chromepath": { + "name": "Chromium_路径", + "refcombo": "usewhich", + "refcombo_i": 2, + "type": "file", + "dir": false + }, + "debugport": { + "name": "端口号", + "refcombo": "usewhich", + "refcombo_i": 2, + "type": "intspin", + "min": 0, + "max": 1000000, + "step": 1 + }, "usewhich": { "rank": 0, "type": "combo", "name": "类型", "list": [ "DeepL", - "DeepLX" + "DeepLX", + "CDP" ] } } }, + "cdp_chatgpt": { + "args": { + "usewhich": 0, + "chromepath": "", + "debugport": 9222, + "target_url": "https://duckduckgo.com/?t=h_&q=hi&ia=chat", + "request_method": 0, + "checkneturlfunction": "url.includes(\"v1/chat\")", + "extracttextfunction": "thistext += chunk.message?chunk.message:\"\"", + "textarea_selector": "textarea", + "button_selector": "button[type=\"submit\"]", + "S": "", + "S2": "", + "usingstream": true, + "use_custom_prompt": false, + "custom_prompt": "" + }, + "argstype": { + "chromepath": { + "rank": -99, + "name": "Chromium_路径", + "type": "file", + "dir": false + }, + "debugport": { + "rank": -98, + "name": "端口号", + "type": "intspin", + "min": 0, + "max": 1000000, + "step": 1 + }, + "usewhich": { + "rank": -100, + "type": "combo", + "name": "类型", + "list": [ + "chatgpt", + "mirror" + ] + }, + "S2": { + "rank": -11, + "type": "split" + }, + "target_url": { + "refcombo": "usewhich", + "refcombo_i": 1, + "rank": -10 + }, + "S": { + "refcombo": "usewhich", + "refcombo_i": 1, + "rank": 0, + "type": "split" + }, + "textarea_selector": { + "refcombo": "usewhich", + "refcombo_i": 1, + "rank": -6, + "name": "CSS selector for textarea" + }, + "button_selector": { + "refcombo": "usewhich", + "refcombo_i": 1, + "rank": -5, + "name": "CSS selector for button" + }, + "extracttextfunction": { + "refcombo": "usewhich", + "refcombo_i": 1, + "rank": -7, + "name": "Function2 (extract text in stream chunk)" + }, + "checkneturlfunction": { + "refcombo": "usewhich", + "refcombo_i": 1, + "rank": -8, + "name": "Function1 (check if url is backend url)" + }, + "request_method": { + "refcombo": "usewhich", + "refcombo_i": 1, + "rank": -9, + "type": "combo", + "list": [ + "fetch", + "xhr" + ] + }, + "usingstream": { + "rank": 1, + "name": "流式输出", + "type": "switch" + }, + "custom_prompt": { + "rank": 2, + "name": "自定义_promt", + "type": "multiline", + "refswitch": "use_custom_prompt" + } + } + }, "baiduapi": { "args": { "API Key": "", diff --git a/py/files/lang/ar.json b/py/files/lang/ar.json index 8553c88e..64bd1299 100644 --- a/py/files/lang/ar.json +++ b/py/files/lang/ar.json @@ -6,12 +6,10 @@ "添加行": "إضافة صف", "图标": "أيقونات", "首选翻译": "يفضل الترجمة", - "游戏信息": "معلومات اللعبة", "辞书": "القواميس", "转区": "تحويل المنطقة", "端口号": "رقم المنفذ", "鼠标穿透窗口": "الماوس من خلال نافذة", - "显示显示原文按钮": "عرض زر عرض النص الأصلي", "显示设置": "إعدادات العرض", "允许缩放最大化或全屏的窗口": "يسمح تكبير أو ملء الشاشة نافذة", "其他设置": "إعدادات أخرى", @@ -21,7 +19,6 @@ "彩云": "سحابة ملونة", "非管理员": "غير مسؤول", "添加游戏": "إضافة لعبة", - "连接进程": "عملية الاتصال", "选择游戏": "اختيار اللعبة", "百度": "بايدو .", "東北イタコ/东北伊达子": "شمال شرق イコ / شمال شرق عدن", @@ -30,7 +27,6 @@ "游戏时间": "وقت اللعب", "最短翻译字数": "أقصر ترجمة الكلمات", "接受的编码": "رمز مقبول", - "连接成功": "اتصال ناجحة", "窗口置顶": "نافذة السقف", "西里尔": "سيريل", "月読アイ": "مون 読アイ", @@ -54,7 +50,6 @@ "排除复制自翻译器的文本": "استبعاد نسخ النص من المترجم", "请重新下载并关闭杀毒软件后重试": "الرجاء إعادة تحميل وإغلاق برامج مكافحة الفيروسات وحاول مرة أخرى", "民安ともえ": "الأمن العام", - "备忘录按钮": "زر مذكرة", "光标": "المؤشر", "清空": "إفراغ", "的OCR模型": "نموذج التعرف الضوئي على الحروف", @@ -79,7 +74,6 @@ "相对特征地址的偏移": "ويقابل النسبية عنوان مميز", "预翻译": "قبل الترجمة", "过滤数字": "فلتر رقمي", - "显示编辑按钮": "عرض زر تحرير", "灵格斯词典": "قاموس لينغز", "选择文件夹": "اختيار مجلد", "设置Token": "تعيين رمز", @@ -101,7 +95,6 @@ "颜色设置": "إعدادات الألوان", "文字计数": "نص العد", "简体中文": "الصينية المبسطة", - "显示朗读按钮": "عرض زر القراءة", "北欧": "نورد", "显示/隐藏范围框": "إظهار / إخفاء مربع مجموعة", "游戏失去焦点时取消置顶": "إزالة سقف اللعبة عندما يفقد التركيز", @@ -115,13 +108,11 @@ "插值算法": "خوارزمية الاستيفاء", "描边字体": "خط السكتات الدماغية", "分析图像更新+周期执行": "تحليل صورة التحديث + دورة التنفيذ", - "翻译结果修正按钮": "زر تصحيح نتائج الترجمة", "自动翻译": "الترجمة الآلية", "游戏窗口移动时同步移动": "تزامن التحرك عند نافذة اللعبة يتحرك", "灵格斯": "لينغز", "快捷按键": "مفاتيح الاختصار", "名詞": "اسم", - "显示游戏静音按钮": "عرض لعبة زر كتم الصوت", "选择": "مختار", "意大利语": "الايطالية", "退出": "سحب", @@ -225,7 +216,6 @@ "不切换": "لا تبديل", "将汉字转换成繁体/日式汉字": "تحويل الأحرف الصينية إلى الأحرف الصينية التقليدية / اليابانية", "选择文本": "اختيار النص", - "发现": "اكتشف", "连接超时": "اتصال مهلة", "开始搜索": "بدء البحث", "选择进程": "عملية الاختيار", @@ -247,7 +237,6 @@ "获取中": "الحصول على", "J北京7": "ي بكين", "缩放时模拟独占全屏": "محاكاة حصرية كامل الشاشة عند التكبير", - "连接失败": "فشل الاتصال", "查词": "البحث عن الكلمات", "源窗口": "نافذة المصدر", "助詞": "كلمة مساعدة", @@ -312,14 +301,12 @@ "ついなちゃん(関西弁)": "じゃじゃ ( كانساي بنتن )", "代名詞": "ضمير", "形容詞": "صفة", - "调整游戏窗口按钮": "ضبط زر نافذة اللعبة", "语音设置": "إعدادات الصوت", "警告": "حذر", "当前MD5": "MD5 الحالي", "通用": "عام .", "目标语言": "اللغة المستهدفة", "秒": "ثانية .", - "录制翻译文件": "تسجيل ملف الترجمة", "锁定工具栏": "قفل شريط الأدوات", "云译": "سحابة ترجمة", "普通字体": "الخط العادي", @@ -333,7 +320,6 @@ "副詞": "ظرف", "显示/隐藏原文": "إظهار / إخفاء النص الأصلي", "快译通": "ترجمة سريعة", - "显示移动按钮": "عرض زر الانتقال", "形状詞": "شكل الكلمات", "保存": "حفظ .", "语音": "صوت", @@ -351,7 +337,6 @@ "快捷键冲突": "اختصارات الصراع", "翻译设置": "إعدادات الترجمة", "翻译": "ترجمة .", - "端口冲突": "ميناء الصراع", "希腊语": "اللغة اليونانية", "動詞": "فعل .", "字体样式": "نمط الخط", @@ -373,7 +358,6 @@ "sqlite翻译记录": "SQLite سجل الترجمة", "json翻译文件": "جسون ترجمة الملف", "选择图标": "اختيار الرموز", - "图标2": "أيقونات", "刷新": "منعش", "读取剪贴板": "قراءة الحافظة", "进行一次OCR": "التعرف الضوئي على الحروف", @@ -538,7 +522,6 @@ "最小行数": "الحد الأدنى من عدد الصفوف", "最大行数": "أقصى عدد من الصفوف", "兼容接口": "واجهة متوافقة", - "调试浏览器": "تصحيح المتصفح", "手动翻译": "دليل الترجمة", "显示引擎": "عرض المحرك", "阴影字体": "خطوط الظل", diff --git a/py/files/lang/cht.json b/py/files/lang/cht.json index 6542861a..30d6151d 100644 --- a/py/files/lang/cht.json +++ b/py/files/lang/cht.json @@ -37,7 +37,6 @@ "目标语言": "目標語言", "最短翻译字数": "最短翻譯字數", "最长翻译字数": "最長翻譯字數", - "录制翻译文件": "錄製翻譯檔案", "离线翻译": "離線翻譯", "在线翻译": "線上翻譯", "注册在线翻译": "註冊線上翻譯", @@ -57,9 +56,6 @@ "字体样式": "字體樣式", "居中显示": "置中顯示", "描边宽度": "描邊寬度", - "显示显示原文按钮": "顯示顯示原文按鈕", - "显示朗读按钮": "顯示朗讀按鈕", - "显示游戏静音按钮": "顯示遊戲靜音按鈕", "游戏窗口移动时同步移动": "遊戲視窗移動時同步移動", "语音设置": "語音設定", "火山TTS": "火山 TTS", @@ -175,9 +171,7 @@ "字体": "字體", "飞书": "飛書", "编辑": "編輯", - "显示编辑按钮": "顯示編輯按鈕", "移动": "移動", - "显示移动按钮": "顯示移動按鈕", "设置Token": "設定 Token", "该功能可能会导致游戏崩溃!": "該功能可能會導致遊戲崩潰!", "警告": "警告", @@ -201,7 +195,6 @@ "自定义翻译": "自訂翻譯", "说明": "說明", "分析图像更新+周期执行": "分析影像更新+週期執行", - "调整游戏窗口按钮": "調整遊戲視窗按鈕", "内嵌的翻译器": "內嵌的翻譯器", "代理设置": "代理設定", "自动更新": "自動更新", @@ -211,7 +204,6 @@ "语音合成": "語音合成", "文本处理": "文字處理", "预处理方法": "前處理方法", - "连接进程": "連接處理程序", "设置代码页": "設定字碼頁", "设置刷新延迟": "設定重新整理延遲", "将汉字转换成繁体/日式汉字": "將漢字轉換成繁體/日式漢字", @@ -246,7 +238,6 @@ "当前MD5": "目前 MD5", "修改": "修改", "翻译结果修正": "翻譯結果修正", - "翻译结果修正按钮": "翻譯結果修正按鈕", "过滤文本中的非日语字符集字符": "過濾文字中的非日語字元集字元", "过滤其他乱码": "過濾其他亂碼", "过滤乱码文本": "過濾亂碼文字", @@ -257,7 +248,6 @@ "问题反馈": "問題回饋", "附带上下文个数": "附帶上下文個數", "备忘录": "備忘錄", - "备忘录按钮": "備忘錄按鈕", "插入图片": "插入圖片", "当前权限": "目前權限", "非管理员": "非管理員", @@ -266,7 +256,6 @@ "所选文件格式错误!": "所選檔案格式錯誤!", "进程号": "處理程序編號", "进程": "處理程序", - "发现": "發現", "失败": "失敗", "仅使用激活的翻译": "僅使用已啟用的翻譯", "云译": "雲譯", @@ -334,12 +323,8 @@ "音街ウナ": "音街ウナ", "鷹の爪吉田": "鷹の爪吉田", "ギャラ子": "ギャラ子", - "游戏信息": "遊戲資訊", "意大利语": "義大利語", "端口号": "連接埠編號", - "连接失败": "連接失敗", - "连接成功": "連接成功", - "端口冲突": "連接埠衝突", "缩放模式": "縮放模式", "捕获模式": "擷取模式", "捕获标题栏": "擷取標題列", @@ -373,7 +358,6 @@ "sqlite翻译记录": "SQLite 翻譯紀錄", "json翻译文件": "JSON 翻譯檔案", "选择图标": "選擇圖示", - "图标2": "圖示 2", "刷新": "重新整理", "读取剪贴板": "讀取剪貼簿", "进行一次OCR": "進行一次 OCR", @@ -538,7 +522,6 @@ "最小行数": "最小行數", "最大行数": "最大行數", "兼容接口": "相容介面", - "调试浏览器": "除錯瀏覽器", "手动翻译": "手動翻譯", "显示引擎": "顯示引擎", "阴影字体": "陰影字體", diff --git a/py/files/lang/cs.json b/py/files/lang/cs.json index c62b3f2e..dae5ea2a 100644 --- a/py/files/lang/cs.json +++ b/py/files/lang/cs.json @@ -2,7 +2,6 @@ "使用代理": "Použití proxy", "进程": "proces", "sqlite翻译记录": "Překladový záznam SQLite", - "显示编辑按钮": "Zobrazit tlačítko pro editaci", "过滤换行符": "Konce filtru", "文本设置": "Nastavení textu", "过滤数字": "Čísla filtru", @@ -48,26 +47,19 @@ "显示帧率": "Zobrazit snímkovou frekvenci", "最新版本": "Nejnovější verze", "搜索": "hledání", - "游戏信息": "Informace o hře", "特殊码": "specifický kód", - "端口冲突": "Konflikt přístavu", - "连接进程": "Proces připojení", - "发现": "najít", "取消": "zrušit", "合并多行识别结果": "Sloučit více řádků výsledků rozpoznání", "附加音源": "Další zdroj zvuku", - "图标2": "Ikona 2", "如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~": "Pokud máte pocit, že tento software je pro vás užitečný, naskenujte prosím QR kód na WeChat, abyste sponzorovali.", "窗口截图": "Snímek obrazovky okna", "自动获取系统代理": "Automaticky získat systémový proxy", "是否使用快捷键": "Zda použít klávesové zkratky", "最小化到托盘": "Minimalizovat do zásobníku", "打开目录": "Otevřít adresář", - "录制翻译文件": "Záznam překladových souborů", "字体样式": "Styl písma", "搜索文本过短!": "Vyhledávací text je příliš krátký!", "的OCR模型": "Model OCR", - "备忘录按钮": "Tlačítko Memo", "小学馆": "Sál základní školy", "光标": "kurzor", "项目网站": "Webové stránky projektu", @@ -225,7 +217,6 @@ "OCR设置": "Nastavení OCR", "文本输入": "Zadání textu", "语音": "hlas", - "连接失败": "připojení selhalo", "居中显示": "Středový displej", "翻译及OCR语言": "Překlady a OCR jazyk", "管理员": "správci", @@ -233,11 +224,9 @@ "描边字体": "Písmo tahu", "默认设置": "výchozí nastavení", "意大利语": "Italština", - "显示显示原文按钮": "Zobrazit tlačítko původního textu", "去除花括号{}": "Odstraňte kudrnaté rovnátka.", "保留原文": "Zachovat původní text", "朗读原文": "Přečtěte si původní text nahlas", - "连接成功": "Připojení úspěšné", "修改游戏字体": "Upravit písmo hry", "选择文本": "Vybrat text", "json文件": "Soubor JSON", @@ -255,7 +244,6 @@ "显示分词结果": "Zobrazit výsledky segmentace", "退出": "odhlásit se", "自定义翻译": "Vlastní překlad", - "显示朗读按钮": "Zobrazit tlačítko čtení", "显示/隐藏原文": "Zobrazit/skrýt původní text", "清空": "prázdné", "刷新": "Obnovit", @@ -289,7 +277,6 @@ "東北ずん子/东北俊子": "Dongbei Kunzi/Dongbei Junzi", "波兰语": "Polský jazyk", "接口": "Rozhraní", - "翻译结果修正按钮": "Tlačítko pro opravu výsledků překladu", "警告": "varování", "俄语": "ruština", "文字更新分析": "Analýza aktualizace textu", @@ -354,7 +341,6 @@ "替换": "nahradit", "绘制光标": "Nakreslit kurzor", "颜色设置": "nastavení barev", - "调整游戏窗口按钮": "Nastavit tlačítko herního okna", "HOOK设置": "Nastavení HOOK", "結月ゆかり": "Konec měsíce", "空白": "prázdné", @@ -367,7 +353,6 @@ "选择文件": "Vybrat soubor", "自动翻译": "Automatický překlad", "接続詞": "Přijímání slov", - "显示游戏静音按钮": "Zobrazit tlačítko ztlumení hry", "東北ずん子": "Severovýchodní Kunzi", "目标语言": "cílový jazyk", "乌克兰语": "Ukrajinský jazyk", @@ -375,7 +360,6 @@ "云译": "Překlad do cloudu", "秒": "druhá", "所选文件格式错误!": "Vybraný formát souboru je nesprávný!", - "显示移动按钮": "Zobrazit tlačítko přesunout", "过滤英文字母": "Filtrovat anglická písmena", "进行一次OCR": "Provést OCR jednou", "选取OCR范围——立即": "Vybrat rozsah OCR a okamžitě", @@ -545,7 +529,6 @@ "最大字数": "Maximální počet slov", "最小行数": "Minimální počet řádků", "最大行数": "Maximální počet řádků", - "调试浏览器": "Ladění prohlížeče", "显示引擎": "Zobrazovací motor", "阴影字体": "Stínové písmo", "额外的html": "Další HTML", diff --git a/py/files/lang/de.json b/py/files/lang/de.json index 317d2715..8aaa5d0c 100644 --- a/py/files/lang/de.json +++ b/py/files/lang/de.json @@ -2,7 +2,6 @@ "使用代理": "Verwendung eines Proxy", "进程": "Prozess", "sqlite翻译记录": "SQLite Translation Record", - "显示编辑按钮": "Schaltfläche Bearbeiten anzeigen", "过滤换行符": "Zeilenumbrüche filtern", "文本设置": "Texteinstellungen", "过滤数字": "Filternummern", @@ -48,26 +47,19 @@ "显示帧率": "Framerate anzeigen", "最新版本": "Neueste Version", "搜索": "Suche", - "游戏信息": "Spielinformationen", "特殊码": "spezifischer Code", - "端口冲突": "Hafenkonflikt", - "连接进程": "Verbindungsprozess", - "发现": "finden", "取消": "Abbrechen", "合并多行识别结果": "Mehrere Zeilen von Erkennungsergebnissen zusammenführen", "附加音源": "Zusätzliche Audioquelle", - "图标2": "Symbol 2", "如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~": "Wenn Sie der Meinung sind, dass diese Software für Sie hilfreich ist, scannen Sie bitte den QR-Code auf WeChat, um zu sponsern.", "窗口截图": "Fensterbildschirm", "自动获取系统代理": "System-Proxy automatisch abrufen", "是否使用快捷键": "Ob Tastenkombinationen verwendet werden sollen", "最小化到托盘": "Auf Ablage minimieren", "打开目录": "Verzeichnis öffnen", - "录制翻译文件": "Übersetzungsdateien aufzeichnen", "字体样式": "Schriftart", "搜索文本过短!": "Der Suchtext ist zu kurz!", "的OCR模型": "Das OCR-Modell", - "备忘录按钮": "Memo-Taste", "小学馆": "Grundschulsaal", "光标": "Cursor", "项目网站": "Website des Projekts", @@ -225,7 +217,6 @@ "OCR设置": "OCR-Einstellungen", "文本输入": "Texteingabe", "语音": "Stimme", - "连接失败": "Verbindung fehlgeschlagen", "居中显示": "Zentralanzeige", "翻译及OCR语言": "Übersetzung und OCR Sprache", "管理员": "Administratoren", @@ -233,11 +224,9 @@ "描边字体": "Strichschrift", "默认设置": "Standardeinstellung", "意大利语": "Italienisch", - "显示显示原文按钮": "Schaltfläche Originaltext anzeigen", "去除花括号{}": "Lockige Klammern entfernen {}", "保留原文": "Den Originaltext beibehalten", "朗读原文": "Lesen Sie den Originaltext laut vor", - "连接成功": "Verbindung erfolgreich", "修改游戏字体": "Spiel-Schriftart ändern", "选择文本": "Text auswählen", "json文件": "JSON-Datei", @@ -255,7 +244,6 @@ "显示分词结果": "Segmentierungsergebnisse anzeigen", "退出": "abmelden", "自定义翻译": "Benutzerdefinierte Übersetzung", - "显示朗读按钮": "Lesetaste anzeigen", "显示/隐藏原文": "Originaltext ein-/ausblenden", "清空": "leer", "刷新": "Aktualisieren", @@ -289,7 +277,6 @@ "東北ずん子/东北俊子": "Dongbei Kunzi/Dongbei Junzi", "波兰语": "Polnische Sprache", "接口": "Schnittstelle", - "翻译结果修正按钮": "Schaltfläche zur Korrektur von Übersetzungsergebnissen", "警告": "Warnung", "俄语": "Russisch", "文字更新分析": "Analyse der Textaktualisierung", @@ -354,7 +341,6 @@ "替换": "ersetzen", "绘制光标": "Cursor zeichnen", "颜色设置": "Farbeinstellung", - "调整游戏窗口按钮": "Schaltfläche Spielfenster anpassen", "HOOK设置": "HOOK-Einstellungen", "結月ゆかり": "Ende des Monats", "空白": "blank", @@ -367,7 +353,6 @@ "选择文件": "Datei auswählen", "自动翻译": "Automatische Übersetzung", "接続詞": "Wörter empfangen", - "显示游戏静音按钮": "Spielstummschaltfläche anzeigen", "東北ずん子": "Nordost Kunzi", "目标语言": "Zielsprache", "乌克兰语": "Ukrainische Sprache", @@ -375,7 +360,6 @@ "云译": "Cloud-Übersetzung", "秒": "zweite", "所选文件格式错误!": "Das gewählte Dateiformat ist falsch!", - "显示移动按钮": "Verschieben-Taste anzeigen", "过滤英文字母": "Englische Buchstaben filtern", "进行一次OCR": "OCR einmal ausführen", "选取OCR范围——立即": "OCR-Bereich sofort auswählen", @@ -545,7 +529,6 @@ "最大字数": "Maximale Wortanzahl", "最小行数": "Mindestanzahl Zeilen", "最大行数": "Maximale Anzahl von Zeilen", - "调试浏览器": "Debugging-Browser", "显示引擎": "Anzeigemotor", "阴影字体": "Schattenschrift", "额外的html": "Zusätzliches HTML", diff --git a/py/files/lang/en.json b/py/files/lang/en.json index ed736f2f..852d6bc9 100644 --- a/py/files/lang/en.json +++ b/py/files/lang/en.json @@ -30,7 +30,6 @@ "图标": "Icon", "指示詞": "Demonstratives", "搜索": "Search", - "显示游戏静音按钮": "Show Mute Game Button", "動詞": "Verbs", "显示帧率": "Display FPS", "自动翻译": "Auto Translate", @@ -44,8 +43,6 @@ "有道": "Youdao", "打开设置": "Open Settings", "注册在线翻译": "Online Translation (Requires API Key)", - "录制翻译文件": "Record Translation File", - "显示显示原文按钮": "Show Original Text Button", "接尾辞": "Suffixes", "描边宽度": "Stroke Width", "插值算法": "Interpolation Algorithm", @@ -77,7 +74,6 @@ "3D游戏模式": "3D Game Mode", "普通字体": "Normal Font", "朗读": "Text-to-Speech", - "显示朗读按钮": "Show Text-to-Speech Button", "接続詞": "Conjunctions", "小学馆": "Shogakukan Dictionary", "缩放时调整光标速度": "Adjust Cursor Zoom Speed", @@ -175,9 +171,7 @@ "字体": "Font", "飞书": "Feishu", "编辑": "Edit", - "显示编辑按钮": "Show Edit Button", "移动": "Move", - "显示移动按钮": "Show Move Button", "设置Token": "Set Token", "该功能可能会导致游戏崩溃!": "This feature may cause the game to crash!", "警告": "Warning", @@ -201,7 +195,6 @@ "自定义翻译": "Custom Translation", "说明": "Description", "分析图像更新+周期执行": "Analyze Image Update + Periodic Execution", - "调整游戏窗口按钮": "Adjust Game Window Button", "内嵌的翻译器": "Embedded Translator", "代理设置": "Proxy Settings", "自动更新": "Auto Update", @@ -211,7 +204,6 @@ "语音合成": "Speech Synthesis", "文本处理": "Text Processing", "预处理方法": "Preprocessing Method", - "连接进程": "Connection Process", "设置代码页": "Set Character Encoding", "设置刷新延迟": "Set Refresh Delay", "将汉字转换成繁体/日式汉字": "Convert Simplified Chinese to Traditional/Kanji", @@ -246,7 +238,6 @@ "当前MD5": "Current MD5", "修改": "Modify", "翻译结果修正": "Translation Result Correction", - "翻译结果修正按钮": "Translation Result Correction Button", "过滤文本中的非日语字符集字符": "Filter Non-Japanese Character Characters in Text", "过滤其他乱码": "Filter Other Garbled Characters", "过滤乱码文本": "Filter Garbled Text", @@ -257,7 +248,6 @@ "问题反馈": "Report a Problem", "附带上下文个数": "Number of Context Lines to Include", "备忘录": "Memo", - "备忘录按钮": "Memo Button", "插入图片": "Insert Image", "当前权限": "Current Privileges", "非管理员": "Non-administrator", @@ -266,7 +256,6 @@ "所选文件格式错误!": "Invalid File Format Selected!", "进程号": "Process ID", "进程": "Process", - "发现": "Found", "失败": "Failed", "仅使用激活的翻译": "Only Use Active Translations", "云译": "Cloud translation", @@ -334,12 +323,8 @@ "音街ウナ": "Otomachi Una", "鷹の爪吉田": "Takanotsume Yoshida", "ギャラ子": "Galaco", - "游戏信息": "Game Information", "意大利语": "Italian", "端口号": "Port Number", - "连接失败": "Connection failed", - "连接成功": "Connection successful", - "端口冲突": "Port Conflict", "缩放模式": "Zoom Mode", "捕获模式": "Capture Mode", "捕获标题栏": "Capture Title Bar", @@ -373,7 +358,6 @@ "sqlite翻译记录": "SQLite Translation Records", "json翻译文件": "JSON Translation Reords", "选择图标": "Select Icon", - "图标2": "Icon 2", "刷新": "Refresh", "读取剪贴板": "Read Clipboard", "进行一次OCR": "Perform OCR", @@ -537,7 +521,6 @@ "最小行数": "Minimum Number of Lines", "最大行数": "Maximum Number of Lines", "兼容接口": "Compatible Interface", - "调试浏览器": "Browser Debug", "手动翻译": "Retranslate", "显示引擎": "Display Engine", "阴影字体": "Shadow Font", diff --git a/py/files/lang/es.json b/py/files/lang/es.json index dc56d905..436d1ec9 100644 --- a/py/files/lang/es.json +++ b/py/files/lang/es.json @@ -37,7 +37,6 @@ "目标语言": "Idioma objetivo", "最短翻译字数": "Número mínimo de palabras traducidas", "最长翻译字数": "Número máximo de palabras traducidas", - "录制翻译文件": "Grabar archivos traducidos", "离线翻译": "Traducción fuera de línea", "在线翻译": "Traducción en línea", "注册在线翻译": "Registro de traductores en línea", @@ -57,9 +56,6 @@ "字体样式": "Estilo de fuente", "居中显示": "Mostrar en el Centro", "描边宽度": "Ancho de dibujo", - "显示显示原文按钮": "Mostrar el botón mostrar texto original", - "显示朗读按钮": "Muestra el botón de lectura en voz alta", - "显示游戏静音按钮": "Muestra el botón de silencio del juego", "游戏窗口移动时同步移动": "La ventana del juego se mueve simultáneamente cuando se mueve", "语音设置": "Configuración de voz", "火山TTS": "Volcán TTS", @@ -175,9 +171,7 @@ "字体": "Fuente", "飞书": "Libro volador", "编辑": "Edición", - "显示编辑按钮": "Mostrar el botón de edición", "移动": "Mover", - "显示移动按钮": "Muestra el botón mover", "设置Token": "Establecer Token", "该功能可能会导致游戏崩溃!": "¡¡ esta función puede causar un colapso del juego!", "警告": "Aviso", @@ -201,7 +195,6 @@ "自定义翻译": "Traducción personalizada", "说明": "Explicación", "分析图像更新+周期执行": "Actualización de la imagen de análisis + Ejecución del ciclo", - "调整游戏窗口按钮": "Ajustar el botón de la ventana del juego", "内嵌的翻译器": "Traductor incorporado", "代理设置": "Configuración del agente", "自动更新": "Actualización automática", @@ -211,7 +204,6 @@ "语音合成": "Síntesis de voz", "文本处理": "Procesamiento de textos", "预处理方法": "Método de preprocesamiento", - "连接进程": "Proceso de conexión", "设置代码页": "Establecer página de código", "设置刷新延迟": "Establecer el retraso de actualización", "将汉字转换成繁体/日式汉字": "Convertir caracteres chinos en caracteres chinos tradicionales / japoneses", @@ -246,7 +238,6 @@ "当前MD5": "MD5 actual", "修改": "Modificación", "翻译结果修正": "Corrección de los resultados de la traducción", - "翻译结果修正按钮": "Botón de corrección de resultados de traducción", "过滤文本中的非日语字符集字符": "Filtrar los caracteres del conjunto de caracteres no japoneses en el texto", "过滤其他乱码": "Filtrar otros códigos desordenados", "过滤乱码文本": "Filtrar texto desordenado", @@ -257,7 +248,6 @@ "问题反馈": "Retroalimentación del problema", "附带上下文个数": "Número de contextos adjuntos", "备忘录": "Memorando", - "备忘录按钮": "Botón de memorando", "插入图片": "Insertar imagen", "当前权限": "Permisos actuales", "非管理员": "No Administrador", @@ -266,7 +256,6 @@ "所选文件格式错误!": "¡¡ el archivo seleccionado tiene un formato incorrecto!", "进程号": "Número de proceso", "进程": "Proceso", - "发现": "Hallazgo", "失败": "Fracaso", "仅使用激活的翻译": "Solo se utilizan traducciones activadas", "云译": "Traducción en la nube", @@ -334,12 +323,8 @@ "音街ウナ": "Calle Yin", "鷹の爪吉田": "Yoshida, garra del águila", "ギャラ子": "Hijo", - "游戏信息": "Información del juego", "意大利语": "Italiano", "端口号": "Número de Puerto", - "连接失败": "Conexión fallida", - "连接成功": "Conexión exitosa", - "端口冲突": "Conflicto de Puertos", "缩放模式": "Modo de escala", "捕获模式": "Modo de captura", "捕获标题栏": "Captura la barra de título", @@ -373,7 +358,6 @@ "sqlite翻译记录": "Registro de traducción de squlite", "json翻译文件": "Documento de traducción json", "选择图标": "Seleccionar icono", - "图标2": "Icono 2", "刷新": "Refrescar", "读取剪贴板": "Leer el portapapeles", "进行一次OCR": "Realizar un OCR", @@ -538,7 +522,6 @@ "最小行数": "Número mínimo de líneas", "最大行数": "Número máximo de líneas", "兼容接口": "Interfaz compatible", - "调试浏览器": "Depurar el navegador", "手动翻译": "Traducción manual", "显示引擎": "Motor de visualización", "阴影字体": "Fuente de sombra", diff --git a/py/files/lang/fr.json b/py/files/lang/fr.json index e260cfa3..34f62cd4 100644 --- a/py/files/lang/fr.json +++ b/py/files/lang/fr.json @@ -37,7 +37,6 @@ "目标语言": "Langue cible", "最短翻译字数": "Nombre minimum de mots traduits", "最长翻译字数": "Nombre maximum de mots traduits", - "录制翻译文件": "Enregistrer le fichier de traduction", "离线翻译": "Traduction hors ligne", "在线翻译": "Traduction en ligne", "注册在线翻译": "Inscription à la traduction en ligne", @@ -57,9 +56,6 @@ "字体样式": "Style de police", "居中显示": "Affichage Central", "描边宽度": "Largeur de la bordure", - "显示显示原文按钮": "Afficher le bouton afficher le texte original", - "显示朗读按钮": "Afficher le bouton lecture", - "显示游戏静音按钮": "Afficher le bouton mute du jeu", "游戏窗口移动时同步移动": "Synchroniser le mouvement lorsque la fenêtre de jeu se déplace", "语音设置": "Paramètres vocaux", "火山TTS": "Volcan tts", @@ -175,9 +171,7 @@ "字体": "Les polices", "飞书": "Le livre volant", "编辑": "Modifier", - "显示编辑按钮": "Afficher le bouton Modifier", "移动": "Mobile", - "显示移动按钮": "Afficher le bouton mobile", "设置Token": "Configurer token", "该功能可能会导致游戏崩溃!": "Cette fonctionnalité peut provoquer un crash du jeu!", "警告": "Avertissement", @@ -201,7 +195,6 @@ "自定义翻译": "Traduction personnalisée", "说明": "Description", "分析图像更新+周期执行": "Mise à jour de l'image analytique + exécution du cycle", - "调整游戏窗口按钮": "Ajuster le bouton de la fenêtre de jeu", "内嵌的翻译器": "Traducteur intégré", "代理设置": "Paramètres de l'agent", "自动更新": "Mise à jour automatique", @@ -211,7 +204,6 @@ "语音合成": "Synthèse vocale", "文本处理": "Traitement de texte", "预处理方法": "Méthode de prétraitement", - "连接进程": "Processus de connexion", "设置代码页": "Configurer une page de code", "设置刷新延迟": "Définir le délai de rafraîchissement", "将汉字转换成繁体/日式汉字": "Convertir des caractères chinois en caractères traditionnels / japonais", @@ -246,7 +238,6 @@ "当前MD5": "Le MD5 actuel", "修改": "Modifier", "翻译结果修正": "Correction des résultats de traduction", - "翻译结果修正按钮": "Bouton de correction des résultats de traduction", "过滤文本中的非日语字符集字符": "Filtrer les caractères du jeu de caractères non japonais dans le texte", "过滤其他乱码": "Filtrer les autres codes brouillés", "过滤乱码文本": "Filtrer le texte brouillé", @@ -257,7 +248,6 @@ "问题反馈": "Feedback sur les questions", "附带上下文个数": "Nombre de contextes attachés", "备忘录": "Memorandum", - "备忘录按钮": "Bouton memo", "插入图片": "Insérer une image", "当前权限": "Autorisations actuelles", "非管理员": "Non - Administrateur", @@ -266,7 +256,6 @@ "所选文件格式错误!": "Mauvais format de fichier sélectionné!", "进程号": "Numéro de processus", "进程": "Processus", - "发现": "Découvrir", "失败": "L'échec", "仅使用激活的翻译": "Utiliser uniquement les traductions activées", "云译": "Traduction Cloud", @@ -334,12 +323,8 @@ "音街ウナ": "Rue du son 54 | 90 |", "鷹の爪吉田": "Aigle のjita", "ギャラ子": "ギャラ", - "游戏信息": "Informations sur le jeu", "意大利语": "Italien", "端口号": "Numéro de port", - "连接失败": "La connexion a échoué", - "连接成功": "Connexion réussie", - "端口冲突": "Conflit de port", "缩放模式": "Mode zoom", "捕获模式": "Mode de capture", "捕获标题栏": "Capturer la barre de titre", @@ -373,7 +358,6 @@ "sqlite翻译记录": "Sqlite enregistrement de traduction", "json翻译文件": "Json traduire le fichier", "选择图标": "Sélectionner une icône", - "图标2": "Icône 2", "刷新": "Rafraîchir", "读取剪贴板": "Lire le presse - papiers", "进行一次OCR": "Faites une ocr", @@ -538,7 +522,6 @@ "最小行数": "Nombre minimum de lignes", "最大行数": "Nombre maximal de lignes", "兼容接口": "Interface compatible", - "调试浏览器": "Déboguer le Navigateur", "手动翻译": "Traduction manuelle", "显示引擎": "Moteur d'affichage", "阴影字体": "Shadow font", diff --git a/py/files/lang/it.json b/py/files/lang/it.json index 7f41b74b..34e9cb21 100644 --- a/py/files/lang/it.json +++ b/py/files/lang/it.json @@ -37,7 +37,6 @@ "目标语言": "lingua di destinazione", "最短翻译字数": "Numero minimo di parole tradotte", "最长翻译字数": "Numero massimo di parole tradotte", - "录制翻译文件": "Registrazione dei file di traduzione", "离线翻译": "Traduzione offline", "在线翻译": "Traduzione online", "注册在线翻译": "Registrati per la traduzione online", @@ -205,7 +204,6 @@ "语音合成": "sintesi vocale", "文本处理": "elaborazione del testo", "预处理方法": "Metodo di prelucrazione", - "连接进程": "Processo di connessione", "设置代码页": "Imposta pagina codice", "设置刷新延迟": "Imposta ritardo di aggiornamento", "将汉字转换成繁体/日式汉字": "Converti caratteri cinesi in caratteri tradizionali/giapponesi", @@ -258,7 +256,6 @@ "所选文件格式错误!": "Il formato del file selezionato non è corretto!", "进程号": "Numero del processo", "进程": "processo", - "发现": "trova", "失败": "fail", "仅使用激活的翻译": "Usa solo traduzioni attive", "云译": "Traduzione cloud", @@ -267,14 +264,6 @@ "处理": "maniglia", "波兰语": "Polacco", "窗口置顶": "Finestra in alto", - "显示显示原文按钮": "Mostra pulsante originale", - "显示朗读按钮": "Mostra pulsante Parla", - "显示移动按钮": "Mostra pulsante Sposta", - "翻译结果修正按钮": "Pulsante di correzione dei risultati della traduzione", - "显示编辑按钮": "Mostra pulsante Modifica", - "调整游戏窗口按钮": "Regola i pulsanti della finestra di gioco", - "显示游戏静音按钮": "Mostra pulsante muto gioco", - "备忘录按钮": "Pulsante Memo", "仅": "Solo", "任务栏中显示": "Mostra nella barra delle applicazioni", "移除": "rimuovere", @@ -334,12 +323,8 @@ "音街ウナ": "Roast Yin Street", "鷹の爪吉田": "Artiglio d'aquila Yoshida", "ギャラ子": "ギャララギャララ", - "游戏信息": "Informazioni sul gioco", "意大利语": "Italiano", "端口号": "Numero porta", - "连接失败": "connessione non riuscita", - "连接成功": "Connessione riuscita", - "端口冲突": "Conflitto porto", "缩放模式": "Modalità zoom", "捕获模式": "Modalità cattura", "捕获标题栏": "Cattura barra del titolo", @@ -373,7 +358,6 @@ "sqlite翻译记录": "Record di traduzione Sqlite", "json翻译文件": "File di traduzione JSON", "选择图标": "Seleziona icona", - "图标2": "Icona 2", "刷新": "Aggiorna", "读取剪贴板": "Leggi gli appunti", "进行一次OCR": "Condurre un OCR", @@ -538,7 +522,6 @@ "最小行数": "Numero minimo di righe", "最大行数": "Numero massimo di righe", "兼容接口": "Interfaccia compatibile", - "调试浏览器": "Browser di debug", "手动翻译": "Traduzione manuale", "显示引擎": "Motore di visualizzazione", "阴影字体": "Carattere ombra", diff --git a/py/files/lang/ja.json b/py/files/lang/ja.json index c4a3af59..7053266e 100644 --- a/py/files/lang/ja.json +++ b/py/files/lang/ja.json @@ -37,7 +37,6 @@ "目标语言": "ターゲット言語", "最短翻译字数": "最短翻訳文字数", "最长翻译字数": "最長翻訳文字数", - "录制翻译文件": "翻訳ファイルの記録", "离线翻译": "オフライン翻訳", "在线翻译": "オンライン翻訳", "注册在线翻译": "オンライン翻訳の登録", @@ -57,9 +56,6 @@ "字体样式": "フォントスタイル", "居中显示": "中央揃え", "描边宽度": "線の幅", - "显示显示原文按钮": "テキスト表示ボタンを表示", - "显示朗读按钮": "読み上げボタンを表示", - "显示游戏静音按钮": "ゲームミュートボタンを表示", "游戏窗口移动时同步移动": "ゲームウィンドウ移動時に同期移動", "语音设置": "音声設定", "火山TTS": "火山TTS", @@ -175,9 +171,7 @@ "字体": "フォント", "飞书": "飛書", "编辑": "編集", - "显示编辑按钮": "編集ボタンを表示", "移动": "移動", - "显示移动按钮": "移動ボタンを表示", "设置Token": "トークンの設定", "该功能可能会导致游戏崩溃!": "この機能はゲームをクラッシュさせる可能性があります!", "警告": "に警告", @@ -201,7 +195,6 @@ "自定义翻译": "カスタム翻訳", "说明": "説明", "分析图像更新+周期执行": "解析画像更新+周期実行", - "调整游戏窗口按钮": "ゲームウィンドウボタンを調整する", "内嵌的翻译器": "インライントランスレータ", "代理设置": "プロキシ設定", "自动更新": "自動更新", @@ -211,7 +204,6 @@ "语音合成": "音声合成", "文本处理": "テキスト処理", "预处理方法": "前処理方法", - "连接进程": "接続プロセス", "设置代码页": "コードページの設定", "设置刷新延迟": "リフレッシュ遅延の設定", "将汉字转换成繁体/日式汉字": "漢字を繁体字/和字に変換する", @@ -246,7 +238,6 @@ "当前MD5": "現在のMD 5", "修改": "変更", "翻译结果修正": "翻訳結果の修正", - "翻译结果修正按钮": "翻訳結果修正ボタン", "过滤文本中的非日语字符集字符": "テキスト内の非日本語文字セット文字をフィルタする", "过滤其他乱码": "その他の文字化けをフィルタする", "过滤乱码文本": "文字化け文字化け文字化け文字化け", @@ -257,7 +248,6 @@ "问题反馈": "もんだいフィードバック", "附带上下文个数": "付随コンテキスト数", "备忘录": "メモ", - "备忘录按钮": "メモボタン", "插入图片": "画像を挿入", "当前权限": "現在の権限", "非管理员": "管理者以外", @@ -266,7 +256,6 @@ "所选文件格式错误!": "選択したファイルフォーマットが間違っています!", "进程号": "プロセス番号", "进程": "プロセス", - "发现": "検出", "失败": "に失敗", "仅使用激活的翻译": "アクティブな翻訳のみを使用", "云译": "クラウド翻訳", @@ -334,12 +323,8 @@ "音街ウナ": "音街ウナ", "鷹の爪吉田": "鷹の爪吉田", "ギャラ子": "ギャラ", - "游戏信息": "ゲーム情報", "意大利语": "イタリア語", "端口号": "ポート番号", - "连接失败": "接続に失敗しました", - "连接成功": "接続成功", - "端口冲突": "ポートの競合", "缩放模式": "スケールモード", "捕获模式": "キャプチャモード", "捕获标题栏": "キャプチャタイトルバー", @@ -373,7 +358,6 @@ "sqlite翻译记录": "sqlite翻訳履歴", "json翻译文件": "json翻訳ファイル", "选择图标": "アイコンを選択", - "图标2": "アイコン2", "刷新": "リフレッシュ", "读取剪贴板": "クリップボードを読み込む", "进行一次OCR": "OCRを1回実行する", @@ -538,7 +522,6 @@ "最小行数": "最小行数", "最大行数": "最大行数", "兼容接口": "互換インタフェース", - "调试浏览器": "デバッグブラウザ", "手动翻译": "手動翻訳", "显示引擎": "ディスプレイエンジン", "阴影字体": "シャドウフォント", diff --git a/py/files/lang/ko.json b/py/files/lang/ko.json index 8e15b4b6..f48fc234 100644 --- a/py/files/lang/ko.json +++ b/py/files/lang/ko.json @@ -37,7 +37,6 @@ "目标语言": "대상 언어", "最短翻译字数": "최소 번역 단어 수", "最长翻译字数": "최대 번역 단어 수", - "录制翻译文件": "번역 파일 기록", "离线翻译": "오프라인 번역", "在线翻译": "온라인 번역", "注册在线翻译": "온라인 번역 등록", @@ -57,9 +56,6 @@ "字体样式": "글꼴 스타일", "居中显示": "가운데 표시", "描边宽度": "테두리 너비", - "显示显示原文按钮": "원본 보기 단추 보이기", - "显示朗读按钮": "말하기 단추 보이기", - "显示游戏静音按钮": "게임 무음 버튼 보이기", "游戏窗口移动时同步移动": "게임 창 이동 시 동기화", "语音设置": "음성 설정", "火山TTS": "화산 TTS", @@ -175,9 +171,7 @@ "字体": "글꼴", "飞书": "비서", "编辑": "편집", - "显示编辑按钮": "편집 버튼 표시", "移动": "이동", - "显示移动按钮": "이동 버튼 표시", "设置Token": "Token 설정", "该功能可能会导致游戏崩溃!": "이 기능은 게임 충돌을 일으킬 수 있습니다!", "警告": "경고", @@ -201,7 +195,6 @@ "自定义翻译": "사용자 정의 번역", "说明": "설명", "分析图像更新+周期执行": "분석 이미지 업데이트 + 주기 실행", - "调整游戏窗口按钮": "게임 창 버튼 조정", "内嵌的翻译器": "내장된 번역기", "代理设置": "프록시 설정", "自动更新": "자동 업데이트", @@ -211,7 +204,6 @@ "语音合成": "음성 합성", "文本处理": "텍스트 처리", "预处理方法": "사전 처리 방법", - "连接进程": "연결 프로세스", "设置代码页": "코드 페이지 설정", "设置刷新延迟": "새로 고침 지연 설정", "将汉字转换成繁体/日式汉字": "한자를 번체/일본식 한자로 변환", @@ -246,7 +238,6 @@ "当前MD5": "현재 MD5", "修改": "수정", "翻译结果修正": "번역 결과 수정", - "翻译结果修正按钮": "번역 결과 수정 버튼", "过滤文本中的非日语字符集字符": "텍스트의 비일본어 문자 세트 문자 필터링", "过滤其他乱码": "기타 무분별한 코드 필터링", "过滤乱码文本": "잘못된 텍스트 필터링", @@ -257,7 +248,6 @@ "问题反馈": "질문 피드백", "附带上下文个数": "첨부된 컨텍스트 개수", "备忘录": "메모", - "备忘录按钮": "메모 단추", "插入图片": "그림 삽입", "当前权限": "현재 권한", "非管理员": "비관리자", @@ -266,7 +256,6 @@ "所选文件格式错误!": "선택한 파일의 형식이 잘못되었습니다!", "进程号": "프로세스 번호", "进程": "프로세스", - "发现": "발견", "失败": "실패", "仅使用激活的翻译": "활성화된 번역만 사용", "云译": "클라우드 번역", @@ -334,12 +323,8 @@ "音街ウナ": "음가", "鷹の爪吉田": "매의 발톱 요시다", "ギャラ子": "밤낮", - "游戏信息": "게임 정보", "意大利语": "이탈리아어", "端口号": "포트 번호", - "连接失败": "연결 실패", - "连接成功": "연결 성공", - "端口冲突": "포트 충돌", "缩放模式": "줌 모드", "捕获模式": "캡처 모드", "捕获标题栏": "제목 표시줄 캡처", @@ -373,7 +358,6 @@ "sqlite翻译记录": "sqlite 번역 기록", "json翻译文件": "json 번역 파일", "选择图标": "아이콘 선택", - "图标2": "아이콘 2", "刷新": "새로 고침", "读取剪贴板": "클립보드 읽기", "进行一次OCR": "OCR을 한번 진행해보도록 하겠습니다.", @@ -538,7 +522,6 @@ "最小行数": "최소 행 수", "最大行数": "최대 행 수", "兼容接口": "호환 인터페이스", - "调试浏览器": "디버그 브라우저", "手动翻译": "수동 번역", "显示引擎": "디스플레이 엔진", "阴影字体": "그림자 글꼴", diff --git a/py/files/lang/nl.json b/py/files/lang/nl.json index 03a0127f..bfe5550e 100644 --- a/py/files/lang/nl.json +++ b/py/files/lang/nl.json @@ -2,7 +2,6 @@ "使用代理": "Een proxy gebruiken", "进程": "proces", "sqlite翻译记录": "SQLite vertaalrecord", - "显示编辑按钮": "Bewerken-knop weergeven", "过滤换行符": "Regeleinden filteren", "文本设置": "Tekstinstellingen", "过滤数字": "Filternummers", @@ -48,26 +47,19 @@ "显示帧率": "Framesnelheid weergeven", "最新版本": "Laatste versie", "搜索": "zoeken", - "游戏信息": "Spelinformatie", "特殊码": "specifieke code", - "端口冲突": "Port conflict", - "连接进程": "Verbindingsproces", - "发现": "vinden", "取消": "annuleren", "合并多行识别结果": "Meerdere rijen herkenningsresultaten samenvoegen", "附加音源": "Extra audiobron", - "图标2": "Pictogram 2", "如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~": "Als u denkt dat deze software nuttig voor u is, scan dan de QR-code op WeChat om te sponsoren.", "窗口截图": "Vensterschermafbeelding", "自动获取系统代理": "Systeemproxy automatisch verkrijgen", "是否使用快捷键": "Of sneltoetsen worden gebruikt", "最小化到托盘": "Minimaliseren naar lade", "打开目录": "Map openen", - "录制翻译文件": "Vertalingsbestanden opnemen", "字体样式": "Lettertypestijl", "搜索文本过短!": "De zoektekst is te kort!", "的OCR模型": "Het OCR-model", - "备忘录按钮": "Memoknop", "小学馆": "Hal van de basisschool", "光标": "cursor", "项目网站": "Website van het project", @@ -225,7 +217,6 @@ "OCR设置": "OCR-instellingen", "文本输入": "Tekstinvoer", "语音": "stem", - "连接失败": "verbinding mislukt", "居中显示": "Centrale weergave", "翻译及OCR语言": "Vertaling en OCR taal", "管理员": "beheerders", @@ -233,11 +224,9 @@ "描边字体": "Strijklettertype", "默认设置": "standaardinstelling", "意大利语": "Italiaans", - "显示显示原文按钮": "Originele tekstknop weergeven", "去除花括号{}": "Krullende beugels verwijderen.", "保留原文": "De oorspronkelijke tekst behouden", "朗读原文": "Lees de oorspronkelijke tekst hardop voor", - "连接成功": "Verbinding succesvol", "修改游戏字体": "Spellettertype wijzigen", "选择文本": "Tekst selecteren", "json文件": "JSON-bestand", @@ -255,7 +244,6 @@ "显示分词结果": "Segmenteringsresultaten weergeven", "退出": "afmelden", "自定义翻译": "Aangepaste vertaling", - "显示朗读按钮": "De leesknop tonen", "显示/隐藏原文": "Originele tekst tonen/verbergen", "清空": "leeg", "刷新": "Vernieuwen", @@ -289,7 +277,6 @@ "東北ずん子/东北俊子": "Dongbei Kunzi/Dongbei Junzi", "波兰语": "Poolse taal", "接口": "Interface", - "翻译结果修正按钮": "Knop voor correctie van vertaalresultaten", "警告": "waarschuwing", "俄语": "Russisch", "文字更新分析": "Analyse van tekstupdates", @@ -354,7 +341,6 @@ "替换": "vervangen", "绘制光标": "Cursor tekenen", "颜色设置": "kleurinstelling", - "调整游戏窗口按钮": "De knop van het spelvenster aanpassen", "HOOK设置": "HOOK-instellingen", "結月ゆかり": "Het einde van de maand", "空白": "blanco", @@ -367,7 +353,6 @@ "选择文件": "Bestand selecteren", "自动翻译": "Automatische vertaling", "接続詞": "Woorden ontvangen", - "显示游戏静音按钮": "Spelmute knop tonen", "東北ずん子": "Noordoost Kunzi", "目标语言": "doeltaal", "乌克兰语": "Oekraïense taal", @@ -375,7 +360,6 @@ "云译": "Cloud vertaling", "秒": "tweede", "所选文件格式错误!": "Het geselecteerde bestandsformaat is onjuist!", - "显示移动按钮": "De verplaatsingsknop tonen", "过滤英文字母": "Engelse letters filteren", "进行一次OCR": "Eenmaal OCR uitvoeren", "选取OCR范围——立即": "OCR-bereik direct selecteren", @@ -545,7 +529,6 @@ "最大字数": "Maximaal aantal woorden", "最小行数": "Minimumaantal rijen", "最大行数": "Maximaal aantal rijen", - "调试浏览器": "Debugging-browser", "显示引擎": "Weergavemotor", "阴影字体": "Schaduwlettertype", "额外的html": "Extra HTML", diff --git a/py/files/lang/pl.json b/py/files/lang/pl.json index a665119f..5b98ad6a 100644 --- a/py/files/lang/pl.json +++ b/py/files/lang/pl.json @@ -37,7 +37,6 @@ "目标语言": "język docelowy", "最短翻译字数": "Minimalna liczba przetłumaczonych słów", "最长翻译字数": "Maksymalna liczba przetłumaczonych słów", - "录制翻译文件": "Nagrywanie plików tłumaczeniowych", "离线翻译": "Tłumaczenie offline", "在线翻译": "tłumaczenie online", "注册在线翻译": "Zarejestruj się do tłumaczenia online", @@ -57,9 +56,6 @@ "字体样式": "Styl czcionki", "居中显示": "Środkowy wyświetlacz", "描边宽度": "Szerokość skoku", - "显示显示原文按钮": "Pokaż przycisk Pokaż oryginalny", - "显示朗读按钮": "Pokaż przycisk Mów", - "显示游戏静音按钮": "Pokaż przycisk wyciszenia gry", "游戏窗口移动时同步移动": "Synchronizuj ruch podczas poruszania się okna gry", "语音设置": "Ustawienia głosu", "火山TTS": "Wulkan TTS", @@ -175,9 +171,7 @@ "字体": "pisma", "飞书": "list anonimowy", "编辑": "edytuj", - "显示编辑按钮": "Pokaż przycisk edycji", "移动": "ruchy", - "显示移动按钮": "Pokaż przycisk ruchu", "设置Token": "Ustaw token", "该功能可能会导致游戏崩溃!": "Ta funkcja może spowodować awarię gry!", "警告": "ostrzeżenie", @@ -201,7 +195,6 @@ "自定义翻译": "Tłumaczenie niestandardowe", "说明": "wyjaśnij", "分析图像更新+周期执行": "Analiza aktualizacji obrazów+wykonanie cyklu", - "调整游戏窗口按钮": "Dostosuj przyciski okna gry", "内嵌的翻译器": "Wbudowany tłumacz", "代理设置": "Ustawienia proxy", "自动更新": "Automatyczna aktualizacja", @@ -211,7 +204,6 @@ "语音合成": "synteza mowy", "文本处理": "Przetwarzanie tekstu", "预处理方法": "Metoda wstępnego przetwarzania", - "连接进程": "Proces połączenia", "设置代码页": "Ustaw stronę kodu", "设置刷新延迟": "Ustaw opóźnienie odświeżania", "将汉字转换成繁体/日式汉字": "Konwersja znaków chińskich na znaki tradycyjne/japońskie", @@ -245,7 +237,6 @@ "当前MD5": "Aktualny MD5", "修改": "modyfikuj", "翻译结果修正": "Korekta wyników tłumaczenia", - "翻译结果修正按钮": "Przycisk korekcji wyników tłumaczenia", "过滤文本中的非日语字符集字符": "Filtruj znaki niejapońskiego zestawu znaków w tekście", "过滤其他乱码": "Filtruj inne zniekształcone kody", "过滤乱码文本": "Filtruj zniekształcony tekst", @@ -257,7 +248,6 @@ "问题反馈": "Informacje zwrotne dotyczące problemu", "附带上下文个数": "Liczba kontekstów towarzyszących", "备忘录": "memorandum", - "备忘录按钮": "Przycisk Memo", "插入图片": "Wstaw obrazek", "当前权限": "Aktualne uprawnienia", "非管理员": "Nieadministrator", @@ -266,7 +256,6 @@ "所选文件格式错误!": "Wybrany format pliku jest niepoprawny!", "进程号": "Numer procesu", "进程": "proces", - "发现": "znaleźć", "失败": "niepowodzenie", "仅使用激活的翻译": "Używaj tylko aktywnych tłumaczeń", "云译": "Tłumaczenie chmury", @@ -334,12 +323,8 @@ "音街ウナ": "Yin Street Roast", "鷹の爪吉田": "Orły Pazur Yoshida", "ギャラ子": "ギャララギャララ", - "游戏信息": "Informacje o grze", "意大利语": "Włoski", "端口号": "Numer portu", - "连接失败": "Połączenie nie powiodło się", - "连接成功": "Powodzenie połączenia", - "端口冲突": "Konflikt portu", "缩放模式": "Tryb powiększania", "捕获模式": "Tryb przechwytywania", "捕获标题栏": "Przechwytywanie paska tytułu", @@ -373,7 +358,6 @@ "sqlite翻译记录": "Zapisy tłumaczeń Sqlite", "json翻译文件": "Plik tłumaczenia JSON", "选择图标": "Wybierz ikonę", - "图标2": "Ikona 2", "刷新": "Odśwież", "读取剪贴板": "Odczytaj schowek", "进行一次OCR": "Przeprowadzenie OCR", @@ -538,7 +522,6 @@ "最小行数": "Minimalna liczba wierszy", "最大行数": "Maksymalna liczba wierszy", "兼容接口": "Kompatybilny interfejs", - "调试浏览器": "Debugowanie przeglądarki", "手动翻译": "Tłumaczenie ręczne", "显示引擎": "Silnik wyświetlania", "阴影字体": "Czcionka cienia", diff --git a/py/files/lang/pt.json b/py/files/lang/pt.json index 2816fe9b..0154f48f 100644 --- a/py/files/lang/pt.json +++ b/py/files/lang/pt.json @@ -2,7 +2,6 @@ "使用代理": "Usar um 'proxy'", "进程": "processo", "sqlite翻译记录": "Registo de Tradução do SQLite", - "显示编辑按钮": "Mostrar o botão de edição", "过滤换行符": "Quebras de linha do filtro", "文本设置": "Configuração do texto", "过滤数字": "Números do filtro", @@ -48,26 +47,19 @@ "显示帧率": "Mostrar a taxa de quadros", "最新版本": "Versão mais recente", "搜索": "pesquisa", - "游戏信息": "Informação do jogo", "特殊码": "código específico", - "端口冲突": "Conflito portuário", - "连接进程": "Processo de ligação", - "发现": "encontrar", "取消": "cancelar", "合并多行识别结果": "Juntar várias linhas de resultados de reconhecimento", "附加音源": "Fonte de áudio adicional", - "图标2": "Ícone 2", "如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~": "Se você acha que este software é útil para você, por favor, digitalize o código QR no WeChat para patrocinar.", "窗口截图": "Imagem da janela", "自动获取系统代理": "Obter automaticamente o 'proxy' do sistema", "是否使用快捷键": "Se usar as teclas de atalho", "最小化到托盘": "Minimizar para a bandeja", "打开目录": "Abrir a pasta", - "录制翻译文件": "Gravar ficheiros de tradução", "字体样式": "Estilo do Tipo de Letra", "搜索文本过短!": "O texto de pesquisa é muito curto!", "的OCR模型": "O modelo OCR", - "备忘录按钮": "Botão de memória", "小学馆": "Sala do Ensino Fundamental", "光标": "cursor", "项目网站": "Sítio Web do projecto", @@ -225,7 +217,6 @@ "OCR设置": "Configuração do OCR", "文本输入": "Entrada de texto", "语音": "voz", - "连接失败": "a ligação falhou", "居中显示": "Ecrã central", "翻译及OCR语言": "Tradução e língua OCR", "管理员": "administradores", @@ -233,11 +224,9 @@ "描边字体": "Tipo de letra do traçado", "默认设置": "configuração predefinida", "意大利语": "Italiano", - "显示显示原文按钮": "Mostrar o botão do texto original", "去除花括号{}": "Remover as chaves encaracoladas {}", "保留原文": "Manter o texto original", "朗读原文": "Leia o texto original em voz alta", - "连接成功": "Ligação bem sucedida", "修改游戏字体": "Modificar o tipo de letra do jogo", "选择文本": "Seleccionar o Texto", "json文件": "Ficheiro JSON", @@ -255,7 +244,6 @@ "显示分词结果": "Mostrar os resultados da segmentação", "退出": "sair", "自定义翻译": "Tradução personalizada", - "显示朗读按钮": "Mostrar o botão de leitura", "显示/隐藏原文": "Mostrar/ Esconder o Texto Original", "清空": "vazio", "刷新": "Actualizar", @@ -289,7 +277,6 @@ "東北ずん子/东北俊子": "Dongbei Kunzi/Dongbei Junzi", "波兰语": "Língua polaca", "接口": "Interface", - "翻译结果修正按钮": "Botão de correcção do resultado da tradução", "警告": "aviso", "俄语": "Russo", "文字更新分析": "Análise de actualização de texto", @@ -354,7 +341,6 @@ "替换": "substituir", "绘制光标": "Desenhar o cursor", "颜色设置": "configuração de cores", - "调整游戏窗口按钮": "Ajustar o botão da janela do jogo", "HOOK设置": "Configuração do HOOK", "結月ゆかり": "O fim do mês", "空白": "em branco", @@ -367,7 +353,6 @@ "选择文件": "Seleccionar o ficheiro", "自动翻译": "Tradução automática", "接続詞": "A receber palavras", - "显示游戏静音按钮": "Mostrar o botão de mudo do jogo", "東北ずん子": "Northeast Kunzi", "目标语言": "língua de destino", "乌克兰语": "Língua ucraniana", @@ -375,7 +360,6 @@ "云译": "Tradução em nuvem", "秒": "segundo", "所选文件格式错误!": "O formato de ficheiro seleccionado está incorrecto!", - "显示移动按钮": "Mostrar o botão mover", "过滤英文字母": "Filtrar letras inglesas", "进行一次OCR": "Executar OCR uma vez", "选取OCR范围——立即": "Seleccionar o intervalo OCR - Imediatamente", @@ -545,7 +529,6 @@ "最大字数": "Número máximo de palavras", "最小行数": "Número mínimo de linhas", "最大行数": "Número máximo de linhas", - "调试浏览器": "Navegador de Depuração", "显示引擎": "Motor de visualização", "阴影字体": "Tipo de letra de sombra", "额外的html": "HTML adicional", diff --git a/py/files/lang/ru.json b/py/files/lang/ru.json index 0a4812ef..7a01cecd 100644 --- a/py/files/lang/ru.json +++ b/py/files/lang/ru.json @@ -37,7 +37,6 @@ "目标语言": "Целевой язык", "最短翻译字数": "Min слов для перевода", "最长翻译字数": "Max слов для перевода", - "录制翻译文件": "Запись переводов в файл", "离线翻译": "Автономный перевод", "在线翻译": "Онлайновый перевод", "注册在线翻译": "С регистрацией", @@ -57,9 +56,6 @@ "字体样式": "Стиль шрифта", "居中显示": "Центрировать", "描边宽度": "Ширина обрезки", - "显示显示原文按钮": "Кнопка источника текста", - "显示朗读按钮": "Кнопка TTS", - "显示游戏静音按钮": "Кнопка звука в игре", "游戏窗口移动时同步移动": "Синхронизировать перемещение окна игры", "语音设置": "Настройка звука", "火山TTS": "Вулканический TTS", @@ -175,9 +171,7 @@ "字体": "Шрифт", "飞书": "Летающая книга", "编辑": "Редактирование", - "显示编辑按钮": "Показать кнопку редактирования", "移动": "Переместить", - "显示移动按钮": "Показать кнопку перемещения", "设置Token": "Настройка Token", "该功能可能会导致游戏崩溃!": "Эта функция может привести к сбою игры!", "警告": "предупреждение", @@ -201,7 +195,6 @@ "自定义翻译": "Пользовательский перевод", "说明": "Примечания", "分析图像更新+周期执行": "Анализ обновлений изображений + цикл выполнения", - "调整游戏窗口按钮": "Настройка кнопки окна игры", "内嵌的翻译器": "Встроенный переводчик", "代理设置": "Параметры прокси", "自动更新": "Автоматическое обновление", @@ -211,7 +204,6 @@ "语音合成": "Синтез речи", "文本处理": "Текстовая обработка", "预处理方法": "Метод предварительной обработки", - "连接进程": "Процесс подключения", "设置代码页": "Настройка кодовой страницы", "设置刷新延迟": "Задержка обновления", "将汉字转换成繁体/日式汉字": "Преобразование китайских иероглифов в японские иероглифы", @@ -246,7 +238,6 @@ "当前MD5": "Текущий MD5", "修改": "Изменения", "翻译结果修正": "Результаты перевода исправлены", - "翻译结果修正按钮": "Кнопка коррекции результатов перевода", "过滤文本中的非日语字符集字符": "Неяпонские символы в фильтрованном тексте", "过滤其他乱码": "Отфильтровать другие коды", "过滤乱码文本": "Фильтровать зашифрованный текст", @@ -257,7 +248,6 @@ "问题反馈": "Обратная связь", "附带上下文个数": "Количество дополнительных контекстов", "备忘录": "Меморандум", - "备忘录按钮": "Кнопка Памятка", "插入图片": "Вставить изображение", "当前权限": "Текущие полномочия", "非管理员": "Не администратор", @@ -266,7 +256,6 @@ "所选文件格式错误!": "Ошибка формата выбранного файла!", "进程号": "Номер процесса", "进程": "Процесс", - "发现": "Обнаружено", "失败": "Неудача", "仅使用激活的翻译": "Использовать только активный перевод", "云译": "Облачный перевод", @@ -334,12 +323,8 @@ "音街ウナ": "Ён! Ёна!", "鷹の爪吉田": "Ястребиный коготь Йошида", "ギャラ子": "Цзянь Цзяцзы", - "游戏信息": "Информация об игре", "意大利语": "Итальянский язык", "端口号": "Номер порта", - "连接失败": "Ошибка соединения", - "连接成功": "Подключение успешно", - "端口冲突": "Конфликт портов", "缩放模式": "Режим масштабирования", "捕获模式": "Режим захвата", "捕获标题栏": "Захват заголовка", @@ -373,7 +358,6 @@ "sqlite翻译记录": "SQlite Перевод записей", "json翻译文件": "JSON Перевод документов", "选择图标": "Выберите значок", - "图标2": "Значок 2", "刷新": "Обновить", "读取剪贴板": "Прочитать буфер обмена", "进行一次OCR": "Выполнить OCR", @@ -538,7 +522,6 @@ "最小行数": "Минимальное число строк", "最大行数": "Максимальное число строк", "兼容接口": "Совместимый интерфейс", - "调试浏览器": "Отладка браузера", "手动翻译": "Ручной перевод", "显示引擎": "Показать движок", "阴影字体": "Шрифт теней", diff --git a/py/files/lang/sv.json b/py/files/lang/sv.json index 353b6345..044e9743 100644 --- a/py/files/lang/sv.json +++ b/py/files/lang/sv.json @@ -2,7 +2,6 @@ "使用代理": "Använda en proxy", "进程": "process", "sqlite翻译记录": "SQLite översättningspost", - "显示编辑按钮": "Visa redigeringsknapp", "过滤换行符": "Filtreringsradbrytningar", "文本设置": "Textinställningar", "过滤数字": "Filtreringsnummer", @@ -48,26 +47,19 @@ "显示帧率": "Visa bildhastighet", "最新版本": "Senaste versionen", "搜索": "söka", - "游戏信息": "Spelinformation", "特殊码": "specifik kod", - "端口冲突": "Hamnkonflikt", - "连接进程": "Anslutningsprocess", - "发现": "hitta", "取消": "avbryt", "合并多行识别结果": "Sammanfoga flera rader med igenkänningsresultat", "附加音源": "Ytterligare ljudkälla", - "图标2": "Ikon 2", "如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~": "Om du känner att denna programvara är till hjälp för dig, vänligen skanna QR-koden på WeChat för att sponsra.", "窗口截图": "Fönsterskärmdump", "自动获取系统代理": "Hämta automatiskt systemproxy", "是否使用快捷键": "Om kortkommandon ska användas", "最小化到托盘": "Minimera till bricka", "打开目录": "Öppna katalog", - "录制翻译文件": "Spela in översättningsfiler", "字体样式": "Teckensnittsstil", "搜索文本过短!": "Söktexten är för kort!", "的OCR模型": "OCR-modellen", - "备忘录按钮": "Memoknapp", "小学馆": "Elementary School Hall", "光标": "markör", "项目网站": "Projektets webbplats", @@ -225,7 +217,6 @@ "OCR设置": "OCR-inställningar", "文本输入": "Textinmatning", "语音": "röst", - "连接失败": "Anslutning misslyckades", "居中显示": "Centrera visningen", "翻译及OCR语言": "Översättning och OCR-språk", "管理员": "administratörer", @@ -233,11 +224,9 @@ "描边字体": "Teckensnitt för streck", "默认设置": "förvald inställning", "意大利语": "Italienska", - "显示显示原文按钮": "Visa originaltextknapp", "去除花括号{}": "Ta bort lockiga hängslen", "保留原文": "Behåll originaltexten", "朗读原文": "Läs originaltexten högt", - "连接成功": "Anslutning lyckad", "修改游戏字体": "Ändra spelteckensnitt", "选择文本": "Markera text", "json文件": "JSON- fil", @@ -255,7 +244,6 @@ "显示分词结果": "Visa segmenteringsresultat", "退出": "Logga ut", "自定义翻译": "Anpassad översättning", - "显示朗读按钮": "Visa läsknappen", "显示/隐藏原文": "Visa/dölj originaltext", "清空": "tom", "刷新": "Uppdatera", @@ -289,7 +277,6 @@ "東北ずん子/东北俊子": "Dongbei Kunzi/Dongbei Junzi", "波兰语": "Polska språket", "接口": "Gränssnitt", - "翻译结果修正按钮": "Korrigeringsknapp för översättningsresultat", "警告": "varning", "俄语": "Ryska", "文字更新分析": "Analys av textuppdatering", @@ -354,7 +341,6 @@ "替换": "ersätt", "绘制光标": "Rita markör", "颜色设置": "färginställning", - "调整游戏窗口按钮": "Justera spelfönsterknappen", "HOOK设置": "HOOK-inställningar", "結月ゆかり": "I slutet av månaden", "空白": "tomt", @@ -367,7 +353,6 @@ "选择文件": "Välj fil", "自动翻译": "Automatisk översättning", "接続詞": "Mottagande ord", - "显示游戏静音按钮": "Visa spelavstängningsknapp", "東北ずん子": "Nordöstra Kunzi", "目标语言": "Målspråk", "乌克兰语": "Ukrainska språket", @@ -375,7 +360,6 @@ "云译": "Molnöversättning", "秒": "andra", "所选文件格式错误!": "Det valda filformatet är felaktigt!", - "显示移动按钮": "Visa flyttknappen", "过滤英文字母": "Filtrera engelska bokstäver", "进行一次OCR": "Utför OCR en gång", "选取OCR范围——立即": "Välj OCR-område - omedelbart", @@ -545,7 +529,6 @@ "最大字数": "Maximalt ordantal", "最小行数": "Minsta antal rader", "最大行数": "Maximalt antal rader", - "调试浏览器": "Felsökningsbläddrare", "显示引擎": "Visningsmotor", "阴影字体": "Skuggteckensnitt", "额外的html": "Ytterligare HTML", diff --git a/py/files/lang/th.json b/py/files/lang/th.json index 71262fa4..a7727346 100644 --- a/py/files/lang/th.json +++ b/py/files/lang/th.json @@ -2,7 +2,6 @@ "使用代理": "ใช้พร็อกซี่", "进程": "กระบวนการ", "sqlite翻译记录": "บันทึกการแปล sqlite", - "显示编辑按钮": "แสดงปุ่มแก้ไข", "过滤换行符": "กรองบรรทัดแบ่ง", "文本设置": "การตั้งค่าข้อความ", "过滤数字": "กรองตัวเลข", @@ -47,26 +46,19 @@ "显示帧率": "แสดงอัตราเฟรม", "最新版本": "รุ่นล่าสุด", "搜索": "ค้นหา", - "游戏信息": "ข้อมูลเกม", "特殊码": "รหัสพิเศษ", - "端口冲突": "ความขัดแย้งของพอร์ต", - "连接进程": "กระบวนการเชื่อมต่อ", - "发现": "ค้นพบ", "取消": "การยกเลิก", "合并多行识别结果": "รวมผลการระบุหลายบรรทัด", "附加音源": "แหล่งเสียงเพิ่มเติม", - "图标2": "ไอคอน 2", "如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~": "หากคุณรู้สึกว่าซอฟต์แวร์นี้เป็นประโยชน์สำหรับคุณยินดีต้อนรับสู่การสนับสนุนการสแกนรหัส WeChat ขอบคุณ ~", "自动获取系统代理": "รับพร็อกซีระบบอัตโนมัติ", "是否使用快捷键": "จะใช้ปุ่มลัดหรือไม่", "历史翻译": "การแปลประวัติศาสตร์", "最小化到托盘": "ลดขนาดลงในถาด", "打开目录": "เปิดไดเรกทอรี", - "录制翻译文件": "บันทึกไฟล์แปล", "字体样式": "รูปแบบตัวอักษร", "搜索文本过短!": "ค้นหาข้อความสั้นเกินไป!", "的OCR模型": "รุ่น OCR", - "备忘录按钮": "ปุ่มบันทึก", "小学馆": "ศาลาประถมศึกษา", "光标": "เคอร์เซอร์", "项目网站": "เว็บไซต์โครงการ", @@ -222,7 +214,6 @@ "OCR设置": "การตั้งค่า OCR", "文本输入": "ป้อนข้อความ", "语音": "เสียงพูด", - "连接失败": "การเชื่อมต่อล้มเหลว", "文本搜索": "ค้นหาข้อความ", "居中显示": "แสดงกึ่งกลาง", "翻译及OCR语言": "การแปลและภาษา OCR", @@ -231,11 +222,9 @@ "描边字体": "Designedge ตัวอักษร", "默认设置": "ตั้งค่าปริยาย", "意大利语": "อิตาลี", - "显示显示原文按钮": "แสดงปุ่มแสดงข้อความต้นฉบับ", "去除花括号{}": "ลบวงเล็บดอกไม้ {}", "保留原文": "เก็บต้นฉบับไว้", "朗读原文": "อ่านต้นฉบับ", - "连接成功": "เชื่อมต่อสำเร็จ", "修改游戏字体": "แก้ไขเกม แบบอักษร", "选择文本": "เลือกข้อความ", "json文件": "ไฟล์ json", @@ -253,7 +242,6 @@ "显示分词结果": "แสดงผลการแบ่งคำ", "退出": "ออกจาก", "自定义翻译": "การแปลที่กำหนดเอง", - "显示朗读按钮": "แสดงปุ่มอ่านออกเสียง", "显示/隐藏原文": "แสดง/ซ่อนข้อความต้นฉบับ", "清空": "ล้าง", "刷新": "รีเฟรช", @@ -287,7 +275,6 @@ "東北ずん子/东北俊子": "โทโฮคุ ず家 / Tohoku Toshiko", "波兰语": "โปแลนด์", "接口": "อินเตอร์เฟซ", - "翻译结果修正按钮": "ปุ่มแก้ไขผลการแปล", "警告": "คำเตือน", "俄语": "ภาษารัสเซีย", "文字更新分析": "การวิเคราะห์การอัปเดตคำ", @@ -352,7 +339,6 @@ "替换": "แทนที่", "绘制光标": "วาดเคอร์เซอร์", "颜色设置": "การตั้งค่าสี", - "调整游戏窗口按钮": "ปรับปุ่มหน้าต่างเกม", "HOOK设置": "การตั้งค่า HOOK", "結月ゆかり": "เน็ตมูนคะคะริ", "空白": "ว่างเปล่า", @@ -365,7 +351,6 @@ "选择文件": "เลือกไฟล์", "自动翻译": "การแปลอัตโนมัติ", "接続詞": "続คำ", - "显示游戏静音按钮": "แสดงปุ่มปิดเสียงเกม", "東北ずん子": "โทโฮคุ", "目标语言": "ภาษาเป้าหมาย", "乌克兰语": "ยูเครน", @@ -373,7 +358,6 @@ "云译": "การแปลคลาวด์", "秒": "วินาที", "所选文件格式错误!": "รูปแบบแฟ้มที่เลือกไม่ถูกต้อง!", - "显示移动按钮": "แสดงปุ่มย้าย", "过滤英文字母": "กรองตัวอักษรภาษาอังกฤษ", "进行一次OCR": "ทำ OCR หนึ่งครั้ง", "选取OCR范围——立即": "เลือกช่วง OCR - ตอนนี้", @@ -538,7 +522,6 @@ "最小行数": "จำนวนแถวขั้นต่ำ", "最大行数": "จำนวนแถวสูงสุด", "兼容接口": "อินเตอร์เฟซที่เข้ากันได้", - "调试浏览器": "ดีบักเบราว์เซอร์", "手动翻译": "การแปลด้วยตนเอง", "显示引擎": "แสดงเครื่องยนต์", "阴影字体": "Shadow ตัวอักษร", diff --git a/py/files/lang/tr.json b/py/files/lang/tr.json index 5a7ffdf0..14b8fb91 100644 --- a/py/files/lang/tr.json +++ b/py/files/lang/tr.json @@ -37,7 +37,6 @@ "目标语言": "hedef dili", "最短翻译字数": "Tercüme edilen kelimelerin en az sayısı", "最长翻译字数": "Tercüme edilen sözlerin en büyük sayısı", - "录制翻译文件": "Çeviri dosyasını kaydedin", "离线翻译": "Devre dışı çeviri", "在线翻译": "İnternet çevirisi", "注册在线翻译": "Çevrimindeki çeviri için kaydedin", @@ -57,9 +56,6 @@ "字体样式": "Yazıtipi stili", "居中显示": "Orta gösterim", "描边宽度": "stroke-method", - "显示显示原文按钮": "Metin düğmesini göster", - "显示朗读按钮": "Okuma düğmesini göster", - "显示游戏静音按钮": "Oyun sessiz düğmesini göster", "游戏窗口移动时同步移动": "Oyun penceresi hareket ettiğinde eşzamanlı hareket et", "语音设置": "Ses ayarları", "火山TTS": "Volcano TTS", @@ -175,9 +171,7 @@ "字体": "typeface", "飞书": "isimsiz mektup", "编辑": "edit", - "显示编辑按钮": "Düzenleme düğmesini göster", "移动": "hareket et", - "显示移动按钮": "Taşıma Düğmesini Göster", "设置Token": "Token ayarlayın", "该功能可能会导致游戏崩溃!": "Bu fonksiyon oyunu mahvedebilir!", "警告": "uyarı", @@ -201,7 +195,6 @@ "自定义翻译": "Özel çevirim", "说明": "açıklayın", "分析图像更新+周期执行": "Görüntü güncellemesi", - "调整游戏窗口按钮": "Oyun pencere düğmelerini ayarla", "内嵌的翻译器": "İçeri yatırılmış çevirici", "代理设置": "Proksi Ayarları", "自动更新": "Otomatik güncelleştirme", @@ -211,7 +204,6 @@ "语音合成": "konuşma sintezi", "文本处理": "metin işleme", "预处理方法": "Özellik yöntemi", - "连接进程": "Bağlantı süreci", "设置代码页": "Kod sayfasını ayarla", "设置刷新延迟": "Yeniden yenileme gecikmesini ayarlayın", "将汉字转换成繁体/日式汉字": "Çin karakterlerini geleneksel/Japon karakterlerine dönüştür", @@ -246,7 +238,6 @@ "当前MD5": "Ağımdaki MD5", "修改": "değiştir", "翻译结果修正": "Tercüme sonuçlarının düzeltmesi", - "翻译结果修正按钮": "Çeviri sonuçları düzeltme düğmesi", "过滤文本中的非日语字符集字符": "Japon olmayan karakter seti karakterleri metinde sil", "过滤其他乱码": "Diğer çöplü kodları sil", "过滤乱码文本": "Süzgülenmiş metin", @@ -257,7 +248,6 @@ "问题反馈": "Problem geri verisi", "附带上下文个数": "Yapılan anlaşmalar sayısı", "备忘录": "memorandum", - "备忘录按钮": "Memo düğmesi", "插入图片": "Resim Gir", "当前权限": "Güncel izinler", "非管理员": "Yönetici olmayan", @@ -266,7 +256,6 @@ "所选文件格式错误!": "Seçili dosya format ı yanlış!", "进程号": "İşlem numarası", "进程": "işlem", - "发现": "Bul", "失败": "başarısız", "仅使用激活的翻译": "Sadece aktif çevirimleri kullan", "云译": "Bulud çevirimi", @@ -334,12 +323,8 @@ "音街ウナ": "Yin Caddesi Roast", "鷹の爪吉田": "Kartal Yushida", "ギャラ子": "Gâララギャラ", - "游戏信息": "Oyun Bilgisi", "意大利语": "İtalyanca", "端口号": "Port numarası", - "连接失败": "bağlantı başarısız oldu", - "连接成功": "Başarılı bağlanmış", - "端口冲突": "Port Çatışması", "缩放模式": "Yakınlaştırma tarzı", "捕获模式": "Yakalama modusu", "捕获标题栏": "Başlık Çubuğunu Yap", @@ -373,7 +358,6 @@ "sqlite翻译记录": "Sqlite çevirim kayıtları", "json翻译文件": "JSON çevirim dosyası", "选择图标": "İşaretçiyi seç", - "图标2": "İşaretçi 2", "刷新": "Tazele", "读取剪贴板": "Pano Oku", "进行一次OCR": "OCR yap", @@ -538,7 +522,6 @@ "最小行数": "En az satır sayısı", "最大行数": "Azamik satır sayısı", "兼容接口": "Kompatibil arayüz", - "调试浏览器": "Hata ayıklama tarayıcısı", "手动翻译": "Elle çevirim", "显示引擎": "Gösterim Motoru", "阴影字体": "Gölge yazıtipi", diff --git a/py/files/lang/uk.json b/py/files/lang/uk.json index 596ce98e..61137633 100644 --- a/py/files/lang/uk.json +++ b/py/files/lang/uk.json @@ -37,7 +37,6 @@ "目标语言": "мова призначення", "最短翻译字数": "Мінімальна кількість перекладених слів", "最长翻译字数": "Максимальна кількість перекладених слів", - "录制翻译文件": "Запис файлів перекладу", "离线翻译": "Офлайн переклад", "在线翻译": "онлайн переклад", "注册在线翻译": "Реєструватися для онлайн перекладу", @@ -205,7 +204,6 @@ "语音合成": "синтез мовлення", "文本处理": "текстове обробка", "预处理方法": "Метод переобробки", - "连接进程": "Процес з’ єднання", "设置代码页": "Встановити сторінку коду", "设置刷新延迟": "Встановити затримку оновлення", "将汉字转换成繁体/日式汉字": "Перетворити китайські символи на традиційні/японські символи", @@ -258,7 +256,6 @@ "所选文件格式错误!": "Вибраний формат файла неправильний!", "进程号": "Номер процесу", "进程": "процес", - "发现": "find", "失败": "невдачі", "仅使用激活的翻译": "Використовувати лише активні переклади", "云译": "Переклад хмар", @@ -267,14 +264,6 @@ "处理": "ручка", "波兰语": "ПольськаName", "窗口置顶": "Верхнє вікно", - "显示显示原文按钮": "Показати початкову кнопку", - "显示朗读按钮": "Показати кнопку вимови", - "显示移动按钮": "Показати кнопку пересування", - "翻译结果修正按钮": "Кнопка виправлення результатів перекладу", - "显示编辑按钮": "Показати кнопку редагування", - "调整游戏窗口按钮": "Налаштувати кнопки вікна гри", - "显示游戏静音按钮": "Показувати кнопку вимкнути гру", - "备忘录按钮": "Кнопка пам' яті", "仅": "лише", "任务栏中显示": "Show in taskbar", "移除": "вилучити", @@ -334,12 +323,8 @@ "音街ウナ": "Вулица Йін Рост", "鷹の爪吉田": "Орл- Клау- Йошіда", "ギャラ子": "\\\\ 12462;\\\\ 12462;\\\\ 12462Name", - "游戏信息": "Інформація про гру", "意大利语": "Італійська", "端口号": "Номер порту", - "连接失败": "connection failed", - "连接成功": "Успішно з’ єднано", - "端口冲突": "Конфлікт порту", "缩放模式": "Режим масштабу", "捕获模式": "Режим захоплення", "捕获标题栏": "Панель заголовка захоплення", @@ -373,7 +358,6 @@ "sqlite翻译记录": "Записи перекладу Sqlite", "json翻译文件": "Файл перекладу JSON", "选择图标": "Виберіть піктограму", - "图标2": "Піктограма 2", "刷新": "Оновити", "读取剪贴板": "Читати буфер обміну даними", "进行一次OCR": "Виконати OCR", @@ -538,7 +522,6 @@ "最小行数": "Мінімальна кількість рядків", "最大行数": "Максимальна кількість рядків", "兼容接口": "Сумісний інтерфейс", - "调试浏览器": "Відладка навігатора", "手动翻译": "Ручний переклад", "显示引擎": "Рушій показу", "阴影字体": "Шрифт тіні", diff --git a/py/files/lang/vi.json b/py/files/lang/vi.json index 794e12b4..338b40a9 100644 --- a/py/files/lang/vi.json +++ b/py/files/lang/vi.json @@ -37,7 +37,6 @@ "目标语言": "Ngôn ngữ đích", "最短翻译字数": "Số lượng từ phiên dịch ngắn nhất", "最长翻译字数": "Số lượng từ phiên dịch dài nhất", - "录制翻译文件": "Ghi lại tập tin dịch", "离线翻译": "Dịch ngoại tuyến", "在线翻译": "Dịch trực tuyến", "注册在线翻译": "Đăng ký dịch trực tuyến", @@ -57,9 +56,6 @@ "字体样式": "Kiểu phông chữ", "居中显示": "Hiện ở giữa", "描边宽度": "Chiều rộng viền", - "显示显示原文按钮": "Hiển thị nút hiển thị gốc", - "显示朗读按钮": "Hiện nút đọc to", - "显示游戏静音按钮": "Hiện nút tắt tiếng trò chơi", "游戏窗口移动时同步移动": "Đồng bộ di chuyển khi cửa sổ trò chơi di chuyển", "语音设置": "Thiết lập giọng nói", "火山TTS": "Núi lửa TTS", @@ -175,9 +171,7 @@ "字体": "Phông chữ", "飞书": "Sách bay", "编辑": "Chỉnh sửa", - "显示编辑按钮": "Hiện nút chỉnh sửa", "移动": "Di chuyển", - "显示移动按钮": "Hiện nút di chuyển", "设置Token": "Thiết lập Token", "该功能可能会导致游戏崩溃!": "Tính năng này có thể gây ra sự cố trò chơi!", "警告": "Cảnh báo", @@ -201,7 +195,6 @@ "自定义翻译": "Bản dịch tùy chỉnh", "说明": "Mô tả", "分析图像更新+周期执行": "Phân tích cập nhật hình ảnh+thực hiện chu kỳ", - "调整游戏窗口按钮": "Điều chỉnh nút cửa sổ trò chơi", "内嵌的翻译器": "Trình dịch nội tuyến", "代理设置": "Thiết lập ủy nhiệm", "自动更新": "Cập nhật tự động", @@ -211,7 +204,6 @@ "语音合成": "Tổng hợp giọng nói", "文本处理": "Xử lý văn bản", "预处理方法": "Phương pháp tiền xử lý", - "连接进程": "Quá trình kết nối", "设置代码页": "Thiết lập trang mã", "设置刷新延迟": "Đặt độ trễ làm mới", "将汉字转换成繁体/日式汉字": "Chuyển đổi Kanji sang Kanji truyền thống/Nhật Bản", @@ -246,7 +238,6 @@ "当前MD5": "MD5 hiện tại", "修改": "Sửa đổi", "翻译结果修正": "Sửa kết quả dịch", - "翻译结果修正按钮": "Kết quả dịch Nút sửa chữa", "过滤文本中的非日语字符集字符": "Bộ lọc ký tự bộ ký tự không phải tiếng Nhật trong văn bản", "过滤其他乱码": "Lọc mã lộn xộn khác", "过滤乱码文本": "Lọc văn bản lộn xộn", @@ -257,7 +248,6 @@ "问题反馈": "Phản hồi câu hỏi", "附带上下文个数": "Số context", "备忘录": "Bản ghi nhớ", - "备忘录按钮": "Nút ghi nhớ", "插入图片": "Chèn ảnh", "当前权限": "Quyền hiện tại", "非管理员": "Không quản trị", @@ -266,7 +256,6 @@ "所选文件格式错误!": "Lỗi định dạng tập tin đã chọn!", "进程号": "Số tiến trình", "进程": "Quy trình", - "发现": "Khám phá", "失败": "Thất bại", "仅使用激活的翻译": "Chỉ sử dụng bản dịch kích hoạt", "云译": "Dịch Mây", @@ -334,12 +323,8 @@ "音街ウナ": "Phố âm thanh ウナ", "鷹の爪吉田": "Đại bàng~Claw Yoshida", "ギャラ子": "👉👉👉👉👉👉👉👉👉👉👉👉👉👉👉", - "游戏信息": "Thông tin trò chơi", "意大利语": "Tiếng Ý", "端口号": "Số cổng", - "连接失败": "Lỗi kết nối", - "连接成功": "Kết nối thành công", - "端口冲突": "Xung đột cổng", "缩放模式": "Chế độ phóng to", "捕获模式": "Chế độ chụp", "捕获标题栏": "Bắt thanh tiêu đề", @@ -373,7 +358,6 @@ "sqlite翻译记录": "Bản dịch sqlite", "json翻译文件": "JSON dịch tài liệu", "选择图标": "Chọn biểu tượng", - "图标2": "Biểu tượng 2", "刷新": "Làm mới", "读取剪贴板": "Đọc bảng nháp", "进行一次OCR": "Thực hiện OCR", @@ -538,7 +522,6 @@ "最小行数": "Số dòng tối thiểu", "最大行数": "Số dòng tối đa", "兼容接口": "Giao diện tương thích", - "调试浏览器": "Gỡ lỗi trình duyệt", "手动翻译": "Dịch thủ công", "显示引擎": "Công cụ hiển thị", "阴影字体": "Phông bóng", diff --git a/py/files/lang/zh.json b/py/files/lang/zh.json index f81ec45c..7a86ee93 100644 --- a/py/files/lang/zh.json +++ b/py/files/lang/zh.json @@ -2,7 +2,6 @@ "使用代理": "", "进程": "", "sqlite翻译记录": "", - "显示编辑按钮": "", "过滤换行符": "", "文本设置": "", "过滤数字": "", @@ -48,15 +47,10 @@ "显示帧率": "", "最新版本": "", "搜索": "", - "游戏信息": "", "特殊码": "", - "端口冲突": "", - "连接进程": "", - "发现": "", "取消": "", "合并多行识别结果": "", "附加音源": "", - "图标2": "", "如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~": "", "窗口截图": "", "自动获取系统代理": "", @@ -64,11 +58,9 @@ "最小化到托盘": "", "打开目录": "", "手动设置代理": "", - "录制翻译文件": "", "字体样式": "", "搜索文本过短!": "", "的OCR模型": "", - "备忘录按钮": "", "小学馆": "", "光标": "", "项目网站": "", @@ -228,7 +220,6 @@ "OCR设置": "", "文本输入": "", "语音": "", - "连接失败": "", "居中显示": "", "翻译及OCR语言": "", "管理员": "", @@ -236,11 +227,9 @@ "描边字体": "", "默认设置": "", "意大利语": "", - "显示显示原文按钮": "", "去除花括号{}": "", "保留原文": "", "朗读原文": "", - "连接成功": "", "修改游戏字体": "", "选择文本": "", "json文件": "", @@ -258,7 +247,6 @@ "显示分词结果": "", "退出": "", "自定义翻译": "", - "显示朗读按钮": "", "显示/隐藏原文": "", "清空": "", "刷新": "", @@ -292,7 +280,6 @@ "東北ずん子/东北俊子": "", "波兰语": "", "接口": "", - "翻译结果修正按钮": "", "警告": "", "俄语": "", "文字更新分析": "", @@ -360,7 +347,6 @@ "绘制光标": "", "颜色设置": "", "简体中文": "", - "调整游戏窗口按钮": "", "HOOK设置": "", "結月ゆかり": "", "空白": "", @@ -374,7 +360,6 @@ "选择文件": "", "自动翻译": "", "接続詞": "", - "显示游戏静音按钮": "", "拉丁": "", "東北ずん子": "", "目标语言": "", @@ -383,7 +368,6 @@ "云译": "", "秒": "", "所选文件格式错误!": "", - "显示移动按钮": "", "过滤英文字母": "", "进行一次OCR": "", "选取OCR范围——立即": "", @@ -554,7 +538,6 @@ "最大字数": "", "最小行数": "", "最大行数": "", - "调试浏览器": "", "显示引擎": "", "阴影字体": "", "额外的html": "",