Skip to content
dsh.fish
Bundle

@negriniainda/dsh-locale-ptbr

Brazilian Portuguese (pt-BR) locale plugin for DeepSeek Harness — translates the Web UI and auto-activates for Portuguese browsers.

Source
negriniainda
License
MIT
Updated
Updated 20 days ago

Readme

# @negriniainda/dsh-locale-ptbr

Plugin de **Português do Brasil (pt-BR)** para o [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH).

Traduz a interface web (menus, configurações, conversa, barra lateral, espaços de trabalho, subagentes, fluxos de trabalho etc.) para português brasileiro e ativa o idioma automaticamente em navegadores configurados em português.

> **Status:** o runtime oficial de idiomas do DSH embute apenas `zh` e `en` e **não** expõe uma API pública para registrar um terceiro idioma selecionável. Este plugin registra os dicionários via API pública e aplica uma pequena *ponte* isolada para tornar `pt-BR` selecionável e ativá-lo automaticamente. Veja [UPSTREAM.md](UPSTREAM.md) para o caminho de suporte de primeira classe.

## Instalação

```sh
dsh plugin --profile web add @negriniainda/dsh-locale-ptbr
```

## Como funciona

- **Registro dos dicionários** — `lib/dicts.js` contém a tradução completa, namespace por namespace, espelhando os conjuntos de chaves `en`/`zh` oficiais. O cliente (`lib/client.js`, gerado) registra cada dicionário no runtime de idiomas via `locale.register(ns, 'pt-BR', dict)`.
- **Ponte de ativação** — como a lista de idiomas selecionáveis está congelada em `zh`/`en`, o plugin adiciona `pt-BR` à lista e ativa o idioma quando o navegador está em português e o usuário **não** fez uma escolha explícita de `zh`/`en`. A ponte é defensiva (com *feature detection* e `try/catch`): se o upstream mudar a estrutura interna, o plugin degrada sem quebrar nada — os dicionários continuam registrados e prontos.

## Comportamento

| Cenário | Resultado |
|---|---|
| Navegador em `pt`/`pt-BR`/`pt-PT`, sem escolha explícita | Interface em **pt-BR** automaticamente |
| Usuário escolheu `English` ou `中文` nas Configurações | A escolha explícita é respeitada |
| Usuário seleciona `Português (Brasil)` no menu de idioma | Interface muda para pt-BR na sessão |

## Limitações conhecidas

- A **seleção manual** de `Português (Brasil)` vale para a sessão atual; como o schema oficial de preferência só aceita `zh`/`en`, o valor `pt-BR` não persiste no arquivo de configurações oficial. A ativação automática por navegador em português cobre o caso mais comum.
- Alguns textos **fixos** ainda não passam pelo runtime de idiomas (mesma limitação documentada pelo próprio `dsh-client-locale`). A cobertura melhora conforme o upstream expõe mais textos via *locale seats*.

## Arquivos

- `lib/dicts.js` — todos os dicionários pt-BR (fonte de verdade; editável).
- `lib/client.js` — plugin do navegador **gerado** por `scripts/build.mjs` (formato do carregador).
- `lib/index.js` — lado host (no-op intencional).
- `cordis.patch.yml` — camada do bundle (insere o plugin na composição).
- `scripts/build.mjs` — gera `lib/client.js` a partir de `lib/dicts.js`.
- `STRINGS.md` — lista completa para revisão (original em inglês × tradução).
- `UPSTREAM.md` — mudanças para tornar `pt-BR` um idioma de primeira classe no repositório oficial.

## Publicação / distribuição

O DSH **não tem um repositório central de plugins** (marketplace). "Publicar" =
distribuir o pacote por um dos canais abaixo e marcar o repositório do GitHub
com o tópico `dsh-plugin` para descoberta (é o que o `CONTRIBUTING.md` oficial
recomenda).

O pacote já está no formato de **bundle** (`dsh.bundle` + `cordis.patch.yml`)
e de **plugin de navegador** (`dsh.client` + `lib/client.js` pré-compilado),
então o `dsh plugin add` o ativa como uma camada.

```sh
# 1. Local (checkout)
dsh plugin --profile web add ./dsh-locale-ptbr

# 2. Tarball (sem registrar nada)
pnpm pack                                   # gera negriniainda-dsh-locale-ptbr-0.1.2.tgz
dsh plugin --profile web add ./negriniainda-dsh-locale-ptbr-0.1.2.tgz

# 3. npm (recomendado para distribuição pública)
npm publish                                 # roda `prepare` → reconstrói lib/client.js
dsh plugin --profile web add @negriniainda/dsh-locale-ptbr

# 4. GitHub direto (pnpm ≥10 pede allowlist para o script `prepare`)
dsh plugin --profile web add github:negriniainda/dsh-locale-ptbr
```

Sempre que editar `lib/dicts.js`, rode `node scripts/build.mjs` (ou `pnpm build`)
para regenerar `lib/client.js` antes de publicar.

## Revisão

Se você fala português nativamente, revise `STRINGS.md` e envie correções de terminologia — os termos centrais usados foram: *sessão*, *espaço de trabalho*, *subagente*, *predefinição*, *provedor*, *chave de API*, *janela de contexto*, *Acesso total*.

Install

dsh plugin --profile web add github:negriniainda/dsh-locale-ptbr

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source