From 251835c2edb4de42516e1149e492177cc9cdf6d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=81=8D=E5=85=AE=E6=83=9A=E5=85=AE?= <101191390+HIllya51@users.noreply.github.com> Date: Sat, 22 Jun 2024 21:51:29 +0800 Subject: [PATCH] embed --- .../LunaTranslator/gui/selecthook.py | 258 +++++++++--------- .../LunaTranslator/gui/usefulwidget.py | 5 + .../LunaTranslator/textsource/texthook.py | 2 +- LunaTranslator/files/lang/ar.json | 5 +- LunaTranslator/files/lang/cht.json | 5 +- LunaTranslator/files/lang/en.json | 5 +- LunaTranslator/files/lang/es.json | 5 +- LunaTranslator/files/lang/fr.json | 5 +- LunaTranslator/files/lang/it.json | 5 +- LunaTranslator/files/lang/ja.json | 5 +- LunaTranslator/files/lang/ko.json | 5 +- LunaTranslator/files/lang/pl.json | 5 +- LunaTranslator/files/lang/ru.json | 5 +- LunaTranslator/files/lang/th.json | 5 +- LunaTranslator/files/lang/tr.json | 5 +- LunaTranslator/files/lang/uk.json | 5 +- LunaTranslator/files/lang/vi.json | 5 +- LunaTranslator/files/lang/zh.json | 5 +- 18 files changed, 163 insertions(+), 177 deletions(-) diff --git a/LunaTranslator/LunaTranslator/gui/selecthook.py b/LunaTranslator/LunaTranslator/gui/selecthook.py index 899efcf7..aefd1821 100644 --- a/LunaTranslator/LunaTranslator/gui/selecthook.py +++ b/LunaTranslator/LunaTranslator/gui/selecthook.py @@ -11,6 +11,7 @@ from gui.usefulwidget import ( getQMessageBox, dialog_showinfo, getsimplecombobox, + MySwitch, getsimpleswitch, textbrowappendandmovetoend, FocusSpin, @@ -367,7 +368,7 @@ class hookselect(closeashidewindow): addnewhooksignal = pyqtSignal(tuple, bool) getnewsentencesignal = pyqtSignal(str) sysmessagesignal = pyqtSignal(str) - changeprocessclearsignal = pyqtSignal() + changeprocessclearsignal = pyqtSignal(dict) removehooksignal = pyqtSignal(tuple) getfoundhooksignal = pyqtSignal(dict) update_item_new_line = pyqtSignal(tuple, str) @@ -389,7 +390,7 @@ class hookselect(closeashidewindow): return row = self.save.index(hook) output = output[:200].replace("\n", " ") - colidx = 2 + (gobject.baseobject.textsource.allow_set_text_name) + colidx = 2 + int(self.allow_set_text_name) + int(bool(self.embedablenum)) self.ttCombomodelmodel.item(row, colidx).setText(output) def removehook(self, key): @@ -398,8 +399,35 @@ class hookselect(closeashidewindow): self.ttCombomodelmodel.removeRow(self.save.index(key)) self.selectionbutton.pop(self.save.index(key)) self.save.remove(key) + self.solveifembedablenumdecreaseto0(key) - def changeprocessclear(self): + def solveifembedablenumdecreaseto0(self, key): + embedable = self.saveifembedable.pop(key) + if not embedable: + return + self.embedablenum -= 1 + if self.embedablenum > 0: + return + self.currentheader.pop(1 + int(self.allow_set_text_name)) + self.ttCombomodelmodel.removeColumn(1 + int(self.allow_set_text_name)) + self.ttCombomodelmodel.setHorizontalHeaderLabels(_TRL(self.currentheader)) + + def solveifembedablenumincreaseto1(self, key, isembedable): + self.saveifembedable[key] = isembedable + if not isembedable: + return + self.embedablenum += 1 + if self.embedablenum != 1: + return + + self.currentheader.insert(1 + int(self.allow_set_text_name), "内嵌") + self.ttCombomodelmodel.insertColumn(1 + int(self.allow_set_text_name), []) + self.ttCombomodelmodel.setHorizontalHeaderLabels(_TRL(self.currentheader)) + self.tttable.horizontalHeader().setSectionResizeMode( + 1 + int(self.allow_set_text_name), QHeaderView.ResizeMode.ResizeToContents + ) + + def changeprocessclear(self, config): # self.ttCombo.clear() self.ttCombomodelmodel.clear() self.save = [] @@ -409,45 +437,35 @@ class hookselect(closeashidewindow): self.typecombo = [] self.allres = OrderedDict() self.hidesearchhookbuttons() + self.currentheader = ["显示", "HOOK", "文本"] + self.allow_set_text_name = config["allow_set_text_name"] + self.saveifembedable = {} + if self.allow_set_text_name: + self.currentheader.insert(1, "类型") + self.embedablenum = 0 def addnewhook(self, key, select): hc, hn, tp = key + isembedable = hc[0] == "E" + if len(self.save) == 0: - if gobject.baseobject.textsource.allow_set_text_name: - self.ttCombomodelmodel.setHorizontalHeaderLabels( - _TRL(["显示", "类型", "HOOK", "文本"]) - ) + self.ttCombomodelmodel.setHorizontalHeaderLabels(_TRL(self.currentheader)) + self.tttable.horizontalHeader().setSectionResizeMode( + 0, QHeaderView.ResizeMode.ResizeToContents + ) + self.tttable.horizontalHeader().setSectionResizeMode( + len(self.currentheader) - 1, QHeaderView.ResizeMode.Interactive + ) + self.tttable.horizontalHeader().setSectionResizeMode( + len(self.currentheader) - 2, QHeaderView.ResizeMode.Interactive + ) + if self.allow_set_text_name: - self.tttable.horizontalHeader().setSectionResizeMode( - 2, QHeaderView.ResizeMode.Interactive - ) - self.tttable.horizontalHeader().setSectionResizeMode( - 3, QHeaderView.ResizeMode.Interactive - ) - - self.tttable.horizontalHeader().setSectionResizeMode( - 0, QHeaderView.ResizeMode.ResizeToContents - ) self.tttable.horizontalHeader().setSectionResizeMode( 1, QHeaderView.ResizeMode.ResizeToContents ) - else: - self.ttCombomodelmodel.setHorizontalHeaderLabels( - _TRL(["选择", "HOOK", "文本"]) - ) - - self.tttable.horizontalHeader().setSectionResizeMode( - 1, QHeaderView.ResizeMode.Interactive - ) - self.tttable.horizontalHeader().setSectionResizeMode( - 2, QHeaderView.ResizeMode.Interactive - ) - - self.tttable.horizontalHeader().setSectionResizeMode( - 0, QHeaderView.ResizeMode.ResizeToContents - ) - - if hc[0] == "E": + self.solveifembedablenumincreaseto1(key, isembedable) + if isembedable: self.selectionbutton.insert( 0, getsimpleswitch( @@ -464,111 +482,91 @@ class hookselect(closeashidewindow): {1: False}, 1, callback=functools.partial(self.accept, key) ) ) - if gobject.baseobject.textsource.allow_set_text_name: - - self.typecombo.insert( - rown, - getsimplecombobox( - _TRL(["文本", "人名"]), - gobject.baseobject.textsource.hooktypecollecter, - key, - callback=functools.partial( - savehook_new_data[gobject.baseobject.textsource.pname][ - "hooktypeasname" - ].__setitem__, - json.dumps(gobject.baseobject.textsource.serialkey(key)), - ), - ), - ) - self.ttCombomodelmodel.insertRow( - rown, - [ - QStandardItem(), - QStandardItem(), - QStandardItem("%s %s %x:%x" % (hn, hc, tp.ctx, tp.ctx2)), - QStandardItem(), - ], - ) - self.tttable.setIndexWidget( - self.ttCombomodelmodel.index(rown, 1), self.typecombo[rown] - ) - else: - self.ttCombomodelmodel.insertRow( - rown, - [ - QStandardItem(), - QStandardItem("%s %s %x:%x" % (hn, hc, tp.ctx, tp.ctx2)), - QStandardItem(), - ], - ) + items = [ + QStandardItem(), + QStandardItem("%s %s %x:%x" % (hn, hc, tp.ctx, tp.ctx2)), + QStandardItem(), + ] + if self.allow_set_text_name: + items.insert(1, QStandardItem()) + if self.embedablenum: + items.insert(1 + int(self.allow_set_text_name), QStandardItem()) + self.ttCombomodelmodel.insertRow(rown, items) if select: self.selectionbutton[rown].click() self.tttable.setIndexWidget( self.ttCombomodelmodel.index(rown, 0), self.selectionbutton[rown] ) - if hc[0] == "E": - embedw, hlay = getformlayoutw(cls=QHBoxLayout) - label = QLabel() - hlay.addWidget(label) - embedw.setStyleSheet("background-color: rgba(255, 255, 255, 0)") - checkbtn = QPushButton() - checkbtn.setSizePolicy( - QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred - ) + if isembedable: + checkbtn = MySwitch(sign=self._check_tp_using(key)) - def _t(tp): - _isusing = gobject.baseobject.textsource.checkisusingembed( - tp.addr, tp.ctx, tp.ctx2 - ) - if _isusing: - _text = "取消内嵌翻译" + checkbtn.clicked.connect(functools.partial(self._embedbtnfn, key)) - if hn[:8] == "UserHook": - needinserthookcode = savehook_new_data[ - gobject.baseobject.textsource.pname - ]["needinserthookcode"] - needinserthookcode = list(set(needinserthookcode + [hc])) - savehook_new_data[gobject.baseobject.textsource.pname].update( - {"needinserthookcode": needinserthookcode} - ) - else: - pass - else: - _text = "使用内嵌翻译" - checkbtn.setText("【" + _TR(_text) + "】") - return _isusing - - _t(tp) - - def _c(hc, tp, _): - gobject.baseobject.textsource.useembed( - tp.addr, tp.ctx, tp.ctx2, not _t(tp) - ) - _use = _t(tp) - if _use: - savehook_new_data[gobject.baseobject.textsource.pname][ - "embedablehook" - ].append([hc, tp.addr, tp.ctx, tp.ctx2]) - else: - save = [] - for _ in savehook_new_data[gobject.baseobject.textsource.pname][ - "embedablehook" - ]: - hc, ad, c1, c2 = _ - if (hc, 0, c1, c2) == (hc, 0, tp.ctx, tp.ctx2): - save.append(_) - for _ in save: - savehook_new_data[gobject.baseobject.textsource.pname][ - "embedablehook" - ].remove(_) - - checkbtn.clicked.connect(functools.partial(_c, hc, tp)) - hlay.addWidget(checkbtn) - colidx = 2 + (gobject.baseobject.textsource.allow_set_text_name) self.tttable.setIndexWidget( - self.ttCombomodelmodel.index(rown, colidx), embedw + self.ttCombomodelmodel.index(rown, 1 + int(self.allow_set_text_name)), + checkbtn, ) + if self.allow_set_text_name: + typecombo = getsimplecombobox( + _TRL(["文本", "人名"]), + gobject.baseobject.textsource.hooktypecollecter, + key, + callback=functools.partial( + savehook_new_data[gobject.baseobject.textsource.pname][ + "hooktypeasname" + ].__setitem__, + json.dumps(gobject.baseobject.textsource.serialkey(key)), + ), + ) + self.typecombo.insert(rown, typecombo) + self.tttable.setIndexWidget( + self.ttCombomodelmodel.index(rown, 1), + typecombo, + ) + self.tttable.setRowHeight( + rown, max(self.tttable.rowHeight(rown), typecombo.height()) + ) + + def _check_tp_using(self, key): + hc, hn, tp = key + _isusing = gobject.baseobject.textsource.checkisusingembed( + tp.addr, tp.ctx, tp.ctx2 + ) + if _isusing: + + if hn[:8] == "UserHook": + needinserthookcode = savehook_new_data[ + gobject.baseobject.textsource.pname + ]["needinserthookcode"] + needinserthookcode = list(set(needinserthookcode + [hc])) + savehook_new_data[gobject.baseobject.textsource.pname].update( + {"needinserthookcode": needinserthookcode} + ) + else: + pass + return _isusing + + def _embedbtnfn(self, key, _): + hc, hn, tp = key + gobject.baseobject.textsource.useembed(tp.addr, tp.ctx, tp.ctx2, _) + _use = self._check_tp_using(key) + if _use: + savehook_new_data[gobject.baseobject.textsource.pname][ + "embedablehook" + ].append([hc, tp.addr, tp.ctx, tp.ctx2]) + else: + save = [] + for _ in savehook_new_data[gobject.baseobject.textsource.pname][ + "embedablehook" + ]: + hc, ad, c1, c2 = _ + if (hc, 0, c1, c2) == (hc, 0, tp.ctx, tp.ctx2): + save.append(_) + for _ in save: + savehook_new_data[gobject.baseobject.textsource.pname][ + "embedablehook" + ].remove(_) def setupUi(self): self.widget = QWidget() @@ -684,8 +682,6 @@ class hookselect(closeashidewindow): self.tabwidget.addTab(self.textOutput, _TR("文本")) self.tabwidget.addTab(self.sysOutput, _TR("系统")) - self.changeprocessclear() - def showmenu(self, p: QPoint): r = self.tttable.currentIndex().row() if r < 0: diff --git a/LunaTranslator/LunaTranslator/gui/usefulwidget.py b/LunaTranslator/LunaTranslator/gui/usefulwidget.py index aad4c926..c0f7959e 100644 --- a/LunaTranslator/LunaTranslator/gui/usefulwidget.py +++ b/LunaTranslator/LunaTranslator/gui/usefulwidget.py @@ -193,6 +193,11 @@ class closeashidewindow(saveposwindow): class MySwitch(QWidget): clicked = pyqtSignal(bool) + def event(self, a0: QEvent) -> bool: + if a0.type() == QEvent.Type.MouseButtonDblClick: + return True + return super().event(a0) + def click(self): self.setChecked(not self.checked) self.clicked.emit(self.checked) diff --git a/LunaTranslator/LunaTranslator/textsource/texthook.py b/LunaTranslator/LunaTranslator/textsource/texthook.py index 9df83000..b59c9de0 100644 --- a/LunaTranslator/LunaTranslator/textsource/texthook.py +++ b/LunaTranslator/LunaTranslator/textsource/texthook.py @@ -131,7 +131,7 @@ class texthook(basetext): self.needinserthookcode = needinserthookcode self.removedaddress = [] - gobject.baseobject.hookselectdialog.changeprocessclearsignal.emit() + gobject.baseobject.hookselectdialog.changeprocessclearsignal.emit(self.config) if ( len(autostarthookcode) == 0 and len(savehook_new_data[self.pname]["embedablehook"]) == 0 diff --git a/LunaTranslator/files/lang/ar.json b/LunaTranslator/files/lang/ar.json index 68c3b353..caa61257 100644 --- a/LunaTranslator/files/lang/ar.json +++ b/LunaTranslator/files/lang/ar.json @@ -544,8 +544,6 @@ "通用文字识别 API": "المعهد العالمي التعرف على الحروف", "有道图片翻译": "ترجمة الصور", "图片翻译 API": "ترجمة الصور API", - "取消内嵌翻译": "إلغاء جزءا لا يتجزأ من الترجمة", - "使用内嵌翻译": "جزءا لا يتجزأ من الترجمة", "内嵌翻译": "جزءا لا يتجزأ من الترجمة", "隐藏不存在的游戏": "إخفاء لعبة غير موجودة", "宽度": "عرض", @@ -810,5 +808,6 @@ "固定值": "قيمة ثابتة", "可选取的": "قابل للاختيار", "投影距离": "المسافة المتوقعة", - "反转颜色": "عكس اللون" + "反转颜色": "عكس اللون", + "内嵌": "جزءا لا يتجزأ من" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/cht.json b/LunaTranslator/files/lang/cht.json index 84f65e29..eabe1192 100644 --- a/LunaTranslator/files/lang/cht.json +++ b/LunaTranslator/files/lang/cht.json @@ -544,8 +544,6 @@ "通用文字识别 API": "通用文字識別API", "有道图片翻译": "有道圖片翻譯", "图片翻译 API": "圖片翻譯API", - "取消内嵌翻译": "取消內嵌翻譯", - "使用内嵌翻译": "使用內嵌翻譯", "内嵌翻译": "內嵌翻譯", "隐藏不存在的游戏": "隱藏不存在的遊戲", "宽度": "寬度", @@ -810,5 +808,6 @@ "固定值": "固定值", "可选取的": "可選取的", "投影距离": "投影距離", - "反转颜色": "反轉顏色" + "反转颜色": "反轉顏色", + "内嵌": "內嵌" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/en.json b/LunaTranslator/files/lang/en.json index dec2de5a..cebac695 100644 --- a/LunaTranslator/files/lang/en.json +++ b/LunaTranslator/files/lang/en.json @@ -544,8 +544,6 @@ "通用文字识别 API": "Universal Text Recognition API", "有道图片翻译": "Translation of Youdao Pictures", "图片翻译 API": "Image Translation API", - "取消内嵌翻译": "Cancel embedded translation", - "使用内嵌翻译": "Using embedded translation", "内嵌翻译": "Embedded translation", "隐藏不存在的游戏": "Hide games that do not exist", "宽度": "width", @@ -810,5 +808,6 @@ "固定值": "Fixed value", "可选取的": "Selectable", "投影距离": "Projection distance", - "反转颜色": "invert colors" + "反转颜色": "invert colors", + "内嵌": "Embedded" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/es.json b/LunaTranslator/files/lang/es.json index f6d6ff9f..715a7e82 100644 --- a/LunaTranslator/files/lang/es.json +++ b/LunaTranslator/files/lang/es.json @@ -544,8 +544,6 @@ "通用文字识别 API": "API universal de reconocimiento de texto", "有道图片翻译": "Traducción de imágenes de youdao", "图片翻译 API": "API de traducción de imágenes", - "取消内嵌翻译": "Cancelar la traducción incorporada", - "使用内嵌翻译": "Usar traducción incorporada", "内嵌翻译": "Traducción incorporada", "隐藏不存在的游戏": "Ocultar juegos que no existen", "宽度": "Ancho", @@ -810,5 +808,6 @@ "固定值": "Valor fijo", "可选取的": "Seleccionable", "投影距离": "Distancia de proyección", - "反转颜色": "Invertir color" + "反转颜色": "Invertir color", + "内嵌": "Incrustación" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/fr.json b/LunaTranslator/files/lang/fr.json index 064a2e66..8dbcfba1 100644 --- a/LunaTranslator/files/lang/fr.json +++ b/LunaTranslator/files/lang/fr.json @@ -544,8 +544,6 @@ "通用文字识别 API": "API de reconnaissance de texte universelle", "有道图片翻译": "Traduction d'images", "图片翻译 API": "API de traduction d'images", - "取消内嵌翻译": "Annuler la traduction intégrée", - "使用内嵌翻译": "Utiliser la traduction intégrée", "内嵌翻译": "Traduction intégrée", "隐藏不存在的游戏": "Cacher les jeux qui n'existent pas", "宽度": "Largeur", @@ -810,5 +808,6 @@ "固定值": "Valeur fixe", "可选取的": "Sélectionnable", "投影距离": "Distance de projection", - "反转颜色": "Inverser les couleurs" + "反转颜色": "Inverser les couleurs", + "内嵌": "Intégré" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/it.json b/LunaTranslator/files/lang/it.json index 386dc8d3..d6449a5c 100644 --- a/LunaTranslator/files/lang/it.json +++ b/LunaTranslator/files/lang/it.json @@ -544,8 +544,6 @@ "通用文字识别 API": "API universale per il riconoscimento del testo", "有道图片翻译": "Traduzione di Youdao Pictures", "图片翻译 API": "API di traduzione immagine", - "取消内嵌翻译": "Annulla traduzione incorporata", - "使用内嵌翻译": "Uso della traduzione integrata", "内嵌翻译": "Traduzione integrata", "隐藏不存在的游戏": "Nascondi giochi che non esistono", "宽度": "larghezza", @@ -810,5 +808,6 @@ "固定值": "Valore fisso", "可选取的": "Selezionabile", "投影距离": "Distanza di proiezione", - "反转颜色": "inverti colori" + "反转颜色": "inverti colori", + "内嵌": "Incorporato" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/ja.json b/LunaTranslator/files/lang/ja.json index 740a2fc4..7b348534 100644 --- a/LunaTranslator/files/lang/ja.json +++ b/LunaTranslator/files/lang/ja.json @@ -544,8 +544,6 @@ "通用文字识别 API": "共通文字認識API", "有道图片翻译": "有道画像翻訳", "图片翻译 API": "画像翻訳API", - "取消内嵌翻译": "インライン翻訳のキャンセル", - "使用内嵌翻译": "インライン翻訳の使用", "内嵌翻译": "インライン翻訳", "隐藏不存在的游戏": "起こらないゲームを隠す", "宽度": "幅", @@ -810,5 +808,6 @@ "固定值": "固定値", "可选取的": "選択可能", "投影距离": "とうえいきょり", - "反转颜色": "色を反転" + "反转颜色": "色を反転", + "内嵌": "インライン" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/ko.json b/LunaTranslator/files/lang/ko.json index d2e08e97..a11e296b 100644 --- a/LunaTranslator/files/lang/ko.json +++ b/LunaTranslator/files/lang/ko.json @@ -544,8 +544,6 @@ "通用文字识别 API": "일반 문자 인식 API", "有道图片翻译": "그래픽 번역", "图片翻译 API": "사진 번역 API", - "取消内嵌翻译": "인라인 번역 취소", - "使用内嵌翻译": "인라인 번역 사용", "内嵌翻译": "인라인 번역", "隐藏不存在的游戏": "일어나지 않는 게임 숨기기", "宽度": "너비", @@ -810,5 +808,6 @@ "固定值": "고정값", "可选取的": "선택 가능", "投影距离": "투영 거리", - "反转颜色": "색상 반전" + "反转颜色": "색상 반전", + "内嵌": "내장" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/pl.json b/LunaTranslator/files/lang/pl.json index 02f9a8b2..f8ea2fe2 100644 --- a/LunaTranslator/files/lang/pl.json +++ b/LunaTranslator/files/lang/pl.json @@ -544,8 +544,6 @@ "通用文字识别 API": "Uniwersalne rozpoznawanie tekstu API", "有道图片翻译": "Tłumaczenie zdjęć Youdao", "图片翻译 API": "API tłumaczenia obrazów", - "取消内嵌翻译": "Anuluj wbudowane tłumaczenie", - "使用内嵌翻译": "Używanie wbudowanego tłumaczenia", "内嵌翻译": "Tłumaczenie wbudowane", "隐藏不存在的游戏": "Ukryj gry, które nie istnieją", "宽度": "szerokość", @@ -810,5 +808,6 @@ "固定值": "Wartość stała", "可选取的": "Wybór", "投影距离": "Odległość projekcji", - "反转颜色": "odwróć kolory" + "反转颜色": "odwróć kolory", + "内嵌": "Wbudowane" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/ru.json b/LunaTranslator/files/lang/ru.json index a37949aa..61ab538f 100644 --- a/LunaTranslator/files/lang/ru.json +++ b/LunaTranslator/files/lang/ru.json @@ -544,8 +544,6 @@ "通用文字识别 API": "Универсальное распознавание текста API", "有道图片翻译": "Перевод фотографий.", "图片翻译 API": "Перевод изображений API", - "取消内嵌翻译": "Отменить встроенный перевод", - "使用内嵌翻译": "Использовать встроенный перевод", "内嵌翻译": "Встроенный перевод", "隐藏不存在的游戏": "Скрыть несуществующую игру", "宽度": "Ширина", @@ -810,5 +808,6 @@ "固定值": "Постоянная величина", "可选取的": "Выбор", "投影距离": "Расстояние проекции", - "反转颜色": "Инвертировать цвет" + "反转颜色": "Инвертировать цвет", + "内嵌": "Встраивание" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/th.json b/LunaTranslator/files/lang/th.json index ff82428e..9fff76ff 100644 --- a/LunaTranslator/files/lang/th.json +++ b/LunaTranslator/files/lang/th.json @@ -544,8 +544,6 @@ "通用文字识别 API": "API การจดจำคำทั่วไป", "有道图片翻译": "การแปลภาพวิถี", "图片翻译 API": "แปลภาพ API", - "取消内嵌翻译": "ยกเลิกการแปลแบบอินไลน์", - "使用内嵌翻译": "ใช้การแปลแบบอินไลน์", "内嵌翻译": "แปลแบบอินไลน์", "隐藏不存在的游戏": "ซ่อนเกมที่ไม่มีอยู่จริง", "宽度": "ความกว้าง", @@ -810,5 +808,6 @@ "固定值": "ค่าคงที่", "可选取的": "เลือกได้", "投影距离": "ระยะการฉาย", - "反转颜色": "การย้อนกลับสี" + "反转颜色": "การย้อนกลับสี", + "内嵌": "อินไลน์" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/tr.json b/LunaTranslator/files/lang/tr.json index c7dfe68d..288a4643 100644 --- a/LunaTranslator/files/lang/tr.json +++ b/LunaTranslator/files/lang/tr.json @@ -544,8 +544,6 @@ "通用文字识别 API": "Universal Text Recognition API", "有道图片翻译": "Youdao Resimlerinin çevirimi", "图片翻译 API": "Resim Çeviri API", - "取消内嵌翻译": "Yapılan çeviri iptal et", - "使用内嵌翻译": "İçeri çeviri kullanılıyor", "内嵌翻译": "İçeri yatırılmış çeviri", "隐藏不存在的游戏": "Olmadığı oyunları gizleyin", "宽度": "genişlik", @@ -810,5 +808,6 @@ "固定值": "Tam değer", "可选取的": "Seçilebilir", "投影距离": "Projeksyon mesafesi", - "反转颜色": "Ters renkler" + "反转颜色": "Ters renkler", + "内嵌": "İçeri" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/uk.json b/LunaTranslator/files/lang/uk.json index b6548a66..52531c52 100644 --- a/LunaTranslator/files/lang/uk.json +++ b/LunaTranslator/files/lang/uk.json @@ -544,8 +544,6 @@ "通用文字识别 API": "Універсальний програмний інтерфейс розпізнавання тексту", "有道图片翻译": "Переклад зображень Youdao", "图片翻译 API": "API перекладу зображення", - "取消内嵌翻译": "Скасувати вбудований переклад", - "使用内嵌翻译": "Використання вбудованого перекладу", "内嵌翻译": "Вбудований переклад", "隐藏不存在的游戏": "Сховати ігри, які не існують", "宽度": "ширина", @@ -810,5 +808,6 @@ "固定值": "Визначене значення", "可选取的": "Вибраний", "投影距离": "Відстань проекту", - "反转颜色": "звернути кольори" + "反转颜色": "звернути кольори", + "内嵌": "Вбудовано" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/vi.json b/LunaTranslator/files/lang/vi.json index 5e2a576f..12deccb5 100644 --- a/LunaTranslator/files/lang/vi.json +++ b/LunaTranslator/files/lang/vi.json @@ -544,8 +544,6 @@ "通用文字识别 API": "API nhận dạng văn bản chung", "有道图片翻译": "Có hình dịch", "图片翻译 API": "Hình ảnh dịch API", - "取消内嵌翻译": "Hủy dịch nội tuyến", - "使用内嵌翻译": "Sử dụng Inline Translation", "内嵌翻译": "Dịch nội tuyến", "隐藏不存在的游戏": "Ẩn các trò chơi không tồn tại", "宽度": "Chiều rộng", @@ -810,5 +808,6 @@ "固定值": "Giá trị cố định", "可选取的": "Chọn", "投影距离": "Khoảng cách chiếu", - "反转颜色": "Đảo ngược màu" + "反转颜色": "Đảo ngược màu", + "内嵌": "Nội tuyến" } \ No newline at end of file diff --git a/LunaTranslator/files/lang/zh.json b/LunaTranslator/files/lang/zh.json index c80aad88..6b1d63f7 100644 --- a/LunaTranslator/files/lang/zh.json +++ b/LunaTranslator/files/lang/zh.json @@ -543,8 +543,6 @@ "通用文字识别 API": "", "有道图片翻译": "", "图片翻译 API": "", - "取消内嵌翻译": "", - "使用内嵌翻译": "", "内嵌翻译": "", "隐藏不存在的游戏": "", "宽度": "", @@ -810,5 +808,6 @@ "字体倍率": "", "固定值": "", "投影距离": "", - "反转颜色": "" + "反转颜色": "", + "内嵌": "" } \ No newline at end of file