DeepSeek Harness 俄语本地化:界面翻译、插件说明,以及本地俄语语音输入(GigaAM v3)
32.2/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add nemezida1337/dsh-locale-russian该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 41 处,展示前 37 条)
- 发起网络请求lib/index.js:122
const response = await fetch(archiveUrl, { signal: AbortSignal.timeout(300_000) }) - 写入本地文件lib/index.js:147
writeFileSync(join(tempDir, archiveName), archive) - 执行外部命令固定命令lib/index.js:148
const untar = spawnSync('tar', ['-xzf', archiveName], { cwd: tempDir, encoding: 'utf8' }) - 读取本地文件lib/index.js:152
if (!existsSync(extracted)) throw new Error(`В архиве движка нет файла ${binary}`) - 写入本地文件lib/index.js:153
mkdirSync(dirname(binaryPath), { recursive: true }) - 写入本地文件lib/index.js:154
copyFileSync(extracted, binaryPath) - 写入本地文件lib/index.js:155
chmodSync(binaryPath, 0o755) - 执行外部命令来自配置/变量lib/index.js:156
const probe = spawnSync(binaryPath, ['--version'], { encoding: 'utf8' }) - 删除本地文件递归lib/index.js:161
rmSync(tempDir, { recursive: true, force: true }) - 发起网络请求lib/index.js:168
const response = await fetch(url, { signal: AbortSignal.timeout(20_000) }) - 读取本地文件lib/index.js:220
return MODEL_FILES.every((file) => existsSync(join(modelDir, file))) - 读取本地文件lib/index.js:226
if (existsSync(hotwordsFile)) return - 写入本地文件lib/index.js:227
mkdirSync(dirname(hotwordsFile), { recursive: true }) - 写入本地文件lib/index.js:228
writeFileSync(hotwordsFile, SEED_HOTWORDS, 'utf8') - 读取本地文件lib/index.js:251
for (const line of readFileSync(hotwordsFile, 'utf8').split('\n')) add(line) - 执行外部命令来自配置/变量lib/index.js:302
const child = spawn(binaryPath, [ - 发起网络请求lib/index.js:327
const response = await fetch(`${origin}/ready`, { signal: AbortSignal.timeout(2_000) }) - 发起网络请求lib/index.js:392
const response = await fetch(url, { - 执行外部命令来自配置/变量lib/index.js:438
const child = spawn(binaryPath, [ - 读取本地文件lib/index.js:503
if (existsSync(binaryPath)) { - 读取本地文件lib/index.js:592
if (!existsSync(binaryPath) || !hasModel()) return - 执行外部命令固定命令bin/dsh-locale-russian-install.mjs:75
const result = spawnSync('sh', [script], { stdio: 'inherit' }) - 读取本地文件bin/dsh-locale-russian-install.mjs:87
const version = JSON.parse(readFileSync(resolve(here, '..', 'package.json'), 'utf8')).version - 读取本地文件bin/desktop-install.mjs:31
if (!existsSync(path)) throw new Error(`в профиле нет package.json: ${path}`) - 读取本地文件bin/desktop-install.mjs:34
manifest = JSON.parse(readFileSync(path, 'utf8')) - 写入本地文件bin/desktop-install.mjs:77
writeFileSync(temporary, content) - 写入本地文件bin/desktop-install.mjs:78
renameSync(temporary, path) - 写入本地文件bin/desktop-install.mjs:85
mkdirSync(backupDir, { recursive: true }) - 写入本地文件bin/desktop-install.mjs:88
if (existsSync(source)) copyFileSync(source, join(backupDir, name)) - 读取本地文件bin/desktop-install.mjs:88
if (existsSync(source)) copyFileSync(source, join(backupDir, name)) - 读取本地文件bin/desktop-install.mjs:95
if (!existsSync(profileDir)) return undefined - 读取本地文件bin/desktop-install.mjs:96
const dirs = readdirSync(profileDir) - 读取本地文件bin/desktop-install.mjs:114
if (existsSync(candidate)) return { command: process.execPath, args: [candidate] } - 执行外部命令固定命令bin/desktop-install.mjs:116
const onPath = spawnSync('pnpm', ['--version'], { encoding: 'utf8' }) - 执行外部命令来自配置/变量bin/desktop-install.mjs:124
const result = spawnSync(pnpm.command, [...pnpm.args, 'install', '--no-frozen-lockfile'], { - 写入本地文件bin/desktop-install.mjs:199
if (existsSync(source)) copyFileSync(source, join(profileDir, name)) - 删除本地文件递归bin/desktop-install.mjs:218
rmSync(backupDir, { recursive: true, force: true })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-locale-russian
DeepSeek Harness Web 界面的俄语本地化,附带俄语语音输入:语音识别在本地运行,不走云端,也不需要 API 密钥。
快速开始
DeepSeek Harness 桌面应用,最常见的情况:
npx dsh-locale-russian-install --desktop
重启应用,选择 设置 → 通用 → 语言 → 俄语。搞定:界面变成俄语,变格(「1 файл」「2 файла」「5 файлов」)开箱即用。
dsh web 服务端:
dsh plugin --profile web add dsh-locale-russian
不必手动启动任何东西:把这个仓库的链接发给智能体,它会自己安装包。详细说明和常见问题见 FAQ。
语音输入是这个包的另一半。它需要内置的「语音输入」插件,以及一次性下载的识别引擎:
1. 在「插件」页面启用「语音输入」;
2. 打开它的卡片,点 「下载并准备」,引擎和模型会自动下载并配置好;
3. 重启应用,点输入框里的麦克风。
详细说明见「语音输入」一节。
展开完整文档(README 剩余 1 节)
dsh-locale-russian
DeepSeek Harness Web 界面的俄语本地化,附带俄语语音输入:语音识别在本地运行,不走云端,也不需要 API 密钥。
快速开始
DeepSeek Harness 桌面应用,最常见的情况:
npx dsh-locale-russian-install --desktop
重启应用,选择 设置 → 通用 → 语言 → 俄语。搞定:界面变成俄语,变格(「1 файл」「2 файла」「5 файлов」)开箱即用。
dsh web 服务端:
dsh plugin --profile web add dsh-locale-russian
不必手动启动任何东西:把这个仓库的链接发给智能体,它会自己安装包。详细说明和常见问题见 FAQ。
语音输入是这个包的另一半。它需要内置的「语音输入」插件,以及一次性下载的识别引擎:
1. 在「插件」页面启用「语音输入」;
2. 打开它的卡片,点 「下载并准备」,引擎和模型会自动下载并配置好;
3. 重启应用,点输入框里的麦克风。
详细说明见「语音输入」一节。
功能
| 功能 | 具体内容 |
| 界面翻译 | 75 个 namespace 中共 3929 行:面板、设置、对话框、工具卡片、提示、UI 错误、计量单位和日期格式 |
| 插件描述 | 555 行:「内置插件」分区和插件概览里卡片的名称与描述 |
| 俄语变格 | 按 Intl.PluralRules('ru') 选择形式,而不是按英语的「1 或很多」规则 |
| 语音输入 | 内置语音输入用的本地识别器 GigaAM v3:音频不离开本机,不需要密钥,一键安装 |
| 术语 | 统一词汇表(GLOSSARY.md)和风格规则(STYLE.md),由 linter 检查 |
| 安装 | 单个包:可从 npm、git、tarball 或本地路径安装 |
这个包是 DSH 的普通客户端插件:它把语言 ru 加入可扩展的语言目录,并为界面所有 namespace 注册翻译。缺失的键会自动显示英文,所以翻译不完整也不会弄坏界面。同时它又是一个 bundle,因此一条命令就能安装,也能像普通包一样更新。
字符串取自三个来源:已安装应用的客户端包(app.asar)、CLI 构建和仓库。没有遗漏的键——最新数字和按 namespace 的拆分见覆盖率看板。
界面预览
俄语主界面
设置中的语言选择
安装
这个包不需要 fork DeepSeek Harness,也不改动它的文件。
web 配置档(dsh web 服务端)
dsh plugin --profile web add dsh-locale-russian
这条命令用 pnpm 从 npm 安装包,把它加入 dependencies 和 dsh.profile.bundles,之后 locale-ru 这一行就会出现在构建出的依赖树里。
如果刚发布后 pnpm 装的是上一个版本——这是它防止包太新的保护机制在起作用;请显式指定版本(dsh-locale-russian@0.7.2),或者稍后重试。这种情况下 npm 会直接装最新版本。
同样可以从 git 或本地路径安装:
dsh plugin --profile web add github:nemezida1337/dsh-locale-russian
dsh plugin --profile web add file:/абсолютный/путь/к/рабочей/копии
DeepSeek Harness 应用(desktop)
desktop 配置档属于 Electron 应用,CLI 拒绝管理它。安装只需一条命令:它会找到配置档、做备份、添加依赖和 bundle 行(放在语音输入之前,好让服务商立刻成为默认选项)、用应用内置的 pnpm 安装包,并检查结果。
npx dsh-locale-russian-install --desktop
实用模式:--dry-run——只显示改动不写入,--revert——回滚安装,--profile <путь>——换一个 DSH 目录。
不用终端:在「插件」页面开启「用户插件市场」,打开「浏览」→「索引源」标签页,添加地址 https://nemezida1337.github.io/dsh-locale-russian/index.json,然后从「浏览」里安装这个包。
手动:把 "dsh-locale-russian": "^0.7.3" 加入 ~/.dsh/profiles/desktop/package.json,并把 dsh-locale-russian 加入它的 dsh.profile.bundles,然后在配置档目录执行 pnpm add dsh-locale-russian。pnpm 在应用内部:…/DeepSeek Harness.app/Contents/Resources/runtime/primary-runtime/dependencies/pnpm/bin/pnpm.mjs。
用补丁行——需要一份可实时改动的工作副本时:把仓库副本放到固定位置,加入 ~/.dsh/profiles/desktop/cordis.patch.yml,保留其余记录:
- insert:
- id: locale-ru
name: file:///абсолютный/путь/к/dsh-locale-russian/lib/index.js
不管用哪种方式,改完都要重启应用。语言在设置 → 通用 → 语言里选;如果系统和应用内浏览器都设成俄语,界面会自动切换。
卸载
- 应用:npx dsh-locale-russian-install --desktop --revert(也可以在「插件」页面删掉这个包);
- web 配置档:dsh plugin --profile web remove dsh-locale-russian。
语音输入引擎和模型会留在 ~/.dsh/bin 和 ~/.gigastt,可以手动删除。
语音输入
这个包不只有词表:它的宿主侧部分(lib/index.js)在标准注册表 speechToText 里注册了服务商 gigaam-local,所以麦克风、波形、Stop/Cancel 和文本插入都还是原样的,识别则在本机通过 gigastt 和 SberDevices 的 GigaAM v3 模型(e2e_rnnt,INT8,271 MB)完成。
一键搞定
1. 在「插件」页面打开「语音输入」——这是 DSH 的标准插件,出厂时是关的。
2. 打开它的卡片,点「下载并准备」。服务商会自己下载对应平台的引擎(macOS arm64、Linux x64/arm64、Windows x64),校验发布包的校验和,解压到 ~/.dsh/bin,然后下载模型到 ~/.gigastt/models 并启动。两步的进度都能在卡片里看到。
3. 重启应用——语音输入设置里会出现 GigaAM v3 (локально, RU)。
如果默认选的是俄语识别器,引擎会在启动几秒后在后台预热:第一次听写不用等模型加载。
删掉引擎或模型,同一个按钮能把它们恢复回来。终端里的替代方案是 npx dsh-locale-russian-install。没有现成构建的平台上,请手动下载 gigastt 发布包,并在插件设置里填 binaryPath。
默认服务商
服务商会出现在「识别服务」列表里,在设置里选。想让俄语识别器一开始就是默认选项,往 ~/.dsh/profiles/<профиль>/cordis.patch.yml 里加:
- id: speech-to-text
config:
defaultProvider: gigaam-local
这个包本身也带这份补丁,但只有当语音输入 bundle 在 dsh.profile.bundles 里排在我们前面时才会生效:补丁按层顺序应用。配置档补丁里的这一行最后应用,不管顺序如何都有效;在设置里做的选择会覆盖它。
识别词表(hotwords)
品牌词和术语的准确写法放在 ~/.dsh/speech-ru/hotwords.txt,一行一个短语,改完从下一次听写起生效,不用重启。内置列表:DeepSeek Harness、DSH、GigaAM、gigastt。别加同一短语里太相似的片段:互相竞争的条目会把结果搞坏。
隐私
- 音频在本地处理:引擎只监听 127.0.0.1 的随机端口,不向网络发送任何内容。
- 不使用 API 密钥和订阅;模型和引擎就是磁盘上的普通文件。
- 包不收集遥测数据:唯一的网络通信是安装时的 npm,以及你明确操作后下载引擎和模型。
如果不需要语音输入
什么都不用做:不启用语音输入包,宿主侧就不会激活,翻译照常工作。只要你不自己点准备按钮,引擎和模型就不会下载。
安装后检查
1. 语言:「设置 → 通用 → 语言」——选中「Русский」,界面显示俄语。
2. 页面:页面源码中为 html lang="ru"。
3. 语音输入:「插件 → 语音输入 → 识别服务」——列表中有 GigaAM v3 (локально, RU),状态为「就绪」。麦克风按钮可录音并插入文本。
诊断
| 症状 | 原因 | 怎么办 |
| 界面仍是英语 | 未选择语言,或包不在组合中 | 「设置 → 通用 → 语言」→「Русский」;检查 dsh plugin --profile <имя> list 并重启应用 |
| 部分字符串为英语 | 键是新的,尚未翻译 | 正常行为:缺失的键回退到英语;更新到包的最新版本 |
| 「识别服务」中没有 GigaAM v3 | 未启用自带的「语音输入」,或未安装我们的包 | 在「插件」页面启用「语音输入」,安装包,重启 |
| 服务商存在,但未设为默认 | 层顺序:我们的补丁应用得更早 | 在设置中选择,或在配置档补丁中添加一行(见上文) |
| 「无法下载引擎」 | 无网络或 GitHub 不可达 | 重试「下载并准备」按钮;若被封锁,手动下载 gigastt 发布版并指定 binaryPath |
| 「GigaAM 模型未准备」 | 模型被删除或未下载完 | 「插件 → 语音输入」卡片 →「下载并准备」 |
| 听写混淆术语 | 词典不认识你的词 | 将短语写入 ~/.dsh/speech-ru/hotwords.txt |
| 包无法加载,日志中出现 engines.dsh | DSH 版本超出范围 | 更新包——范围会随新构建的验证而扩大 |
应用日志:~/Library/Logs/DeepSeek Harness/(macOS)。翻译覆盖率见仪表板。
工作原理
1. 插件声明语言:ctx.locale.addLanguage({ id: 'ru', label: 'Русский', fallback: 'en' })。
2. 为每个 namespace 注册词典:ctx.locale.register(namespace, 'ru', {...})。键与原始一致,值为俄语。
3. 俄语词形变化:词典最多可存三种形式,用 | 分隔;包会替换 LocaleRuntime.prototype.translate,按数字选择对应形式。非 ru 语言区域会调用原方法,所以英文和中文界面照常工作。
4. 插件元数据:描述和名称由宿主以 LocalizedText 形式传入,经 LocaleRuntime.resolveText 渲染;包也替换了这个方法。如果包提供了自己的俄语版本,就以包的版本为准。
5. 语音输入:宿主侧在标准注册表 speechToText 中注册服务商 gigaam-local;当该服务商被设为默认时,引擎在后台预热,其余情况在首次听写时启动。
在 DSH 0.2.2 中,俄语和 common/settings 两个小词典已内置于内核:包对它们做补充——已占用的槽位不影响激活,对应译文会覆盖上去。关于形式格式的更多说明见 STYLE.md。
兼容性
- 清单中的 engines.dsh(^0.1.5-rc.1 || ^0.2.1-rc.2 || ^0.2.2-alpha.2)列出了已验证的构建:0.1.5-rc.x(命令行构建,客户端包为 0.1.5-rc.2)、命令行构建 0.2.1-rc.2…rc.4、应用 0.2.1-rc.3 和 0.2.1-rc.5(客户端包从 app.asar 解包)以及来自 alpha 标签的 0.2.2-alpha.2。没有遗漏:0.2.1-rc.5 中没有任何新增字符串,删除了一条,英文文本未变。
- 语音输入已在带语音输入 bundle 和不带它的实际组合中验证;宿主侧测试包含在 npm test 中。
- 包使用公开的语言区域契约(addLanguage、register、getSnapshot)以及运行时的两个私有方法:translate 用于词形变化,resolveText 用于插件元数据。两处调用都有类型检查保护:如果方法消失,包仍能工作——词形变化不再选择,插件描述保持英文,界面字符串不受影响。
- 上游讨论:词形变化钩子、外壳本地化 和 可本地化的技能描述;文本见 contrib/upstream-issues.md,插件展示页见 discussions/10146。
参与
- 安装、语音输入和更新相关问题——见 FAQ 和 仓库讨论区(「问题」和「想法」分类)。
- 发现翻译错误——按模板提交 issue。
- 想提交修改——见 CONTRIBUTING.md:翻译规则、发布流程,以及如何用生成器 tools/scaffold-locale.mjs 添加新语言。
- 按 namespace 和来源统计的覆盖率 —— 仪表盘。
- DeepSeek Harness 讨论区里的回复由每周工作流检查,有新评论时会在本仓库开 issue。
- 给维护者:docs/DEVELOPMENT.md(工具、CI、发布)和 docs/MAINTENANCE.md(维护清单:DSH 新版本、引擎、翻译投诉)。
链接
| 内容 | 地址 |
| npm 包 | https://www.npmjs.com/package/dsh-locale-russian |
| 发布与变更历史 | https://github.com/nemezida1337/dsh-locale-russian/releases |
| 覆盖率仪表盘 | https://nemezida1337.github.io/dsh-locale-russian/ |
| 市场索引(用于「插件 → 概览」) | https://nemezida1337.github.io/dsh-locale-russian/index.json |
| DSH 讨论区展示页 | https://github.com/deepseek-ai/deepseek-harness/discussions/10146 |
| 提案:变格钩子 | https://github.com/deepseek-ai/deepseek-harness/discussions/10147 |
| 提案:外壳本地化 | https://github.com/deepseek-ai/deepseek-harness/discussions/10148 |
| 提案:可本地化的技能描述 | https://github.com/deepseek-ai/deepseek-harness/discussions/11533 |
| DSH 插件配方 | contrib/plugin-recipe.md |
| DeepSeek Harness | https://github.com/deepseek-ai/deepseek-harness |
| gigastt(识别引擎) | https://github.com/ekhodzitsky/gigastt |
| GigaAM(模型) | https://github.com/salute-developers/GigaAM |
关于项目
非官方本地化,与 DeepSeek 无关。GigaAM 模型由其作者按 MIT 协议分发;gigastt 引擎是独立项目,有自己的协议。本包按 MIT 协议分发。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
nemezida1337/dsh-locale-russian
DeepSeek Harness 俄语本地化:界面翻译、插件说明,以及本地俄语语音输入(GigaAM v3)
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目