> ## 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

El contrato de locale que todas las superficies comparten.

## Antes de comenzar

Abra su proyecto supastack descargado en Visual Studio Code usando Archivo → Abrir carpeta, luego elija Terminal → Nueva terminal. La raíz del repositorio es la carpeta que contiene package.json, aplicaciones y paquetes. Ejecute el comando a continuación y deje su terminal abierta. Si no se reconoce un comando, finalice la guía de instalación de la herramienta antes de continuar.

Lea primero el tutorial de la plataforma. Un servidor es el proceso de la aplicación que responde a las solicitudes del navegador o del teléfono. La web lee apps/web/.env.local, Expo lee apps/mobile/.env.local y los comandos de migración de bases de datos leen root .env. La demostración sin base de datos/panel de control está separada de las cuentas reales/de autenticación, que necesitan migrar Postgres. Un proceso de pago solo por teléfono o computadora de escritorio necesita un backend web que se ejecute por separado.

[Instale las herramientas y obtenga el código](https://supastack.dev/es/docs/web/before-you-start.md)

[Aprender comandos, archivos y configuración](https://supastack.dev/es/docs/web/terminal-basics.md)

[Completa el tutorial web de primera ejecución](https://supastack.dev/es/docs/web/ship-in-5-minutes.md)

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


## Configuración y ajustes

packages/i18n posee el conjunto de locales y el contrato de resolución: SUPPORTED_LOCALES, DEFAULT_LOCALE, LOCALE_COOKIE, isAppLocale, resolveLocale, localePath y getDictionary. Las rutas web, las cadenas de móvil y el correo transaccional leen del mismo paquete.

El orden de resolución es prefijo de ruta → cookie → Accept-Language → por defecto. localePath(locale, path) produce el href canónico — sin prefijo para la locale por defecto, /{locale}/… en caso contrario — y la capa de proxy lo impone.

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

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


## Flujo de implementación

Añade una cadena visible al usuario primero a los tipos del diccionario y luego a cada locale — la suite de completitud de traducción falla con claves ausentes y con inglés sin traducir.

Nunca ramifiques lógica de producto por locale; los diccionarios son presentación. Formatea fechas, números y plurales con las APIs Intl usando la locale resuelta en lugar de plantillas de cadenas.


## Verificación y solución de problemas

Tras tocar claves, ejecuta los tests del paquete i18n más la suite de completitud de site-content. Haz una comprobación puntual de una ruta con prefijo de locale, el selector de idioma y la detección de Accept-Language con la cookie borrada.


## Siguiente

[Espacios de trabajo](https://supastack.dev/es/docs/modules/workspaces.md)
