From 0d033e1b3d27f4c6bbc82c6ef89a57fac7b453be Mon Sep 17 00:00:00 2001
From: edr1412 <40953911+edr1412@users.noreply.github.com>
Date: Fri, 24 May 2024 22:16:20 +0800
Subject: [PATCH] =?UTF-8?q?anki=E8=87=AA=E5=8A=A8=E5=9C=A8=E4=BE=8B?=
=?UTF-8?q?=E5=8F=A5=E4=B8=AD=E5=8A=A0=E7=B2=97=E5=8E=9F=E5=8D=95=E8=AF=8D?=
=?UTF-8?q?=20(#765)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feature: (Anki) automatically highlight words in examples
* fix: (Anki) tts with example sentence
---
LunaTranslator/LunaTranslator/gui/showword.py | 16 +++++++++++-----
.../LunaTranslator/gui/translatorUI.py | 3 ++-
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/LunaTranslator/LunaTranslator/gui/showword.py b/LunaTranslator/LunaTranslator/gui/showword.py
index bcb351f5..ab779200 100644
--- a/LunaTranslator/LunaTranslator/gui/showword.py
+++ b/LunaTranslator/LunaTranslator/gui/showword.py
@@ -149,8 +149,11 @@ class AnkiWindow(QWidget):
def langdu2(self):
if gobject.baseobject.reader:
+ example_text = self.example.toPlainText()
+ example_text = example_text.replace("", "")
+ example_text = example_text.replace("", "")
gobject.baseobject.reader.ttscallback(
- self.example.toPlainText(),
+ example_text,
functools.partial(self.callbacktts, self.audiopath_sentence),
)
@@ -737,7 +740,7 @@ class selectviewer(QWidget):
class searchwordW(closeashidewindow):
- getnewsentencesignal = pyqtSignal(str, bool)
+ getnewsentencesignal = pyqtSignal(str, str, bool)
showtabsignal = pyqtSignal(float, str, str)
def __init__(self, parent):
@@ -846,16 +849,19 @@ class searchwordW(closeashidewindow):
res.insert(idx, {"source": k, "content": v})
return res
- def getnewsentence(self, sentence, append):
+ def getnewsentence(self, sentence, sentence_trans, append):
sentence = sentence.strip()
+ sentence_trans = sentence_trans.strip()
self.showNormal()
if append:
sentence = self.searchtext.text() + sentence
self.searchtext.setText(sentence)
self.search(sentence)
-
- self.ankiwindow.example.setPlainText(gobject.baseobject.currenttext)
+ example_text = gobject.baseobject.currenttext
+ if sentence_trans in example_text:
+ example_text = example_text.replace(sentence_trans, f"{sentence_trans}")
+ self.ankiwindow.example.setPlainText(example_text)
if globalconfig["ankiconnect"]["autoruntts"]:
self.ankiwindow.langdu()
if globalconfig["ankiconnect"]["autoruntts2"]:
diff --git a/LunaTranslator/LunaTranslator/gui/translatorUI.py b/LunaTranslator/LunaTranslator/gui/translatorUI.py
index 47e656ca..5d33cf3f 100644
--- a/LunaTranslator/LunaTranslator/gui/translatorUI.py
+++ b/LunaTranslator/LunaTranslator/gui/translatorUI.py
@@ -238,6 +238,7 @@ class QUnFrameWindow(resizableframeless):
if hira:
def callback(word, append):
+ word_in_sentence = word["orig"]
if globalconfig["usewordorigin"] == False:
word = word["orig"]
else:
@@ -252,7 +253,7 @@ class QUnFrameWindow(resizableframeless):
winsharedutils.clipboard_set(word)
if globalconfig["usesearchword"]:
gobject.baseobject.searchwordW.getnewsentencesignal.emit(
- word, append
+ word, word_in_sentence, append
)
self.translate_text.addsearchwordmask(hira, text, callback)