> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Módulo i18n

O contrato de locale que todas as superfícies partilham.

## Antes de começar

Abra seu projeto supastack baixado em Visual Studio Code usando Arquivo → Abrir pasta e escolha Terminal → Novo Terminal. A raiz do repositório é a pasta que contém package.json, apps e pacotes. Execute o comando abaixo e deixe seu terminal aberto. Se um comando não for reconhecido, conclua o guia de instalação da ferramenta antes de continuar.

Leia o tutorial da plataforma primeiro. Um servidor é o processo do aplicativo que responde às solicitações do navegador ou do telefone. A Web lê apps/web/.env.local, Expo lê apps/mobile/.env.local e os comandos de migração de banco de dados leem root .env. A demonstração sem banco de dados/painel é separada das contas reais/auth, que precisam migrar para Postgres. Uma finalização de compra somente por telefone ou desktop precisa de um back-end da Web executado separadamente.

[Instale as ferramentas e obtenha o código](https://supastack.dev/pt/docs/web/before-you-start.md)

[Aprenda comandos, arquivos e configuração](https://supastack.dev/pt/docs/web/terminal-basics.md)

[Conclua o tutorial inicial da Web](https://supastack.dev/pt/docs/web/ship-in-5-minutes.md)

```
corepack pnpm --filter @supastack/web dev
```


## Instalação e configuração

packages/i18n detém o conjunto de locales e o contrato de resolução: SUPPORTED_LOCALES, DEFAULT_LOCALE, LOCALE_COOKIE, isAppLocale, resolveLocale, localePath e getDictionary. Rotas web, strings mobile e mail transacional leem todos pelo mesmo package.

A ordem de resolução é prefixo de caminho → cookie → Accept-Language → defeito. localePath(locale, path) produz o href canónico — sem prefixo para o locale por defeito, /{locale}/… caso contrário — e a camada proxy impõe-no.

```
import { getDictionary, localePath, resolveLocale } from "@supastack/i18n";

const locale = resolveLocale([pathLocale, cookie, acceptLanguage]);
const copy = getDictionary(locale).marketing;
```


## Fluxo de implementação

Adiciona uma string visível ao utilizador primeiro aos tipos do dicionário e depois a todos os locales — a suite de completude de tradução falha com chaves em falta e com texto inglês por traduzir.

Nunca branches lógica de produto por locale; os dicionários são apresentação. Formata datas, números e plurais através das APIs Intl com o locale resolvido em vez de templates de string.


## Verificação e resolução de problemas

Corre os testes do package i18n mais a suite de completude de site-content depois de tocar em chaves. Faz spot-check de uma rota com prefixo de locale, do language switcher e da deteção de Accept-Language com o cookie limpo.


## Seguinte

[Workspaces](https://supastack.dev/pt/docs/modules/workspaces.md)
