@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.
- package/README.md +24 -24
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/cjs/authors2.cjs +0 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +4 -2
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +4 -2
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +4 -2
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +4 -2
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/docs/ar/configuration.md +10 -10
- package/docs/ar/interest_of_intlayer.md +24 -22
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ar/intlayer_with_tanstack.md +5 -3
- package/docs/ar/lsp.md +114 -175
- package/docs/ar/readme.md +25 -25
- package/docs/bn/configuration.md +10 -10
- package/docs/bn/interest_of_intlayer.md +24 -22
- package/docs/cs/configuration.md +10 -10
- package/docs/cs/interest_of_intlayer.md +24 -22
- package/docs/de/configuration.md +10 -10
- package/docs/de/interest_of_intlayer.md +24 -22
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +5 -3
- package/docs/de/intlayer_with_tanstack.md +5 -3
- package/docs/de/lsp.md +111 -172
- package/docs/de/readme.md +24 -24
- package/docs/en/configuration.md +10 -10
- package/docs/en/interest_of_intlayer.md +24 -22
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en/intlayer_with_tanstack.md +5 -3
- package/docs/en/lsp.md +109 -170
- package/docs/en/readme.md +24 -24
- package/docs/en-GB/configuration.md +10 -10
- package/docs/en-GB/interest_of_intlayer.md +24 -22
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en-GB/intlayer_with_tanstack.md +5 -3
- package/docs/en-GB/lsp.md +109 -170
- package/docs/en-GB/readme.md +24 -24
- package/docs/es/configuration.md +10 -10
- package/docs/es/interest_of_intlayer.md +24 -22
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +5 -3
- package/docs/es/intlayer_with_tanstack.md +5 -3
- package/docs/es/lsp.md +114 -175
- package/docs/es/readme.md +24 -24
- package/docs/fr/configuration.md +10 -10
- package/docs/fr/interest_of_intlayer.md +24 -22
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/fr/intlayer_with_tanstack.md +5 -3
- package/docs/fr/lsp.md +110 -171
- package/docs/fr/readme.md +24 -24
- package/docs/hi/configuration.md +10 -10
- package/docs/hi/interest_of_intlayer.md +24 -22
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/hi/intlayer_with_tanstack.md +5 -3
- package/docs/hi/lsp.md +113 -174
- package/docs/hi/readme.md +24 -24
- package/docs/id/configuration.md +10 -10
- package/docs/id/interest_of_intlayer.md +24 -22
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +5 -3
- package/docs/id/intlayer_with_tanstack.md +5 -3
- package/docs/id/lsp.md +113 -174
- package/docs/id/readme.md +24 -24
- package/docs/it/configuration.md +10 -10
- package/docs/it/interest_of_intlayer.md +24 -22
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +5 -3
- package/docs/it/intlayer_with_tanstack.md +5 -3
- package/docs/it/lsp.md +115 -176
- package/docs/it/readme.md +24 -24
- package/docs/ja/configuration.md +10 -10
- package/docs/ja/interest_of_intlayer.md +24 -22
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ja/intlayer_with_tanstack.md +5 -3
- package/docs/ja/lsp.md +113 -174
- package/docs/ja/readme.md +24 -24
- package/docs/ko/configuration.md +10 -10
- package/docs/ko/interest_of_intlayer.md +24 -22
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ko/intlayer_with_tanstack.md +5 -3
- package/docs/ko/lsp.md +112 -173
- package/docs/ko/readme.md +24 -24
- package/docs/nl/configuration.md +10 -10
- package/docs/nl/interest_of_intlayer.md +24 -22
- package/docs/pl/configuration.md +10 -10
- package/docs/pl/interest_of_intlayer.md +4 -2
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pl/intlayer_with_tanstack.md +5 -3
- package/docs/pl/lsp.md +115 -176
- package/docs/pl/readme.md +24 -24
- package/docs/pt/configuration.md +10 -10
- package/docs/pt/interest_of_intlayer.md +24 -22
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pt/intlayer_with_tanstack.md +5 -3
- package/docs/pt/lsp.md +113 -174
- package/docs/pt/readme.md +24 -24
- package/docs/ru/configuration.md +10 -10
- package/docs/ru/interest_of_intlayer.md +24 -22
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ru/intlayer_with_tanstack.md +5 -3
- package/docs/ru/lsp.md +112 -173
- package/docs/ru/readme.md +24 -24
- package/docs/tr/configuration.md +10 -10
- package/docs/tr/interest_of_intlayer.md +24 -22
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/tr/intlayer_with_tanstack.md +5 -3
- package/docs/tr/lsp.md +113 -174
- package/docs/tr/readme.md +24 -24
- package/docs/uk/configuration.md +10 -10
- package/docs/uk/interest_of_intlayer.md +4 -2
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
- package/docs/uk/intlayer_with_tanstack.md +5 -3
- package/docs/uk/lsp.md +113 -174
- package/docs/uk/per_locale_file.md +1 -1
- package/docs/uk/readme.md +24 -24
- package/docs/ur/configuration.md +10 -10
- package/docs/ur/interest_of_intlayer.md +24 -22
- package/docs/vi/configuration.md +10 -10
- package/docs/vi/interest_of_intlayer.md +24 -22
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/vi/intlayer_with_tanstack.md +5 -3
- package/docs/vi/lsp.md +115 -176
- package/docs/vi/readme.md +24 -24
- package/docs/zh/configuration.md +10 -10
- package/docs/zh/interest_of_intlayer.md +24 -22
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
- package/docs/zh/intlayer_with_tanstack.md +5 -3
- package/docs/zh/lsp.md +113 -174
- package/docs/zh/readme.md +21 -21
- package/docs/zh-TW/interest_of_intlayer.md +24 -22
- 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-
|
|
4
|
-
title: Server LSP Intlayer
|
|
5
|
-
description: Scopri come il server di
|
|
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
|
|
9
|
-
-
|
|
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 **
|
|
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
|
-
##
|
|
36
|
+
## Funzionalità
|
|
32
37
|
|
|
33
|
-
|
|
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
|
-
|
|
46
|
+
Vale la pena conoscere due comportamenti aggiuntivi:
|
|
36
47
|
|
|
37
|
-
|
|
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
|
-
|
|
51
|
+
### Chiamate supportate
|
|
40
52
|
|
|
41
|
-
|
|
53
|
+
La chiave viene letta da un argomento posizionale di tipo stringa oppure da un oggetto di opzioni (`{ namespace }`, `{ id }`).
|
|
42
54
|
|
|
43
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
94
|
+
## Configurazione
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
<Tabs defaultTab="vscode">
|
|
97
|
+
<Tab label="VS Code" value="vscode">
|
|
93
98
|
|
|
94
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
+
</Tab>
|
|
104
|
+
<Tab label="Cursor / Windsurf" value="cursor">
|
|
103
105
|
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
111
|
+
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`.
|
|
109
112
|
|
|
110
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
201
|
-
},
|
|
202
|
-
"
|
|
203
|
-
|
|
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 `"..."`
|
|
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
|
-
|
|
163
|
+
</Tab>
|
|
164
|
+
<Tab label="Neovim" value="neovim">
|
|
227
165
|
|
|
228
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
279
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
260
|
+
## Nota sugli agenti IA da terminale
|
|
329
261
|
|
|
330
|
-
|
|
262
|
+
**Claude Code** agisce come un vero client LSP — vedi la scheda sopra.
|
|
331
263
|
|
|
332
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
348
|
-
| ------------------------------------------ |
|
|
349
|
-
|
|
|
350
|
-
|
|
|
351
|
-
|
|
|
352
|
-
|
|
|
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/
|
|
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-
|
|
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/
|
|
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>
|