@intlayer/docs 8.4.4 → 8.4.6
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/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/cjs/blog.cjs +21 -1
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +81 -1
- package/dist/cjs/common.cjs.map +1 -0
- package/dist/cjs/doc.cjs +21 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +21 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +572 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +3032 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +352 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +72 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +34 -1
- package/dist/cjs/legal.cjs +21 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs +14 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +67 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs +14 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs +14 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +570 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +3030 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +350 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +70 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/index.mjs +6 -1
- package/dist/esm/legal.mjs +14 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts +2 -2
- package/dist/types/common.d.ts +37 -2
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/doc.d.ts +2 -2
- package/dist/types/frequentQuestions.d.ts +2 -2
- package/dist/types/generated/blog.entry.d.ts +35 -2
- package/dist/types/generated/blog.entry.d.ts.map +1 -0
- package/dist/types/generated/docs.entry.d.ts +158 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -0
- package/dist/types/generated/frequentQuestions.entry.d.ts +24 -2
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -0
- package/dist/types/generated/legal.entry.d.ts +10 -2
- package/dist/types/generated/legal.entry.d.ts.map +1 -0
- package/dist/types/legal.d.ts +2 -2
- package/docs/ar/configuration.md +520 -722
- package/docs/ar/intlayer_with_storybook.md +521 -0
- package/docs/bn/configuration.md +922 -0
- package/docs/bn/intlayer_with_hono.md +428 -0
- package/docs/de/configuration.md +369 -743
- package/docs/de/intlayer_with_storybook.md +521 -0
- package/docs/en/configuration.md +181 -507
- package/docs/en/intlayer_with_storybook.md +521 -0
- package/docs/en-GB/configuration.md +456 -657
- package/docs/en-GB/intlayer_with_storybook.md +521 -0
- package/docs/es/configuration.md +379 -754
- package/docs/es/intlayer_with_storybook.md +521 -0
- package/docs/fr/configuration.md +376 -757
- package/docs/fr/intlayer_with_storybook.md +521 -0
- package/docs/hi/configuration.md +532 -728
- package/docs/hi/intlayer_with_storybook.md +521 -0
- package/docs/id/configuration.md +371 -684
- package/docs/id/intlayer_with_storybook.md +521 -0
- package/docs/it/configuration.md +397 -775
- package/docs/it/intlayer_with_storybook.md +521 -0
- package/docs/ja/configuration.md +525 -724
- package/docs/ja/intlayer_with_storybook.md +521 -0
- package/docs/ko/configuration.md +525 -724
- package/docs/ko/intlayer_with_storybook.md +521 -0
- package/docs/pl/configuration.md +430 -734
- package/docs/pl/intlayer_with_storybook.md +521 -0
- package/docs/pt/configuration.md +375 -746
- package/docs/pt/intlayer_with_storybook.md +521 -0
- package/docs/ru/configuration.md +532 -701
- package/docs/ru/intlayer_with_storybook.md +521 -0
- package/docs/tr/configuration.md +527 -719
- package/docs/tr/intlayer_with_storybook.md +521 -0
- package/docs/uk/configuration.md +425 -744
- package/docs/uk/intlayer_with_storybook.md +521 -0
- package/docs/ur/configuration.md +922 -0
- package/docs/ur/intlayer_with_hono.md +428 -0
- package/docs/vi/configuration.md +412 -753
- package/docs/vi/intlayer_with_storybook.md +521 -0
- package/docs/zh/configuration.md +521 -714
- package/docs/zh/intlayer_with_storybook.md +521 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
- package/dist/cjs/common-a-l0ULP6.cjs +0 -2
- package/dist/cjs/common-a-l0ULP6.cjs.map +0 -1
- package/dist/types/blog.entry-D5IgxPXY.d.ts +0 -35
- package/dist/types/blog.entry-D5IgxPXY.d.ts.map +0 -1
- package/dist/types/common-B45TZvLQ.d.ts +0 -37
- package/dist/types/common-B45TZvLQ.d.ts.map +0 -1
- package/dist/types/docs.entry-CergjAYt.d.ts +0 -157
- package/dist/types/docs.entry-CergjAYt.d.ts.map +0 -1
- package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts +0 -24
- package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts.map +0 -1
- package/dist/types/legal.entry-B5Lg5eeH.d.ts +0 -10
- package/dist/types/legal.entry-B5Lg5eeH.d.ts.map +0 -1
package/docs/it/configuration.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
4
|
-
title: Configurazione
|
|
5
|
-
description: Scopri come configurare Intlayer per la tua applicazione. Comprendi le varie impostazioni e opzioni disponibili per personalizzare Intlayer
|
|
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
6
|
keywords:
|
|
7
7
|
- Configurazione
|
|
8
8
|
- Impostazioni
|
|
@@ -14,51 +14,54 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
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'
|
|
17
20
|
- version: 8.3.0
|
|
18
21
|
date: 2026-03-11
|
|
19
|
-
changes:
|
|
22
|
+
changes: Spostato 'baseDir' dalla configurazione 'content' alla configurazione 'system'
|
|
20
23
|
- version: 8.2.0
|
|
21
24
|
date: 2026-03-09
|
|
22
|
-
changes:
|
|
25
|
+
changes: Aggiornate le opzioni del compilatore (compiler), aggiunto il supporto per 'output' e 'noMetadata'
|
|
23
26
|
- version: 8.1.7
|
|
24
27
|
date: 2026-02-25
|
|
25
|
-
changes:
|
|
28
|
+
changes: Aggiornate le opzioni del compilatore
|
|
26
29
|
- version: 8.1.5
|
|
27
30
|
date: 2026-02-23
|
|
28
|
-
changes: Aggiunta opzione del compilatore 'build-only' e prefisso del dizionario
|
|
31
|
+
changes: Aggiunta l'opzione del compilatore 'build-only' e il prefisso del dizionario
|
|
29
32
|
- version: 8.0.6
|
|
30
33
|
date: 2026-02-12
|
|
31
|
-
changes:
|
|
34
|
+
changes: Aggiunto il supporto per i fornitori Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
32
35
|
- version: 8.0.5
|
|
33
36
|
date: 2026-02-06
|
|
34
|
-
changes:
|
|
37
|
+
changes: Aggiunto `dataSerialization` alla configurazione AI
|
|
35
38
|
- version: 8.0.0
|
|
36
39
|
date: 2026-01-24
|
|
37
|
-
changes:
|
|
40
|
+
changes: Rinominata la modalità di importazione `live` in `fetch` per descrivere meglio il meccanismo sottostante.
|
|
38
41
|
- version: 8.0.0
|
|
39
42
|
date: 2026-01-22
|
|
40
|
-
changes:
|
|
43
|
+
changes: Spostata la configurazione di build `importMode` nella configurazione `dictionary`.
|
|
41
44
|
- version: 8.0.0
|
|
42
45
|
date: 2026-01-22
|
|
43
46
|
changes: Aggiunta l'opzione `rewrite` alla configurazione del routing
|
|
44
47
|
- version: 8.0.0
|
|
45
48
|
date: 2026-01-18
|
|
46
|
-
changes:
|
|
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.
|
|
47
50
|
- version: 8.0.0
|
|
48
51
|
date: 2026-01-18
|
|
49
|
-
changes: Aggiunte opzioni dizionario `location` e `schema`
|
|
52
|
+
changes: Aggiunte le opzioni del dizionario `location` e `schema`
|
|
50
53
|
- version: 7.5.1
|
|
51
54
|
date: 2026-01-10
|
|
52
|
-
changes: Aggiunto supporto per i formati di file JSON5 e JSONC
|
|
55
|
+
changes: Aggiunto il supporto per i formati di file JSON5 e JSONC
|
|
53
56
|
- version: 7.5.0
|
|
54
57
|
date: 2025-12-17
|
|
55
|
-
changes: Aggiunta opzione `buildMode`
|
|
58
|
+
changes: Aggiunta l'opzione `buildMode`
|
|
56
59
|
- version: 7.0.0
|
|
57
60
|
date: 2025-10-25
|
|
58
|
-
changes: Aggiunta configurazione `dictionary`
|
|
61
|
+
changes: Aggiunta la configurazione `dictionary`
|
|
59
62
|
- version: 7.0.0
|
|
60
63
|
date: 2025-10-21
|
|
61
|
-
changes: Sostituito
|
|
64
|
+
changes: Sostituito `middleware` con la configurazione del routing `routing`
|
|
62
65
|
- version: 7.0.0
|
|
63
66
|
date: 2025-10-12
|
|
64
67
|
changes: Aggiunta l'opzione `formatCommand`
|
|
@@ -70,41 +73,41 @@ history:
|
|
|
70
73
|
changes: Aggiunta l'opzione `outputFormat`
|
|
71
74
|
- version: 6.0.0
|
|
72
75
|
date: 2025-09-21
|
|
73
|
-
changes:
|
|
76
|
+
changes: Rimossi il campo `dictionaryOutput` e il campo `i18nextResourcesDir`
|
|
74
77
|
- version: 6.0.0
|
|
75
78
|
date: 2025-09-16
|
|
76
|
-
changes: Aggiunta modalità di importazione `live`
|
|
79
|
+
changes: Aggiunta la modalità di importazione `live`
|
|
77
80
|
- version: 6.0.0
|
|
78
81
|
date: 2025-09-04
|
|
79
|
-
changes: Sostituito il campo `hotReload` con `liveSync
|
|
82
|
+
changes: Sostituito il campo `hotReload` con `liveSync`, e aggiunti i campi `liveSyncPort` e `liveSyncURL`
|
|
80
83
|
- version: 5.6.1
|
|
81
84
|
date: 2025-07-25
|
|
82
85
|
changes: Sostituito `activateDynamicImport` con l'opzione `importMode`
|
|
83
86
|
- version: 5.6.0
|
|
84
87
|
date: 2025-07-13
|
|
85
|
-
changes:
|
|
88
|
+
changes: Modificato il contentDir predefinito da `['src']` a `['.']`
|
|
86
89
|
- version: 5.5.11
|
|
87
90
|
date: 2025-06-29
|
|
88
91
|
changes: Aggiunti i comandi `docs`
|
|
89
92
|
---
|
|
90
93
|
|
|
91
|
-
# Documentazione
|
|
94
|
+
# Documentazione della Configurazione di Intlayer
|
|
92
95
|
|
|
93
96
|
## Panoramica
|
|
94
97
|
|
|
95
|
-
I file di configurazione di Intlayer
|
|
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.
|
|
96
99
|
|
|
97
100
|
---
|
|
98
101
|
|
|
99
|
-
##
|
|
102
|
+
## Tabella dei Contenuti
|
|
100
103
|
|
|
101
104
|
<TOC/>
|
|
102
105
|
|
|
103
106
|
---
|
|
104
107
|
|
|
105
|
-
## Formati
|
|
108
|
+
## Formati dei file di configurazione supportati
|
|
106
109
|
|
|
107
|
-
Intlayer accetta formati di file di configurazione JSON, JS, MJS e TS:
|
|
110
|
+
Intlayer accetta i formati di file di configurazione JSON, JS, MJS e TS:
|
|
108
111
|
|
|
109
112
|
- `intlayer.config.ts`
|
|
110
113
|
- `intlayer.config.js`
|
|
@@ -125,108 +128,108 @@ import { nextjsRewrite } from "intlayer/routing";
|
|
|
125
128
|
import { z } from "zod";
|
|
126
129
|
|
|
127
130
|
/**
|
|
128
|
-
*
|
|
131
|
+
* Esempio di file di configurazione Intlayer che mostra tutte le opzioni disponibili.
|
|
129
132
|
*/
|
|
130
133
|
const config: IntlayerConfig = {
|
|
131
134
|
/**
|
|
132
|
-
*
|
|
135
|
+
* Configurazione delle impostazioni di internazionalizzazione.
|
|
133
136
|
*/
|
|
134
137
|
internationalization: {
|
|
135
138
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
139
|
+
* Elenco delle locali (locales) supportate nell'applicazione.
|
|
140
|
+
* Predefinito: [Locales.ENGLISH]
|
|
138
141
|
*/
|
|
139
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
140
143
|
|
|
141
144
|
/**
|
|
142
|
-
*
|
|
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: []
|
|
145
148
|
*/
|
|
146
149
|
requiredLocales: [Locales.ENGLISH],
|
|
147
150
|
|
|
148
151
|
/**
|
|
149
|
-
*
|
|
150
|
-
* - "strict":
|
|
151
|
-
* - "inclusive":
|
|
152
|
-
* - "loose":
|
|
153
|
-
*
|
|
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"
|
|
154
157
|
*/
|
|
155
158
|
strictMode: "inclusive",
|
|
156
159
|
|
|
157
160
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
161
|
+
* La locale predefinita utilizzata come fallback nel caso in cui la locale richiesta non venga trovata.
|
|
162
|
+
* Predefinito: Locales.ENGLISH
|
|
160
163
|
*/
|
|
161
164
|
defaultLocale: Locales.ENGLISH,
|
|
162
165
|
},
|
|
163
166
|
|
|
164
167
|
/**
|
|
165
|
-
*
|
|
168
|
+
* Impostazioni che controllano le operazioni del dizionario e il comportamento di fallback.
|
|
166
169
|
*/
|
|
167
170
|
dictionary: {
|
|
168
171
|
/**
|
|
169
|
-
*
|
|
170
|
-
* - "static":
|
|
171
|
-
* - "dynamic":
|
|
172
|
-
* - "fetch":
|
|
173
|
-
*
|
|
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"
|
|
174
177
|
*/
|
|
175
178
|
importMode: "static",
|
|
176
179
|
|
|
177
180
|
/**
|
|
178
|
-
*
|
|
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
|
|
181
184
|
*/
|
|
182
185
|
fill: true,
|
|
183
186
|
|
|
184
187
|
/**
|
|
185
|
-
*
|
|
186
|
-
* - "local":
|
|
187
|
-
* - "remote":
|
|
188
|
-
* - "hybrid":
|
|
189
|
-
* - "plugin" (
|
|
190
|
-
*
|
|
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"
|
|
191
194
|
*/
|
|
192
195
|
location: "local",
|
|
193
196
|
|
|
194
197
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
198
|
+
* Se il contenuto debba essere trasformato automaticamente (es. da Markdown a HTML).
|
|
199
|
+
* Predefinito: false
|
|
197
200
|
*/
|
|
198
201
|
contentAutoTransformation: false,
|
|
199
202
|
},
|
|
200
203
|
|
|
201
204
|
/**
|
|
202
|
-
*
|
|
205
|
+
* Configurazione del routing e del middleware.
|
|
203
206
|
*/
|
|
204
207
|
routing: {
|
|
205
208
|
/**
|
|
206
|
-
*
|
|
207
|
-
* - "prefix-no-default":
|
|
208
|
-
* - "prefix-all":
|
|
209
|
-
* - "no-prefix":
|
|
210
|
-
* - "search-params":
|
|
211
|
-
*
|
|
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"
|
|
212
215
|
*/
|
|
213
216
|
mode: "prefix-no-default",
|
|
214
217
|
|
|
215
218
|
/**
|
|
216
|
-
*
|
|
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']
|
|
219
222
|
*/
|
|
220
223
|
storage: ["cookie", "header"],
|
|
221
224
|
|
|
222
225
|
/**
|
|
223
|
-
*
|
|
224
|
-
*
|
|
226
|
+
* Il percorso di base per gli URL dell'applicazione.
|
|
227
|
+
* Predefinito: ""
|
|
225
228
|
*/
|
|
226
229
|
basePath: "",
|
|
227
230
|
|
|
228
231
|
/**
|
|
229
|
-
*
|
|
232
|
+
* Regole di rewrite URL personalizzate per percorsi specifici per locale.
|
|
230
233
|
*/
|
|
231
234
|
rewrite: nextjsRewrite({
|
|
232
235
|
"/[locale]/about": {
|
|
@@ -237,130 +240,131 @@ const config: IntlayerConfig = {
|
|
|
237
240
|
},
|
|
238
241
|
|
|
239
242
|
/**
|
|
240
|
-
*
|
|
243
|
+
* Impostazioni relative alla ricerca e all'elaborazione dei file di contenuto.
|
|
241
244
|
*/
|
|
242
245
|
content: {
|
|
243
246
|
/**
|
|
244
|
-
*
|
|
245
|
-
*
|
|
247
|
+
* Estensioni dei file per la scansione dei dizionari.
|
|
248
|
+
* Predefinito: ['.content.ts', '.content.js', '.content.json', ecc.]
|
|
246
249
|
*/
|
|
247
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
248
251
|
|
|
249
252
|
/**
|
|
250
|
-
*
|
|
251
|
-
*
|
|
253
|
+
* Directory in cui si trovano i file .content.
|
|
254
|
+
* Predefinito: ["."]
|
|
252
255
|
*/
|
|
253
256
|
contentDir: ["src"],
|
|
254
257
|
|
|
255
258
|
/**
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
+
* Dove si trova il codice sorgente.
|
|
260
|
+
* Utilizzato per l'ottimizzazione della build e la trasformazione del codice.
|
|
261
|
+
* Predefinito: ["."]
|
|
259
262
|
*/
|
|
260
263
|
codeDir: ["src"],
|
|
261
264
|
|
|
262
265
|
/**
|
|
263
|
-
*
|
|
264
|
-
*
|
|
266
|
+
* Pattern esclusi dalla scansione.
|
|
267
|
+
* Predefinito: ['node_modules', '.intlayer', ecc.]
|
|
265
268
|
*/
|
|
266
269
|
excludedPath: ["node_modules"],
|
|
267
270
|
|
|
268
271
|
/**
|
|
269
|
-
*
|
|
270
|
-
*
|
|
272
|
+
* Se monitorare le modifiche e ricostruire i dizionari durante lo sviluppo.
|
|
273
|
+
* Predefinito: true in modalità sviluppo
|
|
271
274
|
*/
|
|
272
275
|
watch: true,
|
|
273
276
|
|
|
274
277
|
/**
|
|
275
|
-
*
|
|
278
|
+
* Comando utilizzato per formattare i file .content appena creati / aggiornati.
|
|
276
279
|
*/
|
|
277
280
|
formatCommand: 'npx prettier --write "{{file}}"',
|
|
278
281
|
},
|
|
279
282
|
|
|
280
283
|
/**
|
|
281
|
-
* Visual Editor
|
|
284
|
+
* Configurazione dell'Editor Visuale (Visual Editor).
|
|
282
285
|
*/
|
|
283
286
|
editor: {
|
|
284
287
|
/**
|
|
285
|
-
*
|
|
286
|
-
*
|
|
288
|
+
* Se l'editor visuale è abilitato.
|
|
289
|
+
* Predefinito: false
|
|
287
290
|
*/
|
|
288
291
|
enabled: true,
|
|
289
292
|
|
|
290
293
|
/**
|
|
291
|
-
* URL
|
|
292
|
-
*
|
|
294
|
+
* L'URL della tua applicazione per la validazione dell'origine (origin validation).
|
|
295
|
+
* Predefinito: ""
|
|
293
296
|
*/
|
|
294
297
|
applicationURL: "http://localhost:3000",
|
|
295
298
|
|
|
296
299
|
/**
|
|
297
|
-
*
|
|
298
|
-
*
|
|
300
|
+
* Porta per il server dell'editor locale.
|
|
301
|
+
* Predefinito: 8000
|
|
299
302
|
*/
|
|
300
303
|
port: 8000,
|
|
301
304
|
|
|
302
305
|
/**
|
|
303
|
-
*
|
|
304
|
-
*
|
|
306
|
+
* L'URL pubblico per l'editor.
|
|
307
|
+
* Predefinito: "http://localhost:8000"
|
|
305
308
|
*/
|
|
306
309
|
editorURL: "http://localhost:8000",
|
|
307
310
|
|
|
308
311
|
/**
|
|
309
|
-
* Intlayer CMS
|
|
310
|
-
*
|
|
312
|
+
* URL dell'Intlayer CMS.
|
|
313
|
+
* Predefinito: "https://app.intlayer.org"
|
|
311
314
|
*/
|
|
312
315
|
cmsURL: "https://app.intlayer.org",
|
|
313
316
|
|
|
314
317
|
/**
|
|
315
|
-
*
|
|
316
|
-
*
|
|
318
|
+
* URL dell'API Backend.
|
|
319
|
+
* Predefinito: "https://back.intlayer.org"
|
|
317
320
|
*/
|
|
318
321
|
backendURL: "https://back.intlayer.org",
|
|
319
322
|
|
|
320
323
|
/**
|
|
321
|
-
*
|
|
322
|
-
*
|
|
324
|
+
* Se abilitare la sincronizzazione dei contenuti in tempo reale.
|
|
325
|
+
* Predefinito: false
|
|
323
326
|
*/
|
|
324
327
|
liveSync: true,
|
|
325
328
|
},
|
|
326
329
|
|
|
327
330
|
/**
|
|
328
|
-
*
|
|
331
|
+
* Impostazioni per la traduzione e la creazione basate sull'AI.
|
|
329
332
|
*/
|
|
330
333
|
ai: {
|
|
331
334
|
/**
|
|
332
|
-
* AI
|
|
333
|
-
*
|
|
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'
|
|
335
338
|
*/
|
|
336
339
|
provider: "openai",
|
|
337
340
|
|
|
338
341
|
/**
|
|
339
|
-
*
|
|
342
|
+
* Modello del fornitore selezionato da utilizzare.
|
|
340
343
|
*/
|
|
341
344
|
model: "gpt-4o",
|
|
342
345
|
|
|
343
346
|
/**
|
|
344
|
-
*
|
|
347
|
+
* Chiave API del fornitore.
|
|
345
348
|
*/
|
|
346
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
347
350
|
|
|
348
351
|
/**
|
|
349
|
-
*
|
|
352
|
+
* Contesto globale per guidare l'AI nella creazione delle traduzioni.
|
|
350
353
|
*/
|
|
351
|
-
applicationContext:
|
|
354
|
+
applicationContext:
|
|
355
|
+
"Questa è un'applicazione per la prenotazione di viaggi.",
|
|
352
356
|
|
|
353
357
|
/**
|
|
354
|
-
*
|
|
358
|
+
* URL del percorso di base per l'API AI.
|
|
355
359
|
*/
|
|
356
360
|
baseURL: "http://localhost:3000",
|
|
357
361
|
|
|
358
362
|
/**
|
|
359
|
-
* Serializzazione dei dati
|
|
363
|
+
* Serializzazione dei dati (Data Serialization)
|
|
360
364
|
*
|
|
361
365
|
* Opzioni:
|
|
362
|
-
* - "json":
|
|
363
|
-
* - "toon":
|
|
366
|
+
* - "json": Predefinito, robusto; consuma più token.
|
|
367
|
+
* - "toon": Consuma meno token, potrebbe non essere coerente come JSON.
|
|
364
368
|
*
|
|
365
369
|
* Predefinito: "json"
|
|
366
370
|
*/
|
|
@@ -368,170 +372,170 @@ const config: IntlayerConfig = {
|
|
|
368
372
|
},
|
|
369
373
|
|
|
370
374
|
/**
|
|
371
|
-
*
|
|
375
|
+
* Impostazioni di build e ottimizzazione.
|
|
372
376
|
*/
|
|
373
377
|
build: {
|
|
374
378
|
/**
|
|
375
|
-
*
|
|
376
|
-
* - "auto":
|
|
377
|
-
* - "manual":
|
|
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"
|
|
379
383
|
*/
|
|
380
384
|
mode: "auto",
|
|
381
385
|
|
|
382
386
|
/**
|
|
383
|
-
*
|
|
384
|
-
*
|
|
387
|
+
* Se ottimizzare il bundle finale rimuovendo i dizionari inutilizzati.
|
|
388
|
+
* Predefinito: true in produzione
|
|
385
389
|
*/
|
|
386
390
|
optimize: true,
|
|
387
391
|
|
|
388
392
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
393
|
+
* Formato di output per i file del dizionario generati.
|
|
394
|
+
* Predefinito: ['cjs', 'esm']
|
|
391
395
|
*/
|
|
392
396
|
outputFormat: ["cjs", "esm"],
|
|
393
397
|
|
|
394
398
|
/**
|
|
395
|
-
*
|
|
396
|
-
*
|
|
399
|
+
* Indica se la build debba controllare i tipi TypeScript.
|
|
400
|
+
* Predefinito: false
|
|
397
401
|
*/
|
|
398
402
|
checkTypes: false,
|
|
399
403
|
},
|
|
400
404
|
|
|
401
405
|
/**
|
|
402
|
-
* Logger
|
|
406
|
+
* Configurazione del log (Logger).
|
|
403
407
|
*/
|
|
404
408
|
log: {
|
|
405
409
|
/**
|
|
406
|
-
*
|
|
407
|
-
* - "default":
|
|
408
|
-
* - "verbose":
|
|
409
|
-
* - "disabled":
|
|
410
|
-
*
|
|
410
|
+
* Livello di log.
|
|
411
|
+
* - "default": Logging standard.
|
|
412
|
+
* - "verbose": Logging di debug approfondito.
|
|
413
|
+
* - "disabled": Disabilita il logging.
|
|
414
|
+
* Predefinito: "default"
|
|
411
415
|
*/
|
|
412
416
|
mode: "default",
|
|
413
417
|
|
|
414
418
|
/**
|
|
415
|
-
*
|
|
416
|
-
*
|
|
419
|
+
* Prefisso per tutti i messaggi di log.
|
|
420
|
+
* Predefinito: "[intlayer]"
|
|
417
421
|
*/
|
|
418
422
|
prefix: "[intlayer]",
|
|
419
423
|
},
|
|
420
424
|
|
|
421
425
|
/**
|
|
422
|
-
*
|
|
426
|
+
* Configurazione di sistema (per uso avanzato)
|
|
423
427
|
*/
|
|
424
428
|
system: {
|
|
425
429
|
/**
|
|
426
|
-
* Directory
|
|
430
|
+
* Directory per memorizzare i dizionari localizzati.
|
|
427
431
|
*/
|
|
428
432
|
dictionariesDir: ".intlayer/dictionary",
|
|
429
433
|
|
|
430
434
|
/**
|
|
431
|
-
* Directory
|
|
435
|
+
* Directory per il TypeScript module augmentation.
|
|
432
436
|
*/
|
|
433
437
|
moduleAugmentationDir: ".intlayer/types",
|
|
434
438
|
|
|
435
439
|
/**
|
|
436
|
-
* Directory
|
|
440
|
+
* Directory per memorizzare i dizionari non fusi (unmerged).
|
|
437
441
|
*/
|
|
438
442
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
439
443
|
|
|
440
444
|
/**
|
|
441
|
-
* Directory
|
|
445
|
+
* Directory per memorizzare i tipi di dizionario.
|
|
442
446
|
*/
|
|
443
447
|
typesDir: ".intlayer/types",
|
|
444
448
|
|
|
445
449
|
/**
|
|
446
|
-
* Directory
|
|
450
|
+
* Directory in cui vengono memorizzati i file principali dell'applicazione.
|
|
447
451
|
*/
|
|
448
452
|
mainDir: ".intlayer/main",
|
|
449
453
|
|
|
450
454
|
/**
|
|
451
|
-
* Directory
|
|
455
|
+
* Directory in cui vengono memorizzati i file di configurazione.
|
|
452
456
|
*/
|
|
453
457
|
configDir: ".intlayer/config",
|
|
454
458
|
|
|
455
459
|
/**
|
|
456
|
-
* Directory
|
|
460
|
+
* Directory in cui vengono memorizzati i file di cache.
|
|
457
461
|
*/
|
|
458
462
|
cacheDir: ".intlayer/cache",
|
|
459
463
|
},
|
|
460
464
|
|
|
461
465
|
/**
|
|
462
|
-
*
|
|
466
|
+
* Configurazione del Compilatore (Per uso avanzato)
|
|
463
467
|
*/
|
|
464
468
|
compiler: {
|
|
465
469
|
/**
|
|
466
|
-
* Indica se il compilatore
|
|
470
|
+
* Indica se il compilatore debba essere abilitato.
|
|
467
471
|
*
|
|
468
|
-
* - false
|
|
469
|
-
* - true
|
|
470
|
-
* - "build-only"
|
|
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.
|
|
471
475
|
*
|
|
472
|
-
*
|
|
476
|
+
* Predefinito: false
|
|
473
477
|
*/
|
|
474
478
|
enabled: true,
|
|
475
479
|
|
|
476
480
|
/**
|
|
477
|
-
* Definisce il percorso
|
|
481
|
+
* Definisce il percorso per i file di output. Sostituisce `outputDir`.
|
|
478
482
|
*
|
|
479
|
-
* - I percorsi `./` sono risolti rispetto alla directory del componente.
|
|
480
|
-
* - I percorsi `/` sono risolti rispetto alla radice del progetto (`baseDir`).
|
|
483
|
+
* - I percorsi con `./` sono risolti rispetto alla directory del componente.
|
|
484
|
+
* - I percorsi con `/` sono risolti rispetto alla radice del progetto (`baseDir`).
|
|
481
485
|
*
|
|
482
|
-
* - L'
|
|
486
|
+
* - L'inclusione della variabile `{{locale}}` nel percorso attiverà la creazione di dizionari separati per lingua.
|
|
483
487
|
*
|
|
484
|
-
*
|
|
488
|
+
* Esempio:
|
|
485
489
|
* ```ts
|
|
486
490
|
* {
|
|
487
|
-
* // Crea file .content.ts multilingue
|
|
491
|
+
* // Crea file .content.ts multilingue accanto al componente
|
|
488
492
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
489
493
|
*
|
|
490
|
-
* // output: './{{fileName}}{{extension}}', // Equivalente usando una
|
|
494
|
+
* // output: './{{fileName}}{{extension}}', // Equivalente usando una template string
|
|
491
495
|
* }
|
|
492
496
|
* ```
|
|
493
497
|
*
|
|
494
498
|
* ```ts
|
|
495
499
|
* {
|
|
496
|
-
* // Crea
|
|
500
|
+
* // Crea JSON centralizzati per lingua nella radice del progetto
|
|
497
501
|
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
498
502
|
*
|
|
499
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando una
|
|
503
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando una template string
|
|
500
504
|
* }
|
|
501
505
|
* ```
|
|
502
506
|
*
|
|
503
|
-
* Elenco variabili:
|
|
504
|
-
* - `fileName`:
|
|
505
|
-
* - `key`:
|
|
506
|
-
* - `locale`:
|
|
507
|
-
* - `extension`:
|
|
508
|
-
* - `componentFileName`:
|
|
509
|
-
* - `componentExtension`:
|
|
510
|
-
* - `format`:
|
|
511
|
-
* - `componentFormat`:
|
|
512
|
-
* - `componentDirPath`:
|
|
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.
|
|
513
517
|
*/
|
|
514
518
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
515
519
|
|
|
516
520
|
/**
|
|
517
|
-
* Indica se i componenti
|
|
518
|
-
* In questo modo, il compilatore può essere eseguito una sola volta per trasformare l'
|
|
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.
|
|
519
523
|
*/
|
|
520
524
|
saveComponents: false,
|
|
521
525
|
|
|
522
526
|
/**
|
|
523
|
-
*
|
|
527
|
+
* Inserisce solo il contenuto nel file generato. Utile per l'output JSON per lingua per i18next o ICU MessageFormat.
|
|
524
528
|
*/
|
|
525
529
|
noMetadata: false,
|
|
526
530
|
|
|
527
531
|
/**
|
|
528
|
-
* Prefisso chiave dizionario
|
|
532
|
+
* Prefisso della chiave del dizionario
|
|
529
533
|
*/
|
|
530
|
-
dictionaryKeyPrefix: "", // Aggiungi un prefisso opzionale
|
|
534
|
+
dictionaryKeyPrefix: "", // Aggiungi un prefisso opzionale alle chiavi del dizionario estratte
|
|
531
535
|
},
|
|
532
536
|
|
|
533
537
|
/**
|
|
534
|
-
*
|
|
538
|
+
* Schemi personalizzati (Schemas) per validare il contenuto dei dizionari.
|
|
535
539
|
*/
|
|
536
540
|
schemas: {
|
|
537
541
|
"my-schema": z.object({
|
|
@@ -540,7 +544,7 @@ const config: IntlayerConfig = {
|
|
|
540
544
|
},
|
|
541
545
|
|
|
542
546
|
/**
|
|
543
|
-
* Plugins
|
|
547
|
+
* Configurazione dei plugin (Plugins).
|
|
544
548
|
*/
|
|
545
549
|
plugins: [],
|
|
546
550
|
};
|
|
@@ -548,249 +552,114 @@ const config: IntlayerConfig = {
|
|
|
548
552
|
export default config;
|
|
549
553
|
````
|
|
550
554
|
|
|
551
|
-
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## Riferimento della Configurazione (Configuration Reference)
|
|
552
558
|
|
|
553
|
-
Le sezioni seguenti descrivono le varie
|
|
559
|
+
Le sezioni seguenti descrivono le varie opzioni di configurazione disponibili in Intlayer.
|
|
554
560
|
|
|
555
561
|
---
|
|
556
562
|
|
|
557
|
-
### Configurazione
|
|
558
|
-
|
|
559
|
-
Definisce le impostazioni relative all'internazionalizzazione, incluse le
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
- _Esempio_: `['en', 'fr', 'es']`
|
|
568
|
-
|
|
569
|
-
- **requiredLocales**:
|
|
570
|
-
- _Tipo_: `string[]`
|
|
571
|
-
- _Predefinito_: `[]`
|
|
572
|
-
- _Descrizione_: L'elenco delle località obbligatorie nell'applicazione.
|
|
573
|
-
- _Esempio_: `[]`
|
|
574
|
-
- _Nota_: Se vuoto, tutte le localizzazioni sono richieste in modalità `strict`.
|
|
575
|
-
- _Nota_: Assicurarsi che le localizzazioni richieste siano anche definite nel campo `locales`.
|
|
576
|
-
- **strictMode**:
|
|
577
|
-
- _Tipo_: `string`
|
|
578
|
-
- _Predefinito_: `inclusive`
|
|
579
|
-
- _Descrizione_: Garantisce implementazioni rigorose dei contenuti internazionalizzati usando typescript.
|
|
580
|
-
- _Nota_: Se impostato su "strict", la funzione di traduzione `t` richiederà che ogni localizzazione dichiarata sia definita. Se manca una localizzazione, o se una localizzazione non è dichiarata nella tua configurazione, genererà un errore.
|
|
581
|
-
- _Nota_: Se impostato su "inclusive", la funzione di traduzione `t` richiederà che ogni localizzazione dichiarata sia definita. Se manca una localizzazione, genererà un avviso. Ma accetterà se una localizzazione non è dichiarata nella tua configurazione, ma esiste.
|
|
582
|
-
- _Nota_: Se impostato su "loose", la funzione di traduzione `t` accetterà qualsiasi locale esistente.
|
|
583
|
-
|
|
584
|
-
- **defaultLocale**:
|
|
585
|
-
- _Tipo_: `string`
|
|
586
|
-
- _Predefinito_: `'en'`
|
|
587
|
-
- _Descrizione_: La locale predefinita utilizzata come fallback se la locale richiesta non viene trovata.
|
|
588
|
-
- _Esempio_: `'en'`
|
|
589
|
-
- _Nota_: Viene utilizzata per determinare la locale quando nessuna è specificata nell'URL, nel cookie o nell'header.
|
|
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). |
|
|
590
573
|
|
|
591
574
|
---
|
|
592
575
|
|
|
593
|
-
### Configurazione dell'Editor
|
|
594
|
-
|
|
595
|
-
Definisce le impostazioni relative all'editor integrato,
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
- _Nota_: La sincronizzazione live necessita di esternalizzare il contenuto dell'applicazione su un altro server. Ciò significa che può influire leggermente sulle prestazioni dell'applicazione. Per limitare questo, consigliamo di ospitare l'applicazione e il server di sincronizzazione live sulla stessa macchina. Inoltre, la combinazione di sincronizzazione live e `optimize` può generare un numero considerevole di richieste al server di sincronizzazione live. A seconda della tua infrastruttura, consigliamo di testare entrambe le opzioni e la loro combinazione.
|
|
670
|
-
|
|
671
|
-
- **liveSyncPort**:
|
|
672
|
-
- _Tipo_: `number`
|
|
673
|
-
- _Predefinito_: `4000`
|
|
674
|
-
- _Descrizione_: La porta del server di sincronizzazione live.
|
|
675
|
-
- _Esempio_: `4000`
|
|
676
|
-
- _Nota_: La porta del server di sincronizzazione live.
|
|
677
|
-
|
|
678
|
-
- **liveSyncURL**:
|
|
679
|
-
- _Tipo_: `string`
|
|
680
|
-
- _Predefinito_: `'http://localhost:{liveSyncPort}'`
|
|
681
|
-
- _Descrizione_: L'URL del server di sincronizzazione live.
|
|
682
|
-
- _Esempio_: `'https://example.com'`
|
|
683
|
-
- _Nota_: Punta a localhost di default ma può essere cambiato in qualsiasi URL nel caso di un se### Configurazione del Routing
|
|
684
|
-
|
|
685
|
-
Impostazioni che controllano il comportamento del routing, inclusa la struttura dell'URL, la memorizzazione della localizzazione e il funzionamento del middleware.
|
|
686
|
-
|
|
687
|
-
#### Proprietà
|
|
688
|
-
|
|
689
|
-
- **mode**:
|
|
690
|
-
- _Tipo_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
691
|
-
- _Predefinito_: `'prefix-no-default'`
|
|
692
|
-
- _Descrizione_: Modalità di routing URL per la gestione della localizzazione.
|
|
693
|
-
- _Esempi_:
|
|
694
|
-
- `'prefix-no-default'`: `/dashboard` (it) o `/fr/dashboard` (fr)
|
|
695
|
-
- `'prefix-all'`: `/it/dashboard` (it) o `/fr/dashboard` (fr)
|
|
696
|
-
- `'no-prefix'`: `/dashboard` (localizzazione gestita con altri mezzi)
|
|
697
|
-
- `'search-params'`: `/dashboard?locale=fr`
|
|
698
|
-
- _Nota_: Questa impostazione non influisce sulla gestione dei cookie o sulla memorizzazione della localizzazione.
|
|
699
|
-
|
|
700
|
-
- **storage**:
|
|
701
|
-
- _Tipo_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
|
|
702
|
-
- _Predefinito_: `['cookie', 'header']`
|
|
703
|
-
- _Descrizione_: Configurazione per memorizzare la localizzazione sul client.
|
|
704
|
-
|
|
705
|
-
- **cookie**:
|
|
706
|
-
- _Descrizione_: Memorizza i dati nei cookie, piccoli frammenti di dati memorizzati nel browser del client, accessibili sia dal lato client che dal lato server.
|
|
707
|
-
- _Nota_: Per la memorizzazione conforme al GDPR, assicurarsi del consenso dell'utente prima dell'uso.
|
|
708
|
-
- _Nota_: I parametri dei cookie sono personalizzabili se configurati come CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
|
|
709
|
-
|
|
710
|
-
- **localStorage**:
|
|
711
|
-
- _Descrizione_: Memorizza i dati nel browser senza date di scadenza, consentendo la persistenza dei dati tra le sessioni; accessibile solo dal lato client.
|
|
712
|
-
- _Nota_: Ideale per la memorizzazione di dati a lungo termine, ma consapevole delle implicazioni in termini di privacy e sicurezza.
|
|
713
|
-
- _Nota_: Local storage è accessibile solo dal lato client; il proxy di intlayer non sarà in grado di accedervi.
|
|
714
|
-
- _Nota_: I parametri di local storage sono personalizzabili se configurati come StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
|
|
715
|
-
|
|
716
|
-
- **sessionStorage**:
|
|
717
|
-
- _Descrizione_: Memorizza i dati per la durata della sessione della pagina, il che significa che vengono cancellati alla chiusura del tab o della finestra; accessibile solo dal lato client.
|
|
718
|
-
- _Nota_: Adatto per la memorizzazione temporanea di dati per ogni sessione.
|
|
719
|
-
- _Nota_: Local storage è accessibile solo dal lato client; il proxy di intlayer non sarà in grado di accedervi.
|
|
720
|
-
- _Nota_: I parametri di local storage sono personalizzabili se configurati come StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
|
|
721
|
-
|
|
722
|
-
- **header**:
|
|
723
|
-
- _Descrizione_: Utilizza gli header HTTP per memorizzare o trasmettere dati sulla localizzazione, utile per la determinazione della lingua lato server.
|
|
724
|
-
- _Nota_: Utile nelle chiamate API per mantenere impostazioni linguistiche coerenti tra le richieste.
|
|
725
|
-
- _Nota_: L'header è accessibile solo dal lato server; il lato client non sarà in grado di accedervi.
|
|
726
|
-
- _Nota_: Il nome dell'header è personalizzabile se configurato come StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
|
|
727
|
-
|
|
728
|
-
- **basePath**:
|
|
729
|
-
- _Tipo_: `string`
|
|
730
|
-
- _Predefinito_: `''`
|
|
731
|
-
- _Descrizione_: Il percorso base per gli URL dell'applicazione.
|
|
732
|
-
- _Esempio_: `'/my-app'`
|
|
733
|
-
- _Nota_:
|
|
734
|
-
- Se l'applicazione è ospitata su `https://example.com/my-app`,
|
|
735
|
-
- il percorso base è `'/my-app'`.
|
|
736
|
-
- L'URL sarà `https://example.com/my-app/it`.
|
|
737
|
-
- Se il percorso base non è impostato, l'URL sarà `https://example.com/it`.
|
|
738
|
-
|
|
739
|
-
- **rewrite**:
|
|
740
|
-
- _Tipo_: `Record<string, StrictModeLocaleMap<string>>`
|
|
741
|
-
- _Predefinito_: `undefined`
|
|
742
|
-
- _Descrizione_: Regole personalizzate di riscrittura URL che sovrascrivono la modalità di routing predefinita per percorsi specifici. Consente di definire percorsi specifici per lingua che differiscono dal comportamento di routing standard. Supporta parametri di route dinamici utilizzando la sintassi `[param]`.
|
|
743
|
-
- _Esempio_:
|
|
744
|
-
```typescript
|
|
745
|
-
routing: {
|
|
746
|
-
mode: "prefix-no-default", // Strategia di fallback
|
|
747
|
-
rewrite: nextjsRewrite({
|
|
748
|
-
"/about": {
|
|
749
|
-
it: "/chi-siamo",
|
|
750
|
-
en: "/about",
|
|
751
|
-
fr: "/a-propos",
|
|
752
|
-
},
|
|
753
|
-
"/product/[slug]": {
|
|
754
|
-
it: "/prodotto/[slug]",
|
|
755
|
-
en: "/product/[slug]",
|
|
756
|
-
fr: "/produit/[slug]",
|
|
757
|
-
},
|
|
758
|
-
"/blog/[category]/[id]": {
|
|
759
|
-
it: "/blog/[category]/[id]",
|
|
760
|
-
en: "/blog/[category]/[id]",
|
|
761
|
-
fr: "/journal/[category]/[id]",
|
|
762
|
-
},
|
|
763
|
-
}),
|
|
764
|
-
}
|
|
765
|
-
```
|
|
766
|
-
- _Nota_: Le regole di riscrittura hanno la priorità sul comportamento del `mode` predefinito. Se un percorso corrisponde a una regola di riscrittura, verrà utilizzato il percorso localizzato dalla configurazione di riscrittura invece del prefisso lingua standard.
|
|
767
|
-
- _Nota_: I parametri di route dinamici sono supportati utilizzando la notazione tra parentesi quadre (ad esempio, `[slug]`, `[id]`). I valori dei parametri vengono estratti automaticamente dall'URL e interpolati nel percorso riscritto.
|
|
768
|
-
- _Nota_: Funziona con applicazioni Next.js e Vite. Il middleware/proxy riscriverà automaticamente le richieste in arrivo per corrispondere alla struttura di route interna.
|
|
769
|
-
- _Nota_: Quando si generano URL con `getLocalizedUrl()`, le regole di riscrittura vengono applicate automaticamente se corrispondono al percorso fornito.
|
|
770
|
-
- _Riferimento_: Per maggiori informazioni, vedi [Riscritture URL Personalizzate](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/custom_url_rewrites.md).
|
|
771
|
-
|
|
772
|
-
#### Attributi dei Cookie
|
|
773
|
-
|
|
774
|
-
Quando si utilizza la memorizzazione dei cookie, è possibile configurare attributi aggiuntivi per i cookie:
|
|
775
|
-
|
|
776
|
-
- **name**: Nome del cookie (predefinito: `'INTLAYER_LOCALE'`)
|
|
777
|
-
- **domain**: Dominio del cookie (predefinito: undefined)
|
|
778
|
-
- **path**: Percorso del cookie (predefinito: undefined)
|
|
779
|
-
- **secure**: Richiede HTTPS (predefinito: undefined)
|
|
780
|
-
- **httpOnly**: Flag HTTP-only (predefinito: undefined)
|
|
781
|
-
- **sameSite**: Politica SameSite (`'strict' | 'lax' | 'none'`)
|
|
782
|
-
- **expires**: Data di scadenza o giorni (predefinito: undefined)
|
|
783
|
-
|
|
784
|
-
#### Attributi di Memorizzazione Locale
|
|
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 | 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
|
+
|
|
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' | 'prefix-all' | 'no-prefix' | '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 | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | 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' | 'lax' | 'none'` | Politica SameSite. |
|
|
649
|
+
| `expires` | `Date | number` | Data di scadenza o numero di giorni. Predefinito: `undefined` |
|
|
650
|
+
|
|
651
|
+
#### Attributi del Locale Storage (Locale Storage Attributes)
|
|
785
652
|
|
|
786
653
|
Quando si utilizza localStorage o sessionStorage:
|
|
787
654
|
|
|
788
|
-
|
|
789
|
-
|
|
655
|
+
| Campo | Tipo | Descrizione |
|
|
656
|
+
| ------ | ---------------------------------------- | ------------------------------------------------------------- |
|
|
657
|
+
| `type` | `'localStorage' | 'sessionStorage'` | Tipo di memoria. |
|
|
658
|
+
| `name` | `string` | Nome della chiave memoriale. Predefinito: `'INTLAYER_LOCALE'` |
|
|
790
659
|
|
|
791
660
|
#### Esempi di Configurazione
|
|
792
661
|
|
|
793
|
-
Ecco alcuni esempi comuni di configurazione per la nuova struttura di routing
|
|
662
|
+
Ecco alcuni esempi comuni di configurazione per la nuova struttura di routing v7:
|
|
794
663
|
|
|
795
664
|
**Configurazione di Base (Predefinita)**:
|
|
796
665
|
|
|
@@ -799,7 +668,7 @@ import { Locales, type IntlayerConfig } from "intlayer";
|
|
|
799
668
|
// intlayer.config.ts
|
|
800
669
|
const config: IntlayerConfig = {
|
|
801
670
|
internationalization: {
|
|
802
|
-
locales: ["en", "fr", "
|
|
671
|
+
locales: ["en", "fr", "es"],
|
|
803
672
|
defaultLocale: "en",
|
|
804
673
|
},
|
|
805
674
|
routing: {
|
|
@@ -812,14 +681,14 @@ const config: IntlayerConfig = {
|
|
|
812
681
|
export default config;
|
|
813
682
|
```
|
|
814
683
|
|
|
815
|
-
**Configurazione
|
|
684
|
+
**Configurazione conforme alla GDPR**:
|
|
816
685
|
|
|
817
686
|
```typescript
|
|
818
687
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
819
688
|
// intlayer.config.ts
|
|
820
689
|
const config: IntlayerConfig = {
|
|
821
690
|
internationalization: {
|
|
822
|
-
locales: ["en", "fr", "
|
|
691
|
+
locales: ["en", "fr", "es"],
|
|
823
692
|
defaultLocale: "en",
|
|
824
693
|
},
|
|
825
694
|
routing: {
|
|
@@ -844,14 +713,14 @@ const config: IntlayerConfig = {
|
|
|
844
713
|
export default config;
|
|
845
714
|
```
|
|
846
715
|
|
|
847
|
-
**Modalità Parametri di Ricerca**:
|
|
716
|
+
**Modalità Parametri di Ricerca (Search Parameters Mode)**:
|
|
848
717
|
|
|
849
718
|
```typescript
|
|
850
719
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
851
720
|
// intlayer.config.ts
|
|
852
721
|
const config: IntlayerConfig = {
|
|
853
722
|
internationalization: {
|
|
854
|
-
locales: ["en", "fr", "
|
|
723
|
+
locales: ["en", "fr", "es"],
|
|
855
724
|
defaultLocale: "en",
|
|
856
725
|
},
|
|
857
726
|
routing: {
|
|
@@ -864,14 +733,14 @@ const config: IntlayerConfig = {
|
|
|
864
733
|
export default config;
|
|
865
734
|
```
|
|
866
735
|
|
|
867
|
-
**Modalità Senza Prefisso con
|
|
736
|
+
**Modalità Senza Prefisso (No Prefix Mode) con memoria personalizzata**:
|
|
868
737
|
|
|
869
738
|
```typescript
|
|
870
739
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
871
740
|
// intlayer.config.ts
|
|
872
741
|
const config: IntlayerConfig = {
|
|
873
742
|
internationalization: {
|
|
874
|
-
locales: ["en", "fr", "
|
|
743
|
+
locales: ["en", "fr", "es"],
|
|
875
744
|
defaultLocale: "en",
|
|
876
745
|
},
|
|
877
746
|
routing: {
|
|
@@ -887,7 +756,7 @@ const config: IntlayerConfig = {
|
|
|
887
756
|
export default config;
|
|
888
757
|
```
|
|
889
758
|
|
|
890
|
-
**
|
|
759
|
+
**Rewrite URL personalizzato con percorsi dinamici**:
|
|
891
760
|
|
|
892
761
|
```typescript
|
|
893
762
|
// intlayer.config.ts
|
|
@@ -899,7 +768,7 @@ const config: IntlayerConfig = {
|
|
|
899
768
|
defaultLocale: "en",
|
|
900
769
|
},
|
|
901
770
|
routing: {
|
|
902
|
-
mode: "prefix-no-default", // Strategia di fallback per
|
|
771
|
+
mode: "prefix-no-default", // Strategia di fallback per i percorsi non riscritti
|
|
903
772
|
storage: "cookie",
|
|
904
773
|
rewrite: nextjsRewrite({
|
|
905
774
|
"/about": {
|
|
@@ -923,379 +792,132 @@ export default config;
|
|
|
923
792
|
|
|
924
793
|
---
|
|
925
794
|
|
|
926
|
-
### Configurazione
|
|
927
|
-
|
|
928
|
-
Impostazioni relative
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
- _Esempio_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
|
|
939
|
-
- _Nota_: La configurazione di auto compilazione. Può essere:
|
|
940
|
-
- booleano: Abilita l'auto compilazione per tutte le localizzazioni
|
|
941
|
-
- stringa: Percorso a un singolo file o modello con variabili
|
|
942
|
-
- oggetto: Percorsi file per ogni localizzazione
|
|
943
|
-
|
|
944
|
-
- **watch**:
|
|
945
|
-
- _Tipo_: `boolean`
|
|
946
|
-
- _Predefinito_: `process.env.NODE_ENV === 'development'`
|
|
947
|
-
- _Descrizione_: Indica se Intlayer deve monitorare le modifiche nei file di dichiarazione del contenuto nell'app per ricostruire i dizionari correlati.
|
|
948
|
-
|
|
949
|
-
- **fileExtensions**:
|
|
950
|
-
- _Tipo_: `string[]`
|
|
951
|
-
- _Predefinito_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
952
|
-
- _Descrizione_: Estensioni dei file da cercare durante la costruzione dei dizionari.
|
|
953
|
-
- _Esempio_: `['.data.ts', '.data.js', '.data.json']`
|
|
954
|
-
- _Nota_: Personalizzare le estensioni dei file può aiutare a evitare conflitti.
|
|
955
|
-
|
|
956
|
-
- **contentDir**:
|
|
957
|
-
- _Tipo_: `string[]`
|
|
958
|
-
- _Predefinito_: `['.']`
|
|
959
|
-
- _Esempio_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
|
|
960
|
-
- _Descrizione_: Il percorso della directory dove sono memorizzati i file di definizione del contenuto (`.content.*`).
|
|
961
|
-
- _Nota_: Questo viene utilizzato per monitorare i file di contenuto per ricostruire i dizionari.
|
|
962
|
-
|
|
963
|
-
- **codeDir**:
|
|
964
|
-
- _Tipo_: `string[]`
|
|
965
|
-
- _Predefinito_: `['.']`
|
|
966
|
-
- _Esempio_: `['src', '../../ui-library']`
|
|
967
|
-
- _Descrizione_: Il percorso della directory dove è memorizzato il codice, relativo alla directory base.
|
|
968
|
-
- _Nota_: Questo viene utilizzato per monitorare i file di codice da trasformare (potare, ottimizzare). Mantenere questo separato da `contentDir` può migliorare le prestazioni di compilazione evitando scansioni non necessarie dei file di contenuto.
|
|
969
|
-
|
|
970
|
-
- **excludedPath**:
|
|
971
|
-
- _Tipo_: `string[]`
|
|
972
|
-
- _Predefinito_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
|
|
973
|
-
- _Descrizione_: Directory escluse dalla ricerca dei contenuti.
|
|
974
|
-
- _Nota_: Questa impostazione non è ancora utilizzata, ma è prevista per implementazioni future.
|
|
975
|
-
|
|
976
|
-
- **formatCommand**:
|
|
977
|
-
- _Tipo_: `string`
|
|
978
|
-
- _Predefinito_: `undefined`
|
|
979
|
-
- _Descrizione_: Il comando per formattare il contenuto. Quando Intlayer scrive i tuoi file .content localmente, questo comando verrà utilizzato per formattare il contenuto.
|
|
980
|
-
- _Esempio_: `'npx prettier --write "{{file}}" --log-level silent'` Utilizzando Prettier
|
|
981
|
-
- _Esempio_: `'npx biome format "{{file}}" --write --log-level none'` Utilizzando Biome
|
|
982
|
-
- _Esempio_: `'npx eslint --fix "{{file}}" --quiet'` Utilizzando ESLint
|
|
983
|
-
- _Nota_: Intlayer sostituirà {{file}} con il percorso del file da formattare.
|
|
984
|
-
- _Nota_: Se non impostato, Intlayer cercherà di rilevare automaticamente il comando di formattazione. Tentando di risolvere i seguenti comandi: prettier, biome, eslint.
|
|
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. |
|
|
985
807
|
|
|
986
808
|
---
|
|
987
809
|
|
|
988
|
-
### Configurazione del
|
|
989
|
-
|
|
990
|
-
Impostazioni
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
- **typesDir**:
|
|
1019
|
-
- _Tipo_: `string`
|
|
1020
|
-
- _Predefinito_: `'.intlayer/types'`
|
|
1021
|
-
- _Descrizione_: La directory per memorizzare i tipi di dizionario.
|
|
1022
|
-
|
|
1023
|
-
- **mainDir**:
|
|
1024
|
-
- _Tipo_: `string`
|
|
1025
|
-
- _Predefinito_: `'.intlayer/main'`
|
|
1026
|
-
- _Descrizione_: La directory dove sono memorizzati i file principali dell'applicazione.
|
|
1027
|
-
|
|
1028
|
-
- **configDir**:
|
|
1029
|
-
- _Tipo_: `string`
|
|
1030
|
-
- _Predefinito_: `'.intlayer/config'`
|
|
1031
|
-
- _Descrizione_: La directory dove sono memorizzati i file di configurazione.
|
|
1032
|
-
|
|
1033
|
-
- **cacheDir**:
|
|
1034
|
-
- _Tipo_: `string`
|
|
1035
|
-
- _Predefinito_: `'.intlayer/cache'`
|
|
1036
|
-
- _Descrizione_: La directory dove sono memorizzati i file di cache.
|
|
1037
|
-
|
|
1038
|
-
### Configurazione del dizionario
|
|
1039
|
-
|
|
1040
|
-
Impostazioni che controllano le operazioni del dizionario, incluso il comportamento di auto-riempimento e la generazione di contenuti.
|
|
1041
|
-
|
|
1042
|
-
Questa configurazione del dizionario serve a due scopi principali:
|
|
1043
|
-
|
|
1044
|
-
1. **Valori predefiniti**: Definisce valori predefiniti durante la creazione di file di dichiarazione del contenuto
|
|
1045
|
-
2. **Comportamento di fallback**: Fornisce valori di fallback quando campi specifici non sono definiti, consentendoti di definire il comportamento delle operazioni del dizionario globalmente
|
|
1046
|
-
|
|
1047
|
-
Per ulteriori informazioni sui file di dichiarazione del contenuto e su come vengono applicati i valori di configurazione, consulta la [Documentazione del file di contenuto](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/content_file.md).
|
|
1048
|
-
|
|
1049
|
-
#### Proprietà
|
|
1050
|
-
|
|
1051
|
-
- **fill**
|
|
1052
|
-
- **description**
|
|
1053
|
-
- **locale**
|
|
1054
|
-
- **location**
|
|
1055
|
-
- **importMode**:
|
|
1056
|
-
- _Nota_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
1057
|
-
- _Tipo_: `'static' | 'dynamic' | 'fetch'`
|
|
1058
|
-
- _Predefinito_: `'static'`
|
|
1059
|
-
- _Descrizione_: Controls how dictionaries are imported.
|
|
1060
|
-
- _Esempio_: `'dynamic'`
|
|
1061
|
-
- **priority**
|
|
1062
|
-
- **live**
|
|
1063
|
-
- **schema**
|
|
1064
|
-
- **title**
|
|
1065
|
-
- **tags**
|
|
1066
|
-
- **version**
|
|
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 | FilePathPattern | Partial<Record<Locale, boolean | 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' | 'dynamic' | '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' | 'remote' | 'hybrid' | 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
|
+
```
|
|
1067
839
|
|
|
1068
840
|
---
|
|
1069
841
|
|
|
1070
|
-
### Configurazione
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
- _Nota_: La modalità del logger. La modalità verbose registra più informazioni, ma può essere usata per scopi di debug. La modalità disabled disabilita il logger.
|
|
1083
|
-
|
|
1084
|
-
- **prefix**:
|
|
1085
|
-
- _Tipo_: `string`
|
|
1086
|
-
- _Predefinito_: `'[intlayer] '`
|
|
1087
|
-
- _Descrizione_: Il prefisso del logger.
|
|
1088
|
-
- _Esempio_: `'[my custom prefix] '`
|
|
1089
|
-
- _Nota_: Il prefisso del logger.
|
|
1090
|
-
|
|
1091
|
-
### Configurazione AI
|
|
1092
|
-
|
|
1093
|
-
Impostazioni che controllano le funzionalità AI di Intlayer, inclusi provider, modello e chiave API.
|
|
1094
|
-
|
|
1095
|
-
Questa configurazione è opzionale se sei registrato sul [Cruscotto Intlayer](https://app.intlayer.org/project) utilizzando una chiave di accesso. Intlayer gestirà automaticamente la soluzione AI più efficiente e conveniente per le tue esigenze. Utilizzare le opzioni predefinite garantisce una migliore manutenzione a lungo termine poiché Intlayer aggiorna continuamente per utilizzare i modelli più rilevanti.
|
|
1096
|
-
|
|
1097
|
-
Se preferisci utilizzare la tua chiave API o un modello specifico, puoi definire la tua configurazione AI personalizzata.
|
|
1098
|
-
Questa configurazione AI sarà utilizzata globalmente in tutto il tuo ambiente Intlayer. I comandi CLI utilizzeranno queste impostazioni come valori predefiniti per i comandi (ad esempio `fill`), così come l’SDK, l’Editor Visivo e il CMS. Puoi sovrascrivere questi valori predefiniti per casi d’uso specifici utilizzando i parametri dei comandi.
|
|
1099
|
-
|
|
1100
|
-
Intlayer supporta più provider AI per una maggiore flessibilità e scelta. I provider attualmente supportati sono:
|
|
1101
|
-
|
|
1102
|
-
- **OpenAI** (predefinito)
|
|
1103
|
-
- **Anthropic Claude**
|
|
1104
|
-
- **Mistral AI**
|
|
1105
|
-
- **DeepSeek**
|
|
1106
|
-
- **Google Gemini**
|
|
1107
|
-
- **Meta Llama**
|
|
1108
|
-
- **Ollama**
|
|
1109
|
-
- **OpenRouter**
|
|
1110
|
-
- **Alibaba Cloud**
|
|
1111
|
-
- **Fireworks**
|
|
1112
|
-
- **Hugging Face**
|
|
1113
|
-
- **Groq**
|
|
1114
|
-
- **Amazon Bedroc- provider** :
|
|
1115
|
-
- _Tipo_ : `string`
|
|
1116
|
-
- _Predefinito_ : `'openai'`
|
|
1117
|
-
- _Descrizione_ : Il provider da utilizzare per le funzionalità AI di Intlayer.
|
|
1118
|
-
- _Opzioni_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1119
|
-
- _Esempio_ : `'anthropic'`
|
|
1120
|
-
- _Nota_: Diversi provider potrebbero richiedere chiavi API differenti e avere modelli di prezzo diversi.
|
|
1121
|
-
|
|
1122
|
-
- **model** :
|
|
1123
|
-
- _Tipo_ : `string`
|
|
1124
|
-
- _Predefinito_ : Nessuno
|
|
1125
|
-
- _Descrizione_ : Il modello da utilizzare per le funzionalità AI di Intlayer.
|
|
1126
|
-
- _Esempio_ : `'gpt-4o-2024-11-20'`
|
|
1127
|
-
- _Nota_ : Il modello specifico da utilizzare varia a seconda del provider.
|
|
1128
|
-
|
|
1129
|
-
- **temperature** :
|
|
1130
|
-
- _Tipo_ : `number`
|
|
1131
|
-
- _Predefinito_ : Nessuno
|
|
1132
|
-
- _Descrizione_ : La temperatura controlla la casualità delle risposte dell'AI.
|
|
1133
|
-
- _Esempio_ : `0.1`
|
|
1134
|
-
- _Nota_ : Una temperatura più alta rende l'AI più creativa e meno prevedibile.
|
|
1135
|
-
|
|
1136
|
-
- **apiKey** :
|
|
1137
|
-
- _Tipo_ : `string`
|
|
1138
|
-
- _Predefinito_ : Nessuno
|
|
1139
|
-
- _Descrizione_ : La tua chiave API per il provider selezionato.
|
|
1140
|
-
- _Esempio_ : `process.env.OPENAI_API_KEY`
|
|
1141
|
-
- _Nota_ : Importante: le chiavi API devono essere mantenute segrete e non condivise pubblicamente. Assicurati di conservarle in un luogo sicuro, come le variabili d'ambiente.
|
|
1142
|
-
|
|
1143
|
-
- **applicationContext** :
|
|
1144
|
-
- _Tipo_ : `string`
|
|
1145
|
-
- _Predefinito_ : Nessuno
|
|
1146
|
-
- _Descrizione_ : Fornisce un contesto aggiuntivo sulla tua applicazione al modello AI, aiutandolo a generare traduzioni più accurate e contestualmente appropriate. Questo può includere informazioni sul dominio della tua app, il pubblico target, il tono o terminologia specifica.
|
|
1147
|
-
- _Nota_: Puoi usare questo per aggiungere altre regole al modello AI (ad esempio "non trasformare gli URL").
|
|
1148
|
-
- _Esempio_ : `'Il contesto della mia applicazione'`
|
|
1149
|
-
|
|
1150
|
-
- **baseURL** :
|
|
1151
|
-
- _Tipo_ : `string`
|
|
1152
|
-
- _Predefinito_ : Nessuno
|
|
1153
|
-
- _Descrizione_ : L'URL di base per l'API AI.
|
|
1154
|
-
- _Esempio_ : `'https://api.openai.com/v1'`
|
|
1155
|
-
- _Esempio_ : `'http://localhost:5000'`
|
|
1156
|
-
- _Nota_ : Può essere utilizzato per puntare a un endpoint API AI locale o personalizzato.
|
|
1157
|
-
|
|
1158
|
-
- **dataSerialization**:
|
|
1159
|
-
- _Tipo_: `'json' | 'toon'`
|
|
1160
|
-
- _Predefinito_: `'json'`
|
|
1161
|
-
- _Descrizione_: Il formato di serializzazione dei dati da utilizzare per le funzionalità AI di Intlayer.
|
|
1162
|
-
- _Esempio_: `'toon'`
|
|
1163
|
-
- _Nota_: `json`: Standard, affidabile; utilizza più token. `toon`: Meno token, meno coerente del JSON.
|
|
1164
|
-
> Se fornisci parametri aggiuntivi, Intlayer li passerà al modello AI come contesto. Questo può essere utilizzato per regolare lo sforzo di ragionamento, la verbosità del testo, ecc.
|
|
1165
|
-
|
|
1166
|
-
### Configurazione della Build
|
|
1167
|
-
|
|
1168
|
-
Impostazioni che controllano come Intlayer ottimizza e costruisce l'internazionalizzazione della tua applicazione.
|
|
1169
|
-
|
|
1170
|
-
Le opzioni di build si applicano ai plugin `@intlayer/babel` e `@intlayer/swc`.
|
|
1171
|
-
|
|
1172
|
-
> In modalità di sviluppo, Intlayer utilizza importazioni statiche per i dizionari per semplificare l'esperienza di sviluppo.
|
|
1173
|
-
|
|
1174
|
-
> Quando ottimizzato, Intlayer sostituirà le chiamate ai dizionari per ottimizzare il chunking, in modo che il bundle finale importi solo i dizionari effettivamente utilizzati.
|
|
1175
|
-
|
|
1176
|
-
#### Proprietà
|
|
1177
|
-
|
|
1178
|
-
- **mode** :
|
|
1179
|
-
- _Tipo_ : `'auto' | 'manual'`
|
|
1180
|
-
- _Predefinito_ : `'auto'`
|
|
1181
|
-
- _Descrizione_ : Controlla la modalità della build.
|
|
1182
|
-
- _Esempio_ : `'manual'`
|
|
1183
|
-
- _Nota_ : Se 'auto', la build sarà abilitata automaticamente durante la build dell'app.
|
|
1184
|
-
- _Nota_ : Se 'manual', la build verrà attivata solo quando viene eseguito il comando di build.
|
|
1185
|
-
- _Nota_ : Può essere utilizzato per disabilitare la build dei dizionari, ad esempio quando si vuole evitare l'esecuzione in un ambiente Node.js.
|
|
1186
|
-
|
|
1187
|
-
- **optimize** :
|
|
1188
|
-
- _Tipo_ : `boolean`
|
|
1189
|
-
- _Predefinito_ : `undefined`
|
|
1190
|
-
- _Descrizione_ : Controlla se la build deve essere ottimizzata.
|
|
1191
|
-
- _Esempio_ : `process.env.NODE_ENV === 'production'`
|
|
1192
|
-
- _Nota_ : Per impostazione predefinita, l'ottimizzazione della build è indefinita. Se non definita, Intlayer abiliterà l'ottimizzazione della build durante il build della tua applicazione (vite / nextjs / etc). L'impostazione su `true` forzerà l'ottimizzazione della build, anche in modalità di sviluppo. L'impostazione su `false` disabiliterà l'ottimizzazione della build.
|
|
1193
|
-
- _Nota_ : Quando abilitato, Intlayer sostituirà tutte le chiamate ai dizionari per ottimizzare il chunking. In questo modo il bundle finale importerà solo i dizionari utilizzati. Tutte le importazioni rimarranno come importazioni statiche per evitare l'elaborazione asincrona durante il caricamento dei dizionari.
|
|
1194
|
-
- _Nota_ : Intlayer sostituirà tutte le chiamate di `useIntlayer` con la modalità definita dall'opzione `importMode` e `getIntlayer` con `getDictionary`.
|
|
1195
|
-
- _Nota_ : Questa opzione si basa sui plugin `@intlayer/babel` e `@intlayer/swc`.
|
|
1196
|
-
- _Nota_ : Assicurarsi che tutte le chiavi siano dichiarate staticamente nelle chiamate a `useIntlayer`. Ad esempio `useIntlayer('navbar')`.
|
|
1197
|
-
|
|
1198
|
-
- **checkTypes** :
|
|
1199
|
-
- _Tipo_ : `boolean`
|
|
1200
|
-
- _Predefinito_ : `false`
|
|
1201
|
-
- _Descrizione_ : Indica se la build deve controllare i tipi TypeScript e registrare gli errori.
|
|
1202
|
-
- _Nota_ : Questo può rallentare la build.
|
|
1203
|
-
|
|
1204
|
-
- **outputFormat** :
|
|
1205
|
-
- _Tipo_ : `('esm' | 'cjs')[]`
|
|
1206
|
-
- _Predefinito_ : `['cjs', 'esm']`
|
|
1207
|
-
- _Descrizione_ : Controlla il formato di output dei dizionari generati.
|
|
1208
|
-
- _Esempio_ : `'cjs'`
|
|
1209
|
-
- _Nota_ : Il formato di output dei dizionari.
|
|
1210
|
-
|
|
1211
|
-
- **traversePattern** :
|
|
1212
|
-
- _Tipo_ : `string[]`
|
|
1213
|
-
- _Predefinito_ : `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1214
|
-
- _Descrizione_ : Pattern che definiscono quali file devono essere attraversati durante l'ottimizzazione.
|
|
1215
|
-
- _Esempio_ : `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1216
|
-
- _Nota_ : Usare questo per limitare l'ottimizzazione ai file di codice rilevanti e migliorare le prestazioni di build.
|
|
1217
|
-
- _Nota_ : Questa opzione sarà ignorata se `optimize` è disabilitato.
|
|
1218
|
-
- _Nota_ : Usare pattern glob.
|
|
1219
|
-
|
|
1220
|
-
---restazioni di build.
|
|
1221
|
-
|
|
1222
|
-
- _Nota_: Questa opzione sarà ignorata se `optimize` è disabilitato.
|
|
1223
|
-
- _Nota_: Usare pattern glob.
|
|
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' | '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. |
|
|
1224
854
|
|
|
1225
855
|
---
|
|
1226
856
|
|
|
1227
|
-
### Configurazione
|
|
1228
|
-
|
|
1229
|
-
Impostazioni
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
```json
|
|
1295
|
-
{
|
|
1296
|
-
"key": "value",
|
|
1297
|
-
"content": {
|
|
1298
|
-
"key": "value"
|
|
1299
|
-
}
|
|
1300
|
-
}
|
|
1301
|
-
```
|
|
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' | '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` | | |
|
|
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 | 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' | 'verbose' | '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. |
|