@intlayer/docs 9.3.0 → 9.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +24 -24
  2. package/blog/ar/rag_powered_documentation_assistant.md +1 -1
  3. package/blog/pl/rag_powered_documentation_assistant.md +1 -1
  4. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  5. package/dist/cjs/authors2.cjs +0 -1
  6. package/dist/cjs/common.cjs.map +1 -1
  7. package/dist/cjs/generated/blog.entry.cjs +4 -2
  8. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/docs.entry.cjs +4 -2
  10. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
  12. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  13. package/dist/cjs/generated/legal.entry.cjs +4 -2
  14. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +4 -2
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +4 -2
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +4 -2
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/docs/ar/configuration.md +10 -10
  24. package/docs/ar/interest_of_intlayer.md +24 -22
  25. package/docs/ar/intlayer_with_express.md +1 -1
  26. package/docs/ar/intlayer_with_svelte_kit.md +1 -1
  27. package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
  28. package/docs/ar/intlayer_with_tanstack.md +5 -3
  29. package/docs/ar/lsp.md +114 -175
  30. package/docs/ar/readme.md +25 -25
  31. package/docs/bn/configuration.md +10 -10
  32. package/docs/bn/interest_of_intlayer.md +24 -22
  33. package/docs/cs/configuration.md +10 -10
  34. package/docs/cs/interest_of_intlayer.md +24 -22
  35. package/docs/de/configuration.md +10 -10
  36. package/docs/de/interest_of_intlayer.md +24 -22
  37. package/docs/de/intlayer_with_svelte_kit.md +1 -1
  38. package/docs/de/intlayer_with_tanstack+solid.md +5 -3
  39. package/docs/de/intlayer_with_tanstack.md +5 -3
  40. package/docs/de/lsp.md +111 -172
  41. package/docs/de/readme.md +24 -24
  42. package/docs/en/configuration.md +10 -10
  43. package/docs/en/interest_of_intlayer.md +24 -22
  44. package/docs/en/intlayer_with_svelte_kit.md +1 -1
  45. package/docs/en/intlayer_with_tanstack+solid.md +5 -3
  46. package/docs/en/intlayer_with_tanstack.md +5 -3
  47. package/docs/en/lsp.md +109 -170
  48. package/docs/en/readme.md +24 -24
  49. package/docs/en-GB/configuration.md +10 -10
  50. package/docs/en-GB/interest_of_intlayer.md +24 -22
  51. package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
  52. package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
  53. package/docs/en-GB/intlayer_with_tanstack.md +5 -3
  54. package/docs/en-GB/lsp.md +109 -170
  55. package/docs/en-GB/readme.md +24 -24
  56. package/docs/es/configuration.md +10 -10
  57. package/docs/es/interest_of_intlayer.md +24 -22
  58. package/docs/es/intlayer_with_svelte_kit.md +1 -1
  59. package/docs/es/intlayer_with_tanstack+solid.md +5 -3
  60. package/docs/es/intlayer_with_tanstack.md +5 -3
  61. package/docs/es/lsp.md +114 -175
  62. package/docs/es/readme.md +24 -24
  63. package/docs/fr/configuration.md +10 -10
  64. package/docs/fr/interest_of_intlayer.md +24 -22
  65. package/docs/fr/intlayer_with_svelte_kit.md +1 -1
  66. package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
  67. package/docs/fr/intlayer_with_tanstack.md +5 -3
  68. package/docs/fr/lsp.md +110 -171
  69. package/docs/fr/readme.md +24 -24
  70. package/docs/hi/configuration.md +10 -10
  71. package/docs/hi/interest_of_intlayer.md +24 -22
  72. package/docs/hi/intlayer_with_express.md +1 -1
  73. package/docs/hi/intlayer_with_svelte_kit.md +1 -1
  74. package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
  75. package/docs/hi/intlayer_with_tanstack.md +5 -3
  76. package/docs/hi/lsp.md +113 -174
  77. package/docs/hi/readme.md +24 -24
  78. package/docs/id/configuration.md +10 -10
  79. package/docs/id/interest_of_intlayer.md +24 -22
  80. package/docs/id/intlayer_with_svelte_kit.md +1 -1
  81. package/docs/id/intlayer_with_tanstack+solid.md +5 -3
  82. package/docs/id/intlayer_with_tanstack.md +5 -3
  83. package/docs/id/lsp.md +113 -174
  84. package/docs/id/readme.md +24 -24
  85. package/docs/it/configuration.md +10 -10
  86. package/docs/it/interest_of_intlayer.md +24 -22
  87. package/docs/it/intlayer_with_svelte_kit.md +1 -1
  88. package/docs/it/intlayer_with_tanstack+solid.md +5 -3
  89. package/docs/it/intlayer_with_tanstack.md +5 -3
  90. package/docs/it/lsp.md +115 -176
  91. package/docs/it/readme.md +24 -24
  92. package/docs/ja/configuration.md +10 -10
  93. package/docs/ja/interest_of_intlayer.md +24 -22
  94. package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
  95. package/docs/ja/intlayer_with_tanstack.md +5 -3
  96. package/docs/ja/lsp.md +113 -174
  97. package/docs/ja/readme.md +24 -24
  98. package/docs/ko/configuration.md +10 -10
  99. package/docs/ko/interest_of_intlayer.md +24 -22
  100. package/docs/ko/intlayer_with_svelte_kit.md +1 -1
  101. package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
  102. package/docs/ko/intlayer_with_tanstack.md +5 -3
  103. package/docs/ko/lsp.md +112 -173
  104. package/docs/ko/readme.md +24 -24
  105. package/docs/nl/configuration.md +10 -10
  106. package/docs/nl/interest_of_intlayer.md +24 -22
  107. package/docs/pl/configuration.md +10 -10
  108. package/docs/pl/interest_of_intlayer.md +4 -2
  109. package/docs/pl/intlayer_with_svelte_kit.md +1 -1
  110. package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
  111. package/docs/pl/intlayer_with_tanstack.md +5 -3
  112. package/docs/pl/lsp.md +115 -176
  113. package/docs/pl/readme.md +24 -24
  114. package/docs/pt/configuration.md +10 -10
  115. package/docs/pt/interest_of_intlayer.md +24 -22
  116. package/docs/pt/intlayer_with_svelte_kit.md +1 -1
  117. package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
  118. package/docs/pt/intlayer_with_tanstack.md +5 -3
  119. package/docs/pt/lsp.md +113 -174
  120. package/docs/pt/readme.md +24 -24
  121. package/docs/ru/configuration.md +10 -10
  122. package/docs/ru/interest_of_intlayer.md +24 -22
  123. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  124. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  125. package/docs/ru/intlayer_with_svelte_kit.md +1 -1
  126. package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
  127. package/docs/ru/intlayer_with_tanstack.md +5 -3
  128. package/docs/ru/lsp.md +112 -173
  129. package/docs/ru/readme.md +24 -24
  130. package/docs/tr/configuration.md +10 -10
  131. package/docs/tr/interest_of_intlayer.md +24 -22
  132. package/docs/tr/intlayer_with_svelte_kit.md +1 -1
  133. package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
  134. package/docs/tr/intlayer_with_tanstack.md +5 -3
  135. package/docs/tr/lsp.md +113 -174
  136. package/docs/tr/readme.md +24 -24
  137. package/docs/uk/configuration.md +10 -10
  138. package/docs/uk/interest_of_intlayer.md +4 -2
  139. package/docs/uk/intlayer_with_svelte_kit.md +1 -1
  140. package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
  141. package/docs/uk/intlayer_with_tanstack.md +5 -3
  142. package/docs/uk/lsp.md +113 -174
  143. package/docs/uk/per_locale_file.md +1 -1
  144. package/docs/uk/readme.md +24 -24
  145. package/docs/ur/configuration.md +10 -10
  146. package/docs/ur/interest_of_intlayer.md +24 -22
  147. package/docs/vi/configuration.md +10 -10
  148. package/docs/vi/interest_of_intlayer.md +24 -22
  149. package/docs/vi/intlayer_with_svelte_kit.md +1 -1
  150. package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
  151. package/docs/vi/intlayer_with_tanstack.md +5 -3
  152. package/docs/vi/lsp.md +115 -176
  153. package/docs/vi/readme.md +24 -24
  154. package/docs/zh/configuration.md +10 -10
  155. package/docs/zh/interest_of_intlayer.md +24 -22
  156. package/docs/zh/intlayer_with_svelte_kit.md +1 -1
  157. package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
  158. package/docs/zh/intlayer_with_tanstack.md +5 -3
  159. package/docs/zh/lsp.md +113 -174
  160. package/docs/zh/readme.md +21 -21
  161. package/docs/zh-TW/interest_of_intlayer.md +24 -22
  162. package/package.json +6 -6
package/docs/it/lsp.md CHANGED
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  createdAt: 2025-06-07
3
- updatedAt: 2026-05-31
4
- title: Server LSP Intlayer
5
- description: Scopri come il server di linguaggio Intlayer fornisce la funzionalità "Vai alla definizione" e altre funzionalità IDE per useIntlayer, getIntlayer e chiamate correlate in tutti gli editor supportati.
3
+ updatedAt: 2026-08-10
4
+ title: Server LSP di Intlayer
5
+ description: Scopri come il language server di Intlayer porta Go-to-Definition, ricerca dei riferimenti, anteprime al passaggio del mouse, autocompletamento delle chiavi e diagnostica nel tuo IDE e nel tuo agente IA.
6
6
  keywords:
7
7
  - LSP
8
- - Server di linguaggio
9
- - Vai alla definizione
8
+ - Language Server
9
+ - Go to Definition
10
+ - Autocompletamento
11
+ - Diagnostica
10
12
  - IDE
11
13
  - Intlayer
12
14
  - VS Code
@@ -16,56 +18,58 @@ slugs:
16
18
  - doc
17
19
  - lsp
18
20
  history:
21
+ - version: 9.1.3
22
+ date: 2026-08-10
23
+ changes: "Aggiunti ricerca dei riferimenti, hover, autocompletamento e diagnostica"
19
24
  - version: 8.12.0
20
25
  date: 2026-06-01
21
26
  changes: "Release LSP"
22
27
  author: aymericzip
23
28
  ---
24
29
 
25
- # Server LSP Intlayer
30
+ # Server LSP di Intlayer
26
31
 
27
- Il **Server di linguaggio Intlayer (LSP)** è un'implementazione del [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) che arricchisce il tuo IDE con un'intelligenza consapevole di Intlayer. Attualmente fornisce la funzionalità **Vai alla definizione (Go to Definition)** per le chiamate alle chiavi del dizionario, consentendoti di saltare direttamente da `useIntlayer("my-key")` nel tuo componente al file `.content.ts` che lo dichiara.
32
+ Il **language server di Intlayer** è un'implementazione del [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) 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.
28
33
 
29
34
  ---
30
35
 
31
- ## Perché usare l'LSP?
36
+ ## Funzionalità
32
37
 
33
- Quando usi Intlayer, la connessione tra una chiamata come `useIntlayer("homepage")` e la sua dichiarazione in `src/homepage.content.ts` è implicita. Senza strumenti dedicati, dovresti cercare il file manualmente. L'LSP rende questo collegamento esplicito:
38
+ | Funzionalità | Scorciatoia | Descrizione |
39
+ | ----------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
40
+ | **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 |
41
+ | **Trova tutti i riferimenti** | `Maiusc+F12` | Da un file di contenuto, elencare ogni punto di chiamata che usa quella chiave o quel campo |
42
+ | **Hover** | passare il cursore | Visualizzare i campi di un dizionario, o il valore tradotto di un campo, senza lasciare il file |
43
+ | **Autocompletamento** | `"` `'` `` ` `` `.` | Suggerire le chiavi di dizionario dichiarate dentro un getter, e i campi di contenuto dopo `.` o durante la destrutturazione |
44
+ | **Diagnostica** | automatico | Avvisare quando una chiave non è dichiarata in nessun file di contenuto |
34
45
 
35
- **Consapevolezza dell'agente AI**
46
+ Vale la pena conoscere due comportamenti aggiuntivi:
36
47
 
37
- Gli agenti di programmazione AI (Cursor, Windsurf, GitHub Copilot, Claude Code, Codex) si affidano al server di linguaggio per risolvere i simboli e comprendere le relazioni tra i file. Con l'LSP di Intlayer in esecuzione, gli agenti possono seguire `useIntlayer("key")` fino alla sua dichiarazione, ottenendo un contesto accurato sulle chiavi di contenuto disponibili, la struttura di ciascun dizionario e quali file leggere o modificare.
48
+ - **Dizionari uniti** una chiave suddivisa su più file di contenuto restituisce un risultato per file, così puoi navigare a ogni dichiarazione.
49
+ - **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.
38
50
 
39
- **Vai alla definizione**
51
+ ### Chiamate supportate
40
52
 
41
- Posiziona il cursore su qualsiasi stringa chiave del dizionario all'interno di una chiamata getter supportata e premi `F12` (o `Cmd/Ctrl+Click`). L'editor apre il file di dichiarazione del contenuto e posiziona il cursore sulla riga `key:`.
53
+ La chiave viene letta da un argomento posizionale di tipo stringa oppure da un oggetto di opzioni (`{ namespace }`, `{ id }`).
42
54
 
43
- **Supporto per dizionari uniti**
55
+ | Libreria | Chiamate |
56
+ | --------------------------- | -------------------------------------------------------- |
57
+ | **Intlayer** | `useIntlayer`, `getIntlayer` |
58
+ | **i18next / react-i18next** | `useTranslation`, `getFixedT`, `t`, `Trans` |
59
+ | **next-intl / use-intl** | `useTranslations`, `getTranslations`, `createTranslator` |
60
+ | **react-intl** | `formatMessage`, `FormattedMessage` |
61
+ | **Lingui** | `useLingui`, `t`, `Trans`, `_` |
62
+ | **vue-i18n** | `useI18n` |
44
63
 
45
- Una chiave può essere suddivisa in più file di contenuto (Intlayer li unisce). Il server restituisce una posizione (`Location`) per file sorgente, consentendoti di navigare in ogni dichiarazione.
64
+ 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.
46
65
 
47
- **Funziona ovunque**
48
-
49
- Supporta tutti i pacchetti `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `adonis-intlayer`, `intlayer`).
50
-
51
- ### Chiamate getter supportate
52
-
53
- Il server rileva le seguenti chiamate di funzione ed estrae il primo argomento stringa letterale come chiave del dizionario:
54
-
55
- | Funzione | Esempio |
56
- | ------------- | ----------------------------- |
57
- | `useIntlayer` | `useIntlayer("hero")` |
58
- | `getIntlayer` | `getIntlayer("hero", locale)` |
59
-
60
- I generici TypeScript e gli argomenti extra vengono ignorati: conta solo la stringa della chiave.
61
-
62
- > `useDictionary` e `getDictionary` accettano un oggetto `Dictionary` già importato come primo argomento anziché una chiave stringa, pertanto non beneficiano della funzionalità Vai alla definizione e non sono tracciati dal server.
66
+ > 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.
63
67
 
64
68
  ---
65
69
 
66
70
  ## Installazione
67
71
 
68
- Il server LSP è distribuito come parte di `@intlayer/lsp`:
72
+ Il server è distribuito come binario `intlayer-lsp` in `@intlayer/lsp`:
69
73
 
70
74
  ```bash packageManager="npm"
71
75
  npm install --save-dev @intlayer/lsp
@@ -83,43 +87,43 @@ pnpm add --save-dev @intlayer/lsp
83
87
  bun add --dev @intlayer/lsp
84
88
  ```
85
89
 
86
- Il pacchetto espone il binario `intlayer-lsp`, che gli editor utilizzano come eseguibile del server.
90
+ 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.
87
91
 
88
92
  ---
89
93
 
90
- ## Configurazione come plugin di Claude Code
94
+ ## Configurazione
91
95
 
92
- L'LSP Intlayer è disponibile come **plugin di Claude Code** ospitato direttamente nel repository GitHub di Intlayer. Installarlo fornisce a Claude Code una consapevolezza nativa di Vai alla definizione per tutte le tue chiamate `useIntlayer` / `getIntlayer`.
96
+ <Tabs defaultTab="vscode">
97
+ <Tab label="VS Code" value="vscode">
93
98
 
94
- ### 1. Installa il binario del server di linguaggio
99
+ Installa l'[estensione VS Code di Intlayer](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). Il language server è incluso dalla v8.12.0 e si avvia automaticamente — **nessuna configurazione richiesta**.
95
100
 
96
- ```bash packageManager="npm"
97
- npm install -g @intlayer/lsp
98
- ```
101
+ Consulta la [documentazione dell'estensione VS Code](https://intlayer.org/doc/vs-code-extension) per le altre funzionalità.
99
102
 
100
- ```bash packageManager="yarn"
101
- yarn global add @intlayer/lsp
102
- ```
103
+ </Tab>
104
+ <Tab label="Cursor / Windsurf" value="cursor">
103
105
 
104
- ```bash packageManager="pnpm"
105
- pnpm add -g @intlayer/lsp
106
- ```
106
+ [Cursor](https://www.cursor.com/) e [Windsurf](https://windsurf.com/) sono fork di VS Code e usano lo stesso ecosistema di estensioni. Installa una volta l'[estensione VS Code di Intlayer](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) e il server si attiva automaticamente — **nessuna configurazione richiesta**.
107
+
108
+ </Tab>
109
+ <Tab label="Claude Code" value="claude-code">
107
110
 
108
- Questo inserisce il binario `intlayer-lsp` nel tuo PATH, che è ciò che richiama la voce `lspServers` del plugin.
111
+ Intlayer fornisce un **plugin per Claude Code** ospitato nel repository di Intlayer. a Claude Code una vera risoluzione dei simboli per le tue chiavi di dizionario, invece di ripiegare su `grep`.
109
112
 
110
- ### 2. Registra il marketplace di Intlayer e installa il plugin
113
+ Metti il binario nel tuo `PATH`, poi registra il marketplace e installa il plugin:
111
114
 
112
115
  ```bash
116
+ npm install -g @intlayer/lsp
117
+
113
118
  claude plugin marketplace add intlayer@github:aymericzip/intlayer
114
119
  claude plugin install intlayer-lsp@intlayer
115
- claude plugin enable intlayer-lsp@intlayer
116
120
  ```
117
121
 
118
- Claude Code aggiungerà `"intlayer-lsp@intlayer": true` ai tuoi `enabledPlugins` e avvierà automaticamente il server di linguaggio sui tipi di file supportati (`.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.svelte`).
122
+ `install` abilita anche il plugin. **Riavvia Claude Code** i language server vengono caricati all'avvio, quindi il plugin non ha effetto prima di allora.
119
123
 
120
- ### 3. Abilita lo strumento LSP (se non è già attivo)
124
+ 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.
121
125
 
122
- Alcune versioni di Claude Code richiedono l'impostazione del flag di funzionalità LSP. Aggiungi quanto segue al tuo file `~/.claude/settings.json` se Vai alla definizione non funziona dopo l'installazione:
126
+ Se Go-to-Definition continua a non fare nulla, la tua versione di Claude Code potrebbe vincolare lo strumento LSP a un flag:
123
127
 
124
128
  ```json fileName="~/.claude/settings.json"
125
129
  {
@@ -129,61 +133,10 @@ Alcune versioni di Claude Code richiedono l'impostazione del flag di funzionalit
129
133
  }
130
134
  ```
131
135
 
132
- Riavvia Claude Code: ora utilizzerà `goToDefinition`, `findReferences` e altre operazioni LSP durante la navigazione nella base di codice Intlayer anziché ripiegare su `grep`.
133
-
134
- ---
135
-
136
- ## Configurazione in VS Code (tramite estensione — consigliato)
137
-
138
- Se hai installato l'**estensione Intlayer per VS Code**, il server di linguaggio si avvia automaticamente. Non è richiesta alcuna configurazione aggiuntiva. L'LSP è integrato direttamente nell'estensione VSCode dalla versione 8.12.0.
139
-
140
- > Consulta la [documentazione dell'estensione VS Code](https://intlayer.org/doc/vs-code-extension) per l'installazione e altre funzionalità.
141
-
142
- ---
143
-
144
- ## Configurazione manuale in VS Code
145
-
146
- Se non utilizzi l'estensione Intlayer, puoi configurare il server di linguaggio manualmente utilizzando un'estensione client LSP generica come [**vscode-glspc**](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter) o scrivendo una tua piccola estensione. L'approccio consigliato consiste nell'utilizzare l'estensione Intlayer.
147
-
148
- Per riferimento, il server viene avviato tramite il binario `intlayer-lsp` su stdio:
149
-
150
- ```json fileName=".vscode/settings.json"
151
- {
152
- "intlayer.languageServer.command": "npx",
153
- "intlayer.languageServer.args": ["@intlayer/lsp"]
154
- }
155
- ```
156
-
157
- L'estensione Intlayer legge queste impostazioni per avviare il server. Se ti affidi esclusivamente all'estensione, non sono necessarie impostazioni manuali.
158
-
159
- ---
160
-
161
- ## Configurazione in Cursor
162
-
163
- [Cursor](https://www.cursor.com/) è un fork di VS Code con funzionalità AI integrate. Utilizza lo stesso ecosistema di estensioni, quindi l'**estensione Intlayer per VS Code** funziona senza alcuna configurazione aggiuntiva: installala una volta e Cursor la rileverà automaticamente.
164
-
165
- Se preferisci una configurazione manuale, Cursor legge anche `.vscode/settings.json` dalla radice dell'area di lavoro, quindi lo snippet di VS Code sopra si applica direttamente.
166
-
167
- ---
168
-
169
- ## Configurazione in Windsurf
170
-
171
- [Windsurf](https://windsurf.com/) (di Codeium) è un altro editor basato su VS Code. Installa l'estensione Intlayer dal VS Code Marketplace e il server di linguaggio si attiverà automaticamente, esattamente come accade in VS Code e Cursor.
172
-
173
- Per la configurazione manuale, crea `.vscode/settings.json` nella radice del progetto:
174
-
175
- ```json fileName=".vscode/settings.json"
176
- {
177
- "intlayer.languageServer.command": "npx",
178
- "intlayer.languageServer.args": ["@intlayer/lsp"]
179
- }
180
- ```
181
-
182
- ---
183
-
184
- ## Configurazione in Zed
136
+ </Tab>
137
+ <Tab label="Zed" value="zed">
185
138
 
186
- [Zed](https://zed.dev/) offre un supporto LSP nativo tramite le sue impostazioni di lingua. Aggiungi una voce nelle tue impostazioni utente di Zed (`~/.config/zed/settings.json`):
139
+ Zed ha supporto LSP nativo. Aggiungi il server alle tue impostazioni utente:
187
140
 
188
141
  ```json fileName="~/.config/zed/settings.json"
189
142
  {
@@ -196,47 +149,21 @@ Per la configurazione manuale, crea `.vscode/settings.json` nella radice del pro
196
149
  }
197
150
  },
198
151
  "languages": {
199
- "TypeScript": {
200
- "language_servers": ["intlayer-lsp", "..."]
201
- },
202
- "TSX": {
203
- "language_servers": ["intlayer-lsp", "..."]
204
- },
205
- "JavaScript": {
206
- "language_servers": ["intlayer-lsp", "..."]
207
- },
208
- "Vue.js": {
209
- "language_servers": ["intlayer-lsp", "..."]
210
- },
211
- "Svelte": {
212
- "language_servers": ["intlayer-lsp", "..."]
213
- }
152
+ "TypeScript": { "language_servers": ["intlayer-lsp", "..."] },
153
+ "TSX": { "language_servers": ["intlayer-lsp", "..."] },
154
+ "JavaScript": { "language_servers": ["intlayer-lsp", "..."] },
155
+ "Vue.js": { "language_servers": ["intlayer-lsp", "..."] },
156
+ "Svelte": { "language_servers": ["intlayer-lsp", "..."] }
214
157
  }
215
158
  }
216
159
  ```
217
160
 
218
- Il segnaposto `"..."` indica a Zed di mantenere i suoi server di linguaggio predefiniti insieme a quello di Intlayer.
219
-
220
- ---
221
-
222
- ## Configurazione per CLI di agenti AI (Claude Code, Codex, ecc.)
223
-
224
- **Claude Code** offre un supporto di prim'ordine per i plugin LSP: segui la [configurazione del plugin Claude Code](#configurazione-come-plugin-di-claude-code) sopra per ottenere l'esperienza completa di Vai alla definizione direttamente nelle tue sessioni di terminale.
161
+ Il segnaposto `"..."` mantiene i language server predefiniti di Zed insieme a quello di Intlayer.
225
162
 
226
- **OpenAI Codex** e altri strumenti basati su terminale non fungono ancora da client LSP: leggono e scrivono i file direttamente anziché mantenere una sessione di server di linguaggio persistente. Per tali strumenti, il valore di avere l'LSP in esecuzione deriva indirettamente: quando il server è attivo in un editor complementare (VS Code, Cursor, Windsurf, ...), l'indice in tempo reale dell'editor è disponibile per qualsiasi agente AI in grado di interrogarlo tramite il contesto fornito dall'editor (ad esempio, Cursor Composer, Windsurf Cascade, GitHub Copilot Chat).
163
+ </Tab>
164
+ <Tab label="Neovim" value="neovim">
227
165
 
228
- Se lavori esclusivamente in un terminale senza un editor aperto, puoi avviare il server di linguaggio in background in modo che sia pronto per qualsiasi editor che si collegherà successivamente alla stessa area di lavoro:
229
-
230
- ```bash
231
- # Mantieni il server attivo in background
232
- npx @intlayer/lsp &
233
- ```
234
-
235
- ---
236
-
237
- ## Configurazione manuale in Neovim
238
-
239
- Utilizzando [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), registra una configurazione del server personalizzata:
166
+ Con [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), registra una configurazione di server personalizzata:
240
167
 
241
168
  ```lua fileName="~/.config/nvim/init.lua"
242
169
  local lspconfig = require('lspconfig')
@@ -245,7 +172,7 @@ local configs = require('lspconfig.configs')
245
172
  if not configs.intlayer_lsp then
246
173
  configs.intlayer_lsp = {
247
174
  default_config = {
248
- -- Avvia il server con npx per evitare un'installazione globale
175
+ -- Avvia il server con npx per non richiedere un'installazione globale
249
176
  cmd = { 'npx', '--yes', '@intlayer/lsp' },
250
177
  filetypes = {
251
178
  'typescript',
@@ -267,21 +194,10 @@ end
267
194
  lspconfig.intlayer_lsp.setup({})
268
195
  ```
269
196
 
270
- Dopo aver riavviato Neovim, premendo `gd` su una chiave Intlayer verrà avviata la funzionalità Vai alla definizione.
271
-
272
- ---
273
-
274
- ## Configurazione manuale in altri editor
275
-
276
- Qualsiasi editor che supporti il Language Server Protocol può utilizzare `@intlayer/lsp`. Il server fornisce:
197
+ Dopo aver riavviato Neovim, `gd` su una chiave di dizionario esegue Vai alla definizione e `gr` esegue Trova riferimenti.
277
198
 
278
- - **Trasporto** – Node.js IPC / stdio (standard)
279
- - **Eseguibile** – `npx @intlayer/lsp` (o il binario `intlayer-lsp` installato localmente)
280
- - **Funzionalità** – `definitionProvider: true`, `textDocumentSync: Incremental`
281
-
282
- Consulta la documentazione LSP del tuo editor per il formato di configurazione esatto (ad esempio, `languageserver.json` per [coc.nvim](https://github.com/neoclide/coc.nvim) o le impostazioni del client LSP in [Helix](https://helix-editor.com)).
283
-
284
- ### Esempio: coc.nvim
199
+ </Tab>
200
+ <Tab label="coc.nvim" value="coc">
285
201
 
286
202
  ```json fileName="~/.config/nvim/coc-settings.json"
287
203
  {
@@ -307,9 +223,14 @@ Consulta la documentazione LSP del tuo editor per il formato di configurazione e
307
223
  }
308
224
  ```
309
225
 
310
- ### Esempio: Helix
226
+ </Tab>
227
+ <Tab label="Helix" value="helix">
311
228
 
312
229
  ```toml fileName="~/.config/helix/languages.toml"
230
+ [language-server.intlayer-lsp]
231
+ command = "npx"
232
+ args = ["@intlayer/lsp"]
233
+
313
234
  [[language]]
314
235
  name = "typescript"
315
236
  language-servers = ["intlayer-lsp", "typescript-language-server"]
@@ -317,36 +238,54 @@ language-servers = ["intlayer-lsp", "typescript-language-server"]
317
238
  [[language]]
318
239
  name = "tsx"
319
240
  language-servers = ["intlayer-lsp", "typescript-language-server"]
320
-
321
- [language-server.intlayer-lsp]
322
- command = "npx"
323
- args = ["@intlayer/lsp"]
324
241
  ```
325
242
 
243
+ </Tab>
244
+ <Tab label="Altri editor" value="other">
245
+
246
+ Qualsiasi editor compatibile con LSP può eseguire `@intlayer/lsp`. Configuralo con:
247
+
248
+ - **Eseguibile** — `npx @intlayer/lsp`, o il binario `intlayer-lsp`
249
+ - **Trasporto** — stdio (standard)
250
+ - **Capacità** — `definitionProvider`, `referencesProvider`, `hoverProvider`, `completionProvider` (caratteri di attivazione `"` `'` `` ` `` `.`), diagnostica push, `textDocumentSync: Incremental`
251
+ - **Pattern di root** — `intlayer.config.ts`, `intlayer.config.js`, `package.json`
252
+
253
+ Consulta la documentazione LSP del tuo editor per il formato di configurazione esatto.
254
+
255
+ </Tab>
256
+ </Tabs>
257
+
326
258
  ---
327
259
 
328
- ## Come funziona
260
+ ## Nota sugli agenti IA da terminale
329
261
 
330
- Quando il server si avvia, risolve la configurazione di Intlayer dalla radice dell'area di lavoro utilizzando `getConfiguration()`. Questo gli fornisce i percorsi `build` e `system` necessari per trovare i dizionari compilati.
262
+ **Claude Code** agisce come un vero client LSP vedi la scheda sopra.
331
263
 
332
- Su ogni richiesta di **Vai alla definizione**:
264
+ **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).
333
265
 
334
- 1. Il server legge il testo completo del documento aperto.
335
- 2. Esegue una scansione per trovare le chiamate getter (`useIntlayer`, `getIntlayer`, ecc.) utilizzando una espressione regolare.
336
- 3. Verifica se la posizione del cursore rientra all'interno di una di quelle chiamate.
337
- 4. In caso affermativo, estrae la chiave del dizionario (gruppo di cattura 3 dell'espressione regolare) e chiama `getUnmergedDictionaries()` per individuare ogni file di contenuto che dichiara quella chiave.
338
- 5. Legge ciascun file corrispondente e trova la riga esatta contenente `key: "<key>"` per posizionare il cursore in modo preciso.
339
- 6. Restituisce un array di oggetti `Location` — uno per file sorgente.
266
+ ---
340
267
 
341
- La configurazione viene risolta in modo lazy e memorizzata nella cache per sessione; si reimposta su ciascuna richiesta `initialize` (ad esempio, quando si apre una nuova cartella dell'area di lavoro).
268
+ ## Come funziona
269
+
270
+ 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.
271
+
272
+ A ogni richiesta, il server analizza il documento (tramite [oxc](https://oxc.rs/)) ed esamina la posizione del cursore:
273
+
274
+ 1. **Su una stringa chiave** (`useIntlayer("home")`) → restituisce ogni file di contenuto che dichiara quella chiave, posizionato sulla sua riga `key:`.
275
+ 2. **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.
276
+ 3. **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.
342
277
 
343
278
  ---
344
279
 
345
280
  ## Risoluzione dei problemi
346
281
 
347
- | Sintomo | Causa probabile | Soluzione |
348
- | ------------------------------------------ | ---------------------------------- | ---------------------------------------------------------------------------------------------------- |
349
- | Vai alla definizione non fa nulla | Il server non è in esecuzione | Verifica che `@intlayer/lsp` sia installato e che l'editor lo stia avviando |
350
- | Rilevata radice dell'area di lavoro errata | Più cartelle dell'area di lavoro | Assicurati che la cartella contenente `intlayer.config.ts` sia la prima cartella dell'area di lavoro |
351
- | Definizioni non trovate per una chiave | Configurazione non risolta | Verifica che `intlayer.config.ts` (o `.js`) esista nella radice dell'area di lavoro |
352
- | Il server si blocca all'avvio | Versione di Node.js troppo vecchia | Richiede Node.js 14.18 |
282
+ | Sintomo | Causa probabile | Soluzione |
283
+ | ------------------------------------------ | ------------------------------------- | ------------------------------------------------------------------------------ |
284
+ | Non succede assolutamente nulla | Server non in esecuzione | Verifica che `@intlayer/lsp` sia installato e che il tuo editor lo avvii |
285
+ | Funziona nell'editor, non in Claude Code | Plugin installato a sessione avviata | Riavvia Claude Code i language server si caricano all'avvio |
286
+ | Nessuna definizione trovata per una chiave | Dizionari non compilati | Esegui `npx intlayer build`, oppure avvia il server di sviluppo |
287
+ | Ogni chiave segnalata come non dichiarata | Configurazione non risolta | Verifica che esista un `intlayer.config.ts` (o `.js`) alla radice del progetto |
288
+ | Progetto sbagliato usato in un monorepo | Manca la configurazione per pacchetto | Aggiungi un `intlayer.config.*` a ogni pacchetto che dichiara contenuti propri |
289
+ | Il server va in crash all'avvio | Versione di Node.js troppo vecchia | Richiede Node.js ≥ 14.18 |
290
+
291
+ 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.
package/docs/it/readme.md CHANGED
@@ -46,27 +46,27 @@ Con **file di contenuto per ogni locale**, **autocompletamento TypeScript**, **d
46
46
 
47
47
  ## Vantaggi principali di Intlayer:
48
48
 
49
- | Funzionalità | Descrizione |
50
- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Supporto multi-framework**<br><br>Intlayer è compatibile con tutti i principali framework e librerie, tra cui Next.js, React, Vite, Vue.js, Nuxt, Preact, Express e altri. |
52
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **Gestione del contenuto basata su JavaScript**<br><br>Sfrutta la flessibilità di JavaScript per definire e gestire il tuo contenuto in modo efficiente. <br><br> - [Dichiarazione del contenuto](https://intlayer.org/doc/concept/content) |
53
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **File di dichiarazione del contenuto per ogni locale**<br><br>Accelera il tuo sviluppo dichiarando il tuo contenuto una sola volta, prima della generazione automatica.<br><br> - [File di dichiarazione del contenuto per locale](https://intlayer.org/doc/concept/per-locale-file) |
54
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compilatore**<br><br>Il compilatore Intlayer estrae automaticamente il contenuto dei componenti e genera i file di dizionario.<br><br> - [Compilatore](https://intlayer.org/doc/compiler) |
55
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Ambiente tipizzato sicuro**<br><br>Utilizza TypeScript per garantire che le tue definizioni di contenuto e il tuo codice siano privi di errori, beneficiando al contempo dell'autocompletamento dell'IDE.<br><br> - [Configurazione TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Configurazione semplificata**<br><br>Inizia rapidamente con una configurazione minima. Regola facilmente le impostazioni per l'internazionalizzazione, il routing, l'IA, la build e la gestione del contenuto. <br><br> - [Esplora l'integrazione con Next.js](https://intlayer.org/doc/environment/nextjs) |
57
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Recupero del contenuto semplificato**<br><br>Non c'è bisogno di chiamare la tua funzione `t` per ogni elemento di contenuto. Recupera tutto il tuo contenuto direttamente utilizzando un unico hook.<br><br> - [Integrazione React](https://intlayer.org/doc/environment/create-react-app) |
58
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Implementazione coerente dei componenti server**<br><br>Perfettamente adatto ai componenti server di Next.js, utilizza la stessa implementazione sia per i componenti client che server, non c'è bisogno di passare la tua funzione `t` attraverso ogni componente server. <br><br> - [Componenti Server](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Base di codice organizzata**<br><br>Mantieni la tua base di codice più organizzata: 1 componente = 1 dizionario nella stessa cartella. Le traduzioni vicine ai rispettivi componenti migliorano la manutenibilità e la chiarezza. <br><br> - [Come funziona Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Routing migliorato**<br><br>Supporto completo al routing dell'applicazione, adattandosi perfettamente a strutture applicative complesse, per Next.js, React, Vite, Vue.js, ecc.<br><br> - [Esplora l'integrazione con Next.js](https://intlayer.org/doc/environment/nextjs) |
61
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Supporto Markdown**<br><br>Importa e interpreta i file locali e il Markdown remoto per contenuti multilingue come le informative sulla privacy, la documentazione, ecc. Interpreta e rendi accessibili i metadati Markdown nel tuo codice.<br><br> - [File di contenuto](https://intlayer.org/doc/concept/content/file) |
62
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Editor visuale e CMS gratuiti**<br><br>Un editor visuale e un CMS gratuiti sono disponibili per i redattori di contenuti, eliminando la necessità di una piattaforma di localizzazione. Mantieni il tuo contenuto sincronizzato utilizzando Git, o esternalizzalo totalmente o parzialmente con il CMS.<br><br> - [Editor Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Contenuto tree-shakable**<br><br>Contenuto tree-shakable, che riduce le dimensioni del bundle finale. Carica il contenuto per componente, escludendo qualsiasi contenuto non utilizzato dal tuo bundle. Supporta il caricamento differito (lazy loading) per migliorare l'efficienza di caricamento dell'applicazione. <br><br> - [Ottimizzazione della build](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Rendering statico**<br><br>Non blocca il rendering statico. <br><br> - [Integrazione Next.js](https://intlayer.org/doc/environment/nextjs) |
65
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Traduzione basata sull'IA**<br><br>Trasforma il tuo sito web in 231 lingue con un solo clic grazie agli strumenti di traduzione avanzati di Intlayer che utilizzano il tuo fornitore di IA / chiave API. <br><br> - [Integrazione CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI di Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Auto-riempimento](https://intlayer.org/doc/concept/auto-fill) |
66
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Integrazione server MCP**<br><br>Fornisce un server MCP (Model Context Protocol) per l'automazione dell'IDE, permettendo una gestione dei contenuti e dei flussi di lavoro i18n fluida direttamente nel tuo ambiente di sviluppo. <br><br> - [Server MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/mcp_server.md) |
67
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Estensione VSCode**<br><br>Intlayer offre un'estensione per VSCode per aiutarti a gestire i tuoi contenuti e le tue traduzioni, a costruire i tuoi dizionari, a tradurre il tuo contenuto e altro ancora. <br><br> - [Estensione VSCode](https://intlayer.org/doc/vs-code-extension) |
68
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Interoperabilità**<br><br>Permette l'interoperabilità con react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer e react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer e next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer e next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer e vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
69
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Prestazioni e Benchmark**<br><br>Utilizza tree-shaking avanzato e caricamento dinamico per migliorare le prestazioni e mantenere la soluzione il più leggera possibile. <br><br> - [Prestazioni e Benchmark](https://intlayer.org/doc/benchmark) |
49
+ | Funzionalità | Descrizione |
50
+ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Supporto multi-framework**<br><br>Intlayer è compatibile con tutti i principali framework e librerie, tra cui Next.js, React, Vite, Vue.js, Nuxt, Preact, Express e altri. |
52
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **Gestione del contenuto basata su JavaScript**<br><br>Sfrutta la flessibilità di JavaScript per definire e gestire il tuo contenuto in modo efficiente. <br><br> - [Dichiarazione del contenuto](https://intlayer.org/doc/concept/content) |
53
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **File di dichiarazione del contenuto per ogni locale**<br><br>Accelera il tuo sviluppo dichiarando il tuo contenuto una sola volta, prima della generazione automatica.<br><br> - [File di dichiarazione del contenuto per locale](https://intlayer.org/doc/concept/per-locale-file) |
54
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compilatore**<br><br>Il compilatore Intlayer estrae automaticamente il contenuto dei componenti e genera i file di dizionario.<br><br> - [Compilatore](https://intlayer.org/doc/compiler) |
55
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Ambiente tipizzato sicuro**<br><br>Utilizza TypeScript per garantire che le tue definizioni di contenuto e il tuo codice siano privi di errori, beneficiando al contempo dell'autocompletamento dell'IDE.<br><br> - [Configurazione TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Configurazione semplificata**<br><br>Inizia rapidamente con una configurazione minima. Regola facilmente le impostazioni per l'internazionalizzazione, il routing, l'IA, la build e la gestione del contenuto. <br><br> - [Esplora l'integrazione con Next.js](https://intlayer.org/doc/environment/nextjs) |
57
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Recupero del contenuto semplificato**<br><br>Non c'è bisogno di chiamare la tua funzione `t` per ogni elemento di contenuto. Recupera tutto il tuo contenuto direttamente utilizzando un unico hook.<br><br> - [Integrazione React](https://intlayer.org/doc/environment/create-react-app) |
58
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Implementazione coerente dei componenti server**<br><br>Perfettamente adatto ai componenti server di Next.js, utilizza la stessa implementazione sia per i componenti client che server, non c'è bisogno di passare la tua funzione `t` attraverso ogni componente server. <br><br> - [Componenti Server](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Base di codice organizzata**<br><br>Mantieni la tua base di codice più organizzata: 1 componente = 1 dizionario nella stessa cartella. Le traduzioni vicine ai rispettivi componenti migliorano la manutenibilità e la chiarezza. <br><br> - [Come funziona Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Routing migliorato**<br><br>Supporto completo al routing dell'applicazione, adattandosi perfettamente a strutture applicative complesse, per Next.js, React, Vite, Vue.js, ecc.<br><br> - [Esplora l'integrazione con Next.js](https://intlayer.org/doc/environment/nextjs) |
61
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Supporto Markdown**<br><br>Importa e interpreta i file locali e il Markdown remoto per contenuti multilingue come le informative sulla privacy, la documentazione, ecc. Interpreta e rendi accessibili i metadati Markdown nel tuo codice.<br><br> - [File di contenuto](https://intlayer.org/doc/concept/content/file) |
62
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Editor visuale e CMS gratuiti**<br><br>Un editor visuale e un CMS gratuiti sono disponibili per i redattori di contenuti, eliminando la necessità di una piattaforma di localizzazione. Mantieni il tuo contenuto sincronizzato utilizzando Git, o esternalizzalo totalmente o parzialmente con il CMS.<br><br> - [Editor Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Contenuto tree-shakable**<br><br>Contenuto tree-shakable, che riduce le dimensioni del bundle finale. Carica il contenuto per componente, escludendo qualsiasi contenuto non utilizzato dal tuo bundle. Supporta il caricamento differito (lazy loading) per migliorare l'efficienza di caricamento dell'applicazione. <br><br> - [Ottimizzazione della build](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Rendering statico**<br><br>Non blocca il rendering statico. <br><br> - [Integrazione Next.js](https://intlayer.org/doc/environment/nextjs) |
65
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Traduzione basata sull'IA**<br><br>Trasforma il tuo sito web in 231 lingue con un solo clic grazie agli strumenti di traduzione avanzati di Intlayer che utilizzano il tuo fornitore di IA / chiave API. <br><br> - [Integrazione CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI di Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Auto-riempimento](https://intlayer.org/doc/concept/auto-fill) |
66
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Integrazione server MCP**<br><br>Fornisce un server MCP (Model Context Protocol) per l'automazione dell'IDE, permettendo una gestione dei contenuti e dei flussi di lavoro i18n fluida direttamente nel tuo ambiente di sviluppo. <br><br> - [Server MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/mcp_server.md) |
67
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Estensione VSCode**<br><br>Intlayer offre un'estensione per VSCode per aiutarti a gestire i tuoi contenuti e le tue traduzioni, a costruire i tuoi dizionari, a tradurre il tuo contenuto e altro ancora. <br><br> - [Estensione VSCode](https://intlayer.org/doc/vs-code-extension) |
68
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Interoperabilità**<br><br>Permette l'interoperabilità con react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer e react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer e next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer e next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer e vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) <br> - [Adattatori di compatibilità di Intlayer](https://intlayer.org/doc/compatibility) |
69
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Prestazioni e Benchmark**<br><br>Utilizza tree-shaking avanzato e caricamento dinamico per migliorare le prestazioni e mantenere la soluzione il più leggera possibile. <br><br> - [Prestazioni e Benchmark](https://intlayer.org/doc/benchmark) |
70
70
 
71
71
  ---
72
72
 
@@ -173,7 +173,7 @@ Esplora la nostra documentazione esaustiva per iniziare con Intlayer e imparare
173
173
  <li><a href="https://intlayer.org/doc/concept/cms" rel=''>CMS di Intlayer</a></li>
174
174
  <li><a href="https://intlayer.org/doc/concept/content" rel=''>Dizionario</a>
175
175
  <ul>
176
- <li><a href="https://intlayer.org/doc/concept/content/per-locale-file" rel=''>File di dichiarazione del contenuto per ogni locale</a></li>
176
+ <li><a href="https://intlayer.org/doc/concept/per-locale-file" rel=''>File di dichiarazione del contenuto per ogni locale</a></li>
177
177
  <li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>Traduzione</a></li>
178
178
  <li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>Enumerazione</a></li>
179
179
  <li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>Condizione</a></li>
@@ -194,7 +194,7 @@ Esplora la nostra documentazione esaustiva per iniziare con Intlayer e imparare
194
194
  <ul>
195
195
  <li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
196
196
  <li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
197
- <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router" rel=''>Next.js Page Router</a></li>
197
+ <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-page-router" rel=''>Next.js Page Router</a></li>
198
198
  <li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>Next.js utilizzando il compilatore</a></li>
199
199
  </ul>
200
200
  </li>
@@ -223,7 +223,7 @@ Esplora la nostra documentazione esaustiva per iniziare con Intlayer e imparare
223
223
  <li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
224
224
  <li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
225
225
  <li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
226
- <li><a href="https://intlayer.org/doc/environment/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
226
+ <li><a href="https://intlayer.org/doc/environment/nuxt-and-vue" rel=''>Vite + Nuxt</a></li>
227
227
  <li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
228
228
  <li><a href="https://intlayer.org/doc/environment/angular" rel=''>Angular</a></li>
229
229
  <li>