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

俄语界面包 Balla1ore/dsh-locale-ru

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

为网页界面添加俄语翻译,未译条目自动回退英文

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Balla1ore/dsh-locale-ru
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.1-rc.5 下真实安装成功,但当前 dsh 已更新至 0.2.2-rc.1,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/11/05·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 33 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令
查看扫描证据(共 1 处,展示前 1 条)
  • 执行外部命令来自配置/变量
    lib/index.js:108
    const child = spawn(process.execPath, [PATCHER, ...args], { cwd: PACK_ROOT, env, stdio: ['ignore', fd, fd] })
扫描于 2026/11/5(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 俄语界面翻译
  • 未译条目回退英文

DeepSeek Harness 俄语支持:2615 行网页界面 + 165 行外壳(菜单、托盘、对话框、登录窗口)

README

由 DeepSeek 最新模型翻译生成
dsh-locale-ru —— 为 DeepSeek Harness 网页界面提供俄语 DSH 客户端插件:往网页界面里加上 「Русский」 语言,并附带 DSH 自带全部命名空间的翻译词典。 * 2615 行,分布在 58 个命名空间 —— 这是从已安装的 DSH 0.2.0-rc.2(locales/source-en.json)里提取出来的全部英文和中文界面词典。 * 未翻译的行(比如来自更新版 DSH 的)会自动保留英文:语言声明了回退链 ru → en。 * 插件不含依赖,也不需要构建:浏览器那一半就是一个自包含文件 lib/client.js。 组成 | 文件 | 用途 | | package.json | 清单:dsh.client(浏览器那一半)、dsh.bundle(作为套件安装用的 patch)、exports["./client"] | | lib/index.js | 宿主那一半:空的 apply,只是为了让包在 Loader 里有一行记录 | | lib/client.js | 已构建的浏览器 bundle:语言定义 + 全部词典(window.__ModuleLoader__.load) | | locales/ru.json | 翻译源文件:命名空间 → 键 → 俄语文本 |
展开完整文档(README 剩余 1 节)
dsh-locale-ru —— 为 DeepSeek Harness 网页界面提供俄语

DSH 客户端插件:往网页界面里加上 「Русский」 语言,并附带 DSH 自带全部命名空间的翻译词典。

* 2615 行,分布在 58 个命名空间 —— 这是从已安装的 DSH 0.2.0-rc.2(locales/source-en.json)里提取出来的全部英文和中文界面词典。
* 未翻译的行(比如来自更新版 DSH 的)会自动保留英文:语言声明了回退链 ru → en。
* 插件不含依赖,也不需要构建:浏览器那一半就是一个自包含文件 lib/client.js。

组成

| 文件 | 用途 |
| package.json | 清单:dsh.client(浏览器那一半)、dsh.bundle(作为套件安装用的 patch)、exports["./client"] |
| lib/index.js | 宿主那一半:空的 apply,只是为了让包在 Loader 里有一行记录 |
| lib/client.js | 已构建的浏览器 bundle:语言定义 + 全部词典(window.__ModuleLoader__.load) |
| locales/ru.json | 翻译源文件:命名空间 → 键 → 俄语文本 |
| locales/source-en.json | 翻译所依据的英文/中文源(用于校验和后续更新) |
| locale/en.json、locale/ru.json | 「插件」页面上显示的插件名称和描述 |
| cordis.patch.yml | 套件的 patch 层:插入自己的插件行 |
| tools/build-client.mjs | 从 locales/ru.json 构建 lib/client.js |
| tools/verify.mjs | 独立校验:清单、宿主那一半、bundle 加载、语言和词典注册、源覆盖率、{...} 占位符是否一致 |
| tools/install.mjs | 一条命令完成 DSH 配置档里的安装/卸载 |
| tools/extract-dictionaries.cjs | 从已安装的 DSH 里提取词典(DSH 更新后用) |

安装

插件就是普通的本地模块(不是 npm 上的套件),所以安装无非是把文件夹复制进配置档,再在配置档的用户 patch 文件里加一行。

在本文件夹里执行;默认配置档是 "desktop"
node tools/install.mjs --dry-run # 看看会做什么
node tools/install.mjs # 安装

脚本会:

1. 把包复制到 <DSH_HOME>\profiles\<配置档>\plugins\dsh-locale-ru;
2. 往 <DSH_HOME>\profiles\<配置档>\cordis.patch.yml 里加内容(并备份为 cordis.patch.yml.before-locale-ru):

- insert:
- id: locale-ru
name: './plugins/dsh-locale-ru/lib/index.js'

insert 行里的路径相对于 patch 文件本身解析,所以不需要 pnpm install,也不需要配置档的依赖。

手动安装

<DSH_HOME>\profiles\desktop\cordis.patch.yml —— 加到末尾
- insert:
- id: locale-ru
name: './plugins/dsh-locale-ru/lib/index.js'

从 git 安装(不用压缩包,也不用 npm)

「插件」页面接受 git 地址、tarball、本地绝对路径或包名:在「添加插件」里填入仓库地址,DSH 会把包安装成一套组件,之后可以在同一处启用和停用。

发布自己的仓库 —— tools\publish-github.cmd <仓库地址>:脚本会添加 origin、推送 main 分支、打上 v1.0.0 标签,并提醒你发布带归档的 release。仓库必须已存在且为空;登录 GitHub 在 Git Credential Manager 窗口中确认。

启用语言

设置 → 通用 → 语言 → 「Русский」。选择会记在 DSH 设置里。

配置档 HMR 会自己重读配置,所以不用重启宿主;如果语言没出现 —— 刷新页面(F5)。

卸载

node tools/install.mjs --remove

DSH 更新后更新翻译

1. что изменилось в установленном DSH
node tools/extract-dictionaries.cjs --check

2. переизвлечь источник (при необходимости)
node tools/extract-dictionaries.cjs

3. дополнить locales/ru.json новыми ключами и пересобрать бандл
node tools/build-client.mjs
node tools/verify.mjs

窗口菜单(「Application」/「Edit」)

这是界面里唯一不在网页词典里的地方,它分成两部分:

| 部分 | 谁来绘制 | 插件能翻译吗? |
| 标题栏里的「Application」「Edit」标签(Windows) | 桌面外壳,把菜单栏直接插进页面(shadow DOM,lib/preload-app.cjs) | 能 —— 俄语激活期间,包会改写标签和 aria-label |
| 里面的菜单项(「Undo」「Redo」「Cut」「Copy」「Paste」「Delete」「Select All」,子菜单「Application」) | 外壳的主进程 —— 这是 Electron 原生菜单(Menu.popup,lib/main.js) | 不能 —— 从页面够不到它 |

外壳有自己的词典,只有两种语言(165 行,英语和中文, lib/main.js 和两个 preload 脚本),它的语言选择函数只接受 zh 和 en:

// lib/main.js
function resolveDesktopLocale(locale) {
return locale.toLowerCase().startsWith("zh") ? { id: "zh-CN", messages: zh } : { id: "en", messages: en };
}

所以选中俄语时(locale.preference = "ru"),外壳会回退到英语:原生菜单项、托盘菜单、系统对话框、欢迎和更新界面都保持英语。这是应用的局限,不是包的局限:要翻译它们,DSH 得自己为外壳提供俄语表。包翻译的是页面能拿到的东西 —— 菜单栏标签。

「插件」面板里的卡片

包会在侧边栏「插件」里注册自己(槽位 plugins.item):一张「Русский язык」卡片,带简短说明,它的页面上写着翻译了什么、外壳翻译是怎么做的、有哪些手动命令。不用从那里启动任何东西:外壳翻译包会自己准备(见下文)。

完整翻译外壳(应用补丁)

应用外壳(窗口菜单、托盘、对话框、登录窗口、更新界面)它自带的词典只有英文和中文,所以俄语翻译直接写进已安装的应用里——写进 app.asar 内的三个文件:

| 文件 | 翻译什么 |
| lib/main.js | 窗口菜单项、托盘菜单、系统对话框(退出、后台运行)、更新界面和启动错误界面、语言选择 |
| lib/preload-app.cjs | 菜单栏「应用」/「编辑」的标签 |
| lib/preload-welcome.cjs | 登录和欢迎窗口 |

自动完成的部分:

1. 启动时,包的主机端(lib/index.js)会检查应用归档;如果里面没有俄语词典,它会在旁边准备一个修正后的归档(app.asar.locale-ru.new)。这只是普通的文件写入——应用照常运行。
2. 启动器(launch-dsh-ru.vbs)在应用尚未运行时应用准备好的归档,然后启动 DeepSeek Harness。所以 DSH 更新后,你只要像平常一样启动应用就行——翻译会自己回来。

要让这套机制生效,DeepSeek Harness 的快捷方式必须指向启动器:

只需执行一次;原快捷方式会以 .lnk.before-locale-ru 的名字保留在旁边 pwsh -File dsh-locale-ru\tools\install-launcher.ps1 还原快捷方式 pwsh -File dsh-locale-ru\tools\install-launcher.ps1 -Restore

手动方式(如果不想改快捷方式):

.\apply-shell-ru.cmd # 立即应用(DeepSeek Harness 必须已关闭) .\watch-shell-ru.cmd # 监视器:在应用关闭的那一刻应用 .\restore-shell-ru.cmd # 还原原始 app.asar

监视器就是同一个脚本的 --swap-when-free 模式:它先检查准备好的归档,然后每 2 秒尝试替换一次,直到 Windows 释放文件(也就是恰好在应用退出的那一刻)。默认等待 12 小时;结果会显示在窗口里,也会写进 shell-patch.log。

脚本在设计上很谨慎:每次修改都是替换一段精确的文本片段,这段文本必须能找到,否则什么都不改;重建后的归档会逐字节校验所有条目(只有三个文件允许变化),每个修正过的文件都要通过 node --check。原始归档会以 app.asar.before-locale-ru 的名字保留在旁边。

重要:DSH 更新会替换 app.asar,把英文还回来。包会重新准备补丁,启动器会在下次启动时应用它。这是对应用文件的非官方补丁,所以它不能替代 DSH 那边的修复(外壳缺少俄语表)。

兼容性

不要把这个包和另一个 DSH 俄语本地化同时启用(比如 npm 上另一位作者的同名插件):语言 ru 只能注册一次,第二个插件不会加载。如果在启用这个包之前,「设置 → 通用 → 语言」里已经有俄语——先关掉另一个插件。

限制

插件加载前的字符串。 Web 外壳自身的加载界面(Loading plugins…、Failed to load plugins)硬编码在外壳的 bundle 里,插件本身不翻译——它只在首次打开页面时闪现一瞬间。
* 外壳的原生菜单。 窗口菜单项、托盘菜单、系统对话框、欢迎页和更新页由外壳自己翻译,而它只有英文和中文(见上一节)。菜单栏本身的标签由包从页面重写。
* 由宿主注册表持有的文本。 斜杠命令的描述和类似文本在宿主侧以 {en, zh} 对注册,并在客户端词典之外解析,所以这些内容显示英文版本。
* 没有复数规则。 DSH 的本地化系统不支持按数变格,所以带 {count} 的字符串用中性结构翻译,如「Файлы ({count})」「Выбрано: {count}」。
* 第三方库的媒体和按钮(例如 PDF 查看器里的标签)可能保持英文。
* 插件不翻译模型回复和系统提示词——只翻译界面。

检查

node tools/verify.mjs

脚本像浏览器模块系统那样加载 lib/client.js,把插件挂载到替身 ctx 上,并检查:模块的字符串标识符与包名一致,bundle 自给自足,语言 ru 已注册并回退到 en,全部 58 个命名空间已注册,源文件的全部 2615 个键都已翻译,且 {...} 替换的集合与英文一致。
预览分享卡片长什么样 ↓Balla1ore/dsh-locale-ru
分享 · DeepSeek Harness Hub
Balla1ore/dsh-locale-ru

为网页界面添加俄语翻译,未译条目自动回退英文

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部