mirror of
https://github.com/HIllya51/LunaTranslator.git
synced 2024-12-29 00:24:13 +08:00
...
This commit is contained in:
parent
1a54be9343
commit
4a596c3c0d
@ -148,7 +148,7 @@ class MAINUI:
|
||||
if self.autoswitchgameuid:
|
||||
gameuid, _ = findgameuidofpath(getpidexe(_pid))
|
||||
if gameuid:
|
||||
self.gameuid = gameuid[0]
|
||||
self.gameuid = gameuid
|
||||
except:
|
||||
print_exc()
|
||||
else:
|
||||
|
@ -1,7 +1,7 @@
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QWidget
|
||||
from qtsymbols import *
|
||||
import os, functools, uuid
|
||||
import functools, uuid
|
||||
from datetime import datetime, timedelta
|
||||
from traceback import print_exc
|
||||
import gobject
|
||||
@ -37,12 +37,9 @@ from gui.inputdialog import (
|
||||
from gui.specialwidget import ScrollFlow, chartwidget
|
||||
from gui.usefulwidget import (
|
||||
TableViewW,
|
||||
saveposwindow,
|
||||
getsimpleswitch,
|
||||
getsimplepatheditor,
|
||||
getboxlayout,
|
||||
auto_select_webview,
|
||||
Prompt_dialog,
|
||||
clearlayout,
|
||||
getsimplecombobox,
|
||||
getspinbox,
|
||||
@ -62,164 +59,69 @@ from gui.dynalang import (
|
||||
LLabel,
|
||||
LDialog,
|
||||
)
|
||||
from gui.dialog_savedgame_common import tagitem, TagWidget
|
||||
from gui.dialog_savedgame_common import tagitem
|
||||
|
||||
|
||||
@Singleton
|
||||
class browserdialog(saveposwindow):
|
||||
seturlsignal = pyqtSignal(str)
|
||||
|
||||
def startupsettitle(self, gameuid):
|
||||
|
||||
if gameuid:
|
||||
title = savehook_new_data[gameuid]["title"]
|
||||
else:
|
||||
title = "LunaTranslator"
|
||||
self.setWindowTitle(title)
|
||||
|
||||
def loadalllinks(self, gameuid):
|
||||
items = []
|
||||
if gameuid:
|
||||
self.setWindowTitle(savehook_new_data[gameuid]["title"])
|
||||
|
||||
for link in globalconfig["relationlinks"]:
|
||||
items.append((link[0], tagitem.TYPE_GLOABL_LIKE, link[1]))
|
||||
if gameuid:
|
||||
for link in savehook_new_data[self.gameuid]["relationlinks"]:
|
||||
items.append((link[0], tagitem.TYPE_GAME_LIKE, link[1]))
|
||||
if len(items) == 0:
|
||||
items.append(
|
||||
(
|
||||
"Luna",
|
||||
tagitem.TYPE_GLOABL_LIKE,
|
||||
static_data["main_server"][gobject.serverindex],
|
||||
)
|
||||
)
|
||||
self.tagswidget.clearTag(False)
|
||||
self.tagswidget.addTags(items)
|
||||
|
||||
def startupnavi(self, gameuid):
|
||||
for idx in range(2, 100):
|
||||
if idx == 2:
|
||||
if gameuid:
|
||||
if len(savehook_new_data[gameuid]["relationlinks"]):
|
||||
navitarget = savehook_new_data[gameuid]["relationlinks"][-1][1]
|
||||
break
|
||||
elif idx == 3:
|
||||
if len(globalconfig["relationlinks"]):
|
||||
navitarget = globalconfig["relationlinks"][-1][1]
|
||||
break
|
||||
else:
|
||||
navitarget = None
|
||||
break
|
||||
if navitarget:
|
||||
self.browser.navigate(navitarget)
|
||||
self.urlchanged(navitarget)
|
||||
|
||||
def urlchanged(self, url):
|
||||
self.tagswidget.lineEdit.setCurrentText(url)
|
||||
self.current = url
|
||||
|
||||
def likelink(self):
|
||||
_dia = Prompt_dialog(
|
||||
self,
|
||||
"收藏",
|
||||
"",
|
||||
[
|
||||
["名称", ""],
|
||||
["网址", self.current],
|
||||
],
|
||||
)
|
||||
|
||||
if _dia.exec():
|
||||
|
||||
text = []
|
||||
for _t in _dia.text:
|
||||
text.append(_t.text())
|
||||
if self.gameuid:
|
||||
savehook_new_data[self.gameuid]["relationlinks"].append(text)
|
||||
self.tagswidget.addTag(text[0], tagitem.TYPE_GAME_LIKE, text[1])
|
||||
else:
|
||||
globalconfig["relationlinks"].append(text)
|
||||
self.tagswidget.addTag(text[0], tagitem.TYPE_GLOABL_LIKE, text[1])
|
||||
|
||||
def tagschanged(self, tags):
|
||||
__ = []
|
||||
__2 = []
|
||||
for _name, _type, _url in tags:
|
||||
if _type == tagitem.TYPE_GLOABL_LIKE:
|
||||
__.append([_name, _url])
|
||||
elif _type == tagitem.TYPE_GAME_LIKE:
|
||||
__2.append([_name, _url])
|
||||
globalconfig["relationlinks"] = __
|
||||
if self.gameuid:
|
||||
savehook_new_data[self.gameuid]["relationlinks"] = __2
|
||||
|
||||
def reinit(self, gameuid=None):
|
||||
|
||||
self.gameuid = gameuid
|
||||
self.loadalllinks(gameuid)
|
||||
self.startupnavi(gameuid)
|
||||
self.startupsettitle(gameuid)
|
||||
class favorites(LDialog):
|
||||
|
||||
def __init__(self, parent, gameuid=None) -> None:
|
||||
super().__init__(parent, poslist=globalconfig["browserwidget"])
|
||||
super().__init__(parent, Qt.WindowType.WindowCloseButtonHint)
|
||||
if gameuid:
|
||||
self.setWindowIcon(getExeIcon(get_launchpath(gameuid), cache=True))
|
||||
self.browser = auto_select_webview(self)
|
||||
|
||||
self.tagswidget = TagWidget(self, exfoucus=True)
|
||||
self.tagswidget.tagschanged.connect(self.tagschanged)
|
||||
|
||||
self.tagswidget.tagclicked.connect(self.urlclicked)
|
||||
self.tagswidget.linepressedenter.connect(self.browser.navigate)
|
||||
self.browser.on_load.connect(self.urlchanged)
|
||||
|
||||
hlay = QHBoxLayout()
|
||||
hlay.addWidget(self.tagswidget)
|
||||
|
||||
hlay.addWidget(getIconButton(self.likelink, icon="fa.heart"))
|
||||
hlay.addWidget(
|
||||
getIconButton(
|
||||
lambda: self.urlclicked((None, None, self.current)), icon="fa.repeat"
|
||||
self.setWindowTitle("收藏夹")
|
||||
self.gameuid = gameuid
|
||||
self.reflist = (
|
||||
savehook_new_data[self.gameuid]["relationlinks"]
|
||||
if gameuid
|
||||
else globalconfig["relationlinks"]
|
||||
)
|
||||
model = LStandardItemModel()
|
||||
model.setHorizontalHeaderLabels(["名称", "链接"])
|
||||
formLayout = QVBoxLayout(self)
|
||||
table = TableViewW(self, copypaste=True, updown=True)
|
||||
table.setModel(model)
|
||||
table.horizontalHeader().setSectionResizeMode(
|
||||
1, QHeaderView.ResizeMode.Interactive
|
||||
)
|
||||
_topw = QWidget()
|
||||
_topw.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
||||
_topw.setLayout(hlay)
|
||||
layout = QVBoxLayout()
|
||||
layout.setContentsMargins(*(0 for i in range(4)))
|
||||
hlay.setContentsMargins(*(0 for i in range(4)))
|
||||
layout.addWidget(_topw)
|
||||
layout.addWidget(self.browser)
|
||||
layout.setSpacing(0)
|
||||
__w = QWidget()
|
||||
__w.setLayout(layout)
|
||||
self.setCentralWidget(__w)
|
||||
table.horizontalHeader().setSectionResizeMode(
|
||||
0, QHeaderView.ResizeMode.Interactive
|
||||
)
|
||||
table.horizontalHeader().setStretchLastSection(True)
|
||||
for item in self.reflist:
|
||||
model.appendRow([QStandardItem(item[0]), QStandardItem(item[1])])
|
||||
|
||||
self.reinit(gameuid)
|
||||
table.insertplainrow = lambda row: model.insertRow(
|
||||
row,
|
||||
[
|
||||
QStandardItem(),
|
||||
QStandardItem(),
|
||||
],
|
||||
)
|
||||
formLayout.addWidget(table)
|
||||
self.table = table
|
||||
button = threebuttons(texts=["添加行", "删除行", "上移", "下移", "立即应用"])
|
||||
button.btn1clicked.connect(functools.partial(table.insertplainrow, 0))
|
||||
button.btn2clicked.connect(table.removeselectedrows)
|
||||
button.btn5clicked.connect(self.apply)
|
||||
button.btn3clicked.connect(functools.partial(table.moverank, -1))
|
||||
button.btn4clicked.connect(functools.partial(table.moverank, 1))
|
||||
self.button = button
|
||||
formLayout.addWidget(button)
|
||||
self.resize(QSize(600, 400))
|
||||
self.show()
|
||||
|
||||
def urlclicked(self, _):
|
||||
tag, _, url = _
|
||||
if url[:4].lower() != "http":
|
||||
url = os.path.abspath(url)
|
||||
self.browser.navigate(url)
|
||||
def apply(self):
|
||||
self.reflist.clear()
|
||||
self.table.dedumpmodel(1)
|
||||
for row in range(self.table.model().rowCount()):
|
||||
k = self.table.getdata(row, 0)
|
||||
v = self.table.getdata(row, 1)
|
||||
self.reflist.append((k, v))
|
||||
|
||||
def showmenu(self, p):
|
||||
tab_index = self.nettab.tabBar().tabAt(p)
|
||||
if (self.hasvndb and tab_index == 0) or tab_index == self.nettab.count() - 1:
|
||||
return
|
||||
menu = QMenu(self)
|
||||
shanchu = LAction(("删除"))
|
||||
menu.addAction(shanchu)
|
||||
action = menu.exec(self.mapToGlobal(p))
|
||||
if action == shanchu:
|
||||
self.nettab.setCurrentIndex(0)
|
||||
self.nettab.removeTab(tab_index)
|
||||
savehook_new_data[self.gameuid]["relationlinks"].pop(
|
||||
tab_index - self.hasvndb
|
||||
)
|
||||
def closeEvent(self, a0: QCloseEvent) -> None:
|
||||
self.button.setFocus()
|
||||
self.apply()
|
||||
|
||||
|
||||
def maybehavebutton(self, gameuid, post):
|
||||
@ -314,10 +216,8 @@ class dialog_setting_game_internal(QWidget):
|
||||
icons=("fa.gear",),
|
||||
),
|
||||
getIconButton(
|
||||
lambda: browserdialog(
|
||||
gobject.baseobject.commonstylebase, gameuid
|
||||
),
|
||||
icon="fa.book",
|
||||
lambda: favorites(gobject.baseobject.commonstylebase, gameuid),
|
||||
icon="fa.heart",
|
||||
),
|
||||
]
|
||||
),
|
||||
|
@ -2,8 +2,8 @@ from qtsymbols import *
|
||||
import time, functools, threading, os, importlib, shutil, uuid
|
||||
from traceback import print_exc
|
||||
import windows, qtawesome, gobject, winsharedutils
|
||||
from myutils.wrapper import threader, trypass, tryprint
|
||||
from myutils.config import globalconfig, saveallconfig, static_data
|
||||
from myutils.wrapper import threader, tryprint
|
||||
from myutils.config import globalconfig, saveallconfig, static_data, savehook_new_data
|
||||
from gui.dialog_savedgame import dialog_setting_game
|
||||
from myutils.subproc import endsubprocs
|
||||
from myutils.ocrutil import ocr_run, imageCut
|
||||
@ -26,7 +26,7 @@ from gui.usefulwidget import (
|
||||
)
|
||||
from gui.edittext import edittrans
|
||||
from gui.dialog_savedgame import dialog_savedgame_integrated
|
||||
from gui.dialog_savedgame_setting import browserdialog, calculate_centered_rect
|
||||
from gui.dialog_savedgame_setting import favorites, calculate_centered_rect
|
||||
from gui.dynalang import LDialog
|
||||
|
||||
|
||||
@ -486,6 +486,30 @@ class TranslatorWindow(resizableframeless):
|
||||
self.refreshtoolicon()
|
||||
self.setontopthread()
|
||||
|
||||
def favoritesmenu(self):
|
||||
menu = QMenu(gobject.baseobject.commonstylebase)
|
||||
gameuid = gobject.baseobject.gameuid
|
||||
maps = {}
|
||||
if gameuid:
|
||||
for name, link in savehook_new_data[gameuid]["relationlinks"]:
|
||||
act = QAction(name)
|
||||
maps[act] = link
|
||||
menu.addAction(act)
|
||||
if (
|
||||
globalconfig["relationlinks"]
|
||||
and gameuid
|
||||
and savehook_new_data[gameuid]["relationlinks"]
|
||||
):
|
||||
menu.addSeparator()
|
||||
for name, link in globalconfig["relationlinks"]:
|
||||
act = QAction(name)
|
||||
maps[act] = link
|
||||
menu.addAction(act)
|
||||
action = menu.exec(QCursor.pos())
|
||||
link = maps.get(action)
|
||||
if link:
|
||||
gobject.baseobject.openlink(link)
|
||||
|
||||
def addbuttons(self):
|
||||
def simulate_key_ctrl():
|
||||
windows.SetForegroundWindow(gobject.baseobject.hwnd)
|
||||
@ -633,10 +657,13 @@ class TranslatorWindow(resizableframeless):
|
||||
),
|
||||
),
|
||||
(
|
||||
"open_relative_link",
|
||||
lambda: browserdialog(
|
||||
"game_ref_favorites",
|
||||
self.favoritesmenu,
|
||||
None,
|
||||
None,
|
||||
lambda: favorites(
|
||||
gobject.baseobject.commonstylebase,
|
||||
trypass(lambda: gobject.baseobject.gameuid)(),
|
||||
gobject.baseobject.gameuid,
|
||||
),
|
||||
),
|
||||
(
|
||||
|
@ -2046,20 +2046,20 @@ class listediterline(QLineEdit):
|
||||
|
||||
def openfiledirectory(directory, multi, edit, isdir, filter1="*.*", callback=None):
|
||||
if isdir:
|
||||
f = QFileDialog.getExistingDirectory(directory=directory)
|
||||
res = os.path.normpath(f)
|
||||
res = QFileDialog.getExistingDirectory(directory=directory)
|
||||
else:
|
||||
if multi:
|
||||
f = QFileDialog.getOpenFileNames(directory=directory, filter=filter1)
|
||||
res = [os.path.normpath(_) for _ in f[0]]
|
||||
else:
|
||||
f = QFileDialog.getOpenFileName(directory=directory, filter=filter1)
|
||||
res = os.path.normpath(f[0])
|
||||
res = (QFileDialog.getOpenFileName, QFileDialog.getOpenFileNames)[multi](
|
||||
directory=directory, filter=filter1
|
||||
)[0]
|
||||
|
||||
if len(res) == 0:
|
||||
if not res:
|
||||
return
|
||||
if isinstance(res, list):
|
||||
res = [os.path.normpath(_) for _ in res]
|
||||
else:
|
||||
res = os.path.normpath(res)
|
||||
if edit:
|
||||
edit.setText("|".join(res) if multi else res)
|
||||
edit.setText("|".join(res) if isinstance(res, list) else res)
|
||||
if callback:
|
||||
callback(res)
|
||||
|
||||
|
@ -570,7 +570,6 @@
|
||||
"simulate_key_ctrl",
|
||||
"simulate_key_enter",
|
||||
"copy_once",
|
||||
"open_relative_link",
|
||||
"open_game_setting",
|
||||
"ocr_once",
|
||||
"ocr_once_follow",
|
||||
@ -604,10 +603,10 @@
|
||||
"icon": "fa.file-o",
|
||||
"align": 0
|
||||
},
|
||||
"open_relative_link": {
|
||||
"game_ref_favorites": {
|
||||
"use": false,
|
||||
"tip": "打开关联页面",
|
||||
"icon": "fa.sitemap",
|
||||
"tip": "收藏夹",
|
||||
"icon": "fa.heart",
|
||||
"align": 0
|
||||
},
|
||||
"open_game_setting": {
|
||||
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "استخدام حقن YAPI",
|
||||
"窗口缩放": "نافذة التكبير",
|
||||
"缩放方式": "طريقة التكبير",
|
||||
"打开关联页面": "فتح صفحة الارتباط",
|
||||
"API超时(秒)": "API مهلة ( ثانية )",
|
||||
"去除重复字符": "إزالة الأحرف المكررة",
|
||||
"游戏内叠加层": "لعبة التراص الداخلي",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "لعبة مباراة",
|
||||
"指定翻译器": "تعيين مترجم",
|
||||
"关于软件": "عن البرمجيات",
|
||||
"严格的": "صارم"
|
||||
"严格的": "صارم",
|
||||
"收藏夹": "المفضلة"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "使用 YAPI 注入",
|
||||
"窗口缩放": "視窗縮放",
|
||||
"缩放方式": "縮放方式",
|
||||
"打开关联页面": "打開關聯頁面",
|
||||
"API超时(秒)": "API 超時(秒)",
|
||||
"去除重复字符": "去除重複字元",
|
||||
"游戏内叠加层": "遊戲內疊加層",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "遊戲適配",
|
||||
"指定翻译器": "指定翻譯器",
|
||||
"关于软件": "關於軟件",
|
||||
"严格的": "嚴格的"
|
||||
"严格的": "嚴格的",
|
||||
"收藏夹": "我的最愛"
|
||||
}
|
@ -506,7 +506,6 @@
|
||||
"使用YAPI注入": "Injekce pomocí YAPI",
|
||||
"窗口缩放": "Měřítko okna",
|
||||
"缩放方式": "Metoda škálování",
|
||||
"打开关联页面": "Otevřít přidruženou stránku",
|
||||
"API超时(秒)": "Časový limit API (sekundy)",
|
||||
"去除重复字符": "Odstranit duplicitní znaky",
|
||||
"游戏内叠加层": "Vrstva překrytí ve hře",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Úprava hry",
|
||||
"指定翻译器": "Upřesnit překladatele",
|
||||
"关于软件": "O softwaru",
|
||||
"严格的": "přísná"
|
||||
"严格的": "přísná",
|
||||
"收藏夹": "Oblíbené"
|
||||
}
|
@ -506,7 +506,6 @@
|
||||
"使用YAPI注入": "Injizieren mit YAPI",
|
||||
"窗口缩放": "Fensterskalierung",
|
||||
"缩放方式": "Skalierungsmethode",
|
||||
"打开关联页面": "Die zugehörige Seite öffnen",
|
||||
"API超时(秒)": "API Timeout (Sekunden)",
|
||||
"去除重复字符": "Doppelte Zeichen entfernen",
|
||||
"游戏内叠加层": "Overlay-Ebene im Spiel",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Anpassung des Spiels",
|
||||
"指定翻译器": "Übersetzer angeben",
|
||||
"关于软件": "Über Software",
|
||||
"严格的": "streng"
|
||||
"严格的": "streng",
|
||||
"收藏夹": "Favoriten"
|
||||
}
|
@ -497,7 +497,6 @@
|
||||
"使用YAPI注入": "Use YAPI Injection",
|
||||
"窗口缩放": "Window Scaling",
|
||||
"缩放方式": "Scaling Method",
|
||||
"打开关联页面": "Open Related Page",
|
||||
"API超时(秒)": "API Timeout (s)",
|
||||
"去除重复字符": "Remove Duplicate Characters",
|
||||
"游戏内叠加层": "In-Game Overlay Layer",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Game adaptation",
|
||||
"指定翻译器": "Specify translator",
|
||||
"关于软件": "About software",
|
||||
"严格的": "strict"
|
||||
"严格的": "strict",
|
||||
"收藏夹": "Favorites"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "Inyección con Yapi",
|
||||
"窗口缩放": "Ampliación de la ventana",
|
||||
"缩放方式": "Modo de zoom",
|
||||
"打开关联页面": "Abrir página asociada",
|
||||
"API超时(秒)": "Horas extras API (segundos)",
|
||||
"去除重复字符": "Eliminar caracteres duplicados",
|
||||
"游戏内叠加层": "Capa superpuesta en el juego",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Adaptación del juego",
|
||||
"指定翻译器": "Especificar traductor",
|
||||
"关于软件": "Sobre el software",
|
||||
"严格的": "Estricto"
|
||||
"严格的": "Estricto",
|
||||
"收藏夹": "Colección"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "Injection avec Yapi",
|
||||
"窗口缩放": "Zoom de la fenêtre",
|
||||
"缩放方式": "Mode de zoom",
|
||||
"打开关联页面": "Ouvrir la page associée",
|
||||
"API超时(秒)": "API timeout (secondes)",
|
||||
"去除重复字符": "Supprimer les caractères dupliqués",
|
||||
"游戏内叠加层": "Couches superposées dans le jeu",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Adaptation du jeu",
|
||||
"指定翻译器": "Spécifier le traducteur",
|
||||
"关于软件": "À propos du logiciel",
|
||||
"严格的": "Strictement"
|
||||
"严格的": "Strictement",
|
||||
"收藏夹": "Favoris"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "Uso dell'iniezione di YAPI",
|
||||
"窗口缩放": "Zoom finestra",
|
||||
"缩放方式": "Metodo zoom",
|
||||
"打开关联页面": "Apri la pagina associata",
|
||||
"API超时(秒)": "Timeout API (secondi)",
|
||||
"去除重复字符": "Rimuovi caratteri duplicati",
|
||||
"游戏内叠加层": "Livello di sovrapposizione in gioco",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Adattamento del gioco",
|
||||
"指定翻译器": "Specifica traduttore",
|
||||
"关于软件": "Informazioni sul software",
|
||||
"严格的": "severo"
|
||||
"严格的": "severo",
|
||||
"收藏夹": "Preferiti"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "YAPI注入を使用する",
|
||||
"窗口缩放": "ウィンドウのズーム",
|
||||
"缩放方式": "スケール方法",
|
||||
"打开关联页面": "関連ページを開く",
|
||||
"API超时(秒)": "APIタイムアウト(秒)",
|
||||
"去除重复字符": "繰り返し文字を削除",
|
||||
"游戏内叠加层": "ゲーム内のオーバーレイレイヤ",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "ゲームアダプタ",
|
||||
"指定翻译器": "翻訳機の指定",
|
||||
"关于软件": "ソフトウェアについて",
|
||||
"严格的": "きびしい"
|
||||
"严格的": "きびしい",
|
||||
"收藏夹": "お気に入り"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "YAPI 주입 사용",
|
||||
"窗口缩放": "창 크기 조절",
|
||||
"缩放方式": "배율 조정 방법",
|
||||
"打开关联页面": "연관 페이지 열기",
|
||||
"API超时(秒)": "API 제한 시간 (초)",
|
||||
"去除重复字符": "중복 문자 제거",
|
||||
"游戏内叠加层": "게임 내 중첩층",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "게임 적합성",
|
||||
"指定翻译器": "번역기 지정",
|
||||
"关于软件": "소프트웨어 정보",
|
||||
"严格的": "엄격했어"
|
||||
"严格的": "엄격했어",
|
||||
"收藏夹": "즐겨찾기"
|
||||
}
|
@ -506,7 +506,6 @@
|
||||
"使用YAPI注入": "Injecteren met YAPI",
|
||||
"窗口缩放": "Vensterschalen",
|
||||
"缩放方式": "Schaalmethode",
|
||||
"打开关联页面": "De bijbehorende pagina openen",
|
||||
"API超时(秒)": "API timeout (seconden)",
|
||||
"去除重复字符": "Dubbele tekens verwijderen",
|
||||
"游戏内叠加层": "Overlaylaag in het spel",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Game aanpassing",
|
||||
"指定翻译器": "Vertaler opgeven",
|
||||
"关于软件": "Over software",
|
||||
"严格的": "strikt"
|
||||
"严格的": "strikt",
|
||||
"收藏夹": "Favorieten"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "Zastosowanie wstrzykiwań YAPI",
|
||||
"窗口缩放": "Powiększenie okna",
|
||||
"缩放方式": "Metoda powiększania",
|
||||
"打开关联页面": "Otwórz powiązaną stronę",
|
||||
"API超时(秒)": "Limit czasu API (sekundy)",
|
||||
"去除重复字符": "Usuń duplikaty znaków",
|
||||
"游戏内叠加层": "Warstwa nakładki w grze",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Adaptacja gry",
|
||||
"指定翻译器": "Określ tłumacza",
|
||||
"关于软件": "O oprogramowaniu",
|
||||
"严格的": "surowe"
|
||||
"严格的": "surowe",
|
||||
"收藏夹": "Ulubione"
|
||||
}
|
@ -506,7 +506,6 @@
|
||||
"使用YAPI注入": "Injectar utilizando YAPI",
|
||||
"窗口缩放": "Escala da janela",
|
||||
"缩放方式": "Método de dimensionamento",
|
||||
"打开关联页面": "Abrir a página associada",
|
||||
"API超时(秒)": "Tempo limite da API (segundos)",
|
||||
"去除重复字符": "Remover caracteres duplicados",
|
||||
"游戏内叠加层": "Camada de sobreposição no jogo",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Adaptação do jogo",
|
||||
"指定翻译器": "Especificar o tradutor",
|
||||
"关于软件": "Sobre o software",
|
||||
"严格的": "estrito"
|
||||
"严格的": "estrito",
|
||||
"收藏夹": "Favoritos"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "Использовать инъекцию YAPI",
|
||||
"窗口缩放": "Масштаб окна",
|
||||
"缩放方式": "Режим масштабирования",
|
||||
"打开关联页面": "Открыть страницу",
|
||||
"API超时(秒)": "API Время ожидания (секунды)",
|
||||
"去除重复字符": "Удалить повторяющиеся символы",
|
||||
"游戏内叠加层": "Слой наложения внутри игры",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Игра подходит",
|
||||
"指定翻译器": "Назначить переводчика",
|
||||
"关于软件": "О программном обеспечении",
|
||||
"严格的": "Строго"
|
||||
"严格的": "Строго",
|
||||
"收藏夹": "Коллекция"
|
||||
}
|
@ -506,7 +506,6 @@
|
||||
"使用YAPI注入": "Injicera med YAPI",
|
||||
"窗口缩放": "Fönsterskalning",
|
||||
"缩放方式": "Skalningsmetod",
|
||||
"打开关联页面": "Öppna associerad sida",
|
||||
"API超时(秒)": "Tidsfrist för API (sekunder)",
|
||||
"去除重复字符": "Ta bort dubbletter",
|
||||
"游戏内叠加层": "Överläggningslager i spelet",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Spelanpassning",
|
||||
"指定翻译器": "Ange översättare",
|
||||
"关于软件": "Om programvara",
|
||||
"严格的": "strikt"
|
||||
"严格的": "strikt",
|
||||
"收藏夹": "Favoriter"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "ใช้ YAPI ฉีด",
|
||||
"窗口缩放": "หน้าต่างซูม",
|
||||
"缩放方式": "โหมดซูม",
|
||||
"打开关联页面": "เปิดหน้าพันธมิตร",
|
||||
"API超时(秒)": "หมดเวลา API (วินาที)",
|
||||
"去除重复字符": "ลบอักขระที่ซ้ำกัน",
|
||||
"游戏内叠加层": "ซ้อนทับในเกม",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "การปรับเกม",
|
||||
"指定翻译器": "ระบุนักแปล",
|
||||
"关于软件": "เกี่ยวกับซอฟต์แวร์",
|
||||
"严格的": "เข้มงวด"
|
||||
"严格的": "เข้มงวด",
|
||||
"收藏夹": "รายการโปรด"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "YAPI injeksiyonu kullanıyor",
|
||||
"窗口缩放": "Pencere Yakınlaştır",
|
||||
"缩放方式": "Yakınlaştırma yöntemi",
|
||||
"打开关联页面": "İlişkili sayfanı aç",
|
||||
"API超时(秒)": "API zaman aşımı (saniyeler)",
|
||||
"去除重复字符": "Çift karakterleri sil",
|
||||
"游戏内叠加层": "Oyun üzerindeki katı",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Oyun uygulaması",
|
||||
"指定翻译器": "Çevirmeyi belirtin",
|
||||
"关于软件": "Yazılım hakkında",
|
||||
"严格的": "strict"
|
||||
"严格的": "strict",
|
||||
"收藏夹": "Favoritler"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "Використання інструкції YAPI",
|
||||
"窗口缩放": "Масштаб вікна",
|
||||
"缩放方式": "Метод масштабу",
|
||||
"打开关联页面": "Відкрити пов’ язану сторінку",
|
||||
"API超时(秒)": "Часовий час API (секунди)",
|
||||
"去除重复字符": "Вилучити дублікатні символи",
|
||||
"游戏内叠加层": "Шир перекладу у грі",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Адаптація гри",
|
||||
"指定翻译器": "Вкажіть перекладач",
|
||||
"关于软件": "Про програмне забезпечення",
|
||||
"严格的": "strict"
|
||||
"严格的": "strict",
|
||||
"收藏夹": "Улюблені"
|
||||
}
|
@ -498,7 +498,6 @@
|
||||
"使用YAPI注入": "Sử dụng YAPI Injection",
|
||||
"窗口缩放": "Thu phóng cửa sổ",
|
||||
"缩放方式": "Cách thu phóng",
|
||||
"打开关联页面": "Mở trang liên kết",
|
||||
"API超时(秒)": "Thời gian chờ API (giây)",
|
||||
"去除重复字符": "Loại bỏ các ký tự trùng lặp",
|
||||
"游戏内叠加层": "Lớp phủ trong trò chơi",
|
||||
@ -825,5 +824,6 @@
|
||||
"游戏适配": "Trò chơi phù hợp",
|
||||
"指定翻译器": "Chỉ định trình dịch",
|
||||
"关于软件": "Về phần mềm",
|
||||
"严格的": "Nghiêm ngặt"
|
||||
"严格的": "Nghiêm ngặt",
|
||||
"收藏夹": "Yêu thích"
|
||||
}
|
@ -507,7 +507,6 @@
|
||||
"使用YAPI注入": "",
|
||||
"窗口缩放": "",
|
||||
"缩放方式": "",
|
||||
"打开关联页面": "",
|
||||
"API超时(秒)": "",
|
||||
"去除重复字符": "",
|
||||
"游戏内叠加层": "",
|
||||
@ -825,5 +824,6 @@
|
||||
"逐行匹配": "",
|
||||
"指定翻译器": "",
|
||||
"关于软件": "",
|
||||
"严格的": ""
|
||||
"严格的": "",
|
||||
"收藏夹": ""
|
||||
}
|
@ -34,8 +34,7 @@ Some buttons have two icons to indicate two different states. Some buttons only
|
||||
The actual meaning is to read text once from the clipboard regardless of the current default text input source and pass it on to the subsequent translation/tts/... process
|
||||
|
||||
1. #### <i class="fa fa-sitemap"></i> <i class="fa fa-icon fa-rotate-right"></i> Open Related Page
|
||||
It is equivalent to a small browser, mainly for creating a small favorites folder for each game. It will automatically query metadata for game-related pages such as vndb/bangumi/dlsite/, and you can also manually add some web pages associated with the game (such as game strategy pages) for easy viewing. It saves the trouble of creating and managing bookmarks in a browser.
|
||||
See [Useful Features](/zh/usefulsmalltools.md?id=Related Page, Convenient Management of Game-Related Web Pages)
|
||||
Able to create a small favorites folder for each game. It includes automatically query metadata for game-related pages such as vndb/bangumi/dlsite/, and you can also manually add some web pages associated with the game (such as game strategy pages) for easy viewing. It saves the trouble of creating and managing bookmarks in a browser.
|
||||
1. #### <i class="fa fa-futbol"></i> <i class="fa fa-icon fa-rotate-right"></i> Game Settings
|
||||
When using HOOK mode to connect to a game, or using OCR mode to bind a game window, you can directly open the current game's settings window through this button
|
||||
1. #### <i class="fa fa-mouse-pointer"></i> <i class="btnstatus2 fa fa-mouse-pointer"></i> Mouse Through Window
|
||||
|
@ -29,11 +29,3 @@ The gallery automatically includes images downloaded from the web based on metad
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/3.png)
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/8.png)
|
||||
|
||||
#### Associated Pages, Convenient Management of Game-related Web Pages
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/5.png)
|
||||
|
||||
Equivalent to a small browser, mainly allowing you to create a small bookmark for each game. It automatically queries metadata to collect game pages from vndb/bangumi/dlsite/etc., and you can manually add some web pages related to this game (e.g., game strategy web pages, in addition to using memos, you can also use this function to collect them), making it convenient to view. It saves the trouble of creating and managing bookmarks in the browser.
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/7.png)
|
@ -35,8 +35,7 @@
|
||||
Фактически означает, что независимо от текущего источника текстового ввода, с буфера обмена будет прочитан текст один раз и передан в последующий процесс перевода/TTS/...
|
||||
|
||||
1. #### <i class="fa fa-sitemap"></i> <i class="fa fa-icon fa-rotate-right"></i> Открыть связанную страницу
|
||||
Это эквивалент небольшому браузеру, который в основном предназначен для создания отдельных закладок для каждой игры. Автоматически ищет метаданные для страниц с коллекцией игр на vndb/bangumi/dlsite/ и т.д., также можно вручную добавить некоторые веб-страницы, связанные с этой игрой (например, веб-страницы с гайдами по игре, помимо использования блокнота, можно использовать эту функцию для хранения закладок), что облегчает просмотр. Избавляет от необходимости создавать закладки в браузере и управлять ими.
|
||||
Подробнее в разделе [Полезные функции](/ru/usefulsmalltools.md?id=Связанные_страницы,_удобное_управление_веб-страницами_связанными_с_игрой)
|
||||
Который в основном предназначен для создания отдельных закладок для каждой игры. Автоматически ищет метаданные для страниц с коллекцией игр на vndb/bangumi/dlsite/ и т.д., также можно вручную добавить некоторые веб-страницы, связанные с этой игрой (например, веб-страницы с гайдами по игре, помимо использования блокнота, можно использовать эту функцию для хранения закладок), что облегчает просмотр. Избавляет от необходимости создавать закладки в браузере и управлять ими.
|
||||
1. #### <i class="fa fa-futbol"></i> <i class="fa fa-icon fa-rotate-right"></i> Настройки игры
|
||||
При использовании режима HOOK для подключения к игре или привязке окна игры в режиме OCR, можно использовать эту кнопку для прямого открытия окна настроек текущей игры
|
||||
1. #### <i class="fa fa-mouse-pointer"></i> <i class="btnstatus2 fa fa-mouse-pointer"></i> Прозрачность окна мыши
|
||||
|
@ -29,11 +29,3 @@
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/3.png)
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/8.png)
|
||||
|
||||
#### Связанные страницы, удобная учетная игра-related веб-страниц
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/5.png)
|
||||
|
||||
Это аналог небольшого браузера, который позволяет для каждой игры создать отдельную коллекцию закладок. Автоматически собирает страницы с метаданными игр vndb/bangumi/dlsite/ и т. д., также можно вручную добавить некоторые веб-страницы, связанные с игрой (например, веб-страницы с гайдами по игре, помимо использования блокнота, можно использовать эту функцию для хранения закладок), что облегчает просмотр. Избавляет от необходимости создавать закладки в браузере и управлять ими.
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/7.png)
|
@ -34,9 +34,8 @@
|
||||
1. #### <i class="fa fa-file"></i> <i class="fa fa-icon fa-rotate-right"></i> 读取剪贴板
|
||||
这个的实际意义是,不管当前的默认文本输入源是什么,都从剪贴板读取一次文本,并传给之后的翻译/tts/...流程
|
||||
|
||||
1. #### <i class="fa fa-sitemap"></i> <i class="fa fa-icon fa-rotate-right"></i> 打开关联页面
|
||||
相当于一个小浏览器,主要是可以为每个游戏,单独创建一个小的收藏夹。会自动查询元数据收藏游戏的vndb/bangumi/dlsite/等页面,也可以手动再添加一些和这个游戏关联的网页进去(例如游戏攻略的网页,除了用备忘录外,也可以用这个功能进行收藏),方便查看。免去了在浏览器里创建收藏夹进行管理的麻烦。
|
||||
详见[实用功能](/zh/usefulsmalltools.md?id=关联页面,便捷管理游戏相关网页)
|
||||
1. #### <i class="fa fa-heart"></i> <i class="fa fa-icon fa-rotate-right"></i> 收藏夹
|
||||
可以为每个游戏,单独创建一个小的收藏夹。会包含自动查询元数据收藏游戏的vndb/bangumi/dlsite/等页面,也可以手动再添加一些和这个游戏关联的网页进去(例如游戏攻略的网页,除了用备忘录外,也可以用这个功能进行收藏),方便查看。免去了在浏览器里创建收藏夹进行管理的麻烦。
|
||||
1. #### <i class="fa fa-futbol"></i> <i class="fa fa-icon fa-rotate-right"></i> 游戏设置
|
||||
当使用HOOK模式连接到游戏,或使用OCR模式绑定游戏窗口后,则可以通过这个按钮直接打开当前游戏的设置窗口
|
||||
1. #### <i class="fa fa-mouse-pointer"></i> <i class="btnstatus2 fa fa-mouse-pointer"></i> 鼠标穿透窗口
|
||||
|
@ -29,11 +29,3 @@
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/3.png)
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/8.png)
|
||||
|
||||
#### 关联页面,便捷管理游戏相关网页
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/5.png)
|
||||
|
||||
相当于一个小浏览器,主要是可以为每个游戏,单独创建一个小的收藏夹。会自动查询元数据收藏游戏的vndb/bangumi/dlsite/等页面,也可以手动再添加一些和这个游戏关联的网页进去(例如游戏攻略的网页,除了用备忘录外,也可以用这个功能进行收藏),方便查看。免去了在浏览器里创建收藏夹进行管理的麻烦。
|
||||
|
||||
![img](https://image.lunatranslator.org/zh/usefulsmalltools/7.png)
|
||||
|
@ -29,7 +29,7 @@ include(generate_product_version)
|
||||
|
||||
set(VERSION_MAJOR 5)
|
||||
set(VERSION_MINOR 38)
|
||||
set(VERSION_PATCH 9)
|
||||
set(VERSION_PATCH 10)
|
||||
|
||||
add_library(pch pch.cpp)
|
||||
target_precompile_headers(pch PUBLIC pch.h)
|
||||
|
Loading…
x
Reference in New Issue
Block a user