Internazionalizzazione per il TypeScript moderno
Zero dipendenze · Sicurezza dei tipi · Indipendente dal framework
export default {
dashboard: {
greeting: "Ciao, {name: string}!",
membership: "{role, select, admin {Amministratore} pro {Membro Pro} other {Membro Standard}}",
cart: "{count, plural, =0 {Il carrello è vuoto} one {# articolo nel carrello} other {# articoli nel carrello}}",
discount: "Offerta lampo: <badge>20% di sconto</badge> su tutti gli articoli",
invoice: "Totale: {amount, number, currency}",
delivery: "Consegna stimata: {time}",
},
} as const;Ciao, Alex!
Membro ProSicurezza dei tipi
Fornisce l'inferenza dei tipi TypeScript per chiavi di traduzione, namespace e parametri, validando la coerenza dello schema tra i diversi idiomi.
Zero dipendenze a runtime
Costruito su TypeScript e sulle API standard Web Intl, senza richiedere passaggi di generazione del codice in fase di compilazione. Minified + Gzipped: < 5 kB
Supporto per ICU Message Format
Supporta plurali, ordinali, diramazioni condizionali (select) e interpolazione di tag rich text senza dipendenze da parser esterni.
Indipendente dal framework
Funziona su Astro, Next.js, React, Vue, Svelte, Node.js, Bun e Cloudflare Workers.
Benchmark sulle dimensioni del trasferimento di rete
Misura la dimensione effettiva del trasferimento di rete di tutti gli asset i18n durante il pre-rendering iniziale e l'idratazione lato client.
Playwright Headless Chromium · Real HTTP Transfer Size
i18next include motori di parsing completi e runtime per i plugin, comportando un overhead di base fisso. ts-intl non ha dipendenze a runtime (~2 KB per il core) e, in modalità di suddivisione per lingua, carica unicamente il dizionario della lingua attiva.
Paraglide compila i messaggi in funzioni JS ed elimina le chiavi inutilizzate tramite tree-shaking. ts-intl è una libreria a runtime che non richiede alcuna generazione di codice, impiegando import dinamici standard per evitare l'accumulo di dizionari multilingua nel bundle.