← 返回列表
未验证
DeepSeek Harness Web GUI 的葡萄牙语巴西语言包。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/31 · 已提供中文文档
DeepSeek Harness Web GUI 的巴西葡萄牙语语言包
综合分
27.9
GitHub 分
27.9
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add grstein/dsh-locale-ptbr该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
- 是什么
- dsh 原生插件 · tool
- 装得上吗
- 本站尚未做安装检查
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 25 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-locale-ptbr
DeepSeek Harness Web GUI 的葡萄牙语(巴西)语言包。
安装到某个 profile 后,它会将“Português (Brasil)”添加到“设置 → 通用”,并实时翻译界面。harness 仓库中的任何内容都不会被修改。
安装
dsh plugin --profile web add github:grstein/dsh-locale-ptbr
dsh --profile web --dump-config # 检查 "# == @grstein/dsh-locale-ptbr" 层
dsh web # 或:dsh --profile
dsh plugin 会转发到 profile 目录内的 pnpm,因此 pnpm 接受的任何说明符都可以使用(github:、本地路径、内部 registry)。
语言选项位于“设置 → 通用 → 语言”。配置为葡萄牙语的浏览器会在首次访问时自动选择 Português (Brasil);显式选择会保存在你的 $DSH_HOME 中 settings.yaml 的 locale.preference 里,并按用户生效。
葡萄牙语版 DeepSeek Harness GUI
移除:dsh plugin --profile web remove @grstein/dsh-locale-ptbr。
dsh web 是 web profile 的快捷方式,不接受 --profile;包含 @deepseek-ai/dsh-web-app bundle 的自定义 profile 可通过 dsh --profile 启动。
翻译内容
Web GUI 的产品文案:33 个命名空间和 1,029 个键——对话、轨迹、工具卡片、工作区、设置、审批、任务、子代理、命令。
按照 harness 的设计,以下内容不会被翻译:模型生成的文本、用户/提供商/协议数据、CLI 和终端输出、文档,以及在 locale 服务激活之前渲染的启动文案。在注册时捕获的文本(例如 registry 中的命令描述)会保持注册时的语言,直到重新注册。
尚未翻译的键会通过 pt-BR → en 回退链自动回退为英语,因此该语言包永远不会显示原始键。
结构
| 路径 | 作用 |
|---|---|
| dicts/.json | 翻译源,每个命名空间一个文件({ namespace, entries }) |
| client.js | 浏览器端生成产物:addLanguage + 每个命名空间一个 register |
| index.js | Node 端(空);存在是因为宿主 Loader 会扫描 dsh.client 清单 |
| cordis.patch.yml | bundle 层,用于插入 locale-ptbr row |
| keys.lock.json | 目标 harness 的键和占位符集合 |
| GLOSSARY.md | 强制使用的 pt-BR 术语 |
| tools/extract-keys.mjs | 对 harness checkout 进行 AST 扫描 → keys.lock.json + en.snapshot.json |
| tools/sync.mjs | 将语言包与更新的 harness 进行比较,并生成翻译增量 |
| tools/build-client.mjs | dicts/.json → client.js |
| tools/check-parity.mjs | 门禁:键、占位符和最新的 client.js |
| tools/check-runtime.mjs | 门禁:产物注册 1 种语言 + 33 个词典,并干净地释放 |
| .github/workflows/ | ci(每次 push 都设门禁)和 drift(每周一监视 harness) |
未纳入版本控制:en.snapshot.json(每个键的英文文本,翻译来源)和 .work/(增量文件)。两者都可以从 harness 的检出中重新生成。
翻译或修正
npm install # 一次:唯一的 dev dependency 是 typescript,用于提取
编辑 dicts/.json
npm run build # 重新生成 client.js
npm test # 键的奇偶校验、占位符、产物和运行时注册
将重新生成的 client.js 连同字典的修改一起提交:如果它过期,门禁会失败。
跟进 harness 的新版本
git -C /path/to/deepseek-harness pull # 或对所需标签进行浅克隆
node tools/sync.mjs /path/to/deepseek-harness # 报告;如果有差异则退出码为 1
node tools/sync.mjs /path/to/deepseek-harness --apply # 采用新的键集合
报告区分三种差异,因为每种的处理方式不同:
| 类型 | 发生了什么 | 如果不做任何处理的影响 |
|---|---|---|
| added | harness 注册了一个包尚未翻译的键 | 该键以英文显示(回退),绝不会是原始键 |
| removed | harness 不再注册该键 | --apply 会从 dicts/ 中移除该条目;门禁会拒绝未知键 |
| reworded | 英文文本发生了变化 | 旧翻译仍会显示,且可能是错误的 |
--apply 会重写 keys.lock.json 和 en.snapshot.json,从 dicts/ 中移除过时的键,重新生成 client.js,并将 .work/.delta.json 写入,其中仅包含需要译者处理的内容——新键的英文文本,以及对于被改写的键,将新英文与当前翻译并列。新键有意不自动填充文本:缺失的键会回退到英文,而复制到字典中的英文看起来像是已翻译,就再也不会被审阅。
将增量文件翻译到 dicts/ 中,然后:
npm run build && npm test
提取需要 harness 的源代码检出(它通过 AST 读取 packages//*/src);npm 上发布的包不包含源代码。对相应标签执行一次 git clone --depth 1 就足够了。
自动监视
.github/workflows/drift.yml 每周一运行:检出 deepseek-ai/deepseek-harness,执行 tools/sync.mjs,如果有差异,就打开(或评论)一个带有报告的 issue。这样滞后会自行显现,而不依赖有人记得在每次发布时检查。
包版本管理
每完成一组翻译就提升 package.json 中的版本,并在 release 的 CHANGELOG 中注明它针对哪个 harnessVersion——keys.lock.json 保存该目标。由于回退到英文绝不会破坏 UI,过时的包会逐渐降级,而不是直接失败。
当前目标:@deepseek-ai/dsh-client-locale 0.1.2-alpha.1。版本历史见 CHANGELOG。
贡献翻译修正
术语分歧由 GLOSSARY.md 裁定,它是本包的权威依据:改动其中固定的某个词,意味着要修改术语表以及所有受影响的文件,而不只是其中一个。
1. 编辑 dicts/.json(仅限值;键和占位符不可改动)。
2. npm run build && npm test。
3. 提交 PR,并一并附上重新生成的 client.js。
与官方项目的关系
本包属于生态,而非分支。DeepSeek Harness 的 CONTRIBUTING 声明,该项目目前不接受外部 pull request,并指出创建自己的插件、打上 dsh-plugin 主题标签,才是贡献的方式。这正是本仓库所做的。
在官方仓库中内置 pt-BR 在技术上也会代价高昂:LOCALE_IDS 是一个类型化的二元组 ['zh', 'en'],而 register(ns, { zh, en }) 这种形式要求两个词典都完整,因此第三种内置语言会在整个插件树中变成编译错误。addLanguage + register(ns, locale, dict) 之所以存在于运行时,正是为了外部包,并带有回退到 en 的链,以容忍不完整的翻译。