DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Locale Ptbr — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
L

@grstein/dsh-locale-ptbr

Locale Ptbr

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

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:grstein/dsh-locale-ptbr#c7705e6a9897c9ef766388568581e56b61f4dee0
READMECompatibilityVersions

Compatibility and provenance

Locale Ptbr is published as @grstein/dsh-locale-ptbr and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/31/2026

Versions

0.1.0stable
8/31/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
8/31/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundlePet@linxin666/dsh-petMulti-pet companion plugin for the dsh web GUI: a registry-driven floating pet that reacts to model activity, with per-pet naming, petting/feeding interactions and an affinity score

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.