@intlayer/docs 8.4.6 → 8.4.8
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/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/docs/ar/configuration.md +300 -264
- package/docs/cs/configuration.md +958 -0
- package/docs/de/configuration.md +285 -249
- package/docs/en/configuration.md +115 -137
- package/docs/en-GB/configuration.md +272 -237
- package/docs/es/configuration.md +161 -125
- package/docs/fr/configuration.md +137 -101
- package/docs/it/configuration.md +294 -259
- package/docs/ja/configuration.md +269 -233
- package/docs/nl/configuration.md +958 -0
- package/docs/pt/configuration.md +311 -275
- package/docs/ru/configuration.md +287 -272
- package/docs/tr/configuration.md +265 -229
- package/package.json +6 -6
- package/docs/bn/configuration.md +0 -922
- package/docs/hi/configuration.md +0 -922
- package/docs/id/configuration.md +0 -922
- package/docs/ko/configuration.md +0 -922
- package/docs/pl/configuration.md +0 -922
- package/docs/uk/configuration.md +0 -922
- package/docs/ur/configuration.md +0 -922
- package/docs/vi/configuration.md +0 -922
- package/docs/zh/configuration.md +0 -922
package/docs/it/configuration.md
CHANGED
|
@@ -16,52 +16,52 @@ slugs:
|
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.4.0
|
|
18
18
|
date: 2026-03-20
|
|
19
|
-
changes: Aggiunta
|
|
19
|
+
changes: Aggiunta notazione a oggetti per locale per 'compiler.output' e 'dictionary.fill'
|
|
20
20
|
- version: 8.3.0
|
|
21
21
|
date: 2026-03-11
|
|
22
22
|
changes: Spostato 'baseDir' dalla configurazione 'content' alla configurazione 'system'
|
|
23
23
|
- version: 8.2.0
|
|
24
24
|
date: 2026-03-09
|
|
25
|
-
changes: Aggiornate le opzioni del compilatore
|
|
25
|
+
changes: Aggiornate le opzioni del compilatore, aggiunto supporto per 'output' e 'noMetadata'
|
|
26
26
|
- version: 8.1.7
|
|
27
27
|
date: 2026-02-25
|
|
28
28
|
changes: Aggiornate le opzioni del compilatore
|
|
29
29
|
- version: 8.1.5
|
|
30
30
|
date: 2026-02-23
|
|
31
|
-
changes: Aggiunta
|
|
31
|
+
changes: Aggiunta opzione del compilatore 'build-only' e prefisso del dizionario
|
|
32
32
|
- version: 8.0.6
|
|
33
33
|
date: 2026-02-12
|
|
34
|
-
changes: Aggiunto
|
|
34
|
+
changes: Aggiunto supporto per i fornitori Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
35
35
|
- version: 8.0.5
|
|
36
36
|
date: 2026-02-06
|
|
37
37
|
changes: Aggiunto `dataSerialization` alla configurazione AI
|
|
38
38
|
- version: 8.0.0
|
|
39
39
|
date: 2026-01-24
|
|
40
|
-
changes: Rinominata
|
|
40
|
+
changes: Rinominata modalità di importazione `live` in `fetch` per descrivere meglio il meccanismo sottostante.
|
|
41
41
|
- version: 8.0.0
|
|
42
42
|
date: 2026-01-22
|
|
43
43
|
changes: Spostata la configurazione di build `importMode` nella configurazione `dictionary`.
|
|
44
44
|
- version: 8.0.0
|
|
45
45
|
date: 2026-01-22
|
|
46
|
-
changes: Aggiunta l'opzione `rewrite` alla configurazione
|
|
46
|
+
changes: Aggiunta l'opzione `rewrite` alla configurazione di routing
|
|
47
47
|
- version: 8.0.0
|
|
48
48
|
date: 2026-01-18
|
|
49
|
-
changes: Separata la configurazione di sistema dalla configurazione
|
|
49
|
+
changes: Separata la configurazione di sistema dalla configurazione dei contenuti. Spostati i percorsi interni nella proprietà `system`. Aggiunto `codeDir` per separare i file di contenuto dalla trasformazione del codice.
|
|
50
50
|
- version: 8.0.0
|
|
51
51
|
date: 2026-01-18
|
|
52
52
|
changes: Aggiunte le opzioni del dizionario `location` e `schema`
|
|
53
53
|
- version: 7.5.1
|
|
54
54
|
date: 2026-01-10
|
|
55
|
-
changes: Aggiunto
|
|
55
|
+
changes: Aggiunto supporto per i formati file JSON5 e JSONC
|
|
56
56
|
- version: 7.5.0
|
|
57
57
|
date: 2025-12-17
|
|
58
58
|
changes: Aggiunta l'opzione `buildMode`
|
|
59
59
|
- version: 7.0.0
|
|
60
60
|
date: 2025-10-25
|
|
61
|
-
changes: Aggiunta
|
|
61
|
+
changes: Aggiunta configurazione `dictionary`
|
|
62
62
|
- version: 7.0.0
|
|
63
63
|
date: 2025-10-21
|
|
64
|
-
changes: Sostituito `middleware` con la configurazione
|
|
64
|
+
changes: Sostituito `middleware` con la configurazione `routing`
|
|
65
65
|
- version: 7.0.0
|
|
66
66
|
date: 2025-10-12
|
|
67
67
|
changes: Aggiunta l'opzione `formatCommand`
|
|
@@ -73,19 +73,19 @@ history:
|
|
|
73
73
|
changes: Aggiunta l'opzione `outputFormat`
|
|
74
74
|
- version: 6.0.0
|
|
75
75
|
date: 2025-09-21
|
|
76
|
-
changes:
|
|
76
|
+
changes: Rimosso il campo `dictionaryOutput` e il campo `i18nextResourcesDir`
|
|
77
77
|
- version: 6.0.0
|
|
78
78
|
date: 2025-09-16
|
|
79
|
-
changes: Aggiunta
|
|
79
|
+
changes: Aggiunta modalità di importazione `live`
|
|
80
80
|
- version: 6.0.0
|
|
81
81
|
date: 2025-09-04
|
|
82
|
-
changes: Sostituito il campo `hotReload` con `liveSync
|
|
82
|
+
changes: Sostituito il campo `hotReload` con `liveSync` e aggiunti i campi `liveSyncPort` e `liveSyncURL`
|
|
83
83
|
- version: 5.6.1
|
|
84
84
|
date: 2025-07-25
|
|
85
85
|
changes: Sostituito `activateDynamicImport` con l'opzione `importMode`
|
|
86
86
|
- version: 5.6.0
|
|
87
87
|
date: 2025-07-13
|
|
88
|
-
changes: Modificato il contentDir predefinito da `['src']` a `['.']`
|
|
88
|
+
changes: Modificato il `contentDir` predefinito da `['src']` a `['.']`
|
|
89
89
|
- version: 5.5.11
|
|
90
90
|
date: 2025-06-29
|
|
91
91
|
changes: Aggiunti i comandi `docs`
|
|
@@ -95,7 +95,7 @@ history:
|
|
|
95
95
|
|
|
96
96
|
## Panoramica
|
|
97
97
|
|
|
98
|
-
I file di configurazione di Intlayer consentono di personalizzare vari aspetti del plugin, come l'internazionalizzazione
|
|
98
|
+
I file di configurazione di Intlayer consentono di personalizzare vari aspetti del plugin, come l'internazionalizzazione, il middleware e la gestione dei contenuti. Questo documento fornisce una descrizione dettagliata di ciascuna proprietà nella configurazione.
|
|
99
99
|
|
|
100
100
|
---
|
|
101
101
|
|
|
@@ -105,7 +105,7 @@ I file di configurazione di Intlayer consentono di personalizzare vari aspetti d
|
|
|
105
105
|
|
|
106
106
|
---
|
|
107
107
|
|
|
108
|
-
##
|
|
108
|
+
## Supporto dei File di Configurazione
|
|
109
109
|
|
|
110
110
|
Intlayer accetta i formati di file di configurazione JSON, JS, MJS e TS:
|
|
111
111
|
|
|
@@ -132,33 +132,33 @@ import { z } from "zod";
|
|
|
132
132
|
*/
|
|
133
133
|
const config: IntlayerConfig = {
|
|
134
134
|
/**
|
|
135
|
-
* Configurazione
|
|
135
|
+
* Configurazione per le impostazioni di internazionalizzazione.
|
|
136
136
|
*/
|
|
137
137
|
internationalization: {
|
|
138
138
|
/**
|
|
139
|
-
* Elenco
|
|
139
|
+
* Elenco dei locali supportati nell'applicazione.
|
|
140
140
|
* Predefinito: [Locales.ENGLISH]
|
|
141
141
|
*/
|
|
142
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
|
-
* Elenco
|
|
146
|
-
* Se vuoto,
|
|
145
|
+
* Elenco di locali richiesti che devono essere definiti in ogni dizionario.
|
|
146
|
+
* Se vuoto, tutti i locali sono richiesti in modalità `strict`.
|
|
147
147
|
* Predefinito: []
|
|
148
148
|
*/
|
|
149
149
|
requiredLocales: [Locales.ENGLISH],
|
|
150
150
|
|
|
151
151
|
/**
|
|
152
|
-
* Livello di
|
|
153
|
-
* - "strict": Errore se manca
|
|
154
|
-
* - "inclusive": Avviso se manca
|
|
152
|
+
* Livello di severità per il contenuto internazionalizzato.
|
|
153
|
+
* - "strict": Errore se manca un locale dichiarato o se non è dichiarato.
|
|
154
|
+
* - "inclusive": Avviso se manca un locale dichiarato.
|
|
155
155
|
* - "loose": Accetta qualsiasi locale esistente.
|
|
156
156
|
* Predefinito: "inclusive"
|
|
157
157
|
*/
|
|
158
158
|
strictMode: "inclusive",
|
|
159
159
|
|
|
160
160
|
/**
|
|
161
|
-
*
|
|
161
|
+
* Locale predefinito utilizzato come fallback se il locale richiesto non viene trovato.
|
|
162
162
|
* Predefinito: Locales.ENGLISH
|
|
163
163
|
*/
|
|
164
164
|
defaultLocale: Locales.ENGLISH,
|
|
@@ -171,65 +171,65 @@ const config: IntlayerConfig = {
|
|
|
171
171
|
/**
|
|
172
172
|
* Controlla come vengono importati i dizionari.
|
|
173
173
|
* - "static": Importato staticamente al momento della build.
|
|
174
|
-
* - "dynamic": Importato dinamicamente
|
|
175
|
-
* - "fetch": Recuperato dinamicamente tramite
|
|
174
|
+
* - "dynamic": Importato dinamicamente utilizzando Suspense.
|
|
175
|
+
* - "fetch": Recuperato dinamicamente tramite l'API live sync.
|
|
176
176
|
* Predefinito: "static"
|
|
177
177
|
*/
|
|
178
178
|
importMode: "static",
|
|
179
179
|
|
|
180
180
|
/**
|
|
181
|
-
* Strategia per
|
|
182
|
-
* Può essere un
|
|
181
|
+
* Strategia per l'auto-completamento delle traduzioni mancanti utilizzando l'IA.
|
|
182
|
+
* Può essere un booleano o un modello di percorso per memorizzare il contenuto riempito.
|
|
183
183
|
* Predefinito: true
|
|
184
184
|
*/
|
|
185
185
|
fill: true,
|
|
186
186
|
|
|
187
187
|
/**
|
|
188
|
-
*
|
|
188
|
+
* Posizione fisica dei file del dizionario.
|
|
189
189
|
* - "local": Memorizzato nel file system locale.
|
|
190
|
-
* - "remote": Memorizzato
|
|
191
|
-
* - "hybrid": Memorizzato
|
|
192
|
-
* - "plugin" (o qualsiasi stringa personalizzata):
|
|
190
|
+
* - "remote": Memorizzato nel CMS Intlayer.
|
|
191
|
+
* - "hybrid": Memorizzato nel file system locale e nel CMS Intlayer.
|
|
192
|
+
* - "plugin" (o qualsiasi stringa personalizzata): Fornito da un plugin o da una fonte personalizzata.
|
|
193
193
|
* Predefinito: "local"
|
|
194
194
|
*/
|
|
195
195
|
location: "local",
|
|
196
196
|
|
|
197
197
|
/**
|
|
198
|
-
*
|
|
198
|
+
* Indica se trasformare automaticamente i contenuti (es. da Markdown a HTML).
|
|
199
199
|
* Predefinito: false
|
|
200
200
|
*/
|
|
201
201
|
contentAutoTransformation: false,
|
|
202
202
|
},
|
|
203
203
|
|
|
204
204
|
/**
|
|
205
|
-
* Configurazione
|
|
205
|
+
* Configurazione di routing e middleware.
|
|
206
206
|
*/
|
|
207
207
|
routing: {
|
|
208
208
|
/**
|
|
209
|
-
* Strategia di routing
|
|
210
|
-
* - "prefix-no-default":
|
|
211
|
-
* - "prefix-all":
|
|
212
|
-
* - "no-prefix":
|
|
209
|
+
* Strategia di routing dei locali.
|
|
210
|
+
* - "prefix-no-default": Prefisso per tutti tranne il locale predefinito (es. /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Prefisso per tutti i locali (es. /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Nessun locale nell'URL.
|
|
213
213
|
* - "search-params": Usa ?locale=...
|
|
214
214
|
* Predefinito: "prefix-no-default"
|
|
215
215
|
*/
|
|
216
216
|
mode: "prefix-no-default",
|
|
217
217
|
|
|
218
218
|
/**
|
|
219
|
-
* Dove memorizzare
|
|
220
|
-
* Opzioni: 'cookie', 'localStorage', 'sessionStorage', 'header' o un array di questi.
|
|
219
|
+
* Dove memorizzare il locale selezionato dall'utente.
|
|
220
|
+
* Opzioni: 'cookie', 'localStorage', 'sessionStorage', 'header', o un array di questi.
|
|
221
221
|
* Predefinito: ['cookie', 'header']
|
|
222
222
|
*/
|
|
223
223
|
storage: ["cookie", "header"],
|
|
224
224
|
|
|
225
225
|
/**
|
|
226
|
-
*
|
|
226
|
+
* Percorso base per gli URL dell'applicazione.
|
|
227
227
|
* Predefinito: ""
|
|
228
228
|
*/
|
|
229
229
|
basePath: "",
|
|
230
230
|
|
|
231
231
|
/**
|
|
232
|
-
* Regole di
|
|
232
|
+
* Regole di riscrittura URL personalizzate per percorsi specifici del locale.
|
|
233
233
|
*/
|
|
234
234
|
rewrite: nextjsRewrite({
|
|
235
235
|
"/[locale]/about": {
|
|
@@ -240,58 +240,58 @@ const config: IntlayerConfig = {
|
|
|
240
240
|
},
|
|
241
241
|
|
|
242
242
|
/**
|
|
243
|
-
* Impostazioni
|
|
243
|
+
* Impostazioni per trovare e processare i file di contenuto.
|
|
244
244
|
*/
|
|
245
245
|
content: {
|
|
246
246
|
/**
|
|
247
|
-
* Estensioni
|
|
247
|
+
* Estensioni file da scansionare per i dizionari.
|
|
248
248
|
* Predefinito: ['.content.ts', '.content.js', '.content.json', ecc.]
|
|
249
249
|
*/
|
|
250
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
251
251
|
|
|
252
252
|
/**
|
|
253
|
-
* Directory
|
|
253
|
+
* Directory dove si trovano i file .content.
|
|
254
254
|
* Predefinito: ["."]
|
|
255
255
|
*/
|
|
256
256
|
contentDir: ["src"],
|
|
257
257
|
|
|
258
258
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
259
|
+
* Directory dove si trova il codice sorgente.
|
|
260
|
+
* Usato per l'ottimizzazione della build e la trasformazione del codice.
|
|
261
261
|
* Predefinito: ["."]
|
|
262
262
|
*/
|
|
263
263
|
codeDir: ["src"],
|
|
264
264
|
|
|
265
265
|
/**
|
|
266
|
-
*
|
|
266
|
+
* Modelli da escludere dalla scansione.
|
|
267
267
|
* Predefinito: ['node_modules', '.intlayer', ecc.]
|
|
268
268
|
*/
|
|
269
269
|
excludedPath: ["node_modules"],
|
|
270
270
|
|
|
271
271
|
/**
|
|
272
|
-
*
|
|
273
|
-
* Predefinito: true in
|
|
272
|
+
* Indica se monitorare i cambiamenti e rigenerare i dizionari in fase di sviluppo.
|
|
273
|
+
* Predefinito: true in fase di sviluppo
|
|
274
274
|
*/
|
|
275
275
|
watch: true,
|
|
276
276
|
|
|
277
277
|
/**
|
|
278
|
-
* Comando
|
|
278
|
+
* Comando per formattare i file .content appena creati / aggiornati.
|
|
279
279
|
*/
|
|
280
280
|
formatCommand: 'npx prettier --write "{{file}}"',
|
|
281
281
|
},
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
|
-
* Configurazione
|
|
284
|
+
* Configurazione del Visual Editor.
|
|
285
285
|
*/
|
|
286
286
|
editor: {
|
|
287
287
|
/**
|
|
288
|
-
*
|
|
288
|
+
* Indica se il visual editor è abilitato.
|
|
289
289
|
* Predefinito: false
|
|
290
290
|
*/
|
|
291
291
|
enabled: true,
|
|
292
292
|
|
|
293
293
|
/**
|
|
294
|
-
*
|
|
294
|
+
* URL della tua applicazione per la validazione dell'origine.
|
|
295
295
|
* Predefinito: ""
|
|
296
296
|
*/
|
|
297
297
|
applicationURL: "http://localhost:3000",
|
|
@@ -303,43 +303,43 @@ const config: IntlayerConfig = {
|
|
|
303
303
|
port: 8000,
|
|
304
304
|
|
|
305
305
|
/**
|
|
306
|
-
*
|
|
306
|
+
* URL pubblico per l'editor.
|
|
307
307
|
* Predefinito: "http://localhost:8000"
|
|
308
308
|
*/
|
|
309
309
|
editorURL: "http://localhost:8000",
|
|
310
310
|
|
|
311
311
|
/**
|
|
312
|
-
* URL
|
|
312
|
+
* URL del CMS Intlayer.
|
|
313
313
|
* Predefinito: "https://app.intlayer.org"
|
|
314
314
|
*/
|
|
315
315
|
cmsURL: "https://app.intlayer.org",
|
|
316
316
|
|
|
317
317
|
/**
|
|
318
|
-
* URL
|
|
318
|
+
* URL del backend API.
|
|
319
319
|
* Predefinito: "https://back.intlayer.org"
|
|
320
320
|
*/
|
|
321
321
|
backendURL: "https://back.intlayer.org",
|
|
322
322
|
|
|
323
323
|
/**
|
|
324
|
-
*
|
|
324
|
+
* Indica se abilitare la sincronizzazione dei contenuti in tempo reale.
|
|
325
325
|
* Predefinito: false
|
|
326
326
|
*/
|
|
327
327
|
liveSync: true,
|
|
328
328
|
},
|
|
329
329
|
|
|
330
330
|
/**
|
|
331
|
-
* Impostazioni
|
|
331
|
+
* Impostazioni di traduzione e generazione tramite IA.
|
|
332
332
|
*/
|
|
333
333
|
ai: {
|
|
334
334
|
/**
|
|
335
|
-
*
|
|
335
|
+
* Fornitore IA da utilizzare.
|
|
336
336
|
* Opzioni: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
337
|
* Predefinito: 'openai'
|
|
338
338
|
*/
|
|
339
339
|
provider: "openai",
|
|
340
340
|
|
|
341
341
|
/**
|
|
342
|
-
* Modello
|
|
342
|
+
* Modello da utilizzare dal fornitore selezionato.
|
|
343
343
|
*/
|
|
344
344
|
model: "gpt-4o",
|
|
345
345
|
|
|
@@ -349,22 +349,21 @@ const config: IntlayerConfig = {
|
|
|
349
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
350
350
|
|
|
351
351
|
/**
|
|
352
|
-
* Contesto globale per guidare l'
|
|
352
|
+
* Contesto globale per guidare l'IA nella generazione delle traduzioni.
|
|
353
353
|
*/
|
|
354
|
-
applicationContext:
|
|
355
|
-
"Questa è un'applicazione per la prenotazione di viaggi.",
|
|
354
|
+
applicationContext: "Questa è una applicazione di prenotazione viaggi.",
|
|
356
355
|
|
|
357
356
|
/**
|
|
358
|
-
* URL
|
|
357
|
+
* URL base per l'API IA.
|
|
359
358
|
*/
|
|
360
359
|
baseURL: "http://localhost:3000",
|
|
361
360
|
|
|
362
361
|
/**
|
|
363
|
-
* Serializzazione dei dati
|
|
362
|
+
* Serializzazione dei dati
|
|
364
363
|
*
|
|
365
364
|
* Opzioni:
|
|
366
|
-
* - "json":
|
|
367
|
-
* - "toon":
|
|
365
|
+
* - "json": Standard, affidabile; consuma più token.
|
|
366
|
+
* - "toon": Meno token, meno consistente di JSON.
|
|
368
367
|
*
|
|
369
368
|
* Predefinito: "json"
|
|
370
369
|
*/
|
|
@@ -377,40 +376,40 @@ const config: IntlayerConfig = {
|
|
|
377
376
|
build: {
|
|
378
377
|
/**
|
|
379
378
|
* Modalità di esecuzione della build.
|
|
380
|
-
* - "auto":
|
|
379
|
+
* - "auto": Build automatica durante la build dell'app.
|
|
381
380
|
* - "manual": Richiede un comando di build esplicito.
|
|
382
381
|
* Predefinito: "auto"
|
|
383
382
|
*/
|
|
384
383
|
mode: "auto",
|
|
385
384
|
|
|
386
385
|
/**
|
|
387
|
-
*
|
|
386
|
+
* Indica se ottimizzare il bundle finale rimuovendo i dizionari inutilizzati.
|
|
388
387
|
* Predefinito: true in produzione
|
|
389
388
|
*/
|
|
390
389
|
optimize: true,
|
|
391
390
|
|
|
392
391
|
/**
|
|
393
|
-
* Formato di output per i file
|
|
392
|
+
* Formato di output per i file di dizionario generati.
|
|
394
393
|
* Predefinito: ['cjs', 'esm']
|
|
395
394
|
*/
|
|
396
395
|
outputFormat: ["cjs", "esm"],
|
|
397
396
|
|
|
398
397
|
/**
|
|
399
|
-
* Indica se la build
|
|
398
|
+
* Indica se la build deve verificare i tipi TypeScript.
|
|
400
399
|
* Predefinito: false
|
|
401
400
|
*/
|
|
402
401
|
checkTypes: false,
|
|
403
402
|
},
|
|
404
403
|
|
|
405
404
|
/**
|
|
406
|
-
* Configurazione del
|
|
405
|
+
* Configurazione del Logger.
|
|
407
406
|
*/
|
|
408
407
|
log: {
|
|
409
408
|
/**
|
|
410
|
-
* Livello di
|
|
409
|
+
* Livello di logging.
|
|
411
410
|
* - "default": Logging standard.
|
|
412
|
-
* - "verbose": Logging di debug
|
|
413
|
-
* - "disabled":
|
|
411
|
+
* - "verbose": Logging di debug dettagliato.
|
|
412
|
+
* - "disabled": Nessun logging.
|
|
414
413
|
* Predefinito: "default"
|
|
415
414
|
*/
|
|
416
415
|
mode: "default",
|
|
@@ -423,119 +422,119 @@ const config: IntlayerConfig = {
|
|
|
423
422
|
},
|
|
424
423
|
|
|
425
424
|
/**
|
|
426
|
-
* Configurazione di sistema (
|
|
425
|
+
* Configurazione di sistema (Casi d'uso avanzati)
|
|
427
426
|
*/
|
|
428
427
|
system: {
|
|
429
428
|
/**
|
|
430
|
-
* Directory per
|
|
429
|
+
* Directory per la memorizzazione dei dizionari localizzati.
|
|
431
430
|
*/
|
|
432
431
|
dictionariesDir: ".intlayer/dictionary",
|
|
433
432
|
|
|
434
433
|
/**
|
|
435
|
-
* Directory per
|
|
434
|
+
* Directory per l'aumento dei moduli (module augmentation).
|
|
436
435
|
*/
|
|
437
436
|
moduleAugmentationDir: ".intlayer/types",
|
|
438
437
|
|
|
439
438
|
/**
|
|
440
|
-
* Directory per
|
|
439
|
+
* Directory per la memorizzazione di dizionari non fusi.
|
|
441
440
|
*/
|
|
442
441
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
443
442
|
|
|
444
443
|
/**
|
|
445
|
-
* Directory per
|
|
444
|
+
* Directory per la memorizzazione dei tipi di dizionario.
|
|
446
445
|
*/
|
|
447
446
|
typesDir: ".intlayer/types",
|
|
448
447
|
|
|
449
448
|
/**
|
|
450
|
-
* Directory
|
|
449
|
+
* Directory dove sono memorizzati i file principali dell'applicazione.
|
|
451
450
|
*/
|
|
452
451
|
mainDir: ".intlayer/main",
|
|
453
452
|
|
|
454
453
|
/**
|
|
455
|
-
* Directory
|
|
454
|
+
* Directory dove sono memorizzati i file di configurazione.
|
|
456
455
|
*/
|
|
457
456
|
configDir: ".intlayer/config",
|
|
458
457
|
|
|
459
458
|
/**
|
|
460
|
-
* Directory
|
|
459
|
+
* Directory dove sono memorizzati i file di cache.
|
|
461
460
|
*/
|
|
462
461
|
cacheDir: ".intlayer/cache",
|
|
463
462
|
},
|
|
464
463
|
|
|
465
464
|
/**
|
|
466
|
-
* Configurazione del Compilatore (
|
|
465
|
+
* Configurazione del Compilatore (Casi d'uso avanzati)
|
|
467
466
|
*/
|
|
468
467
|
compiler: {
|
|
469
468
|
/**
|
|
470
|
-
* Indica se il compilatore
|
|
469
|
+
* Indica se il compilatore deve essere abilitato.
|
|
471
470
|
*
|
|
472
471
|
* - false: Disabilita il compilatore.
|
|
473
472
|
* - true: Abilita il compilatore.
|
|
474
|
-
* - "build-only": Salta il compilatore durante lo sviluppo
|
|
473
|
+
* - "build-only": Salta il compilatore durante lo sviluppo per velocizzare i tempi di avvio.
|
|
475
474
|
*
|
|
476
475
|
* Predefinito: false
|
|
477
476
|
*/
|
|
478
477
|
enabled: true,
|
|
479
478
|
|
|
480
479
|
/**
|
|
481
|
-
* Definisce il percorso
|
|
480
|
+
* Definisce il percorso dei file di output. Sostituisce `outputDir`.
|
|
482
481
|
*
|
|
483
|
-
* - I percorsi
|
|
484
|
-
* - I percorsi
|
|
482
|
+
* - I percorsi `./` sono risolti relativamente alla directory del componente.
|
|
483
|
+
* - I percorsi `/` sono risolti relativamente alla radice del progetto (`baseDir`).
|
|
485
484
|
*
|
|
486
|
-
* - L'inclusione della variabile `{{locale}}` nel percorso attiverà la
|
|
485
|
+
* - L'inclusione della variabile `{{locale}}` nel percorso attiverà la generazione di dizionari separati per locale.
|
|
487
486
|
*
|
|
488
487
|
* Esempio:
|
|
489
488
|
* ```ts
|
|
490
489
|
* {
|
|
491
|
-
* // Crea file .content.ts
|
|
490
|
+
* // Crea file .content.ts multilingua vicino al componente
|
|
492
491
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
493
492
|
*
|
|
494
|
-
* // output: './{{fileName}}{{extension}}', // Equivalente usando
|
|
493
|
+
* // output: './{{fileName}}{{extension}}', // Equivalente usando stringa di template
|
|
495
494
|
* }
|
|
496
495
|
* ```
|
|
497
496
|
*
|
|
498
497
|
* ```ts
|
|
499
498
|
* {
|
|
500
|
-
* // Crea JSON centralizzati per
|
|
499
|
+
* // Crea JSON centralizzati per locale alla radice del progetto
|
|
501
500
|
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
502
501
|
*
|
|
503
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando
|
|
502
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando stringa di template
|
|
504
503
|
* }
|
|
505
504
|
* ```
|
|
506
505
|
*
|
|
507
|
-
* Elenco
|
|
508
|
-
* - `fileName`:
|
|
509
|
-
* - `key`:
|
|
510
|
-
* - `locale`:
|
|
511
|
-
* - `extension`:
|
|
512
|
-
* - `componentFileName`:
|
|
513
|
-
* - `componentExtension`:
|
|
514
|
-
* - `format`:
|
|
515
|
-
* - `componentFormat`:
|
|
516
|
-
* - `componentDirPath`:
|
|
506
|
+
* Elenco variabili:
|
|
507
|
+
* - `fileName`: Il nome del file.
|
|
508
|
+
* - `key`: La chiave del contenuto.
|
|
509
|
+
* - `locale`: Il locale del contenuto.
|
|
510
|
+
* - `extension`: L'estensione del file.
|
|
511
|
+
* - `componentFileName`: Il nome del file del componente.
|
|
512
|
+
* - `componentExtension`: L'estensione del file del componente.
|
|
513
|
+
* - `format`: Il formato del dizionario.
|
|
514
|
+
* - `componentFormat`: Il formato del dizionario del componente.
|
|
515
|
+
* - `componentDirPath`: Il percorso della directory del componente.
|
|
517
516
|
*/
|
|
518
517
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
519
518
|
|
|
520
519
|
/**
|
|
521
|
-
* Indica se i componenti
|
|
522
|
-
* In questo modo, il compilatore può essere eseguito una
|
|
520
|
+
* Indica se i componenti devono essere salvati dopo essere stati trasformati.
|
|
521
|
+
* In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi può essere rimosso.
|
|
523
522
|
*/
|
|
524
523
|
saveComponents: false,
|
|
525
524
|
|
|
526
525
|
/**
|
|
527
|
-
* Inserisce solo il contenuto nel file generato. Utile per
|
|
526
|
+
* Inserisce solo il contenuto nel file generato. Utile per output JSON i18next o ICU MessageFormat per locale.
|
|
528
527
|
*/
|
|
529
528
|
noMetadata: false,
|
|
530
529
|
|
|
531
530
|
/**
|
|
532
|
-
* Prefisso
|
|
531
|
+
* Prefisso chiave dizionario
|
|
533
532
|
*/
|
|
534
|
-
dictionaryKeyPrefix: "", // Aggiungi un prefisso opzionale
|
|
533
|
+
dictionaryKeyPrefix: "", // Aggiungi un prefisso opzionale per le chiavi del dizionario estratte
|
|
535
534
|
},
|
|
536
535
|
|
|
537
536
|
/**
|
|
538
|
-
* Schemi personalizzati
|
|
537
|
+
* Schemi personalizzati per validare il contenuto dei dizionari.
|
|
539
538
|
*/
|
|
540
539
|
schemas: {
|
|
541
540
|
"my-schema": z.object({
|
|
@@ -544,7 +543,7 @@ const config: IntlayerConfig = {
|
|
|
544
543
|
},
|
|
545
544
|
|
|
546
545
|
/**
|
|
547
|
-
* Configurazione dei plugin
|
|
546
|
+
* Configurazione dei plugin.
|
|
548
547
|
*/
|
|
549
548
|
plugins: [],
|
|
550
549
|
};
|
|
@@ -554,54 +553,56 @@ export default config;
|
|
|
554
553
|
|
|
555
554
|
---
|
|
556
555
|
|
|
557
|
-
## Riferimento della Configurazione
|
|
556
|
+
## Riferimento della Configurazione
|
|
558
557
|
|
|
559
|
-
Le sezioni seguenti descrivono le varie
|
|
558
|
+
Le sezioni seguenti descrivono le varie impostazioni di configurazione disponibili per Intlayer.
|
|
560
559
|
|
|
561
560
|
---
|
|
562
561
|
|
|
563
|
-
### Configurazione
|
|
562
|
+
### Configurazione dell'Internazionalizzazione
|
|
564
563
|
|
|
565
|
-
Definisce le impostazioni relative all'internazionalizzazione,
|
|
564
|
+
Definisce le impostazioni relative all'internazionalizzazione, compresi i locali disponibili e il locale predefinito per l'applicazione.
|
|
566
565
|
|
|
567
|
-
| Campo
|
|
568
|
-
|
|
|
569
|
-
| `locales`
|
|
570
|
-
| `requiredLocales` |
|
|
571
|
-
| `strictMode`
|
|
572
|
-
| `defaultLocale`
|
|
566
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
567
|
+
| ---------------- | --------------------------------------------------------------------------------------------------- | ---------- | ------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | L'elenco dei locali supportati nell'applicazione. | `string[]` | `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | L'elenco dei locali richiesti nell'applicazione. | `string[]` | `[]` | `[]` | • Se vuoto, tutti i locali sono richiesti in modalità `strict`.<br/>• Assicurati che i locali richiesti siano definiti anche nel campo `locales`. |
|
|
570
|
+
| `strictMode` | Garantisce implementazioni robuste dei contenuti internazionalizzati utilizzando TypeScript. | `string` | `'inclusive'` | | • Se `"strict"`: la funzione `t` richiede che ogni locale dichiarato sia definito — genera un errore se uno manca o non è dichiarato.<br/>• Se `"inclusive"`: avverte sui locali mancanti ma accetta quelli non dichiarati esistenti.<br/>• Se `"loose"`: accetta qualsiasi locale esistente. |
|
|
571
|
+
| `defaultLocale` | Il locale predefinito utilizzato come fallback se il locale richiesto non viene trovato. | `string` | `Locales.ENGLISH` | `'en'` | Usato per determinare il locale quando nessuno è specificato nell'URL, nel cookie o nell'header. |
|
|
573
572
|
|
|
574
573
|
---
|
|
575
574
|
|
|
576
|
-
### Configurazione dell'Editor
|
|
575
|
+
### Configurazione dell'Editor
|
|
576
|
+
|
|
577
|
+
Definisce le impostazioni del visual editor integrato, inclusi la porta del server e lo stato attivo.
|
|
578
|
+
|
|
579
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
580
|
+
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | L'URL dell'applicazione. | `string` | `undefined` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Usato per restringere l'origine dell'editor per motivi di sicurezza.<br/>• Se impostato su `'*'`, l'editor è accessibile da qualsiasi origine. |
|
|
582
|
+
| `port` | La porta utilizzata dal server del visual editor. | `number` | `8000` | | |
|
|
583
|
+
| `editorURL` | L'URL del server dell'editor. | `string` | `'http://localhost:8000'` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Usato per restringere le origini che possono interagire con l'applicazione.<br/>• Se impostato su `'*'`, accessibile da qualsiasi origine.<br/>• Deve essere impostato se la porta viene cambiata o se l'editor è ospitato su un dominio diverso. |
|
|
584
|
+
| `cmsURL` | L'URL del CMS Intlayer. | `string` | `'https://app.intlayer.org'` | `'https://app.intlayer.org'` | |
|
|
585
|
+
| `backendURL` | L'URL del server backend. | `string` | `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | Indica se l'applicazione interagisce con il visual editor. | `boolean` | `false` | `process.env.NODE_ENV !== 'production'` | • Se `false`, l'editor non può interagire con l'applicazione.<br/>• Disabilitare per ambienti specifici migliora la sicurezza. |
|
|
587
|
+
| `clientId` | Consente ai pacchetti intlayer di autenticarsi con il backend tramite oAuth2. Per ottenere un token di accesso, vai a [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Da mantenere segreto; memorizzare nelle variabili d'ambiente. |
|
|
588
|
+
| `clientSecret` | Consente ai pacchetti intlayer di autenticarsi con il backend tramite oAuth2. Per ottenere un token di accesso, vai a [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Da mantenere segreto; memorizzare nelle variabili d'ambiente. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | Strategia per dare priorità ai dizionari quando sono presenti sia locali che distanti. | `string` | `'local_first'` | `'distant_first'` | • `'distant_first'`: dà priorità ai distanti rispetto ai locali.<br/>• `'local_first'`: dà priorità ai locali rispetto ai distanti. |
|
|
590
|
+
| `liveSync` | Indica se il server dell'app deve ricaricare i contenuti a caldo quando viene rilevata una modifica sul CMS <br/> Visual Editor <br/> Backend. | `boolean` | `true` | `true` | • Quando un dizionario viene aggiunto/aggiornato, l'app aggiorna il contenuto della pagina.<br/>• Live sync esternalizza il contenuto su un altro server, il che può influire leggermente sulle prestazioni.<br/>• Si consiglia di ospitare entrambi sulla stessa macchina. |
|
|
591
|
+
| `liveSyncPort` | La porta del server live sync. | `number` | `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | L'URL del server live sync. | `string` | `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Punta a localhost per impostazione predefinita; può essere modificato per un server live sync remoto. |
|
|
577
593
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
| Campo | Tipo | Descrizione | Esempio | Nota |
|
|
581
|
-
| ---------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
582
|
-
| `applicationURL` | `string` | L'URL della tua applicazione. Predefinito: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Utilizzato per limitare le origini (origins) dell'editor per motivi di sicurezza. Se impostato su `'*'`, l'editor è accessibile da qualsiasi origine. |
|
|
583
|
-
| `port` | `number` | Porta utilizzata dal server dell'Editor Visuale. Predefinito: `8000` | | |
|
|
584
|
-
| `editorURL` | `string` | URL del server dell'editor. Predefinito: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Utilizzato per limitare le origini che possono interagire con l'applicazione. Se impostato su `'*'`, accessibile da qualsiasi origine. Deve essere impostato se si cambia porta o se l'editor è ospitato su un dominio diverso. |
|
|
585
|
-
| `cmsURL` | `string` | URL dell'Intlayer CMS. Predefinito: `'https://intlayer.org'` | `'https://intlayer.org'` | |
|
|
586
|
-
| `backendURL` | `string` | URL del server backend. Predefinito: `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
587
|
-
| `enabled` | `boolean` | Indica se l'app interagirà con l'editor visuale. Predefinito: `true` | `process.env.NODE_ENV !== 'production'` | Se `false`, l'editor non può interagire con l'app. Disabilitarlo per ambienti specifici migliora la sicurezza. |
|
|
588
|
-
| `clientId` | `string | undefined` | Consente ai pacchetti intlayer di autenticarsi con il backend utilizzando oAuth2. Per ricevere un token di accesso, vai su [intlayer.org/project](https://app.intlayer.org/project). Predefinito: `undefined` | | Tienilo segreto; memorizzalo nelle variabili d'ambiente. |
|
|
589
|
-
| `clientSecret` | `string | undefined` | Consente ai pacchetti intlayer di autenticarsi con il backend utilizzando oAuth2. Per ricevere un token di accesso, vai su [intlayer.org/project](https://app.intlayer.org/project). Predefinito: `undefined` | | Tienilo segreto; memorizzalo nelle variabili d'ambiente. |
|
|
590
|
-
| `dictionaryPriorityStrategy` | `string` | Strategia per dare priorità ai dizionari quando esistono sia dizionari locali che remoti. Predefinito: `'local_first'` | `'distant_first'` | `'distant_first'`: Priorità ai remoti rispetto ai locali. `'local_first'`: Priorità ai locali rispetto ai remoti. |
|
|
591
|
-
| `liveSync` | `boolean` | Indica se il server dell'applicazione debba ricaricare i contenuti a caldo quando viene rilevata una modifica nel CMS / Editor Visuale / Backend. Predefinito: `true` | `true` | Quando un dizionario viene aggiunto/aggiornato, l'app aggiorna il contenuto della pagina. Il live sync esternalizza il contenuto a un altro server, il che può influire leggermente sulle prestazioni. Si raccomanda di ospitare entrambi sulla stessa macchina. |
|
|
592
|
-
| `liveSyncPort` | `number` | Porta del server Live Sync. Predefinito: `4000` | `4000` | |
|
|
593
|
-
| `liveSyncURL` | `string` | URL del server Live Sync. Predefinito: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Punta a localhost per impostazione predefinita; può essere modificato in un server Live Sync remoto. |
|
|
594
|
+
---
|
|
594
595
|
|
|
595
|
-
### Configurazione
|
|
596
|
+
### Configurazione di Routing
|
|
596
597
|
|
|
597
|
-
Impostazioni che controllano il comportamento del routing, inclusa la struttura URL, la memorizzazione
|
|
598
|
+
Impostazioni che controllano il comportamento del routing, inclusa la struttura dell'URL, la memorizzazione del locale e la gestione del middleware.
|
|
598
599
|
|
|
599
|
-
| Campo | Tipo
|
|
600
|
-
| ---------- |
|
|
601
|
-
| `mode` | `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
602
|
-
| `storage` | `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array` |
|
|
603
|
-
| `basePath` |
|
|
604
|
-
| `rewrite` |
|
|
600
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
601
|
+
| ---------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
602
|
+
| `mode` | Modalità di routing URL per la gestione del locale. | `'prefix-no-default'` | <br/> `'prefix-all'` | <br/> `'no-prefix'` | <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) o `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: locale gestito con altri mezzi. `'search-params'`: `/dashboard?locale=fr` | Non influisce sulla gestione dei cookie o della memoria del locale. |
|
|
603
|
+
| `storage` | Configurazione per la memorizzazione del locale nel client. | `false` | <br/> `'cookie'` | <br/> `'localStorage'` | <br/> `'sessionStorage'` | <br/> `'header'` | <br/> `CookiesAttributes` | <br/> `StorageAttributes` | <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Vedere la tabella Opzioni di Memorizzazione di seguito. |
|
|
604
|
+
| `basePath` | Percorso base per gli URL dell'applicazione. | `string` | `''` | `'/my-app'` | Se l'app è su `https://example.com/my-app`, basePath è `'/my-app'` e gli URL diventano `https://example.com/my-app/en`. |
|
|
605
|
+
| `rewrite` | Regole di riscrittura URL personalizzate che annullano la modalità di routing predefinita per percorsi specifici. Supporta parametri dinamici `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Vedere l'esempio di seguito | • Le regole di riscrittura hanno la precedenza su `mode`.<br/>• Funziona con Next.js e Vite.<br/>• `getLocalizedUrl()` applica automaticamente le regole corrispondenti.<br/>• Vedere [Riscritture URL Personalizzate](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
|
|
605
606
|
|
|
606
607
|
**Esempio di `rewrite`**:
|
|
607
608
|
|
|
@@ -625,43 +626,43 @@ routing: {
|
|
|
625
626
|
}
|
|
626
627
|
```
|
|
627
628
|
|
|
628
|
-
#### Opzioni di
|
|
629
|
+
#### Opzioni di Memorizzazione
|
|
629
630
|
|
|
630
|
-
| Valore |
|
|
631
|
-
| ------------------ |
|
|
632
|
-
| `'cookie'` |
|
|
633
|
-
| `'localStorage'` |
|
|
634
|
-
| `'sessionStorage'` |
|
|
635
|
-
| `'header'` |
|
|
631
|
+
| Valore | Nota | Descrizione |
|
|
632
|
+
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
633
|
+
| `'cookie'` | • Per la conformità GDPR, assicurarsi di ottenere il corretto consenso dell'utente.<br/>• Personalizzabile tramite `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). | Memorizza il locale nei cookie — accessibile sia lato client che lato server. |
|
|
634
|
+
| `'localStorage'` | • Nessuna scadenza a meno che non venga cancellato esplicitamente.<br/>• Il proxy Intlayer non può accedervi.<br/>• Personalizzabile tramite `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | Memorizza il locale nel browser senza scadenza — solo lato client. |
|
|
635
|
+
| `'sessionStorage'` | • Cancellato quando la scheda/finestra viene chiusa.<br/>• Il proxy Intlayer non può accedervi.<br/>• Personalizzabile tramite `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). | Memorizza il locale per la durata della sessione della pagina — solo lato client. |
|
|
636
|
+
| `'header'` | • Utile per le chiamate API.<br/>• Il lato client non può accedervi.<br/>• Personalizzabile tramite `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). | Memorizza o trasmette il locale tramite header HTTP — solo lato server. |
|
|
636
637
|
|
|
637
|
-
#### Attributi
|
|
638
|
+
#### Attributi dei Cookie
|
|
638
639
|
|
|
639
640
|
Quando si utilizza la memorizzazione tramite cookie, è possibile configurare attributi aggiuntivi:
|
|
640
641
|
|
|
641
|
-
| Campo |
|
|
642
|
-
| ---------- |
|
|
643
|
-
| `name` |
|
|
644
|
-
| `domain` |
|
|
645
|
-
| `path` |
|
|
646
|
-
| `secure` |
|
|
647
|
-
| `httpOnly` |
|
|
648
|
-
| `sameSite` | `'strict' | 'lax' | 'none'` |
|
|
649
|
-
| `expires` |
|
|
642
|
+
| Campo | Descrizione | Tipo |
|
|
643
|
+
| ---------- | ------------------------------------------- | ----------------------------------------------------- |
|
|
644
|
+
| `name` | Nome del cookie. Predefinito: `'INTLAYER_LOCALE'` | `string` |
|
|
645
|
+
| `domain` | Dominio del cookie. Predefinito: `undefined` | `string` |
|
|
646
|
+
| `path` | Percorso del cookie. Predefinito: `undefined` | `string` |
|
|
647
|
+
| `secure` | Richiede HTTPS. Predefinito: `undefined` | `boolean` |
|
|
648
|
+
| `httpOnly` | Flag HTTP-only. Predefinito: `undefined` | `boolean` |
|
|
649
|
+
| `sameSite` | Politica SameSite. | `'strict'` | <br/> `'lax'` | <br/> `'none'` |
|
|
650
|
+
| `expires` | Data di scadenza o giorni. Predefinito: `undefined` | `Date` | <br/> `number` |
|
|
650
651
|
|
|
651
|
-
#### Attributi
|
|
652
|
+
#### Attributi di Memorizzazione Locale
|
|
652
653
|
|
|
653
654
|
Quando si utilizza localStorage o sessionStorage:
|
|
654
655
|
|
|
655
|
-
| Campo |
|
|
656
|
-
| ------ |
|
|
657
|
-
| `type` | `'localStorage' | 'sessionStorage'` |
|
|
658
|
-
| `name` |
|
|
656
|
+
| Campo | Descrizione | Tipo |
|
|
657
|
+
| ------ | ---------------------------------------------- | ------------------------------------------------ |
|
|
658
|
+
| `type` | Tipo di memorizzazione. | `'localStorage'` | <br/> `'sessionStorage'` |
|
|
659
|
+
| `name` | Nome chiave di memoria. Predefinito: `'INTLAYER_LOCALE'` | `string` |
|
|
659
660
|
|
|
660
|
-
#### Esempi di
|
|
661
|
+
#### Esempi di configurazione
|
|
661
662
|
|
|
662
663
|
Ecco alcuni esempi comuni di configurazione per la nuova struttura di routing v7:
|
|
663
664
|
|
|
664
|
-
**Configurazione
|
|
665
|
+
**Configurazione Base (Predefinita)**:
|
|
665
666
|
|
|
666
667
|
```typescript
|
|
667
668
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -681,7 +682,7 @@ const config: IntlayerConfig = {
|
|
|
681
682
|
export default config;
|
|
682
683
|
```
|
|
683
684
|
|
|
684
|
-
**Configurazione
|
|
685
|
+
**Configurazione Conforme al GDPR**:
|
|
685
686
|
|
|
686
687
|
```typescript
|
|
687
688
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -713,7 +714,7 @@ const config: IntlayerConfig = {
|
|
|
713
714
|
export default config;
|
|
714
715
|
```
|
|
715
716
|
|
|
716
|
-
**Modalità Parametri di Ricerca
|
|
717
|
+
**Modalità Parametri di Ricerca**:
|
|
717
718
|
|
|
718
719
|
```typescript
|
|
719
720
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -733,7 +734,7 @@ const config: IntlayerConfig = {
|
|
|
733
734
|
export default config;
|
|
734
735
|
```
|
|
735
736
|
|
|
736
|
-
**Modalità Senza Prefisso
|
|
737
|
+
**Modalità Senza Prefisso con Memorizzazione Personalizzata**:
|
|
737
738
|
|
|
738
739
|
```typescript
|
|
739
740
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -756,7 +757,7 @@ const config: IntlayerConfig = {
|
|
|
756
757
|
export default config;
|
|
757
758
|
```
|
|
758
759
|
|
|
759
|
-
**
|
|
760
|
+
**Riscrittura URL Personalizzata con Percorsi Dinamici**:
|
|
760
761
|
|
|
761
762
|
```typescript
|
|
762
763
|
// intlayer.config.ts
|
|
@@ -768,7 +769,7 @@ const config: IntlayerConfig = {
|
|
|
768
769
|
defaultLocale: "en",
|
|
769
770
|
},
|
|
770
771
|
routing: {
|
|
771
|
-
mode: "prefix-no-default", //
|
|
772
|
+
mode: "prefix-no-default", // Fallback per percorsi non riscritti
|
|
772
773
|
storage: "cookie",
|
|
773
774
|
rewrite: nextjsRewrite({
|
|
774
775
|
"/about": {
|
|
@@ -792,132 +793,166 @@ export default config;
|
|
|
792
793
|
|
|
793
794
|
---
|
|
794
795
|
|
|
795
|
-
### Configurazione
|
|
796
|
+
### Configurazione dei Contenuti
|
|
796
797
|
|
|
797
|
-
Impostazioni relative
|
|
798
|
+
Impostazioni relative alla gestione dei contenuti all'interno dell'applicazione, inclusi nomi di directory, estensioni file e configurazioni derivate.
|
|
798
799
|
|
|
799
|
-
| Campo | Tipo |
|
|
800
|
-
| ---------------- | ---------- |
|
|
801
|
-
| `watch` |
|
|
802
|
-
| `fileExtensions` |
|
|
803
|
-
| `contentDir` |
|
|
804
|
-
| `codeDir` |
|
|
805
|
-
| `excludedPath` |
|
|
806
|
-
| `formatCommand` |
|
|
800
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
801
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
802
|
+
| `watch` | Indica se Intlayer deve monitorare le modifiche nei file di dichiarazione dei contenuti per rigenerare i dizionari. | `boolean` | `true` | | |
|
|
803
|
+
| `fileExtensions` | Estensioni file da scansionare durante la compilazione dei dizionari. | `string[]` | `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']` | `['.data.ts', '.data.js', '.data.json']` | La personalizzazione può aiutare a evitare conflitti. |
|
|
804
|
+
| `contentDir` | Il percorso della directory dove sono memorizzati i file di definizione dei contenuti (`.content.*`). | `string[]` | `['.']` | `['src', '../../ui-library', require.resolve("@my-package/content")]` | Usata per monitorare i file di contenuto e rigenerare i dizionari. |
|
|
805
|
+
| `codeDir` | Il percorso della directory dove è memorizzato il codice, relativo alla directory base. | `string[]` | `['.']` | `['src', '../../ui-library']` | • Usata per monitorare i file di codice per la trasformazione (pruning, ottimizzazione).<br/>• Separare da `contentDir` può migliorare le prestazioni. |
|
|
806
|
+
| `excludedPath` | Directory escluse dalla scansione dei contenuti. | `string[]` | `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']` | | Non ancora utilizzata; prevista per implementazioni future. |
|
|
807
|
+
| `formatCommand` | Comando per formattare i file di contenuto quando Intlayer li scrive localmente. | `string` | `undefined` | `'npx prettier --write "{{file}}" --log-level silent'` (Prettier), `'npx biome format "{{file}}" --write --log-level none'` (Biome), `'npx eslint --fix "{{file}}" --quiet'` (ESLint) | • `{{file}}` viene sostituito dal percorso del file.<br/>• Se non definito, Intlayer lo rileva automaticamente (prova prettier, biome, eslint). |
|
|
807
808
|
|
|
808
809
|
---
|
|
809
810
|
|
|
810
|
-
### Configurazione del Dizionario
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
|
822
|
-
|
|
|
823
|
-
| `
|
|
824
|
-
| `
|
|
825
|
-
| `
|
|
826
|
-
| `
|
|
811
|
+
### Configurazione del Dizionario
|
|
812
|
+
|
|
813
|
+
Parametri che controllano le operazioni del dizionario, inclusi il comportamento di auto-fill e la generazione di contenuti.
|
|
814
|
+
|
|
815
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
816
|
+
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
817
|
+
| `fill` | Controlla come vengono generati i file di output del riempimento automatico (traduzione IA). | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: percorso predefinito (stesso file dell'originale).<br/>• `false`: disabilita.<br/>• Modello stringa/funzione genera file per locale.<br/>• Oggetto per locale: ogni locale corrisponde al proprio modello; `false` ignora quel locale.<br/>• Includere `{{locale}}` attiva la generazione per locale.<br/>• `fill` a livello di dizionario ha sempre la priorità rispetto a questa impostazione globale. |
|
|
818
|
+
| `description` | Aiuta a comprendere lo scopo del dizionario nell'editor e nel CMS. Usato anche come contesto per la generazione delle traduzioni tramite IA. | `string` | `undefined` | `'Sezione profilo utente'` | |
|
|
819
|
+
| `locale` | Trasforma il dizionario in un formato per locale. Ogni campo dichiarato diventa un nodo di traduzione. Se assente, il dizionario è trattato come multilingua. | `LocalesValues` | `undefined` | `'en'` | Usare quando il dizionario è specifico per un singolo locale invece di contenere traduzioni per diversi. |
|
|
820
|
+
| `contentAutoTransformation` | Trasforma automaticamente le stringhe di contenuto in nodi tipizzati (markdown, HTML o inserimento). | `boolean` | <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')`.<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')`.<br/>• Inserimento : `Ciao {{name}}` → `insert('Ciao {{name}}')`. |
|
|
821
|
+
| `location` | Indica dove sono memorizzati i file del dizionario e come vengono sincronizzati con il CMS. | `'local'` | <br/> `'remote'` | <br/> `'hybrid'` | <br/> `'plugin'` | <br/> `string` | `'local'` | `'hybrid'` | • `'local'` : gestito solo localmente.<br/>• `'remote'` : gestito solo remotamente (CMS).<br/>• `'hybrid'` : gestito sia localmente che remotamente.<br/>• `'plugin'` o stringa personalizzata: gestito da un plugin o da una fonte personalizzata. |
|
|
822
|
+
| `importMode` | Controlla come vengono importati i dizionari. | `'static'` | <br/> `'dynamic'` | <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: importato staticamente.<br/>• `'dynamic'`: importato dinamicamente tramite Suspense.<br/>• `'fetch'`: recuperato tramite API live sync; fallback su `'dynamic'` se fallisce.<br/>• Richiede i plugin `@intlayer/babel` e `@intlayer/swc`.<br/>• Le chiavi devono essere dichiarate staticamente.<br/>• Ignorato se `optimize` è disabilitato.<br/>• Non influisce su `getIntlayer`, `getDictionary`, ecc. |
|
|
823
|
+
| `priority` | Priorità del dizionario. I valori più alti vincono su quelli più bassi nella risoluzione dei conflitti tra dizionari. | `number` | `undefined` | `1` | |
|
|
824
|
+
| `live` | Deprecato — usare invece `importMode: 'fetch'`. Indicava se il contenuto del dizionario doveva essere recuperato dinamicamente tramite l'API live sync. | `boolean` | `undefined` | | Rinominato in `importMode: 'fetch'` nella v8.0.0. |
|
|
825
|
+
| `schema` | Generato automaticamente da Intlayer per la validazione dello schema JSON. | `'https://intlayer.org/schema.json'` | auto-generato | | Non modificare manualmente. |
|
|
826
|
+
| `title` | Aiuta a identificare il dizionario nell'editor e nel CMS. | `string` | `undefined` | `'Profilo Utente'` | |
|
|
827
|
+
| `tags` | Categorizza i dizionari e fornisce contesto o istruzioni per l'editor e l'IA. | `string[]` | `undefined` | `['utente', 'profilo']` | |
|
|
828
|
+
| `version` | Versione del dizionario remoto; aiuta a tracciare la versione attualmente in uso. | `string` | `undefined` | `'1.0.0'` | • Gestibile nel CMS.<br/>• Non modificare localmente. |
|
|
827
829
|
|
|
828
830
|
**Esempio di `fill`**:
|
|
829
831
|
|
|
830
832
|
```ts
|
|
831
833
|
dictionary: {
|
|
832
834
|
fill: {
|
|
833
|
-
en:
|
|
835
|
+
en: "/locales/en/{{key}}.content.json",
|
|
834
836
|
fr: ({ key }) => `/locales/fr/${key}.content.json`,
|
|
835
837
|
es: false,
|
|
836
|
-
}
|
|
837
|
-
}
|
|
838
|
+
},
|
|
839
|
+
};
|
|
838
840
|
```
|
|
839
841
|
|
|
840
842
|
---
|
|
841
843
|
|
|
842
|
-
### Configurazione
|
|
844
|
+
### Configurazione del Logger
|
|
843
845
|
|
|
844
|
-
|
|
846
|
+
Parametri per personalizzare l'output dei log di Intlayer.
|
|
845
847
|
|
|
846
|
-
| Campo
|
|
847
|
-
|
|
|
848
|
-
| `
|
|
849
|
-
| `
|
|
850
|
-
| `apiKey` | `string` | Chiave API per il fornitore selezionato. | `process.env.OPENAI_API_KEY` | |
|
|
851
|
-
| `applicationContext` | `string` | Contesto aggiuntivo sulla tua app per migliorare la precisione della traduzione AI. | `'Piattaforma di studio per bambini.'` | |
|
|
852
|
-
| `baseURL` | `string` | URL base opzionale per le chiamate API. | | Utile se stai usando un proxy o un deployment AI locale. |
|
|
853
|
-
| `dataSerialization` | `'json' | 'toon'` | Definisce come inviare i dati all'AI. Predefinito: `'json'` | `'json'` | `'json'`: più robusto e preciso. `'toon'`: consuma meno token ma può essere meno stabile. |
|
|
848
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
849
|
+
| -------- | ----------------------------------------- | -------------------------------------------------------------- | ---------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
850
|
+
| `mode` | Indica la modalità del logger. | `'default'` | <br/> `'verbose'` | <br/> `'disabled'` | `'default'` | `'verbose'` | • `'verbose'`: logga più informazioni per il debug.<br/>• `'disabled'`: disabilita completamente il logger. |
|
|
851
|
+
| `prefix` | Il prefisso per i messaggi di log. | `string` | `'[intlayer] '` | `'[mio prefisso] '` | |
|
|
854
852
|
|
|
855
853
|
---
|
|
856
854
|
|
|
857
|
-
### Configurazione
|
|
855
|
+
### Configurazione AI
|
|
856
|
+
|
|
857
|
+
Impostazioni che controllano le funzioni AI di Intlayer, inclusi fornitore, modello e chiave API.
|
|
858
|
+
|
|
859
|
+
Questa configurazione è opzionale se sei registrato al [Dashboard Intlayer](https://app.intlayer.org/project) con una chiave di accesso. Intlayer gestirà automaticamente la soluzione AI più efficiente ed economica per le tue esigenze. L'uso delle opzioni predefinite garantisce una migliore manutenibilità a lungo termine, poiché Intlayer viene aggiornato continuamente per utilizzare i modelli più rilevanti.
|
|
860
|
+
|
|
861
|
+
Se preferisci usare la tua chiave API o un modello specifico, puoi definire la tua configurazione AI personalizzata.
|
|
862
|
+
Questa configurazione AI verrà utilizzata globalmente nel tuo ambiente Intlayer. I comandi CLI utilizzeranno queste impostazioni di default per comandi come `fill`, così come l'SDK, il Visual Editor e il CMS. Puoi sovrascrivere questi valori predefiniti per casi d'uso specifici tramite i parametri del comando.
|
|
863
|
+
|
|
864
|
+
Intlayer supporta molteplici fornitori AI per la massima flessibilità. I fornitori attualmente supportati sono:
|
|
865
|
+
|
|
866
|
+
- **OpenAI** (Default)
|
|
867
|
+
- **Anthropic Claude**
|
|
868
|
+
- **Mistral AI**
|
|
869
|
+
- **DeepSeek**
|
|
870
|
+
- **Google Gemini**
|
|
871
|
+
- **Google AI Studio**
|
|
872
|
+
- **Google Vertex**
|
|
873
|
+
- **Meta Llama**
|
|
874
|
+
- **Ollama**
|
|
875
|
+
- **OpenRouter**
|
|
876
|
+
- **Alibaba Cloud**
|
|
877
|
+
- **Fireworks**
|
|
878
|
+
- **Hugging Face**
|
|
879
|
+
- **Groq**
|
|
880
|
+
- **Amazon Bedrock**
|
|
881
|
+
- **Together.ai**
|
|
882
|
+
|
|
883
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
884
|
+
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
885
|
+
| `provider` | Il fornitore da utilizzare per le funzioni AI di Intlayer. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | `undefined` | `'anthropic'` | Diversi fornitori richiedono diverse chiavi API e hanno prezzi differenti. |
|
|
886
|
+
| `model` | Il modello da utilizzare per le funzioni AI. | `string` | Nessuno | `'gpt-4o-2024-11-20'` | Il modello specifico varia a seconda del fornitore. |
|
|
887
|
+
| `temperature` | Controlla la casualità delle risposte AI. | `number` | Nessuno | `0.1` | Temperatura più alta = più creativo e meno prevedibile. |
|
|
888
|
+
| `apiKey` | La tua chiave API per il fornitore selezionato. | `string` | Nessuno | `process.env.OPENAI_API_KEY` | Da mantenere segreto; memorizzare nelle variabili d'ambiente. |
|
|
889
|
+
| `applicationContext` | Contesto aggiuntivo sulla tua applicazione per aiutare l'IA a generare traduzioni più accurate (dominio, audience, tono, terminologia). | `string` | Nessuno | `'Il mio contesto applicativo'` | Può essere usato per aggiungere regole (es.: `"Non devi trasformare gli URL"`). |
|
|
890
|
+
| `baseURL` | L'URL base per l'API AI. | `string` | Nessuno | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Può puntare a un endpoint API AI locale o personalizzato. |
|
|
891
|
+
| `dataSerialization` | Formato di serializzazione dati per le funzioni AI. | `'json'` | <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: standard, affidabile; usa più token.<br/>• `'toon'`: meno token, meno consistente.<br/>• Vengono passati parametri aggiuntivi al modello come contesto (sforzo di ragionamento, ecc.). |
|
|
858
892
|
|
|
859
|
-
|
|
893
|
+
---
|
|
860
894
|
|
|
861
|
-
|
|
862
|
-
| -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------- | ---- |
|
|
863
|
-
| `mode` | `'auto' | 'manual'` | Indica se Intlayer debba essere eseguito automaticamente durante i passaggi di pre-build dell'app. Predefinito: `'auto'` | | |
|
|
864
|
-
| `optimize` | `boolean` | Indica se i dizionari compilati debbano essere ottimizzati per il runtime. Predefinito: `true` in produzione | | |
|
|
865
|
-
| `outputFormat` | `('cjs' | 'esm')[]` | Formato di output per i file del dizionario generati. Predefinito: `['cjs', 'esm']` | | |
|
|
866
|
-
| `checkTypes` | `boolean` | Indica se Intlayer debba controllare i tipi nei file generati. Predefinito: `false` | | |
|
|
895
|
+
### Configurazione di Build
|
|
867
896
|
|
|
868
|
-
|
|
897
|
+
Parametri che controllano come Intlayer ottimizza e compila l'internazionalizzazione della tua applicazione.
|
|
898
|
+
|
|
899
|
+
Le opzioni di build si applicano ai plugin `@intlayer/babel` e `@intlayer/swc`.
|
|
869
900
|
|
|
870
|
-
|
|
901
|
+
> In modalità sviluppo, Intlayer utilizza importazioni statiche per i dizionari per semplificare l'esperienza di sviluppo.
|
|
871
902
|
|
|
872
|
-
|
|
903
|
+
> Durante l'ottimizzazione, Intlayer sostituirà le chiamate ai dizionari per ottimizzare il chunking, in modo che il bundle finale importi solo i dizionari effettivamente utilizzati.
|
|
873
904
|
|
|
874
|
-
| Campo
|
|
875
|
-
|
|
|
876
|
-
| `
|
|
877
|
-
| `
|
|
878
|
-
| `
|
|
879
|
-
| `
|
|
880
|
-
| `
|
|
881
|
-
| `configDir` | `string` | Directory dei file di configurazione compilati. | `'.intlayer/config'` |
|
|
882
|
-
| `cacheDir` | `string` | Directory dei file di cache. | `'.intlayer/cache'` |
|
|
905
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
906
|
+
| ----------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
907
|
+
| `mode` | Controlla la modalità di build. | `'auto'` | <br/> `'manual'` | `'auto'` | `'manual'` | • `'auto'`: build attivata automaticamente durante la build dell'app.<br/>• `'manual'`: eseguita solo quando viene lanciato esplicitamente il comando di build.<br/>• Può essere usato per disabilitare le build dei dizionari (es. per evitare l'esecuzione in ambienti Node.js). |
|
|
908
|
+
| `optimize` | Controlla se la build deve essere ottimizzata. | `boolean` | `undefined` | `process.env.NODE_ENV === 'production'` | • Se non definito, l'ottimizzazione viene attivata alla build del framework (Vite/Next.js).<br/>• `true` forza l'ottimizzazione anche in modalità dev.<br/>• `false` la disabilita.<br/>• Se attivo, sostituisce le chiamate ai dizionari per ottimizzare il chunking.<br/>• Richiede i plugin `@intlayer/babel` e `@intlayer/swc`. |
|
|
909
|
+
| `checkTypes` | Indica se la build deve verificare i tipi TypeScript e loggare eventuali errori. | `boolean` | `false` | | Può rallentare il processo di build. |
|
|
910
|
+
| `outputFormat` | Controlla il formato di output dei dizionari. | `('esm' | 'cjs')[]` | `['esm', 'cjs']` | `['cjs']` | |
|
|
911
|
+
| `traversePattern` | Modelli che definiscono quali file scansionare durante l'ottimizzazione. | `string[]` | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • Limita l'ottimizzazione ai file rilevanti per migliorare le prestazioni di build.<br/>• Ignorato se `optimize` è disabilitato.<br/>• Usa pattern glob. |
|
|
883
912
|
|
|
884
913
|
---
|
|
885
914
|
|
|
886
|
-
### Configurazione
|
|
915
|
+
### Configurazione di Sistema
|
|
887
916
|
|
|
888
|
-
|
|
917
|
+
Queste impostazioni sono per casi d'uso avanzati e configurazione interna di Intlayer.
|
|
889
918
|
|
|
890
|
-
| Campo
|
|
891
|
-
|
|
|
892
|
-
| `
|
|
893
|
-
| `
|
|
894
|
-
| `
|
|
895
|
-
| `
|
|
896
|
-
| `
|
|
919
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
920
|
+
| ------------------------- | --------------------------------------------------- | -------- | --------------------------------- | ------- | ---- |
|
|
921
|
+
| `dictionariesDir` | Directory per i dizionari compilati. | `string` | `'.intlayer/dictionary'` | | |
|
|
922
|
+
| `moduleAugmentationDir` | Directory per l'augmentation dei moduli TypeScript. | `string` | `'.intlayer/types'` | | |
|
|
923
|
+
| `unmergedDictionariesDir` | Directory per i dizionari non fusi. | `string` | `'.intlayer/unmerged_dictionary'` | | |
|
|
924
|
+
| `typesDir` | Directory per i tipi generati. | `string` | `'.intlayer/types'` | | |
|
|
925
|
+
| `mainDir` | Directory del file principale di Intlayer. | `string` | `'.intlayer/main'` | | |
|
|
926
|
+
| `configDir` | Directory dei file di configurazione compilati. | `string` | `'.intlayer/config'` | | |
|
|
927
|
+
| `cacheDir` | Directory dei file di cache. | `string` | `'.intlayer/cache'` | | |
|
|
897
928
|
|
|
898
929
|
---
|
|
899
930
|
|
|
900
|
-
### Configurazione del
|
|
931
|
+
### Configurazione del Compilatore
|
|
901
932
|
|
|
902
|
-
Impostazioni
|
|
933
|
+
Impostazioni che controllano il compilatore Intlayer, che estrae i dizionari direttamente dai tuoi componenti.
|
|
903
934
|
|
|
904
|
-
| Campo
|
|
905
|
-
|
|
|
906
|
-
| `
|
|
907
|
-
| `
|
|
935
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
936
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
937
|
+
| `enabled` | Indica se il compilatore deve essere abilitato per l'estrazione dei dizionari. | `boolean` | <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` salta il compilatore durante lo sviluppo per velocizzare le build; viene eseguito solo ai comandi di build. |
|
|
938
|
+
| `dictionaryKeyPrefix` | Prefisso per le chiavi dei dizionari estratte. | `string` | `''` | `'mio-prefisso-'` | Aggiunto alla chiave generata (basata sul nome file) per evitare conflitti. |
|
|
939
|
+
| `saveComponents` | Indica se i componenti devono essere salvati dopo essere stati trasformati. | `boolean` | `false` | | • Se `true`, sostituisce i file originali con le versioni trasformate.<br/>• Il compilatore può essere rimosso dopo un'esecuzione. |
|
|
940
|
+
| `output` | Definisce il percorso dei file di output. Sostituisce `outputDir`. Supporta variabili template: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • I percorsi `./` sono risolti rispetto alla directory del componente.<br/>• Percorsi `/` rispetto alla radice.<br/>• `{{locale}}` attiva la generazione per locale.<br/>• Supporta notazione oggetti per locale. |
|
|
941
|
+
| `noMetadata` | Se `true`, il compilatore omette i metadati del dizionario (chiave, wrapper contenuto) dall'output. | `boolean` | `false` | `false` → `{"key":"mia-chiave","content":{"key":"valore"}}` <br/> `true` → `{"key":"valore"}` | • Utile per output JSON i18next o ICU MessageFormat.<br/>• Funziona bene con il plugin `loadJSON`. |
|
|
942
|
+
| `dictionaryKeyPrefix` | Prefisso chiave dizionario | `string` | `''` | | Aggiungi un prefisso opzionale per le chiavi del dizionario estratte |
|
|
908
943
|
|
|
909
944
|
---
|
|
910
945
|
|
|
911
|
-
### Schemi Personalizzati
|
|
946
|
+
### Schemi Personalizzati
|
|
912
947
|
|
|
913
|
-
| Campo | Tipo |
|
|
914
|
-
| --------- |
|
|
915
|
-
| `schemas` |
|
|
948
|
+
| Campo | Descrizione | Tipo |
|
|
949
|
+
| --------- | --------------------------------------------------------------------------- | --------------------------- |
|
|
950
|
+
| `schemas` | Consente di definire schemi Zod per validare la struttura dei tuoi dizionari. | `Record<string, ZodSchema>` |
|
|
916
951
|
|
|
917
952
|
---
|
|
918
953
|
|
|
919
|
-
### Plugin
|
|
954
|
+
### Plugin
|
|
920
955
|
|
|
921
|
-
| Campo | Tipo |
|
|
922
|
-
| --------- |
|
|
923
|
-
| `plugins` |
|
|
956
|
+
| Campo | Descrizione | Tipo |
|
|
957
|
+
| --------- | ------------------------------------ | ------------------ |
|
|
958
|
+
| `plugins` | Elenco dei plugin Intlayer da attivare. | `IntlayerPlugin[]` |
|