@intlayer/docs 8.4.5 → 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/dist/cjs/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/intlayer_with_storybook.md +521 -0
- package/docs/bn/intlayer_with_hono.md +428 -0
- package/docs/de/intlayer_with_storybook.md +521 -0
- package/docs/en/configuration.md +160 -508
- package/docs/en/intlayer_with_storybook.md +521 -0
- package/docs/en-GB/intlayer_with_storybook.md +521 -0
- package/docs/es/configuration.md +387 -754
- package/docs/es/intlayer_with_storybook.md +521 -0
- package/docs/fr/configuration.md +384 -757
- package/docs/fr/intlayer_with_storybook.md +521 -0
- package/docs/hi/intlayer_with_storybook.md +521 -0
- package/docs/id/intlayer_with_storybook.md +521 -0
- package/docs/it/intlayer_with_storybook.md +521 -0
- package/docs/ja/intlayer_with_storybook.md +521 -0
- package/docs/ko/intlayer_with_storybook.md +521 -0
- package/docs/pl/intlayer_with_storybook.md +521 -0
- package/docs/pt/intlayer_with_storybook.md +521 -0
- package/docs/ru/intlayer_with_storybook.md +521 -0
- package/docs/tr/intlayer_with_storybook.md +521 -0
- package/docs/uk/intlayer_with_storybook.md +521 -0
- package/docs/ur/intlayer_with_hono.md +428 -0
- package/docs/vi/intlayer_with_storybook.md +521 -0
- package/docs/zh/intlayer_with_storybook.md +521 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
- package/docs/ar/configuration.md +0 -1124
- package/docs/de/configuration.md +0 -1296
- package/docs/en-GB/configuration.md +0 -1123
- package/docs/hi/configuration.md +0 -1118
- package/docs/id/configuration.md +0 -1235
- package/docs/it/configuration.md +0 -1301
- package/docs/ja/configuration.md +0 -1121
- package/docs/ko/configuration.md +0 -1121
- package/docs/pl/configuration.md +0 -1226
- package/docs/pt/configuration.md +0 -1293
- package/docs/ru/configuration.md +0 -1112
- package/docs/tr/configuration.md +0 -1114
- package/docs/uk/configuration.md +0 -1241
- package/docs/vi/configuration.md +0 -1263
- package/docs/zh/configuration.md +0 -1115
package/docs/it/configuration.md
DELETED
|
@@ -1,1301 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-12
|
|
4
|
-
title: Configurazione
|
|
5
|
-
description: Scopri come configurare Intlayer per la tua applicazione. Comprendi le varie impostazioni e opzioni disponibili per personalizzare Intlayer secondo le 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.3.0
|
|
18
|
-
date: 2026-03-11
|
|
19
|
-
changes: Sposta 'baseDir' dalla configurazione 'content' alla configurazione 'system'
|
|
20
|
-
- version: 8.2.0
|
|
21
|
-
date: 2026-03-09
|
|
22
|
-
changes: Aggiorna le opzioni del compilatore, aggiungi il supporto per 'output' e 'noMetadata'
|
|
23
|
-
- version: 8.1.7
|
|
24
|
-
date: 2026-02-25
|
|
25
|
-
changes: Aggiorna le opzioni del compilatore
|
|
26
|
-
- version: 8.1.5
|
|
27
|
-
date: 2026-02-23
|
|
28
|
-
changes: Aggiunta opzione del compilatore 'build-only' e prefisso del dizionario
|
|
29
|
-
- version: 8.0.6
|
|
30
|
-
date: 2026-02-12
|
|
31
|
-
changes: Aggiungi il supporto per i fornitori Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
32
|
-
- version: 8.0.5
|
|
33
|
-
date: 2026-02-06
|
|
34
|
-
changes: Aggiungi `dataSerialization` alla configurazione AI
|
|
35
|
-
- version: 8.0.0
|
|
36
|
-
date: 2026-01-24
|
|
37
|
-
changes: Rinomina la modalità di importazione `live` in `fetch` per descrivere meglio il meccanismo sottostante.
|
|
38
|
-
- version: 8.0.0
|
|
39
|
-
date: 2026-01-22
|
|
40
|
-
changes: Sposta la configurazione di build per `importMode` nella configurazione del dizionario.
|
|
41
|
-
- version: 8.0.0
|
|
42
|
-
date: 2026-01-22
|
|
43
|
-
changes: Aggiunta l'opzione `rewrite` alla configurazione del routing
|
|
44
|
-
- version: 8.0.0
|
|
45
|
-
date: 2026-01-18
|
|
46
|
-
changes: Separare la configurazione del sistema dalla configurazione del contenuto. Spostare i percorsi interni alla proprietà `system`. Aggiungere `codeDir` per separare i file di contenuto dalla trasformazione del codice.
|
|
47
|
-
- version: 8.0.0
|
|
48
|
-
date: 2026-01-18
|
|
49
|
-
changes: Aggiunte opzioni dizionario `location` e `schema`
|
|
50
|
-
- version: 7.5.1
|
|
51
|
-
date: 2026-01-10
|
|
52
|
-
changes: Aggiunto supporto per i formati di file JSON5 e JSONC
|
|
53
|
-
- version: 7.5.0
|
|
54
|
-
date: 2025-12-17
|
|
55
|
-
changes: Aggiunta opzione `buildMode`
|
|
56
|
-
- version: 7.0.0
|
|
57
|
-
date: 2025-10-25
|
|
58
|
-
changes: Aggiunta configurazione `dictionary`
|
|
59
|
-
- version: 7.0.0
|
|
60
|
-
date: 2025-10-21
|
|
61
|
-
changes: Sostituito il `middleware` con la configurazione `routing`
|
|
62
|
-
- version: 7.0.0
|
|
63
|
-
date: 2025-10-12
|
|
64
|
-
changes: Aggiunta l'opzione `formatCommand`
|
|
65
|
-
- version: 6.2.0
|
|
66
|
-
date: 2025-10-12
|
|
67
|
-
changes: Aggiornata l'opzione `excludedPath`
|
|
68
|
-
- version: 6.0.2
|
|
69
|
-
date: 2025-09-23
|
|
70
|
-
changes: Aggiunta l'opzione `outputFormat`
|
|
71
|
-
- version: 6.0.0
|
|
72
|
-
date: 2025-09-21
|
|
73
|
-
changes: Rimosso il campo `dictionaryOutput` e il campo `i18nextResourcesDir`
|
|
74
|
-
- version: 6.0.0
|
|
75
|
-
date: 2025-09-16
|
|
76
|
-
changes: Aggiunta modalità di importazione `live`
|
|
77
|
-
- version: 6.0.0
|
|
78
|
-
date: 2025-09-04
|
|
79
|
-
changes: Sostituito il campo `hotReload` con `liveSync` e aggiunti i campi `liveSyncPort` e `liveSyncURL`
|
|
80
|
-
- version: 5.6.1
|
|
81
|
-
date: 2025-07-25
|
|
82
|
-
changes: Sostituito `activateDynamicImport` con l'opzione `importMode`
|
|
83
|
-
- version: 5.6.0
|
|
84
|
-
date: 2025-07-13
|
|
85
|
-
changes: Modificata la directory di contenuto predefinita da `['src']` a `['.']`
|
|
86
|
-
- version: 5.5.11
|
|
87
|
-
date: 2025-06-29
|
|
88
|
-
changes: Aggiunti i comandi `docs`
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
# Documentazione di Configurazione di Intlayer
|
|
92
|
-
|
|
93
|
-
## Panoramica
|
|
94
|
-
|
|
95
|
-
I file di configurazione di Intlayer permettono la personalizzazione di vari aspetti del plugin, come l'internazionalizzazione, il middleware e la gestione dei contenuti. Questo documento fornisce una descrizione dettagliata di ogni proprietà nella configurazione.
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Indice
|
|
100
|
-
|
|
101
|
-
<TOC/>
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Formati di File di Configurazione Supportati
|
|
106
|
-
|
|
107
|
-
Intlayer accetta formati di file di configurazione JSON, JS, MJS e TS:
|
|
108
|
-
|
|
109
|
-
- `intlayer.config.ts`
|
|
110
|
-
- `intlayer.config.js`
|
|
111
|
-
- `intlayer.config.json`
|
|
112
|
-
- `intlayer.config.json5`
|
|
113
|
-
- `intlayer.config.jsonc`
|
|
114
|
-
- `intlayer.config.cjs`
|
|
115
|
-
- `intlayer.config.mjs`
|
|
116
|
-
- `.intlayerrc`
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Esempio di file di configurazione
|
|
121
|
-
|
|
122
|
-
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
123
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
124
|
-
import { nextjsRewrite } from "intlayer/routing";
|
|
125
|
-
import { z } from "zod";
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Example Intlayer configuration file showing all available options.
|
|
129
|
-
*/
|
|
130
|
-
const config: IntlayerConfig = {
|
|
131
|
-
/**
|
|
132
|
-
* Configuration for internationalization settings.
|
|
133
|
-
*/
|
|
134
|
-
internationalization: {
|
|
135
|
-
/**
|
|
136
|
-
* List of supported locales in the application.
|
|
137
|
-
* Default: [Locales.ENGLISH]
|
|
138
|
-
*/
|
|
139
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* List of required locales that must be defined in every dictionary.
|
|
143
|
-
* If empty, all locales are required in `strict` mode.
|
|
144
|
-
* Default: []
|
|
145
|
-
*/
|
|
146
|
-
requiredLocales: [Locales.ENGLISH],
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Strictness level for internationalized content.
|
|
150
|
-
* - "strict": Errors if any declared locale is missing or undeclared.
|
|
151
|
-
* - "inclusive": Warnings if a declared locale is missing.
|
|
152
|
-
* - "loose": Accepts any existing locale.
|
|
153
|
-
* Default: "inclusive"
|
|
154
|
-
*/
|
|
155
|
-
strictMode: "inclusive",
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Default locale used as a fallback if the requested locale is not found.
|
|
159
|
-
* Default: Locales.ENGLISH
|
|
160
|
-
*/
|
|
161
|
-
defaultLocale: Locales.ENGLISH,
|
|
162
|
-
},
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Settings that control dictionary operations and fallback behavior.
|
|
166
|
-
*/
|
|
167
|
-
dictionary: {
|
|
168
|
-
/**
|
|
169
|
-
* Controls how dictionaries are imported.
|
|
170
|
-
* - "static": Statically imported at build time.
|
|
171
|
-
* - "dynamic": Dynamically imported using Suspense.
|
|
172
|
-
* - "fetch": Fetched dynamically via the live sync API.
|
|
173
|
-
* Default: "static"
|
|
174
|
-
*/
|
|
175
|
-
importMode: "static",
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Strategy for auto-filling missing translations using AI.
|
|
179
|
-
* Can be a boolean or a path pattern to store filled content.
|
|
180
|
-
* Default: true
|
|
181
|
-
*/
|
|
182
|
-
fill: true,
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Physical location of the dictionary files.
|
|
186
|
-
* - "local": Stored in the local filesystem.
|
|
187
|
-
* - "remote": Stored in the Intlayer CMS.
|
|
188
|
-
* - "hybrid": Stored in the local filesystem and the Intlayer CMS.
|
|
189
|
-
* - "plugin" (or any custom string): Provided by a plugin or a custom source.
|
|
190
|
-
* Default: "local"
|
|
191
|
-
*/
|
|
192
|
-
location: "local",
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Whether to automatically transform content (e.g., Markdown to HTML).
|
|
196
|
-
* Default: false
|
|
197
|
-
*/
|
|
198
|
-
contentAutoTransformation: false,
|
|
199
|
-
},
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Routing and middleware configuration.
|
|
203
|
-
*/
|
|
204
|
-
routing: {
|
|
205
|
-
/**
|
|
206
|
-
* Locale routing strategy.
|
|
207
|
-
* - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
|
|
208
|
-
* - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
|
|
209
|
-
* - "no-prefix": No locale in the URL.
|
|
210
|
-
* - "search-params": Use ?locale=...
|
|
211
|
-
* Default: "prefix-no-default"
|
|
212
|
-
*/
|
|
213
|
-
mode: "prefix-no-default",
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Where to store the user's selected locale.
|
|
217
|
-
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
218
|
-
* Default: ['cookie', 'header']
|
|
219
|
-
*/
|
|
220
|
-
storage: ["cookie", "header"],
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Base path for the application URLs.
|
|
224
|
-
* Default: ""
|
|
225
|
-
*/
|
|
226
|
-
basePath: "",
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Custom URL rewriting rules for locale-specific paths.
|
|
230
|
-
*/
|
|
231
|
-
rewrite: nextjsRewrite({
|
|
232
|
-
"/[locale]/about": {
|
|
233
|
-
en: "/[locale]/about",
|
|
234
|
-
fr: "/[locale]/a-propos",
|
|
235
|
-
},
|
|
236
|
-
}),
|
|
237
|
-
},
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Settings for finding and processing content files.
|
|
241
|
-
*/
|
|
242
|
-
content: {
|
|
243
|
-
/**
|
|
244
|
-
* File extensions to scan for dictionaries.
|
|
245
|
-
* Default: ['.content.ts', '.content.js', '.content.json', etc.]
|
|
246
|
-
*/
|
|
247
|
-
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Directories where .content files are located.
|
|
251
|
-
* Default: ["."]
|
|
252
|
-
*/
|
|
253
|
-
contentDir: ["src"],
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Directories where source code is located.
|
|
257
|
-
* Used for build optimization and code transformation.
|
|
258
|
-
* Default: ["."]
|
|
259
|
-
*/
|
|
260
|
-
codeDir: ["src"],
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Patterns to exclude from scanning.
|
|
264
|
-
* Default: ['node_modules', '.intlayer', etc.]
|
|
265
|
-
*/
|
|
266
|
-
excludedPath: ["node_modules"],
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Whether to watch for changes and rebuild dictionaries in development.
|
|
270
|
-
* Default: true in development
|
|
271
|
-
*/
|
|
272
|
-
watch: true,
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Command to format newly created / updated .content files.
|
|
276
|
-
*/
|
|
277
|
-
formatCommand: 'npx prettier --write "{{file}}"',
|
|
278
|
-
},
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* Visual Editor configuration.
|
|
282
|
-
*/
|
|
283
|
-
editor: {
|
|
284
|
-
/**
|
|
285
|
-
* Whether the visual editor is enabled.
|
|
286
|
-
* Default: false
|
|
287
|
-
*/
|
|
288
|
-
enabled: true,
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* URL of your application for origin validation.
|
|
292
|
-
* Default: ""
|
|
293
|
-
*/
|
|
294
|
-
applicationURL: "http://localhost:3000",
|
|
295
|
-
|
|
296
|
-
/**
|
|
297
|
-
* Port for the local editor server.
|
|
298
|
-
* Default: 8000
|
|
299
|
-
*/
|
|
300
|
-
port: 8000,
|
|
301
|
-
|
|
302
|
-
/**
|
|
303
|
-
* Public URL for the editor.
|
|
304
|
-
* Default: "http://localhost:8000"
|
|
305
|
-
*/
|
|
306
|
-
editorURL: "http://localhost:8000",
|
|
307
|
-
|
|
308
|
-
/**
|
|
309
|
-
* Intlayer CMS URL.
|
|
310
|
-
* Default: "https://app.intlayer.org"
|
|
311
|
-
*/
|
|
312
|
-
cmsURL: "https://app.intlayer.org",
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* Backend API URL.
|
|
316
|
-
* Default: "https://back.intlayer.org"
|
|
317
|
-
*/
|
|
318
|
-
backendURL: "https://back.intlayer.org",
|
|
319
|
-
|
|
320
|
-
/**
|
|
321
|
-
* Whether to enable real-time content synchronization.
|
|
322
|
-
* Default: false
|
|
323
|
-
*/
|
|
324
|
-
liveSync: true,
|
|
325
|
-
},
|
|
326
|
-
|
|
327
|
-
/**
|
|
328
|
-
* AI-powered translation and generation settings.
|
|
329
|
-
*/
|
|
330
|
-
ai: {
|
|
331
|
-
/**
|
|
332
|
-
* AI provider to use.
|
|
333
|
-
* Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
334
|
-
* Default: 'openai'
|
|
335
|
-
*/
|
|
336
|
-
provider: "openai",
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Model to use from the selected provider.
|
|
340
|
-
*/
|
|
341
|
-
model: "gpt-4o",
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* Provider API key.
|
|
345
|
-
*/
|
|
346
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* Global context to guide the AI in generating translations.
|
|
350
|
-
*/
|
|
351
|
-
applicationContext: "Questa è un'applicazione di prenotazione viaggi.",
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* Base URL for the AI API.
|
|
355
|
-
*/
|
|
356
|
-
baseURL: "http://localhost:3000",
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* Serializzazione dei dati
|
|
360
|
-
*
|
|
361
|
-
* Opzioni:
|
|
362
|
-
* - "json": Standard, affidabile; utilizza più token.
|
|
363
|
-
* - "toon": Meno token, meno consistente di JSON.
|
|
364
|
-
*
|
|
365
|
-
* Predefinito: "json"
|
|
366
|
-
*/
|
|
367
|
-
dataSerialization: "json",
|
|
368
|
-
},
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Build and optimization settings.
|
|
372
|
-
*/
|
|
373
|
-
build: {
|
|
374
|
-
/**
|
|
375
|
-
* Build execution mode.
|
|
376
|
-
* - "auto": Automatic build during app build.
|
|
377
|
-
* - "manual": Requires explicit build command.
|
|
378
|
-
* Default: "auto"
|
|
379
|
-
*/
|
|
380
|
-
mode: "auto",
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* Whether to optimize the final bundle by pruning unused dictionaries.
|
|
384
|
-
* Default: true in production
|
|
385
|
-
*/
|
|
386
|
-
optimize: true,
|
|
387
|
-
|
|
388
|
-
/**
|
|
389
|
-
* Output format for generated dictionary files.
|
|
390
|
-
* Default: ['cjs', 'esm']
|
|
391
|
-
*/
|
|
392
|
-
outputFormat: ["cjs", "esm"],
|
|
393
|
-
|
|
394
|
-
/**
|
|
395
|
-
* Indicates if the build should check TypeScript types.
|
|
396
|
-
* Default: false
|
|
397
|
-
*/
|
|
398
|
-
checkTypes: false,
|
|
399
|
-
},
|
|
400
|
-
|
|
401
|
-
/**
|
|
402
|
-
* Logger configuration.
|
|
403
|
-
*/
|
|
404
|
-
log: {
|
|
405
|
-
/**
|
|
406
|
-
* Logging level.
|
|
407
|
-
* - "default": Standard logging.
|
|
408
|
-
* - "verbose": Detailed debug logging.
|
|
409
|
-
* - "disabled": No logging.
|
|
410
|
-
* Default: "default"
|
|
411
|
-
*/
|
|
412
|
-
mode: "default",
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* Prefix for all log messages.
|
|
416
|
-
* Default: "[intlayer]"
|
|
417
|
-
*/
|
|
418
|
-
prefix: "[intlayer]",
|
|
419
|
-
},
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* System configuration (Advanced use cases)
|
|
423
|
-
*/
|
|
424
|
-
system: {
|
|
425
|
-
/**
|
|
426
|
-
* Directory for storing localization dictionaries.
|
|
427
|
-
*/
|
|
428
|
-
dictionariesDir: ".intlayer/dictionary",
|
|
429
|
-
|
|
430
|
-
/**
|
|
431
|
-
* Directory for module augmentation.
|
|
432
|
-
*/
|
|
433
|
-
moduleAugmentationDir: ".intlayer/types",
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* Directory for storing unmerged dictionaries.
|
|
437
|
-
*/
|
|
438
|
-
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
439
|
-
|
|
440
|
-
/**
|
|
441
|
-
* Directory for storing dictionary types.
|
|
442
|
-
*/
|
|
443
|
-
typesDir: ".intlayer/types",
|
|
444
|
-
|
|
445
|
-
/**
|
|
446
|
-
* Directory where main application files are stored.
|
|
447
|
-
*/
|
|
448
|
-
mainDir: ".intlayer/main",
|
|
449
|
-
|
|
450
|
-
/**
|
|
451
|
-
* Directory where the configuration files are stored.
|
|
452
|
-
*/
|
|
453
|
-
configDir: ".intlayer/config",
|
|
454
|
-
|
|
455
|
-
/**
|
|
456
|
-
* Directory where the cache files are stored.
|
|
457
|
-
*/
|
|
458
|
-
cacheDir: ".intlayer/cache",
|
|
459
|
-
},
|
|
460
|
-
|
|
461
|
-
/**
|
|
462
|
-
* Compiler configuration (Advanced use cases)
|
|
463
|
-
*/
|
|
464
|
-
compiler: {
|
|
465
|
-
/**
|
|
466
|
-
* Indica se il compilatore deve essere abilitato.
|
|
467
|
-
*
|
|
468
|
-
* - false : Disattiva il compilatore.
|
|
469
|
-
* - true : Attiva il compilatore.
|
|
470
|
-
* - "build-only" : Salta il compilatore durante lo sviluppo per accelerare i tempi di avvio.
|
|
471
|
-
*
|
|
472
|
-
* Valore predefinito : false
|
|
473
|
-
*/
|
|
474
|
-
enabled: true,
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* Definisce il percorso dei file di output. Sostituisce `outputDir`.
|
|
478
|
-
*
|
|
479
|
-
* - I percorsi `./` sono risolti rispetto alla directory del componente.
|
|
480
|
-
* - I percorsi `/` sono risolti rispetto alla radice del progetto (`baseDir`).
|
|
481
|
-
*
|
|
482
|
-
* - L'inserimento della variabile `{{locale}}` nel percorso attiverà la generazione di dizionari separati per lingua.
|
|
483
|
-
*
|
|
484
|
-
* Esempi:
|
|
485
|
-
* ```ts
|
|
486
|
-
* {
|
|
487
|
-
* // Crea file .content.ts multilingue vicino al componente
|
|
488
|
-
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
489
|
-
*
|
|
490
|
-
* // output: './{{fileName}}{{extension}}', // Equivalente usando una stringa template
|
|
491
|
-
* }
|
|
492
|
-
* ```
|
|
493
|
-
*
|
|
494
|
-
* ```ts
|
|
495
|
-
* {
|
|
496
|
-
* // Crea file JSON centralizzati per lingua nella radice del progetto
|
|
497
|
-
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
498
|
-
*
|
|
499
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando una stringa template
|
|
500
|
-
* }
|
|
501
|
-
* ```
|
|
502
|
-
*
|
|
503
|
-
* Elenco variabili:
|
|
504
|
-
* - `fileName`: Il nome del file.
|
|
505
|
-
* - `key`: La chiave del contenuto.
|
|
506
|
-
* - `locale`: La lingua del contenuto.
|
|
507
|
-
* - `extension`: L'estensione del file.
|
|
508
|
-
* - `componentFileName`: Il nome del file del componente.
|
|
509
|
-
* - `componentExtension`: L'estensione del file del componente.
|
|
510
|
-
* - `format`: Il formato del dizionario.
|
|
511
|
-
* - `componentFormat`: Il formato del dizionario del componente.
|
|
512
|
-
* - `componentDirPath`: Il percorso della directory del componente.
|
|
513
|
-
*/
|
|
514
|
-
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
515
|
-
|
|
516
|
-
/**
|
|
517
|
-
* Indica se i componenti devono essere salvati dopo essere stati trasformati.
|
|
518
|
-
* In questo modo, il compilatore può essere eseguito una sola volta per trasformare l'app e poi rimosso.
|
|
519
|
-
*/
|
|
520
|
-
saveComponents: false,
|
|
521
|
-
|
|
522
|
-
/**
|
|
523
|
-
* Inserisci solo il contenuto nel file generato. Utile per output JSON i18next o ICU MessageFormat per lingua.
|
|
524
|
-
*/
|
|
525
|
-
noMetadata: false,
|
|
526
|
-
|
|
527
|
-
/**
|
|
528
|
-
* Prefisso chiave dizionario
|
|
529
|
-
*/
|
|
530
|
-
dictionaryKeyPrefix: "", // Aggiungi un prefisso opzionale per le chiavi del dizionario estratte
|
|
531
|
-
},
|
|
532
|
-
|
|
533
|
-
/**
|
|
534
|
-
* Custom schemas to validate the dictionaries content.
|
|
535
|
-
*/
|
|
536
|
-
schemas: {
|
|
537
|
-
"my-schema": z.object({
|
|
538
|
-
title: z.string(),
|
|
539
|
-
}),
|
|
540
|
-
},
|
|
541
|
-
|
|
542
|
-
/**
|
|
543
|
-
* Plugins configuration.
|
|
544
|
-
*/
|
|
545
|
-
plugins: [],
|
|
546
|
-
};
|
|
547
|
-
|
|
548
|
-
export default config;
|
|
549
|
-
````
|
|
550
|
-
|
|
551
|
-
## Riferimento alla Configurazione
|
|
552
|
-
|
|
553
|
-
Le sezioni seguenti descrivono le varie impostazioni di configurazione disponibili per Intlayer.
|
|
554
|
-
|
|
555
|
-
---
|
|
556
|
-
|
|
557
|
-
### Configurazione dell'Internazionalizzazione
|
|
558
|
-
|
|
559
|
-
Definisce le impostazioni relative all'internazionalizzazione, incluse le località disponibili e la località predefinita per l'applicazione.
|
|
560
|
-
|
|
561
|
-
#### Proprietà
|
|
562
|
-
|
|
563
|
-
- **locales**:
|
|
564
|
-
- _Tipo_: `string[]`
|
|
565
|
-
- _Predefinito_: `['en']`
|
|
566
|
-
- _Descrizione_: L'elenco delle località supportate nell'applicazione.
|
|
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.
|
|
590
|
-
|
|
591
|
-
---
|
|
592
|
-
|
|
593
|
-
### Configurazione dell'Editor
|
|
594
|
-
|
|
595
|
-
Definisce le impostazioni relative all'editor integrato, incluso il porto del server e lo stato attivo.
|
|
596
|
-
|
|
597
|
-
#### Proprietà
|
|
598
|
-
|
|
599
|
-
- **applicationURL**:
|
|
600
|
-
- _Tipo_: `string`
|
|
601
|
-
- _Predefinito_: `http://localhost:3000`
|
|
602
|
-
- _Descrizione_: L'URL dell'applicazione. Usato per limitare l'origine dell'editor per motivi di sicurezza.
|
|
603
|
-
- _Esempio_:
|
|
604
|
-
- `'http://localhost:3000'`
|
|
605
|
-
- `'https://example.com'`
|
|
606
|
-
- `process.env.INTLAYER_EDITOR_URL`
|
|
607
|
-
- _Nota_: L'URL dell'applicazione. Utilizzato per limitare l'origine dell'editor per motivi di sicurezza. Se impostato a `'*'`, l'editor è accessibile da qualsiasi origine.
|
|
608
|
-
|
|
609
|
-
- **port**:
|
|
610
|
-
- _Tipo_: `number`
|
|
611
|
-
- _Predefinito_: `8000`
|
|
612
|
-
- _Descrizione_: La porta utilizzata dal server dell'editor visuale.
|
|
613
|
-
|
|
614
|
-
- **editorURL**:
|
|
615
|
-
- _Tipo_: `string`
|
|
616
|
-
- _Predefinito_: `'http://localhost:8000'`
|
|
617
|
-
- _Descrizione_: L'URL del server dell'editor. Utilizzato per limitare l'origine dell'editor per motivi di sicurezza.
|
|
618
|
-
- `'http://localhost:3000'`
|
|
619
|
-
- `'https://example.com'`
|
|
620
|
-
- `process.env.INTLAYER_EDITOR_URL`
|
|
621
|
-
- _Nota_: L'URL del server dell'editor da raggiungere dall'applicazione. Usato per limitare le origini che possono interagire con l'applicazione per motivi di sicurezza. Se impostato a `'*'`, l'editor è accessibile da qualsiasi origine. Deve essere impostato se la porta viene cambiata o se l'editor è ospitato su un dominio diverso.
|
|
622
|
-
|
|
623
|
-
- **cmsURL**:
|
|
624
|
-
- _Tipo_: `string`
|
|
625
|
-
- _Predefinito_: `'https://intlayer.org'`
|
|
626
|
-
- _Descrizione_: L'URL del CMS Intlayer.
|
|
627
|
-
- _Esempio_: `'https://intlayer.org'`
|
|
628
|
-
- _Nota_: L'URL del CMS Intlayer.
|
|
629
|
-
|
|
630
|
-
- **backendURL**:
|
|
631
|
-
- _Tipo_: `string`
|
|
632
|
-
- _Predefinito_: `https://back.intlayer.org`
|
|
633
|
-
- _Descrizione_: L'URL del server backend.
|
|
634
|
-
- _Esempio_: `http://localhost:4000`
|
|
635
|
-
|
|
636
|
-
- **enabled**:
|
|
637
|
-
- _Tipo_: `boolean`
|
|
638
|
-
- _Predefinito_: `true`
|
|
639
|
-
- _Descrizione_: Indica se l'applicazione interagisce con l'editor visuale.
|
|
640
|
-
- _Esempio_: `process.env.NODE_ENV !== 'production'`
|
|
641
|
-
- _Nota_: Se true, l'editor sarà in grado di interagire con l'applicazione. Se false, l'editor non potrà interagire con l'applicazione. In ogni caso, l'editor può essere abilitato solo dall'editor visuale. Disabilitare l'editor per ambienti specifici è un modo per rafforzare la sicurezza.
|
|
642
|
-
|
|
643
|
-
- **clientId**:
|
|
644
|
-
- _Tipo_: `string` | `undefined`
|
|
645
|
-
- _Predefinito_: `undefined`
|
|
646
|
-
- _Descrizione_: clientId e clientSecret permettono ai pacchetti intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su https://app.intlayer.org/project e crea un account.
|
|
647
|
-
- _Esempio_: `true`
|
|
648
|
-
- _Nota_: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di conservarli in un luogo sicuro, come le variabili d'ambiente.
|
|
649
|
-
|
|
650
|
-
- **clientSecret**:
|
|
651
|
-
- _Tipo_: `string` | `undefined`
|
|
652
|
-
- _Predefinito_: `undefined`
|
|
653
|
-
- _Descrizione_: clientId e clientSecret permettono ai pacchetti intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su https://app.intlayer.org/project e crea un account.
|
|
654
|
-
- _Esempio_: `true`
|
|
655
|
-
- _Nota_: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di conservarli in un luogo sicuro, come variabili d'ambiente.
|
|
656
|
-
|
|
657
|
-
- **dictionaryPriorityStrategy**:
|
|
658
|
-
- _Tipo_: `string`
|
|
659
|
-
- _Predefinito_: `'local_first'`
|
|
660
|
-
- _Descrizione_: La strategia per dare priorità ai dizionari nel caso in cui siano presenti sia dizionari locali che remoti. Se impostato su `'distant_first'`, l'applicazione darà priorità ai dizionari remoti rispetto a quelli locali. Se impostato su `'local_first'`, l'applicazione darà priorità ai dizionari locali rispetto a quelli remoti.
|
|
661
|
-
- _Esempio_: `'distant_first'`
|
|
662
|
-
|
|
663
|
-
- **liveSync**:
|
|
664
|
-
- _Tipo_: `boolean`
|
|
665
|
-
- _Predefinito_: `false`
|
|
666
|
-
- _Descrizione_: Indica se il server dell'applicazione deve ricaricare dinamicamente il contenuto dell'applicazione quando viene rilevata una modifica nel CMS / Visual Editor / Backend.
|
|
667
|
-
- _Esempio_: `true`
|
|
668
|
-
- _Nota_: Ad esempio, quando un nuovo dizionario viene aggiunto o aggiornato, l'applicazione aggiornerà il contenuto da visualizzare nella pagina.
|
|
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
|
|
785
|
-
|
|
786
|
-
Quando si utilizza localStorage o sessionStorage:
|
|
787
|
-
|
|
788
|
-
- **type**: Tipo di memorizzazione (`'localStorage' | 'sessionStorage'`)
|
|
789
|
-
- **name**: Nome della chiave di memorizzazione (predefinito: `'INTLAYER_LOCALE'`)
|
|
790
|
-
|
|
791
|
-
#### Esempi di Configurazione
|
|
792
|
-
|
|
793
|
-
Ecco alcuni esempi comuni di configurazione per la nuova struttura di routing v8:
|
|
794
|
-
|
|
795
|
-
**Configurazione di Base (Predefinita)**:
|
|
796
|
-
|
|
797
|
-
```typescript
|
|
798
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
799
|
-
// intlayer.config.ts
|
|
800
|
-
const config: IntlayerConfig = {
|
|
801
|
-
internationalization: {
|
|
802
|
-
locales: ["en", "fr", "it"],
|
|
803
|
-
defaultLocale: "en",
|
|
804
|
-
},
|
|
805
|
-
routing: {
|
|
806
|
-
mode: "prefix-no-default",
|
|
807
|
-
storage: "localStorage",
|
|
808
|
-
basePath: "",
|
|
809
|
-
},
|
|
810
|
-
};
|
|
811
|
-
|
|
812
|
-
export default config;
|
|
813
|
-
```
|
|
814
|
-
|
|
815
|
-
**Configurazione Conforme al GDPR**:
|
|
816
|
-
|
|
817
|
-
```typescript
|
|
818
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
819
|
-
// intlayer.config.ts
|
|
820
|
-
const config: IntlayerConfig = {
|
|
821
|
-
internationalization: {
|
|
822
|
-
locales: ["en", "fr", "it"],
|
|
823
|
-
defaultLocale: "en",
|
|
824
|
-
},
|
|
825
|
-
routing: {
|
|
826
|
-
mode: "prefix-no-default",
|
|
827
|
-
storage: [
|
|
828
|
-
{
|
|
829
|
-
type: "localStorage",
|
|
830
|
-
name: "user-locale",
|
|
831
|
-
},
|
|
832
|
-
{
|
|
833
|
-
type: "cookie",
|
|
834
|
-
name: "user-locale",
|
|
835
|
-
secure: true,
|
|
836
|
-
sameSite: "strict",
|
|
837
|
-
httpOnly: false,
|
|
838
|
-
},
|
|
839
|
-
],
|
|
840
|
-
basePath: "",
|
|
841
|
-
},
|
|
842
|
-
};
|
|
843
|
-
|
|
844
|
-
export default config;
|
|
845
|
-
```
|
|
846
|
-
|
|
847
|
-
**Modalità Parametri di Ricerca**:
|
|
848
|
-
|
|
849
|
-
```typescript
|
|
850
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
851
|
-
// intlayer.config.ts
|
|
852
|
-
const config: IntlayerConfig = {
|
|
853
|
-
internationalization: {
|
|
854
|
-
locales: ["en", "fr", "it"],
|
|
855
|
-
defaultLocale: "en",
|
|
856
|
-
},
|
|
857
|
-
routing: {
|
|
858
|
-
mode: "search-params",
|
|
859
|
-
storage: "localStorage",
|
|
860
|
-
basePath: "",
|
|
861
|
-
},
|
|
862
|
-
};
|
|
863
|
-
|
|
864
|
-
export default config;
|
|
865
|
-
```
|
|
866
|
-
|
|
867
|
-
**Modalità Senza Prefisso con Memorizzazione Personalizzata**:
|
|
868
|
-
|
|
869
|
-
```typescript
|
|
870
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
871
|
-
// intlayer.config.ts
|
|
872
|
-
const config: IntlayerConfig = {
|
|
873
|
-
internationalization: {
|
|
874
|
-
locales: ["en", "fr", "it"],
|
|
875
|
-
defaultLocale: "en",
|
|
876
|
-
},
|
|
877
|
-
routing: {
|
|
878
|
-
mode: "no-prefix",
|
|
879
|
-
storage: {
|
|
880
|
-
type: "sessionStorage",
|
|
881
|
-
name: "app-locale",
|
|
882
|
-
},
|
|
883
|
-
basePath: "/my-app",
|
|
884
|
-
},
|
|
885
|
-
};
|
|
886
|
-
|
|
887
|
-
export default config;
|
|
888
|
-
```
|
|
889
|
-
|
|
890
|
-
**Riscrittura URL Personalizzata con Route Dinamiche**:
|
|
891
|
-
|
|
892
|
-
```typescript
|
|
893
|
-
// intlayer.config.ts
|
|
894
|
-
import { nextjsRewrite } from "intlayer/routing";
|
|
895
|
-
|
|
896
|
-
const config: IntlayerConfig = {
|
|
897
|
-
internationalization: {
|
|
898
|
-
locales: ["en", "fr"],
|
|
899
|
-
defaultLocale: "en",
|
|
900
|
-
},
|
|
901
|
-
routing: {
|
|
902
|
-
mode: "prefix-no-default", // Strategia di fallback per route non riscritte
|
|
903
|
-
storage: "cookie",
|
|
904
|
-
rewrite: nextjsRewrite({
|
|
905
|
-
"/about": {
|
|
906
|
-
en: "/about",
|
|
907
|
-
fr: "/a-propos",
|
|
908
|
-
},
|
|
909
|
-
"/product/[slug]": {
|
|
910
|
-
en: "/product/[slug]",
|
|
911
|
-
fr: "/produit/[slug]",
|
|
912
|
-
},
|
|
913
|
-
"/blog/[category]/[id]": {
|
|
914
|
-
en: "/blog/[category]/[id]",
|
|
915
|
-
fr: "/journal/[category]/[id]",
|
|
916
|
-
},
|
|
917
|
-
}),
|
|
918
|
-
},
|
|
919
|
-
};
|
|
920
|
-
|
|
921
|
-
export default config;
|
|
922
|
-
```
|
|
923
|
-
|
|
924
|
-
---
|
|
925
|
-
|
|
926
|
-
### Configurazione del Contenuto
|
|
927
|
-
|
|
928
|
-
Impostazioni relative alla gestione del contenuto all'interno dell'applicazione, inclusi nomi delle directory, estensioni dei file e configurazioni derivate.
|
|
929
|
-
|
|
930
|
-
#### Proprietà
|
|
931
|
-
|
|
932
|
-
- **autoFill**:
|
|
933
|
-
- _Tipo_: `boolean | string | FilePathPattern | { [key in Locales]?: string }`
|
|
934
|
-
- _Predefinito_: `undefined`
|
|
935
|
-
- _Descrizione_: Indica come il contenuto dovrebbe essere compilato automaticamente usando l'IA. Può essere dichiarato globalmente nel file `intlayer.config.ts`.
|
|
936
|
-
- _Esempio_: true
|
|
937
|
-
- _Esempio_: `'./{{fileName}}.content.json'`
|
|
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.
|
|
985
|
-
|
|
986
|
-
---
|
|
987
|
-
|
|
988
|
-
### Configurazione del Sistema
|
|
989
|
-
|
|
990
|
-
Impostazioni relative ai percorsi interni e ai risultati di output di Intlayer. Queste impostazioni sono tipicamente interne e non dovrebbero necessitare di essere modificate dall'utente.
|
|
991
|
-
|
|
992
|
-
#### Proprietà
|
|
993
|
-
|
|
994
|
-
- **baseDir**:
|
|
995
|
-
- _Tipo_: `string`
|
|
996
|
-
- _Predefinito_: `process.cwd()`
|
|
997
|
-
- _Descrizione_: La directory base per il progetto.
|
|
998
|
-
- _Esempio_: `'/path/to/project'`
|
|
999
|
-
- _Nota_: Viene utilizzata per risolvere tutte le directory relative a Intlayer.
|
|
1000
|
-
|
|
1001
|
-
- **dictionariesDir**:
|
|
1002
|
-
- _Tipo_: `string`
|
|
1003
|
-
- _Predefinito_: `'.intlayer/dictionary'`
|
|
1004
|
-
- _Descrizione_: Il percorso della directory per memorizzare i dizionari di localizzazione.
|
|
1005
|
-
|
|
1006
|
-
- **moduleAugmentationDir**:
|
|
1007
|
-
- _Tipo_: `string`
|
|
1008
|
-
- _Predefinito_: `'.intlayer/types'`
|
|
1009
|
-
- _Descrizione_: Directory per l'augmentation dei moduli, che permette migliori suggerimenti IDE e controllo dei tipi.
|
|
1010
|
-
- _Esempio_: `'intlayer-types'`
|
|
1011
|
-
- _Nota_: Assicurarsi di includere questa directory in `tsconfig.json`.
|
|
1012
|
-
|
|
1013
|
-
- **unmergedDictionariesDir**:
|
|
1014
|
-
- _Tipo_: `string`
|
|
1015
|
-
- _Predefinito_: `'.intlayer/unmerged_dictionary'`
|
|
1016
|
-
- _Descrizione_: La directory per memorizzare dizionari non uniti.
|
|
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**
|
|
1067
|
-
|
|
1068
|
-
---
|
|
1069
|
-
|
|
1070
|
-
### Configurazione del Logger
|
|
1071
|
-
|
|
1072
|
-
Impostazioni che controllano il logger, incluso il prefisso da utilizzare.
|
|
1073
|
-
|
|
1074
|
-
#### Proprietà
|
|
1075
|
-
|
|
1076
|
-
- **mode**:
|
|
1077
|
-
- _Tipo_: `string`
|
|
1078
|
-
- _Predefinito_: `default`
|
|
1079
|
-
- _Descrizione_: Indica la modalità del logger.
|
|
1080
|
-
- _Opzioni_: `default`, `verbose`, `disabled`
|
|
1081
|
-
- _Esempio_: `default`
|
|
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.
|
|
1224
|
-
|
|
1225
|
-
---
|
|
1226
|
-
|
|
1227
|
-
### Configurazione del Compilatore
|
|
1228
|
-
|
|
1229
|
-
Impostazioni che controllano il compilatore Intlayer, che estrae i dizionari direttamente dai tuoi componenti.
|
|
1230
|
-
|
|
1231
|
-
#### Proprietà
|
|
1232
|
-
|
|
1233
|
-
- **enabled**:
|
|
1234
|
-
- _Tipo_: `boolean | 'build-only'`
|
|
1235
|
-
- _Predefinito_: `true`
|
|
1236
|
-
- _Descrizione_: Indica se il compilatore deve essere abilitato per estrarre i dizionari.
|
|
1237
|
-
- _Esempio_: `'build-only'`
|
|
1238
|
-
- _Nota_: Impostarlo su `'build-only'` salterà il compilatore durante la modalità di sviluppo per accelerare i tempi di avvio. Verrà eseguito solo sui comandi di build.
|
|
1239
|
-
|
|
1240
|
-
- **dictionaryKeyPrefix**:
|
|
1241
|
-
- _Tipo_: `string`
|
|
1242
|
-
- _Predefinito_: `''`
|
|
1243
|
-
- _Descrizione_: Prefisso per le chiavi dei dizionari estratti.
|
|
1244
|
-
- _Esempio_: `'my-key-'`
|
|
1245
|
-
- _Nota_: Quando i dizionari vengono estratti, la chiave viene generata in base al nome del file. Questo prefisso viene aggiunto alla chiave generata per evitare conflitti.
|
|
1246
|
-
|
|
1247
|
-
- **saveComponents**:
|
|
1248
|
-
- _Tipo_: `boolean`
|
|
1249
|
-
- _Predefinito_: `false`
|
|
1250
|
-
- _Descrizione_: Indica se i componenti devono essere salvati dopo essere stati trasformati.
|
|
1251
|
-
- _Nota_: Se vero, il compilatore sostituirà i file originali con i file trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app, e poi può essere rimosso.
|
|
1252
|
-
|
|
1253
|
-
- **transformPattern**:
|
|
1254
|
-
- _Tipo_: `string | string[]`
|
|
1255
|
-
- _Predefinito_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
|
|
1256
|
-
- _Descrizione_: Pattern che definiscono quali file devono essere attraversati durante l'ottimizzazione.
|
|
1257
|
-
- _Esempio_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1258
|
-
- _Nota_: Usare questo per limitare l'ottimizzazione ai file di codice rilevanti e migliorare le prestazioni di build.
|
|
1259
|
-
|
|
1260
|
-
- **excludePattern**:
|
|
1261
|
-
- _Tipo_: `string | string[]`
|
|
1262
|
-
- _Predefinito_: `['**/node_modules/**']`
|
|
1263
|
-
- _Descrizione_: Pattern che definiscono quali file devono essere esclusi durante l'ottimizzazione.
|
|
1264
|
-
- _Esempio_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1265
|
-
|
|
1266
|
-
- **output**:
|
|
1267
|
-
- _Tipo_: `FilePathPattern`
|
|
1268
|
-
- _Predefinito_: `undefined`
|
|
1269
|
-
- _Descrizione_: Definisce il percorso dei file di output. Sostituisce `outputDir`. Gestisce variabili dinamiche tramite stringhe template o una funzione. Variabili supportate: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` e `{{componentDirPath}}`.
|
|
1270
|
-
- _Nota_: I percorsi `./` sono risolti rispetto alla directory del componente. I percorsi `/` sono risolti rispetto alla radice del progetto (`baseDir`).
|
|
1271
|
-
- _Nota_: L'inserimento della variabile `{{locale}}` nel percorso attiverà la generazione di dizionari separati per lingua.
|
|
1272
|
-
- _Esempio_:
|
|
1273
|
-
- **File multilingue vicino al componente** :
|
|
1274
|
-
- Stringa: `'./{{fileName}}{{extension}}'`
|
|
1275
|
-
- Funzione: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1276
|
-
|
|
1277
|
-
- **File JSON centralizzati per lingua** :
|
|
1278
|
-
- Stringa: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1279
|
-
- Funzione: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1280
|
-
|
|
1281
|
-
- **noMetadata**:
|
|
1282
|
-
- _Tipo_: `boolean`
|
|
1283
|
-
- _Predefinito_: `false`
|
|
1284
|
-
- _Descrizione_: Indica se i metadati devono essere salvati nel file. Se vero, il compilatore non salverà i metadatati dei dizionari (chiave, contenitore del contenuto). Utile per output JSON i18next o ICU MessageFormat per lingua.
|
|
1285
|
-
- _Nota_: Utile se utilizzato con il plugin `loadJSON`.
|
|
1286
|
-
- _Esempio_:
|
|
1287
|
-
Se `true` :
|
|
1288
|
-
```json
|
|
1289
|
-
{
|
|
1290
|
-
"key": "value"
|
|
1291
|
-
}
|
|
1292
|
-
```
|
|
1293
|
-
Se `false` :
|
|
1294
|
-
```json
|
|
1295
|
-
{
|
|
1296
|
-
"key": "value",
|
|
1297
|
-
"content": {
|
|
1298
|
-
"key": "value"
|
|
1299
|
-
}
|
|
1300
|
-
}
|
|
1301
|
-
```
|