🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

对话翻译 nanbujiwanfeng/deepseek-harness-translation

DeepSeek Harness
nanbujiwanfeng44 天前有提交已提供中文文档扫描:含敏感能力

中文对话自动译成英文,回复再回译中文

30.4/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装;安装清单取自 packages/client/ui-translation/package.json。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add nanbujiwanfeng/deepseek-harness-translation
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · ui
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 44 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装;安装清单取自 packages/client/ui-translation/package.json

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@deepseek-ai/dsh-client-ui-translation(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:19:12

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 26 处,展示前 25 条)
  • 读取本地文件
    start-dsh-translation.mjs:31
    const mtimeOf = (p) => (existsSync(p) ? statSync(p).mtimeMs : 0)
  • 读取本地文件
    start-dsh-translation.mjs:31
    const mtimeOf = (p) => (existsSync(p) ? statSync(p).mtimeMs : 0)
  • 读取本地文件
    start-dsh-translation.mjs:34
    if (!existsSync(dir)) return 0
  • 读取本地文件
    start-dsh-translation.mjs:37
    for (const name of readdirSync(d)) {
  • 读取本地文件
    start-dsh-translation.mjs:39
    const st = statSync(p)
  • 执行外部命令固定命令
    start-dsh-translation.mjs:66
    const text = spawnSync('netstat', ['-ano'], { encoding: 'utf8' }).stdout ?? ''
  • 执行外部命令固定命令
    start-dsh-translation.mjs:81
    spawnSync('taskkill', ['/F', '/PID', pid], { stdio: 'ignore' })
  • 发起网络请求
    start-dsh-translation.mjs:88
    const r = await fetch(`${BASE}/`, { signal: AbortSignal.timeout(4000) })
  • 发起网络请求
    start-dsh-translation.mjs:92
    const js = await fetch(`${BASE}/plugins/${CLIENT_PLUGIN}/client.js`, { signal: AbortSignal.timeout(4000) })
  • 执行外部命令来自配置/变量
    start-dsh-translation.mjs:101
    const r = spawnSync(process.env.ComSpec ?? 'cmd.exe', args, {
  • 执行外部命令来自配置/变量
    start-dsh-translation.mjs:118
    const child = spawn(process.env.ComSpec ?? 'cmd.exe', ['/c', 'npm', 'run', 'build'], {
  • 写入本地文件
    start-dsh-translation.mjs:125
    appendFileSync(LOG, d)
  • 写入本地文件
    start-dsh-translation.mjs:131
    appendFileSync(LOG, d)
  • 读取本地文件
    start-dsh-translation.mjs:143
    const text = readFileSync(file, 'utf8')
  • 写入本地文件
    start-dsh-translation.mjs:151
    appendFileSync(LOG, `\n===== ${new Date().toLocaleString()} start =====\n`)
  • 执行外部命令来自配置/变量
    start-dsh-translation.mjs:153
    const child = spawn(
  • 写入本地文件
    start-dsh-translation.mjs:161
    appendFileSync(LOG, `spawn error: ${e.message}\n`)
  • 执行外部命令固定命令
    start-dsh-translation.mjs:189
    spawn('cmd', ['/c', 'start', '', BASE], { stdio: 'ignore', detached: true }).unref()
  • 读取本地文件
    sync-to-harness.mjs:14
    if (!process.argv[2] || !existsSync(join(target, 'package.json'))) {
  • 执行外部命令固定命令
    sync-to-harness.mjs:22
    head = execFileSync('git', ['-C', target, 'rev-parse', '--short', 'HEAD'], { encoding: 'utf8' }).trim()
  • 删除本地文件递归
    sync-to-harness.mjs:28
    rmSync(to, { recursive: true, force: true })
  • 写入本地文件
    sync-to-harness.mjs:29
    mkdirSync(dirname(to), { recursive: true })
  • 执行外部命令固定命令
    sync-to-harness.mjs:43
    execFileSync('git', ['-C', target, 'apply', '--check', '--reverse', patch], { stdio: 'pipe' })
  • 执行外部命令固定命令
    sync-to-harness.mjs:47
    execFileSync('git', ['-C', target, 'apply', '--check', patch], { stdio: 'pipe' })
  • 执行外部命令固定命令
    sync-to-harness.mjs:48
    execFileSync('git', ['-C', target, 'apply', patch], { stdio: 'inherit' })
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 中文消息自动译英文
  • 英文回复回译中文
  • 双语对照显示

为 deepseek-harness 做中英双向对话翻译:中文用户用中文交流,每条消息自动译成英文给智能体,英文回复再译回中文,并在 Web Client 里以双语对照行显示。

README

由 DeepSeek 最新模型翻译生成
dsh-translation-plugin deepseek-harness 的对话翻译插件(面向中国用户):用户用中文对话,插件自动把中文翻译成英文交给 agent 执行;agent 的英文回复自动回译成中文显示。页面同时展示「原文(中文)」和「中文翻译」双语行。 目录结构 | 路径 | 说明 | | packages/session/conversation-translator/ | 宿主插件:翻译管线(zh2en 改写、双语记录、en2zh 回译、失败兜底) | | packages/client/ui-translation/ | 客户端插件:页面双语行渲染 | | examples/web-cordis/translator.cordis.yml | 启用配置(--patch overlay) | | apps/web/tests/translation-rows.e2e.ts | 端到端测试:双语行渲染(可选) | | apps/web/tests/translation-long-text.e2e.ts | 端到端测试:长文本分块翻译(可选) | | harness-integration.patch | 对 harness 的接线改动(tsconfig、bundle 清单等) | | sync-to-harness.mjs | 一键安装/同步脚本 |
展开完整文档(README 剩余 1 节)
dsh-translation-plugin

deepseek-harness 的对话翻译插件(面向中国用户):用户用中文对话,插件自动把中文翻译成英文交给 agent 执行;agent 的英文回复自动回译成中文显示。页面同时展示「原文(中文)」和「中文翻译」双语行。

目录结构

| 路径 | 说明 |
| packages/session/conversation-translator/ | 宿主插件:翻译管线(zh2en 改写、双语记录、en2zh 回译、失败兜底) |
| packages/client/ui-translation/ | 客户端插件:页面双语行渲染 |
| examples/web-cordis/translator.cordis.yml | 启用配置(--patch overlay) |
| apps/web/tests/translation-rows.e2e.ts | 端到端测试:双语行渲染(可选) |
| apps/web/tests/translation-long-text.e2e.ts | 端到端测试:长文本分块翻译(可选) |
| harness-integration.patch | 对 harness 的接线改动(tsconfig、bundle 清单等) |
| sync-to-harness.mjs | 一键安装/同步脚本 |
| start-dsh-translation.bat / .mjs | Windows 一键启动脚本(同步时拷入 harness 根目录) |

前置要求

- deepseek-harness 源码 checkout,版本锁定 commit 47f943859b(v0.1.0-rc.5)
- Node.js 20+、pnpm
- 可用的 DeepSeek API 配置(翻译会真实调用模型,消耗你自己的配额;不额外指定时直接复用 agent 的 provider/model 路由)

版本对应

每个版本锁定的 harness commit 见下表,升级 harness 前先确认有对应版本:

| 插件 tag | 适配 harness commit | 说明 |
| v0.1.0-rc.5 | 47f943859b(v0.1.0-rc.5) | 首个发布 |

详见 CHANGELOG.md。

安装(首次)

克隆插件仓库(国内网络走镜像):

git clone https://github.com/nanbujiwanfeng/deepseek-harness-translation.git
国内网络:
git clone https://ghfast.top/https://github.com/nanbujiwanfeng/deepseek-harness-translation.git

在任意目录执行(harness 仓库路径换成你自己的):

node /sync-to-harness.mjs
cd
pnpm install
npm run build
npm run dsh -- web --patch examples/web-cordis/translator.cordis.yml

打开 http://127.0.0.1:3080 ,用中文对话即可。用户消息旁会显示「原文(中文)」行,agent 回复下方会显示「中文翻译」行。

Windows 用户也可以直接双击同步进 harness 根目录的 start-dsh-translation.bat 一键启动:自动处理端口占用、构建过期,并自动带上 --patch 参数和校验插件加载(macOS/Linux 仍用上面的命令行)。

更新同步

插件作者推送更新后:

git pull # 拉取插件仓库更新
node sync-to-harness.mjs # 重跑同步(幂等,可放心重复执行)
pnpm install && npm run build

手动安装(不用脚本)

1. 把 packages/session/conversation-translator、packages/client/ui-translation 拷进 harness 仓库对应目录
2. 把 examples/web-cordis/translator.cordis.yml 拷到对应位置
3. 把 apps/web/tests/translation-rows.e2e.ts 拷到对应位置
4. 在 harness 仓库根目录执行 git apply /harness-integration.patch
5. pnpm install && npm run build

配置项

见 examples/web-cordis/translator.cordis.yml 中的注释。所有字段都有默认值:

| 字段 | 默认 | 含义 |
| enabled | true | 双向翻译总开关 |
| provider / model | 空 | 留空 = 复用 agent 自己的模型路由;成对填写可指定独立翻译模型 |
| timeoutMs | 30000 | 单次翻译调用的超时 |
| maxTokens | 4096 | 单次翻译的输出 token 上限 |
| temperature | 0.1 | 翻译是客观任务,默认低温度保证确定性 |

翻译失败不影响主流程:原始消息照常交给 agent 执行,控制台只打 warning。

验证

宿主单元测试(28 个用例)
npx vitest run packages/session/conversation-translator/tests/translator.spec.ts

浏览器端到端测试(可选,需要 Playwright;未下载浏览器时可用系统 Edge)
DSH_PLAYWRIGHT_EXECUTABLE_PATH="C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe" \
npx vitest run --config vitest.web.config.ts apps/web/tests/translation-rows.e2e.ts

升级 harness 注意 harness-integration.patch 基于 commit 47f943859b 生成。如果之后升级 harness 本身,补丁可能冲突失效,需要插件作者针对新版本重新生成补丁(插件源码部分不受影响)。

常见问题

- 翻译没触发:用户消息需含中文字符才会翻译;纯英文消息直接放行(本来就无需翻译)。
- 端口被占:默认 3080,被占用时参考 harness 文档指定其他端口(--patch 一个覆盖 webserver.port 的 yml 即可)。
- 想要关闭某一方向:删掉 translator.cordis.yml 里对应的那一行 insert 即可(宿主行关翻译管线,客户端行关页面展示)。
- 启动报 duplicate loader entry id: conversation-translator:说明这个 harness checkout 的 packages/bundle/web-app/cordis.patch.yml 里已经内置了插件行(比如自己 fork 提交过),此时不要加 --patch,直接 dsh web 即可;本集成补丁本身不会往 bundle 里加行,标准 checkout 一律用 --patch 激活。
- 对已集成的 fork 重跑同步:sync-to-harness.mjs 会先做补丁反向检查,接线已提交时自动跳过 git apply,只覆盖插件文件,随后 pnpm install && npm run build 即可。
- npm 安装的 dsh(npx @deepseek-ai/dsh)能用吗:暂不支持。本插件面向源码 checkout 用户(同步脚本需要仓库目录来打接线补丁),npm 发布版没有源码目录;待 harness 提供 npm 插件安装机制后再适配。

许可

MIT(基于 deepseek-harness,Copyright (c) 2026 DeepSeek)。
预览分享卡片长什么样 ↓nanbujiwanfeng/deepseek-harness-translation
分享 · DeepSeek Harness Hub
nanbujiwanfeng/deepseek-harness-translation

中文对话自动译成英文,回复再回译中文

这是你的仓库?认领条目

回到顶部