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

俄语本地化 nemezida1337/dsh-locale-russian

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

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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 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 协议分发。
预览分享卡片长什么样 ↓nemezida1337/dsh-locale-russian
分享 · DeepSeek Harness Hub
nemezida1337/dsh-locale-russian

DeepSeek Harness 俄语本地化:界面翻译、插件说明,以及本地俄语语音输入(GigaAM v3)

这是你的仓库?认领条目

回到顶部