- Home
- Plugin
- Strumenti e capacità
- dsh-quick-translate
dsh-quick-translate
wanyi424/dsh-quick-translate
Quick translation using DSH models: streaming output, token usage details, and local history.
Installazione
dsh plugin --profile web add github:wanyi424/dsh-quick-translateREADME
快捷翻译 · DSH 插件
独立的中英文翻译页面。使用 DSH 已配置的模型,翻译行为完全由提示词决定;没有语言检测服务、语言选择参数、Agent、工具调用或会话交互。
安装
适配当前检查的 Windows 桌面版 DeepSeek Harness 0.2.0-rc.2,与 Markdown 笔记插件独立。克隆本仓库后,按下方「开发与验证」构建安装包。
在 DSH 左侧「插件」页面选择「添加插件」,添加压缩包:
dist/dsh-quick-translate-0.2.4.tgz
按安装页面提示启用或重启后,左侧出现「快捷翻译」。无需修改 DSH 的配置文件,也不需要另填 API Key。新插件不会修改笔记插件或已有笔记。此项目没有自动安装到用户的 DSH profile。
使用
页面左侧是历史记录,右侧是「原文 | 译文」双栏工作台。翻译、复制、重译等常用操作都在工作台内完成;提示词、历史目录这类低频管理收在右上角「设置」里。
- 在原文栏底部的模型标签中选择 DSH 已配置的模型。刚在 DSH 设置里修改过模型时,展开菜单点击「刷新模型列表」。
- 输入或粘贴原文,点击「翻译」或按
Ctrl + Enter。翻译期间按钮变为「停止」,停止后保留已输出的部分。 - 译文栏依次显示「正在连接模型 → 模型思考中 → 正在翻译」,文字随光标逐段出现,完成后显示耗时。点击「复制」得到保留原文格式的译文。
- 译文栏底部显示本次的输入 / 输出 token(输入包含缓存命中部分)。点击它打开「翻译详情」:缓存命中、总耗时与首字时间、「等待响应 → 思考 → 输出译文」的耗时分布、输出速度、模型标识、结果与错误代码、当次提示词快照;「复制诊断信息」得到一段纯文本,便于排查或反馈。
- 用量来自模型在流式结束时返回的数据。手动停止、连接中断或旧版本的记录通常没有用量,会显示「无用量数据」。
- 修改原文后,上一次的译文会变淡并提示「原文已修改」,避免误复制旧结果。点击原文栏右上角的「×」清空,开始新的翻译。
- 切换到 DSH 的其他页面时,翻译在后台继续;返回后恢复进度。
- 历史记录按「今天 / 昨天 / 近 7 天 / 月份」分组,每条显示原文和译文的首行,滚动到底部自动加载更多。
- 点击一条记录进入只读查看。顶部显示「返回」,也可按
Esc回到当前翻译;「用此原文重译」把原文放回工作台。 - 右键一条记录,可以复制译文、用原文重译、查看翻译详情或删除。
- 顶部「…」可打开这条记录的「翻译详情」,或删除这条记录。
- 历史记录栏收起时,顶部左侧显示带记录数的「历史记录」按钮,新记录产生时数字会轻微跳动;译文栏底部的「已保存到历史」也可以直接打开历史记录。
- 点击一条记录进入只读查看。顶部显示「返回」,也可按
- 窗口较窄时,历史记录变为从左侧滑出的抽屉,点空白处滑回;宽屏下收起和展开历史栏时栏宽平滑过渡。更窄时,原文和译文上下排列。菜单、设置面板和对话框关闭时也有退场动画。
默认提示词随插件保存在 prompts/default.md。提示词为普通文本,不插入语言参数或模板变量。模型请求只包含当次提示词和待翻译原文,不带其他翻译历史或 DSH 对话。文档中的多语言规则交由模型理解;其中针对上一条译文的连续反馈规则仍保留原文,但本版本不提供多轮上下文。
在「设置 → 提示词」中切换「默认 / 自定义」:默认提示词只读显示;选择「自定义」后编辑并点击「保存」,会自动生成或更新独立的 Markdown 文件:
%USERPROFILE%\.dsh\plugin-data\dsh-quick-translate\prompts\custom.md
切回「默认」立即生效,不改写也不删除 custom.md;再次选择「自定义」即恢复已保存的版本。未保存的修改在关闭设置面板后仍会保留,直到你保存或放弃。修改只用于之后发起的翻译,正在运行的任务和历史记录继续使用各自的提示词快照。改变模型不会改写提示词文件。
设置页显示默认文件、自定义文件的完整路径,并可打开自定义提示词目录。默认文件位于插件安装目录中的 prompts/default.md,以设置页显示的实际路径为准。自定义文件只有首次保存时才创建。请通过自定义文件修改规则,不要编辑包内默认文件。
设置文件只保存当前使用默认还是自定义,不存储提示词正文;历史记录保留当次提示词正文用于回看。当前仍在开发阶段,本版本不读取或迁移旧的 .dsh-quick-translate 和 Documents/DSH Translations 数据,已移除旧版提示词兼容逻辑。
原文和译文以文本显示,保留换行及 Markdown 源码,便于准确复制。本插件不包含笔记插件的图表或 Markdown 预览引擎。
历史记录与迁移
所有工作区共用一套翻译历史,默认在:
%USERPROFILE%\.dsh\plugin-data\dsh-quick-translate\history
代码使用 DSH 官方 @deepseek-ai/dsh-home-paths 路径库解析根目录,优先跟随 DSH_HOME,未设置时使用当前用户的 .dsh。plugin-data/dsh-quick-translate 是本插件在 DSH 数据根目录中使用的独立子目录,文件仍保持普通 JSON / Markdown 格式。实际路径显示在「设置 → 历史记录」中,点击「打开文件夹」即可在资源管理器中打开。
从 0.1.2 起,历史记录和自定义提示词的目录打开统一使用 DSH 原生 open-in-app/open 接口。插件 Host 提供实际目录,桌面宿主负责启动资源管理器;不再隐藏启动 Explorer 并仅凭进程创建判定成功。迁移后打开新目录,原生接口不可用或启动失败会显示错误。升级后请完整退出并重新启动 DSH,使前端和 Host 同时更新。
每次翻译单独保存为 UTF-8 JSON 文件,包含原文、译文、时间、模型提供方、模型名称、当次提示词、状态和错误信息,以及模型返回的 token 用量(usage)、首字与首段译文时间(firstTokenMs / firstTextMs,相对开始时间的毫秒数)和提供方错误代码(errorCode)。旧记录没有这些字段,照常可读。模型开始调用前先保存输入;流式期间最多每约 2 秒保存一次进度,结束或停止时立即保存。异常退出最多可能丢失最近一段尚未保存的输出;重启后未完成的记录标记为中断,不会自动再次发起付费请求。
「设置 → 历史记录 → 更改位置…」可输入绝对路径,也可在支持原生目录选择器的桌面环境中选择文件夹:
- 复制本插件管理的记录,确认复制未遇到文件变化,持久化新位置后再清理旧副本。
- 目标已有同名记录时停止;提交配置失败时回退复制,不删除原记录。
- 旧目录为空才删除整个文件夹;存在其他文件或子目录时保留并提示,绝不递归删除旧目录。
- 不能选择相同目录的父子路径、磁盘根目录、用户主目录、符号链接或联接点。
- 正在翻译时需先完成或停止,再迁移或清空,以免产生含糊的记录归属。
模型、提示词及目录设置单独保存在:
%USERPROFILE%\.dsh\plugin-data\dsh-quick-translate\settings.json
迁移只移动历史文件,设置与自定义提示词不放在会被删除的旧历史目录里。「设置 → 历史记录 → 清空全部…」确认后清空全部记录,不会清空设置或自定义提示词。
性能与边界
- Client 启动入口约 13 KB,页面按需加载约 80 KB(含样式);复用宿主 React,无 Markdown、图表、编辑器或模型 SDK 大包,界面只使用 DSH 主题变量与系统字体。
- 未打开页面时不请求模型目录、不扫描历史、没有插件轮询。翻译期间页面订阅推送;隐藏页面断开订阅,后台继续任务。
- 文本增量最多约每 80 ms 合并推送;慢客户端只接收最新进度,避免无限堆积。流式期间只重绘译文栏,新到的文字只在最新一段做淡入,页面节点数不随译文长度增长;没有每个 token 的磁盘写入或 Markdown 全文重渲染。
- 动效只使用 transform / opacity,系统开启「减少动态效果」时自动关闭。
- 历史每页 25 条,滚动到底时才读取下一页的记录内容;列目录仍与文件数量相关。极大量历史应定期清理。
- 一次运行一个任务;原文最多 60,000 字符,提示词最多 16,000 字符,译文最多 240,000 字符,单次最长 10 分钟。模型自身的上下文和输出限制可能更低。
- 使用 DSH 现有模型服务,会占用所选模型的额度或产生其正常费用;插件不会发起后台自动翻译或自动重试整篇翻译。宿主自身的模型重试策略仍然适用。
- 停止和卸载会通知适配器取消请求;提供方是否立即停止计算取决于其实现。关闭 DSH 后任务不继续。
- 不承诺零资源占用。隔离短文本验证未出现超过 50 ms 的主线程长任务,不代表真实 DSH 长文本与所有模型下的性能结果。
开发与验证
npm install
npm run typecheck
npm test
npm run build
npx playwright install chromium
npm run check:browser
npm pack --pack-destination dist
构建产物采用 DSH 原生 Client 模块加载器与 require.async('./client.page.js')。Host 注入 connection 和 llm,用 ctx.llm.listProviders()、listModels() 和 stream() 调用模型;不导入宿主内部 UI 组件,不添加 Agent 工具,不改写 profile。
浏览器检查使用请求拦截加载真实构建界面,并通过插件的 __DSH_TRANSPORT__ 通道直连 Host API(包括流式输出),不占用本机端口,Windows 与 WSL 均可运行;模型提供方和 DSH 原生目录打开接口为模拟。覆盖模型选择、默认 / 自定义提示词切换、流式输出、后台继续与重连、原文修改提示、token 用量与翻译详情、停止、历史查看与右键菜单、收起历史栏后的历史入口、菜单开关与定位、目录打开(含失败)、迁移、删除与清空,以及浅色 / 深色和中等 / 窄宽度布局;截图写入 artifacts/qa。自动化测试另覆盖存储、迁移、提示词和运行时(含历史列表的译文首行,以及用量、耗时节点和错误代码的记录)。
未验证:安装后的真实 DSH 模型请求(包括各模型实际返回的用量数值)、原生目录选择器、实际资源管理器窗口和整个 DSH 的运行占用。用量字段按 DSH 0.2.0-rc.2 的 TokenUsage 约定读取:inputTokens 不含缓存读写,outputTokens 已包含推理。当前没有可用的 DSH 插件管理或桌面控制连接;安装后需要在真实环境确认。
MIT 许可;构建内第三方声明见 lib/THIRD_PARTY_NOTICES.txt。
Plugin correlati
archify (deepseek-harness)
tt-a1i/archify
WeKnora (dsh-weknora)
tencent/weknora
weknora
tencent/weknora
BrowserSkill (dsh-plugin-browserskill)
tencent/browserskill