DSH Web 界面显示层翻译:将思考链、任务卡片与回答正文翻译为 8 种目标语言之一(本地 Ollama 或 Google/Bing,自动选择),原文完整保留。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-think-translate
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:UncleK/dsh-think-translate
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
🐋 dsh-think-translate
语言: English · 中文 · 日本語 · 한국어 · Español · Français · Deutsch · Русский
为 DeepSeek Harness Web UI 提供显示层翻译:把界面上的思考链(Think 行)、任务卡片、回答正文翻译为你选择的目标语言,原文完整保留在会话记录中,译文绝不进入模型上下文。
✨ 特性
DeepSeek 系模型经常用中文思考——或者用它们碰巧习惯的语言。dsh-think-translate 在你观看时把 Think 行、任务卡片和回答渲染成你的语言,就像给模型的思考配上字幕。
- 🕵️ 任意思考链都能读 — 推理、思维链、任务卡片与回答实时翻译,按批流式出现
- 8 种目标语言 — 中文 / English / 日本語 / 한국어 / Español / Français / Deutsch / Русский
- 单一语言界面 — 设置面板、思考行、任务卡片全部跟随目标语言(不混中英),选择持久化
- 本地模型为主力 — 优先使用本地 Ollama 模型(qwen 等),隐私离线免费;首次选择本地模型时自动触发下载(实时进度条),完成后自动配置启用
- 🧠 零上下文成本 — 纯显示层:模型看到的仍是原文,译文绝不占用上下文窗口
- Google / Bing 兜底 — 本地模型不可用时自动切换(google 通过 Node CONNECT 隧道走系统代理,绕过反爬)
- 代码工件自动跳过 — 文件路径、命令、URL、正则、纯代码行不翻译
- 句子分批翻译 — 长思考链按句子分批串行翻译,本地小模型也能保持质量
- 🧩 段落与句子感知切分 — 长思考链按空行切分(保留段落结构)再按句分批,本地小模型也能保持质量
- 流式输出 — 思考过程中译文逐批出现,展开 Think 行可对照原文
- 🎚️ 可调翻译时机 — 三档:全部预翻译 / 懒加载历史(默认)/ 仅展开时翻译
- 🔗 动态提供方链 — 列表顺序就是投递顺序:拖动排序、逐行开关;内置 google gtx / bing / 本地 Ollama,外加任意数量的自定义端点
- 🔌 自定义提供方(OpenAI 与 Anthropic) — 设置面板里可添加任意 OpenAI 兼容端点(任何
/v1/chat/completions网关)或原生 Anthropic Messages API(Claude):类型、预设、接口地址、API 密钥、模型 - 🪄 继承 DSH 已配置的提供方 — 自动发现
settings.yaml(llm-pi-ai.providers)里的只读 DSH 行,一个按钮重新扫描并全部加入链;密钥在请求时从.credentials.yaml解析,绝不写入插件配置;harness 自己的默认路线也算:agent-default-model指向deepseek-official时,DeepSeek 官方 API 也会作为一条 DSH 条目提供 - ⏱️ 失败韧性 — host 请求 3 次退避重试 + 浏览器直连兜底、每行独立的测试按钮、失败结果不缓存
📦 安装
# 方式一:npm(推荐)
dsh plugin --profile web add dsh-think-translate
# 然后重启 web
# 方式二:GitHub
dsh plugin --profile web add github:UncleK/dsh-think-translate
# 方式三:手动(junction + patch)
# 1. 链接包到 profile 的 node_modules
New-Item -ItemType Junction -Path "$HOME\.dsh\profiles\node_modules\dsh-think-translate" `
-Target "<仓库路径>"
# 2. 在 "$HOME\.dsh\profiles\web\cordis.patch.yml" 加入:
# - insert:
# - id: dsh-think-translate
# name: dsh-think-translate
# 3. 重启 web
🧯 DSH 升级之后
第三方客户端插件走 DSH 的客户端模块图,而这张图每个进程只在启动时组合一次,一次失败的组合会被记在内存里直到重启。于是升级 DSH 后常撞到这三件事:
- 从源码启动失败:
client bundles not found; run \pnpm run build` before launch—— 新版客户端包需要先构建:在 harness 仓库根目录跑pnpm run build,再重新启动dsh web`。 - 插件 UI 不见了(Think 行没有译文、设置里没有“思考链翻译”)—— 重启一次
dsh web;只刷新页面有时不够。 - 本地模型列表是空的 ——
ollama服务当前用的模型目录里没有模型:查ollama list(或GET /api/tags)以及该服务实际生效的OLLAMA_MODELS;模型文件在别的盘时,可用目录联接把服务的默认目录指过去。
插件侧无需任何配置:它不依赖 DSH 内部包的加载顺序(只绑定 slots 服务,可选使用 @deepseek-ai/dsh-client-ui-primitives),因此老版本(≤ 0.1.1-rc)与当前版本线(≥ 0.1.2-alpha.1,含 0.1.5-rc.1)都能直接跑。
DSH 0.2.0-rc.2 请使用 dsh-think-translate 1.2.5 或更新版本。1.2.5 修复了 todo_write 的 slot 注册冲突,并声明支持 0.2 版本范围。执行 dsh plugin --profile web add dsh-think-translate@latest 后重启 DSH,无需添加版本豁免。
1.2.6 修复 DSH 0.2 中思考与回答重复显示的问题:助手渲染器现在遵守 reasoning/response 分组,出错时的原文回退也按组显示。
**1.2.7 本地准备:**已启用的 Ollama 排到第一位,或点击其测试按钮时,会自动查找已有安装并启动、加载模型。缺少软件或模型时,点击首次准备入口后才安装/下载,并显示分阶段进度。自动安装软件支持 Windows,其他系统提供官方指南。“当前使用”按优先级选择第一个已启用且验证成功的提供方,测试后面的行不会覆盖已成功的前面一行。
🚀 使用
- 打开 设置 → 思考链翻译
- 选择目标语言(比如日本語)——设置面板、思考行、任务卡片全部切换为该语言
- 管理供应商链(拖动排序,勾选即启用):
- 内置:google gtx / bing(免费,开箱即用,自动走系统代理)与本地模型(Ollama)(首次选中提示下载 7b/14b 或自定义)
- DSH 供应商:
settings.yaml里已配置的端点会自动出现(只读,勾选即加入链);列表下方的 继承 DSH 已配置的 API 会重新扫描并一键全部加入——不用重填 baseURL 或密钥(密钥在请求时从 DSH 自己的凭据里解析) - 密钥可以直接填,也可以由预设或 DSH 行带上
apiKeyEnv:那类行显示env:NAME徽标,密钥在请求时解析、绝不写入config.json。编辑表单里没有环境变量输入框(值会原样保留),清空某个字段会真的删除它(以显式删除提交),所以从环境变量名切回字面密钥是可行的 - 取消勾选即跳过该供应商;更细的说明以 README.md 为准
- 发消息让模型思考,展开 Think 行查看译文
⚙️ 工作原理
浏览器 → POST /_xlate/translate(同源,无 CORS)
→ host 供应商链(fail-open,可排序):
chain: [provider1, provider2, ...] ← 设置里拖拽排序
google / bing / openai 兼容 / anthropic 任选
fallback 链(可选,默认关闭,配置里开启)
→ 浏览器直连兜底
- 提供方配置 存在
config.json(运行期生成,已 gitignore):chain(有序 id)、fallback(enabled + chain,仅配置文件)、providers(每项的type/enabled/baseURL/apiKey/apiKeyEnv/model)。旧的priority配置会自动迁移;声明apiKeyEnv的提供方在请求时从该环境变量解析密钥(字面apiKey作为兜底),解析出的密钥绝不写回config.json;patch 里显式的null表示删除该字段,UI 就是用它清空字段的 - DSH 发现 在加载时读取 harness 的
settings.yaml(llm-pi-ai.providers)与.credentials.yaml(refs);被发现的提供方标记为source: "dsh",解析出的密钥只留在内存中(绝不写入config.json),/_xlate/dsh-scan路由可按需重新读取 - host 半边(
lib/index.js):供应商适配器、LRU 缓存(600)、/_xlate/models模型列表、/_xlate/model/pull+pull-status模型下载管理(完成后自动配置启用) - client 半边(
lib/client.js):8 语言 UI、段落/句子分批翻译、流式 Think 行、设置与译文缓存持久化(localStorage) - 纯显示层:原文完整保留在会话日志与模型上下文中
🛠 开发
- 无需构建:
lib/client.js是浏览器 bundle(源码即产物),lib/index.js是 host ESM - 修改 client 后刷新页面即生效;修改 host 后需重启 web
- 8 语言文案在
lib/client.js的UI_TEXT字典中
📄 License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 8597
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 8597
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 4424
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
ccch1mneyyy/dsh-TUI★ 4268
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 4098
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1445
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。