This commit is contained in:
恍兮惚兮 2024-06-24 02:00:44 +08:00
parent d1d0500944
commit 016534cc6a
46 changed files with 1989 additions and 1676 deletions

View File

@ -57,6 +57,7 @@ class commonstylebase(QWidget):
class MAINUI:
def __init__(self) -> None:
super().__init__()
self.update_avalable = False
self.lasttranslatorindex = 0
self.translators = {}
self.cishus = {}
@ -80,6 +81,7 @@ class MAINUI:
self.edittextui_cached = None
self.edittextui_sync = True
self.sqlsavegameinfo = None
self.notifyonce = set()
@property
def textsource(self):
@ -975,7 +977,7 @@ class MAINUI:
qtawesome.icon("fa.gear"),
_TR("&设置"),
trayMenu,
triggered=lambda: self.commonstylebase.showsignal.emit(),
triggered=lambda: self.settin_ui.showsignal.emit(),
)
quitAction = QAction(
qtawesome.icon("fa.times"),
@ -996,6 +998,15 @@ class MAINUI:
self.tray.show()
self.tray.setContextMenu(trayMenu)
def showtraymessage(self, title, message):
self.tray.showMessage(_TR(title), _TR(message), QSystemTrayIcon.MessageIcon())
def showneedrestart(self, title, _):
if title in self.notifyonce:
return
self.notifyonce.add(title)
self.showtraymessage(title, "这一设置将会在下一次打开软件时生效")
def destroytray(self):
self.tray.hide()
self.tray = None

View File

@ -44,7 +44,7 @@ from gui.usefulwidget import (
getsimplepatheditor,
getboxlayout,
getlineedit,
MySwitch2,
MySwitch,
auto_select_webview,
Prompt_dialog,
getsimplecombobox,
@ -990,7 +990,7 @@ class dialog_setting_game_internal(QWidget):
QLabel(_TR("语音修正")),
getsimpleswitch(savehook_new_data[exepath], "tts_repair"),
getIconButton(
callback=lambda x: noundictconfigdialog1(
callback=lambda : noundictconfigdialog1(
self,
savehook_new_data[exepath]["tts_repair_regex"],
"语音修正",
@ -1704,9 +1704,9 @@ class dialog_savedgame_integrated(saveposwindow):
self.internallayout.addWidget(QWidget())
self.setCentralWidget(w)
self.layout1btn = MySwitch2(self, icons=["fa.th", "fa.th"], size=20)
self.layout2btn = MySwitch2(self, icons=["fa.th-list", "fa.th-list"], size=20)
self.layout3btn = MySwitch2(self, icons=["fa.list", "fa.list"], size=20)
self.layout1btn = MySwitch(self, icon="fa.th", )
self.layout2btn = MySwitch(self, icon="fa.th-list", )
self.layout3btn = MySwitch(self, icon="fa.list" , )
self.layout1btn.clicked.connect(functools.partial(self.selectlayout, 0))
self.layout2btn.clicked.connect(functools.partial(self.selectlayout, 1))
self.layout3btn.clicked.connect(functools.partial(self.selectlayout, 2))

View File

@ -1,5 +1,6 @@
from qtsymbols import *
import functools, importlib
from traceback import print_exc
import qtawesome
from myutils.config import globalconfig, _TR, _TRL
from myutils.utils import makehtml
@ -200,7 +201,10 @@ class autoinitdialog(QDialog):
l[0][l[1]] = l[2]()
self.close()
if callback:
callback()
try:
callback()
except:
print_exc()
def __getv(l):
return l
@ -403,9 +407,6 @@ class postconfigdialog_(QDialog):
formLayout = QVBoxLayout(self) # 配置layout
key = list(configdict.keys())[0]
lb = QLabel(self)
lb.setText(_TR(key))
formLayout.addWidget(lb)
model = QStandardItemModel(len(configdict[key]), 1, self)
row = 0

View File

@ -16,9 +16,10 @@ from gui.setting_proxy import setTab_proxy
from gui.setting_transopti import setTab7_lazy, delaysetcomparetext
from gui.setting_about import (
setTab_aboutlazy,
setTab_update,
versionlabelmaybesettext,
updateprogress,
getversion,
versioncheckthread,
)
@ -34,12 +35,14 @@ class TabWidget(QWidget):
layout.setContentsMargins(0, 0, 0, 0)
layout.setSpacing(0)
self.setLayout(layout)
self.splitter = QSplitter()
layout.addWidget(self.splitter)
self.list_widget = QListWidget(self)
self.list_widget.setStyleSheet("QListWidget:focus {outline: 0px;}")
self.tab_widget = QTabWidget(self)
self.tab_widget.tabBar().hide()
layout.addWidget(self.list_widget)
layout.addWidget(self.tab_widget)
self.splitter.addWidget(self.list_widget)
self.splitter.addWidget(self.tab_widget)
self.currentChanged.connect(
self.tab_widget.setCurrentIndex
) # 监听 Tab 切换事件
@ -83,9 +86,9 @@ class Setting(closeashidewindow):
self.versiontextsignal.connect(
functools.partial(versionlabelmaybesettext, self)
)
self.progresssignal.connect(lambda text, val: updateprogress(self, text, val))
self.progresssignal.connect(functools.partial(updateprogress, self))
self.isfirst = True
getversion(self)
versioncheckthread(self)
checkconnected(self)
registrhotkeys(self)
@ -111,8 +114,9 @@ class Setting(closeashidewindow):
"语音合成",
"快捷按键",
"语言设置",
"代理设置",
"其他设置",
"网络设置",
"版本更新",
"资源下载",
]
),
[
@ -125,6 +129,7 @@ class Setting(closeashidewindow):
functools.partial(setTab_quick, self),
functools.partial(setTablang, self),
functools.partial(setTab_proxy, self),
functools.partial(setTab_update, self),
functools.partial(setTab_aboutlazy, self),
],
klass=TabWidget,
@ -133,19 +138,21 @@ class Setting(closeashidewindow):
self.setCentralWidget(self.tab_widget)
do()
self.tab_widget.setStyleSheet(
"""QListWidget {
font:16pt ; }
f"""QListWidget {{
font:{globalconfig["settingfontsize"] + 2}pt {globalconfig["settingfonttype"]}; }}
"""
)
width = 0
fn = QFont()
fn.setPixelSize(16)
fn.setPointSize(globalconfig["settingfontsize"] + 2)
fn.setFamily(globalconfig["settingfonttype"])
fm = QFontMetrics(fn)
for title in self.tab_widget.titles:
width = max(fm.size(0, title).width(), width)
width += 100
self.tab_widget.list_widget.setFixedWidth(width)
width += 50
self.tab_widget.splitter.setStretchFactor(0, 0)
self.tab_widget.splitter.setStretchFactor(1, 1)
self.tab_widget.splitter.setSizes([width, self.tab_widget.width() - width])
def opensolvetextfun(self):
self.show()

View File

@ -1,52 +1,169 @@
from qtsymbols import *
import platform, functools, sys, os
import winsharedutils, gobject
import platform, functools, sys
import winsharedutils, queue
from myutils.config import globalconfig, _TR, static_data, _TRL
from myutils.wrapper import threader
from myutils.utils import makehtml, getimageformatlist
from myutils.githubupdate import updatemethod, getvesionmethod
from myutils.wrapper import threader, tryprint
from myutils.utils import makehtml
import requests, time
import shutil, gobject
from myutils.proxy import getproxy
from traceback import print_exc
import zipfile, os
import subprocess
from gui.usefulwidget import (
D_getsimpleswitch,
D_getsimplecombobox,
getsimplecombobox,
makescrollgrid,
makesubtab_lazy,
)
from gui.setting_display_text import on_not_find_qweb
versionchecktask = queue.Queue()
def getvesionmethod():
try:
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cache-Control": "max-age=0",
"Proxy-Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
}
res = requests.get(
"https://api.github.com/repos/HIllya51/LunaTranslator/releases/latest",
headers=headers,
verify=False,
proxies=getproxy(("github", "versioncheck")),
).json()
# print(res)
_version = res["tag_name"]
return _version
except:
print_exc()
return None
def doupdate():
if not gobject.baseobject.update_avalable:
return
if platform.architecture()[0] == "64bit":
bit = ""
_6432 = "64"
elif platform.architecture()[0] == "32bit":
bit = "_x86"
_6432 = "32"
os.makedirs("./cache", exist_ok=True)
shutil.copy(rf".\files\plugins\shareddllproxy{_6432}.exe", rf".\cache\Updater.exe")
subprocess.Popen(rf".\cache\Updater.exe update .\cache\update\LunaTranslator{bit}")
def updatemethod_checkalready(size, savep):
if not os.path.exists(savep):
return False
stats = os.stat(savep)
if stats.st_size != size:
return False
return True
@tryprint
def updatemethod(_version, self):
check_interrupt = lambda: not (
globalconfig["autoupdate"] and versionchecktask.empty()
)
if platform.architecture()[0] == "64bit":
bit = ""
elif platform.architecture()[0] == "32bit":
bit = "_x86"
else:
raise Exception
url = "https://github.com/HIllya51/LunaTranslator/releases/download/{}/LunaTranslator{}.zip".format(
_version, bit
)
savep = "./cache/update/LunaTranslator{}.zip".format(bit)
os.makedirs("./cache/update", exist_ok=True)
r2 = requests.get(
url, stream=True, verify=False, proxies=getproxy(("github", "download"))
)
size = int(r2.headers["Content-Length"])
if check_interrupt():
return
if updatemethod_checkalready(size, savep):
return savep
with open(savep, "wb") as file:
sess = requests.session()
r = sess.get(
url, stream=True, verify=False, proxies=getproxy(("github", "download"))
)
file_size = 0
for i in r.iter_content(chunk_size=1024):
if check_interrupt():
return
if not i:
continue
file.write(i)
thislen = len(i)
file_size += thislen
prg = int(10000 * file_size / size)
prg100 = prg / 100
sz = int(1000 * (int(size / 1024) / 1024)) / 1000
self.progresssignal.emit(
"总大小{} MB 进度 {:0.2f}% ".format(sz, prg100), prg
)
if check_interrupt():
return
if updatemethod_checkalready(size, savep):
return savep
def uncompress(self, savep):
self.progresssignal.emit("正在解压……", 10000)
os.makedirs("./cache/update", exist_ok=True)
if os.path.exists("./cache/update/LunaTranslator"):
shutil.rmtree("./cache/update/LunaTranslator")
with zipfile.ZipFile(savep) as zipf:
zipf.extractall("./cache/update")
@threader
def getversion(self):
version = winsharedutils.queryversion(sys.argv[0])
if version is None:
self.versiontextsignal.emit("unknown")
return
versionstring = f"v{version[0]}.{version[1]}.{version[2]}"
self.versiontextsignal.emit(
("当前版本") + ":" + versionstring + " " + ("最新版本") + ":" + ("获取中")
) # ,'',url,url))
_version = getvesionmethod()
def versioncheckthread(self):
versionchecktask.put(True)
while True:
x = versionchecktask.get()
gobject.baseobject.update_avalable = False
self.progresssignal.emit("……", 0)
if not x:
continue
self.versiontextsignal.emit(_TR("获取中")) # ,'',url,url))
_version = getvesionmethod()
if _version is None:
sversion = _TR("获取失败")
else:
sversion = _version
self.versiontextsignal.emit(
(
"{}:{} {} {}:{}".format(
_TR("当前版本"),
versionstring,
platform.architecture()[0],
_TR("最新版本"),
sversion,
)
if _version is None:
sversion = _TR("获取失败")
else:
sversion = _version
self.versiontextsignal.emit(sversion)
version = winsharedutils.queryversion(sys.argv[0])
need = (
version
and _version
and version < tuple(int(_) for _ in _version[1:].split("."))
)
)
if _version is not None and version < tuple(
int(_) for _ in _version[1:].split(".")
):
if globalconfig["autoupdate"]:
updatemethod(_version, self.progresssignal.emit)
if not (need and globalconfig["autoupdate"]):
continue
savep = updatemethod(_version, self)
if not savep:
self.progresssignal.emit("自动更新失败,请手动更新", 0)
continue
uncompress(self, savep)
gobject.baseobject.update_avalable = True
self.progresssignal.emit("准备完毕,等待更新", 10000)
def updateprogress(self, text, val):
@ -75,6 +192,17 @@ def createdownloadprogress(self):
return self.downloadprogress
def wraplink(text: str):
link = "https://github.com/HIllya51/LunaTranslator/releases"
if text.startswith("v"):
link = f"https://github.com/HIllya51/LunaTranslator/releases/tag/{text}"
return makehtml(
link,
show=text,
)
def createversionlabel(self):
self.versionlabel = QLabel()
@ -83,7 +211,11 @@ def createversionlabel(self):
Qt.TextInteractionFlag.LinksAccessibleByMouse
)
try:
self.versionlabel.setText(self.versionlabel_cache)
self.versionlabel.setText(
wraplink(
self.versionlabel_cache,
)
)
except:
pass
return self.versionlabel
@ -91,11 +223,24 @@ def createversionlabel(self):
def versionlabelmaybesettext(self, x):
try:
self.versionlabel.setText(x)
self.versionlabel.setText(wraplink(x))
except:
self.versionlabel_cache = x
def solvelinkitems(grid, source):
name = source["name"]
link = source["link"]
if link[-8:] == "releases":
__ = False
elif link[-1] == "/":
__ = False
else:
__ = True
grid.append([(_TR(name), 1, ""), (makehtml(link, __), 2, "link")])
def resourcegrid(self, l):
titles = []
makewidgetsfunctions = []
@ -104,24 +249,24 @@ def resourcegrid(self, l):
sources = sourcetype["sources"]
grid = []
for source in sources:
name = source["name"]
link = source["link"]
if type(link) == list:
for i, _link in enumerate(link):
grid.append(
[
(_TR(name) if i == 0 else "", 1, ""),
(makehtml(_link, True), 2, "link"),
]
)
else:
if link[-8:] == "releases":
__ = False
elif link[-1] == "/":
__ = False
else:
__ = True
grid.append([(_TR(name), 1, ""), (makehtml(link, __), 2, "link")])
_type = source.get("type", "link")
if _type == "link":
solvelinkitems(grid, source)
elif _type == "group":
__grid = []
for link in source["links"]:
solvelinkitems(__grid, link)
grid.append(
[
(
dict(
title=source.get("name", None), type="grid", grid=__grid
),
0,
"group",
)
]
)
makewidgetsfunctions.append(functools.partial(makescrollgrid, grid))
tab, dotab = makesubtab_lazy(_TRL(titles), makewidgetsfunctions, delay=True)
l.addWidget(tab)
@ -142,112 +287,91 @@ def createimageview(self):
return lb
def _checkmaybefailed(self, idx):
if idx == 2 and not gobject.testuseqwebengine():
self.seletengeinecombo_1.setCurrentIndex(self.seletengeinecombo_1.lastindex)
on_not_find_qweb(self)
return
self.seletengeinecombo_1.lastindex = self.seletengeinecombo_1.currentIndex()
def _createseletengeinecombo_1(self):
webviews = ["MSHTML", "WebView2", "QWebEngine"]
self.seletengeinecombo_1 = getsimplecombobox(
webviews,
globalconfig,
"usewebview",
callback=functools.partial(_checkmaybefailed, self),
)
self.seletengeinecombo_1.lastindex = self.seletengeinecombo_1.currentIndex()
return self.seletengeinecombo_1
def setTab_aboutlazy(self, basel):
resourcegrid(self, basel)
def setTab_update(self, basel):
version = winsharedutils.queryversion(sys.argv[0])
if version is None:
versionstring = "unknown"
else:
versionstring = (
f"v{version[0]}.{version[1]}.{version[2]} {platform.architecture()[0]}"
)
grid2 = [
[
("自动下载更新(需要连接github)", 5),
(
D_getsimpleswitch(
globalconfig, "autoupdate", callback=lambda x: getversion(self)
),
1,
"自动更新",
D_getsimpleswitch(
globalconfig, "autoupdate", callback=versionchecktask.put
),
("", 10),
],
[(functools.partial(createversionlabel, self), 10)],
[(functools.partial(createdownloadprogress, self), 10)],
[],
[("网络请求_重启生效", -1)],
[(D_getsimplecombobox(["winhttp", "libcurl"], globalconfig, "network"), 5)],
[("网页显示", -1)],
[
(
functools.partial(_createseletengeinecombo_1, self),
5,
)
"当前版本",
versionstring,
],
[("截图保存格式", -1)],
[(D_getsimplecombobox(getimageformatlist(), globalconfig, "imageformat"), 5)],
[
"最新版本",
functools.partial(createversionlabel, self),
],
[functools.partial(createdownloadprogress, self)],
]
shuominggrid = [
[
"项目网站",
(makehtml("https://github.com/HIllya51/LunaTranslator"), 3, "link"),
],
["项目网站", makehtml("https://github.com/HIllya51/LunaTranslator")],
[
"问题反馈",
(makehtml("https://github.com/HIllya51/LunaTranslator/issues"), 3, "link"),
makehtml("https://github.com/HIllya51/LunaTranslator/issues"),
],
[
"使用说明",
(
makehtml("https://hillya51.github.io/LunaTranslator_tutorial/#/zh/"),
3,
"link",
),
makehtml("https://hillya51.github.io/LunaTranslator_tutorial/#/zh/"),
],
]
if globalconfig["languageuse"] == 0:
shuominggrid += [
[],
[
"交流群",
(makehtml("https://qm.qq.com/q/qE32v9NYBO", show=912525396), 3, "link"),
makehtml("https://qm.qq.com/q/qE32v9NYBO", show=912525396),
],
[],
[("如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~", -1)],
["如果你感觉该软件对你有帮助,欢迎微信扫码赞助,谢谢~"],
]
shuominggrid += [[(functools.partial(createimageview, self), -1)]]
shuominggrid += [[functools.partial(createimageview, self)]]
else:
shuominggrid += [
[],
[
"If you feel that the software is helpful to you, ",
],
[
'welcome to become my <a href="https://patreon.com/HIllya51">sponsor. Thank you ~ ',
],
]
makescrollgrid(
[
[
(
"If you feel that the software is helpful to you, ",
4,
"link",
dict(
Stretch=False,
grid=grid2,
),
0,
"group",
)
],
[
(
'welcome to become my <a href="https://patreon.com/HIllya51">sponsor. Thank you ~ ',
4,
"link",
dict(
grid=shuominggrid,
),
0,
"group",
)
],
]
tab, dotab = makesubtab_lazy(
_TRL(["相关说明", "其他设置", "资源下载"]),
[
functools.partial(makescrollgrid, shuominggrid),
functools.partial(makescrollgrid, grid2),
functools.partial(resourcegrid, self),
],
delay=True,
basel,
)
basel.addWidget(tab)
dotab()

View File

@ -6,8 +6,10 @@ from gui.usefulwidget import (
yuitsu_switch,
makescrollgrid,
D_getsimpleswitch,
getsimplecombobox,
D_getIconButton,
)
from gui.setting_display_text import on_not_find_qweb
def setTabcishu(self, basel):
@ -43,24 +45,21 @@ def gethiragrid(self):
_3 = ""
line += [
((globalconfig["hirasetting"][name]["name"]), 6),
(
D_getsimpleswitch(
globalconfig["hirasetting"][name],
"use",
name=name,
parent=self,
callback=functools.partial(
yuitsu_switch,
self,
globalconfig["hirasetting"],
"hiraswitchs",
name,
gobject.baseobject.starthira,
),
pair="hiraswitchs",
globalconfig["hirasetting"][name]["name"],
D_getsimpleswitch(
globalconfig["hirasetting"][name],
"use",
name=name,
parent=self,
callback=functools.partial(
yuitsu_switch,
self,
globalconfig["hirasetting"],
"hiraswitchs",
name,
gobject.baseobject.starthira,
),
1,
pair="hiraswitchs",
),
_3,
]
@ -75,6 +74,27 @@ def gethiragrid(self):
return grids
def _checkmaybefailed(self, idx):
if idx == 2 and not gobject.testuseqwebengine():
self.seletengeinecombo_1.setCurrentIndex(self.seletengeinecombo_1.lastindex)
on_not_find_qweb(self)
return
self.seletengeinecombo_1.lastindex = self.seletengeinecombo_1.currentIndex()
def _createseletengeinecombo_1(self):
webviews = ["MSHTML", "WebView2", "QWebEngine"]
self.seletengeinecombo_1 = getsimplecombobox(
webviews,
globalconfig,
"usewebview",
callback=functools.partial(_checkmaybefailed, self),
)
self.seletengeinecombo_1.lastindex = self.seletengeinecombo_1.currentIndex()
return self.seletengeinecombo_1
def setTabcishu_l(self):
grids = [
@ -99,7 +119,7 @@ def setTabcishu_l(self):
gobject.baseobject.startxiaoxueguan, cishu
)
line += [
(globalconfig["cishu"][cishu]["name"], 6),
globalconfig["cishu"][cishu]["name"],
D_getsimpleswitch(
globalconfig["cishu"][cishu],
"use",
@ -126,16 +146,6 @@ def setTabcishu_l(self):
if len(line):
cishugrid.append(line)
grids += [
[],
[
"查词",
D_getIconButton(
callback=lambda: gobject.baseobject.searchwordW.showsignal.emit(),
icon="fa.search",
),
("",4)
],
[],
[
(
dict(title="辞书", type="grid", grid=cishugrid),
@ -143,5 +153,20 @@ def setTabcishu_l(self):
"group",
)
],
[
(
dict(
title="显示",
grid=[
[
"网页显示",
functools.partial(_createseletengeinecombo_1, self),
]
],
),
0,
"group",
)
],
]
return grids

View File

@ -1,111 +1,25 @@
from qtsymbols import *
import functools
import gobject
from myutils.config import globalconfig, _TRL
from myutils.config import _TRL
from gui.setting_display_buttons import createbuttonwidget
from gui.setting_display_text import xianshigrid
from gui.setting_display_ui import uisetting
from gui.setting_display_text import xianshigrid_style, xianshigrid_text
from gui.setting_display_ui import uisetting,themesetting
from gui.setting_display_scale import makescalew
from gui.usefulwidget import (
D_getspinbox,
makesubtab_lazy,
makescrollgrid,
D_getsimpleswitch,
)
def _xingw():
xingweigrid = [
[
(
dict(
title="伴随游戏窗口",
grid=(
[
"游戏最小化时窗口隐藏",
D_getsimpleswitch(globalconfig, "minifollow"),
],
[
"游戏失去焦点时取消置顶",
D_getsimpleswitch(globalconfig, "focusnotop"),
],
[
"游戏窗口移动时同步移动",
D_getsimpleswitch(globalconfig, "movefollow"),
],
),
),
0,
"group",
)
],
[
(
dict(
title="窗口尺寸",
grid=(
[
"自动延展",
D_getsimpleswitch(globalconfig, "auto_expand"),
],
[
"自动收缩",
D_getsimpleswitch(globalconfig, "auto_shrink"),
],
),
),
0,
"group",
)
],
[
(
dict(
title="其他",
grid=(
[
"自动隐藏窗口",
D_getsimpleswitch(globalconfig, "autodisappear"),
],
[
"隐藏延迟(s)",
D_getspinbox(1, 100, globalconfig, "disappear_delay"),
],
[
"任务栏中显示_翻译窗口",
D_getsimpleswitch(
globalconfig,
"showintab",
callback=lambda _: gobject.baseobject.setshowintab(),
),
],
[
"任务栏中显示_其他",
D_getsimpleswitch(
globalconfig,
"showintab_sub",
callback=lambda _: gobject.baseobject.setshowintab(),
),
],
),
),
0,
"group",
)
],
]
return xingweigrid
def setTabThree_lazy(self, basel):
tab, do = makesubtab_lazy(
_TRL(["文本设置", "界面主题", "窗口行为", "工具按钮", "窗口缩放"]),
_TRL(["字体样式", "显示内容", "界面设置", "主题效果", "工具按钮", "窗口缩放"]),
[
lambda l: makescrollgrid(xianshigrid(self), l),
lambda l: makescrollgrid(xianshigrid_style(self), l),
lambda l: makescrollgrid(xianshigrid_text(self), l),
lambda l: makescrollgrid(uisetting(self), l),
lambda l: makescrollgrid(_xingw(), l),
lambda l: makescrollgrid(themesetting(self), l),
functools.partial(createbuttonwidget, self),
functools.partial(makescalew, self),
],

View File

@ -35,7 +35,7 @@ def makescalew(self, lay):
("Magpie_路径", 4),
(
D_getIconButton(
callback=lambda x: getsomepath1(
callback=lambda : getsomepath1(
self,
"Magpie_路径",
globalconfig,

View File

@ -1,8 +1,8 @@
from qtsymbols import *
import functools, platform
import gobject, os
import gobject, os, zipfile, shutil
from myutils.config import globalconfig, _TRL, _TR, static_data
from gui.inputdialog import multicolorset
from gui.inputdialog import multicolorset, autoinitdialog
from myutils.wrapper import tryprint
from gui.usefulwidget import (
D_getsimplecombobox,
@ -43,8 +43,7 @@ def createfontsizespin(self):
def __changeuibuttonstate(self, x):
gobject.baseobject.translation_ui.refreshtoolicon()
try:
self.show_hira_switch.setEnabled(x)
self.show_fenciswitch.setEnabled(x)
self.fenyinsettings.setEnabled(x)
except:
pass
@ -56,28 +55,6 @@ def createtextfontcom(key):
return font_comboBox
def createshoworiginswitch(self):
self.show_original_switch = getsimpleswitch(
globalconfig, "isshowrawtext", callback=lambda x: __changeuibuttonstate(self, x)
)
return self.show_original_switch
def createhiraswitch(self):
self.show_hira_switch = getsimpleswitch(
globalconfig, "isshowhira", enable=globalconfig["isshowrawtext"]
)
return self.show_hira_switch
def createfenciwitch(self):
self.show_fenciswitch = getsimpleswitch(
globalconfig, "show_fenci", enable=globalconfig["isshowrawtext"]
)
return self.show_fenciswitch
@Singleton_close
class extrahtml(saveposwindow):
def tryload(self):
@ -189,14 +166,70 @@ def createinternalfontsettings(self, forml, group, _type):
)
def copytree(src, dst, copy_function=shutil.copy2):
names = os.listdir(src)
os.makedirs(dst, exist_ok=True)
for name in names:
srcname = os.path.join(src, name)
dstname = os.path.join(dst, name)
try:
if os.path.isdir(srcname):
copytree(srcname, dstname, copy_function)
else:
copy_function(srcname, dstname)
except:
pass
def doinstallqweb(self, dd, base):
if not dd["k"].endswith(base):
getQMessageBox(self, "错误", f"请选择_{base}")
return
with zipfile.ZipFile(dd["k"]) as zipf:
target = "cache/temp/QWebEngine"
os.makedirs(target, exist_ok=True)
zipf.extractall(target)
bit = ["x86", "x64"][platform.architecture()[0] == "64bit"]
copytree(f"{target}/{bit}/PyQt5", "LunaTranslator/runtime/PyQt5")
gobject.baseobject.showtraymessage("", "安装成功")
def installqwebdialog(self, link):
dd = {"k": ""}
base = link.split("/")[-1]
autoinitdialog(
self,
"安装_QWebEngine",
800,
[
{
"type": "file",
"name": "路径",
"d": dd,
"k": "k",
"dir": False,
"filter": base,
},
{
"type": "okcancel",
"callback": functools.partial(doinstallqweb, self, dd, base),
},
],
)
def on_not_find_qweb(self):
def _okcallback():
links = [
link = [
"https://github.com/HIllya51/RESOURCES/releases/download/softwares/QWebEngine_x86.zip",
"https://github.com/HIllya51/RESOURCES/releases/download/softwares/QWebEngine_x64.zip",
][platform.architecture()[0] == "64bit"]
os.startfile(links)
os.startfile(link)
installqwebdialog(self, link)
getQMessageBox(
self,
@ -208,15 +241,23 @@ def on_not_find_qweb(self):
)
def resetgroudswitchcallback(self, group):
def resetgroudswitchcallback(self, _2, group):
if group == "QWebEngine" and not gobject.testuseqwebengine():
self.seletengeinecombo.blockSignals(True)
visengine_internal = ["textbrowser", "webview", "QWebEngine"]
globalconfig["rendertext_using"] = visengine_internal[
self.seletengeinecombo.lastindex
]
self.seletengeinecombo.setCurrentIndex(self.seletengeinecombo.lastindex)
self.seletengeinecombo.blockSignals(False)
on_not_find_qweb(self)
return
if _2:
gobject.baseobject.showneedrestart("显示引擎", 0)
clearlayout(self.goodfontsettingsformlayout)
goodfontgroupswitch = FocusCombo()
if group == "QWebEngine" and not gobject.testuseqwebengine():
self.seletengeinecombo.setCurrentIndex(self.seletengeinecombo.lastindex)
on_not_find_qweb(self)
return
self.seletengeinecombo.lastindex = self.seletengeinecombo.currentIndex()
if group == "webview" or group == "QWebEngine":
_btn = QPushButton(_TR("额外的html"))
@ -253,16 +294,13 @@ def resetgroudswitchcallback(self, group):
def creategoodfontwid(self):
self.goodfontsettingsWidget = QGroupBox()
self.goodfontsettingsWidget.setStyleSheet(
"QGroupBox{ margin-top:0px;} QGroupBox:title {margin-top: 0px;}"
)
self.goodfontsettingsformlayout = QFormLayout()
self.goodfontsettingsWidget.setLayout(self.goodfontsettingsformlayout)
return self.goodfontsettingsWidget, lambda: resetgroudswitchcallback(
self, globalconfig["rendertext_using"]
)
def __changeselectablestate(self, x):
gobject.baseobject.translation_ui.refreshtoolicon()
gobject.baseobject.translation_ui.translate_text.textbrowser.setselectable(x)
resetgroudswitchcallback(self, False, globalconfig["rendertext_using"])
return self.goodfontsettingsWidget
def _createseletengeinecombo(self):
@ -274,18 +312,188 @@ def _createseletengeinecombo(self):
globalconfig,
"rendertext_using",
internallist=visengine_internal,
callback=functools.partial(resetgroudswitchcallback, self),
callback=functools.partial(resetgroudswitchcallback, self, True),
)
self.seletengeinecombo.lastindex = self.seletengeinecombo.currentIndex()
return self.seletengeinecombo
def xianshigrid(self):
def __changeselectablestate(self, x):
gobject.baseobject.translation_ui.refreshtoolicon()
gobject.baseobject.translation_ui.translate_text.textbrowser.setselectable(x)
def xianshigrid_text(self):
textgrid = [
[
(
dict(
title="样式",
title="文本",
type="grid",
grid=(
[
"可选取的",
D_getsimpleswitch(
globalconfig,
"selectable",
callback=functools.partial(
__changeselectablestate, self
),
parent=self,
name="selectable_btn",
),
],
[
"显示原文",
D_getsimpleswitch(
globalconfig,
"isshowrawtext",
callback=lambda x: __changeuibuttonstate(self, x),
name="show_original_switch",
parent=self,
),
"",
"最长显示字数",
D_getspinbox(0, 1000000, globalconfig, "maxoriginlength"),
"",
],
[
"显示翻译",
D_getsimpleswitch(globalconfig, "showfanyi"),
"",
("显示翻译器名称"),
D_getsimpleswitch(globalconfig, "showfanyisource"),
"",
],
[
"收到翻译时才刷新",
D_getsimpleswitch(globalconfig, "refresh_on_get_trans"),
"",
"显示错误信息",
D_getsimpleswitch(globalconfig, "showtranexception"),
"",
],
),
),
0,
"group",
)
],
[
(
dict(
title="分词",
type="grid",
parent=self,
name="fenyinsettings",
enable=globalconfig["isshowrawtext"],
grid=(
[
(
dict(
title="注音",
type="grid",
grid=(
[
("显示"),
D_getsimpleswitch(
globalconfig,
"isshowhira",
),
"",
("颜色"),
D_getcolorbutton(
globalconfig,
"jiamingcolor",
callback=lambda: selectcolor(
self,
globalconfig,
"jiamingcolor",
self.jiamingcolor_b,
),
name="jiamingcolor_b",
parent=self,
),
"",
],
[
"字体缩放",
D_getspinbox(
0.05,
1,
globalconfig,
"kanarate",
double=True,
step=0.05,
dec=2,
),
"",
"日语注音方案",
D_getsimplecombobox(
_TRL(
[
"平假名",
"片假名",
"罗马音",
]
),
globalconfig,
"hira_vis_type",
),
],
),
),
0,
"group",
)
],
[
("语法加亮"),
D_getsimpleswitch(globalconfig, "show_fenci"),
"",
("词性颜色_需要Mecab"),
D_getIconButton(
callback=lambda: multicolorset(self),
icon="fa.gear",
),
"",
],
[
("点击单词查词"),
(
D_getsimpleswitch(globalconfig, "usesearchword"),
1,
),
"",
("点击单词复制"),
(
D_getsimpleswitch(globalconfig, "usecopyword"),
1,
),
],
[
("使用原型查询"),
(
D_getsimpleswitch(globalconfig, "usewordorigin"),
1,
),
],
),
),
0,
"group",
)
],
]
return textgrid
def xianshigrid_style(self):
textgrid = [
[
(
dict(
title="字体",
type="grid",
grid=(
[
@ -334,144 +542,13 @@ def xianshigrid(self):
[
(
dict(
type="grid",
title="样式",
grid=(
[
("显示引擎_重启生效", 3),
(
functools.partial(_createseletengeinecombo, self),
6,
),
],
[(functools.partial(creategoodfontwid, self), 0)],
),
),
0,
"group",
)
],
[
(
dict(
title="注音",
type="grid",
grid=(
[
("显示", 5),
functools.partial(createhiraswitch, self),
"",
("颜色", 5),
D_getcolorbutton(
globalconfig,
"jiamingcolor",
callback=lambda: selectcolor(
self,
globalconfig,
"jiamingcolor",
self.jiamingcolor_b,
),
name="jiamingcolor_b",
parent=self,
),
],
[
("字体缩放", 5),
D_getspinbox(
0.05,
1,
globalconfig,
"kanarate",
double=True,
step=0.05,
dec=2,
),
"",
("日语注音方案", 5),
D_getsimplecombobox(
_TRL(["平假名", "片假名", "罗马音"]),
globalconfig,
"hira_vis_type",
),
],
),
),
0,
"group",
)
],
[
(
dict(
title="分词",
type="grid",
grid=(
[
("语法加亮", 5),
functools.partial(createfenciwitch, self),
"",
("词性颜色(需要Mecab)", 5),
D_getIconButton(
callback=lambda: multicolorset(self), icon="fa.gear"
),
],
[
("点击单词查词", 5),
(D_getsimpleswitch(globalconfig, "usesearchword"), 1),
"",
("点击单词复制", 5),
(D_getsimpleswitch(globalconfig, "usecopyword"), 1),
],
[
("使用原型查询", 5),
(D_getsimpleswitch(globalconfig, "usewordorigin"), 1),
],
),
),
0,
"group",
)
],
[
(
dict(
title="显示行为",
type="grid",
grid=(
[
("显示原文", 5),
functools.partial(createshoworiginswitch, self),
"",
("显示翻译", 5),
(D_getsimpleswitch(globalconfig, "showfanyi"), 1),
],
[
("显示翻译器名称", 5),
(D_getsimpleswitch(globalconfig, "showfanyisource"), 1),
"",
("最长显示字数", 5),
(
D_getspinbox(
0, 1000000, globalconfig, "maxoriginlength"
),
3,
),
],
[
("收到翻译结果时才刷新", 5),
D_getsimpleswitch(globalconfig, "refresh_on_get_trans"),
],
[
("可选取的", 5),
D_getsimpleswitch(
globalconfig,
"selectable",
callback=functools.partial(
__changeselectablestate, self
),
parent=self,
name="selectable_btn",
),
"显示引擎",
functools.partial(_createseletengeinecombo, self),
],
[functools.partial(creategoodfontwid, self)],
),
),
0,

View File

@ -11,6 +11,8 @@ from gui.usefulwidget import (
getIconButton,
selectcolor,
FocusFontCombo,
D_getsimpleswitch,
getboxlayout,
)
@ -58,11 +60,13 @@ def changeHorizontal_tool(self):
gobject.baseobject.translation_ui.enterfunction()
gobject.baseobject.translation_ui.set_color_transparency()
def toolcolorchange():
gobject.baseobject.translation_ui.refreshtooliconsignal.emit()
gobject.baseobject.translation_ui.enterfunction()
gobject.baseobject.translation_ui.set_color_transparency()
def createhorizontal_slider_tool(self):
self.horizontal_slider_tool = QSlider()
@ -202,10 +206,24 @@ def checkthemesettingvisandapply(self, _dark, _):
maybesetstyle(_dark)
def uisetting(self):
def __changeuibuttonstate2(self, x):
gobject.baseobject.translation_ui.refreshtoolicon()
def themelist(t):
return [_["name"] for _ in static_data["themes"][t]]
gobject.baseobject.translation_ui.mousetransparent_check()
def __changeuibuttonstate3(self, x):
gobject.baseobject.translation_ui.refreshtoolicon()
gobject.baseobject.translation_ui.setontopthread()
def __changeuibuttonstate(self, x):
gobject.baseobject.translation_ui.refreshtoolicon()
gobject.baseobject.translation_ui.enterfunction()
def uisetting(self):
uigrid = [
[
@ -217,26 +235,23 @@ def uisetting(self):
[
(
dict(
title="翻译窗口",
title="文本区",
type="grid",
grid=(
[
("不透明度", 4),
"不透明度",
(
functools.partial(
createhorizontal_slider, self
),
8,
4,
),
(
functools.partial(
createhorizontal_slider_label, self
),
2,
functools.partial(
createhorizontal_slider_label, self
),
],
[
("背景颜色", 4),
"背景颜色",
D_getcolorbutton(
globalconfig,
"backcolor",
@ -251,18 +266,15 @@ def uisetting(self):
parent=self,
),
"",
"",
("圆角_半径", 4),
(
D_getspinbox(
0,
100,
globalconfig,
"yuanjiao_r",
callback=lambda _: gobject.baseobject.translation_ui.set_color_transparency(),
),
2,
"圆角_半径",
D_getspinbox(
0,
100,
globalconfig,
"yuanjiao_r",
callback=lambda _: gobject.baseobject.translation_ui.set_color_transparency(),
),
"",
],
),
),
@ -277,23 +289,20 @@ def uisetting(self):
type="grid",
grid=(
[
("不透明度", 4),
"不透明度",
(
functools.partial(
createhorizontal_slider_tool, self
),
8,
4,
),
(
functools.partial(
createhorizontal_slider_tool_label,
self,
),
2,
functools.partial(
createhorizontal_slider_tool_label,
self,
),
],
[
("背景颜色", 4),
"背景颜色",
D_getcolorbutton(
globalconfig,
"backcolor_tool",
@ -307,58 +316,122 @@ def uisetting(self):
name="back_color_button_tool",
parent=self,
),
"",
"工具按钮颜色",
getboxlayout(
[
D_getcolorbutton(
globalconfig,
"buttoncolor",
callback=lambda: selectcolor(
self,
globalconfig,
"buttoncolor",
self.buttoncolorbutton,
callback=toolcolorchange,
),
name="buttoncolorbutton",
parent=self,
),
D_getcolorbutton(
globalconfig,
"buttoncolor_1",
callback=lambda: selectcolor(
self,
globalconfig,
"buttoncolor_1",
self.buttoncolorbutton_1,
callback=toolcolorchange,
),
name="buttoncolorbutton_1",
parent=self,
),
],
makewidget=True,
),
],
[
("工具按钮颜色", 4),
D_getcolorbutton(
("锁定工具栏"),
D_getsimpleswitch(
globalconfig,
"buttoncolor",
callback=lambda: selectcolor(
self,
globalconfig,
"buttoncolor",
self.buttoncolorbutton,
callback=toolcolorchange,
"locktools",
callback=lambda x: __changeuibuttonstate(
self, x
),
name="buttoncolorbutton",
parent=self,
),
D_getcolorbutton(
globalconfig,
"buttoncolor_1",
callback=lambda: selectcolor(
self,
globalconfig,
"buttoncolor_1",
self.buttoncolorbutton_1,
callback=toolcolorchange,
),
name="buttoncolorbutton_1",
name="locktoolsbutton",
parent=self,
),
"",
("工具按钮大小", 4),
(
D_getspinbox(
5,
100,
globalconfig,
"buttonsize",
callback=lambda _: toolcolorchange(),
),
2,
),
],
[
("隐藏延迟(s)", 4),
"工具按钮大小",
D_getspinbox(
0,
5,
100,
globalconfig,
"disappear_delay_tool",
step=0.1,
double=True,
"buttonsize",
callback=lambda _: toolcolorchange(),
),
"",
],
),
),
0,
"group",
)
],
[
"窗口置顶",
D_getsimpleswitch(
globalconfig,
"keepontop",
callback=lambda x: __changeuibuttonstate3(self, x),
parent=self,
name="keepontopbutton",
),
"",
("自动调整高度"),
D_getsimpleswitch(globalconfig, "adaptive_height"),
],
[
("鼠标穿透窗口"),
D_getsimpleswitch(
globalconfig,
"mousetransparent",
callback=lambda x: __changeuibuttonstate2(self, x),
parent=self,
name="mousetransbutton",
),
"",
"自动隐藏窗口",
getboxlayout(
[
D_getsimpleswitch(globalconfig, "autodisappear"),
"隐藏延迟(s)",
D_getspinbox(
1, 100, globalconfig, "disappear_delay"
),
],
makewidget=True,
),
],
[
(
dict(
title="跟随游戏窗口",
type="grid",
grid=(
[
"游戏失去焦点时取消置顶",
D_getsimpleswitch(
globalconfig,
"focusnotop",
),
"",
"游戏窗口移动时同步移动",
D_getsimpleswitch(
globalconfig,
"movefollow",
),
"",
],
),
),
@ -375,7 +448,7 @@ def uisetting(self):
[
(
dict(
title="设置界面",
title="其他界面",
grid=(
["字体", createfontcombo],
[
@ -385,6 +458,8 @@ def uisetting(self):
100,
globalconfig,
"settingfontsize",
double=True,
step=0.1,
callback=lambda _: gobject.baseobject.setcommonstylesheet(),
),
],
@ -427,6 +502,44 @@ def uisetting(self):
"group",
)
],
[
(
dict(
title="任务栏中显示",
type="grid",
grid=(
[
"主界面",
D_getsimpleswitch(
globalconfig,
"showintab",
callback=lambda _: gobject.baseobject.setshowintab(),
),
"",
"其他界面",
D_getsimpleswitch(
globalconfig,
"showintab_sub",
callback=lambda _: gobject.baseobject.setshowintab(),
),
"",
],
),
),
0,
"group",
)
],
]
return uigrid
def themesetting(self):
def themelist(t):
return [_["name"] for _ in static_data["themes"][t]]
uigrid = [
[
(
dict(
@ -481,7 +594,7 @@ def uisetting(self):
title="窗口特效",
grid=(
[
"翻译窗口",
"主界面",
D_getsimplecombobox(
["Disable", "Acrylic", "Aero"],
globalconfig,
@ -493,7 +606,7 @@ def uisetting(self):
),
],
[
"其他",
"其他界面",
D_getsimplecombobox(
["Solid", "Acrylic", "Mica", "MicaAlt"],
globalconfig,

View File

@ -4,7 +4,7 @@ import gobject, windows, winsharedutils
from myutils.config import globalconfig, _TR
from myutils.winsyshotkey import SystemHotkey, registerException
from myutils.hwnd import grabwindow
from myutils.utils import getimageformat, parsekeystringtomodvkcode, unsupportkey
from myutils.utils import parsekeystringtomodvkcode, unsupportkey
from gui.usefulwidget import (
D_getsimpleswitch,
D_getsimplekeyseq,
@ -55,7 +55,7 @@ def registrhotkeys(self):
"_18": lambda: gobject.baseobject.settin_ui.fontbigsmallsignal.emit(1),
"_19": lambda: gobject.baseobject.settin_ui.fontbigsmallsignal.emit(-1),
"_20": gobject.baseobject.translation_ui.fullsgame_signal.emit,
"_21": lambda: grabwindow(getimageformat()),
"_21": grabwindow,
"_22": gobject.baseobject.translation_ui.muteprocessignal.emit,
"_23": lambda: gobject.baseobject.translation_ui.clickRange_signal.emit(True),
"_25": lambda: windows.SendMessage(
@ -83,13 +83,12 @@ def setTab_quick_lazy(self):
grids = [
[
(("是否使用快捷键"), 4),
"是否使用快捷键",
D_getsimpleswitch(
globalconfig["quick_setting"],
"use",
callback=functools.partial(__enable, self),
),
((""), 8),
]
]
for name in globalconfig["quick_setting"]["all"]:
@ -98,23 +97,21 @@ def setTab_quick_lazy(self):
grids.append(
[
((globalconfig["quick_setting"]["all"][name]["name"]), 4),
globalconfig["quick_setting"]["all"][name]["name"],
D_getsimpleswitch(
globalconfig["quick_setting"]["all"][name],
"use",
callback=functools.partial(fanyiselect, self, name),
),
(
D_getsimplekeyseq(
globalconfig["quick_setting"]["all"][name],
"keystring",
functools.partial(regist_or_not_key, self, name),
),
2,
D_getsimplekeyseq(
globalconfig["quick_setting"]["all"][name],
"keystring",
functools.partial(regist_or_not_key, self, name),
),
(functools.partial(delaycreatereferlabels, self, name), 4),
(functools.partial(delaycreatereferlabels, self, name), -1),
]
)
grids.append([("", 40)])
return grids

View File

@ -1,4 +1,4 @@
import os, functools
import os, functools, gobject
from myutils.config import globalconfig, _TRL, static_data, getlanguse
from gui.usefulwidget import (
D_getsimplecombobox,
@ -17,42 +17,61 @@ def createlangs(self):
def setTablanglz(self):
return [
[("翻译及OCR语言", 15)],
[
("源语言", 5),
(functools.partial(createlangs, self), 5),
],
[
("目标语言", 5),
(
D_getsimplecombobox(
_TRL(static_data["language_list_translator"]),
globalconfig,
"tgtlang3",
),
5,
),
],
[],
[
("软件显示语言_重启生效", 5),
(
D_getsimplecombobox(
(static_data["language_list_show"]), globalconfig, "languageuse"
),
5,
),
(
D_getIconButton(
callback=lambda: os.startfile(
os.path.abspath("./files/lang/{}.json".format(getlanguse()))
dict(
title="翻译及OCR",
type="grid",
grid=(
[
"源语言",
functools.partial(createlangs, self),
],
[
"目标语言",
D_getsimplecombobox(
_TRL(static_data["language_list_translator"]),
globalconfig,
"tgtlang3",
),
],
),
icon="fa.gear",
),
1,
),
0,
"group",
)
],
[
(
dict(
title="软件显示语言",
type="grid",
grid=(
[
"软件显示语言",
D_getsimplecombobox(
(static_data["language_list_show"]),
globalconfig,
"languageuse",
callback=functools.partial(
gobject.baseobject.showneedrestart, "软件显示语言"
),
),
D_getIconButton(
callback=lambda: os.startfile(
os.path.abspath(
"./files/lang/{}.json".format(getlanguse())
)
),
icon="fa.gear",
),
],
),
),
0,
"group",
)
],
[],
]

View File

@ -1,5 +1,5 @@
from qtsymbols import *
import os, functools
import os, functools, gobject
from myutils.config import _TR, _TRL, globalconfig
from myutils.utils import splittranslatortypes
from gui.usefulwidget import (
@ -8,6 +8,7 @@ from gui.usefulwidget import (
makesubtab_lazy,
getvboxwidget,
makescrollgrid,
D_getsimplecombobox,
)
@ -26,15 +27,14 @@ def getall(l, item="fanyi", name=None):
i += 1
line += [
(globalconfig[item][fanyi].get("name", fanyi), 6),
globalconfig[item][fanyi].get("name", fanyi),
D_getsimpleswitch(globalconfig[item][fanyi], "useproxy", default=True),
"",
]
if i % 3 == 0:
grids.append(line)
line = []
else:
line += []
line += [""]
if len(line):
grids.append(line)
return grids
@ -71,7 +71,7 @@ def getnotofflines(key):
return __
def setTab_proxy_lazy(self, basel):
def makeproxytab(self, basel):
grid1 = [
[("使用代理", 5), (D_getsimpleswitch(globalconfig, "useproxy"), 1), ("", 10)],
@ -105,7 +105,7 @@ def setTab_proxy_lazy(self, basel):
meta = getall(
l=list(globalconfig["metadata"].keys()),
item="metadata",
name="./LunaTranslator/myutils/metadata/%s.py",
name="./LunaTranslator/metadata/%s.py",
)
readers = getall(
l=getnotofflines("reader"),
@ -126,6 +126,7 @@ def setTab_proxy_lazy(self, basel):
l=list(globalconfig["github"].keys()),
item="github",
)
vw, vl = getvboxwidget()
basel.addWidget(vw)
gridlayoutwidget, do = makegrid(grid1, delay=True)
@ -160,5 +161,41 @@ def setTab_proxy_lazy(self, basel):
dotab()
def setTab_proxy_lazy(self, basel):
tab, dotab = makesubtab_lazy(
_TRL(
[
"代理设置",
"网络请求",
]
),
[
functools.partial(makeproxytab, self),
functools.partial(
makescrollgrid,
[
[
"网络请求",
(
D_getsimplecombobox(
["winhttp", "libcurl"],
globalconfig,
"network",
callback=functools.partial(
gobject.baseobject.showneedrestart, "网络请求"
),
),
5,
),
],
],
),
],
delay=True,
)
basel.addWidget(tab)
dotab()
def setTab_proxy(self, l):
setTab_proxy_lazy(self, l)

View File

@ -301,97 +301,79 @@ def creategamefont_comboBox():
def gethookembedgrid(self):
grids = [
[
("导出翻译补丁", 5),
"导出翻译补丁",
D_getIconButton(
callback=lambda x: exportchspatch(self),
callback=lambda: exportchspatch(self),
icon="fa.gear",
),
"",
"",
],
[],
[
("保留原文", 5),
(
D_getsimpleswitch(
globalconfig["embedded"],
"keeprawtext",
callback=lambda _: gobject.baseobject.textsource.flashembedsettings(),
),
1,
"保留原文",
D_getsimpleswitch(
globalconfig["embedded"],
"keeprawtext",
callback=lambda _: gobject.baseobject.textsource.flashembedsettings(),
),
],
[
("翻译等待时间(s)", 5),
"翻译等待时间(s)",
"",
(
D_getspinbox(
0,
30,
globalconfig["embedded"],
"timeout_translate",
double=True,
step=0.1,
callback=lambda x: gobject.baseobject.textsource.flashembedsettings(),
),
3,
D_getspinbox(
0,
30,
globalconfig["embedded"],
"timeout_translate",
double=True,
step=0.1,
callback=lambda x: gobject.baseobject.textsource.flashembedsettings(),
),
],
[
("使用最快翻译而非指定翻译器", 5),
(D_getsimpleswitch(globalconfig["embedded"], "as_fast_as_posible"), 1),
"使用最快翻译而非指定翻译器",
D_getsimpleswitch(globalconfig["embedded"], "as_fast_as_posible"),
],
[
("内嵌的翻译器", 5),
"内嵌的翻译器",
"",
(
D_getsimplecombobox(
_TRL(
[
globalconfig["fanyi"][x]["name"]
for x in globalconfig["fanyi"]
]
),
globalconfig["embedded"],
"translator_2",
internallist=list(globalconfig["fanyi"]),
),
5,
D_getsimplecombobox(
_TRL([globalconfig["fanyi"][x]["name"] for x in globalconfig["fanyi"]]),
globalconfig["embedded"],
"translator_2",
internallist=list(globalconfig["fanyi"]),
),
],
[
("将汉字转换成繁体/日式汉字", 5),
(D_getsimpleswitch(globalconfig["embedded"], "trans_kanji"), 1),
"将汉字转换成繁体/日式汉字",
D_getsimpleswitch(globalconfig["embedded"], "trans_kanji"),
],
[
("在重叠显示的字间插入空格", 5),
"在重叠显示的字间插入空格",
"",
(
D_getsimplecombobox(
_TRL(["不插入空格", "每个字后插入空格", "仅在无法编码的字后插入"]),
globalconfig["embedded"],
"insertspace_policy",
callback=lambda _: gobject.baseobject.textsource.flashembedsettings(),
),
5,
D_getsimplecombobox(
_TRL(["不插入空格", "每个字后插入空格", "仅在无法编码的字后插入"]),
globalconfig["embedded"],
"insertspace_policy",
callback=lambda _: gobject.baseobject.textsource.flashembedsettings(),
),
],
[
("修改游戏字体", 5),
(
D_getsimpleswitch(
globalconfig["embedded"],
"changefont",
callback=lambda _: gobject.baseobject.textsource.flashembedsettings(),
),
1,
"修改游戏字体",
D_getsimpleswitch(
globalconfig["embedded"],
"changefont",
callback=lambda _: gobject.baseobject.textsource.flashembedsettings(),
),
(creategamefont_comboBox, 5),
creategamefont_comboBox,
],
[],
[
("内嵌安全性检查", 5),
"内嵌安全性检查",
D_getsimpleswitch(globalconfig["embedded"], "safecheck_use"),
D_getIconButton(
callback=lambda x: regexedit(
callback=lambda: regexedit(
self, globalconfig["embedded"]["safecheckregexs"]
),
icon="fa.gear",
@ -406,9 +388,10 @@ def getTabclip(self):
grids = [
[
("排除复制自翻译器的文本", 3),
"排除复制自翻译器的文本",
D_getsimpleswitch(globalconfig, "excule_from_self"),
("", 3),
"",
""
]
]
return grids

View File

@ -50,24 +50,21 @@ def getocrgrid(self):
_3 = ""
line += [
((globalconfig["ocr"][name]["name"]), 6),
(
D_getsimpleswitch(
globalconfig["ocr"][name],
"use",
name=name,
parent=self,
callback=functools.partial(
yuitsu_switch,
self,
globalconfig["ocr"],
"ocrswitchs",
name,
None,
),
pair="ocrswitchs",
globalconfig["ocr"][name]["name"],
D_getsimpleswitch(
globalconfig["ocr"][name],
"use",
name=name,
parent=self,
callback=functools.partial(
yuitsu_switch,
self,
globalconfig["ocr"],
"ocrswitchs",
name,
None,
),
1,
pair="ocrswitchs",
),
_3,
]
@ -95,7 +92,7 @@ def getocrgrid(self):
)
],
[],
[("竖向识别"), D_getsimpleswitch(globalconfig, "verticalocr"), ("", 4)],
["竖向识别", D_getsimpleswitch(globalconfig, "verticalocr"), ("", 4)],
[],
[
(

View File

@ -11,7 +11,8 @@ from gui.inputdialog import autoinitdialog, autoinitdialog_items
from gui.usefulwidget import (
D_getspinbox,
getspinbox,
D_getcolorbutton,D_getIconButton,
D_getcolorbutton,
D_getIconButton,
D_getsimpleswitch,
selectcolor,
makegrid,
@ -62,7 +63,7 @@ def initsome11(self, l, label=None):
else:
last = ""
line += [
(globalconfig["fanyi"][fanyi]["name"], 6),
globalconfig["fanyi"][fanyi]["name"],
D_getsimpleswitch(
globalconfig["fanyi"][fanyi],
"use",
@ -178,60 +179,57 @@ def setTabTwo_lazy(self, basel):
grids = [
[
("最短翻译字数", 7),
(D_getspinbox(0, 9999, globalconfig, "minlength"), 3),
"最短翻译字数",
D_getspinbox(0, 9999, globalconfig, "minlength"),
"",
("最长翻译字数", 7),
(D_getspinbox(0, 9999, globalconfig, "maxlength"), 3),
"最长翻译字数",
D_getspinbox(0, 9999, globalconfig, "maxlength"),
"",
],
[
("使用翻译缓存", 8),
(D_getsimpleswitch(globalconfig, "uselongtermcache")),
"",
"",
("显示错误信息", 8),
(D_getsimpleswitch(globalconfig, "showtranexception"), 1),
"",
"",
("翻译请求间隔(s)", 7),
(
D_getspinbox(
0, 9999, globalconfig, "requestinterval", step=0.1, double=True
),
3,
"翻译请求间隔(s)",
D_getspinbox(
0, 9999, globalconfig, "requestinterval", step=0.1, double=True
),
],
[
("均衡负载", 8),
(
D_getsimpleswitch(
globalconfig,
"loadbalance",
callback=lambda x: self._fuzainum.setEnabled(x),
)
"使用翻译缓存",
D_getsimpleswitch(globalconfig, "uselongtermcache"),
"",
"均衡负载",
D_getsimpleswitch(
globalconfig,
"loadbalance",
callback=lambda x: self._fuzainum.setEnabled(x),
),
"",
"",
("单次负载个数", 7),
(functools.partial(createfuzspin, self), 3),
"单次负载个数",
functools.partial(createfuzspin, self),
],
]
online_reg_grid = [[("若有多个api key用|将每个key连接后填入即可轮流使用", -1)]]
pretransgrid = [
[
("预翻译采用模糊匹配", 6),
(D_getsimpleswitch(globalconfig, "premtsimiuse"), 1),
"",
"",
"",
("模糊匹配_相似度_%", 6),
(D_getspinbox(0, 100, globalconfig, "premtsimi2"), 4),
(
dict(
type="grid",
grid=(
[
"预翻译采用模糊匹配",
D_getsimpleswitch(globalconfig, "premtsimiuse"),
"",
"模糊匹配_相似度_%",
D_getspinbox(0, 100, globalconfig, "premtsimi2"),
""
],
[
(functools.partial(createbtnexport, self), 0),
],
),
),
0,
"group",
)
],
[
(functools.partial(createbtnexport, self), 12),
],
[],
[]
]
_items = [
{
@ -247,19 +245,33 @@ def setTabTwo_lazy(self, basel):
developgrid = [
[
("Chromium_路径", 8),
(
D_getIconButton(
callback=functools.partial(
autoinitdialog, self, "Chromium_路径", 800, _items
dict(
title="Chromium_设置",
type="grid",
grid=(
[
"路径",
D_getIconButton(
callback=functools.partial(
autoinitdialog,
self,
"Chromium_路径",
800,
_items,
),
icon="fa.gear",
),
"",
"端口号",
D_getspinbox(0, 65535, globalconfig, "debugport"),
"",
],
),
icon="fa.gear",
)
),
],
[
("端口号", 8),
(D_getspinbox(0, 65535, globalconfig, "debugport"), 4),
),
0,
"group",
)
],
[(functools.partial(createstatuslabel, self), 16)],
[],

View File

@ -80,24 +80,21 @@ def getttsgrid(self):
_3 = ""
line += [
((globalconfig["reader"][name]["name"]), 6),
(
D_getsimpleswitch(
globalconfig["reader"][name],
"use",
name=name,
parent=self,
callback=functools.partial(
yuitsu_switch,
self,
globalconfig["reader"],
"ttswitchs",
name,
gobject.baseobject.startreader,
),
pair="ttswitchs",
globalconfig["reader"][name]["name"],
D_getsimpleswitch(
globalconfig["reader"][name],
"use",
name=name,
parent=self,
callback=functools.partial(
yuitsu_switch,
self,
globalconfig["reader"],
"ttswitchs",
name,
gobject.baseobject.startreader,
),
1,
pair="ttswitchs",
),
_3,
]
@ -188,7 +185,7 @@ def setTab5lz(self):
"语音修正",
D_getsimpleswitch(globalconfig["ttscommon"], "tts_repair"),
D_getIconButton(
callback=lambda x: noundictconfigdialog1(
callback=lambda : noundictconfigdialog1(
self,
globalconfig["ttscommon"]["tts_repair_regex"],
"语音修正",

View File

@ -5,7 +5,7 @@ from traceback import print_exc
import qtawesome, requests, gobject, windows
import myutils.ankiconnect as anki
from myutils.hwnd import grabwindow
from myutils.utils import getimageformat, parsekeystringtomodvkcode, unsupportkey
from myutils.utils import parsekeystringtomodvkcode, unsupportkey
from myutils.config import globalconfig, _TR, static_data
from myutils.subproc import subproc_w
from myutils.wrapper import threader
@ -17,6 +17,7 @@ from gui.usefulwidget import (
auto_select_webview,
getboxlayout,
getspinbox,
getsimplecombobox,
getlineedit,
listediterline,
getsimpleswitch,
@ -27,6 +28,17 @@ from gui.usefulwidget import (
)
def getimageformatlist():
_ = [_.data().decode() for _ in QImageWriter.supportedImageFormats()]
if globalconfig["imageformat"] == -1 or globalconfig["imageformat"] >= len(_):
globalconfig["imageformat"] = _.index("png")
return _
def getimageformat():
return getimageformatlist()[globalconfig["imageformat"]]
class loopbackrecorder:
def __init__(self):
os.makedirs("cache/temp", exist_ok=True)
@ -373,6 +385,10 @@ class AnkiWindow(QWidget):
_TR("自动截图"),
getsimpleswitch(globalconfig["ankiconnect"], "autocrop"),
)
layout.addRow(
_TR("截图保存格式"),
getsimplecombobox(getimageformatlist(), globalconfig, "imageformat"),
)
layout.addRow(
_TR("例句中加粗单词"),
getsimpleswitch(globalconfig["ankiconnect"], "boldword"),
@ -608,7 +624,7 @@ class AnkiWindow(QWidget):
if globalconfig["ankiconnect"]["addsuccautoclose"]:
self.parent().parent().parent().close()
else:
QToolTip.showText(QCursor.pos(), _TR("添加_成功"), self)
QToolTip.showText(QCursor.pos(), _TR("添加成功"), self)
except requests.NetWorkException:
getQMessageBox(self, _TR("错误"), _TR("无法连接到anki"))
except anki.AnkiException as e:

View File

@ -35,15 +35,23 @@ class Textbrowser(QLabel):
__ = globalconfig["rendertext_using"]
if __ == "QWebEngine":
__ = "webview"
tb = importlib.import_module(f"rendertext.{__}").TextBrowser
try:
tb = importlib.import_module(f"rendertext.{__}").TextBrowser
self.textbrowser = tb(self)
except webview_exception:
getQMessageBox(
None,
_TR("错误"),
"can't find Webview2 runtime!",
)
except Exception as e:
if isinstance(e, webview_exception):
getQMessageBox(
None,
_TR("错误"),
"can't find Webview2 runtime!",
)
elif isinstance(e, ImportError) or isinstance(e, ModuleNotFoundError):
getQMessageBox(
None,
_TR("错误"),
"can't find QWebEngine!",
)
globalconfig["rendertext_using"] = "textbrowser"
tb = importlib.import_module(f"rendertext.textbrowser").TextBrowser
self.textbrowser = tb(self)
@ -65,7 +73,6 @@ class Textbrowser(QLabel):
self.masklabel_bottom.setMouseTracking(True)
# self.masklabel_bottom.setStyleSheet('background-color:red')
def iter_append(self, iter_context_class, origin, atcenter, text, color):
cleared = self.cleared
self.cleared = False

View File

@ -6,8 +6,9 @@ from myutils.wrapper import threader, trypass
from myutils.config import globalconfig, saveallconfig, _TR, static_data
from myutils.subproc import endsubprocs
from myutils.ocrutil import ocr_run, imageCut
from myutils.utils import loadpostsettingwindowmethod, getimageformat, str2rgba
from myutils.utils import loadpostsettingwindowmethod, str2rgba
from myutils.hwnd import mouseselectwindow, grabwindow, getExeIcon
from gui.setting_about import doupdate
from gui.dialog_memory import dialog_memory
from gui.textbrowser import Textbrowser
from gui.rangeselect import rangeselct_function
@ -38,19 +39,7 @@ class QUnFrameWindow(resizableframeless):
def hookfollowsignalsolve(self, code, other):
if self._move_drag:
return
if code == 3:
self.show_()
try:
_h = windows.GetForegroundWindow()
_fpid = windows.GetWindowThreadProcessId(_h)
_hpid = windows.GetWindowThreadProcessId(other[0])
if _fpid != _hpid:
windows.SetForegroundWindow(other[0])
except:
pass
elif code == 4:
self.hide_()
elif code == 5:
if code == 5:
# print(self.pos())
# self.move(self.pos() + self._endPos)z
try:
@ -188,7 +177,6 @@ class QUnFrameWindow(resizableframeless):
(isshowhira, isshow_fenci, isfenciclick),
color,
)
if globalconfig["autodisappear"]:
flag = (globalconfig["showintab"] and self.isMinimized()) or (
not globalconfig["showintab"] and self.isHidden()
@ -301,6 +289,16 @@ class QUnFrameWindow(resizableframeless):
windows.keybd_event(13, 0, 0, 0)
windows.keybd_event(13, 0, windows.KEYEVENTF_KEYUP, 0)
def btnsetontopfunction(self):
try:
gobject.baseobject.settin_ui.keepontopbutton.click()
except:
globalconfig["keepontop"] = not globalconfig["keepontop"]
self.refreshtoolicon()
self.setontopthread()
def addbuttons(self):
def simulate_key_ctrl():
windows.SetForegroundWindow(gobject.baseobject.textsource.hwnd)
@ -354,8 +352,9 @@ class QUnFrameWindow(resizableframeless):
("selectocrrange", lambda: self.clickRange(False)),
("hideocrrange", self.showhideocrrange),
("bindwindow", self.bindcropwindow_signal.emit),
("searchwordW", lambda: gobject.baseobject.searchwordW.showsignal.emit()),
("fullscreen", self._fullsgame),
("grabwindow", lambda: grabwindow(getimageformat())),
("grabwindow", grabwindow),
("muteprocess", self.muteprocessfuntion),
(
"memory",
@ -363,15 +362,7 @@ class QUnFrameWindow(resizableframeless):
gobject.baseobject.commonstylebase, gobject.baseobject.currentmd5
),
),
(
"keepontop",
lambda: globalconfig.__setitem__(
"keepontop", not globalconfig["keepontop"]
)
is None
and self.refreshtoolicon() is None
and self.setontopthread(),
),
("keepontop", self.btnsetontopfunction),
(
"simulate_key_ctrl",
lambda: threading.Thread(target=simulate_key_ctrl).start(),
@ -437,7 +428,6 @@ class QUnFrameWindow(resizableframeless):
windows.SetForegroundWindow(int(self.winId()))
self.refreshtoolicon()
self.setontopthread()
self.autohidedelaythread()
def canceltop(self):
windows.SetWindowPos(
@ -515,8 +505,6 @@ class QUnFrameWindow(resizableframeless):
winsharedutils.setAeroEffect(int(self.winId()))
def initvalues(self):
self.lastrefreshtime = time.time()
self.autohidestart = False
self.enter_sig = 0
self.fullscreenmanager_busy = False
self.isletgamefullscreened = False
@ -784,9 +772,12 @@ class QUnFrameWindow(resizableframeless):
def changemousetransparentstate(self, idx):
if idx == 0:
globalconfig["mousetransparent"] = not globalconfig["mousetransparent"]
self.mousetransparent_check()
try:
gobject.baseobject.settin_ui.mousetransbutton.click()
except:
globalconfig["mousetransparent"] = not globalconfig["mousetransparent"]
self.mousetransparent_check()
elif idx == 1:
globalconfig["backtransparent"] = not globalconfig["backtransparent"]
self.set_color_transparency()
@ -820,24 +811,24 @@ class QUnFrameWindow(resizableframeless):
self.refreshtoolicon()
def changetoolslockstate(self):
globalconfig["locktools"] = not globalconfig["locktools"]
self.refreshtoolicon()
try:
gobject.baseobject.settin_ui.locktoolsbutton.click()
except:
globalconfig["locktools"] = not globalconfig["locktools"]
self.refreshtoolicon()
def textAreaChanged(self, size: QSize):
if self.translate_text.cleared:
return
if not (globalconfig["auto_expand"] or globalconfig["auto_shrink"]):
if not globalconfig["adaptive_height"]:
return
newHeight = (
size.height()
+ self.translate_text._padding
+ int(globalconfig["buttonsize"] * 1.5)
)
if (newHeight > self.height() and globalconfig["auto_expand"]) or (
newHeight < self.height() and globalconfig["auto_shrink"]
):
self.resize(self.width(), newHeight)
self.resize(self.width(), newHeight)
def clickRange(self, auto):
if globalconfig["sourcestatus2"]["ocr"]["use"] == False:
@ -870,7 +861,14 @@ class QUnFrameWindow(resizableframeless):
self.set_color_transparency()
def checkisentered(self):
if globalconfig["mousetransparent"]:
onlychecktitle = globalconfig["mousetransparent"]
hwnd = windows.GetForegroundWindow()
hwndpid = windows.GetWindowThreadProcessId(hwnd)
ismyprocbutnotmainuiforeground = hwndpid == os.getpid() and hwnd != int(
self.winId()
)
onlychecktitle = onlychecktitle or ismyprocbutnotmainuiforeground
if onlychecktitle:
return self._TitleLabel.geometry().contains(
self.mapFromGlobal(QCursor.pos())
)
@ -1031,4 +1029,5 @@ class QUnFrameWindow(resizableframeless):
endsubprocs()
self.tryremoveuseless()
gobject.baseobject.destroytray()
doupdate()
os._exit(0)

View File

@ -9,7 +9,7 @@ from webviewpy import (
)
from winsharedutils import HTMLBrowser
from myutils.config import _TR, globalconfig
from myutils.wrapper import Singleton, Singleton_close
from myutils.wrapper import Singleton, Singleton_close, tryprint
from myutils.utils import nowisdark, checkportavailable
@ -190,14 +190,20 @@ class closeashidewindow(saveposwindow):
super().closeEvent(event)
class MySwitch(QWidget):
clicked = pyqtSignal(bool)
class commonsolveevent(QWidget):
def event(self, a0: QEvent) -> bool:
if a0.type() == QEvent.Type.MouseButtonDblClick:
return True
elif a0.type() == QEvent.Type.EnabledChange:
self.setEnabled(not self.isEnabled())
return True
return super().event(a0)
class MySwitch(commonsolveevent):
clicked = pyqtSignal(bool)
def click(self):
self.setChecked(not self.checked)
self.clicked.emit(self.checked)
@ -207,18 +213,21 @@ class MySwitch(QWidget):
int(1.62 * globalconfig["buttonsize2"]), globalconfig["buttonsize2"]
)
def __init__(self, parent=None, sign=True, enable=True):
def __init__(self, parent=None, sign=True, enable=True, icon=None):
super().__init__(parent)
self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
self.checked = sign
self.setCursor(Qt.CursorShape.PointingHandCursor)
self.__currv = 0
if sign:
self.__currv = 20
self.icon = icon
self.animation = QVariantAnimation()
self.animation.setDuration(80)
self.animation.setStartValue(0)
self.animation.setEndValue(20)
self.__currv = 0
if sign:
self.__currv = 20
self.animation.valueChanged.connect(self.update11)
self.animation.finished.connect(self.onAnimationFinished)
self.enable = enable
@ -237,6 +246,19 @@ class MySwitch(QWidget):
if check == self.checked:
return
self.checked = check
self.runanimeorshowicon()
def update11(self):
self.__currv = self.animation.currentValue()
self.update()
def runanimeorshowicon(self):
if self.icon:
self.update()
else:
self.runanime()
def runanime(self):
self.animation.setDirection(
QVariantAnimation.Direction.Forward
if self.checked
@ -244,14 +266,7 @@ class MySwitch(QWidget):
)
self.animation.start()
def update11(self):
self.__currv = self.animation.currentValue()
self.update()
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.RenderHint.Antialiasing)
painter.setPen(Qt.PenStyle.NoPen)
def getcurrentcolor(self):
__ = QColor(
[globalconfig["buttoncolor3"], globalconfig["buttoncolor2"]][self.checked]
@ -265,7 +280,11 @@ class MySwitch(QWidget):
),
max(0, (__.blue() - 64)),
)
painter.setBrush(__)
return __
def paintanime(self, painter: QPainter):
painter.setBrush(self.getcurrentcolor())
bigw = self.size().width() - self.sizeHint().width()
bigh = self.size().height() - self.sizeHint().height()
x = bigw // 2
@ -289,24 +308,37 @@ class MySwitch(QWidget):
int(self.sizeHint().height() * 0.35),
)
def painticon(self, painter: QPainter):
icon: QIcon = qtawesome.icon(self.icon, color=self.getcurrentcolor())
bigw = self.size().width() - self.sizeHint().width()
bigh = self.size().height() - self.sizeHint().height()
x = bigw // 2
y = bigh // 2
painter.drawPixmap(x, y, icon.pixmap(self.sizeHint()))
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.RenderHint.Antialiasing)
painter.setPen(Qt.PenStyle.NoPen)
if self.icon:
self.painticon(painter)
else:
self.paintanime(painter)
def mouseReleaseEvent(self, event) -> None:
if not self.enable:
return
if event.button() == Qt.MouseButton.LeftButton:
self.checked = not self.checked
self.clicked.emit(self.checked)
self.animation.setDirection(
QVariantAnimation.Direction.Forward
if self.checked
else QVariantAnimation.Direction.Backward
)
self.animation.start()
self.runanimeorshowicon()
def onAnimationFinished(self):
pass
class IconButton(QWidget):
class IconButton(commonsolveevent):
clicked = pyqtSignal()
def sizeHint(self):
@ -318,6 +350,7 @@ class IconButton(QWidget):
def __init__(self, icon, enable=True, qicon=None, parent=None):
super().__init__(parent)
self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
self.setCursor(Qt.CursorShape.PointingHandCursor)
self.enable = enable
self._icon = icon
self._qicon = qicon
@ -362,63 +395,6 @@ class IconButton(QWidget):
self.clicked.emit()
class MySwitch2(QPushButton):
def __init__(self, parent=None, sign=True, enable=True, icons=None, size=25):
self.status1 = 0
self.status2 = 0
if icons is None:
icons = ["fa.times", "fa.check"]
self.icons = icons
super().__init__(parent)
self.setStyleSheet(
"""background-color: rgba(255, 255, 255, 0);
color: black;
border: 0px;
font: 100 10pt;"""
)
self.clicked.connect(self.setChecked)
self.setIconSize(QSize(size, size))
self.setEnabled(enable)
self.setCheckable(True)
self.setChecked(sign)
def __seticon(self):
__ = QColor(
[globalconfig["buttoncolor3"], globalconfig["buttoncolor2"]][self.status1]
)
if not self.status2:
__ = QColor(
max(0, (__.red() - 64)),
max(
0,
(__.green() - 64),
),
max(0, (__.blue() - 64)),
)
color = __
self.setIcon(
qtawesome.icon(
self.icons[self.status1],
color=color,
)
)
def setChecked(self, a0):
super().setChecked(a0)
self.status1 = a0
self.__seticon()
def setEnabled(self, a0):
super().setEnabled(a0)
self.status2 = a0
self.__seticon()
class resizableframeless(saveposwindow):
def __init__(self, parent, flags, poslist) -> None:
super().__init__(parent, poslist, flags)
@ -635,6 +611,7 @@ class Prompt_dialog(QDialog):
def callbackwrap(d, k, call, _):
d[k] = _
if call:
try:
call(_)
@ -645,6 +622,7 @@ def callbackwrap(d, k, call, _):
def comboboxcallbackwrap(internallist, d, k, call, _):
_ = internallist[_]
d[k] = _
if call:
try:
call(_)
@ -850,6 +828,8 @@ def getboxlayout(
for w in widgets:
if callable(w):
w = w()
elif isinstance(w, str):
w = QLabel(_TR(w))
if isinstance(w, QWidget):
cp_layout.addWidget(w)
elif isinstance(w, QLayout):
@ -1168,6 +1148,7 @@ class QWebWrap(abstractwebview):
def _setHtml(self, html):
self.internal.setHtml(html)
@tryprint
def resizeEvent(self, a0: QResizeEvent) -> None:
self.internal.resize(a0.size())
@ -1363,25 +1344,20 @@ def tabadd_lazy(tab, title, getrealwidgetfunction):
tab.addTab(q, title)
def makegroupingrid(args):
lis = args.get("grid")
title = args.get("title", None)
_type = args.get("type", "form")
group = QGroupBox()
if title:
group.setTitle(_TR(title))
if _type == "grid":
grid = QGridLayout()
group.setLayout(grid)
automakegrid(grid, lis)
elif _type == "form":
lay = QFormLayout()
group.setLayout(lay)
for line in lis:
def makeforms(lay: QFormLayout, lis, args):
Stretch = args.get("Stretch", True)
for line in lis:
if len(line) == 0:
lay.addRow(QLabel())
continue
elif len(line) == 1:
name, wid = None, line[0]
else:
name, wid = line
if isinstance(wid, tuple) or isinstance(wid, list):
hb = QHBoxLayout()
hb.setContentsMargins(0, 0, 0, 0)
if isinstance(wid, tuple) or isinstance(wid, list):
hb = QHBoxLayout()
hb.setContentsMargins(0, 0, 0, 0)
if Stretch:
needstretch = False
for w in wid:
if callable(w):
@ -1392,18 +1368,57 @@ def makegroupingrid(args):
if needstretch:
hb.insertStretch(0)
hb.addStretch()
wid = hb
else:
if callable(wid):
wid = wid()
elif isinstance(wid, str):
wid = QLabel(wid)
wid.setOpenExternalLinks(True)
if (
Stretch
and wid.sizePolicy().horizontalPolicy() == QSizePolicy.Policy.Fixed
):
hb = QHBoxLayout()
hb.setContentsMargins(0, 0, 0, 0)
hb.addStretch()
hb.addWidget(wid)
hb.addStretch()
wid = hb
else:
if callable(wid):
wid = wid()
if wid.sizePolicy().horizontalPolicy() == QSizePolicy.Policy.Fixed:
hb = QHBoxLayout()
hb.setContentsMargins(0, 0, 0, 0)
hb.addStretch(1)
hb.addWidget(wid)
hb.addStretch(1)
wid = hb
if name:
lay.addRow(_TR(name), wid)
else:
lay.addRow(wid)
def makegroupingrid(args):
lis = args.get("grid")
title = args.get("title", None)
_type = args.get("type", "form")
parent = args.get("parent", None)
groupname = args.get("name", None)
enable = args.get("enable", True)
group = QGroupBox()
if not enable:
group.setEnabled(False)
if groupname and parent:
setattr(parent, groupname, group)
if title:
group.setTitle(_TR(title))
else:
group.setStyleSheet(
"QGroupBox{ margin-top:0px;} QGroupBox:title {margin-top: 0px;}"
)
if _type == "grid":
grid = QGridLayout()
group.setLayout(grid)
automakegrid(grid, lis)
elif _type == "form":
lay = QFormLayout()
group.setLayout(lay)
makeforms(lay, lis, args)
return group
@ -1493,7 +1508,7 @@ def makegrid(grid=None, save=False, savelist=None, savelay=None, delay=False):
return gridlayoutwidget, __do
def makescroll(widget):
def makescroll():
scroll = QScrollArea()
# scroll.setHorizontalScrollBarPolicy(1)
scroll.setStyleSheet("""QScrollArea{background-color:transparent;border:0px}""")
@ -1503,7 +1518,7 @@ def makescroll(widget):
def makescrollgrid(grid, lay, save=False, savelist=None, savelay=None):
wid, do = makegrid(grid, save, savelist, savelay, delay=True)
swid = makescroll(wid)
swid = makescroll()
lay.addWidget(swid)
swid.setWidget(wid)
do()

View File

@ -1,127 +0,0 @@
import platform
import requests
import shutil
from myutils.proxy import getproxy
from traceback import print_exc
import zipfile, os
from myutils.config import globalconfig
import subprocess
def getvesionmethod():
try:
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cache-Control": "max-age=0",
"Proxy-Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
}
res = requests.get(
"https://api.github.com/repos/HIllya51/LunaTranslator/releases/latest",
headers=headers,
verify=False,
proxies=getproxy(("github", "versioncheck")),
).json()
# print(res)
_version = res["tag_name"]
return _version
except:
print_exc()
return None
def update():
if platform.architecture()[0] == "64bit":
bit = ""
_6432 = "64"
elif platform.architecture()[0] == "32bit":
bit = "_x86"
_6432 = "32"
os.makedirs("./cache", exist_ok=True)
shutil.copy(rf".\files\plugins\shareddllproxy{_6432}.exe", rf".\cache\Updater.exe")
subprocess.Popen(rf".\cache\Updater.exe update .\cache\update\LunaTranslator{bit}")
def updatemethod(_version, progresscallback):
if platform.architecture()[0] == "64bit":
bit = ""
elif platform.architecture()[0] == "32bit":
bit = "_x86"
else:
raise Exception
url = "https://github.com/HIllya51/LunaTranslator/releases/download/{}/LunaTranslator{}.zip".format(
_version, bit
)
progresscallback("……", 0)
savep = "./cache/update/LunaTranslator{}.zip".format(bit)
os.makedirs("./cache/update", exist_ok=True)
def endcallback():
os.makedirs("./cache/update", exist_ok=True)
if os.path.exists("./cache/update/LunaTranslator"):
shutil.rmtree("./cache/update/LunaTranslator")
zipf = zipfile.ZipFile("./cache/update/LunaTranslator{}.zip".format(bit))
zipf.extractall("./cache/update")
update()
def checkalready(size):
if os.path.exists(savep):
stats = os.stat(savep)
if stats.st_size == size:
progresscallback(
"总大小{} MB 进度 {}% ,正在解压……".format(
int(1000 * (int(size / 1024) / 1024)) / 1000,
int(10000 * (size / size)) / 100,
),
10000,
)
endcallback()
progresscallback(
"准备完毕,等待更新",
10000,
)
return True
return False
try:
r2 = requests.get(
url, stream=True, verify=False, proxies=getproxy(("github", "download"))
)
size = int(r2.headers["Content-Length"])
if checkalready(size):
return
with open(savep, "wb") as file:
sess = requests.session()
r = sess.get(
url, stream=True, verify=False, proxies=getproxy(("github", "download"))
)
file_size = 0
for i in r.iter_content(chunk_size=1024):
if globalconfig["autoupdate"] == False:
return
if i:
file.write(i)
thislen = len(i)
file_size += thislen
progresscallback(
"总大小{} MB 进度 {:0.2f}% ".format(
int(1000 * (int(size / 1024) / 1024)) / 1000,
int(10000 * (file_size / size)) / 100,
),
int(10000 * file_size / size),
)
if globalconfig["autoupdate"] == False:
return
if checkalready(size):
return
except:
print_exc()
progresscallback("自动更新失败,请手动更新", 0)

View File

@ -8,7 +8,7 @@ from myutils.wrapper import threader
@threader
def grabwindow(app, callback=None):
def grabwindow(app="PNG", callback=None):
if callback:
fnamebase = "cache/temp"
else:

View File

@ -94,18 +94,6 @@ def nowisdark():
return dark
def getimageformatlist():
_ = [_.data().decode() for _ in QImageWriter.supportedImageFormats()]
if globalconfig["imageformat"] == -1 or globalconfig["imageformat"] >= len(_):
globalconfig["imageformat"] = _.index("png")
return _
def getimageformat():
return getimageformatlist()[globalconfig["imageformat"]]
class PriorityQueue:
def __init__(self):
self._heap = []
@ -536,13 +524,7 @@ def minmaxmoveobservefunc(self):
return
rect = windows.GetWindowRect(hwnd)
if event == windows.EVENT_SYSTEM_MINIMIZEEND:
if globalconfig["minifollow"]:
self.hookfollowsignal.emit(3, (hwnd,))
elif event == windows.EVENT_SYSTEM_MINIMIZESTART:
if globalconfig["minifollow"]:
self.hookfollowsignal.emit(4, (0, 0))
elif event == windows.EVENT_SYSTEM_MOVESIZESTART: #
if event == windows.EVENT_SYSTEM_MOVESIZESTART: #
self.lastpos = rect
elif event == windows.EVENT_SYSTEM_MOVESIZEEND: #
if globalconfig["movefollow"]:
@ -563,7 +545,6 @@ def minmaxmoveobservefunc(self):
eventpairs = (
(windows.EVENT_SYSTEM_MOVESIZESTART, windows.EVENT_SYSTEM_MOVESIZEEND),
(windows.EVENT_SYSTEM_MINIMIZESTART, windows.EVENT_SYSTEM_MINIMIZEEND),
(windows.EVENT_SYSTEM_FOREGROUND, windows.EVENT_SYSTEM_FOREGROUND),
)

View File

@ -412,108 +412,103 @@ class TextBrowser(QWidget, dataget):
tl2 = self.textbrowser.cursorRect(self.textcursor).bottomRight()
tl3 = self.textbrowser.cursorRect(self.textcursor).topLeft()
color = self._randomcolor(word)
if color:
if len(word["orig"].strip()):
if labeli >= len(self.searchmasklabels) - 1:
ql = QLabel(self.atback2)
ql.setMouseTracking(True)
self.searchmasklabels.append(ql)
if len(word["orig"].strip()):
if labeli >= len(self.searchmasklabels) - 1:
ql = QLabel(self.atback2)
ql.setMouseTracking(True)
self.searchmasklabels.append(ql)
ql = Qlabel_c(self.textbrowser)
ql.setMouseTracking(True)
ql.setStyleSheet("background-color: rgba(0,0,0,0.01);")
self.searchmasklabels_clicked.append(ql)
ql = Qlabel_c(self.textbrowser)
ql.setMouseTracking(True)
ql.setStyleSheet("background-color: rgba(0,0,0,0.01);")
self.searchmasklabels_clicked.append(ql)
ql = QLabel(self.atback2)
ql.setMouseTracking(True)
self.searchmasklabels.append(ql)
ql = QLabel(self.atback2)
ql.setMouseTracking(True)
self.searchmasklabels.append(ql)
ql = Qlabel_c(self.textbrowser)
ql.setMouseTracking(True)
ql.setStyleSheet("background-color: rgba(0,0,0,0.01);")
self.searchmasklabels_clicked.append(ql)
if tl1.y() != tl3.y():
for __i in range(len(word["orig"])):
self.textcursor.setPosition(pos + __i)
self.textbrowser.setTextCursor(self.textcursor)
_tl = self.textbrowser.cursorRect(
self.textcursor
).topLeft()
if _tl.y() != tl1.y():
break
self.textcursor.setPosition(pos + l)
ql = Qlabel_c(self.textbrowser)
ql.setMouseTracking(True)
ql.setStyleSheet("background-color: rgba(0,0,0,0.01);")
self.searchmasklabels_clicked.append(ql)
if tl1.y() != tl3.y():
for __i in range(len(word["orig"])):
self.textcursor.setPosition(pos + __i)
self.textbrowser.setTextCursor(self.textcursor)
__fm = self._getfh(False, getfm=True)
w1 = int(__fm.size(0, word["orig"][:__i]).width())
w2 = int(__fm.size(0, word["orig"][__i:]).width())
_tl = self.textbrowser.cursorRect(self.textcursor).topLeft()
if _tl.y() != tl1.y():
break
self.textcursor.setPosition(pos + l)
self.textbrowser.setTextCursor(self.textcursor)
__fm = self._getfh(False, getfm=True)
w1 = int(__fm.size(0, word["orig"][:__i]).width())
w2 = int(__fm.size(0, word["orig"][__i:]).width())
pos1 = (
tl1.x() + 1,
tl1.y(),
w1 - 2,
int(heigth),
pos1 = (
tl1.x() + 1,
tl1.y(),
w1 - 2,
int(heigth),
)
pos2 = tl3.x() + 1 - w2, tl3.y(), w2 - 2, int(heigth)
if isfenciclick:
self.searchmasklabels_clicked[labeli].setGeometry(*pos1)
self.searchmasklabels_clicked[labeli].show()
self.searchmasklabels_clicked[labeli].company = (
self.searchmasklabels_clicked[labeli + 1]
)
pos2 = tl3.x() + 1 - w2, tl3.y(), w2 - 2, int(heigth)
if isfenciclick:
self.searchmasklabels_clicked[labeli].setGeometry(*pos1)
self.searchmasklabels_clicked[labeli].show()
self.searchmasklabels_clicked[labeli].company = (
self.searchmasklabels_clicked[labeli + 1]
if callback:
self.searchmasklabels_clicked[labeli].callback = (
functools.partial(callback, (word))
)
if callback:
self.searchmasklabels_clicked[labeli].callback = (
functools.partial(callback, (word))
)
self.searchmasklabels_clicked[labeli + 1].setGeometry(
*pos2
)
self.searchmasklabels_clicked[labeli + 1].show()
self.searchmasklabels_clicked[labeli + 1].company = (
self.searchmasklabels_clicked[labeli]
)
if callback:
self.searchmasklabels_clicked[
labeli + 1
].callback = functools.partial(callback, (word))
if isshow_fenci:
self.searchmasklabels[labeli].setGeometry(*pos1)
self.searchmasklabels[labeli].setStyleSheet(
"background-color: {};".format(color)
)
self.searchmasklabels[labeli].show()
self.searchmasklabels[labeli + 1].setGeometry(*pos2)
self.searchmasklabels[labeli + 1].setStyleSheet(
"background-color: {};".format(color)
)
self.searchmasklabels[labeli + 1].show()
labeli += 2
else:
pos1 = (
tl1.x() + 1,
tl1.y(),
tl2.x() - tl1.x() - 2,
int(heigth),
self.searchmasklabels_clicked[labeli + 1].setGeometry(*pos2)
self.searchmasklabels_clicked[labeli + 1].show()
self.searchmasklabels_clicked[labeli + 1].company = (
self.searchmasklabels_clicked[labeli]
)
if isfenciclick:
self.searchmasklabels_clicked[labeli].setGeometry(*pos1)
self.searchmasklabels_clicked[labeli].company = None
self.searchmasklabels_clicked[labeli].show()
if callback:
self.searchmasklabels_clicked[labeli].callback = (
functools.partial(callback, word)
)
if isshow_fenci:
self.searchmasklabels[labeli].setGeometry(*pos1)
self.searchmasklabels[labeli].setStyleSheet(
"background-color: {};".format(color)
if callback:
self.searchmasklabels_clicked[labeli + 1].callback = (
functools.partial(callback, (word))
)
self.searchmasklabels[labeli].show()
labeli += 1
if isshow_fenci and color:
self.searchmasklabels[labeli].setGeometry(*pos1)
self.searchmasklabels[labeli].setStyleSheet(
"background-color: {};".format(color)
)
self.searchmasklabels[labeli].show()
self.searchmasklabels[labeli + 1].setGeometry(*pos2)
self.searchmasklabels[labeli + 1].setStyleSheet(
"background-color: {};".format(color)
)
self.searchmasklabels[labeli + 1].show()
labeli += 2
else:
pos1 = (
tl1.x() + 1,
tl1.y(),
tl2.x() - tl1.x() - 2,
int(heigth),
)
if isfenciclick:
self.searchmasklabels_clicked[labeli].setGeometry(*pos1)
self.searchmasklabels_clicked[labeli].company = None
self.searchmasklabels_clicked[labeli].show()
if callback:
self.searchmasklabels_clicked[labeli].callback = (
functools.partial(callback, word)
)
if isshow_fenci and color:
self.searchmasklabels[labeli].setGeometry(*pos1)
self.searchmasklabels[labeli].setStyleSheet(
"background-color: {};".format(color)
)
self.searchmasklabels[labeli].show()
labeli += 1
tl1 = tl3
tl4 = tl2
@ -529,7 +524,6 @@ class TextBrowser(QWidget, dataget):
else:
font.setFamily(globalconfig["fonttype2"])
# font.setPixelSize(int(globalconfig['fontsize']) )
if half:
font.setPointSizeF((globalconfig["fontsize"]) * globalconfig["kanarate"])
else:

View File

@ -41,6 +41,7 @@
return 'luna' + Math.random().toString(36).substr(2, 9);
}
function commoninit_font_align_height(ele, args) {
//字体使用pt高度/距离使用px
if (args.lineHeight > 0)
ele.style.lineHeight = args.lineHeight + 'px'
ele.style.fontFamily = args.fontFamily

View File

@ -3,6 +3,7 @@ from rendertext.somefunctions import dataget
import gobject, uuid, json, os, functools
from urllib.parse import quote
from myutils.config import globalconfig, static_data
from myutils.wrapper import tryprint
from gui.usefulwidget import WebivewWidget, QWebWrap
testsavejs = False
@ -11,6 +12,7 @@ testsavejs = False
class TextBrowser(QWidget, dataget):
contentsChanged = pyqtSignal(QSize)
@tryprint
def resizeEvent(self, event: QResizeEvent):
self.webivewwidget.resize(event.size())
self.masklabel.resize(event.size())
@ -39,6 +41,7 @@ class TextBrowser(QWidget, dataget):
self.isfirst = True
self._qweb_query_word()
@tryprint
def showEvent(self, e):
if not self.isfirst:
return

View File

@ -316,8 +316,6 @@
"arabic_reshaper": false
},
"uselongtermcache": false,
"auto_expand": true,
"auto_shrink": true,
"showintab": true,
"showintab_sub": true,
"remove_useless_hook": false,
@ -784,11 +782,18 @@
"tip": "可选取的",
"icon": "fa.i-cursor",
"align": 0
},
"searchwordW": {
"use": false,
"tip": "查词",
"icon": "fa.search",
"align": 0
}
}
},
"disappear_delay_tool": 1,
"mousetransparent": false,
"adaptive_height": true,
"backtransparent": false,
"showtranexception": true,
"refresh_on_get_trans": false,
@ -1378,7 +1383,7 @@
},
"mdict": {
"use": false,
"name": "mdict",
"name": "MDict",
"args": {
"paths": [],
"distance": 0,
@ -1941,7 +1946,6 @@
"ZoomFactor": 1,
"realtime_edit_target": "realtime_edit",
"magpiepath": "",
"minifollow": false,
"movefollow": false,
"focusnotop": false,
"autostarthook": true,

View File

@ -684,11 +684,17 @@
"sources": [
{
"name": "J北京7",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/offline_translator/JBeijing7.zip"
},
{
"name": "J北京7_用户词典",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/offline_translator/JBeijing7UserDict.zip"
"type": "group",
"links": [
{
"name": "J北京7",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/offline_translator/JBeijing7.zip"
},
{
"name": "用户词典",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/offline_translator/JBeijing7UserDict.zip"
}
]
},
{
"name": "金山快译",
@ -702,42 +708,70 @@
"name": "MT5",
"link": "https://github.com/chaihahaha/OrtMT5/releases/tag/v0.1.0"
},
{
"name": "Sugoi",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/softwares/Sugoi_Translator_V8.7z"
},
{
"name": "Sakura大模型",
"link": "https://github.com/SakuraLLM/Sakura-13B-Galgame"
},
{
"name": "TGW",
"link": "https://github.com/oobabooga/text-generation-webui"
"name": "TGW懒人包",
"link": "https://pan.baidu.com/s/1fe7iiHIAtoXW80Twsrv8Nw?pwd=pato"
}
]
},
{
"name": "OCR语言包",
"name": "OCR",
"sources": [
{
"name": "日语",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/ja.zip"
"name": "本地OCR_语言包",
"type": "group",
"links": [
{
"name": "日语",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/ja.zip"
},
{
"name": "英文",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/en.zip"
},
{
"name": "简体中文",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/zh.zip"
},
{
"name": "繁体中文",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/cht.zip"
},
{
"name": "韩语",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/ko.zip"
},
{
"name": "俄语",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/ru.zip"
}
]
},
{
"name": "英文",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/en.zip"
},
{
"name": "简体中文",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/zh.zip"
},
{
"name": "繁体中文",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/cht.zip"
},
{
"name": "韩语",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/ko.zip"
},
{
"name": "俄语",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/ocr_models/ru.zip"
"name": "mangaocr",
"type": "group",
"links": [
{
"name": "项目仓库",
"link": "https://github.com/kha-white/manga-ocr"
},
{
"name": "整合包_CPU",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/softwares/manga-ocr_cpu_v0.1.11.zip"
},
{
"name": "整合包_GPU",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/softwares/manga-ocr_gpu_v0.1.11.7z"
}
]
}
]
},
@ -746,11 +780,17 @@
"sources": [
{
"name": "MeCab",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/dictionary/Mecab.zip"
},
{
"name": "MeCab_Unidic_latest",
"link": "https://clrd.ninjal.ac.jp/unidic/"
"type": "group",
"links": [
{
"name": "MeCab",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/dictionary/Mecab.zip"
},
{
"name": "Unidic",
"link": "https://clrd.ninjal.ac.jp/unidic/"
}
]
},
{
"name": "小学馆",
@ -769,12 +809,18 @@
"link": "https://github.com/HIllya51/RESOURCES/releases/download/dictionary/Lingoes.zip"
},
{
"name": "mdict",
"link": "https://forum.freemdict.com/"
},
{
"name": "mdict",
"link": "https://search.freemdict.com/"
"name": "MDict",
"type": "group",
"links": [
{
"name": "论坛",
"link": "https://forum.freemdict.com/"
},
{
"name": "freemdict",
"link": "https://search.freemdict.com/"
}
]
}
]
},
@ -782,136 +828,154 @@
"name": "语音合成",
"sources": [
{
"name": "NeoSpeech Misaki",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/NeoSpeech.Japanese.Misaki.zip"
},
{
"name": "NeoSpeech Show",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/NeoSpeech.TTS.NeoSpeech.Japanese.Show_v3.10.0.0.zip.zip"
"name": "NeoSpeech",
"type": "group",
"links": [
{
"name": "Misaki",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/NeoSpeech.Japanese.Misaki.zip"
},
{
"name": "Show",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/NeoSpeech.TTS.NeoSpeech.Japanese.Show_v3.10.0.0.zip"
}
]
},
{
"name": "VOICEVOX",
"link": "https://github.com/VOICEVOX/voicevox/releases"
},
{
"name": "vits-simple-api",
"type": "group",
"links": [
{
"name": "Github仓库",
"link": "https://github.com/Artrajz/vits-simple-api/releases"
},
{
"name": "整合包_CPU",
"link": "https://github.com/raindrop213/LunaTranslator-re/releases/download/v0.0.1/vits-simple-api-windows-cpu-v0.6.9_vits-uma-genshin-honkai.rar"
},
{
"name": "整合包_GPU",
"link": "https://github.com/raindrop213/LunaTranslator-re/releases/download/v0.0.1/vits-simple-api-windows-gpu-v0.6.9_vits-uma-genshin-honkai.7z"
}
]
},
{
"name": "VoiceRoid+_東北ずん子/东北俊子",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/voiceroid_plus/VOICEROID+zunko.7z"
},
{
"name": "VoiceRoid2_SFE_結月ゆかり/结月缘",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/Yukari2.zip"
},
{
"name": "VoiceRoid2_結月ゆかり/结月缘",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Yuzuki_Yukari.zip"
},
{
"name": "VoiceRoid2_紲星あかり/绁星灯",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Kizuna_Akari.zip"
},
{
"name": "VoiceRoid2_琴葉 茜・葵",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Kotonoha_Akane_Aoi.zip"
},
{
"name": "VoiceRoid2_伊織弓鶴",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Iori_Yuzuru.zip"
},
{
"name": "VoiceRoid2_ついなちゃん",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_tsuina-chan_dl_e.zip"
},
{
"name": "VoiceRoid2_東北イタコ/东北伊达子",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Tohoku_Itako.zip"
},
{
"name": "VoiceRoid2_附加音源_結月ゆかり",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/yukari_emo_44.zip"
},
{
"name": "VoiceRoid2_附加音源_紲星あかり",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/akari_44.zip"
},
{
"name": "VoiceRoid2_附加音源_東北きりたん",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/kiritan_44.zip"
},
{
"name": "VoiceRoid2_附加音源_東北イタコ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/itako_emo_44.zip"
},
{
"name": "VoiceRoid2_附加音源_東北ずん子",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/zunko_44.zip"
},
{
"name": "VoiceRoid2_附加音源_伊織弓鶴",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/yuzuru_emo_44.zip"
},
{
"name": "VoiceRoid2_附加音源_ついなちゃん",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/tsuina_44.zip"
},
{
"name": "VoiceRoid2_附加音源_ついなちゃん関西弁",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/tsuina_west_44.zip"
},
{
"name": "VoiceRoid2_附加音源_琴葉茜",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/akane_west_emo_44.zip"
},
{
"name": "VoiceRoid2_附加音源_琴葉葵",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/aoi_emo_44.zip"
},
{
"name": "VoiceRoid2_附加音源_水奈瀬コウ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/kou_44.zip"
},
{
"name": "VoiceRoid2_附加音源_桜乃そら",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/sora_44.zip"
},
{
"name": "VoiceRoid2_附加音源_民安ともえ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/tamiyasu_44.zip"
},
{
"name": "VoiceRoid2_附加音源_月読アイ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/ai_44.zip"
},
{
"name": "VoiceRoid2_附加音源_月読ショウタ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/shouta_44.zip"
},
{
"name": "VoiceRoid2_附加音源_京町セイカ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/seika_44.zip"
},
{
"name": "VoiceRoid2_附加音源_音街ウナ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/una_44.zip"
},
{
"name": "VoiceRoid2_附加音源_鷹の爪吉田",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/yoshidakun_44.zip"
},
{
"name": "VoiceRoid2_附加音源_ギャラ子",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/galaco_44.zip"
},
{
"name": "vits-simple-api",
"link": "https://github.com/Artrajz/vits-simple-api/releases"
},
{
"name": "vits-simple-api_CPU",
"link": "https://github.com/raindrop213/LunaTranslator-re/releases/download/v0.0.1/vits-simple-api-windows-cpu-v0.6.9_vits-uma-genshin-honkai.rar"
},
{
"name": "vits-simple-api_GPU",
"link": "https://github.com/raindrop213/LunaTranslator-re/releases/download/v0.0.1/vits-simple-api-windows-gpu-v0.6.9_vits-uma-genshin-honkai.7z"
"name": "VoiceRoid2",
"type": "group",
"links": [
{
"name": "SFE_結月ゆかり/结月缘",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/Yukari2.zip"
},
{
"name": "結月ゆかり/结月缘",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Yuzuki_Yukari.zip"
},
{
"name": "紲星あかり/绁星灯",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Kizuna_Akari.zip"
},
{
"name": "琴葉 茜・葵",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Kotonoha_Akane_Aoi.zip"
},
{
"name": "伊織弓鶴",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Iori_Yuzuru.zip"
},
{
"name": "ついなちゃん",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_tsuina-chan_dl_e.zip"
},
{
"name": "東北イタコ/东北伊达子",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/speech_synthesis_packages/VOICEROID2_Tohoku_Itako.zip"
},
{
"name": "附加音源_結月ゆかり",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/yukari_emo_44.zip"
},
{
"name": "附加音源_紲星あかり",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/akari_44.zip"
},
{
"name": "附加音源_東北きりたん",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/kiritan_44.zip"
},
{
"name": "附加音源_東北イタコ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/itako_emo_44.zip"
},
{
"name": "附加音源_東北ずん子",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/zunko_44.zip"
},
{
"name": "附加音源_伊織弓鶴",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/yuzuru_emo_44.zip"
},
{
"name": "附加音源_ついなちゃん",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/tsuina_44.zip"
},
{
"name": "附加音源_ついなちゃん関西弁",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/tsuina_west_44.zip"
},
{
"name": "附加音源_琴葉茜",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/akane_west_emo_44.zip"
},
{
"name": "附加音源_琴葉葵",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/aoi_emo_44.zip"
},
{
"name": "附加音源_水奈瀬コウ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/kou_44.zip"
},
{
"name": "附加音源_桜乃そら",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/sora_44.zip"
},
{
"name": "附加音源_民安ともえ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/tamiyasu_44.zip"
},
{
"name": "附加音源_月読アイ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/ai_44.zip"
},
{
"name": "附加音源_月読ショウタ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/shouta_44.zip"
},
{
"name": "附加音源_京町セイカ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/seika_44.zip"
},
{
"name": "附加音源_音街ウナ",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/una_44.zip"
},
{
"name": "附加音源_鷹の爪吉田",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/yoshidakun_44.zip"
},
{
"name": "附加音源_ギャラ子",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/install_free_voice_packages/galaco_44.zip"
}
]
}
]
},
@ -924,7 +988,7 @@
},
{
"name": "Locale_Remulator",
"link": "https://github.com/InWILL/Locale_Remulator/releases"
"link": "https://github.com/InWILL/Locale_Remulator/releases/download/v1.5.3-beta.1/Locale_Remulator.1.5.3-beta.1.zip"
},
{
"name": "Ntleas",
@ -937,19 +1001,31 @@
"sources": [
{
"name": "Magpie",
"link": "https://github.com/Blinue/Magpie/releases"
"type": "group",
"links": [
{
"name": "Github仓库",
"link": "https://github.com/Blinue/Magpie/releases"
},
{
"name": "win7适配版",
"link": "https://github.com/HIllya51/Magpie9_win7/releases"
}
]
},
{
"name": "Magpie9_win7适配版",
"link": "https://github.com/HIllya51/Magpie9_win7/releases"
},
{
"name": "QWebEngine x86",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/softwares/QWebEngine_x86.zip"
},
{
"name": "QWebEngine x64",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/softwares/QWebEngine_x64.zip"
"name": "QWebEngine",
"type": "group",
"links": [
{
"name": "x86",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/softwares/QWebEngine_x86.zip"
},
{
"name": "x64",
"link": "https://github.com/HIllya51/RESOURCES/releases/download/softwares/QWebEngine_x64.zip"
}
]
}
]
}

View File

@ -52,7 +52,6 @@
"字符串偏移量": "سلسلة تعويض",
"窗口置顶": "نافذة السقف",
"西里尔": "سيريل",
"设置界面字体类型": "مجموعة واجهة نوع الخط",
"月読アイ": "مون 読アイ",
"小学馆": "قاعة المدرسة الابتدائية",
"最小化到托盘": "التقليل إلى صينية",
@ -123,7 +122,6 @@
"预翻译": "قبل الترجمة",
"过滤数字": "فلتر رقمي",
"显示编辑按钮": "عرض زر تحرير",
"设置界面字体": "واجهة الخط",
"灵格斯词典": "قاموس لينغز",
"用户词典3": "قاموس المستخدم",
"选择文件夹": "اختيار مجلد",
@ -154,7 +152,6 @@
"文字计数": "نص العد",
"简体中文": "الصينية المبسطة",
"结束地址(hex)": "نهاية العنوان ( عرافة )",
"翻译器显示语言(重启生效)": "مترجم لغة العرض ( إعادة تشغيل )",
"日语(CP932,SHIFT-JIS)": "اليابانية ( cp932 shift-jis , )",
"显示朗读按钮": "عرض زر القراءة",
"语速:(-10~10)": "سرعة الكلام : ( - 10-10 )",
@ -166,14 +163,12 @@
"紲星あかり/绁星灯": "مصباح نجمة بوند",
"进程": "عملية",
"错误": "خطأ .",
"自动隐藏窗口": "نافذة مخفية تلقائيا",
"复制到剪贴板": "نسخ إلى الحافظة",
"游戏静音": "لعبة كتم الصوت",
"朗读": "قراءة بصوت عال",
"&设置": "إعدادات",
"插值算法": "خوارزمية الاستيفاء",
"描边字体": "خط السكتات الدماغية",
"自动下载更新(需要连接github)": "تحميل التحديثات تلقائيا ( تحتاج إلى الاتصال github )",
"分析图像更新+周期执行": "تحليل صورة التحديث + دورة التنفيذ",
"翻译请求间隔(s)": "طلب الترجمة الفاصلة ( ق )",
"翻译结果修正按钮": "زر تصحيح نتائج الترجمة",
@ -220,7 +215,6 @@
"暂不支持64程序": "لا يدعم البرنامج مؤقتا",
"执行周期": "فترة التنفيذ",
"自动检测": "الكشف التلقائي",
"词性颜色(需要Mecab)": "جزء من خطاب اللون ( مطلوب )",
"简单替换内容(若替换为空则直接过滤)": "بسيطة استبدال المحتوى ( تصفية مباشرة إذا كان استبدال فارغة )",
"判定詞": "الحكم على كلمة",
"简体中文(GBK)": "الصينية المبسطة ( GBK )",
@ -240,9 +234,7 @@
"文本": "نص .",
"自定义剪裁": "العرف الخياطة",
"周期执行": "تنفيذ دورة",
"替换内容": "استبدال المحتوى",
"是否显示": "عرض",
"成功": "النجاح .",
"分析图像更新": "تحليل صورة التحديث",
"插入图片": "إدراج صورة",
"打开保存的游戏": "فتح حفظ اللعبة",
@ -270,7 +262,6 @@
"搜索特殊码": "البحث عن رمز خاص",
"文本源": "النص الأصلي",
"不显示api": "لا تظهر API",
"不同词性颜色(需要Mecab)": "أجزاء مختلفة من الكلام اللون ( مطلوب ميكاب )",
"百度api": "بايدو API",
"希伯来语(CP1255)": "العبرية ( CP1255 )",
"确定": "أكّد",
@ -323,7 +314,6 @@
"备忘录": "مذكرة",
"默认搜索": "البحث الافتراضي",
"連体詞": "ربط الكلمات",
"游戏最小化时窗口隐藏": "نافذة مخفية عند تقليل اللعبة",
"波兰语": "بولندية",
"密钥": "مفتاح",
"复制特殊码": "نسخ رمز خاص",
@ -355,7 +345,6 @@
"文本预处理": "النص وتجهيزها",
"其他": "أخرى .",
"转区启动": "بدء تشغيل المنطقة",
"收到翻译结果时才刷新": "تحديث عند تلقي نتائج الترجمة",
"获取中": "الحصول على",
"J北京7": "ي بكين",
"用户词典选择JcUserdic文件夹": "قاموس المستخدم اختيار jcuserdic مجلد",
@ -389,7 +378,6 @@
"移动": "تحرك .",
"重复次数": "تكرار مرات",
"选择路径": "اختيار المسار",
"隐藏延迟(s)": "إخفاء تأخير ( ق )",
"源语言": "لغة المصدر",
"预处理方法": "طريقة المعالجة",
"&退出": "خروج",
@ -582,7 +570,6 @@
"序列数": "رقم التسلسل",
"过长惩罚": "عقوبة طويلة",
"重复惩罚": "تكرار العقوبة",
"OCR语言包": "التعرف الضوئي على الحروف حزمة اللغة",
"最长显示字数": "أقصى عرض الكلمات",
"显示日语注音": "عرض صوتي ياباني",
"注音颜色": "لون صوتي",
@ -717,10 +704,7 @@
"例句中加粗单词": "على سبيل المثال كلمة جريئة",
"工具栏": "شريط الأدوات",
"背景颜色": "لون الخلفية",
"翻译窗口": "نافذة الترجمة",
"工具按钮": "أداة زر",
"界面主题": "واجهة الموضوع",
"窗口行为": "نافذة السلوك",
"窗口特效": "نافذة المؤثرات الخاصة",
"实时编辑": "في الوقت الحقيقي تحرير",
"翻译记录": "سجل الترجمة",
@ -774,19 +758,13 @@
"阴影字体": "خطوط الظل",
"额外的html": "أتش تي أم أل إضافية",
"测试": "اختبار .",
"窗口尺寸": "حجم النافذة",
"自动延展": "التمديد التلقائي",
"自动收缩": "الانكماش التلقائي",
"范围框颜色": "مجموعة مربع اللون",
"伴随游戏窗口": "نافذة اللعبة المصاحبة",
"主题": "موضوع .",
"自动输出": "الانتاج الآلي",
"引擎": "محرك .",
"注音": "لفظي",
"字体缩放": "حجم الخط",
"显示行为": "عرض السلوك",
"主界面": "الواجهة الرئيسية",
"设置界面": "وضع واجهة",
"声音": "صوت .",
"行为": "تصرف",
"自动化执行": "التنفيذ الآلي",
@ -799,7 +777,6 @@
"按钮颜色": "زر اللون",
"按钮大小": "حجم الزر",
"软件显示语言": "عرض برامج اللغة",
"重启生效": "إعادة تشغيل",
"不支持的游戏?": "لا تدعم اللعبة ؟",
"填充颜色": "ملء اللون",
"阴影强度": "كثافة الظل",
@ -810,5 +787,30 @@
"投影距离": "المسافة المتوقعة",
"反转颜色": "عكس اللون",
"内嵌": "جزءا لا يتجزأ من",
"未找到QWebEngine点击确定前往下载QWebEngine": "لم يتم العثور على qwebengine ، انقر فوق موافق لتحميل qwebengine"
"未找到QWebEngine点击确定前往下载QWebEngine": "لم يتم العثور على qwebengine ، انقر فوق موافق لتحميل qwebengine",
"网络设置": "إعدادات الشبكة",
"版本更新": "تحديث النسخة",
"词性颜色": "لون الكلام",
"需要Mecab": "مطلوب ميكاب",
"跟随游戏窗口": "اتبع نافذة اللعبة",
"自动调整高度": "ضبط الارتفاع تلقائيا",
"文本区": "منطقة النص",
"收到翻译时才刷新": "تحديث عند تلقي الترجمة",
"自动隐藏窗口": "نافذة مخفية تلقائيا",
"隐藏延迟(s)": "إخفاء تأخير ( ق )",
"内容": "المحتويات",
"显示内容": "عرض المحتوى",
"界面设置": "إعدادات واجهة",
"主题效果": "تأثير الموضوع",
"其他界面": "واجهة أخرى",
"翻译及OCR": "الترجمة و التعرف الضوئي على الحروف",
"这一设置将会在下一次打开软件时生效": "هذا الإعداد سوف تصبح نافذة المفعول في المرة القادمة التي يتم فتح البرنامج",
"语言包": "حزمة اللغة",
"项目仓库": "مشروع مستودع",
"整合包": "حزمة متكاملة",
"TGW懒人包": "TGW الكسول حقيبة",
"论坛": "المنتديات",
"请选择": "الرجاء اختيار",
"安装成功": "تثبيت بنجاح",
"添加成功": "إضافة ناجحة"
}

View File

@ -91,7 +91,6 @@
"显示原文": "顯示原文",
"显示分词结果": "顯示分詞結果",
"翻译器字体类型": "翻譯器字體類型",
"设置界面字体类型": "設定介面字體類型",
"字体大小": "字體大小",
"字体样式": "字體樣式",
"加粗字体": "加粗字體",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "顯示翻譯歷史按鈕",
"显示保存的游戏按钮": "顯示保存的遊戲按鈕",
"显示游戏静音按钮": "顯示遊戲靜音按鈕",
"游戏最小化时窗口隐藏": "遊戲最小化時視窗隱藏",
"游戏窗口移动时同步移动": "遊戲視窗移動時同步移動",
"翻译结果繁简体显示": "翻譯結果繁簡體顯示",
"翻译器显示语言(重启生效)": "翻譯器顯示語言(重啓生效)",
"语音设置": "語音設定",
"火山TTS": "火山TTS",
"选择声音": "選擇聲音",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "字體縮小(可長按)",
"前景窗口截屏": "前景視窗截圖",
"游戏静音": "遊戲靜音",
"自动下载更新(需要连接github)": "自動下載更新需要連接github",
"选择进程": "選擇行程",
"获取中": "獲取中",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "如果沒看見想要附加的行程,可以嘗試點擊下方按鈕後點擊遊戲視窗,或者嘗試使用管理員許可權運行本軟件",
@ -212,7 +208,6 @@
"判定詞": "判定詞",
"设置所有词条为全局词条": "設定所有詞條為全域詞條",
"去除重复行": "去除重複行",
"替换内容": "替換內容",
"重复次数": "重複次數",
"显示翻译器名称": "顯示翻譯器名稱",
"自动检测": "自動檢測",
@ -234,8 +229,6 @@
"空白": "空白",
"合并多行识别结果": "合併多行識別結果",
"选取OCR范围后立即进行一次识别": "選取OCR範圍後立即進行一次識別",
"自动隐藏窗口": "自動隱藏視窗",
"隐藏延迟(s)": "隱藏延遲s",
"选取OCR范围——立即": "選取OCR範圍——立即",
"未查到": "未查到",
"保存": "保存",
@ -264,8 +257,6 @@
"设置Token": "設定Token",
"内置": "內寘",
"token设置": "token設定",
"不同词性颜色(需要Mecab)": "不同詞性顏色需要Mecab",
"词性颜色(需要Mecab)": "詞性顏色需要Mecab",
"!未选定进程!": " 未選定行程!",
"该功能可能会导致游戏崩溃!": "該功能可能會導致遊戲崩潰!",
"警告": "警告",
@ -305,7 +296,6 @@
"说明": "說明",
"分析图像更新+周期执行": "分析影像更新+週期執行",
"翻译器字体": "翻譯器字體",
"设置界面字体": "設定介面字體",
"专有名词翻译设置按钮": "專有名詞翻譯設定按鈕",
"调整游戏窗口按钮": "調整遊戲視窗按鈕",
"内嵌的翻译器": "內嵌的翻譯器",
@ -361,7 +351,6 @@
"火山OCR": "火山OCR",
"密钥获取": "金鑰獲取",
"翻译及OCR语言": "翻譯及OCR語言",
"成功": "成功",
"特殊码": "特殊碼",
"删除特殊码": "删除特殊碼",
"删除": "删除",
@ -376,7 +365,6 @@
"翻译结果修正": "翻譯結果修正",
"翻译结果修正按钮": "翻譯結果修正按鈕",
"翻译结果替换设置": "翻譯結果替換設定",
"收到翻译结果时才刷新": "收到翻譯結果時才重繪",
"过滤包含乱码的文本行": "過濾包含亂碼的文字行",
"过滤文本中的非日语字符集字符": "過濾文字中的非日語字元集字元",
"过滤ASCII字符集": "過濾ASCII字元集",
@ -582,7 +570,6 @@
"序列数": "序列數",
"过长惩罚": "過長懲罰",
"重复惩罚": "重複懲罰",
"OCR语言包": "OCR語言包",
"最长显示字数": "最長顯示字數",
"显示日语注音": "顯示日語注音",
"注音颜色": "注音顏色",
@ -717,10 +704,7 @@
"例句中加粗单词": "例句中加粗單詞",
"工具栏": "工具列",
"背景颜色": "背景顏色",
"翻译窗口": "翻譯視窗",
"工具按钮": "工具按鈕",
"界面主题": "介面主題",
"窗口行为": "視窗行為",
"窗口特效": "視窗特效",
"实时编辑": "實时編輯",
"翻译记录": "翻譯記錄",
@ -774,19 +758,13 @@
"阴影字体": "陰影字體",
"额外的html": "額外的html",
"测试": "測試",
"窗口尺寸": "視窗尺寸",
"自动延展": "自動延展",
"自动收缩": "自動收縮",
"范围框颜色": "範圍框顏色",
"伴随游戏窗口": "伴隨遊戲視窗",
"主题": "主題",
"自动输出": "自動輸出",
"引擎": "引擎",
"注音": "注音",
"字体缩放": "字體縮放",
"显示行为": "顯示行為",
"主界面": "主介面",
"设置界面": "設定介面",
"声音": "聲音",
"行为": "行為",
"自动化执行": "自動化執行",
@ -799,7 +777,6 @@
"按钮颜色": "按鈕顏色",
"按钮大小": "按鈕大小",
"软件显示语言": "軟件顯示語言",
"重启生效": "重啓生效",
"不支持的游戏?": "不支持的遊戲?",
"填充颜色": "填充顏色",
"阴影强度": "陰影强度",
@ -810,5 +787,30 @@
"投影距离": "投影距離",
"反转颜色": "反轉顏色",
"内嵌": "內嵌",
"未找到QWebEngine点击确定前往下载QWebEngine": "未找到QWebEngine點擊確定前往下載QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "未找到QWebEngine點擊確定前往下載QWebEngine",
"网络设置": "網絡設定",
"版本更新": "版本更新",
"词性颜色": "詞性顏色",
"需要Mecab": "需要Mecab",
"跟随游戏窗口": "跟隨遊戲視窗",
"自动调整高度": "自動調整高度",
"文本区": "文本區",
"收到翻译时才刷新": "收到翻譯時才重繪",
"自动隐藏窗口": "自動隱藏視窗",
"隐藏延迟(s)": "隱藏延遲s",
"内容": "內容",
"显示内容": "顯示內容",
"界面设置": "介面設定",
"主题效果": "主題效果",
"其他界面": "其他介面",
"翻译及OCR": "翻譯及OCR",
"这一设置将会在下一次打开软件时生效": "這一設定將會在下一次打開軟件時生效",
"语言包": "語言包",
"项目仓库": "項目倉庫",
"整合包": "綜合包",
"TGW懒人包": "TGW懶人包",
"论坛": "論壇",
"请选择": "請選擇",
"安装成功": "安裝成功",
"添加成功": "添加成功"
}

View File

@ -1,6 +1,5 @@
{
"历史翻译": "Historical Translation",
"自动下载更新(需要连接github)": "Automatically download updates (you need to connect to github)",
"获取中": "Getting",
"获取失败": "Get failed",
"查词": "Word search",
@ -21,7 +20,6 @@
"语速:(-10~10)": "Speech speed: (- 10~10)",
"百度api": "Baidu api",
"预翻译": "Pre translation",
"翻译器显示语言(重启生效)": "Translator display language (effective after restart)",
"专有名词翻译设置(游戏ID 0表示全局)": "Proper noun translation settings (game ID 0 indicates global)",
"密钥": "secret key",
"使用VNR共享辞书": "Use VNR to share dictionaries",
@ -34,7 +32,6 @@
"选择文件": "Select File",
"剪贴板": "clipboard",
"腾讯api": "Tencent api",
"游戏最小化时窗口隐藏": "Hide window when game is minimized",
"本地OCR": "Local OCR",
"阿里": "Ali",
"自动朗读": "Automatic reading",
@ -133,7 +130,6 @@
"翻译结果繁简体显示": "Display of translation results in simplified and complex form",
"显示设置": "Display Settings",
"显示/隐藏原文": "Show/hide original text",
"设置界面字体类型": "Set interface font type",
"小牛api": "Maverick api",
"HOOK设置": "HOOK Settings",
"英文": "english",
@ -183,7 +179,6 @@
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "If you do not see the process you want to attach, you can try to click the button below and then click the game window, or try to run the software with administrator privileges",
"点击此按钮后点击游戏窗口": "Click this button and then click the game window",
"程序名": "Program name",
"替换内容": "replace content",
"重复次数": "Repetitions",
"最小化到托盘": "Minimize to tray",
"&显示": "&Show",
@ -236,8 +231,6 @@
"未查到": "Not found",
"保存": "preservation",
"选取OCR范围后立即进行一次识别": "Once the OCR range is selected, identify it immediately",
"自动隐藏窗口": "Auto hide window",
"隐藏延迟(s)": "Hide Delay (s)",
"选取OCR范围——立即": "Select OCR Range - Immediately",
"当前版本": "current version",
"最新版本": "Latest version",
@ -264,8 +257,6 @@
"设置Token": "Set Token",
"内置": "built-in",
"token设置": "Token settings",
"不同词性颜色(需要Mecab)": "Different parts of speech colors (Mecab required)",
"词性颜色(需要Mecab)": "Part of speech color (Mecab required)",
"!未选定进程!": " No process selected!",
"该功能可能会导致游戏崩溃!": "This function may cause the game to crash!",
"警告": "warning",
@ -305,7 +296,6 @@
"说明": "explain",
"分析图像更新+周期执行": "Analysis image update+periodic execution",
"翻译器字体": "Translator font",
"设置界面字体": "Set interface font",
"专有名词翻译设置按钮": "Proper noun translation setting button",
"调整游戏窗口按钮": "Adjust game window buttons",
"内嵌的翻译器": "Embedded translator",
@ -361,7 +351,6 @@
"火山OCR": "Volcano OCR",
"密钥获取": "Key acquisition",
"翻译及OCR语言": "Translation and OCR language",
"成功": "success",
"特殊码": "specific code",
"删除特殊码": "Delete special code",
"删除": "delete",
@ -376,7 +365,6 @@
"翻译结果修正": "Correction of translation results",
"翻译结果修正按钮": "Translation result correction button",
"翻译结果替换设置": "Translation Result Replacement Settings",
"收到翻译结果时才刷新": "Refresh only when translation results are received",
"过滤包含乱码的文本行": "Filter text lines containing garbled code",
"过滤文本中的非日语字符集字符": "Filter non-Japanese character set characters in text",
"过滤ASCII字符集": "Filter ASCII character set",
@ -582,7 +570,6 @@
"序列数": "Number of sequences",
"过长惩罚": "Excessive punishment",
"重复惩罚": "Repetitive punishment",
"OCR语言包": "OCR Language Pack",
"最长显示字数": "Maximum number of displayed words",
"显示日语注音": "Display Japanese Pinyin",
"注音颜色": "Pinyin color",
@ -717,10 +704,7 @@
"例句中加粗单词": "Bold words in the example sentence",
"工具栏": "toolbar",
"背景颜色": "background color ",
"翻译窗口": "Translation Window",
"工具按钮": "Tool buttons",
"界面主题": "Interface Theme",
"窗口行为": "Window behavior",
"窗口特效": "Window effects",
"实时编辑": "Real time editing",
"翻译记录": "Translation records",
@ -774,19 +758,13 @@
"阴影字体": "Shadow font",
"额外的html": "Additional HTML",
"测试": "test",
"窗口尺寸": "Window size",
"自动延展": "Auto Scaling ",
"自动收缩": "Auto shrink",
"范围框颜色": "Range box color",
"伴随游戏窗口": "Accompanying the game window",
"主题": "theme",
"自动输出": "Automatic output",
"引擎": "engine",
"注音": "Zhuyin",
"字体缩放": "Font scaling",
"显示行为": "Display behavior",
"主界面": "main interface",
"设置界面": "Settings interface",
"声音": "voice",
"行为": "behavior",
"自动化执行": "Automated execution",
@ -799,7 +777,6 @@
"按钮颜色": "Button color",
"按钮大小": "Button size",
"软件显示语言": "Software Display Language",
"重启生效": "Restart takes effect",
"不支持的游戏?": "Unsupported games?",
"填充颜色": "fill color",
"阴影强度": "Shadow intensity",
@ -810,5 +787,30 @@
"投影距离": "Projection distance",
"反转颜色": "invert colors",
"内嵌": "Embedded",
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine not found, click OK to download QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine not found, click OK to download QWebEngine",
"网络设置": "Network Settings",
"版本更新": "Version update",
"词性颜色": "Part of speech color",
"需要Mecab": "Need Mecab",
"跟随游戏窗口": "Follow game window",
"自动调整高度": "Automatic height adjustment",
"文本区": "Text area",
"收到翻译时才刷新": "Refresh only upon receiving translation",
"自动隐藏窗口": "Auto hide window",
"隐藏延迟(s)": "Hidden delay (s)",
"内容": "content",
"显示内容": "show contents",
"界面设置": "Interface settings",
"主题效果": "Theme effect",
"其他界面": "Other interfaces",
"翻译及OCR": "Translation and OCR",
"这一设置将会在下一次打开软件时生效": "This setting will take effect the next time the software is opened",
"语言包": "Language Pack",
"项目仓库": "Project Warehouse",
"整合包": "Integration package",
"TGW懒人包": "TGW Lazy Bag",
"论坛": "forum",
"请选择": "Please select",
"安装成功": "Installation successful",
"添加成功": "Successfully added"
}

View File

@ -91,7 +91,6 @@
"显示原文": "Muestra el texto original",
"显示分词结果": "Mostrar los resultados de la segmentación de palabras",
"翻译器字体类型": "Tipo de fuente del traductor",
"设置界面字体类型": "Establecer el tipo de letra de la interfaz",
"字体大小": "Tamaño de la fuente",
"字体样式": "Estilo de fuente",
"加粗字体": "Negrita",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "Mostrar el botón de historia de la traducción",
"显示保存的游戏按钮": "Muestra el botón de juego guardado",
"显示游戏静音按钮": "Muestra el botón de silencio del juego",
"游戏最小化时窗口隐藏": "Ventanas ocultas al minimizar el juego",
"游戏窗口移动时同步移动": "La ventana del juego se mueve simultáneamente cuando se mueve",
"翻译结果繁简体显示": "Visualización simplificada de los resultados de la traducción",
"翻译器显示语言(重启生效)": "Lenguaje de visualización del traductor (reinicio efectivo)",
"语音设置": "Configuración de voz",
"火山TTS": "Volcán TTS",
"选择声音": "Seleccionar sonido",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "Reducción de la fuente (se puede presionar durante mucho tiempo)",
"前景窗口截屏": "Captura de pantalla de la ventana de primer plano",
"游戏静音": "Silencio del juego",
"自动下载更新(需要连接github)": "Descarga automática de actualizaciones (se necesita conectarse a github)",
"选择进程": "Proceso de selección",
"获取中": "En adquisición",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Si no ve el proceso que desea agregar, puede intentar hacer clic en la ventana del juego después de hacer clic en el botón de abajo, o intentar ejecutar este software con los permisos del Administrador.",
@ -212,7 +208,6 @@
"判定詞": "Palabra de juicio",
"设置所有词条为全局词条": "Establecer todas las entradas como entradas globales",
"去除重复行": "Eliminar filas repetidas",
"替换内容": "Reemplazar contenido",
"重复次数": "Número de repeticiones",
"显示翻译器名称": "Muestra el nombre del traductor",
"自动检测": "Detección automática",
@ -234,8 +229,6 @@
"空白": "Vacío",
"合并多行识别结果": "Fusionar los resultados de identificación de varias líneas",
"选取OCR范围后立即进行一次识别": "Reconocimiento una vez seleccionado el rango OCR",
"自动隐藏窗口": "Ocultar automáticamente la ventana",
"隐藏延迟(s)": "Retraso oculto (s)",
"选取OCR范围——立即": "Selección del rango OCR - inmediatamente",
"未查到": "No se ha detectado",
"保存": "Guardar",
@ -264,8 +257,6 @@
"设置Token": "Establecer Token",
"内置": "Incorporado",
"token设置": "Configuración Token",
"不同词性颜色(需要Mecab)": "Diferentes colores del habla (se necesita mecab)",
"词性颜色(需要Mecab)": "Color del habla (se necesita mecab)",
"!未选定进程!": "¡! ¡Proceso no seleccionado!",
"该功能可能会导致游戏崩溃!": "¡¡ esta función puede causar un colapso del juego!",
"警告": "Aviso",
@ -305,7 +296,6 @@
"说明": "Explicación",
"分析图像更新+周期执行": "Actualización de la imagen de análisis + Ejecución del ciclo",
"翻译器字体": "Fuente del traductor",
"设置界面字体": "Establecer la fuente de la interfaz",
"专有名词翻译设置按钮": "Botón de configuración de traducción de términos propios",
"调整游戏窗口按钮": "Ajustar el botón de la ventana del juego",
"内嵌的翻译器": "Traductor incorporado",
@ -361,7 +351,6 @@
"火山OCR": "Volcán OCR",
"密钥获取": "Adquisición de claves",
"翻译及OCR语言": "Idiomas de traducción y OCR",
"成功": "éxito",
"特殊码": "Código especial",
"删除特殊码": "Eliminar el código especial",
"删除": "Eliminar",
@ -376,7 +365,6 @@
"翻译结果修正": "Corrección de los resultados de la traducción",
"翻译结果修正按钮": "Botón de corrección de resultados de traducción",
"翻译结果替换设置": "Configuración de sustitución de resultados de traducción",
"收到翻译结果时才刷新": "Actualizar cuando se reciben los resultados de la traducción",
"过滤包含乱码的文本行": "Filtrar líneas de texto que contienen códigos desordenados",
"过滤文本中的非日语字符集字符": "Filtrar los caracteres del conjunto de caracteres no japoneses en el texto",
"过滤ASCII字符集": "Filtrar el conjunto de caracteres ASCII",
@ -582,7 +570,6 @@
"序列数": "Número de secuencias",
"过长惩罚": "Castigo excesivo",
"重复惩罚": "Repetir el castigo",
"OCR语言包": "Paquete lingüístico OCR",
"最长显示字数": "Número máximo de palabras mostradas",
"显示日语注音": "Muestra la fonética japonesa",
"注音颜色": "Color de la nota",
@ -717,10 +704,7 @@
"例句中加粗单词": "Palabras en negrita en oraciones de ejemplo",
"工具栏": "Barra de herramientas",
"背景颜色": "Color de fondo",
"翻译窗口": "Ventana de traducción",
"工具按钮": "Botones de herramientas",
"界面主题": "Tema de la interfaz",
"窗口行为": "Comportamiento de la ventana",
"窗口特效": "Efectos especiales de la ventana",
"实时编辑": "Edición en tiempo real",
"翻译记录": "Registros de traducción",
@ -774,19 +758,13 @@
"阴影字体": "Fuente de sombra",
"额外的html": "Htmls adicionales",
"测试": "Prueba",
"窗口尺寸": "Tamaño de la ventana",
"自动延展": "Extensión automática",
"自动收缩": "Contracción automática",
"范围框颜色": "Color del marco de rango",
"伴随游戏窗口": "Acompañar la ventana del juego",
"主题": "Tema",
"自动输出": "Salida automática",
"引擎": "Motor",
"注音": "Anotación fonética",
"字体缩放": "Tamaño de la fuente",
"显示行为": "Mostrar comportamiento",
"主界面": "Interfaz principal",
"设置界面": "Configurar la interfaz",
"声音": "Sonido",
"行为": "Comportamiento",
"自动化执行": "Ejecución automatizada",
@ -799,7 +777,6 @@
"按钮颜色": "Color del botón",
"按钮大小": "Tamaño del botón",
"软件显示语言": "Lenguaje de visualización de software",
"重启生效": "El reinicio entra en vigor",
"不支持的游戏?": "¿Juegos no soportados?",
"填充颜色": "Color de relleno",
"阴影强度": "Intensidad de la sombra",
@ -810,5 +787,30 @@
"投影距离": "Distancia de proyección",
"反转颜色": "Invertir color",
"内嵌": "Incrustación",
"未找到QWebEngine点击确定前往下载QWebEngine": "No se ha encontrado qwebengine, haga clic en aceptar para descargar qwebengine"
"未找到QWebEngine点击确定前往下载QWebEngine": "No se ha encontrado qwebengine, haga clic en aceptar para descargar qwebengine",
"网络设置": "Configuración de la red",
"版本更新": "Actualización de la versión",
"词性颜色": "Color del habla",
"需要Mecab": "Se necesita mecab",
"跟随游戏窗口": "Sigue la ventana del juego",
"自动调整高度": "Ajustar automáticamente la altura",
"文本区": "Área de texto",
"收到翻译时才刷新": "Actualización al recibir la traducción",
"自动隐藏窗口": "Ocultar automáticamente la ventana",
"隐藏延迟(s)": "Retraso oculto (s)",
"内容": "Contenido",
"显示内容": "Mostrar contenido",
"界面设置": "Configuración de la interfaz",
"主题效果": "Efectos temáticos",
"其他界面": "Otras interfaces",
"翻译及OCR": "Traducción y OCR",
"这一设置将会在下一次打开软件时生效": "Esta configuración entrará en vigor la próxima vez que abra el software",
"语言包": "Paquete lingüístico",
"项目仓库": "Almacén del proyecto",
"整合包": "Paquete de integración",
"TGW懒人包": "Bolsa perezosa tgw",
"论坛": "Foro",
"请选择": "Por favor, elija",
"安装成功": "Instalación exitosa",
"添加成功": "Se agregó con éxito"
}

View File

@ -91,7 +91,6 @@
"显示原文": "Afficher le texte original",
"显示分词结果": "Afficher les résultats du participant",
"翻译器字体类型": "Type de police du traducteur",
"设置界面字体类型": "Définir le type de police de l'interface",
"字体大小": "Taille de la police",
"字体样式": "Style de police",
"加粗字体": "Police en gras",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "Afficher le bouton historique de la traduction",
"显示保存的游戏按钮": "Afficher les boutons de jeu enregistrés",
"显示游戏静音按钮": "Afficher le bouton mute du jeu",
"游戏最小化时窗口隐藏": "Fenêtre cachée lorsque le jeu est minimisé",
"游戏窗口移动时同步移动": "Synchroniser le mouvement lorsque la fenêtre de jeu se déplace",
"翻译结果繁简体显示": "Affichage simplifié des résultats de la traduction",
"翻译器显示语言(重启生效)": "Langue d'affichage du traducteur (redémarrage en vigueur)",
"语音设置": "Paramètres vocaux",
"火山TTS": "Volcan tts",
"选择声音": "Sélectionner le son",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "Taille de la police (peut être pressée longtemps)",
"前景窗口截屏": "Capture d'écran de la fenêtre de premier plan",
"游戏静音": "Jeu muet",
"自动下载更新(需要连接github)": "Téléchargement automatique des mises à jour (nécessite une connexion à github)",
"选择进程": "Sélectionner le processus",
"获取中": "Acquisition en cours",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Si vous ne voyez pas le processus que vous voulez ajouter, vous pouvez essayer de cliquer sur le bouton ci - dessous et de cliquer sur la fenêtre de jeu, ou essayer d'exécuter le logiciel avec les privilèges d'administrateur",
@ -212,7 +208,6 @@
"判定詞": "Mot de décision",
"设置所有词条为全局词条": "Définir toutes les entrées comme des entrées globales",
"去除重复行": "Supprimer les lignes dupliquées",
"替换内容": "Remplacer",
"重复次数": "Nombre de répétitions",
"显示翻译器名称": "Afficher le nom du traducteur",
"自动检测": "Détection automatique",
@ -234,8 +229,6 @@
"空白": "Blanc",
"合并多行识别结果": "Fusionner les résultats de l'identification multiligne",
"选取OCR范围后立即进行一次识别": "Identification une fois que la plage OCR est sélectionnée",
"自动隐藏窗口": "Masquer automatiquement la fenêtre",
"隐藏延迟(s)": "Masquer le délai",
"选取OCR范围——立即": "Sélectionnez la plage OCR - maintenant",
"未查到": "Non trouvé",
"保存": "Enregistrer",
@ -264,8 +257,6 @@
"设置Token": "Configurer token",
"内置": "Intégré",
"token设置": "Paramètres token",
"不同词性颜色(需要Mecab)": "Différentes couleurs lexicales (mecab requis)",
"词性颜色(需要Mecab)": "Couleur des mots (mecab requis)",
"!未选定进程!": "- Oui! Aucun processus sélectionné!",
"该功能可能会导致游戏崩溃!": "Cette fonctionnalité peut provoquer un crash du jeu!",
"警告": "Avertissement",
@ -305,7 +296,6 @@
"说明": "Description",
"分析图像更新+周期执行": "Mise à jour de l'image analytique + exécution du cycle",
"翻译器字体": "Police du traducteur",
"设置界面字体": "Définir les polices d'interface",
"专有名词翻译设置按钮": "Bouton de configuration de traduction nom propre",
"调整游戏窗口按钮": "Ajuster le bouton de la fenêtre de jeu",
"内嵌的翻译器": "Traducteur intégré",
@ -361,7 +351,6 @@
"火山OCR": "OCR volcanique",
"密钥获取": "Acquisition de clé",
"翻译及OCR语言": "Traduction et langage ocr",
"成功": "Succès",
"特殊码": "Code spécial",
"删除特殊码": "Supprimer le code spécial",
"删除": "Supprimer",
@ -376,7 +365,6 @@
"翻译结果修正": "Correction des résultats de traduction",
"翻译结果修正按钮": "Bouton de correction des résultats de traduction",
"翻译结果替换设置": "Paramètres de remplacement des résultats de traduction",
"收到翻译结果时才刷新": "Rafraîchir uniquement lorsque vous recevez les résultats de la traduction",
"过滤包含乱码的文本行": "Filtrer les lignes de texte contenant du Code brouillé",
"过滤文本中的非日语字符集字符": "Filtrer les caractères du jeu de caractères non japonais dans le texte",
"过滤ASCII字符集": "Filtrer le jeu de caractères ASCII",
@ -582,7 +570,6 @@
"序列数": "Nombre de séquences",
"过长惩罚": "Pénalité trop longue",
"重复惩罚": "Punition répétée",
"OCR语言包": "Pack de langue ocr",
"最长显示字数": "Nombre maximal de mots affichés",
"显示日语注音": "Afficher les notes en japonais",
"注音颜色": "Couleur d'accent",
@ -717,10 +704,7 @@
"例句中加粗单词": "Mots épaissis dans une phrase d'exemple",
"工具栏": "Barre d'outils",
"背景颜色": "Couleur de fond",
"翻译窗口": "Fenêtre de traduction",
"工具按钮": "Le bouton outils",
"界面主题": "Thème de l'interface",
"窗口行为": "Comportement de la fenêtre",
"窗口特效": "Effets spéciaux de fenêtre",
"实时编辑": "Edit en temps réel",
"翻译记录": "Record de traduction",
@ -774,19 +758,13 @@
"阴影字体": "Shadow font",
"额外的html": "Html supplémentaire",
"测试": "Test",
"窗口尺寸": "Dimensions de la fenêtre",
"自动延展": "Extension automatique",
"自动收缩": "Contraction automatique",
"范围框颜色": "Gamme Box couleur",
"伴随游戏窗口": "Accompagner la fenêtre du jeu",
"主题": "Thèmes",
"自动输出": "Sortie automatique",
"引擎": "Moteur",
"注音": "Accent",
"字体缩放": "Zoom de police",
"显示行为": "Afficher le comportement",
"主界面": "Interface principale",
"设置界面": "Configurer l'interface",
"声音": "La voix",
"行为": "Comportement",
"自动化执行": "Exécution automatisée",
@ -799,7 +777,6 @@
"按钮颜色": "Couleur du bouton",
"按钮大小": "Taille du bouton",
"软件显示语言": "Langue d'affichage du logiciel",
"重启生效": "Redémarrage effectif",
"不支持的游戏?": "Un jeu non supporté?",
"填充颜色": "Couleur de remplissage",
"阴影强度": "Intensité de l'ombre",
@ -810,5 +787,30 @@
"投影距离": "Distance de projection",
"反转颜色": "Inverser les couleurs",
"内嵌": "Intégré",
"未找到QWebEngine点击确定前往下载QWebEngine": "Qwebengine n'a pas été trouvé, appuyez sur OK pour aller télécharger qwebengine"
"未找到QWebEngine点击确定前往下载QWebEngine": "Qwebengine n'a pas été trouvé, appuyez sur OK pour aller télécharger qwebengine",
"网络设置": "Paramètres réseau",
"版本更新": "Mise à jour de la version",
"词性颜色": "La couleur des mots",
"需要Mecab": "Mecab est nécessaire",
"跟随游戏窗口": "Suivez la fenêtre du jeu",
"自动调整高度": "Ajustement automatique de la hauteur",
"文本区": "Zone de texte",
"收到翻译时才刷新": "Rafraîchissez seulement lorsque vous recevez la traduction",
"自动隐藏窗口": "Masquer la fenêtre automatiquement",
"隐藏延迟(s)": "Délai caché (s)",
"内容": "Contenu",
"显示内容": "Afficher le contenu",
"界面设置": "Paramètres de l'interface",
"主题效果": "Effets thématiques",
"其他界面": "Autres interfaces",
"翻译及OCR": "Traduction et ocr",
"这一设置将会在下一次打开软件时生效": "Ce paramètre prendra effet lors de la prochaine ouverture du logiciel.",
"语言包": "Pack de langues",
"项目仓库": "Entrepôt du projet",
"整合包": "Paquet de consolidation",
"TGW懒人包": "Tgw sac pour paresseux",
"论坛": "Le Forum",
"请选择": "Veuillez sélectionner",
"安装成功": "Installation réussie",
"添加成功": "Ajouté avec succès"
}

View File

@ -91,16 +91,13 @@
"显示原文": "Mostra testo originale",
"显示分词结果": "Mostra i risultati della segmentazione",
"翻译器字体类型": "Tipo di carattere del traduttore",
"设置界面字体类型": "Imposta tipo di carattere dell'interfaccia",
"字体大小": "dimensione del carattere",
"字体样式": "Stile carattere",
"加粗字体": "Carattere grassetto",
"居中显示": "Centra la visualizzazione",
"描边宽度": "Larghezza tratto",
"游戏最小化时窗口隐藏": "Nascondi finestra quando il gioco è minimizzato",
"游戏窗口移动时同步移动": "Sincronizza il movimento quando la finestra di gioco si muove",
"翻译结果繁简体显示": "Visualizzazione tradizionale e semplificata dei risultati della traduzione",
"翻译器显示语言(重启生效)": "Lingua di visualizzazione del traduttore (efficace dopo il riavvio)",
"语音设置": "Impostazioni vocali",
"火山TTS": "Vulcano TTS",
"选择声音": "Seleziona suono",
@ -130,7 +127,6 @@
"字体缩小(可长按)": "Riduzione dei caratteri (può essere premuto a lungo)",
"前景窗口截屏": "Schermata della finestra di primo piano",
"游戏静音": "Muto gioco",
"自动下载更新(需要连接github)": "Scarica automaticamente gli aggiornamenti (richiede la connessione a github)",
"选择进程": "Seleziona processo",
"获取中": "Ottenere",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Se non viene visualizzato il processo che si desidera allegare, è possibile provare a fare clic sul pulsante qui sotto e quindi fare clic sulla finestra di gioco, o provare a eseguire questo software con privilegi di amministratore",
@ -206,7 +202,6 @@
"判定詞": "Parola determinante",
"设置所有词条为全局词条": "Imposta tutte le voci come voci globali",
"去除重复行": "Rimuovi righe duplicate",
"替换内容": "sostituire il contenuto",
"重复次数": "Ripetizioni",
"显示翻译器名称": "Mostra il nome del traduttore",
"自动检测": "rilevamento automatico",
@ -228,8 +223,6 @@
"空白": "vuoto",
"合并多行识别结果": "Unisci i risultati del riconoscimento di più righe",
"选取OCR范围后立即进行一次识别": "Eseguire immediatamente il riconoscimento dopo aver selezionato l'intervallo OCR",
"自动隐藏窗口": "Nascondi automaticamente la finestra",
"隐藏延迟(s)": "Nascondi ritardo (s)",
"选取OCR范围——立即": "Seleziona intervallo OCR - Immediato",
"未查到": "Non trovato",
"保存": "conservare",
@ -256,8 +249,6 @@
"设置Token": "Imposta gettone",
"内置": "integrato",
"token设置": "Impostazioni token",
"不同词性颜色(需要Mecab)": "Diverse parti dei colori del discorso (Mecab richiesto)",
"词性颜色(需要Mecab)": "Colore di parte del discorso (Mecab richiesto)",
"!未选定进程!": "! Nessun processo selezionato!",
"该功能可能会导致游戏崩溃!": "Questa funzione può causare il crash del gioco!",
"警告": "avviso",
@ -297,7 +288,6 @@
"说明": "spiegare",
"分析图像更新+周期执行": "Analizza gli aggiornamenti delle immagini + esecuzione del ciclo",
"翻译器字体": "Font del traduttore",
"设置界面字体": "Imposta carattere interfaccia",
"内嵌的翻译器": "Traduttore incorporato",
"使用最快翻译而非指定翻译器": "Usa la traduzione più veloce invece di specificare un traduttore",
"剪贴板设置": "Impostazioni degli appunti",
@ -351,7 +341,6 @@
"火山OCR": "OCR del vulcano",
"密钥获取": "Acquisizione chiave",
"翻译及OCR语言": "Traduzione e linguaggio OCR",
"成功": "successo",
"特殊码": "codice specifico",
"删除特殊码": "Elimina codice speciale",
"删除": "elimina",
@ -364,7 +353,6 @@
"修改": "modificare",
"翻译结果修正": "Correzione dei risultati della traduzione",
"翻译结果替换设置": "Impostazioni di sostituzione dei risultati della traduzione",
"收到翻译结果时才刷新": "Aggiorna solo quando ricevi i risultati della traduzione",
"过滤包含乱码的文本行": "Filtra linee di testo contenenti codice distorto",
"过滤文本中的非日语字符集字符": "Filtra caratteri non giapponesi nel testo",
"过滤ASCII字符集": "Filtro set di caratteri ASCII",
@ -582,7 +570,6 @@
"序列数": "Numero di sequenze",
"过长惩罚": "Pena eccessiva",
"重复惩罚": "Pena ripetitiva",
"OCR语言包": "Pacchetto linguistico OCR",
"最长显示字数": "Numero massimo di parole visualizzate",
"显示日语注音": "Mostra pinyin giapponese",
"注音颜色": "Colore pinyin",
@ -717,10 +704,7 @@
"例句中加粗单词": "Parole grasse nella frase di esempio",
"工具栏": "barra degli strumenti",
"背景颜色": "colore di sfondo",
"翻译窗口": "Finestra di traduzione",
"工具按钮": "Pulsanti strumenti",
"界面主题": "Tema interfaccia",
"窗口行为": "Comportamento delle finestre",
"窗口特效": "Effetti finestra",
"实时编辑": "Modifica in tempo reale",
"翻译记录": "Record di traduzione",
@ -774,19 +758,13 @@
"阴影字体": "Carattere ombra",
"额外的html": "HTML aggiuntivo",
"测试": "prova",
"窗口尺寸": "Dimensione finestra",
"自动延展": "Scalamento automatico",
"自动收缩": "Riduzione automatica",
"范围框颜色": "Colore della casella intervallo",
"伴随游戏窗口": "Accompagnando la finestra del gioco",
"主题": "tema",
"自动输出": "Uscita automatica",
"引擎": "motore",
"注音": "Zhuyin",
"字体缩放": "Scalamento dei caratteri",
"显示行为": "Comportamento della visualizzazione",
"主界面": "interfaccia principale",
"设置界面": "Interfaccia impostazioni",
"声音": "voce",
"行为": "comportamento",
"自动化执行": "Esecuzione automatica",
@ -799,7 +777,6 @@
"按钮颜色": "Colore pulsante",
"按钮大小": "Dimensione pulsante",
"软件显示语言": "Linguaggio di visualizzazione del software",
"重启生效": "Il riavvio ha effetto",
"不支持的游戏?": "Giochi non supportati?",
"填充颜色": "colore di riempimento",
"阴影强度": "Intensità ombra",
@ -810,5 +787,30 @@
"投影距离": "Distanza di proiezione",
"反转颜色": "inverti colori",
"内嵌": "Incorporato",
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine non trovato, fare clic su OK per scaricare QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine non trovato, fare clic su OK per scaricare QWebEngine",
"网络设置": "Impostazioni di rete",
"版本更新": "Aggiornamento della versione",
"词性颜色": "Colore di parte del discorso",
"需要Mecab": "Necessità di Mecab",
"跟随游戏窗口": "Segui la finestra del gioco",
"自动调整高度": "Regolazione automatica dell'altezza",
"文本区": "Area testo",
"收到翻译时才刷新": "Aggiorna solo dopo aver ricevuto la traduzione",
"自动隐藏窗口": "Nascondi automaticamente la finestra",
"隐藏延迟(s)": "Ritardo nascosto (s)",
"内容": "contenuto",
"显示内容": "mostra contenuti",
"界面设置": "Impostazioni interfaccia",
"主题效果": "Effetto tema",
"其他界面": "Altre interfacce",
"翻译及OCR": "Traduzione e OCR",
"这一设置将会在下一次打开软件时生效": "Questa impostazione avrà effetto alla prossima apertura del software",
"语言包": "Pacchetto linguistico",
"项目仓库": "Magazzino del progetto",
"整合包": "Pacchetto di integrazione",
"TGW懒人包": "TGW Lazy Bag",
"论坛": "forum",
"请选择": "Seleziona",
"安装成功": "Installazione riuscita",
"添加成功": "Aggiunta con successo"
}

View File

@ -91,7 +91,6 @@
"显示原文": "テキストを表示",
"显示分词结果": "分詞結果の表示",
"翻译器字体类型": "翻訳機フォントタイプ",
"设置界面字体类型": "インタフェースフォントタイプの設定",
"字体大小": "フォントサイズ",
"字体样式": "フォントスタイル",
"加粗字体": "太字",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "翻訳履歴ボタンを表示",
"显示保存的游戏按钮": "保存したゲームボタンを表示",
"显示游戏静音按钮": "ゲームミュートボタンを表示",
"游戏最小化时窗口隐藏": "ゲーム最小化時にウィンドウを隠す",
"游戏窗口移动时同步移动": "ゲームウィンドウ移動時に同期移動",
"翻译结果繁简体显示": "翻訳結果の簡体字表示",
"翻译器显示语言(重启生效)": "翻訳機表示言語(再起動有効)",
"语音设置": "音声設定",
"火山TTS": "火山TTS",
"选择声音": "サウンドの選択",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "フォント縮小(長押し可能)",
"前景窗口截屏": "前景ウィンドウのスクリーンショット",
"游戏静音": "ゲームのミュート",
"自动下载更新(需要连接github)": "アップデートの自動ダウンロードgithubへの接続が必要",
"选择进程": "プロセスの選択",
"获取中": "取得中",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "追加したいプロセスが見えない場合は、下のボタンをクリックしてからゲームウィンドウをクリックするか、管理者権限を使用して本ソフトウェアを実行してみてください",
@ -212,7 +208,6 @@
"判定詞": "けっていご",
"设置所有词条为全局词条": "すべての見出し語をグローバル見出し語に設定",
"去除重复行": "重複行の削除",
"替换内容": "置換内容",
"重复次数": "繰り返し回数",
"显示翻译器名称": "翻訳者名を表示",
"自动检测": "自動検出",
@ -234,8 +229,6 @@
"空白": "空白",
"合并多行识别结果": "複数行の識別結果のマージ",
"选取OCR范围后立即进行一次识别": "OCR範囲を選択した直後に識別",
"自动隐藏窗口": "ウィンドウを自動的に隠す",
"隐藏延迟(s)": "隠蔽遅延s",
"选取OCR范围——立即": "OCR範囲を選択して、すぐに",
"未查到": "検出されませんでした",
"保存": "保存#ホゾン#",
@ -264,8 +257,6 @@
"设置Token": "トークンの設定",
"内置": "組み込み",
"token设置": "token設定",
"不同词性颜色(需要Mecab)": "異なる品詞色Mecabが必要",
"词性颜色(需要Mecab)": "品詞色Mecabが必要",
"!未选定进程!": "!プロセスが選択されていません!",
"该功能可能会导致游戏崩溃!": "この機能はゲームをクラッシュさせる可能性があります!",
"警告": "に警告",
@ -305,7 +296,6 @@
"说明": "説明",
"分析图像更新+周期执行": "解析画像更新+周期実行",
"翻译器字体": "翻訳機フォント",
"设置界面字体": "インタフェースフォントの設定",
"专有名词翻译设置按钮": "固有名詞翻訳設定ボタン",
"调整游戏窗口按钮": "ゲームウィンドウボタンを調整する",
"内嵌的翻译器": "インライントランスレータ",
@ -361,7 +351,6 @@
"火山OCR": "火山OCR",
"密钥获取": "鍵の取得",
"翻译及OCR语言": "翻訳とOCR言語",
"成功": "成功",
"特殊码": "とくしゅコード",
"删除特殊码": "特殊コードの削除",
"删除": "削除#サクジョ#",
@ -376,7 +365,6 @@
"翻译结果修正": "翻訳結果の修正",
"翻译结果修正按钮": "翻訳結果修正ボタン",
"翻译结果替换设置": "翻訳結果置換設定",
"收到翻译结果时才刷新": "翻訳結果を受信したときに更新される",
"过滤包含乱码的文本行": "文字化けしを含むテキスト行をフィルタする",
"过滤文本中的非日语字符集字符": "テキスト内の非日本語文字セット文字をフィルタする",
"过滤ASCII字符集": "ASCII文字セットのフィルタ",
@ -582,7 +570,6 @@
"序列数": "シーケンス数",
"过长惩罚": "長すぎる罰",
"重复惩罚": "繰り返し罰する.",
"OCR语言包": "OCR言語パック",
"最长显示字数": "最長表示文字数",
"显示日语注音": "日本語のルビを表示",
"注音颜色": "ルビの色",
@ -717,10 +704,7 @@
"例句中加粗单词": "例文中の太字単語",
"工具栏": "ツールバー",
"背景颜色": "背景色",
"翻译窗口": "翻訳ウィンドウ",
"工具按钮": "ツールボタン",
"界面主题": "インタフェーストピック",
"窗口行为": "ウィンドウの動作",
"窗口特效": "ウィンドウ効果",
"实时编辑": "リアルタイム編集",
"翻译记录": "翻訳レコード",
@ -774,19 +758,13 @@
"阴影字体": "シャドウフォント",
"额外的html": "余分なhtml",
"测试": "テスト",
"窗口尺寸": "ウィンドウサイズ",
"自动延展": "自動延長",
"自动收缩": "じどうしゅうしゅく",
"范围框颜色": "範囲ボックスの色",
"伴随游戏窗口": "随伴ゲームウィンドウ",
"主题": "トピック#トピック#",
"自动输出": "じどうしゅつりょく",
"引擎": "エンジン台",
"注音": "ルビ",
"字体缩放": "フォントスケール",
"显示行为": "表示動作",
"主界面": "メインインタフェース",
"设置界面": "インタフェースの設定",
"声音": "サウンド",
"行为": "動作",
"自动化执行": "自動実行",
@ -799,7 +777,6 @@
"按钮颜色": "ボタンの色",
"按钮大小": "ボタンサイズ",
"软件显示语言": "ソフトウェア表示言語",
"重启生效": "再起動の有効化",
"不支持的游戏?": "サポートされていないゲーム?",
"填充颜色": "塗りつぶしカラーぬりつぶしからー",
"阴影强度": "シャドウ強度",
@ -810,5 +787,30 @@
"投影距离": "とうえいきょり",
"反转颜色": "色を反転",
"内嵌": "インライン",
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngineが見つかりませんでした。OKをクリックしてQWebEngineをダウンロードしてください"
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngineが見つかりませんでした。OKをクリックしてQWebEngineをダウンロードしてください",
"网络设置": "ネットワーク設定",
"版本更新": "バージョンの更新",
"词性颜色": "品詞色",
"需要Mecab": "Mecabが必要",
"跟随游戏窗口": "ゲームウィンドウに従う",
"自动调整高度": "高さの自動調整",
"文本区": "テキスト領域",
"收到翻译时才刷新": "翻訳を受信したときに更新される",
"自动隐藏窗口": "ウィンドウを自動的に隠す",
"隐藏延迟(s)": "隠蔽遅延s",
"内容": "内容",
"显示内容": "コンテンツの表示",
"界面设置": "インタフェースの設定",
"主题效果": "テーマ効果",
"其他界面": "その他のインタフェース",
"翻译及OCR": "翻訳とOCR",
"这一设置将会在下一次打开软件时生效": "この設定は、次回ソフトウェアを開くときに有効になります",
"语言包": "言語パック",
"项目仓库": "プロジェクトウェアハウス",
"整合包": "統合パッケージ",
"TGW懒人包": "TGW怠け者バッグ",
"论坛": "フォーラム",
"请选择": "選択してください",
"安装成功": "インストールに成功しました",
"添加成功": "追加成功"
}

View File

@ -91,7 +91,6 @@
"显示原文": "원문 표시",
"显示分词结果": "분사 결과 표시",
"翻译器字体类型": "번역기 글꼴 유형",
"设置界面字体类型": "인터페이스 글꼴 유형 설정",
"字体大小": "글꼴 크기",
"字体样式": "글꼴 스타일",
"加粗字体": "글꼴 굵게 만들기",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "번역 내역 표시 버튼",
"显示保存的游戏按钮": "저장된 게임 단추 보이기",
"显示游戏静音按钮": "게임 무음 버튼 보이기",
"游戏最小化时窗口隐藏": "게임을 최소화할 때 창 숨기기",
"游戏窗口移动时同步移动": "게임 창 이동 시 동기화",
"翻译结果繁简体显示": "번역 결과 요약 표시",
"翻译器显示语言(重启生效)": "번역기 표시 언어 (재시작 적용)",
"语音设置": "음성 설정",
"火山TTS": "화산 TTS",
"选择声音": "사운드 선택",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "글꼴 축소 (길게 누를 수 있음)",
"前景窗口截屏": "전경 창 캡처",
"游戏静音": "게임 무음",
"自动下载更新(需要连接github)": "업데이트 자동 다운로드 (github 연결 필요)",
"选择进程": "프로세스 선택",
"获取中": "획득 중",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "추가할 프로세스가 보이지 않으면 아래 단추를 누르고 게임 창을 클릭하거나 관리자 권한으로 소프트웨어를 실행해 보십시오.",
@ -212,7 +208,6 @@
"判定詞": "판정사",
"设置所有词条为全局词条": "모든 단어를 전역 단어로 설정",
"去除重复行": "반복 행 제거",
"替换内容": "바꿀 내용",
"重复次数": "반복 횟수",
"显示翻译器名称": "번역기 이름 표시",
"自动检测": "자동 감지",
@ -234,8 +229,6 @@
"空白": "공백",
"合并多行识别结果": "여러 줄 식별 결과 병합",
"选取OCR范围后立即进行一次识别": "OCR 범위 선택 후 즉시 확인",
"自动隐藏窗口": "자동으로 창 숨기기",
"隐藏延迟(s)": "지연 숨기기 (s)",
"选取OCR范围——立即": "OCR 범위 선택 - 지금",
"未查到": "찾을 수 없음",
"保存": "저장",
@ -264,8 +257,6 @@
"设置Token": "Token 설정",
"内置": "내장형",
"token设置": "token 설정",
"不同词性颜色(需要Mecab)": "다른 단어 색상(Mecab 필요)",
"词性颜色(需要Mecab)": "단어 색상(Mecab 필요)",
"!未选定进程!": "!선택한 프로세스가 없습니다!",
"该功能可能会导致游戏崩溃!": "이 기능은 게임 충돌을 일으킬 수 있습니다!",
"警告": "경고",
@ -305,7 +296,6 @@
"说明": "설명",
"分析图像更新+周期执行": "분석 이미지 업데이트 + 주기 실행",
"翻译器字体": "번역기 글꼴",
"设置界面字体": "인터페이스 글꼴 설정",
"专有名词翻译设置按钮": "고유명사 번역 설정 버튼",
"调整游戏窗口按钮": "게임 창 버튼 조정",
"内嵌的翻译器": "내장된 번역기",
@ -361,7 +351,6 @@
"火山OCR": "화산 OCR",
"密钥获取": "키 가져오기",
"翻译及OCR语言": "번역 및 OCR 언어",
"成功": "성공",
"特殊码": "특수 코드",
"删除特殊码": "특수 코드 삭제",
"删除": "삭제",
@ -376,7 +365,6 @@
"翻译结果修正": "번역 결과 수정",
"翻译结果修正按钮": "번역 결과 수정 버튼",
"翻译结果替换设置": "번역 결과 대체 설정",
"收到翻译结果时才刷新": "번역 결과 수신 시 새로 고침",
"过滤包含乱码的文本行": "잘못된 코드가 포함된 텍스트 행 필터링",
"过滤文本中的非日语字符集字符": "텍스트의 비일본어 문자 세트 문자 필터링",
"过滤ASCII字符集": "ASCII 문자 세트 필터링",
@ -582,7 +570,6 @@
"序列数": "시퀀스 수",
"过长惩罚": "과도한 처벌",
"重复惩罚": "반복 처벌",
"OCR语言包": "OCR 언어 팩",
"最长显示字数": "최대 표시 단어 수",
"显示日语注音": "일본어 메모 표시",
"注音颜色": "주음 색상",
@ -717,10 +704,7 @@
"例句中加粗单词": "예문에 단어를 굵게 넣다",
"工具栏": "도구 모음",
"背景颜色": "배경색",
"翻译窗口": "번역 창",
"工具按钮": "도구 단추",
"界面主题": "인터페이스 주제",
"窗口行为": "창 동작",
"窗口特效": "창 효과",
"实时编辑": "실시간 편집",
"翻译记录": "번역 기록",
@ -774,19 +758,13 @@
"阴影字体": "그림자 글꼴",
"额外的html": "추가 html",
"测试": "테스트",
"窗口尺寸": "창 크기",
"自动延展": "자동 확장",
"自动收缩": "자동 수축",
"范围框颜色": "범위 상자 색상",
"伴随游戏窗口": "게임 창과 함께",
"主题": "주제",
"自动输出": "자동 출력",
"引擎": "엔진",
"注音": "주음",
"字体缩放": "글꼴 크기 조절",
"显示行为": "표시 동작",
"主界面": "메인 인터페이스",
"设置界面": "인터페이스 설정",
"声音": "소리",
"行为": "행위",
"自动化执行": "자동화된 실행",
@ -799,7 +777,6 @@
"按钮颜色": "버튼 색상",
"按钮大小": "버튼 크기",
"软件显示语言": "소프트웨어 디스플레이 언어",
"重启生效": "재시작 유효",
"不支持的游戏?": "지원되지 않는 게임?",
"填充颜色": "채우기 색상",
"阴影强度": "그림자 강도",
@ -810,5 +787,30 @@
"投影距离": "투영 거리",
"反转颜色": "색상 반전",
"内嵌": "내장",
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine을 찾을 수 없음, 확인을 클릭하여 QWebEngine 다운로드"
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine을 찾을 수 없음, 확인을 클릭하여 QWebEngine 다운로드",
"网络设置": "네트워크 설정",
"版本更新": "버전 업데이트",
"词性颜色": "단어 색상",
"需要Mecab": "Mecab 필요",
"跟随游戏窗口": "게임 창 따라가기",
"自动调整高度": "자동 높이 조정",
"文本区": "텍스트 영역",
"收到翻译时才刷新": "번역을 받았을 때만 새로 고침",
"自动隐藏窗口": "자동으로 창 숨기기",
"隐藏延迟(s)": "지연 숨기기 (s)",
"内容": "내용",
"显示内容": "컨텐트 표시",
"界面设置": "인터페이스 설정",
"主题效果": "테마 효과",
"其他界面": "기타 인터페이스",
"翻译及OCR": "번역 및 OCR",
"这一设置将会在下一次打开软件时生效": "이 설정은 다음에 소프트웨어를 열 때 적용됩니다.",
"语言包": "언어 팩",
"项目仓库": "프로젝트 웨어하우스",
"整合包": "패키지 통합",
"TGW懒人包": "TGW 게으름뱅이 가방",
"论坛": "포럼",
"请选择": "선택하십시오.",
"安装成功": "설치 성공",
"添加成功": "추가 성공"
}

View File

@ -91,7 +91,6 @@
"显示原文": "Pokaż oryginalny tekst",
"显示分词结果": "Pokaż wyniki segmentacji",
"翻译器字体类型": "Typ czcionki tłumacza",
"设置界面字体类型": "Ustaw typ czcionki interfejsu",
"字体大小": "rozmiar czcionki",
"字体样式": "Styl czcionki",
"加粗字体": "Pogrubiona czcionka",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "Pokaż przycisk Historia tłumaczeń",
"显示保存的游戏按钮": "Pokaż zapisane przyciski gry",
"显示游戏静音按钮": "Pokaż przycisk wyciszenia gry",
"游戏最小化时窗口隐藏": "Ukryj okno, gdy gra jest zminimalizowana",
"游戏窗口移动时同步移动": "Synchronizuj ruch podczas poruszania się okna gry",
"翻译结果繁简体显示": "Tradycyjne i uproszczone wyświetlanie wyników tłumaczeń",
"翻译器显示语言(重启生效)": "Język wyświetlania tłumacza (skuteczny po ponownym uruchomieniu)",
"语音设置": "Ustawienia głosu",
"火山TTS": "Wulkan TTS",
"选择声音": "Wybierz dźwięk",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "Redukcja czcionki (może być długo naciśnięta)",
"前景窗口截屏": "Zrzut ekranu okna pierwszego planu",
"游戏静音": "Wycisz grę",
"自动下载更新(需要连接github)": "Automatyczne pobieranie aktualizacji (wymaga połączenia z github)",
"选择进程": "Wybierz proces",
"获取中": "Uzyskanie",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Jeśli nie widzisz procesu, który chcesz dołączyć, możesz spróbować kliknąć poniższy przycisk, a następnie kliknąć w okno gry lub spróbować uruchomić to oprogramowanie z uprawnieniami administratora",
@ -212,7 +208,6 @@
"判定詞": "Słowo determinujące",
"设置所有词条为全局词条": "Ustaw wszystkie wpisy jako wpisy globalne",
"去除重复行": "Usuń zduplikowane wiersze",
"替换内容": "zastąpić treść",
"重复次数": "Powtarzanie",
"显示翻译器名称": "Pokaż nazwę tłumacza",
"自动检测": "automatyczne wykrywanie",
@ -234,8 +229,6 @@
"空白": "puste",
"合并多行识别结果": "Łączenie wyników rozpoznawania wielu wierszy",
"选取OCR范围后立即进行一次识别": "Natychmiast wykonać rozpoznawanie po wybraniu zakresu OCR",
"自动隐藏窗口": "Automatycznie ukryj okno",
"隐藏延迟(s)": "Ukryj opóźnienie (s)",
"选取OCR范围——立即": "Wybierz zakres OCR. Natychmiastowy",
"未查到": "Nie znaleziono",
"保存": "konserwacja",
@ -264,8 +257,6 @@
"设置Token": "Ustaw token",
"内置": "wbudowany",
"token设置": "Ustawienia tokenu",
"不同词性颜色(需要Mecab)": "Różne części kolorów mowy (wymagany mecab)",
"词性颜色(需要Mecab)": "Część koloru mowy (wymagany mecab)",
"!未选定进程!": " Nie wybrano procesu!",
"该功能可能会导致游戏崩溃!": "Ta funkcja może spowodować awarię gry!",
"警告": "ostrzeżenie",
@ -305,7 +296,6 @@
"说明": "wyjaśnij",
"分析图像更新+周期执行": "Analiza aktualizacji obrazów+wykonanie cyklu",
"翻译器字体": "Czcionki tłumacza",
"设置界面字体": "Ustaw czcionkę interfejsu",
"专有名词翻译设置按钮": "Przycisk ustawienia tłumaczenia właściwego rzeczownika",
"调整游戏窗口按钮": "Dostosuj przyciski okna gry",
"内嵌的翻译器": "Wbudowany tłumacz",
@ -361,7 +351,6 @@
"火山OCR": "OCR wulkanu",
"密钥获取": "Kluczowe nabycie",
"翻译及OCR语言": "Tłumaczenia i język OCR",
"成功": "sukces",
"特殊码": "kod szczegółowy",
"删除特殊码": "Usuń kod specjalny",
"删除": "usunąć",
@ -375,7 +364,6 @@
"翻译结果修正": "Korekta wyników tłumaczenia",
"翻译结果修正按钮": "Przycisk korekcji wyników tłumaczenia",
"翻译结果替换设置": "Ustawienia wymiany wyników tłumaczenia",
"收到翻译结果时才刷新": "Odświeżaj tylko podczas otrzymywania wyników tłumaczenia",
"过滤包含乱码的文本行": "Filtruj wiersze tekstowe zawierające zniekształcony kod",
"过滤文本中的非日语字符集字符": "Filtruj znaki niejapońskiego zestawu znaków w tekście",
"过滤ASCII字符集": "Filtruj zestaw znaków ASCII",
@ -582,7 +570,6 @@
"序列数": "Liczba sekwencji",
"过长惩罚": "Nadmierna kara",
"重复惩罚": "Kary powtarzające się",
"OCR语言包": "Pakiet językowy OCR",
"最长显示字数": "Maksymalna liczba wyświetlanych słów",
"显示日语注音": "Wyświetl japoński pinyin",
"注音颜色": "Kolor pinyin",
@ -717,10 +704,7 @@
"例句中加粗单词": "Pogrubione słowa w zdaniu przykładowym",
"工具栏": "pasek narzędzi",
"背景颜色": "Kolor tła",
"翻译窗口": "Okno tłumaczenia",
"工具按钮": "Przyciski narzędziowe",
"界面主题": "Motyw interfejsu",
"窗口行为": "Zachowanie okna",
"窗口特效": "Efekty okien",
"实时编辑": "Edycja w czasie rzeczywistym",
"翻译记录": "Zapisy tłumaczeń",
@ -774,19 +758,13 @@
"阴影字体": "Czcionka cienia",
"额外的html": "Dodatkowy HTML",
"测试": "badanie",
"窗口尺寸": "Rozmiar okna",
"自动延展": "Automatyczne skalowanie",
"自动收缩": "Automatyczne kurczenie",
"范围框颜色": "Kolor pola zakresu",
"伴随游戏窗口": "Towarzyszące oknie gry",
"主题": "motyw",
"自动输出": "Automatyczne wyjście",
"引擎": "silnik",
"注音": "Zhuyin.",
"字体缩放": "Skalowanie czcionki",
"显示行为": "Zachowanie wyświetlania",
"主界面": "główny interfejs",
"设置界面": "Interfejs ustawień",
"声音": "głos",
"行为": "zachowanie",
"自动化执行": "Automatyczne wykonanie",
@ -799,7 +777,6 @@
"按钮颜色": "Kolor przycisku",
"按钮大小": "Rozmiar przycisku",
"软件显示语言": "Język wyświetlania oprogramowania",
"重启生效": "Ponowne uruchomienie wchodzi w życie",
"不支持的游戏?": "Niewspierane gry?",
"填充颜色": "kolor wypełnienia",
"阴影强度": "Intensywność cienia",
@ -810,5 +787,30 @@
"投影距离": "Odległość projekcji",
"反转颜色": "odwróć kolory",
"内嵌": "Wbudowane",
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine nie znaleziono, kliknij przycisk OK, aby pobrać QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine nie znaleziono, kliknij przycisk OK, aby pobrać QWebEngine",
"网络设置": "Ustawienia sieci",
"版本更新": "Aktualizacja wersji",
"词性颜色": "Część koloru mowy",
"需要Mecab": "Potrzebuję Mecabu.",
"跟随游戏窗口": "Obserwuj okno gry",
"自动调整高度": "Automatyczna regulacja wysokości",
"文本区": "Obszar tekstowy",
"收到翻译时才刷新": "Odśwież tylko po otrzymaniu tłumaczenia",
"自动隐藏窗口": "Automatyczne ukrywanie okna",
"隐藏延迟(s)": "Ukryte opóźnienie (s)",
"内容": "treść",
"显示内容": "pokaż zawartość",
"界面设置": "Ustawienia interfejsu",
"主题效果": "Efekt motywu",
"其他界面": "Inne interfejsy",
"翻译及OCR": "Tłumaczenia i OCR",
"这一设置将会在下一次打开软件时生效": "To ustawienie wchodzi w życie przy następnym otwarciu oprogramowania",
"语言包": "Pakiet językowy",
"项目仓库": "Magazyn projektu",
"整合包": "Pakiet integracyjny",
"TGW懒人包": "TGW Lazy Bag",
"论坛": "forum",
"请选择": "Proszę wybrać",
"安装成功": "Instalacja pomyślna",
"添加成功": "Dodano pomyślnie"
}

View File

@ -91,7 +91,6 @@
"显示原文": "Показать оригинал",
"显示分词结果": "Показывать дробные результаты",
"翻译器字体类型": "Тип шрифта",
"设置界面字体类型": "Тип шрифта интерфейса",
"字体大小": "Размер шрифта",
"字体样式": "Стиль шрифта",
"加粗字体": "Жирный шрифт",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "Кнопка истории перевода",
"显示保存的游戏按钮": "Кнопка сохраненные игры",
"显示游戏静音按钮": "Кнопка звука в игре",
"游戏最小化时窗口隐藏": "Скрыть окно при сворачивании игры",
"游戏窗口移动时同步移动": "Синхронизировать перемещение окна игры",
"翻译结果繁简体显示": "Отображение результатов перевода",
"翻译器显示语言(重启生效)": "Язык переводчика (Необходим перезапуск)",
"语音设置": "Настройка звука",
"火山TTS": "Вулканический TTS",
"选择声音": "Выберите голос",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "Уменьшить шрифт (Зажать)",
"前景窗口截屏": "Окно переднего плана",
"游戏静音": "Отключить звук игры",
"自动下载更新(需要连接github)": "Автоматическая загрузка обновления (требуется подключение github)",
"选择进程": "Процесс отбора",
"获取中": "Получение",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Если вы не видите процесс, который хотите добавить, попробуйте нажать кнопку внизу и нажать на окно игры, или попробуйте запустить это программное обеспечение с правами администратора",
@ -212,7 +208,6 @@
"判定詞": "решающий слово",
"设置所有词条为全局词条": "установить все статьи как глобальные",
"去除重复行": "Удалить повторяющиеся строки",
"替换内容": "Замена содержимого",
"重复次数": "Количество повторений",
"显示翻译器名称": "Показывать имя переводчика",
"自动检测": "Автоматическое определение",
@ -234,8 +229,6 @@
"空白": "Пробел",
"合并多行识别结果": "Объединить результаты многострочного распознавания",
"选取OCR范围后立即进行一次识别": "Распознавание сразу после выбора диапазона OCR",
"自动隐藏窗口": "Автоматическое скрытие окна после перевода",
"隐藏延迟(s)": "Задержка скрытия (s)",
"选取OCR范围——立即": "Выбрать диапазон распознавания при нажатии",
"未查到": "обнаружить",
"保存": "Сохранить",
@ -264,8 +257,6 @@
"设置Token": "Настройка Token",
"内置": "Встроенные",
"token设置": "Настройка Token",
"不同词性颜色(需要Mecab)": "Разные цвета слов (требуется Mecab)",
"词性颜色(需要Mecab)": "Словарный цвет (требуется Mecab)",
"!未选定进程!": "Эй! Не выбранный процесс!",
"该功能可能会导致游戏崩溃!": "Эта функция может привести к сбою игры!",
"警告": "предупреждение",
@ -305,7 +296,6 @@
"说明": "Примечания",
"分析图像更新+周期执行": "Анализ обновлений изображений + цикл выполнения",
"翻译器字体": "Шрифт переводчика",
"设置界面字体": "Настройка шрифтов интерфейса",
"专有名词翻译设置按钮": "Кнопка настройки перевода",
"调整游戏窗口按钮": "Настройка кнопки окна игры",
"内嵌的翻译器": "Встроенный переводчик",
@ -361,7 +351,6 @@
"火山OCR": "Вулкан OCR",
"密钥获取": "Получение ключей",
"翻译及OCR语言": "Перевод и язык OCR",
"成功": "Успех",
"特殊码": "Специальный код",
"删除特殊码": "Удалить специальный код",
"删除": "Удалить",
@ -376,7 +365,6 @@
"翻译结果修正": "Результаты перевода исправлены",
"翻译结果修正按钮": "Кнопка коррекции результатов перевода",
"翻译结果替换设置": "Параметры замены результатов перевода",
"收到翻译结果时才刷新": "Обновляется только после получения результатов перевода.",
"过滤包含乱码的文本行": "Фильтровать строки, содержащие шифр",
"过滤文本中的非日语字符集字符": "Неяпонские символы в фильтрованном тексте",
"过滤ASCII字符集": "Фильтр символов ASCII",
@ -582,7 +570,6 @@
"序列数": "Количество последовательностей",
"过长惩罚": "Слишком длительное наказание",
"重复惩罚": "Повторное наказание",
"OCR语言包": "Языковый пакет OCR",
"最长显示字数": "Максимальное количество слов",
"显示日语注音": "Показать японское произношение",
"注音颜色": "Цвет звука",
@ -717,10 +704,7 @@
"例句中加粗单词": "Добавить слово в пример",
"工具栏": "Панель инструментов",
"背景颜色": "Цвет фона",
"翻译窗口": "Окно перевода",
"工具按钮": "Кнопки инструментов",
"界面主题": "Интерфейсная тема",
"窗口行为": "Поведение окна",
"窗口特效": "Специальные эффекты окон",
"实时编辑": "Редактирование в реальном времени",
"翻译记录": "Перевод записей",
@ -774,19 +758,13 @@
"阴影字体": "Шрифт теней",
"额外的html": "Дополнительный HTML",
"测试": "Испытания",
"窗口尺寸": "Размер окна",
"自动延展": "Автоматическое расширение",
"自动收缩": "Автосокращение",
"范围框颜色": "Цвет рамки",
"伴随游戏窗口": "Окно сопровождающей игры",
"主题": "Тема",
"自动输出": "Автоматический вывод",
"引擎": "Двигатель",
"注音": "Звук",
"字体缩放": "Масштаб шрифта",
"显示行为": "Показать поведение",
"主界面": "Главный интерфейс",
"设置界面": "Настройка интерфейса",
"声音": "Голос",
"行为": "Поведение",
"自动化执行": "Автоматизированное выполнение",
@ -799,7 +777,6 @@
"按钮颜色": "Цвет кнопки",
"按钮大小": "Размер кнопки",
"软件显示语言": "Язык отображения программного обеспечения",
"重启生效": "Перезагрузка вступает в силу",
"不支持的游戏?": "Не поддерживаемые игры?",
"填充颜色": "Цвет заполнения",
"阴影强度": "Интенсивность тени",
@ -810,5 +787,30 @@
"投影距离": "Расстояние проекции",
"反转颜色": "Инвертировать цвет",
"内嵌": "Встраивание",
"未找到QWebEngine点击确定前往下载QWebEngine": "Не найден QWebEngine, нажмите, чтобы определить, чтобы загрузить QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "Не найден QWebEngine, нажмите, чтобы определить, чтобы загрузить QWebEngine",
"网络设置": "Настройки сети",
"版本更新": "Обновление версии",
"词性颜色": "Цвет слова",
"需要Mecab": "Требуется Mecab",
"跟随游戏窗口": "Следуйте за окном игры",
"自动调整高度": "Автоматическая регулировка высоты",
"文本区": "Текстовая область",
"收到翻译时才刷新": "Обновить при получении перевода.",
"自动隐藏窗口": "Автоматически скрыть окно",
"隐藏延迟(s)": "Скрыть задержку (s)",
"内容": "Содержание",
"显示内容": "Показать содержимое",
"界面设置": "Параметры интерфейса",
"主题效果": "Тематический эффект",
"其他界面": "Другие интерфейсы",
"翻译及OCR": "Перевод и OCR",
"这一设置将会在下一次打开软件时生效": "Эта настройка вступит в силу при следующем открытии программного обеспечения.",
"语言包": "Языковый пакет",
"项目仓库": "Проектный склад",
"整合包": "Пакет интеграции",
"TGW懒人包": "ТГВ сумка лентяй",
"论坛": "Форум",
"请选择": "Выберите",
"安装成功": "Установка прошла успешно",
"添加成功": "Добавить успех"
}

View File

@ -22,7 +22,6 @@
"有道": "วิถี",
"选择游戏": "เลือกเกม",
"语音合成": "การสังเคราะห์เสียง",
"不同词性颜色(需要Mecab)": "สีของคำที่แตกต่างกัน (ต้องใช้ Mecab)",
"例外允许的字符": "อักขระที่อนุญาตในข้อยกเว้น",
"東北イタコ": "ทัวร์โทโฮคุ",
"希腊语": "กรีก",
@ -55,7 +54,6 @@
"通用文字识别(高精度版)": "การจดจำคำทั่วไป (รุ่นความแม่นยำสูง)",
"名詞": "คำนาม",
"读取剪贴板": "อ่านคลิปบอร์ด",
"成功": "ความสำเร็จ",
"游戏": "เกม",
"检测到游戏时自动开始": "เริ่มต้นโดยอัตโนมัติเมื่อตรวจพบเกม",
"插值算法": "อัลกอริทึมการแทรก",
@ -134,7 +132,6 @@
"语速:(-10~10)": "ความเร็วในการพูด: (-10 ~ 10)",
"缩放时模拟独占全屏": "จำลองการแสดงผลแบบเต็มหน้าจอเมื่อซูม",
"专有名词翻译设置按钮": "ปุ่มตั้งค่าการแปลคำนามที่เป็นกรรมสิทธิ์",
"设置界面字体": "ตั้งค่าแบบอักษรของอินเทอร์เฟซ",
"越南语": "เวียดนาม",
"代码页": "หน้ารหัส",
"点击此按钮后点击游戏窗口": "แตะที่หน้าต่างเกมหลังจากคลิกที่ปุ่มนี้",
@ -231,7 +228,6 @@
"彩云": "เมฆสี",
"允许缩放最大化或全屏的窗口": "หน้าต่างที่อนุญาตให้ปรับขนาดได้สูงสุดหรือเต็มหน้าจอ",
"源窗口": "หน้าต่างต้นทาง",
"替换内容": "แทนที่เนื้อหา",
"快捷按键": "ปุ่มลัด",
"捕获模式": "โหมดจับภาพ",
"程序名": "ชื่อโปรแกรม",
@ -240,18 +236,15 @@
"通用文字识别(标准版)": "การจดจำคำทั่วไป (เวอร์ชันมาตรฐาน)",
"过滤「」以外的字符": "กรองตัวอักษรอื่นที่ไม่ใช่「」",
"过滤非shiftjis": "กรองที่ไม่ใช่ shiftjis",
"自动隐藏窗口": "ซ่อนหน้าต่างอัตโนมัติ",
"找不到重要组件:": "ไม่พบส่วนประกอบที่สำคัญ:",
"分析图像更新": "วิเคราะห์การอัพเดตภาพ",
"注册地址": "ที่อยู่ลงทะเบียน",
"捕获标题栏": "จับภาพแถบหัวเรื่อง",
"月読ショウタ": "มูน読",
"自动下载更新(需要连接github)": "ดาวน์โหลดอัปเดตโดยอัตโนมัติ (ต้องเชื่อมต่อ github)",
"自动检测": "การตรวจจับอัตโนมัติ",
"繁体中文(BIG5)": "ภาษาจีนดั้งเดิม (BIG5)",
"翻译等待时间(s)": "เวลารอการแปล (s)",
"词性": "คำพูด เพศ",
"收到翻译结果时才刷新": "รีเฟรชเมื่อได้รับผลการแปล",
"禁用DirectFlip": "ปิดใช้งาน DirectFlip",
"形状詞": "คำรูปร่าง",
"文本源": "แหล่งที่มาของข้อความ",
@ -277,7 +270,6 @@
"谷歌": "โดย Google",
"本地OCR": "OCR ท้องถิ่น",
"模拟按键Ctrl": "ปุ่มอะนาล็อก Ctrl",
"词性颜色(需要Mecab)": "สีของคำ (ต้องใช้ Mecab)",
"加粗字体": "Boldenized ตัวอักษร",
"时间间隔": "ช่วงเวลา",
"去除重复字符(若为1则自动分析去重)": "ลบอักขระที่ซ้ำกัน (วิเคราะห์น้ำหนักโดยอัตโนมัติถ้าเป็น 1)",
@ -325,7 +317,6 @@
"意大利语": "อิตาลี",
"已保存游戏": "บันทึกเกม",
"使用最快翻译而非指定翻译器": "ใช้การแปลที่เร็วที่สุดแทนการระบุนักแปล",
"设置界面字体类型": "ตั้งค่าประเภทแบบอักษรของอินเทอร์เฟซ",
"有道api": "มี Dao-api",
"显示显示原文按钮": "แสดงปุ่มแสดงข้อความต้นฉบับ",
"去除花括号{}": "ลบวงเล็บดอกไม้ {}",
@ -333,7 +324,6 @@
"不显示api": "ไม่แสดง api",
"朗读原文": "อ่านต้นฉบับ",
"连接成功": "เชื่อมต่อสำเร็จ",
"游戏最小化时窗口隐藏": "ซ่อนหน้าต่างเมื่อเกมถูกย่อขนาด",
"修改游戏字体": "แก้ไขเกม แบบอักษร",
"选择文本": "เลือกข้อความ",
"json文件": "ไฟล์ json",
@ -413,7 +403,6 @@
"俄语": "ภาษารัสเซีย",
"文字更新分析": "การวิเคราะห์การอัปเดตคำ",
"过滤HTML标签": "กรองแท็ก HTML",
"翻译器显示语言(重启生效)": "แปลภาษาที่แสดง (รีสตาร์ทมีผล)",
"日语": "ญี่ปุ่น",
"语法加亮": "เพิ่มความสว่างของไวยากรณ์",
"翻译器字体": "Translator ตัวอักษร",
@ -505,7 +494,6 @@
"結月ゆかり": "เน็ตมูนคะคะริ",
"空白": "ว่างเปล่า",
"替换为": "แทนที่ด้วย",
"隐藏延迟(s)": "ซ่อนเวลาแฝง (s)",
"琴葉葵": "ดอกทานตะวัน",
"内置": "สร้างขึ้นใน",
"连接超时": "หมดเวลาการเชื่อมต่อ",
@ -582,7 +570,6 @@
"序列数": "จำนวนลำดับ",
"过长惩罚": "การลงโทษที่ยาวนานเกินไป",
"重复惩罚": "การลงโทษซ้ำ",
"OCR语言包": "แพคภาษา OCR",
"最长显示字数": "แสดงจำนวนคำที่ยาวที่สุด",
"显示日语注音": "แสดงหมายเหตุภาษาญี่ปุ่น",
"注音颜色": "สี Injection",
@ -717,10 +704,7 @@
"例句中加粗单词": "คำหยาบในประโยคตัวอย่าง",
"工具栏": "แถบเครื่องมือ",
"背景颜色": "สีพื้นหลัง",
"翻译窗口": "หน้าต่างการแปล",
"工具按钮": "ปุ่มเครื่องมือ",
"界面主题": "ธีมอินเตอร์เฟซ",
"窗口行为": "พฤติกรรมของหน้าต่าง",
"窗口特效": "เทคนิคพิเศษของหน้าต่าง",
"实时编辑": "แก้ไขแบบเรียลไทม์",
"翻译记录": "บันทึกการแปล",
@ -774,19 +758,13 @@
"阴影字体": "Shadow ตัวอักษร",
"额外的html": "HTML เพิ่มเติม",
"测试": "การทดสอบ",
"窗口尺寸": "ขนาดหน้าต่าง",
"自动延展": "ขยายอัตโนมัติ",
"自动收缩": "หดอัตโนมัติ",
"范围框颜色": "สีของกล่องช่วง",
"伴随游戏窗口": "มาพร้อมกับหน้าต่างเกม",
"主题": "หัวข้อ",
"自动输出": "เอาท์พุทอัตโนมัติ",
"引擎": "เครื่องยนต์",
"注音": "หมายเหตุ",
"字体缩放": "ปรับขนาดตัวอักษร",
"显示行为": "แสดงพฤติกรรม",
"主界面": "อินเตอร์เฟซหลัก",
"设置界面": "ตั้งค่าอินเตอร์เฟซ",
"声音": "เสียง",
"行为": "พฤติกรรม",
"自动化执行": "การดำเนินการอัตโนมัติ",
@ -799,7 +777,6 @@
"按钮颜色": "สีปุ่ม",
"按钮大小": "ขนาดปุ่ม",
"软件显示语言": "ภาษาการแสดงผลของซอฟต์แวร์",
"重启生效": "การรีสตาร์ทมีผล",
"不支持的游戏?": "เกมที่ไม่สนับสนุน?",
"填充颜色": "เติมสี",
"阴影强度": "ความเข้มเงา",
@ -810,5 +787,30 @@
"投影距离": "ระยะการฉาย",
"反转颜色": "การย้อนกลับสี",
"内嵌": "อินไลน์",
"未找到QWebEngine点击确定前往下载QWebEngine": "ไม่พบ QWebEngine คลิก OK เพื่อดาวน์โหลด QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "ไม่พบ QWebEngine คลิก OK เพื่อดาวน์โหลด QWebEngine",
"网络设置": "การตั้งค่าเครือข่าย",
"版本更新": "อัปเดตเวอร์ชัน",
"词性颜色": "สีของคำ",
"需要Mecab": "ต้องการ Mecab",
"跟随游戏窗口": "ติดตามหน้าต่างเกม",
"自动调整高度": "ปรับความสูงอัตโนมัติ",
"文本区": "พื้นที่ข้อความ",
"收到翻译时才刷新": "รีเฟรชเมื่อได้รับการแปล",
"自动隐藏窗口": "ซ่อนหน้าต่างอัตโนมัติ",
"隐藏延迟(s)": "ซ่อนเวลาแฝง (s)",
"内容": "เนื้อหา",
"显示内容": "แสดงเนื้อหา",
"界面设置": "การตั้งค่าอินเทอร์เฟซ",
"主题效果": "ผลของธีม",
"其他界面": "อินเตอร์เฟซอื่น ๆ",
"翻译及OCR": "การแปลและ OCR",
"这一设置将会在下一次打开软件时生效": "การตั้งค่านี้จะมีผลในการเปิดซอฟต์แวร์ครั้งต่อไป",
"语言包": "แพคภาษา",
"项目仓库": "คลังสินค้าโครงการ",
"整合包": "แพคเกจรวม",
"TGW懒人包": "กระเป๋า TGW Lazy",
"论坛": "ฟอรั่ม",
"请选择": "กรุณาเลือก",
"安装成功": "ติดตั้งสำเร็จ",
"添加成功": "เพิ่มความสำเร็จ"
}

View File

@ -91,7 +91,6 @@
"显示原文": "Orijinal metni göster",
"显示分词结果": "Bölümleme sonuçlarını göster",
"翻译器字体类型": "Çevirme yazıtipi türü",
"设置界面字体类型": "Arayüz yazıtipini ayarla",
"字体大小": "Yazıtipi boyutu",
"字体样式": "Yazıtipi stili",
"加粗字体": "Kalın yazıtipi",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "Tercime Tarihi düğmesini göster",
"显示保存的游戏按钮": "Kaydedilen oyun düğmelerini göster",
"显示游戏静音按钮": "Oyun sessiz düğmesini göster",
"游戏最小化时窗口隐藏": "Oyun azaltıldığında gizlenen pencere",
"游戏窗口移动时同步移动": "Oyun penceresi hareket ettiğinde eşzamanlı hareket et",
"翻译结果繁简体显示": "Çeviri sonuçlarının geleneksel ve basitleştirilmesi",
"翻译器显示语言(重启生效)": "Çevirme dili (yeniden başlatma etkisi oluyor)",
"语音设置": "Ses ayarları",
"火山TTS": "Volcano TTS",
"选择声音": "Sesi seç",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "Yazıtipi düşürmesi (uzun basın)",
"前景窗口截屏": "Ön plan penceresinin ekran resimi",
"游戏静音": "Oyun Sessiz",
"自动下载更新(需要连接github)": "Otomatik güncelleştirmeleri indirin (github ile bağlanmalısınız)",
"选择进程": "İşlemi Seç",
"获取中": "Alıyorum",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Eğer bağlamak istediğiniz süreci görmezseniz, aşağıdaki düğmeye t ıklamayı deneyebilirsiniz ve oyun penceresine tıklamayı deneyebilirsiniz, ya da yönetici hakları ile yazılımı çalışmayı deneyebilirsiniz.",
@ -212,7 +208,6 @@
"判定詞": "Tanımlayıcı kelime",
"设置所有词条为全局词条": "Tüm girişleri küresel giriş olarak ayarlayın",
"去除重复行": "Çiftli çizgileri sil",
"替换内容": "İçeri değiştir",
"重复次数": "Tekrarlamalar",
"显示翻译器名称": "Tercüme ismini göster",
"自动检测": "otomatik tanıma",
@ -234,8 +229,6 @@
"空白": "boş",
"合并多行识别结果": "Çok satırlı tanıma sonuçlarını birleştir",
"选取OCR范围后立即进行一次识别": "OCR menzilini seçmeden hemen bir kimlik yapın",
"自动隐藏窗口": "Pencereyi Otomatik Gizle",
"隐藏延迟(s)": "Gizli gecikme (s)",
"选取OCR范围——立即": "OCR menzilini seç - hemen",
"未查到": "Bulmadı",
"保存": "koruması",
@ -264,8 +257,6 @@
"设置Token": "Token ayarlayın",
"内置": "in şa edilmiş",
"token设置": "Token ayarları",
"不同词性颜色(需要Mecab)": "Konuşma renklerinin farklı parçaları (Mecab gerekli)",
"词性颜色(需要Mecab)": "Konuşma renginin bir parçası (Mecab gerekli)",
"!未选定进程!": "- Ne? İşlemiz seçilmedi!",
"该功能可能会导致游戏崩溃!": "Bu fonksiyon oyunu mahvedebilir!",
"警告": "uyarı",
@ -305,7 +296,6 @@
"说明": "açıklayın",
"分析图像更新+周期执行": "Görüntü güncellemesi",
"翻译器字体": "Çevirme yazıtipi",
"设置界面字体": "Arayüz yazıtipini ayarla",
"专有名词翻译设置按钮": "Özel isim tercüme düğmesi",
"调整游戏窗口按钮": "Oyun pencere düğmelerini ayarla",
"内嵌的翻译器": "İçeri yatırılmış çevirici",
@ -361,7 +351,6 @@
"火山OCR": "Volkan OCR",
"密钥获取": "Anahtar alma",
"翻译及OCR语言": "Çeviri ve OCR dili",
"成功": "başarılı",
"特殊码": "özel kodu",
"删除特殊码": "Özel kodu sil",
"删除": "Sil",
@ -376,7 +365,6 @@
"翻译结果修正": "Tercüme sonuçlarının düzeltmesi",
"翻译结果修正按钮": "Çeviri sonuçları düzeltme düğmesi",
"翻译结果替换设置": "Çeviri Sonuçları Değiştirme Ayarları",
"收到翻译结果时才刷新": "Sadece çevirim sonuçları alındığında yenileme",
"过滤包含乱码的文本行": "Çöplü kodu içeren metin hatlarını sil",
"过滤文本中的非日语字符集字符": "Japon olmayan karakter seti karakterleri metinde sil",
"过滤ASCII字符集": "ASCII karakter seti sil",
@ -582,7 +570,6 @@
"序列数": "Sezenler sayısı",
"过长惩罚": "Çok fazla ceza",
"重复惩罚": "Tekrar cezalandırıcı",
"OCR语言包": "OCR Language Pack",
"最长显示字数": "Gösterilen sözlerin en yüksek sayısı",
"显示日语注音": "Display Japanese Pinyin",
"注音颜色": "Pinyin rengi",
@ -717,10 +704,7 @@
"例句中加粗单词": "Örneğin cümlelerinde kalın kelimeler",
"工具栏": "araç çubuğu",
"背景颜色": "Arkaplan rengi",
"翻译窗口": "Çeviri Penceresi",
"工具按钮": "Araç düğmeleri",
"界面主题": "Interface Theme",
"窗口行为": "Pencere davranışları",
"窗口特效": "Pencere etkileri",
"实时编辑": "Gerçek zamanlı düzenleme",
"翻译记录": "Çeviri kayıtları",
@ -774,19 +758,13 @@
"阴影字体": "Gölge yazıtipi",
"额外的html": "Ekstra HTML",
"测试": "test",
"窗口尺寸": "Pencere ölçüsi",
"自动延展": "Otomatik Ölçüm",
"自动收缩": "Otomatik küçük",
"范围框颜色": "Aralık kutusu rengi",
"伴随游戏窗口": "Oyun penceresini birleştiriyor",
"主题": "tema",
"自动输出": "Otomatik çıkış",
"引擎": "motor",
"注音": "Zhuyin",
"字体缩放": "Yazıtipi ölçü",
"显示行为": "Davranışlarını göster",
"主界面": "Ana arayüz",
"设置界面": "Ayarlar arayüzü",
"声音": "sesi",
"行为": "davranış",
"自动化执行": "Otomatik çalışma",
@ -799,7 +777,6 @@
"按钮颜色": "Düğme rengi",
"按钮大小": "Düğme ölçüsi",
"软件显示语言": "Yazılım Gösterim Dili",
"重启生效": "Yeniden başlatma etkisi oluyor",
"不支持的游戏?": "Desteklenmeyen oyunlar mı?",
"填充颜色": "doldurum rengi",
"阴影强度": "Gölge şiddeti",
@ -810,5 +787,30 @@
"投影距离": "Projeksyon mesafesi",
"反转颜色": "Ters renkler",
"内嵌": "İçeri",
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine",
"网络设置": "Ağ Ayarları",
"版本更新": "Sürüm güncelleştirme",
"词性颜色": "Konuşma renginin bir parçası",
"需要Mecab": "Mecabi lazım.",
"跟随游戏窗口": "Oyun penceresini takip et",
"自动调整高度": "Otomatik yükseklik ayarlaması",
"文本区": "Metin alanı",
"收到翻译时才刷新": "Sadece çeviri alırken yenilene",
"自动隐藏窗口": "Pencereyi otomatik sakla",
"隐藏延迟(s)": "Gizli gecikme (s)",
"内容": "İçeri",
"显示内容": "İçeri göster",
"界面设置": "Arayüz ayarları",
"主题效果": "Tema etkisi",
"其他界面": "Diğer arayüzler",
"翻译及OCR": "Çeviri ve OCR",
"这一设置将会在下一次打开软件时生效": "Bu ayarlar bir sonraki yazılım açıldığında etkisi alacak.",
"语言包": "Dil Paketi",
"项目仓库": "Proje deposu",
"整合包": "Integrasyon paketi",
"TGW懒人包": "TGW Lazy Bag",
"论坛": "forum",
"请选择": "Lütfen seçin",
"安装成功": "Yükleme başarılı",
"添加成功": "Başarılı eklendi"
}

View File

@ -91,16 +91,13 @@
"显示原文": "Показати початковий текст",
"显示分词结果": "Показати результати сегментації",
"翻译器字体类型": "Тип шрифту перекладача",
"设置界面字体类型": "Встановити тип шрифту інтерфейсу",
"字体大小": "розмір шрифту",
"字体样式": "Стиль шрифту",
"加粗字体": "Жирий шрифт",
"居中显示": "Центрувати показ",
"描边宽度": "Ширина",
"游戏最小化时窗口隐藏": "Сховати вікно під час мінімізації гри",
"游戏窗口移动时同步移动": "Синхронізувати рух під час пересування вікна гри",
"翻译结果繁简体显示": "Традиційний і спрощений показ результатів перекладу",
"翻译器显示语言(重启生效)": "Мова показу перекладача (ефективна після перезапуску)",
"语音设置": "Параметри голосу",
"火山TTS": "Волкановий TTS",
"选择声音": "Виберіть звук",
@ -130,7 +127,6 @@
"字体缩小(可长按)": "Зменшення шрифту (можна довго натиснути)",
"前景窗口截屏": "Знімок вікна переднього плану",
"游戏静音": "Гра Вимкнути",
"自动下载更新(需要连接github)": "Automatically download updates (requires connection to github)",
"选择进程": "Виберіть процес",
"获取中": "Отримання",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Якщо ви не бачите процесу, який ви бажаєте додавати, ви можете спробувати натиснути кнопку нижче, а потім натиснути на вікно гри або спробувати запустити цей програмний забезпечення з привілеями адміністратора",
@ -206,7 +202,6 @@
"判定詞": "Визначення слова",
"设置所有词条为全局词条": "Встановити всі записи як загальні записи",
"去除重复行": "Вилучити дві рядки",
"替换内容": "замінити вміст",
"重复次数": "Повторювання",
"显示翻译器名称": "Показати назву перекладача",
"自动检测": "автоматичне виявлення",
@ -228,8 +223,6 @@
"空白": "порожній",
"合并多行识别结果": "Merge multiple row recognition results",
"选取OCR范围后立即进行一次识别": "Негайно виконати розпізнавання після вибору діапазону OCR",
"自动隐藏窗口": "Автоматично сховати вікно",
"隐藏延迟(s)": "Сховати затримку (s)",
"选取OCR范围——立即": "Виберіть діапазон OCR — Негайно",
"未查到": "Не знайдено",
"保存": "збереження",
@ -256,8 +249,6 @@
"设置Token": "Встановити позначку",
"内置": "вбудований",
"token设置": "Параметри символів",
"不同词性颜色(需要Mecab)": "Різні частини кольорів мовлення (потрібен Mecab)",
"词性颜色(需要Mecab)": "Частина кольору мови (потрібен Mecab)",
"!未选定进程!": "[UNK] Не вибрано жодного процесу!",
"该功能可能会导致游戏崩溃!": "Ця можливість може призвести до аварії гри!",
"警告": "попередження",
@ -297,7 +288,6 @@
"说明": "пояснити",
"分析图像更新+周期执行": "Аналізувати оновлення зображення+виконання циклу",
"翻译器字体": "Translator fonts",
"设置界面字体": "Встановити шрифт інтерфейсу",
"内嵌的翻译器": "Вбудований перекладач",
"使用最快翻译而非指定翻译器": "Використовувати найшвидший переклад замість визначення перекладача",
"剪贴板设置": "Параметри кишені",
@ -351,7 +341,6 @@
"火山OCR": "Волкановий ОКР",
"密钥获取": "Отримання ключа",
"翻译及OCR语言": "Переклад і мова OCR",
"成功": "успіх",
"特殊码": "специфічний код",
"删除特殊码": "Вилучити спеціальний код",
"删除": "вилучити",
@ -364,7 +353,6 @@
"修改": "змінити",
"翻译结果修正": "Виправлення результатів перекладу",
"翻译结果替换设置": "Параметри заміни результатів перекладу",
"收到翻译结果时才刷新": "Оновити лише при отриманні результатів перекладу",
"过滤包含乱码的文本行": "Фільтрувати текстові рядки, що містять розбитий код",
"过滤文本中的非日语字符集字符": "Фільтрувати не японські символи набору символів у тексті",
"过滤ASCII字符集": "Встановлення символів ASCII фільтрування",
@ -582,7 +570,6 @@
"序列数": "Кількість послідовностей",
"过长惩罚": "Великий покарання",
"重复惩罚": "Повторює покарання",
"OCR语言包": "Пакет мови OCR",
"最长显示字数": "Максимальна кількість показаних слів",
"显示日语注音": "Показувати японський пінін",
"注音颜色": "Колір пініна",
@ -717,10 +704,7 @@
"例句中加粗单词": "Жирі слова у прикладному реченні",
"工具栏": "панель інструментів",
"背景颜色": "колір тла",
"翻译窗口": "Вікно перекладу",
"工具按钮": "Кнопки інструментів",
"界面主题": "Тема інтерфейсу",
"窗口行为": "Поведінка вікон",
"窗口特效": "Ефекти вікна",
"实时编辑": "Редагування реального часу",
"翻译记录": "Записи перекладів",
@ -774,19 +758,13 @@
"阴影字体": "Шрифт тіні",
"额外的html": "Додатковий HTML",
"测试": "тест",
"窗口尺寸": "Розмір вікна",
"自动延展": "Автоматичне масштабування",
"自动收缩": "Автоматичне зменшення",
"范围框颜色": "Колір діапазону",
"伴随游戏窗口": "Приєднання до вікна гри",
"主题": "тема",
"自动输出": "Автоматичний вивід",
"引擎": "рушій",
"注音": уїнchina. kgm",
"字体缩放": "Масштабування шрифтів",
"显示行为": "Показувати поведінку",
"主界面": "головний інтерфейс",
"设置界面": "Інтерфейс параметрів",
"声音": "голос",
"行为": "поведінка",
"自动化执行": "Автоматичне виконання",
@ -799,7 +777,6 @@
"按钮颜色": "Колір кнопок",
"按钮大小": "Розмір кнопки",
"软件显示语言": "Мова показу програмного забезпечення",
"重启生效": "Перезапуск впливає",
"不支持的游戏?": "Непідтримувані гри?",
"填充颜色": "колір заповнення",
"阴影强度": "Інтензитет тіні",
@ -810,5 +787,30 @@
"投影距离": "Відстань проекту",
"反转颜色": "звернути кольори",
"内嵌": "Вбудовано",
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine не знайдено, натисніть кнопку Гаразд, щоб звантажити QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "QWebEngine не знайдено, натисніть кнопку Гаразд, щоб звантажити QWebEngine",
"网络设置": "Параметри мережі",
"版本更新": "Оновлення версії",
"词性颜色": "Частина кольору мови",
"需要Mecab": "Потрібний Mecab",
"跟随游戏窗口": "Слідувати за вікном гри",
"自动调整高度": "Автоматичне налаштування висоти",
"文本区": "Текстова область",
"收到翻译时才刷新": "Оновити лише після отримання перекладу",
"自动隐藏窗口": "Автоматично сховати вікно",
"隐藏延迟(s)": "Схована затримка (с)",
"内容": "вміст",
"显示内容": "показувати вміст",
"界面设置": "Параметри інтерфейсу",
"主题效果": "Ефект теми",
"其他界面": "Інші інтерфейси",
"翻译及OCR": "Переклад і OCR",
"这一设置将会在下一次打开软件时生效": "Цей параметр діє наступного разу, коли буде відкрито програмне забезпечення",
"语言包": "Пакет мов",
"项目仓库": "Склад проекту",
"整合包": "Пакет інтеграції",
"TGW懒人包": "TGW Lazy Bag",
"论坛": "форум",
"请选择": "Будь ласка, виберіть",
"安装成功": "Встановлення успішно",
"添加成功": "Успішно додано"
}

View File

@ -91,7 +91,6 @@
"显示原文": "Hiển thị văn bản gốc",
"显示分词结果": "Hiển thị kết quả phân từ",
"翻译器字体类型": "Kiểu phông chữ Translator",
"设置界面字体类型": "Đặt kiểu phông giao diện",
"字体大小": "Cỡ phông chữ",
"字体样式": "Kiểu phông chữ",
"加粗字体": "Phông đậm",
@ -103,10 +102,8 @@
"显示翻译历史按钮": "Hiện nút lịch sử dịch",
"显示保存的游戏按钮": "Hiển thị nút trò chơi đã lưu",
"显示游戏静音按钮": "Hiện nút tắt tiếng trò chơi",
"游戏最小化时窗口隐藏": "Cửa sổ ẩn khi trò chơi được thu nhỏ",
"游戏窗口移动时同步移动": "Đồng bộ di chuyển khi cửa sổ trò chơi di chuyển",
"翻译结果繁简体显示": "Kết quả phiên dịch Hiển thị đơn giản",
"翻译器显示语言(重启生效)": "Ngôn ngữ hiển thị trình dịch (có hiệu lực khởi động lại)",
"语音设置": "Thiết lập giọng nói",
"火山TTS": "Núi lửa TTS",
"选择声音": "Chọn âm thanh",
@ -136,7 +133,6 @@
"字体缩小(可长按)": "Thu nhỏ phông chữ (có thể nhấn dài)",
"前景窗口截屏": "Ảnh chụp cửa sổ Foreground",
"游戏静音": "Im lặng trò chơi",
"自动下载更新(需要连接github)": "Tự động tải xuống các bản cập nhật (yêu cầu kết nối github)",
"选择进程": "Chọn tiến trình",
"获取中": "Đang nhận",
"如果没看见想要附加的进程,可以尝试点击下方按钮后点击游戏窗口,或者尝试使用管理员权限运行本软件": "Nếu bạn không thấy tiến trình mà bạn muốn bổ sung, hãy thử nhấp vào cửa sổ trò chơi sau khi nhấp vào nút bên dưới hoặc thử chạy phần mềm này bằng quyền quản trị viên.",
@ -212,7 +208,6 @@
"判定詞": "Phán quyết",
"设置所有词条为全局词条": "Đặt tất cả các mục thành toàn cục",
"去除重复行": "Loại bỏ các dòng trùng lặp",
"替换内容": "Nội dung thay thế",
"重复次数": "Số lần lặp lại",
"显示翻译器名称": "Hiện tên bộ dịch",
"自动检测": "Phát hiện tự động",
@ -234,8 +229,6 @@
"空白": "Khoảng trắng",
"合并多行识别结果": "Kết quả nhận dạng đa dòng hợp nhất",
"选取OCR范围后立即进行一次识别": "Nhận dạng ngay sau khi chọn phạm vi OCR",
"自动隐藏窗口": "Tự động ẩn cửa sổ",
"隐藏延迟(s)": "Độ trễ ẩn (s)",
"选取OCR范围——立即": "Chọn phạm vi OCR - Ngay lập tức",
"未查到": "Không tìm thấy",
"保存": "Lưu",
@ -264,8 +257,6 @@
"设置Token": "Thiết lập Token",
"内置": "Được xây dựng trong",
"token设置": "Thiết lập Token",
"不同词性颜色(需要Mecab)": "Màu sắc khác nhau của từ (yêu cầu Mecab)",
"词性颜色(需要Mecab)": "Màu từ (yêu cầu Mecab)",
"!未选定进程!": " Quá trình chưa chọn!",
"该功能可能会导致游戏崩溃!": "Tính năng này có thể gây ra sự cố trò chơi!",
"警告": "Cảnh báo",
@ -305,7 +296,6 @@
"说明": "Mô tả",
"分析图像更新+周期执行": "Phân tích cập nhật hình ảnh+thực hiện chu kỳ",
"翻译器字体": "Bộ dịch",
"设置界面字体": "Đặt phông giao diện",
"专有名词翻译设置按钮": "Nút cài đặt danh từ độc quyền",
"调整游戏窗口按钮": "Điều chỉnh nút cửa sổ trò chơi",
"内嵌的翻译器": "Trình dịch nội tuyến",
@ -361,7 +351,6 @@
"火山OCR": "Núi lửa OCR",
"密钥获取": "Lấy chìa khóa",
"翻译及OCR语言": "Dịch và ngôn ngữ OCR",
"成功": "Thành công",
"特殊码": "Mã đặc biệt",
"删除特殊码": "Xóa mã đặc biệt",
"删除": "Xoá",
@ -376,7 +365,6 @@
"翻译结果修正": "Sửa kết quả dịch",
"翻译结果修正按钮": "Kết quả dịch Nút sửa chữa",
"翻译结果替换设置": "Thiết lập thay thế kết quả dịch",
"收到翻译结果时才刷新": "Làm mới khi nhận được kết quả dịch",
"过滤包含乱码的文本行": "Lọc các dòng văn bản có chứa mã lộn xộn",
"过滤文本中的非日语字符集字符": "Bộ lọc ký tự bộ ký tự không phải tiếng Nhật trong văn bản",
"过滤ASCII字符集": "Lọc bộ ký tự ASCII",
@ -582,7 +570,6 @@
"序列数": "Số dãy",
"过长惩罚": "Hình phạt quá dài",
"重复惩罚": "Hình phạt lặp lại",
"OCR语言包": "Gói ngôn ngữ OCR",
"最长显示字数": "Hiển thị tối đa số từ",
"显示日语注音": "Hiện chú thích tiếng Nhật",
"注音颜色": "Màu chú thích",
@ -717,10 +704,7 @@
"例句中加粗单词": "Từ in đậm trong câu ví dụ",
"工具栏": "Thanh công cụ",
"背景颜色": "Màu nền",
"翻译窗口": "Cửa sổ dịch",
"工具按钮": "Nút công cụ",
"界面主题": "Giao diện sắc thái",
"窗口行为": "Ứng xử cửa sổ",
"窗口特效": "Hiệu ứng cửa sổ",
"实时编辑": "Chỉnh sửa thời gian thực",
"翻译记录": "Bản dịch",
@ -774,19 +758,13 @@
"阴影字体": "Phông bóng",
"额外的html": "Thêm HTML",
"测试": "Thử nghiệm",
"窗口尺寸": "Kích thước cửa sổ",
"自动延展": "Tự động mở rộng",
"自动收缩": "Thu nhỏ tự động",
"范围框颜色": "Màu hộp phạm vi",
"伴随游戏窗口": "Đi kèm với cửa sổ trò chơi",
"主题": "Chủ đề",
"自动输出": "Đầu ra tự động",
"引擎": "Động cơ",
"注音": "Ghi chú",
"字体缩放": "Thu phóng phông chữ",
"显示行为": "Hiện hành vi",
"主界面": "Giao diện chính",
"设置界面": "Thiết lập giao diện",
"声音": "Âm thanh",
"行为": "Ứng xử",
"自动化执行": "Thực hiện tự động",
@ -799,7 +777,6 @@
"按钮颜色": "Màu nút",
"按钮大小": "Kích thước nút",
"软件显示语言": "Ngôn ngữ hiển thị phần mềm",
"重启生效": "Khởi động lại có hiệu lực",
"不支持的游戏?": "Trò chơi không được hỗ trợ?",
"填充颜色": "Màu tô",
"阴影强度": "Cường độ bóng",
@ -810,5 +787,30 @@
"投影距离": "Khoảng cách chiếu",
"反转颜色": "Đảo ngược màu",
"内嵌": "Nội tuyến",
"未找到QWebEngine点击确定前往下载QWebEngine": "Không tìm thấy QWebEngine, nhấn OK để tải xuống QWebEngine"
"未找到QWebEngine点击确定前往下载QWebEngine": "Không tìm thấy QWebEngine, nhấn OK để tải xuống QWebEngine",
"网络设置": "Thiết lập mạng",
"版本更新": "Cập nhật phiên bản",
"词性颜色": "Màu sắc của từ",
"需要Mecab": "Cần Mecab",
"跟随游戏窗口": "Theo cửa sổ trò chơi",
"自动调整高度": "Tự động điều chỉnh chiều cao",
"文本区": "Vùng văn bản",
"收到翻译时才刷新": "Làm mới khi nhận được bản dịch",
"自动隐藏窗口": "Tự động ẩn cửa sổ",
"隐藏延迟(s)": "Độ trễ ẩn (s)",
"内容": "Nội dung",
"显示内容": "Hiển thị nội dung",
"界面设置": "Thiết lập giao diện",
"主题效果": "Hiệu ứng sắc thái",
"其他界面": "Giao diện khác",
"翻译及OCR": "Biên dịch và OCR",
"这一设置将会在下一次打开软件时生效": "Cài đặt này sẽ có hiệu lực vào lần mở phần mềm tiếp theo.",
"语言包": "Gói ngôn ngữ",
"项目仓库": "Kho dự án",
"整合包": "Gói tích hợp",
"TGW懒人包": "Túi xách lười TGW",
"论坛": "Diễn đàn",
"请选择": "Vui lòng chọn",
"安装成功": "Cài đặt thành công",
"添加成功": "Thêm thành công"
}

View File

@ -23,7 +23,6 @@
"有道": "",
"选择游戏": "",
"语音合成": "",
"不同词性颜色(需要Mecab)": "",
"例外允许的字符": "",
"東北イタコ": "",
"希腊语": "",
@ -56,7 +55,6 @@
"通用文字识别(高精度版)": "",
"名詞": "",
"读取剪贴板": "",
"成功": "",
"游戏": "",
"检测到游戏时自动开始": "",
"插值算法": "",
@ -134,7 +132,6 @@
"语速:(-10~10)": "",
"缩放时模拟独占全屏": "",
"专有名词翻译设置按钮": "",
"设置界面字体": "",
"越南语": "",
"代码页": "",
"点击此按钮后点击游戏窗口": "",
@ -232,7 +229,6 @@
"彩云": "",
"允许缩放最大化或全屏的窗口": "",
"源窗口": "",
"替换内容": "",
"快捷按键": "",
"捕获模式": "",
"程序名": "",
@ -241,18 +237,16 @@
"通用文字识别(标准版)": "",
"过滤「」以外的字符": "",
"过滤非shiftjis": "",
"自动隐藏窗口": "",
"找不到重要组件:": "",
"分析图像更新": "",
"注册地址": "",
"捕获标题栏": "",
"月読ショウタ": "",
"自动下载更新(需要连接github)": "",
"自动检测": "",
"繁体中文(BIG5)": "",
"翻译等待时间(s)": "",
"词性": "",
"收到翻译结果时才刷新": "",
"收到翻译时才刷新": "",
"禁用DirectFlip": "",
"形状詞": "",
"文本源": "",
@ -277,7 +271,6 @@
"谷歌": "",
"本地OCR": "",
"模拟按键Ctrl": "",
"词性颜色(需要Mecab)": "",
"加粗字体": "",
"时间间隔": "",
"去除重复字符(若为1则自动分析去重)": "",
@ -324,7 +317,6 @@
"意大利语": "",
"已保存游戏": "",
"使用最快翻译而非指定翻译器": "",
"设置界面字体类型": "",
"有道api": "",
"显示显示原文按钮": "",
"去除花括号{}": "",
@ -332,7 +324,6 @@
"不显示api": "",
"朗读原文": "",
"连接成功": "",
"游戏最小化时窗口隐藏": "",
"修改游戏字体": "",
"选择文本": "",
"json文件": "",
@ -412,7 +403,6 @@
"俄语": "",
"文字更新分析": "",
"过滤HTML标签": "",
"翻译器显示语言(重启生效)": "",
"日语": "",
"语法加亮": "",
"翻译器字体": "",
@ -504,7 +494,6 @@
"結月ゆかり": "",
"空白": "",
"替换为": "",
"隐藏延迟(s)": "",
"琴葉葵": "",
"内置": "",
"连接超时": "",
@ -585,7 +574,7 @@
"序列数": "",
"过长惩罚": "",
"重复惩罚": "",
"OCR语言包": "",
"语言包": "",
"最长显示字数": "",
"显示日语注音": "",
"注音颜色": "",
@ -723,10 +712,7 @@
"例句中加粗单词": "",
"工具栏": "",
"背景颜色": "",
"翻译窗口": "",
"工具按钮": "",
"界面主题": "",
"窗口行为": "",
"窗口特效": "",
"实时编辑": "",
"翻译记录": "",
@ -776,18 +762,12 @@
"阴影字体": "",
"额外的html": "",
"测试": "",
"窗口尺寸": "",
"自动延展": "",
"自动收缩": "",
"伴随游戏窗口": "",
"跟随游戏窗口": "",
"主题": "",
"自动输出": "",
"引擎": "",
"注音": "",
"字体缩放": "",
"显示行为": "",
"主界面": "",
"设置界面": "",
"声音": "",
"行为": "",
"自动化执行": "",
@ -800,7 +780,6 @@
"按钮颜色": "",
"按钮大小": "",
"软件显示语言": "",
"重启生效": "",
"不支持的游戏?": "",
"填充颜色": "",
"阴影强度": "",
@ -810,5 +789,28 @@
"投影距离": "",
"反转颜色": "",
"内嵌": "",
"未找到QWebEngine点击确定前往下载QWebEngine": ""
"未找到QWebEngine点击确定前往下载QWebEngine": "",
"网络设置": "",
"版本更新": "",
"词性颜色": "",
"需要Mecab": "",
"自动调整高度": "",
"文本区": "",
"自动隐藏窗口": "",
"隐藏延迟(s)": "",
"内容": "",
"显示内容": "",
"界面设置": "",
"主题效果": "",
"主界面": "",
"其他界面": "",
"翻译及OCR": "",
"这一设置将会在下一次打开软件时生效": "",
"项目仓库": "",
"整合包": "",
"TGW懒人包": "",
"论坛": "",
"请选择": "",
"安装成功": "",
"添加成功": ""
}

View File

@ -28,8 +28,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/version)
include(generate_product_version)
set(VERSION_MAJOR 5)
set(VERSION_MINOR 2)
set(VERSION_PATCH 2)
set(VERSION_MINOR 3)
set(VERSION_PATCH 0)
add_library(pch pch.cpp)
target_precompile_headers(pch PUBLIC pch.h)