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

# Idiomas y texto

Usa el esqueleto de diccionario de cuatro locales para el chrome de la app, las etiquetas de settings, el correo y los eventos de notificación.

## Configuración y ajustes

Antes de cualquier paso, lea [Antes de comenzar](https://supastack.dev/es/docs/web/before-you-start.md) y [Conceptos básicos del terminal](https://supastack.dev/es/docs/web/terminal-basics.md). Estas instrucciones suponen que abrió el monorepo supastack completo en VS Code; su paquete raíz.json marca la raíz del repositorio. En los comandos pnpm, un paquete de espacio de trabajo es una aplicación o una carpeta de código compartido; En el producto, un espacio de trabajo es el contenedor de datos y el límite de seguridad de un equipo. corepack pnpm --filter ... selecciona un paquete del monorepo mientras los comandos se ejecutan desde su raíz. Si abrió solo una carpeta sincronizada para dispositivos móviles o de escritorio, no contiene el backend web, la configuración de Docker ni los scripts raíz: ejecute el backend desde este monorepo o un servidor alojado accesible y use los propios scripts de la carpeta de la plataforma. Una variable de entorno es una configuración con nombre almacenada en un archivo .env local o en su panel de hosting; reinicie la aplicación correspondiente después de cambiarla y mantenga los secretos del servidor fuera de los valores NEXT_PUBLIC_ y EXPO_PUBLIC_.

1. Abra packages/i18n/src/index.ts en VS Code para ver los nombres de idiomas admitidos y los asistentes locales; Localice los archivos de diccionario coincidentes antes de cambiar la copia del producto.

2. Agregue la misma clave nueva y traducción a los diccionarios de inglés, alemán, español y francés.

3. Desde la raíz del repositorio, ejecute corepack pnpm test -- packages/i18n/src/index.test.ts e inicie Web con corepack pnpm --filter @supastack/web dev. Se esperaba: el selector de idioma cambia el texto visible conservando la ruta de la página actual.

Los idiomas viven en @supastack/i18n junto con SUPPORTED_LOCALES, LOCALE_COOKIE, resolveLocale, getDictionary y localePath. Proxy establece x-supastack-locale y gestiona las redirecciones canónicas al inglés; LanguageSwitcher actualiza la cookie y conserva las subrutas activas. Las rutas principales de la aplicación (/dashboard, /settings, /billing, /chat) funcionan directamente bajo los prefijos /[locale], junto con la página de inicio de marketing flexible /{locale}.

Los diccionarios abarcan la navegación de marketing, las etiquetas de secciones de configuración, el chrome de configuración de organizaciones, el correo transaccional (invitación/OTP/enlace mágico/IA/facturación), las etiquetas de preferencias de notificación y el texto de eventos de notificación dentro de la aplicación.

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

const locale = resolveLocale([
  cookieStore.get(LOCALE_COOKIE)?.value,
  headers.get("x-supastack-locale"),
  headers.get("accept-language"),
]);
const copy = getDictionary(locale);
```


## Comandos para copiar

Siga los comentarios para ver en qué carpeta se ejecuta un comando. Si dos terminales están etiquetados, abra dos ventanas de terminal y mantenga el primer comando ejecutándose mientras usa el segundo.

```
corepack pnpm test -- packages/i18n/src/index.test.ts
corepack pnpm --filter @supastack/web dev
```


## Flujo de implementación

Pasa el idioma a las páginas de configuración/organización renderizadas en el servidor y a notificationCopyForEvent / las opciones de entrega de correo de autenticación cuando esté disponible. Mantén el inglés como DEFAULT_LOCALE y no inventes afirmaciones de marketing fuera de las claves del diccionario.

El correo transaccional sigue separado del contacto comercial. Amplía los diccionarios antes de anidar todas las rutas de marketing bajo [locale].


## Verificación y solución de problemas

Si aparece inglés para una frase, verifique que la clave exista en los cuatro diccionarios y que la página solicite la misma clave. Si al cambiar de idioma se vuelve a la página de inicio, conserve la ruta actual al crear el enlace local. Mantenga la copia del correo electrónico en la ruta del correo electrónico transaccional; no lo reutilice como divulgación masiva.

Ejecuta Vitest de packages/i18n, las pruebas de proxy y las pruebas de locale-app-routes. Comprueba LanguageSwitcher en / y los encabezados localizados de Configuración/organización/panel/facturación/chat cuando el prefijo de idioma sea de/es/fr.


## Siguiente

[Redacción de artículos del blog](https://supastack.dev/es/docs/web/blog-content.md)
