Engineering//12 min di lettura

Come dividere grandi file di traduzione: caricamento per namespace per app più veloci

Ali Osman Delismen
Condividere

I tuoi file di traduzione stanno silenziosamente rallentando i tempi di caricamento delle pagine. Un'app internazionalizzata tipica con oltre 500 chiavi genera bundle di traduzioni di 400‑800KB per lingua. Moltiplicalo per 15 lingue e stai servendo 6‑12MB di traduzioni, la maggior parte delle quali gli utenti non vedranno mai.

Questa guida spiega perché succede, come la suddivisione per namespace risolve il problema e quali pattern di implementazione possono ridurre il payload di traduzione del 90‑97%.

Il costo nascosto dei file di traduzione monolitici

La maggior parte delle configurazioni i18n inizia in modo semplice: un file translations.json per lingua. Funziona bene con 50 chiavi, ma le applicazioni reali crescono rapidamente.

Con più lingue il problema si moltiplica: un'app con 500 chiavi e 15 lingue significa che il CDN serve centinaia di KB di traduzioni prima ancora che l'utente veda contenuto.

Cosa sono i namespace i18n?

I namespace sono gruppi logici di traduzioni, spesso organizzati per pagina o funzionalità. Librerie come i18next, react‑intl e Better i18n li supportano.

Strategie per dividere i file

File CDN per namespace

Pubblicare ogni namespace come file separato riduce drasticamente il payload caricato da ogni pagina.

Query parameter per namespace

Il server restituisce solo i namespace richiesti.

Code splitting a build time

Framework come Next.js o Vite possono dividere le traduzioni durante la build.

Conclusione

Per applicazioni con molte lingue e centinaia di chiavi, il caricamento per namespace riduce drasticamente il traffico CDN e migliora le performance.

Comments

Loading comments...