Questa pagina ha un modello di applicazione disponibile.
Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Aggiornare l'uso dell'API useIntlayer di Solid all'accesso diretto alle proprietà"v8.9.004/05/2026
- "Cronologia iniziale"v8.4.1023/03/2026
Il 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
Traduci il tuo sito web Vite e Lit usando Intlayer | Internazionalizzazione (i18n)
Sommario
Perché Intlayer rispetto alle alternative?
Rispetto alle soluzioni principali come lit-localize o i18next, Intlayer è una soluzione dotata di ottimizzazioni integrate come:
Intlayer è ottimizzato per funzionare perfettamente con Lit offrendo ambito del contenuto a livello di componente Web, supporto TypeScript e tutte le funzionalità necessarie per ridimensionare l'internazionalizzazione (i18n).
Invece di caricare enormi file JSON nelle tue pagine, carica solo il contenuto necessario. Intlayer aiuta a ridurre le dimensioni del bundle e della pagina fino al 50%.
L'ambito del contenuto dell'applicazione facilita la manutenzione per applicazioni su larga scala. Puoi duplicare o eliminare una singola cartella di funzionalità senza l'onere mentale di rivedere l'intera codebase dei contenuti. Inoltre, Intlayer è completamente tipizzato (fully typed) per garantire l'accuratezza dei tuoi contenuti.
La co-localizzazione dei contenuti riduce il contesto necessario dai Large Language Models (LLM). Intlayer viene fornito anche con una suite di strumenti, come una CLI per verificare le traduzioni mancanti,LSP, MCP e capacità dell'agente, per rendere l'esperienza dello sviluppatore (DX) ancora più fluida per gli agenti IA.
Utilizza l'automazione per tradurre nella tua pipeline CI/CD utilizzando il LLM di tua scelta al costo del tuo provider di intelligenza artificiale. Intlayer offre anche un compilatore per automatizzare l'estrazione dei contenuti, nonché una piattaforma web per aiutare a tradurre in background.
La connessione di enormi file JSON ai componenti può portare a problemi di prestazioni e reattività. Intlayer ottimizza il caricamento dei contenuti in fase di compilazione.
Più di una semplice soluzione i18n, Intlayer fornisce un editor visivo self-hosted e un CMS completo per aiutarti gestisci i tuoi contenuti multilingue in tempo reale, semplificando la collaborazione con traduttori, copywriter e altri membri del team. I contenuti possono essere archiviati localmente e/o in remoto.
Guida passo-passo per configurare Intlayer in un'applicazione Vite e Lit
Installare le dipendenze
Installa i pacchetti necessari utilizzando npm:
bashCopiare il codiceCopiare il codice nella clipboard
intlayer
Il pacchetto principale che fornisce strumenti di internazionalizzazione per la gestione della configurazione, la traduzione, la dichiarazione dei contenuti, la transpilazione e i comandi CLI.
lit-intlayer Il pacchetto che integra Intlayer con le applicazioni Lit. Fornisce hook basati su
ReactiveController(useIntlayer,useLocale, ecc.) in modo che i LitElement si ri-renderizzino automaticamente quando la lingua cambia.vite-intlayer Include il plugin Vite per integrare Intlayer con il bundler Vite, oltre al middleware per rilevare la lingua preferita dell'utente, gestire i cookie e gestire il reindirizzamento degli URL.
Configurazione del progetto
Crea un file di configurazione per impostare le lingue della tua applicazione:
intlayer.config.tsCopiare il codiceCopiare il codice nella clipboard
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Altre lingue ], defaultLocale: Locales.ENGLISH, }, }; export default config;Attraverso questo file di configurazione, puoi impostare URL localizzati, reindirizzamento middleware, nomi dei cookie, la posizione e l'estensione delle tue dichiarazioni di contenuto, disabilitare i log di Intlayer nella console e altro ancora. Per un elenco completo dei parametri disponibili, consulta la documentazione sulla configurazione.
Integrare Intlayer nella configurazione di Vite
Aggiungi il plugin intlayer nella tua configurazione.
vite.config.tsCopiare il codiceCopiare il codice nella clipboard
import { defineConfig } from "vite"; import { intlayer } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [intlayer()], });Il plugin Vite
intlayer()viene utilizzato per integrare Intlayer con Vite. Garantisce la creazione dei file di dichiarazione dei contenuti e li monitora in modalità di sviluppo. Definisce le variabili d'ambiente Intlayer all'interno dell'applicazione Vite. Inoltre, fornisce alias per ottimizzare le prestazioni.Bootstrap di Intlayer nel tuo punto di ingresso
Chiama
installIntlayer()prima che vengano registrati elementi personalizzati, in modo che il singleton globale della lingua sia pronto quando il primo elemento si connette.src/main.tsCopiare il codiceCopiare il codice nella clipboard
Se utilizzi anche dichiarazioni di contenuto
md()(Markdown), installa anche il renderer markdown:src/main.tsCopiare il codiceCopiare il codice nella clipboard
Dichiarare il contenuto
Crea e gestisci le tue dichiarazioni di contenuto per memorizzare le traduzioni:
src/app.content.tsCopiare il codiceCopiare il codice nella clipboard
import { t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: { title: "Vite + Lit", viteLogo: t({ en: "Vite logo", fr: "Logo Vite", es: "Logo Vite", }), litLogo: t({ en: "Lit logo", fr: "Logo Lit", es: "Logo Lit", }), count: t({ en: "count is {{count}}", fr: "le compte est {{count}}", es: "el recuento es {{count}}", }), readTheDocs: t({ en: "Click on the Vite and Lit logos to learn more", fr: "Cliquez sur les logos Vite et Lit pour en savoir plus", es: "Haga clic en los logotipos de Vite y Lit para obtener más información", }), }, } satisfies Dictionary; export default appContent;Le dichiarazioni di contenuto possono essere definite ovunque nell'applicazione, purché siano incluse nella cartella
contentDir(per impostazione predefinita,./src) e corrispondano all'estensione del file di dichiarazione del contenuto (per impostazione predefinita,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Per ulteriori dettagli, consulta la documentazione sulla dichiarazione dei contenuti.
Utilizzare Intlayer nel tuo LitElement
Usa
useIntlayerall'interno di unLitElement. Restituisce un proxyReactiveControllerche attiva automaticamente i re-render ogni volta che la lingua attiva cambia: non è richiesta alcuna configurazione aggiuntiva.src/my-element.tsCopiare il codiceCopiare il codice nella clipboard
Quando hai bisogno della stringa tradotta in un attributo HTML nativo (es.
alt,aria-label,title), chiama.valuesul nodo foglia:typescriptCopiare il codiceCopiare il codice nella clipboard
Cambiare la lingua del contenuto
OpzionalePer cambiare la lingua del contenuto, usa il metodo
setLocaleesposto dal controlleruseLocale.src/locale-switcher.tsCopiare il codiceCopiare il codice nella clipboard
Renderizzare contenuti Markdown e HTML
OpzionaleIntlayer supporta le dichiarazioni di contenuto
md()ehtml(). In Lit, l'output compilato viene iniettato come HTML grezzo tramite la direttivaunsafeHTML.Renderizza l'HTML compilato nel tuo elemento:
src/my-element.tsCopiare il codiceCopiare il codice nella clipboard
TIP String(content.editNote)chiamatoString()sull'IntlayerNode, che restituisce la stringa Markdown grezza. Passala acompileMarkdownper ottenere una stringa HTML, quindi caricala con la direttivaunsafeHTMLdi Lit.Aggiungere il routing localizzato alla tua applicazione
OpzionalePer creare rotte uniche per ogni lingua (utile per la SEO), puoi utilizzare un router lato client insieme agli helper
localeMap/localeFlatMapdi Intlayer e al plugin ViteintlayerProxyper il rilevamento della lingua lato server.Innanzitutto, aggiungi
intlayerProxyalla tua configurazione Vite:Nota che per utilizzare
intlayerProxyin produzione, devi spostarevite-intlayerdadevDependenciesadependencies.vite.config.tsCopiare il codiceCopiare il codice nella clipboard
import { defineConfig } from "vite"; import { intlayer, intlayerProxy } from "vite-intlayer"; export default defineConfig({ plugins: [ intlayerProxy(), // should be placed first intlayer(), ], });Cambiare l'URL quando la lingua cambia
OpzionalePer aggiornare l'URL del browser quando la lingua cambia, utilizza
useRewriteURLinsieme al selettore di lingua:src/locale-switcher.tsCopiare il codiceCopiare il codice nella clipboard
Commutare gli attributi di lingua e direzione HTML
OpzionaleAggiorna gli attributi
langedirdel tag<html>per farli corrispondere alla lingua corrente per l'accessibilità e la SEO.src/my-element.tsCopiare il codiceCopiare il codice nella clipboard
Estrarre il contenuto dei tuoi componenti
OpzionaleSe hai una base di codice esistente, trasformare migliaia di file può richiedere molto tempo.
Per facilitare questo processo, Intlayer propone un compilatore / estrattore per trasformare i tuoi componenti ed estrarre il contenuto.
Per configurarlo, puoi aggiungere una sezione
compilernel tuo fileintlayer.config.ts:intlayer.config.tsCopiare il codiceCopiare il codice nella clipboard
(Opzionale) Sitemap e robots.txt (generazione in build)
Intlayer espone utilità - generateSitemap e getMultilingualUrls - per formattare sitemap.xml multilingue e robots.txt pronti per i crawler e scriverli automaticamente in public/. Di solito si esegue un piccolo script Node prima di Vite (ad esempio hook npm predev / prebuild) così che i file siano presenti in build o in sviluppo.
Sitemap
Il generatore di sitemap di Intlayer rispetta le tue lingue e aggiunge i metadati attesi dai crawler.
La sitemap supporta lo spazio dei nomixhtml:link(hreflang). Invece di elencare solo URL “piatti”, Intlayer collega in modo bidirezionale tutte le versioni linguistiche di ogni pagina (ad es./about,/fr/abouto/about?lang=fra seconda del routing).
Robots.txt
Usa getMultilingualUrls così le regole Disallow coprono tutte le varianti localizzate dei percorsi sensibili.
1. Aggiungi generate-seo.mjs nella root del progetto
Copiare il codice nella clipboard
Serve il pacchetto intlayer installato. Imposta SITE_URL in ambiente per la produzione (es. in CI).
Preferiscigenerate-seo.mjsper l’ESM di Node. Congenerate-seo.jsimposta"type": "module"inpackage.jsonoppure abilita l’ESM in Node.
2. Esegui lo script prima di Vite
Copiare il codice nella clipboard
Adatta i comandi se usi pnpm o yarn. Puoi anche richiamare lo script dalla CI o da un altro passo del pipeline.
Configurare TypeScript
Assicurati che la tua configurazione TypeScript includa i tipi autogenerati.
Copiare il codice nella clipboard
experimentalDecoratorseuseDefineForClassFields: falsesono richiesti da Lit per il supporto dei decoratori.
Configurazione Git
Si consiglia di ignorare i file generati da Intlayer. Ciò consente di evitare di caricarli nel repository Git.
Per farlo, puoi aggiungere le seguenti istruzioni al tuo file .gitignore:
Copiare il codice nella clipboard
Estensione VS Code
Per migliorare la tua esperienza di sviluppo con Intlayer, puoi installare l'estensione ufficiale Intlayer per VS Code.
Installa dal VS Code Marketplace
Questa estensione fornisce:
- Autocompletamento per le chiavi di traduzione.
- Rilevamento degli errori in tempo reale per le traduzioni mancanti.
- Anteprime inline del contenuto tradotto.
- Azioni rapide per creare e aggiornare facilmente le traduzioni.
Per maggiori dettagli su come utilizzare l'estensione, consulta la documentazione dell'estensione Intlayer per VS Code.
Vai oltre
Per approfondire, puoi implementare l'editor visuale o esternalizzare i tuoi contenuti utilizzando il CMS.