@intlayer/docs 8.4.6 → 8.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/docs/en/configuration.md +115 -137
  12. package/docs/es/configuration.md +14 -6
  13. package/docs/fr/configuration.md +14 -6
  14. package/package.json +6 -6
  15. package/docs/ar/configuration.md +0 -922
  16. package/docs/bn/configuration.md +0 -922
  17. package/docs/de/configuration.md +0 -922
  18. package/docs/en-GB/configuration.md +0 -922
  19. package/docs/hi/configuration.md +0 -922
  20. package/docs/id/configuration.md +0 -922
  21. package/docs/it/configuration.md +0 -923
  22. package/docs/ja/configuration.md +0 -922
  23. package/docs/ko/configuration.md +0 -922
  24. package/docs/pl/configuration.md +0 -922
  25. package/docs/pt/configuration.md +0 -922
  26. package/docs/ru/configuration.md +0 -943
  27. package/docs/tr/configuration.md +0 -922
  28. package/docs/uk/configuration.md +0 -922
  29. package/docs/ur/configuration.md +0 -922
  30. package/docs/vi/configuration.md +0 -922
  31. package/docs/zh/configuration.md +0 -922
@@ -1,923 +0,0 @@
1
- ---
2
- createdAt: 2024-08-13
3
- updatedAt: 2026-03-20
4
- title: Configurazione (Configuration)
5
- description: Scopri come configurare Intlayer per la tua applicazione. Comprendi le varie impostazioni e opzioni disponibili per personalizzare Intlayer in base alle tue esigenze.
6
- keywords:
7
- - Configurazione
8
- - Impostazioni
9
- - Personalizzazione
10
- - Intlayer
11
- - Opzioni
12
- slugs:
13
- - doc
14
- - concept
15
- - configuration
16
- history:
17
- - version: 8.4.0
18
- date: 2026-03-20
19
- changes: Aggiunta la notazione per oggetto per locale per 'compiler.output' e 'dictionary.fill'
20
- - version: 8.3.0
21
- date: 2026-03-11
22
- changes: Spostato 'baseDir' dalla configurazione 'content' alla configurazione 'system'
23
- - version: 8.2.0
24
- date: 2026-03-09
25
- changes: Aggiornate le opzioni del compilatore (compiler), aggiunto il supporto per 'output' e 'noMetadata'
26
- - version: 8.1.7
27
- date: 2026-02-25
28
- changes: Aggiornate le opzioni del compilatore
29
- - version: 8.1.5
30
- date: 2026-02-23
31
- changes: Aggiunta l'opzione del compilatore 'build-only' e il prefisso del dizionario
32
- - version: 8.0.6
33
- date: 2026-02-12
34
- changes: Aggiunto il supporto per i fornitori Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
35
- - version: 8.0.5
36
- date: 2026-02-06
37
- changes: Aggiunto `dataSerialization` alla configurazione AI
38
- - version: 8.0.0
39
- date: 2026-01-24
40
- changes: Rinominata la modalità di importazione `live` in `fetch` per descrivere meglio il meccanismo sottostante.
41
- - version: 8.0.0
42
- date: 2026-01-22
43
- changes: Spostata la configurazione di build `importMode` nella configurazione `dictionary`.
44
- - version: 8.0.0
45
- date: 2026-01-22
46
- changes: Aggiunta l'opzione `rewrite` alla configurazione del routing
47
- - version: 8.0.0
48
- date: 2026-01-18
49
- changes: Separata la configurazione di sistema dalla configurazione di contenuto. Spostati i percorsi interni nella proprietà `system`. Aggiunto `codeDir` per separare i file di contenuto e la trasformazione del codice.
50
- - version: 8.0.0
51
- date: 2026-01-18
52
- changes: Aggiunte le opzioni del dizionario `location` e `schema`
53
- - version: 7.5.1
54
- date: 2026-01-10
55
- changes: Aggiunto il supporto per i formati di file JSON5 e JSONC
56
- - version: 7.5.0
57
- date: 2025-12-17
58
- changes: Aggiunta l'opzione `buildMode`
59
- - version: 7.0.0
60
- date: 2025-10-25
61
- changes: Aggiunta la configurazione `dictionary`
62
- - version: 7.0.0
63
- date: 2025-10-21
64
- changes: Sostituito `middleware` con la configurazione del routing `routing`
65
- - version: 7.0.0
66
- date: 2025-10-12
67
- changes: Aggiunta l'opzione `formatCommand`
68
- - version: 6.2.0
69
- date: 2025-10-12
70
- changes: Aggiornata l'opzione `excludedPath`
71
- - version: 6.0.2
72
- date: 2025-09-23
73
- changes: Aggiunta l'opzione `outputFormat`
74
- - version: 6.0.0
75
- date: 2025-09-21
76
- changes: Rimossi il campo `dictionaryOutput` e il campo `i18nextResourcesDir`
77
- - version: 6.0.0
78
- date: 2025-09-16
79
- changes: Aggiunta la modalità di importazione `live`
80
- - version: 6.0.0
81
- date: 2025-09-04
82
- changes: Sostituito il campo `hotReload` con `liveSync`, e aggiunti i campi `liveSyncPort` e `liveSyncURL`
83
- - version: 5.6.1
84
- date: 2025-07-25
85
- changes: Sostituito `activateDynamicImport` con l'opzione `importMode`
86
- - version: 5.6.0
87
- date: 2025-07-13
88
- changes: Modificato il contentDir predefinito da `['src']` a `['.']`
89
- - version: 5.5.11
90
- date: 2025-06-29
91
- changes: Aggiunti i comandi `docs`
92
- ---
93
-
94
- # Documentazione della Configurazione di Intlayer
95
-
96
- ## Panoramica
97
-
98
- I file di configurazione di Intlayer consentono di personalizzare vari aspetti del plugin, come l'internazionalizzazione (internationalization), il middleware e la gestione dei contenuti. Questa documentazione fornisce una descrizione approfondita di ogni proprietà nella configurazione.
99
-
100
- ---
101
-
102
- ## Tabella dei Contenuti
103
-
104
- <TOC/>
105
-
106
- ---
107
-
108
- ## Formati dei file di configurazione supportati
109
-
110
- Intlayer accetta i formati di file di configurazione JSON, JS, MJS e TS:
111
-
112
- - `intlayer.config.ts`
113
- - `intlayer.config.js`
114
- - `intlayer.config.json`
115
- - `intlayer.config.json5`
116
- - `intlayer.config.jsonc`
117
- - `intlayer.config.cjs`
118
- - `intlayer.config.mjs`
119
- - `.intlayerrc`
120
-
121
- ---
122
-
123
- ## Esempio di file di configurazione
124
-
125
- ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
126
- import { Locales, type IntlayerConfig } from "intlayer";
127
- import { nextjsRewrite } from "intlayer/routing";
128
- import { z } from "zod";
129
-
130
- /**
131
- * Esempio di file di configurazione Intlayer che mostra tutte le opzioni disponibili.
132
- */
133
- const config: IntlayerConfig = {
134
- /**
135
- * Configurazione delle impostazioni di internazionalizzazione.
136
- */
137
- internationalization: {
138
- /**
139
- * Elenco delle locali (locales) supportate nell'applicazione.
140
- * Predefinito: [Locales.ENGLISH]
141
- */
142
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
143
-
144
- /**
145
- * Elenco delle locali obbligatorie che devono essere definite in ogni dizionario.
146
- * Se vuoto, tutte le locali sono obbligatorie in modalità `strict`.
147
- * Predefinito: []
148
- */
149
- requiredLocales: [Locales.ENGLISH],
150
-
151
- /**
152
- * Livello di rigore per il contenuto internazionalizzato.
153
- * - "strict": Errore se manca una locale dichiarata o se non è dichiarata.
154
- * - "inclusive": Avviso se manca una locale dichiarata.
155
- * - "loose": Accetta qualsiasi locale esistente.
156
- * Predefinito: "inclusive"
157
- */
158
- strictMode: "inclusive",
159
-
160
- /**
161
- * La locale predefinita utilizzata come fallback nel caso in cui la locale richiesta non venga trovata.
162
- * Predefinito: Locales.ENGLISH
163
- */
164
- defaultLocale: Locales.ENGLISH,
165
- },
166
-
167
- /**
168
- * Impostazioni che controllano le operazioni del dizionario e il comportamento di fallback.
169
- */
170
- dictionary: {
171
- /**
172
- * Controlla come vengono importati i dizionari.
173
- * - "static": Importato staticamente al momento della build.
174
- * - "dynamic": Importato dinamicamente usando Suspense.
175
- * - "fetch": Recuperato dinamicamente tramite la Live Sync API.
176
- * Predefinito: "static"
177
- */
178
- importMode: "static",
179
-
180
- /**
181
- * Strategia per compilare automaticamente le traduzioni mancanti usando l'AI.
182
- * Può essere un valore booleano o un pattern di percorso per salvare il contenuto compilato.
183
- * Predefinito: true
184
- */
185
- fill: true,
186
-
187
- /**
188
- * La posizione fisica dei file del dizionario.
189
- * - "local": Memorizzato nel file system locale.
190
- * - "remote": Memorizzato nell'Intlayer CMS.
191
- * - "hybrid": Memorizzato sia localmente che nell'Intlayer CMS.
192
- * - "plugin" (o qualsiasi stringa personalizzata): Fornita da un plugin o da una sorgente personalizzata.
193
- * Predefinito: "local"
194
- */
195
- location: "local",
196
-
197
- /**
198
- * Se il contenuto debba essere trasformato automaticamente (es. da Markdown a HTML).
199
- * Predefinito: false
200
- */
201
- contentAutoTransformation: false,
202
- },
203
-
204
- /**
205
- * Configurazione del routing e del middleware.
206
- */
207
- routing: {
208
- /**
209
- * Strategia di routing per le locali.
210
- * - "prefix-no-default": Aggiunge un prefisso a tutte le locali tranne quella predefinita (es. /dashboard, /fr/dashboard).
211
- * - "prefix-all": Aggiunge un prefisso a tutte le locali (es. /en/dashboard, /fr/dashboard).
212
- * - "no-prefix": Nessuna locale nell'URL.
213
- * - "search-params": Usa ?locale=...
214
- * Predefinito: "prefix-no-default"
215
- */
216
- mode: "prefix-no-default",
217
-
218
- /**
219
- * Dove memorizzare la locale selezionata dall'utente.
220
- * Opzioni: 'cookie', 'localStorage', 'sessionStorage', 'header' o un array di questi.
221
- * Predefinito: ['cookie', 'header']
222
- */
223
- storage: ["cookie", "header"],
224
-
225
- /**
226
- * Il percorso di base per gli URL dell'applicazione.
227
- * Predefinito: ""
228
- */
229
- basePath: "",
230
-
231
- /**
232
- * Regole di rewrite URL personalizzate per percorsi specifici per locale.
233
- */
234
- rewrite: nextjsRewrite({
235
- "/[locale]/about": {
236
- en: "/[locale]/about",
237
- fr: "/[locale]/a-propos",
238
- },
239
- }),
240
- },
241
-
242
- /**
243
- * Impostazioni relative alla ricerca e all'elaborazione dei file di contenuto.
244
- */
245
- content: {
246
- /**
247
- * Estensioni dei file per la scansione dei dizionari.
248
- * Predefinito: ['.content.ts', '.content.js', '.content.json', ecc.]
249
- */
250
- fileExtensions: [".content.ts", ".content.js", ".content.json"],
251
-
252
- /**
253
- * Directory in cui si trovano i file .content.
254
- * Predefinito: ["."]
255
- */
256
- contentDir: ["src"],
257
-
258
- /**
259
- * Dove si trova il codice sorgente.
260
- * Utilizzato per l'ottimizzazione della build e la trasformazione del codice.
261
- * Predefinito: ["."]
262
- */
263
- codeDir: ["src"],
264
-
265
- /**
266
- * Pattern esclusi dalla scansione.
267
- * Predefinito: ['node_modules', '.intlayer', ecc.]
268
- */
269
- excludedPath: ["node_modules"],
270
-
271
- /**
272
- * Se monitorare le modifiche e ricostruire i dizionari durante lo sviluppo.
273
- * Predefinito: true in modalità sviluppo
274
- */
275
- watch: true,
276
-
277
- /**
278
- * Comando utilizzato per formattare i file .content appena creati / aggiornati.
279
- */
280
- formatCommand: 'npx prettier --write "{{file}}"',
281
- },
282
-
283
- /**
284
- * Configurazione dell'Editor Visuale (Visual Editor).
285
- */
286
- editor: {
287
- /**
288
- * Se l'editor visuale è abilitato.
289
- * Predefinito: false
290
- */
291
- enabled: true,
292
-
293
- /**
294
- * L'URL della tua applicazione per la validazione dell'origine (origin validation).
295
- * Predefinito: ""
296
- */
297
- applicationURL: "http://localhost:3000",
298
-
299
- /**
300
- * Porta per il server dell'editor locale.
301
- * Predefinito: 8000
302
- */
303
- port: 8000,
304
-
305
- /**
306
- * L'URL pubblico per l'editor.
307
- * Predefinito: "http://localhost:8000"
308
- */
309
- editorURL: "http://localhost:8000",
310
-
311
- /**
312
- * URL dell'Intlayer CMS.
313
- * Predefinito: "https://app.intlayer.org"
314
- */
315
- cmsURL: "https://app.intlayer.org",
316
-
317
- /**
318
- * URL dell'API Backend.
319
- * Predefinito: "https://back.intlayer.org"
320
- */
321
- backendURL: "https://back.intlayer.org",
322
-
323
- /**
324
- * Se abilitare la sincronizzazione dei contenuti in tempo reale.
325
- * Predefinito: false
326
- */
327
- liveSync: true,
328
- },
329
-
330
- /**
331
- * Impostazioni per la traduzione e la creazione basate sull'AI.
332
- */
333
- ai: {
334
- /**
335
- * Il fornitore AI da utilizzare.
336
- * Opzioni: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
337
- * Predefinito: 'openai'
338
- */
339
- provider: "openai",
340
-
341
- /**
342
- * Modello del fornitore selezionato da utilizzare.
343
- */
344
- model: "gpt-4o",
345
-
346
- /**
347
- * Chiave API del fornitore.
348
- */
349
- apiKey: process.env.OPENAI_API_KEY,
350
-
351
- /**
352
- * Contesto globale per guidare l'AI nella creazione delle traduzioni.
353
- */
354
- applicationContext:
355
- "Questa è un'applicazione per la prenotazione di viaggi.",
356
-
357
- /**
358
- * URL del percorso di base per l'API AI.
359
- */
360
- baseURL: "http://localhost:3000",
361
-
362
- /**
363
- * Serializzazione dei dati (Data Serialization)
364
- *
365
- * Opzioni:
366
- * - "json": Predefinito, robusto; consuma più token.
367
- * - "toon": Consuma meno token, potrebbe non essere coerente come JSON.
368
- *
369
- * Predefinito: "json"
370
- */
371
- dataSerialization: "json",
372
- },
373
-
374
- /**
375
- * Impostazioni di build e ottimizzazione.
376
- */
377
- build: {
378
- /**
379
- * Modalità di esecuzione della build.
380
- * - "auto": Viene compilato automaticamente durante la build dell'applicazione.
381
- * - "manual": Richiede un comando di build esplicito.
382
- * Predefinito: "auto"
383
- */
384
- mode: "auto",
385
-
386
- /**
387
- * Se ottimizzare il bundle finale rimuovendo i dizionari inutilizzati.
388
- * Predefinito: true in produzione
389
- */
390
- optimize: true,
391
-
392
- /**
393
- * Formato di output per i file del dizionario generati.
394
- * Predefinito: ['cjs', 'esm']
395
- */
396
- outputFormat: ["cjs", "esm"],
397
-
398
- /**
399
- * Indica se la build debba controllare i tipi TypeScript.
400
- * Predefinito: false
401
- */
402
- checkTypes: false,
403
- },
404
-
405
- /**
406
- * Configurazione del log (Logger).
407
- */
408
- log: {
409
- /**
410
- * Livello di log.
411
- * - "default": Logging standard.
412
- * - "verbose": Logging di debug approfondito.
413
- * - "disabled": Disabilita il logging.
414
- * Predefinito: "default"
415
- */
416
- mode: "default",
417
-
418
- /**
419
- * Prefisso per tutti i messaggi di log.
420
- * Predefinito: "[intlayer]"
421
- */
422
- prefix: "[intlayer]",
423
- },
424
-
425
- /**
426
- * Configurazione di sistema (per uso avanzato)
427
- */
428
- system: {
429
- /**
430
- * Directory per memorizzare i dizionari localizzati.
431
- */
432
- dictionariesDir: ".intlayer/dictionary",
433
-
434
- /**
435
- * Directory per il TypeScript module augmentation.
436
- */
437
- moduleAugmentationDir: ".intlayer/types",
438
-
439
- /**
440
- * Directory per memorizzare i dizionari non fusi (unmerged).
441
- */
442
- unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
443
-
444
- /**
445
- * Directory per memorizzare i tipi di dizionario.
446
- */
447
- typesDir: ".intlayer/types",
448
-
449
- /**
450
- * Directory in cui vengono memorizzati i file principali dell'applicazione.
451
- */
452
- mainDir: ".intlayer/main",
453
-
454
- /**
455
- * Directory in cui vengono memorizzati i file di configurazione.
456
- */
457
- configDir: ".intlayer/config",
458
-
459
- /**
460
- * Directory in cui vengono memorizzati i file di cache.
461
- */
462
- cacheDir: ".intlayer/cache",
463
- },
464
-
465
- /**
466
- * Configurazione del Compilatore (Per uso avanzato)
467
- */
468
- compiler: {
469
- /**
470
- * Indica se il compilatore debba essere abilitato.
471
- *
472
- * - false: Disabilita il compilatore.
473
- * - true: Abilita il compilatore.
474
- * - "build-only": Salta il compilatore durante lo sviluppo e accelera il tempo di avvio.
475
- *
476
- * Predefinito: false
477
- */
478
- enabled: true,
479
-
480
- /**
481
- * Definisce il percorso per i file di output. Sostituisce `outputDir`.
482
- *
483
- * - I percorsi con `./` sono risolti rispetto alla directory del componente.
484
- * - I percorsi con `/` sono risolti rispetto alla radice del progetto (`baseDir`).
485
- *
486
- * - L'inclusione della variabile `{{locale}}` nel percorso attiverà la creazione di dizionari separati per lingua.
487
- *
488
- * Esempio:
489
- * ```ts
490
- * {
491
- * // Crea file .content.ts multilingue accanto al componente
492
- * output: ({ fileName, extension }) => `./${fileName}${extension}`,
493
- *
494
- * // output: './{{fileName}}{{extension}}', // Equivalente usando una template string
495
- * }
496
- * ```
497
- *
498
- * ```ts
499
- * {
500
- * // Crea JSON centralizzati per lingua nella radice del progetto
501
- * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
502
- *
503
- * // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando una template string
504
- * }
505
- * ```
506
- *
507
- * Elenco delle variabili:
508
- * - `fileName`: Nome del file.
509
- * - `key`: Chiave del contenuto.
510
- * - `locale`: Locale del contenuto.
511
- * - `extension`: Estensione del file.
512
- * - `componentFileName`: Nome del file del componente.
513
- * - `componentExtension`: Estensione del file del componente.
514
- * - `format`: Formato del dizionario.
515
- * - `componentFormat`: Formato del dizionario del componente.
516
- * - `componentDirPath`: Percorso della directory del componente.
517
- */
518
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
519
-
520
- /**
521
- * Indica se i componenti debbano essere salvati dopo essere stati trasformati.
522
- * In questo modo, il compilatore può essere eseguito una sola volta per trasformare l'applicazione e poi rimosso.
523
- */
524
- saveComponents: false,
525
-
526
- /**
527
- * Inserisce solo il contenuto nel file generato. Utile per l'output JSON per lingua per i18next o ICU MessageFormat.
528
- */
529
- noMetadata: false,
530
-
531
- /**
532
- * Prefisso della chiave del dizionario
533
- */
534
- dictionaryKeyPrefix: "", // Aggiungi un prefisso opzionale alle chiavi del dizionario estratte
535
- },
536
-
537
- /**
538
- * Schemi personalizzati (Schemas) per validare il contenuto dei dizionari.
539
- */
540
- schemas: {
541
- "my-schema": z.object({
542
- title: z.string(),
543
- }),
544
- },
545
-
546
- /**
547
- * Configurazione dei plugin (Plugins).
548
- */
549
- plugins: [],
550
- };
551
-
552
- export default config;
553
- ````
554
-
555
- ---
556
-
557
- ## Riferimento della Configurazione (Configuration Reference)
558
-
559
- Le sezioni seguenti descrivono le varie opzioni di configurazione disponibili in Intlayer.
560
-
561
- ---
562
-
563
- ### Configurazione di Internazionalizzazione (Internationalization Configuration)
564
-
565
- Definisce le impostazioni relative all'internazionalizzazione, incluse le locali disponibili e la locale predefinita per l'applicazione.
566
-
567
- | Campo | Tipo | Descrizione | Esempio | Nota |
568
- | ----------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
569
- | `locales` | `string[]` | Elenco delle locali supportate nell'applicazione. Predefinito: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
570
- | `requiredLocales` | `string[]` | Elenco delle locali obbligatorie nell'applicazione. Predefinito: `[]` | `[]` | Se vuoto, tutte le locali sono obbligatorie in modalità `strict`. Assicurati che le locali obbligatorie siano definite anche nel campo `locales`. |
571
- | `strictMode` | `string` | Garantisce un'implementazione robusta del contenuto internazionalizzato utilizzando TypeScript. Predefinito: `inclusive` | | Se `"strict"`: la funzione `t` richiede che ogni locale dichiarata sia definita — genera un errore se ne manca una o se non è dichiarata. Se `"inclusive"`: avverte per le locali mancanti ma accetta le locali esistenti non dichiarate. Se `"loose"`: accetta qualsiasi locale esistente. |
572
- | `defaultLocale` | `string` | Locale predefinita utilizzata come fallback se la locale richiesta non viene trovata. Predefinito: `Locales.ENGLISH` | `'en'` | Utilizzata per determinare la locale quando non ne viene specificata nessuna in URL, cookie o intestazione (header). |
573
-
574
- ---
575
-
576
- ### Configurazione dell'Editor (Editor Configuration)
577
-
578
- Definisce le impostazioni relative all'editor integrato, inclusa la porta del server e lo stato di attività.
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 &#124; 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 &#124; 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
-
595
- ### Configurazione del Routing (Routing Configuration)
596
-
597
- Impostazioni che controllano il comportamento del routing, inclusa la struttura URL, la memorizzazione della locale e la gestione del middleware.
598
-
599
- | Campo | Tipo | Descrizione | Esempio | Nota |
600
- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
601
- | `mode` | `'prefix-no-default' &#124; 'prefix-all' &#124; 'no-prefix' &#124; 'search-params'` | Modalità di routing URL per la gestione delle locali. Predefinito: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) o `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: la locale viene gestita tramite altri mezzi. `'search-params'`: usa `/dashboard?locale=fr` | Non influisce sulla gestione dei cookie o sul locale storage. |
602
- | `storage` | `false &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; Array` | Configurazione per memorizzare la locale sul client. Predefinito: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Vedi la tabella delle Opzioni di Memoria sotto. |
603
- | `basePath` | `string` | Il percorso di base per gli URL dell'applicazione. Predefinito: `''` | `'/my-app'` | Se l'applicazione è su `https://example.com/my-app`, basePath è `'/my-app'` e gli URL diventano come `https://example.com/my-app/en`. |
604
- | `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | Regole di rewrite URL personalizzate che sovrascrivono la modalità di routing predefinita per percorsi specifici. Supporta parametri dinamici `[param]`. Predefinito: `undefined` | Vedi esempio sotto | Le regole di rewrite hanno la precedenza su `mode`. Funziona con Next.js e Vite. `getLocalizedUrl()` applica automaticamente le regole corrispondenti. Vedi [Rewrite URL Personalizzati](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/custom_url_rewrites.md). |
605
-
606
- **Esempio di `rewrite`**:
607
-
608
- ```typescript
609
- routing: {
610
- mode: "prefix-no-default", // Strategia di fallback
611
- rewrite: nextjsRewrite({
612
- "/about": {
613
- en: "/about",
614
- fr: "/a-propos",
615
- },
616
- "/product/[slug]": {
617
- en: "/product/[slug]",
618
- fr: "/produit/[slug]",
619
- },
620
- "/blog/[category]/[id]": {
621
- en: "/blog/[category]/[id]",
622
- fr: "/journal/[category]/[id]",
623
- },
624
- }),
625
- }
626
- ```
627
-
628
- #### Opzioni di Memoria (Storage Options)
629
-
630
- | Valore | Descrizione | Nota |
631
- | ------------------ | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
632
- | `'cookie'` | Salva la locale nei cookie — accessibile sia lato client che lato server. | Per la conformità GDPR, assicurati di ottenere il consenso appropriato dell'utente. Personalizzabile tramite `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
633
- | `'localStorage'` | Salva la locale nel browser senza data di scadenza — solo lato client. | Non scade finché non viene esplicitamente cancellato. Il proxy Intlayer non può accedervi. Personalizzabile tramite `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
634
- | `'sessionStorage'` | Salva la locale per la durata della sessione della pagina — solo lato client. | Cancellato quando si chiude la scheda/finestra. Il proxy Intlayer non può accedervi. Personalizzabile tramite `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
635
- | `'header'` | Salva o trasmette la locale tramite intestazioni HTTP — solo lato server. | Utile per le chiamate API. Il lato client non può accedervi. Personalizzabile tramite `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
636
-
637
- #### Attributi del Cookie (Cookie Attributes)
638
-
639
- Quando si utilizza la memorizzazione tramite cookie, è possibile configurare attributi aggiuntivi:
640
-
641
- | Campo | Tipo | Descrizione |
642
- | ---------- | ------------------------------------- | ------------------------------------------------------------- |
643
- | `name` | `string` | Nome del cookie. Predefinito: `'INTLAYER_LOCALE'` |
644
- | `domain` | `string` | Dominio del cookie. Predefinito: `undefined` |
645
- | `path` | `string` | Percorso del cookie. Predefinito: `undefined` |
646
- | `secure` | `boolean` | Richiede HTTPS. Predefinito: `undefined` |
647
- | `httpOnly` | `boolean` | Flag HTTP-only. Predefinito: `undefined` |
648
- | `sameSite` | `'strict' &#124; 'lax' &#124; 'none'` | Politica SameSite. |
649
- | `expires` | `Date &#124; number` | Data di scadenza o numero di giorni. Predefinito: `undefined` |
650
-
651
- #### Attributi del Locale Storage (Locale Storage Attributes)
652
-
653
- Quando si utilizza localStorage o sessionStorage:
654
-
655
- | Campo | Tipo | Descrizione |
656
- | ------ | ---------------------------------------- | ------------------------------------------------------------- |
657
- | `type` | `'localStorage' &#124; 'sessionStorage'` | Tipo di memoria. |
658
- | `name` | `string` | Nome della chiave memoriale. Predefinito: `'INTLAYER_LOCALE'` |
659
-
660
- #### Esempi di Configurazione
661
-
662
- Ecco alcuni esempi comuni di configurazione per la nuova struttura di routing v7:
663
-
664
- **Configurazione di Base (Predefinita)**:
665
-
666
- ```typescript
667
- import { Locales, type IntlayerConfig } from "intlayer";
668
- // intlayer.config.ts
669
- const config: IntlayerConfig = {
670
- internationalization: {
671
- locales: ["en", "fr", "es"],
672
- defaultLocale: "en",
673
- },
674
- routing: {
675
- mode: "prefix-no-default",
676
- storage: "localStorage",
677
- basePath: "",
678
- },
679
- };
680
-
681
- export default config;
682
- ```
683
-
684
- **Configurazione conforme alla GDPR**:
685
-
686
- ```typescript
687
- import { Locales, type IntlayerConfig } from "intlayer";
688
- // intlayer.config.ts
689
- const config: IntlayerConfig = {
690
- internationalization: {
691
- locales: ["en", "fr", "es"],
692
- defaultLocale: "en",
693
- },
694
- routing: {
695
- mode: "prefix-no-default",
696
- storage: [
697
- {
698
- type: "localStorage",
699
- name: "user-locale",
700
- },
701
- {
702
- type: "cookie",
703
- name: "user-locale",
704
- secure: true,
705
- sameSite: "strict",
706
- httpOnly: false,
707
- },
708
- ],
709
- basePath: "",
710
- },
711
- };
712
-
713
- export default config;
714
- ```
715
-
716
- **Modalità Parametri di Ricerca (Search Parameters Mode)**:
717
-
718
- ```typescript
719
- import { Locales, type IntlayerConfig } from "intlayer";
720
- // intlayer.config.ts
721
- const config: IntlayerConfig = {
722
- internationalization: {
723
- locales: ["en", "fr", "es"],
724
- defaultLocale: "en",
725
- },
726
- routing: {
727
- mode: "search-params",
728
- storage: "localStorage",
729
- basePath: "",
730
- },
731
- };
732
-
733
- export default config;
734
- ```
735
-
736
- **Modalità Senza Prefisso (No Prefix Mode) con memoria personalizzata**:
737
-
738
- ```typescript
739
- import { Locales, type IntlayerConfig } from "intlayer";
740
- // intlayer.config.ts
741
- const config: IntlayerConfig = {
742
- internationalization: {
743
- locales: ["en", "fr", "es"],
744
- defaultLocale: "en",
745
- },
746
- routing: {
747
- mode: "no-prefix",
748
- storage: {
749
- type: "sessionStorage",
750
- name: "app-locale",
751
- },
752
- basePath: "/my-app",
753
- },
754
- };
755
-
756
- export default config;
757
- ```
758
-
759
- **Rewrite URL personalizzato con percorsi dinamici**:
760
-
761
- ```typescript
762
- // intlayer.config.ts
763
- import { nextjsRewrite } from "intlayer/routing";
764
-
765
- const config: IntlayerConfig = {
766
- internationalization: {
767
- locales: ["en", "fr"],
768
- defaultLocale: "en",
769
- },
770
- routing: {
771
- mode: "prefix-no-default", // Strategia di fallback per i percorsi non riscritti
772
- storage: "cookie",
773
- rewrite: nextjsRewrite({
774
- "/about": {
775
- en: "/about",
776
- fr: "/a-propos",
777
- },
778
- "/product/[slug]": {
779
- en: "/product/[slug]",
780
- fr: "/produit/[slug]",
781
- },
782
- "/blog/[category]/[id]": {
783
- en: "/blog/[category]/[id]",
784
- fr: "/journal/[category]/[id]",
785
- },
786
- }),
787
- },
788
- };
789
-
790
- export default config;
791
- ```
792
-
793
- ---
794
-
795
- ### Configurazione di Contenuto (Content Configuration)
796
-
797
- Impostazioni relative all'elaborazione dei contenuti all'interno dell'applicazione (nomi di directory, estensioni di file e configurazioni derivate).
798
-
799
- | Campo | Tipo | Descrizione | Esempio | Nota |
800
- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
801
- | `watch` | `boolean` | Indica se Intlayer debba monitorare le modifiche nei file di dichiarazione del contenuto per ricostruire i dizionari. Predefinito: `process.env.NODE_ENV === 'development'` | | |
802
- | `fileExtensions` | `string[]` | Estensioni dei file utilizzate per la scansione dei file di dichiarazione del contenuto. Predefinito: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
803
- | `contentDir` | `string[]` | Percorsi alle directory in cui si trovano i file di dichiarazione del contenuto. Predefinito: `['.']` | `['src/content']` | |
804
- | `codeDir` | `string[]` | Percorsi alle directory in cui si trovano i file del codice sorgente della tua applicazione. Predefinito: `['.']` | `['src']` | Utilizzato per ottimizzare la build e garantire che la trasformazione del codice e il ricaricamento a caldo siano applicati solo ai file necessari. |
805
- | `excludedPath` | `string[]` | Percorsi esclusi dalla scansione dei contenuti. Predefinito: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
806
- | `formatCommand` | `string` | Comando che verrà eseguito per formattare i file di contenuto appena creati o aggiornati. Predefinito: `undefined` | `'npx prettier --write "{{file}}"'` | Utilizzato durante l'estrazione del contenuto o tramite l'editor visuale. |
807
-
808
- ---
809
-
810
- ### Configurazione del Dizionario (Dictionary Configuration)
811
-
812
- Impostazioni che controllano le operazioni dei dizionari, incluso il comportamento del riempimento automatico e la generazione dei contenuti.
813
-
814
- Questa configurazione del dizionario ha due scopi principali:
815
-
816
- 1. **Valori predefiniti**: Definire i valori predefiniti durante la creazione dei file di dichiarazione del contenuto.
817
- 2. **Comportamento di fallback**: Fornire valori di fallback quando campi specifici non sono definiti, consentendo di definire globalmente il comportamento delle operazioni sui dizionari.
818
-
819
- Per ulteriori informazioni sui file di dichiarazione del contenuto e su come vengono applicati i valori di configurazione, consultare la [documentazione dei file di contenuto](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/content_file.md).
820
-
821
- | Campo | Tipo | Descrizione | Esempio | Nota |
822
- | --------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
823
- | `fill` | `boolean &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; FilePathPattern>>` | Controlla come vengono generati i file di output del riempimento automatico (traduzione AI). Predefinito: `true` | Vedi esempio sotto | `true`: Percorso predefinito (stesso file della sorgente). `false`: Disabilitato. I template di stringa/funzione generano file per locale. Oggetto per locale: ogni locale è mappata al proprio pattern; `false` salta quel locale. L'inclusione di `{{locale}}` attiva la generazione per locale. Il `fill` a livello di dizionario ha sempre la precedenza su questa configurazione globale. |
824
- | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | Controlla come vengono importati i dizionari. Predefinito: `'static'` | `'dynamic'` | `'static'`: Importato staticamente. `'dynamic'`: Importato dinamicamente tramite Suspense. `'fetch'`: Recuperato dinamicamente tramite Live Sync API. Non influisce su `getIntlayer`, `getDictionary`, `useDictionary`, ecc. |
825
- | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; string` | Dove vengono memorizzati i dizionari. Predefinito: `'local'` | `'remote'` | `'local'`: file system. `'remote'`: Intlayer CMS. `'hybrid'`: entrambi. |
826
- | `contentAutoTransformation` | `boolean` | Se i file di contenuto debbano essere trasformati automaticamente (es. da Markdown a HTML). Predefinito: `false` | `true` | Utile per elaborare i campi Markdown tramite @intlayer/markdown. |
827
-
828
- **Esempio di `fill`**:
829
-
830
- ```ts
831
- dictionary: {
832
- fill: {
833
- en: '/locales/en/{{key}}.content.json',
834
- fr: ({ key }) => `/locales/fr/${key}.content.json`,
835
- es: false,
836
- }
837
- }
838
- ```
839
-
840
- ---
841
-
842
- ### Configurazione AI (AI Configuration)
843
-
844
- Definisce le impostazioni per le funzionalità alimentate dall'AI di Intlayer, come la traduzione build.
845
-
846
- | Campo | Tipo | Descrizione | Esempio | Nota |
847
- | -------------------- | ---------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------- |
848
- | `provider` | `string` | Il fornitore AI da utilizzare. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
849
- | `model` | `string` | Il modello AI da utilizzare. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
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' &#124; '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. |
854
-
855
- ---
856
-
857
- ### Configurazione della Build (Build Configuration)
858
-
859
- Impostazioni del processo di build e ottimizzazione di Intlayer.
860
-
861
- | Campo | Tipo | Descrizione | Esempio | Nota |
862
- | -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------- | ---- |
863
- | `mode` | `'auto' &#124; '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' &#124; '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` | | |
867
-
868
- ---
869
-
870
- ### Configurazione di Sistema (System Configuration)
871
-
872
- Queste impostazioni sono destinate a casi d'uso avanzati e per la configurazione interna di Intlayer.
873
-
874
- | Campo | Tipo | Descrizione | Predefinito |
875
- | ------------------------- | -------- | ----------------------------------------------- | --------------------------------- |
876
- | `dictionariesDir` | `string` | Directory dei dizionari compilati. | `'.intlayer/dictionary'` |
877
- | `moduleAugmentationDir` | `string` | Directory per TypeScript module augmentation. | `'.intlayer/types'` |
878
- | `unmergedDictionariesDir` | `string` | Directory dei dizionari non fusi. | `'.intlayer/unmerged_dictionary'` |
879
- | `typesDir` | `string` | Directory dei tipi generati. | `'.intlayer/types'` |
880
- | `mainDir` | `string` | Directory del file Intlayer principale. | `'.intlayer/main'` |
881
- | `configDir` | `string` | Directory dei file di configurazione compilati. | `'.intlayer/config'` |
882
- | `cacheDir` | `string` | Directory dei file di cache. | `'.intlayer/cache'` |
883
-
884
- ---
885
-
886
- ### Configurazione del Compilatore (Compiler Configuration)
887
-
888
- Impostazioni per il compilatore Intlayer (`intlayer compiler`).
889
-
890
- | Campo | Tipo | Descrizione | Predefinito |
891
- | --------------------- | ------------------------ | -------------------------------------------------------------------------------------------- | ----------- |
892
- | `enabled` | `boolean` | Indica se il compilatore è attivo. | `false` |
893
- | `output` | `string &#124; Function` | Percorso di output per i dizionari estratti. | |
894
- | `saveComponents` | `boolean` | Indica se i file sorgente originali debbano essere sovrascritti con le versioni trasformate. | `false` |
895
- | `noMetadata` | `boolean` | Se `true`, il compilatore non includerà metadati nei file generati. | `false` |
896
- | `dictionaryKeyPrefix` | `string` | Prefisso opzionale della chiave del dizionario. | `''` |
897
-
898
- ---
899
-
900
- ### Configurazione del Logger (Logger Configuration)
901
-
902
- Impostazioni per personalizzare l'output dei log di Intlayer.
903
-
904
- | Campo | Tipo | Descrizione | Predefinito |
905
- | -------- | ---------------------------------------------- | ------------------------------- | -------------- |
906
- | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | Modalità di logging. | `'default'` |
907
- | `prefix` | `string` | Prefisso per i messaggi di log. | `'[intlayer]'` |
908
-
909
- ---
910
-
911
- ### Schemi Personalizzati (Custom Schemas)
912
-
913
- | Campo | Tipo | Descrizione |
914
- | --------- | --------------------------- | -------------------------------------------------------------------------------- |
915
- | `schemas` | `Record<string, ZodSchema>` | Ti permette di definire schemi Zod per validare la struttura dei tuoi dizionari. |
916
-
917
- ---
918
-
919
- ### Plugin (Plugins)
920
-
921
- | Campo | Tipo | Descrizione |
922
- | --------- | ------------------ | --------------------------------------- |
923
- | `plugins` | `IntlayerPlugin[]` | Elenco dei plugin Intlayer da attivare. |