DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Locale Ptbr — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
L

@grstein/dsh-locale-ptbr

Locale Ptbr

DeepSeek Harness Web GUI 的巴西葡萄牙语语言包

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:grstein/dsh-locale-ptbr#c7705e6a9897c9ef766388568581e56b61f4dee0
README兼容性版本

兼容性与来源证明

Locale Ptbr 以 @grstein/dsh-locale-ptbr 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/8/31

版本

0.1.0stable
2026/8/31

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/31
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包Pet@linxin666/dsh-pet适用于 dsh Web GUI 的多宠物伴侣插件:由注册表驱动的浮动宠物,可响应模型活动,支持为每只宠物命名、抚摸/喂食互动以及亲密度评分

README

dsh-locale-ptbr

Pacote de idioma Português (Brasil) para a GUI Web do DeepSeek Harness.

Instalado em um profile, ele acrescenta "Português (Brasil)" a Configurações → Geral e traduz a interface ao vivo. Nada no repositório do harness é alterado.

Instalar

dsh plugin --profile web add github:grstein/dsh-locale-ptbr
dsh --profile web --dump-config   # confere a camada "# == @grstein/dsh-locale-ptbr"
dsh web                           # ou: dsh --profile <outro-perfil>

dsh plugin encaminha para o pnpm dentro do diretório do profile, então qualquer especificador aceito pelo pnpm serve (github:, um caminho local, um registry interno).

O idioma entra em Configurações → Geral → Idioma. Um navegador configurado em português seleciona Português (Brasil) sozinho no primeiro acesso; a escolha explícita fica gravada em locale.preference no settings.yaml do seu $DSH_HOME e vale por usuário.

A GUI do DeepSeek Harness em português

Remover: dsh plugin --profile web remove @grstein/dsh-locale-ptbr.

dsh web é o atalho do profile web e não aceita --profile; um profile próprio que inclua o bundle @deepseek-ai/dsh-web-app sobe com dsh --profile <nome>.

O que é traduzido

A cópia de produto da GUI Web: 33 namespaces e 1.029 chaves — conversa, trajetória, cards de ferramenta, workspace, configurações, aprovações, jobs, subagentes, comandos.

Não é traduzido, por design do harness: o texto gerado pelo modelo, dados de usuário/provedor/protocolo, a saída do CLI e do terminal, a documentação, e a cópia de boot renderizada antes do serviço de locale ativar. Texto capturado no momento do registro (por exemplo, descrições de comando no registry) mantém o idioma do registro até um novo registro.

Chaves ainda não traduzidas caem automaticamente em inglês pela cadeia de fallback pt-BR → en, então o pacote nunca mostra chave crua.

Estrutura

CaminhoPapel
dicts/<ns>.jsonFonte de tradução, um arquivo por namespace ({ namespace, entries })
client.jsMetade browser gerada: addLanguage + um register por namespace
index.jsMetade Node (vazia); existe porque o Loader do host varre o manifesto dsh.client
cordis.patch.ymlCamada do bundle que insere a row locale-ptbr
keys.lock.jsonConjunto de chaves e placeholders do harness alvo
GLOSSARY.mdTerminologia pt-BR obrigatória
tools/extract-keys.mjsVarredura AST de um checkout do harness → keys.lock.json + en.snapshot.json
tools/sync.mjsCompara o pacote com um harness mais novo e gera o delta de tradução
tools/build-client.mjsdicts/*.json → client.js
tools/check-parity.mjsGate: chaves, placeholders e client.js atualizado
tools/check-runtime.mjsGate: o artefato registra 1 idioma + 33 dicionários e descarta limpo
.github/workflows/ci (gates a cada push) e drift (vigia o harness toda segunda)

Não versionados: en.snapshot.json (texto em inglês de cada chave, fonte de tradução) e .work/ (arquivos de delta). Ambos são regeneráveis a partir de um checkout do harness.

Traduzir ou corrigir

npm install       # uma vez: o único dev dependency é o typescript, usado pela extração
# edite dicts/<ns>.json
npm run build     # regenera client.js
npm test          # paridade de chaves, placeholders, artefato e registro em runtime

Envie client.js regenerado junto com a alteração do dicionário: o gate falha se ele estiver desatualizado.

Acompanhar uma versão nova do harness

git -C /caminho/para/deepseek-harness pull      # ou clone raso da tag desejada
node tools/sync.mjs /caminho/para/deepseek-harness           # relatório; sai 1 se houver diferença
node tools/sync.mjs /caminho/para/deepseek-harness --apply   # adota o novo conjunto de chaves

O relatório separa três tipos de diferença, porque cada um dá trabalho diferente:

TipoO que aconteceuEfeito se nada for feito
addedO harness registra uma chave que o pacote ainda não traduzA chave aparece em inglês (fallback), nunca crua
removedO harness deixou de registrar a chave--apply remove a entrada de dicts/; o gate rejeita chave desconhecida
rewordedO texto em inglês mudouA tradução antiga continua exibida e pode estar errada

--apply reescreve keys.lock.json e en.snapshot.json, remove as chaves obsoletas de dicts/, regenera client.js e grava .work/<ns>.delta.json com apenas o que precisa de tradutor — o texto em inglês das chaves novas e, para as reformuladas, o inglês novo ao lado da tradução atual. Chaves novas não recebem texto automático de propósito: chave ausente cai em inglês, enquanto um inglês copiado para dentro do dicionário pareceria traduzido e nunca mais seria revisto.

Traduza os arquivos de delta para dentro de dicts/, e então:

npm run build && npm test

A extração exige um checkout de código-fonte do harness (ela lê packages/*/*/src pela AST); o pacote publicado no npm não traz as fontes. Um git clone --depth 1 da tag correspondente basta.

Vigilância automática

.github/workflows/drift.yml roda toda segunda-feira: faz checkout do deepseek-ai/deepseek-harness, executa tools/sync.mjs e, havendo diferença, abre (ou comenta em) uma issue com o relatório. Assim a defasagem aparece sozinha, sem depender de alguém lembrar de conferir a cada release.

Versionamento do pacote

Suba a versão em package.json a cada conjunto de traduções e anote no CHANGELOG do release qual harnessVersion ele mira — keys.lock.json guarda esse alvo. Como o fallback para inglês nunca quebra a UI, um pacote defasado degrada aos poucos em vez de falhar.

Alvo atual: @deepseek-ai/dsh-client-locale 0.1.2-alpha.1. O histórico de versões está no CHANGELOG.

Contribuir com uma correção de tradução

Divergências de terminologia são resolvidas pelo GLOSSARY.md, que é a autoridade do pacote: mudar uma palavra que ele fixa significa mudar o glossário e todos os arquivos afetados, não só um deles.

  1. Edite dicts/<ns>.json (apenas valores; chaves e placeholders são intocáveis).
  2. npm run build && npm test.
  3. Abra um PR com o client.js regenerado junto.

Relação com o projeto oficial

Este pacote é ecossistema, não um fork. O CONTRIBUTING do DeepSeek Harness declara que o projeto não aceita pull requests externos no momento e indica a criação de plugins próprios, marcados com o tópico dsh-plugin, como a forma de contribuir. É exatamente o que este repositório é.

Um pt-BR embutido no repositório oficial também seria caro tecnicamente: LOCALE_IDS é um par tipado ['zh', 'en'] e a forma register(ns, { zh, en }) exige os dois dicionários completos, então um terceiro idioma interno viraria erro de compilação em toda a árvore de plugins. addLanguage + register(ns, locale, dict) existem no runtime justamente para pacotes externos, com cadeia de fallback até en para tolerar tradução incompleta.