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)