diff --git a/LunaTranslator/LunaTranslator/LunaTranslator.py b/LunaTranslator/LunaTranslator/LunaTranslator.py index b1dabd67..0cc83deb 100644 --- a/LunaTranslator/LunaTranslator/LunaTranslator.py +++ b/LunaTranslator/LunaTranslator/LunaTranslator.py @@ -451,16 +451,22 @@ class MAINUI: # print_exc() self.readcurrent() + def ttsrepair(self, text, usedict): + if usedict["tts_repair"]: + text = self.parsemayberegexreplace(usedict["tts_repair_regex"], text) + return text + def readcurrent(self, force=False): try: if force or globalconfig["autoread"]: - if globalconfig["ttscommon"]["tts_repair"]: - text = self.parsemayberegexreplace( - globalconfig["ttscommon"]["tts_repair_regex"], self.currentread + text = self.ttsrepair(self.currentread, globalconfig["ttscommon"]) + try: + text = self.ttsrepair( + text, savehook_new_data[self.textsource.pname] ) - else: - text = self.currentread - self.reader.read(text) + except: + print_exc() + self.reader.read(text, force) except: print_exc() diff --git a/LunaTranslator/LunaTranslator/gui/dialog_savedgame.py b/LunaTranslator/LunaTranslator/gui/dialog_savedgame.py index c12fa00c..f374aab1 100644 --- a/LunaTranslator/LunaTranslator/gui/dialog_savedgame.py +++ b/LunaTranslator/LunaTranslator/gui/dialog_savedgame.py @@ -58,6 +58,7 @@ from myutils.utils import checkifnewgame from myutils.proxy import getproxy from gui.usefulwidget import yuitsu_switch, saveposwindow, getboxlayout from myutils.vndb import parsehtmlmethod +from gui.inputdialog import noundictconfigdialog1 class ItemWidget(QWidget): @@ -691,10 +692,47 @@ class dialog_setting_game(QDialog): methodtab = QTabWidget() methodtab.addTab(self.gethooktab(exepath), "HOOK") methodtab.addTab(self.getpretranstab(exepath), "预翻译") + methodtab.addTab(self.getttssetting(exepath), "语音") formLayout.addWidget(methodtab) self.show() + def getttssetting(self, exepath): + _w = QWidget() + formLayout = QVBoxLayout() + formLayout.setAlignment(Qt.AlignTop) + _w.setLayout(formLayout) + + edit = QLineEdit(savehook_new_data[exepath]["allow_tts_auto_names"]) + edit.textChanged.connect( + lambda x: savehook_new_data[exepath].__setitem__("allow_tts_auto_names", x) + ) + formLayout.addLayout( + getboxlayout([QLabel(_TR("禁止自动朗读的人名(以|分隔多个)")), edit]) + ) + formLayout.addLayout( + getboxlayout( + [ + QLabel(_TR("语音修正")), + getsimpleswitch(savehook_new_data[exepath], "tts_repair"), + getcolorbutton( + globalconfig, + "", + callback=lambda x: noundictconfigdialog1( + self, + savehook_new_data[exepath], + "tts_repair_regex", + "语音修正", + ["正则", "原文", "替换"], + ), + icon="fa.gear", + constcolor="#FF69B4", + ), + ] + ) + ) + return _w + def getpretranstab(self, exepath): _w = QWidget() formLayout = QVBoxLayout() @@ -813,16 +851,6 @@ class dialog_setting_game(QDialog): ] ) ) - if globalconfig["allow_set_text_name"]: - edit = QLineEdit(savehook_new_data[exepath]["allow_tts_auto_names"]) - edit.textChanged.connect( - lambda x: savehook_new_data[exepath].__setitem__( - "allow_tts_auto_names", x - ) - ) - formLayout.addLayout( - getboxlayout([QLabel(_TR("禁止自动朗读的人名(以|分隔多个)")), edit]) - ) return _w def clicked2(self): diff --git a/LunaTranslator/LunaTranslator/gui/settin.py b/LunaTranslator/LunaTranslator/gui/settin.py index ba967d5e..446002d2 100644 --- a/LunaTranslator/LunaTranslator/gui/settin.py +++ b/LunaTranslator/LunaTranslator/gui/settin.py @@ -8,11 +8,13 @@ from PyQt5.QtWidgets import ( QListWidget, QHBoxLayout, QListWidgetItem, + QMenu, + QAction, QApplication, ) from PyQt5.QtGui import QResizeEvent from PyQt5.QtWidgets import QTabWidget -import qtawesome, darkdetect, ctypes +import qtawesome, darkdetect, gobject import functools from traceback import print_exc from myutils.config import globalconfig, _TR @@ -29,6 +31,7 @@ from gui.setting_proxy import setTab_proxy from gui.settingpage7 import setTab7, settab7direct from gui.settingpage_about import setTab_about, setTab_about_dicrect from gui.usefulwidget import closeashidewindow +from myutils.hwnd import darkchange class gridwidget(QWidget): @@ -37,7 +40,7 @@ class gridwidget(QWidget): class Settin(closeashidewindow): voicelistsignal = pyqtSignal(list, int) - mp3playsignal = pyqtSignal(str, int) + mp3playsignal = pyqtSignal(str, int, bool) versiontextsignal = pyqtSignal(str) progresssignal = pyqtSignal(str, int) fontbigsmallsignal = pyqtSignal(int) @@ -124,7 +127,7 @@ class Settin(closeashidewindow): self.usevoice = 0 self.isfirstshow = True - + self.inittray() setTabOne_direct(self) settab2d(self) settab7direct(self) @@ -136,6 +139,26 @@ class Settin(closeashidewindow): self.setstylesheet() + def inittray(self): + + showAction = QAction( + _TR("&显示"), + self, + triggered=gobject.baseobject.translation_ui.show_and_enableautohide, + ) + settingAction = QAction( + _TR("&设置"), + self, + triggered=lambda: gobject.baseobject.settin_ui.showsignal.emit(), + ) + quitAction = QAction(_TR("&退出"), self, triggered=self.close) + self.trayMenu = QMenu(self) + self.trayMenu.addAction(showAction) + self.trayMenu.addAction(settingAction) + self.trayMenu.addSeparator() + self.trayMenu.addAction(quitAction) + gobject.baseobject.translation_ui.tray.setContextMenu(self.trayMenu) + def opensolvetextfun(self): self.show() self.tab_widget.setCurrentIndex(3) @@ -219,34 +242,18 @@ class Settin(closeashidewindow): dark = darkdetect.isDark() darklight = ["light", "dark"][dark] - top_level_widgets = QApplication.topLevelWidgets() - - def ChangeDWMAttrib(hWnd: int, attrib: int, color) -> None: - try: - ctypes.windll.dwmapi.DwmSetWindowAttribute( - hWnd, attrib, ctypes.byref(color), ctypes.sizeof(ctypes.c_int) - ) - except: - pass - - def darkchange(hwnd): - if dark: - ChangeDWMAttrib(hwnd, 19, ctypes.c_int(1)) - ChangeDWMAttrib(hwnd, 20, ctypes.c_int(1)) - else: - ChangeDWMAttrib(hwnd, 19, ctypes.c_int(0)) - ChangeDWMAttrib(hwnd, 20, ctypes.c_int(0)) - class WindowEventFilter(QObject): def eventFilter(self, obj, event): - if event.type() == QEvent.Type.WindowTitleChange: - darkchange(int(obj.winId())) + if event.type() == QEvent.Type.WinIdChange: + hwnd = obj.winId() + if hwnd: # window create/destroy,when destroy winId is None + darkchange(int(obj.winId()), dark) return False - self.__filter = WindowEventFilter() + self.__filter = WindowEventFilter() # keep ref QApplication.instance().installEventFilter(self.__filter) - for widget in top_level_widgets: - darkchange(int(widget.winId())) + for widget in QApplication.topLevelWidgets(): + darkchange(int(widget.winId()), dark) try: idx = globalconfig[darklight + "theme"] - int(not dark) diff --git a/LunaTranslator/LunaTranslator/gui/settingpage_tts.py b/LunaTranslator/LunaTranslator/gui/settingpage_tts.py index dcbac56b..d87736df 100644 --- a/LunaTranslator/LunaTranslator/gui/settingpage_tts.py +++ b/LunaTranslator/LunaTranslator/gui/settingpage_tts.py @@ -101,6 +101,7 @@ def setTab5lz(self): (getspinbox(0, 100, globalconfig["ttscommon"], "volume"), 3), ], [("自动朗读", 6), (getsimpleswitch(globalconfig, "autoread"), 1)], + [("不被打断", 6), (getsimpleswitch(globalconfig, "ttsnointerrupt"), 1)], [ ("朗读原文", 6), (getsimpleswitch(globalconfig, "read_raw"), 1), diff --git a/LunaTranslator/LunaTranslator/gui/showword.py b/LunaTranslator/LunaTranslator/gui/showword.py index fd5e8584..567a87a7 100644 --- a/LunaTranslator/LunaTranslator/gui/showword.py +++ b/LunaTranslator/LunaTranslator/gui/showword.py @@ -100,7 +100,7 @@ class searchwordW(closeashidewindow): def langdu(self): if gobject.baseobject.reader: - gobject.baseobject.reader.read(self.searchtext.text()) + gobject.baseobject.reader.read(self.searchtext.text(), True) def getnewsentence(self, sentence): self.showNormal() diff --git a/LunaTranslator/LunaTranslator/gui/translatorUI.py b/LunaTranslator/LunaTranslator/gui/translatorUI.py index 56f54f72..5284e558 100644 --- a/LunaTranslator/LunaTranslator/gui/translatorUI.py +++ b/LunaTranslator/LunaTranslator/gui/translatorUI.py @@ -531,28 +531,8 @@ class QUnFrameWindow(resizableframeless): if self.isfirstshow: self.showline(clear=True, text=_TR("欢迎使用"), origin=False) - showAction = QAction( - _TR("&显示"), self, triggered=self.show_and_enableautohide - ) - settingAction = QAction( - _TR("&设置"), - self, - triggered=lambda: gobject.baseobject.settin_ui.showsignal.emit(), - ) - quitAction = QAction(_TR("&退出"), self, triggered=self.close) - self.tray.activated.connect(self.leftclicktray) - # 创建菜单对象 - self.trayMenu = QMenu(self) - # 将动作对象添加到菜单 - self.trayMenu.addAction(showAction) - self.trayMenu.addAction(settingAction) - # 增加分割线 - self.trayMenu.addSeparator() - self.trayMenu.addAction(quitAction) - # 将菜单栏加入到右键按钮中 - self.tray.setContextMenu(self.trayMenu) self.tray.show() windows.SetForegroundWindow(int(self.winId())) self.isfirstshow = False diff --git a/LunaTranslator/LunaTranslator/myutils/config.py b/LunaTranslator/LunaTranslator/myutils/config.py index 9409103c..f1c6073c 100644 --- a/LunaTranslator/LunaTranslator/myutils/config.py +++ b/LunaTranslator/LunaTranslator/myutils/config.py @@ -74,6 +74,8 @@ def getdefaultsavehook(gamepath, title=None): "removeuseless": False, "codepage_index": 0, "allow_tts_auto_names": "", + "tts_repair": False, + "tts_repair_regex": [], "hooktypeasname": {}, "use_saved_text_process": False, "searchnoresulttime": 0, diff --git a/LunaTranslator/LunaTranslator/myutils/hwnd.py b/LunaTranslator/LunaTranslator/myutils/hwnd.py index 9f0151b3..6390e74d 100644 --- a/LunaTranslator/LunaTranslator/myutils/hwnd.py +++ b/LunaTranslator/LunaTranslator/myutils/hwnd.py @@ -2,7 +2,7 @@ import windows import threading from PyQt5.QtGui import QPixmap, QColor, QIcon from PyQt5.QtWidgets import QApplication -import gobject +import gobject, ctypes import os, subprocess import time, winrtutils, winsharedutils, hashlib from myutils.wrapper import threader @@ -338,3 +338,44 @@ def showintab(hwnd, show): style_ex &= ~windows.WS_EX_APPWINDOW style_ex |= windows.WS_EX_TOOLWINDOW windows.SetWindowLong(hwnd, windows.GWL_EXSTYLE, style_ex) + + +def darkchange(hwnd, dark): + def ChangeDWMAttrib(hWnd: int, attrib: int, color) -> None: + try: + ctypes.windll.dwmapi.DwmSetWindowAttribute( + hWnd, attrib, ctypes.byref(color), ctypes.sizeof(ctypes.c_int) + ) + except: + pass + + def systemmenu(mode): + try: + # https://stackoverflow.com/questions/53501268/win10-dark-theme-how-to-use-in-winapi + # https://gist.github.com/rounk-ctrl/b04e5622e30e0d62956870d5c22b7017 + LoadLibrary = ctypes.windll.Kernel32.LoadLibraryW + LoadLibrary.argtypes = (ctypes.c_wchar_p,) + LoadLibrary.restype = ctypes.c_void_p + GetProcAddress = ctypes.windll.Kernel32.GetProcAddress + GetProcAddress.argtypes = ctypes.c_void_p, ctypes.c_void_p + GetProcAddress.restype = ctypes.c_void_p + uxtheme = LoadLibrary("uxtheme.dll") + SetPreferredAppMode = GetProcAddress(uxtheme, 135) + FlushMenuThemes = GetProcAddress(uxtheme, 136) + SetPreferredAppMode = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_int)( + SetPreferredAppMode + ) + FlushMenuThemes = ctypes.CFUNCTYPE(None)(FlushMenuThemes) + SetPreferredAppMode(mode) + FlushMenuThemes() + except: + pass + + if dark: + ChangeDWMAttrib(hwnd, 19, ctypes.c_int(1)) + ChangeDWMAttrib(hwnd, 20, ctypes.c_int(1)) + systemmenu(2) + else: + ChangeDWMAttrib(hwnd, 19, ctypes.c_int(0)) + ChangeDWMAttrib(hwnd, 20, ctypes.c_int(0)) + systemmenu(3) diff --git a/LunaTranslator/LunaTranslator/myutils/utils.py b/LunaTranslator/LunaTranslator/myutils/utils.py index 757a7ca2..a6a07e06 100644 --- a/LunaTranslator/LunaTranslator/myutils/utils.py +++ b/LunaTranslator/LunaTranslator/myutils/utils.py @@ -173,11 +173,42 @@ class wavmp3player: def __init__(self): self.i = 0 self.lastfile = None + self.tasks = None + self.lock = threading.Lock() + self.lock.acquire() + threading.Thread(target=self.dotasks).start() - def mp3playfunction(self, path, volume): - if os.path.exists(path) == False: - return - self._playsoundWin(path, volume) + def mp3playfunction(self, path, volume, force): + try: + self.tasks = (path, volume, force) + self.lock.release() + except: + pass + + def dotasks(self): + durationms = 0 + try: + while True: + self.lock.acquire() + task = self.tasks + self.tasks = None + if task is None: + continue + path, volume, force = task + + if os.path.exists(path) == False: + continue + durationms = self._playsoundWin(path, volume) + + if durationms and globalconfig["ttsnointerrupt"]: + while durationms > 0: + durationms -= 100 + time.sleep(0.1) + if self.tasks and self.tasks[-1]: + break + # time.sleep(durationms / 1000) + except: + print_exc() def _playsoundWin(self, sound, volume): try: @@ -193,6 +224,11 @@ class wavmp3player: sound, self.i ) ) + durationms = int( + windows.mciSendString( + "status lunatranslator_mci_{} length".format(self.i) + ) + ) windows.mciSendString( "setaudio lunatranslator_mci_{} volume to {}".format( self.i, volume * 10 @@ -200,7 +236,9 @@ class wavmp3player: ) windows.mciSendString(("play lunatranslator_mci_{}".format(self.i))) except: - pass + durationms = 0 + + return durationms def selectdebugfile(path): diff --git a/LunaTranslator/LunaTranslator/textsource/ocrtext.py b/LunaTranslator/LunaTranslator/textsource/ocrtext.py index 9c73b7dd..b278970f 100644 --- a/LunaTranslator/LunaTranslator/textsource/ocrtext.py +++ b/LunaTranslator/LunaTranslator/textsource/ocrtext.py @@ -51,7 +51,7 @@ class ocrtext(basetext): def newrangeadjustor(self): if len(self.range_ui) == 0 or globalconfig["multiregion"]: - self.range_ui.append(rangeadjust(gobject.baseobject.translation_ui)) + self.range_ui.append(rangeadjust(gobject.baseobject.settin_ui)) self.savelastimg.append(None) self.savelastrecimg.append(None) self.lastocrtime.append(0) diff --git a/LunaTranslator/LunaTranslator/tts/basettsclass.py b/LunaTranslator/LunaTranslator/tts/basettsclass.py index b576291c..81ba03db 100644 --- a/LunaTranslator/LunaTranslator/tts/basettsclass.py +++ b/LunaTranslator/LunaTranslator/tts/basettsclass.py @@ -50,7 +50,7 @@ class TTSbase: threading.Thread(target=_).start() - def read(self, content): + def read(self, content, force=False): if self.loadok == False: return @@ -67,6 +67,6 @@ class TTSbase: def _(): fname = self.speak(content, rate, voice, voice_index) if fname: - self.mp3playsignal.emit(fname, volume) + self.mp3playsignal.emit(fname, volume, force) threading.Thread(target=_).start() diff --git a/LunaTranslator/LunaTranslator/windows.py b/LunaTranslator/LunaTranslator/windows.py index 5b9d2e5c..614724ab 100644 --- a/LunaTranslator/LunaTranslator/windows.py +++ b/LunaTranslator/LunaTranslator/windows.py @@ -756,7 +756,10 @@ def mciSendString(s): _winmm = windll.winmm _mciSendStringW = _winmm.mciSendStringW _mciSendStringW.argtypes = c_wchar_p, c_wchar_p, c_uint, c_void_p - return _mciSendStringW(s, None, 0, None) + bf = create_unicode_buffer(1024) + if _mciSendStringW(s, bf, 1024, None) != 0: + return None + return bf.value # _RegOpenKeyExW=_Advapi32.RegOpenKeyExW diff --git a/LunaTranslator/files/defaultconfig/config.json b/LunaTranslator/files/defaultconfig/config.json index 9849179f..104606e7 100644 --- a/LunaTranslator/files/defaultconfig/config.json +++ b/LunaTranslator/files/defaultconfig/config.json @@ -130,6 +130,7 @@ "use_yapi":true, "showfanyi":true, "autoread": false, + "ttsnointerrupt":false, "show_fenci": false, "jiamingcolor": "black", "settingfonttype": "Arial", diff --git a/LunaTranslator/files/lang/ar.json b/LunaTranslator/files/lang/ar.json index 8b61d7ef..09cd7fee 100644 --- a/LunaTranslator/files/lang/ar.json +++ b/LunaTranslator/files/lang/ar.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "تحليل تأثير عند حفظ شفرة المصدر", "编译效果时将警告视为错误": "تحذير خطأ عند تجميع تأثير", "检测重复帧": "الكشف عن تكرار الإطار", - "启用动态检测统计": "يمكن الكشف عن الإحصاءات الحيوية" + "启用动态检测统计": "يمكن الكشف عن الإحصاءات الحيوية", + "不被打断": "لا يقاطع" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/cht.json b/LunaTranslator/files/lang/cht.json index 950224ff..1c3d3cd5 100644 --- a/LunaTranslator/files/lang/cht.json +++ b/LunaTranslator/files/lang/cht.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "解析效果時保存原始程式碼", "编译效果时将警告视为错误": "編譯效果時將警告視為錯誤", "检测重复帧": "檢測重複幀", - "启用动态检测统计": "啟用動態檢測統計" + "启用动态检测统计": "啟用動態檢測統計", + "不被打断": "不被打斷" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/en.json b/LunaTranslator/files/lang/en.json index 17020cef..ebcaad98 100644 --- a/LunaTranslator/files/lang/en.json +++ b/LunaTranslator/files/lang/en.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Save source code when parsing effects", "编译效果时将警告视为错误": "Treat warnings as errors when compiling effects", "检测重复帧": "Detect duplicate frames", - "启用动态检测统计": "Enable dynamic detection statistics" + "启用动态检测统计": "Enable dynamic detection statistics", + "不被打断": "Not interrupted" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/es.json b/LunaTranslator/files/lang/es.json index a3a3f38f..b02f2559 100644 --- a/LunaTranslator/files/lang/es.json +++ b/LunaTranslator/files/lang/es.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Guardar el código fuente al analizar el efecto", "编译效果时将警告视为错误": "Tratar la advertencia como un error al compilar el efecto", "检测重复帧": "Detección de cuadros duplicados", - "启用动态检测统计": "Activar estadísticas de detección dinámica" + "启用动态检测统计": "Activar estadísticas de detección dinámica", + "不被打断": "Sin ser interrumpido" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/fr.json b/LunaTranslator/files/lang/fr.json index 1275bfa7..cbbd49ce 100644 --- a/LunaTranslator/files/lang/fr.json +++ b/LunaTranslator/files/lang/fr.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Enregistrer le code source lors de l'analyse des effets", "编译效果时将警告视为错误": "Traiter les avertissements comme des erreurs lors de la compilation des effets", "检测重复帧": "Détection de trames répétitives", - "启用动态检测统计": "Activer les statistiques de détection dynamique" + "启用动态检测统计": "Activer les statistiques de détection dynamique", + "不被打断": "Ne pas être interrompu" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/it.json b/LunaTranslator/files/lang/it.json index 77dc52a6..7689df1e 100644 --- a/LunaTranslator/files/lang/it.json +++ b/LunaTranslator/files/lang/it.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Salva il codice sorgente durante l'analisi degli effetti", "编译效果时将警告视为错误": "Tratta gli avvisi come errori durante la compilazione degli effetti", "检测重复帧": "Rileva quadri duplicati", - "启用动态检测统计": "Abilita statistiche di rilevamento dinamico" + "启用动态检测统计": "Abilita statistiche di rilevamento dinamico", + "不被打断": "Non interrotto" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/ja.json b/LunaTranslator/files/lang/ja.json index 5b17ddc0..f4c2f91a 100644 --- a/LunaTranslator/files/lang/ja.json +++ b/LunaTranslator/files/lang/ja.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "効果解析時にソースコードを保存する", "编译效果时将警告视为错误": "効果のコンパイル時に警告をエラーとして扱う", "检测重复帧": "重複フレームの検出", - "启用动态检测统计": "動的検出統計の有効化" + "启用动态检测统计": "動的検出統計の有効化", + "不被打断": "中断されない" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/ko.json b/LunaTranslator/files/lang/ko.json index 6c2c8be4..218a8eee 100644 --- a/LunaTranslator/files/lang/ko.json +++ b/LunaTranslator/files/lang/ko.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "효과 확인 시 소스 코드 저장", "编译效果时将警告视为错误": "효과를 컴파일할 때 경고가 오류로 간주됨", "检测重复帧": "중복 프레임 체크", - "启用动态检测统计": "동적 검색 통계 사용" + "启用动态检测统计": "동적 검색 통계 사용", + "不被打断": "끊기지 않음" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/pl.json b/LunaTranslator/files/lang/pl.json index 4661cc46..bbc36bcf 100644 --- a/LunaTranslator/files/lang/pl.json +++ b/LunaTranslator/files/lang/pl.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Zapisz kod źródłowy podczas analizy efektów", "编译效果时将警告视为错误": "Traktuj ostrzeżenia jako błędy podczas kompilowania efektów", "检测重复帧": "Wykryj duplikaty klatek", - "启用动态检测统计": "Włącz dynamiczne statystyki wykrywania" + "启用动态检测统计": "Włącz dynamiczne statystyki wykrywania", + "不被打断": "Bez przerwy" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/ru.json b/LunaTranslator/files/lang/ru.json index fcf5f21a..a1e228c7 100644 --- a/LunaTranslator/files/lang/ru.json +++ b/LunaTranslator/files/lang/ru.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Сохранить исходный код при анализе эффектов", "编译效果时将警告视为错误": "Предупреждение считается ошибкой при компиляции", "检测重复帧": "Обнаружение повторяющихся кадров", - "启用动态检测统计": "Включить статистику динамического обнаружения" + "启用动态检测统计": "Включить статистику динамического обнаружения", + "不被打断": "Не прерывать." } \ No newline at end of file diff --git a/LunaTranslator/files/lang/th.json b/LunaTranslator/files/lang/th.json index 22b41dbe..c45eaf0b 100644 --- a/LunaTranslator/files/lang/th.json +++ b/LunaTranslator/files/lang/th.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "บันทึกซอร์สโค้ดเมื่อวิเคราะห์ผลกระทบ", "编译效果时将警告视为错误": "ถือว่าคำเตือนเป็นข้อผิดพลาดเมื่อรวบรวมเอฟเฟกต์", "检测重复帧": "ตรวจจับเฟรมที่ซ้ำกัน", - "启用动态检测统计": "เปิดใช้งานสถิติการตรวจจับแบบไดนามิก" + "启用动态检测统计": "เปิดใช้งานสถิติการตรวจจับแบบไดนามิก", + "不被打断": "ไม่ถูกขัดจังหวะ" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/tr.json b/LunaTranslator/files/lang/tr.json index 2ed9b343..36cb3f2f 100644 --- a/LunaTranslator/files/lang/tr.json +++ b/LunaTranslator/files/lang/tr.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Efektleri ayırıştığında kaynak kodu kaydet", "编译效果时将警告视为错误": "Efektleri birleştirirken uyarımları hata olarak tedavi edin", "检测重复帧": "Çiftleri keşfet", - "启用动态检测统计": "Dinamik tanıma istatistiklerini etkinleştir" + "启用动态检测统计": "Dinamik tanıma istatistiklerini etkinleştir", + "不被打断": "Bırakılmadı" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/uk.json b/LunaTranslator/files/lang/uk.json index 707dc37a..5507220f 100644 --- a/LunaTranslator/files/lang/uk.json +++ b/LunaTranslator/files/lang/uk.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Зберегти код джерела під час аналізу ефектів", "编译效果时将警告视为错误": "Вважати попередження помилками під час збирання ефектів", "检测重复帧": "Визначити дублікатні рамки", - "启用动态检测统计": "Увімкнути статистику динамічного виявлення" + "启用动态检测统计": "Увімкнути статистику динамічного виявлення", + "不被打断": "Не перервано" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/vi.json b/LunaTranslator/files/lang/vi.json index 7c7927d6..4d355e8e 100644 --- a/LunaTranslator/files/lang/vi.json +++ b/LunaTranslator/files/lang/vi.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "Lưu mã nguồn khi phân tích hiệu ứng", "编译效果时将警告视为错误": "Xem cảnh báo là lỗi khi biên dịch hiệu ứng", "检测重复帧": "Phát hiện các khung lặp lại", - "启用动态检测统计": "Bật thống kê phát hiện động" + "启用动态检测统计": "Bật thống kê phát hiện động", + "不被打断": "Không bị gián đoạn" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/zh.json b/LunaTranslator/files/lang/zh.json index b3f8bba6..1285d6b8 100644 --- a/LunaTranslator/files/lang/zh.json +++ b/LunaTranslator/files/lang/zh.json @@ -741,5 +741,6 @@ "解析效果时保存源代码": "", "编译效果时将警告视为错误": "", "检测重复帧": "", - "启用动态检测统计": "" + "启用动态检测统计": "", + "不被打断": "" } \ No newline at end of file