@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.
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/docs/en/configuration.md +115 -137
- package/docs/es/configuration.md +14 -6
- package/docs/fr/configuration.md +14 -6
- package/package.json +6 -6
- package/docs/ar/configuration.md +0 -922
- package/docs/bn/configuration.md +0 -922
- package/docs/de/configuration.md +0 -922
- package/docs/en-GB/configuration.md +0 -922
- package/docs/hi/configuration.md +0 -922
- package/docs/id/configuration.md +0 -922
- package/docs/it/configuration.md +0 -923
- package/docs/ja/configuration.md +0 -922
- package/docs/ko/configuration.md +0 -922
- package/docs/pl/configuration.md +0 -922
- package/docs/pt/configuration.md +0 -922
- package/docs/ru/configuration.md +0 -943
- package/docs/tr/configuration.md +0 -922
- package/docs/uk/configuration.md +0 -922
- package/docs/ur/configuration.md +0 -922
- package/docs/vi/configuration.md +0 -922
- package/docs/zh/configuration.md +0 -922
package/docs/it/configuration.md
DELETED
|
@@ -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 | 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)
|
|
652
|
-
|
|
653
|
-
Quando si utilizza localStorage o sessionStorage:
|
|
654
|
-
|
|
655
|
-
| Campo | Tipo | Descrizione |
|
|
656
|
-
| ------ | ---------------------------------------- | ------------------------------------------------------------- |
|
|
657
|
-
| `type` | `'localStorage' | '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 | 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
|
-
```
|
|
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' | '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' | '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. |
|