For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /it/docs/modules/i18n.md (or send Accept: text/markdown).
Modulo i18n
Il contratto di locale che ogni superficie condivide.
Prima di iniziare
Apri il progetto supastack scaricato in Visual Studio Code utilizzando File → Apri cartella, quindi scegli Terminale → Nuovo terminale. La radice del repository è la cartella contenente package.json, app e pacchetti. Esegui il comando qui sotto e lascia il suo terminale aperto. Se un comando non viene riconosciuto, completare la guida all'installazione dello strumento prima di continuare.
Leggi prima il tutorial sulla piattaforma. Un server è il processo dell'app che risponde alle richieste del browser o del telefono. Il Web legge apps/web/.env.local, Expo legge apps/mobile/.env.local e i comandi di migrazione del database leggono root .env. La dimostrazione senza database/dashboard è separata dagli account reali/auth, che necessitano della migrazione Postgres. Un pagamento solo telefonico o desktop richiede un backend Web eseguito separatamente.
- Installa gli strumenti e ottieni il codice
- Impara comandi, file e configurazione
- Completa il tutorial di prima esecuzione sul Web
corepack pnpm --filter @supastack/web devInstallazione e configurazione
packages/i18n possiede l'insieme dei locale e il contratto di risoluzione: SUPPORTED_LOCALES, DEFAULT_LOCALE, LOCALE_COOKIE, isAppLocale, resolveLocale, localePath e getDictionary. Rotte web, stringhe mobile e mail transazionali leggono tutte dallo stesso package.
L'ordine di risoluzione è prefisso del percorso → cookie → Accept-Language → default. localePath(locale, path) produce l'href canonico — senza prefisso per il locale di default, /{locale}/… altrimenti — e il layer proxy lo impone.
import { getDictionary, localePath, resolveLocale } from "@supastack/i18n";
const locale = resolveLocale([pathLocale, cookie, acceptLanguage]);
const copy = getDictionary(locale).marketing;Flusso di implementazione
Aggiungi una stringa visibile all'utente prima ai tipi del dizionario e poi a ogni locale — la suite di completezza delle traduzioni fallisce su chiavi mancanti e su testo inglese non tradotto.
Non fare mai branch della logica di prodotto sul locale; i dizionari sono presentazione. Formatta date, numeri e plurali tramite le API Intl con il locale risolto invece di template di stringhe.
Verifica e risoluzione dei problemi
Esegui i test del package i18n più la suite di completezza di site-content dopo aver toccato le chiavi. Fai spot-check di una rotta con prefisso locale, dello switcher di lingua e del rilevamento Accept-Language con il cookie pulito.