> ## Documentation Index
> Fetch the complete documentation index at: https://chatcli.edilsonfreitas.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Internacionalização (i18n)

> O ChatCLI suporta múltiplos idiomas com detecção automática e fallback inteligente.

O ChatCLI foi projetado para ser global. A interface do usuário, incluindo menus, dicas e mensagens de status, é totalmente internacionalizada.

## Idiomas suportados

| Idioma | Código | Status |
| - | - | - |
| **Português (Brasil)** | `pt-BR` | Completo |
| **Inglês** | `en` | Completo (fallback padrão) |

***

## Detecção automática

O idioma é detectado automaticamente a partir das variáveis de ambiente do sistema, na seguinte ordem de prioridade:

| Prioridade | Variável | Exemplo |
| - | - | - |
| 1 (maior) | `CHATCLI_LANG` | `pt-BR` |
| 2 | `LANG` | `pt_BR.UTF-8` |
| 3 | `LC_ALL` | `pt_BR.UTF-8` |

Se nenhuma variável estiver definida ou o idioma não for suportado, a interface será exibida em **inglês** por padrão.

***

## Forçar um idioma

Para forçar um idioma específico, defina `CHATCLI_LANG` no `.env` ou no ambiente:

```bash theme={"system"}
# No .env
CHATCLI_LANG=pt-BR

# Ou via export
export CHATCLI_LANG=en
```

***

## Cobertura

O sistema de i18n conta com **1925 chaves de tradução** cobrindo todas as strings voltadas ao usuário (paridade entre `en.json`, `en-US.json` e `pt-BR.json`). Cada novo user-facing string introduzido no código passa pelo wrapping `i18n.T()` — **regra obrigatória** para qualquer handler de comando, autocomplete `prompt.Suggest` ou mensagem de erro visível ao usuário.

<Info>
  A partir do sweep de i18n de abr/2026, todos os slash commands (`/hooks`, `/mcp`, `/worktree`, `/cost`, `/channel`, `/websearch`, `/config` + subseções, `/skill`, `/agent`, `/memory`, `/session`, `/switch`, `/context`, `/auth`, `/plugin`) e o autocomplete da CLI passam 100% por `i18n.T`. Strings hardcoded em PT/EN dentro de `fmt.Println` ou `colorize(...)` são bug de conformidade.
</Info>

## O que é traduzido

* Menus e prompts interativos
* Mensagens de status e progresso (inclusive as fases do compactor de histórico: trim, summarize, emergency)
* Ajuda dos comandos (`/help`)
* Mensagens de erro e avisos
* UI do modo agente (plano de execução, ações)
* Feedback do modo coder
* Mensagens de pre-flight e recuperação de payload (413/WAF/EOF) com rotulagem específica por tipo de falha
* Mensagens do servidor e conexão remota
* Comandos de sessão, contexto e plugins
* Notificações do K8s Watcher e Operator

### Namespaces principais

| Prefixo da chave | Escopo |
| :- | :- |
| `welcome.*`, `help.*` | Boas-vindas, ajuda e onboarding |
| `agent.*` | Modo agente, turnos, plano de ação |
| `agent.microcompact.*` | Compactação progressiva de tool results antigos (sem LLM) |
| `agent.preflight.*` | Avisos proativos de tamanho de histórico vs cap de proxy |
| `agent.recovery.*` | Recuperação de context overflow + proxy 413/WAF/EOF |
| `coder.*` | Modo coder, cards e decisões de policy |
| `compact.*` | Comando `/compact` (manual e guiado) |
| `compact.status.*` | Feedback ao vivo durante cada fase do pipeline de compactação |
| `context.*` | Comandos `/context attach`, `/context show`, etc |
| `cmd.*` | Comandos CLI legados (`/auth`, `/connect`, `/switch`, ...) |
| `cmd.core.*` | `/session fork` e afins no `command_handler` core |
| `cfg.*` | `/config` hierárquico — títulos de seção, labels kv, placeholders (`cfg.val.*`, `cfg.kv.*`, `cfg.sub.*`, `cfg.panorama.*`, `cfg.section.*`, `cfg.msg.*`) |
| `hooks.cmd.*` / `mcp.cmd.*` / `wt.cmd.*` / `cost.cmd.*` / `chan.cmd.*` | Um namespace por slash-command gerenciador (`/hooks`, `/mcp`, `/worktree`, `/cost`, `/channel`) |
| `skill.cmd.*` / `persona.cmd.*` / `mem.cmd.*` | Handlers `skill_handler`, `persona_handler`, `memory_command` |
| `sw.cmd.*` / `sess.cmd.*` / `ctx.cmd.*` | Fills de `cli_llm` (`handleSwitchCommand`), `cli_session`, `context_handler` |
| `ws.cmd.*` | Comando `/websearch` (status, list, provider, reset) |
| `complete.*` | Descrições de autocomplete — `complete.root.*` para slash commands top-level, `complete.{connect,watch,context,session,plugin,agent,skill,switch,auth,generic}.*` para sub/flags |
| `llm.*` | Streaming, erros de provider |
| `server.*` | Modo servidor e autenticação |

### Padrão especial para instruções à IA

A chave `ai.response_language` é um meta-comando **escrito em inglês** em todos os locales (incluindo pt-BR), que **instrui a IA a responder no idioma do usuário**. Isso é intencional: modelos LLM seguem instruções em inglês com muito mais fidelidade, então o prompt que pede "responda em pt-BR" é escrito em inglês. O conteúdo da resposta, claro, sai em pt-BR.

Essa instrução é anexada ao system prompt nos três modos (`chat`, `agent`, `coder`), junto com um `[ACTIVE MODE: ...]` que deixa claro para a IA em qual modo ela está operando. Veja `cli/prompts.go` e `cli/cli_llm.go`.

<Info>
  As respostas da IA são no idioma que você usar na conversa — a i18n controla tanto a **interface do ChatCLI** quanto o **meta-prompt que instrui a IA**. Mas o conteúdo que o LLM gera depende dele seguir a instrução (o que modelos 4.x fazem muito bem).
</Info>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.