Skip to content

dsh-hover-dict

Verified

dsh-hover-dict · v1.2.0 · MIT · Web UI

在 DeepSeek Harness 里点选查词与翻译:点击或划选英文单词看释义,划选纯英文句子翻译。生词本、词根词缀、同根词标注,离线词库。

Install

dsh plugin add dsh-hover-dict

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Readme

点选查词 · dsh-hover-dict

在 DeepSeek Harness 里读英文时,点一下词就看到它什么意思。

它做什么

你做什么 出现什么
单击一个英文单词 小浮层:词性、中文释义、考纲标签
双击一个英文单词 同上
左键划选一个词 同上
左键划选一段纯英文 中文翻译
左键划选中英混排的内容 不翻译,提示一句
点小浮层 就地展开大卡片:全部义项、英英释义、词形变化、同根词、词根词缀、双语例句
点卡片上的 ☆ 收进生词本(再点取消)

范围只限对话正文。 包括代码块、行内代码和工具调用卡片里的英文 —— 那些地方恰恰最常需要查词(变量名、命令、报错信息)。

输入框、右下角的模型选择器、侧栏、设置页都不响应:在这些地方点一下是想定位光标或开菜单,弹词典只会碍事。

只翻译纯英文。 选中的内容里汉字超过 10% 就不翻——中英混排的段落翻出来往往词不达意,而且选它是想复制或引用。这时候会给一句提示,不会静默无反应。

结果不会自己消失。 只有三种情况关闭:点浮层外面、按 Esc、重新选别的。

选中词不加任何底色或边框。 早先版本给选中的词画半透明底,深色主题下等于把那几个字糊掉一层灰。现在完全不加视觉覆盖,浮层自己就在词旁边。

没有音标,没有发音。

生词本

卡片和浮层右上角都有星标,点亮表示这个词已在生词本里。

三色标注,一眼看出一个词和你背过的词是什么关系:

颜色 含义 例子
红 这个词本身在生词本里(含它的变位) 收藏了 run,ran / running / runs 也标红
蓝 语义词族里但没收藏 查 care 时,careful / careless / carer 标蓝

同根词靠派生规则判断,不靠字符串相似:care 与 career 前缀一样但毫无词源关系,不会连在一起。

生词本存在 DSH 的本地存储里(KV 落磁盘),换浏览器或清缓存都不会丢。

导入:设置面板里可以直接粘贴单词表,一行一个。有道、欧路、百词斩导出的内容都能识别——每行第一个像英文单词的片段会被收下。

词根词缀

卡片里给出一个词的拆解,例如:

biography   bio[词根] 生命 · graph[词根] 写
telephone   tele[词根] 远 · phon[词根] 声音
careless    -less[形容词后缀] 没有
rewrite     re-[前缀] 再

6,374 个词有分析(占词库 31%)。宁可漏也不误判:拆完必须过四道闸门——词干要真实存在、释义要有语义重叠、独立基础词不硬拆、人工确认的假拆分列进排除表。所以 understand 不会被拆成 under- + stand,uncle 不会被拆成 un- + cle。

设置页

在 设置 里,左侧导航那一列(账号与余额 / 通用设置 / 模型 / …)会多出一项「英语翻译」, 排在「技能」与「费用」之间。点开后有两个标签:

标签 内容
生词本 全部收藏的词,带中文释义预览;可搜索、单个移出
设置 翻译接口、词库管理、生词本导入导出、显示参数

只有这一个入口。 不再另外挂插件详情页或侧边栏图标。

词库与句子库

系统自带三个,随包分发,完全离线:

包 内容
核心词库 20,499 个考纲核心词(中考/高考/四六级/考研/托福/雅思/GRE)
词根词缀库 6,374 个词的拆解
双语例句库 8,960 个词的中英对照例句

自己加词库

把文件放进 data/packs/,重启 DSH 后自动加载。支持两种格式:

ECDICT 的 CSV —— 只要有 word 与 translation 两列就能用,definition 与 tag 可选:

word,translation,definition,tag
serendipity,"n. 意外发现, 侥幸",luck,cet6
blockchain,n. 区块链,a distributed ledger,

与 dict.dat 同构的 JSON —— 键是词头,值是槽位数组。格式见 docs/架构.md 的数据契约。

文件名只能是 小写字母/数字/连字符 加 .dat 或 .csv。这是在防路径穿越:宿主不接受任意路径, 只认 data/packs/ 下扫描到的文件。

重新生成词库

词库是构建期产物,已经随包提供。要改筛选口径或换语料才需要重跑:

node scripts/build-data.mjs --src <原始数据目录> --out data

它会读该目录下的 ecdict.csv 与三个 Tatoeba 文件,产出 data/dict.dat 与 data/meta.json。

开发

node client/build.mjs         # 从 client/src/ 生成 client.js
node client/build.mjs --check # 校验产物与源码同步
node scripts/test-host.mjs    # 宿主侧路由测试(起真 http 服务器)
node client/test/smoke.mjs    # 端到端冒烟(假宿主里装载产物)

各模块单测在 client/test/ 下,文件名前缀 _ 的是跑单个模块用的。

源码分模块放在 client/src/,构建期拼成单文件 client.js。不用打包器是因为这个仓库的运行期依赖必须是零。

改完源码务必跑一次 node client/build.mjs —— client.js 是产物,只改 client/src/ 不会生效。

结构

index.js              宿主侧:词库文件的静态路由,带 ETag 与 gzip
client.js             浏览器半构建产物(不要手改)
client/src/           word / hit / selection / dict / net / position / overlay / card / config / app
client/build.mjs      拼接构建 + 产物校验
data/dict.dat         词库(以词头为键的 JSON)
data/meta.json        构建元信息
locale/               界面文案(中 / 英)
scripts/build-data.mjs  数据构建脚本
scripts/test-host.mjs   宿主侧测试
docs/架构.md          设计文档
.snapshots/           源码快照,防改动丢失

许可

MIT,见 LICENSE。