Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Integrando il server MCP Intlayer al tuo assistente AI, puoi recuperare tutti i documenti direttamente da ChatGPT, DeepSeek, Cursor, VSCode, ecc.
Vedi la documentazione del server MCPIl contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
Perché dovresti considerare Intlayer?
Cos'è Intlayer?
Intlayer è una libreria di internazionalizzazione progettata specificamente per sviluppatori JavaScript. Permette la dichiarazione del tuo contenuto ovunque nel tuo codice. Converte le dichiarazioni di contenuti multilingue in dizionari strutturati per integrarsi facilmente nel tuo codice. Utilizzando TypeScript, Intlayer rende il tuo sviluppo più solido ed efficiente.
Perché è stato creato Intlayer?
Intlayer è stato creato per risolvere un problema comune che interessa tutte le librerie i18n più diffuse come next-intl, react-i18next, react-intl, next-i18next, react-intl e vue-i18n.
Tutte queste soluzioni adottano un approccio centralizzato per elencare e gestire i tuoi contenuti. Per esempio:
Copiare il codice nella clipboard
.├── locales│ ├── en.json│ ├── fr.json│ └── es.json├── i18n.ts└── src └── components └── MyComponent └── index.tsx
Oppure qui usando i namespace:
Copiare il codice nella clipboard
.├── locales│ ├── en│ │ ├── footer.json│ │ └── navbar.json│ ├── fr│ │ ├── footer.json│ │ └── navbar.json│ └── es│ ├── footer.json│ └── navbar.json├── i18n.ts└── src └── components └── MyComponent └── index.tsx
Questo tipo di architettura rallenta il processo di sviluppo e rende la codebase più complessa da mantenere per diversi motivi:
Per ogni nuovo componente creato, dovresti:
- Creare la nuova risorsa/namespace nella cartella locales
- Ricordarti di importare il nuovo namespace nella tua pagina
- Tradurre i tuoi contenuti (spesso fatto manualmente tramite copia/incolla da fornitori AI)
Per ogni modifica apportata ai tuoi componenti, dovresti:
- Cercare la risorsa/namespace correlata (lontano dal componente)
- Tradurre i tuoi contenuti
- Assicurarti che i tuoi contenuti siano aggiornati per ogni locale
- Verificare che il tuo namespace non includa chiavi/valori inutilizzati
- Assicurarti che la struttura dei tuoi file JSON sia la stessa per tutti i locali
Nei progetti professionali che utilizzano queste soluzioni, spesso si ricorre a piattaforme di localizzazione per aiutare a gestire la traduzione dei contenuti. Tuttavia, questo può diventare rapidamente costoso per progetti di grandi dimensioni.
Per risolvere questo problema, Intlayer adotta un approccio che delimita i contenuti per componente e mantiene i contenuti vicini al componente stesso, come spesso facciamo con il CSS (styled-components), i tipi, la documentazione (storybook) o i test unitari (jest).
Copiare il codice nella clipboard
.└── components └── MyComponent ├── index.content.ts ├── index.test.tsx ├── index.stories.tsx └── index.tsx
Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";const componentExampleContent = { key: "component-example", content: { myTranslatedContent: t({ en: "Hello World", es: "Hola Mundo", fr: "Bonjour le monde", }), },} satisfies Dictionary;export default componentExampleContent;
Copiare il codice nella clipboard
import { useIntlayer } from "react-intlayer";export const ComponentExample = () => { const { myTranslatedContent } = useIntlayer("component-example"); return <span>{myTranslatedContent}</span>;};
Questo approccio ti permette di:
Aumentare la velocità di sviluppo
- I file .content.{{ts|mjs|cjs|json}} possono essere creati utilizzando un'estensione di VSCode
- Gli strumenti di completamento automatico basati su AI nel tuo IDE (come GitHub Copilot) possono aiutarti a dichiarare il tuo contenuto, riducendo il copia/incolla
Pulire la tua codebase
- Ridurre la complessità
- Aumentare la manutenibilità
Duplicare i tuoi componenti e i loro contenuti correlati più facilmente (esempio: componenti di login/registrazione, ecc.)
- Limitando il rischio di impattare il contenuto di altri componenti
- Copiando/incollando il tuo contenuto da un'applicazione all'altra senza dipendenze esterne
Evitare di inquinare la tua codebase con chiavi/valori inutilizzati per componenti non usati
- Se non usi un componente, Intlayer non importarà il suo contenuto correlato
- Se elimini un componente, ti sarà più facile ricordarti di rimuovere il suo contenuto correlato poiché sarà presente nella stessa cartella
Ridurre il costo di ragionamento per gli agenti AI nella dichiarazione del tuo contenuto multilingue
- L'agente AI non dovrà scansionare l'intera codebase per sapere dove implementare il tuo contenuto
- Le traduzioni possono essere facilmente effettuate dagli strumenti di completamento automatico basati su AI nel tuo IDE (come GitHub Copilot)
Funzionalità aggiuntive di Intlayer
Funzionalità | Descrizione |
---|---|
![]() | Supporto Cross-Framework Intlayer è compatibile con tutti i principali framework e librerie, inclusi Next.js, React, Vite, Vue.js, Nuxt, Preact, Express e altri ancora. |
![]() | Gestione dei Contenuti con JavaScript Sfrutta la flessibilità di JavaScript per definire e gestire i tuoi contenuti in modo efficiente. - Dichiarazione dei contenuti |
![]() | File di Dichiarazione del Contenuto per Locale Accelera il tuo sviluppo dichiarando il contenuto una sola volta, prima della generazione automatica. - File di Dichiarazione del Contenuto per Locale |
![]() | Ambiente Type-Safe Sfrutta TypeScript per garantire che le tue definizioni di contenuto e il codice siano privi di errori, beneficiando anche dell'autocompletamento nell'IDE. - Configurazione di TypeScript |
![]() | Configurazione Semplificata Inizia rapidamente con una configurazione minima. Regola facilmente le impostazioni per l'internazionalizzazione, il routing, l'IA, la build e la gestione dei contenuti. - Esplora l'integrazione con Next.js |
![]() | Recupero Contenuti Semplificato Non è necessario chiamare la tua funzione t per ogni singolo contenuto. Recupera tutto il tuo contenuto direttamente usando un singolo hook. - Integrazione React |
![]() | Implementazione Coerente dei Componenti Server Perfettamente adatto per i componenti server di Next.js, utilizza la stessa implementazione sia per i componenti client che per quelli server, senza bisogno di passare la tua funzione t attraverso ogni componente server. - Componenti Server |
![]() | Codebase Organizzato Tieni il tuo codice più organizzato: 1 componente = 1 dizionario nella stessa cartella. Le traduzioni vicine ai rispettivi componenti migliorano la manutenibilità e la chiarezza. - Come funziona Intlayer |
![]() | Routing Avanzato Pieno supporto al routing dell'app, adattandosi perfettamente a strutture applicative complesse, per Next.js, React, Vite, Vue.js, ecc. - Esplora l'integrazione con Next.js |
![]() | Supporto Markdown Importa e interpreta file di localizzazione e Markdown remoto per contenuti multilingue come politiche sulla privacy, documentazione, ecc. Interpreta e rendi accessibili i metadati Markdown nel tuo codice. - File di contenuto |
![]() | Editor Visivo e CMS Gratuiti Un editor visivo gratuito e un CMS sono disponibili per i content writer, eliminando la necessità di una piattaforma di localizzazione. Mantieni il tuo contenuto sincronizzato usando Git, oppure esternalizzalo totalmente o parzialmente con il CMS. - Editor Intlayer - CMS Intlayer |
![]() | Contenuto Tree-shakable Contenuto tree-shakable, che riduce la dimensione del bundle finale. Carica il contenuto per componente, escludendo qualsiasi contenuto non utilizzato dal tuo bundle. Supporta il lazy loading per migliorare l'efficienza del caricamento dell'app. - Ottimizzazione della build dell'app |
![]() | Rendering Statico Non blocca il Rendering Statico. - Integrazione Next.js |
![]() | Traduzione Potenziata dall'IA Trasforma il tuo sito web in 231 lingue con un solo clic utilizzando gli avanzati strumenti di traduzione potenziati dall'IA di Intlayer, sfruttando il tuo provider IA/chiave API personale. - Integrazione CI/CD - CLI di Intlayer - Compilazione automatica |
![]() | Integrazione Server MCP Fornisce un server MCP (Model Context Protocol) per l'automazione dell'IDE, consentendo una gestione dei contenuti e flussi di lavoro i18n senza interruzioni direttamente all'interno del tuo ambiente di sviluppo. - Server MCP |
![]() | Estensione VSCode Intlayer fornisce un'estensione per VSCode per aiutarti a gestire i tuoi contenuti e traduzioni, costruire i tuoi dizionari, tradurre i tuoi contenuti e altro ancora. - Estensione VSCode |
![]() | Interoperabilità Consente l'interoperabilità con react-i18next, next-i18next, next-intl e react-intl. - Intlayer e react-intl - Intlayer e next-intl - Intlayer e next-i18next |
Confronto di Intlayer con altre soluzioni
Funzionalità | Intlayer | React-i18next / i18next | React-Intl (FormatJS) | LinguiJS | next-intl | next-i18next | vue-i18n |
---|---|---|---|---|---|---|---|
Traduzioni Vicino ai Componenti | Sì, contenuto collocato con ogni componente | No | No | No | No | No | Sì - usando Single File Components (SFCs) |
Integrazione TypeScript | Avanzata, tipi rigorosi generati automaticamente | Base; configurazione extra per sicurezza | Buona, ma meno rigorosa | Tipizzazioni, necessita configurazione | Buona | Base | Buona (tipi disponibili; sicurezza delle chiavi necessita configurazione) |
Rilevamento Traduzioni Mancanti | Errore/avviso in fase di compilazione | Principalmente stringhe di fallback a runtime | Stringhe di fallback | Richiede configurazione aggiuntiva | Fallback a runtime | Fallback a runtime | Fallback/avvisi a runtime (configurabile) |
Contenuti Ricchi (JSX/Markdown/componenti) | Supporto diretto, anche per nodi React | Limitato / solo interpolazione | Sintassi ICU, non vero JSX | Limitato | Non progettato per nodi ricchi | Limitato | Limitato (componenti tramite <i18n-t>, Markdown tramite plugin) |
Traduzione basata su AI | Sì, supporta più provider AI. Utilizzabile con le proprie chiavi API. Considera il contesto della tua applicazione e l'ambito del contenuto | No | No | No | No | No | No |
Editor Visivo | Sì, Editor Visivo locale + CMS opzionale; può esternalizzare il contenuto del codice; integrabile | No / disponibile tramite piattaforme di localizzazione esterne | No / disponibile tramite piattaforme di localizzazione esterne | No / disponibile tramite piattaforme di localizzazione esterne | No / disponibile tramite piattaforme di localizzazione esterne | No / disponibile tramite piattaforme di localizzazione esterne | No / disponibile tramite piattaforme di localizzazione esterne |
Routing Localizzato | Integrato, supporto middleware | Plugin o configurazione manuale | Non integrato | Plugin/configurazione manuale | Integrato | Integrato | Manuale tramite Vue Router (gestito da Nuxt i18n) |
Generazione Dinamica delle Rotte | Sì | Plugin/ecosistema o configurazione manuale | Non fornito | Plugin/manuale | Sì | Sì | Non fornito (fornito da Nuxt i18n) |
Pluralizzazione | Modelli basati su enumerazione; vedere la documentazione | Configurabile (plugin come i18next-icu) | Avanzato (ICU) | Avanzato (ICU/messageformat) | Buono | Buono | Avanzato (regole di plurale integrate) |
Formattazione (date, numeri, valute) | Formatter ottimizzati (Intl sotto il cofano) | Tramite plugin o uso personalizzato di Intl | Formatter ICU avanzati | Helper ICU/CLI | Buono (helper Intl) | Buono (helper Intl) | Formatter integrati per date/numeri (Intl) |
Formato del Contenuto | .tsx, .ts, .js, .json, .md, .txt | .json | .json, .js | .po, .json | .json, .js, .ts | .json | .json, .js |
Supporto ICU | In lavorazione (ICU nativo) | Tramite plugin (i18next-icu) | Sì | Sì | Sì | Tramite plugin (i18next-icu) | Tramite formatter/compiler personalizzato |
Helper SEO (hreflang, sitemap) | Strumenti integrati: helper per sitemap, robots.txt, metadata | Plugin della community/manuale | Non core | Non core | Buono | Buono | Non core (Nuxt i18n fornisce helper) |
Ecosistema / Comunità | Più piccolo ma in rapida crescita e reattivo | Il più grande e maturo | Grande, enterprise | In crescita, più piccolo | Di medie dimensioni, focalizzato su Next.js | Di medie dimensioni, focalizzato su Next.js | Grande nell'ecosistema Vue |
Rendering lato server e Componenti Server | Sì, ottimizzato per SSR / Componenti Server di React | Supportato, necessita di qualche configurazione | Supportato in Next.js | Supportato | Supporto completo | Supporto completo | SSR tramite Nuxt/Vue SSR (senza RSC) |
Tree-shaking (caricamento solo del contenuto utilizzato) | Sì, per componente al momento della build tramite plugin Babel/SWC | Di solito carica tutto (può essere migliorato con namespace/code-splitting) | Di solito carica tutto | Non di default | Parziale | Parziale | Parziale (con code-splitting/configurazione manuale) |
Caricamento lazy | Sì, per locale/per componente | Sì (es. backend/namespace su richiesta) | Sì (bundle di locale suddivisi) | Sì (import dinamico del catalogo) | Sì (per rotta/per locale) | Sì (per rotta/per locale) | Sì (messaggi di locale asincroni) |
Gestione di Grandi Progetti | Incoraggia la modularità, adatto per design-system | Richiede una buona disciplina dei file | I cataloghi centrali possono diventare grandi | Può diventare complesso | Modulare con configurazione | Modulare con configurazione | Modulare con configurazione Vue Router/Nuxt i18n |
Storia del Documento
Versione | Data | Modifiche |
---|---|---|
5.8.0 | 2025-08-19 | Aggiornamento tabella comparativa |
5.5.10 | 2025-06-29 | Inizializzazione della storia |