🚀 功能建议:划词的同时,选中词所在的句子,翻译词在句子中的准确含义
请先确认以下事项
- [X] 已仔细阅读了 README
- [X] 在 issues 页面搜索过(包括已关闭的 issue),未发现类似功能建议
- [X] Easydict 已升级到 最新版本
- [X] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
功能描述
能否划中某个词,自动提取这个词在的句子,然后根据句子,解释这个词在句子中的意思,这样的话,对于多种意思的单词,会有更高效快速的理解。
使用场景
当我在划词的时候,弹出来的词典翻译可能不准确,或者过多。
- 可能在一些专业术语,它的意思要结合上下文,词典中甚至没有收录。
- 一些词的意思过多,没法准确快速定位
- 想要更直观理解词在句子中的意思
实现方案(可选)
No response
是否愿意提交 PR 实现该功能
- [ ] 我愿意提交 PR 实现该功能
Hello mengxi-ream, Thank you for your first issue contribution 🎉
这个想法不错,但不确定是否可行,因为取词是一个很复杂的功能,可能获取不到选中单词所在的句子。
这个需要再看看。
Online Dictionary Helper 这个谷歌浏览器插件这个功能,它是选中一个词,然后直接读到整个句子,然后配合 anki 模板可以把这个词的词典意思(多个意思的词,可以选择某个意思,就不用在后续回顾的时候看到无关的意思),在网页中遇到的这个句子,这些上下文都存入 anki,后续用来背单词。用来读报刊等等,非常好用。
@tisfeng 如果是在瀏覽器中取詞的話,這個功能有機會可以透過 javascript 實現。 參考用 javascript: https://github.com/plateaukao/einkbro/blob/main/app/src/main/assets/get_selected_text_with_context.js
如果在網頁取詞時,能新增一個是否選取前後文 (context)的設置;如果要的話,把下面幾段的 javascript 換掉,應該就可以 (回傳的字串裡,我是用 << >> 把真正使用者選取的詞標示出來:
- https://github.com/tisfeng/Easydict/blob/c1ab6ea0df3c8056b938b5759a6954217896afbc/Easydict/Swift/Utility/AppleScript/AppleScriptTask%2BBrowser.swift#L34
- https://github.com/tisfeng/Easydict/blob/c1ab6ea0df3c8056b938b5759a6954217896afbc/Easydict/Swift/Utility/AppleScript/AppleScriptTask%2BBrowser.swift#L48
取詞時,連同前後文也取回,對於使用 llm 類的 translation engine 來說,實用性會更高,它可以根據前後文給出更精確的翻釋或是單詞解釋。 下圖是我在別的應用中實作類似的功能,在使用 chatgpt 翻譯時含有前後文,讓它能夠正確分辨 feet 在不同句中的意思。
ok,感谢建议。
我想了一下,这个问题的关键是取词,浏览器这方面比较开放,脚本应该可以拿到当前选中文本所在的段落,这个可以有。
但 Easydict 在其他应用中不好实现,苹果系统的 Accessibility 功能太弱了,可能拿不到段落。
这个稍后我们先看一下。
最近实现了 【翻译并替换】这个功能 https://github.com/tisfeng/Easydict/pull/954 ,回过头来发现,和当前 issue 有点类似。
划词的同时,选中词所在的句子,翻译词在句子中的准确含义
这个应该也能实现,后面我们再探索一下。