前言¶
DeepSeek Harness(DSH)的插件生态里,每个 bundle 通常带着英文 README 或 meta.detail 长文档,插件列表行也往往是 meta.title、meta.description 的英文 fallback。读文档、对比功能时,如果依赖浏览器翻译或每次手动复制,既慢,插件一更新又要从头来。下面介绍社区插件 dsh-plugin-readme-zh(维护者 PinkyKan,GitHub:PinkyKan/dsh-plugin-readme-zh):在 DSH 插件页内把已安装插件的长说明与列表一行简介译成简体中文,结果写入持久化分段缓存,只有文档实际变更的部分才重新调用模型。
这是什么¶
dsh-plugin-readme-zh 是一个 DSH bundle(package.json 版本 1.0.0,MIT 许可证,要求 dsh >=0.2.1-rc.3、node >=22)。它在社区目录 skillhub.cn 的分类为「记忆」;简介为:对已安装插件文档做简体中文翻译,并用持久化分段缓存避免重复劳动。
翻译使用当前 profile 下选为 agent 默认的模型(或在 profile patch 里显式配置的 provider / model);缓存目录为 $DSH_HOME/plugin-data/dsh-plugin-readme-zh/(Markdown 分段与短字符串)。
核心功能¶
详情页「中文说明」¶
在每个已安装插件的详情页头部增加 中文说明 控件。点击后弹出对话框,展示译好的长文档、实时进度与缓存统计。首次翻译会走进度条;之后命中缓存可即时打开。对话框内提供 重新翻译、复制中文(复制译好的 Markdown),以及 翻译全部已安装插件(后台翻译所有已安装插件的长文档,并刷新列表一行简介)。
若插件没有可读文档、文件不可用,或文档本身已是中文,该按钮会隐藏。
插件列表一行中文(可选)¶
默认不会在别的 package 目录里写文件。若在 bundle 配置里开启 metaSidecars: true,会把列表行的 meta.title / meta.description 译成中文,写入各已安装 bundle 自己的 locale/zh.json(合并已有文件,作者自带中文不会被覆盖);若包内原本没有 locale/,还会补 locale/en.json 作为英文种子;需要时会在 exports 里追加 "./locale/*.json": "./locale/*.json"。这样 Settings → Plugins 列表通过宿主正常的 locale 解析显示中文,而不是在前端 DOM 上打补丁。
pnpm install 重新解压包会清掉这些 sidecar 文件;下次启动会从字符串缓存重新写入。
分段缓存与增量翻译¶
长文档按 Markdown 结构切分后再译:
- 围栏代码块、HTML 注释块、独立 HTML 标签行原样保留,不送模型。
- 先按标题(
#…######)切段,增删或重排某一节只影响该节的 hash。 - 节内正文按行边界打包,单块最多 3000 字符。
- 每块以源文 SHA-256 为键;缓存记录文档 hash、块 hash 与译文。
插件升级后:未改动的块直接复用;仅源文变化的块重新翻译;文档不变则版本 bump 也不消耗模型调用。翻译中途重启会保留已完成的块,下次继续而非重头开始。
安装与启用¶
官方 README 给出多种分发方式,任选其一(将 <name>、<profile>、路径替换为你的环境):
Git 仓库(需能访问 GitHub):
dsh plugin --profile <name> add git+https://github.com/<owner>/<repo>
本地目录(开发时用 link):
dsh plugin --profile <name> add link:/abs/path/dsh-plugin-readme-zh
离线 tarball:
dsh plugin --profile <name> add file:/abs/path/<name>.tgz
npm registry(发布后):
dsh plugin --profile <name> add <package-name>
安装后在 Plugins 页面启用该 bundle(或写入 dsh.profile.bundles)。若需要列表一行也显示中文,在 profile patch 里为该 bundle 设置 metaSidecars: true(默认 false,公开安装默认不改动其他包目录)。
典型用法¶
- 安装并启用 bundle;每次启动会在后台自动翻译所有已安装插件的列表一行简介(已缓存字符串不再消耗模型)。
- 打开 Settings → Plugins,列表行在包名旁可见中文一行说明(在开启
metaSidecars: true时)。 - 进入任意已安装插件详情页,点 中文说明 查看长文档译文。
- 需要全量刷新时,使用 翻译全部已安装插件 或单文档 重新翻译。
配置项¶
在 profile patch 的 bundle 行上可改以下字段(默认值见下表):
| Field | Default | Meaning |
|---|---|---|
engine |
auto |
auto 优先模型服务,失败回退 translator;llm 必须用模型;translator 仅用 ctx.translator。 |
provider |
agent default | 翻译用的模型 provider。 |
model |
agent default | 翻译用的 model id。 |
reasoningEffort |
off when supported |
翻译调用的 reasoning effort。 |
maxTokens |
8192 |
每块输出 token 上限。 |
translatorProvider |
bing |
translator 回退时的 provider。 |
metaSidecars |
false |
为 true 时写入各包的 locale/ sidecar,使列表原生显示中文。 |
翻译 prompt 要求保留 Markdown、代码、URL、路径、包名与标识符,且只返回译文片段。
适用场景与注意¶
适合谁: 长期在 DSH 里安装、对比多个英文插件文档的开发者;希望列表与详情统一看简体中文、又希望插件更新后尽量少重复翻译 token 的用户。
权限与安全: 插件以当前 DSH 进程权限运行;开启 metaSidecars 时会向已安装包目录写入 locale/*.json 等文件。安装前应阅读 源码仓库 与 MIT 许可证,确认符合你的环境策略。
局限(摘自官方说明):
- 长详情与列表 meta 一行会译;深层配置字段标签、行标题、文档内嵌字符串仍保持原语言。
- 长文档首次翻译按块调用模型,约 30 KB README 通常需数次调用。
- 对话框使用精简 Markdown 渲染器;原始 HTML 会降为文本,外链图以 alt 显示,链接限于 HTTP(S)、
mailto:、页内锚点。 - 缓存按 profile 的
$DSH_HOME隔离;换 profile 从空缓存开始。 - 不支持手改缓存文件后继续使用。
社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本文仅介绍该 bundle 的已文档化行为。
结尾¶
dsh-plugin-readme-zh 把「读英文插件文档」收成插件页内的 中文说明 与可选的列表 locale sidecar,并用按标题与 hash 分段的方式控制更新成本。需要进一步了解实现与分发细节时,可直接查阅 GitHub:https://github.com/PinkyKan/dsh-plugin-readme-zh;在目录站浏览条目:https://www.skillhub.cn/plugins/PinkyKan/dsh-plugin-readme-zh。