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.
