Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Aggiunti ricerca dei riferimenti, hover, autocompletamento e diagnostica"v9.1.310/08/2026
- "Release LSP"v8.12.001/06/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
Server LSP di Intlayer
Il language server di Intlayer è un'implementazione del Language Server Protocol (LSP) che rende il tuo IDE — e il tuo agente IA — consapevole di Intlayer. Collega una chiamata come useIntlayer("home") al file .content.ts che la dichiara, in entrambe le direzioni.
Funzionalità
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Funzionalità | Scorciatoia | Descrizione |
|---|---|---|
| Vai alla definizione | F12 / Cmd+Clic | Passare da una chiave di dizionario o dall'uso di un campo alla sua dichiarazione nel file di contenuto |
| Trova tutti i riferimenti | Maiusc+F12 | Da un file di contenuto, elencare ogni punto di chiamata che usa quella chiave o quel campo |
| Hover | passare il cursore | Visualizzare i campi di un dizionario, o il valore tradotto di un campo, senza lasciare il file |
| Autocompletamento | " ' ` . | Suggerire le chiavi di dizionario dichiarate dentro un getter, e i campi di contenuto dopo . o durante la destrutturazione | |
| Diagnostica | automatico | Avvisare quando una chiave non è dichiarata in nessun file di contenuto |
Vale la pena conoscere due comportamenti aggiuntivi:
- Dizionari uniti — una chiave suddivisa su più file di contenuto restituisce un risultato per file, così puoi navigare a ogni dichiarazione.
- Compatibile con i monorepo — il server risolve l'
intlayer.config.*più vicino a ciascun file, così più progetti in uno stesso workspace hanno ciascuno i propri dizionari.
Chiamate supportate
La chiave viene letta da un argomento posizionale di tipo stringa oppure da un oggetto di opzioni ({ namespace }, { id }).
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Libreria | Chiamate |
|---|---|
| Intlayer | useIntlayer, getIntlayer |
| i18next / react-i18next | useTranslation, getFixedT, t, Trans |
| next-intl / use-intl | useTranslations, getTranslations, createTranslator |
| react-intl | formatMessage, FormattedMessage |
| Lingui | useLingui, t, Trans, _ |
| vue-i18n | useI18n |
Funziona per ogni pacchetto *-intlayer (next-intlayer, react-intlayer, vue-intlayer, svelte-intlayer, solid-intlayer, preact-intlayer, angular-intlayer, lit-intlayer, express-intlayer, hono-intlayer, fastify-intlayer, intlayer) e per i pacchetti adattatori compat che ti permettono di mantenere la sintassi i18n esistente.
I dizionari vengono letti dall'output di build: esegui npx intlayer build — o tieni attivo il server di sviluppo — per dare al server qualcosa da risolvere.
Installazione
Il server è distribuito come binario intlayer-lsp in @intlayer/lsp:
Copiare il codice nella clipboard
Installalo invece globalmente (npm install -g @intlayer/lsp) se il tuo editor richiede intlayer-lsp nel PATH — è il caso del plugin per Claude Code e di qualsiasi configurazione qui sotto che invochi direttamente il binario.
Configurazione
Installa l'estensione VS Code di Intlayer. Il language server è incluso dalla v8.12.0 e si avvia automaticamente — nessuna configurazione richiesta.
Consulta la documentazione dell'estensione VS Code per le altre funzionalità.
Cursor e Windsurf sono fork di VS Code e usano lo stesso ecosistema di estensioni. Installa una volta l'estensione VS Code di Intlayer e il server si attiva automaticamente — nessuna configurazione richiesta.
Intlayer fornisce un plugin per Claude Code ospitato nel repository di Intlayer. Dà a Claude Code una vera risoluzione dei simboli per le tue chiavi di dizionario, invece di ripiegare su grep.
Metti il binario nel tuo PATH, poi registra il marketplace e installa il plugin:
Copiare il codice nella clipboard
install abilita anche il plugin. Riavvia Claude Code — i language server vengono caricati all'avvio, quindi il plugin non ha effetto prima di allora.
Claude Code avvia poi il server sui file .ts, .tsx, .js, .jsx, .vue, .astro e .svelte, e usa goToDefinition, findReferences e hover durante la navigazione del codice.
Se Go-to-Definition continua a non fare nulla, la tua versione di Claude Code potrebbe vincolare lo strumento LSP a un flag:
Copiare il codice nella clipboard
Zed ha supporto LSP nativo. Aggiungi il server alle tue impostazioni utente:
Copiare il codice nella clipboard
Il segnaposto "..." mantiene i language server predefiniti di Zed insieme a quello di Intlayer.
Con nvim-lspconfig, registra una configurazione di server personalizzata:
Copiare il codice nella clipboard
Dopo aver riavviato Neovim, gd su una chiave di dizionario esegue Vai alla definizione e gr esegue Trova riferimenti.
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Qualsiasi editor compatibile con LSP può eseguire @intlayer/lsp. Configuralo con:
- Eseguibile —
npx @intlayer/lsp, o il binariointlayer-lsp - Trasporto — stdio (standard)
- Capacità —
definitionProvider,referencesProvider,hoverProvider,completionProvider(caratteri di attivazione"'`.), diagnostica push,textDocumentSync: Incremental - Pattern di root —
intlayer.config.ts,intlayer.config.js,package.json
Consulta la documentazione LSP del tuo editor per il formato di configurazione esatto.
Nota sugli agenti IA da terminale
Claude Code agisce come un vero client LSP — vedi la scheda sopra.
OpenAI Codex e la maggior parte degli altri strumenti da terminale non sono client LSP: leggono e scrivono i file direttamente. Eseguire il server da solo non li aiuta; il valore deriva dall'averlo attivo in un editor complementare il cui indice l'agente può interrogare (Cursor Composer, Windsurf Cascade, Copilot Chat).
Come funziona
Per ogni file, il server individua l'intlayer.config.* più vicino e carica la configurazione di quel progetto per trovare i dizionari compilati. Configurazione, dizionari ed elenco dei file sorgente sono memorizzati in cache con TTL brevi e invalidati ogni volta che cambia un file di contenuto monitorato.
A ogni richiesta, il server analizza il documento (tramite oxc) ed esamina la posizione del cursore:
- Su una stringa chiave (
useIntlayer("home")) → restituisce ogni file di contenuto che dichiara quella chiave, posizionato sulla sua rigakey:. - Sull'uso di un campo (
content.title, una proprietà destrutturata,t('path.to.field'),<Trans>, …) → risale dalla variabile al suo dizionario e restituisce il campo corrispondente all'interno dei file di contenuto. - Da un file di contenuto → esegue la ricerca inversa, scandendo i sorgenti del progetto alla ricerca dei punti di chiamata di quella chiave o di quel campo.
Risoluzione dei problemi
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Non succede assolutamente nulla | Server non in esecuzione | Verifica che @intlayer/lsp sia installato e che il tuo editor lo avvii |
| Funziona nell'editor, non in Claude Code | Plugin installato a sessione avviata | Riavvia Claude Code — i language server si caricano all'avvio |
| Nessuna definizione trovata per una chiave | Dizionari non compilati | Esegui npx intlayer build, oppure avvia il server di sviluppo |
| Ogni chiave segnalata come non dichiarata | Configurazione non risolta | Verifica che esista un intlayer.config.ts (o .js) alla radice del progetto |
| Progetto sbagliato usato in un monorepo | Manca la configurazione per pacchetto | Aggiungi un intlayer.config.* a ogni pacchetto che dichiara contenuti propri |
| Il server va in crash all'avvio | Versione di Node.js troppo vecchia | Richiede Node.js ≥ 14.18 |
In VS Code il server scrive i log in Visualizza → Output → «Intlayer LSP» — utile per confermare quale configurazione è stata risolta e quanti dizionari sono stati trovati.