@intlayer/docs 8.3.0-canary.4 → 8.3.1
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/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
package/docs/it/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Configurazione
|
|
5
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
6
|
keywords:
|
|
@@ -15,23 +15,32 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: Sposta 'baseDir' dalla configurazione 'content' alla configurazione 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
|
-
date: 2026-03-
|
|
21
|
+
date: 2026-03-09
|
|
22
22
|
changes: Aggiorna le opzioni del compilatore, aggiungi il supporto per 'output' e 'noMetadata'
|
|
23
23
|
- version: 8.1.7
|
|
24
24
|
date: 2026-02-25
|
|
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
|
|
26
29
|
- version: 8.0.6
|
|
27
30
|
date: 2026-02-12
|
|
28
31
|
changes: Aggiungi il supporto per i fornitori Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
29
32
|
- version: 8.0.5
|
|
30
33
|
date: 2026-02-06
|
|
31
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.
|
|
32
41
|
- version: 8.0.0
|
|
33
42
|
date: 2026-01-22
|
|
34
|
-
changes:
|
|
43
|
+
changes: Aggiunta l'opzione `rewrite` alla configurazione del routing
|
|
35
44
|
- version: 8.0.0
|
|
36
45
|
date: 2026-01-18
|
|
37
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.
|
|
@@ -44,6 +53,24 @@ history:
|
|
|
44
53
|
- version: 7.5.0
|
|
45
54
|
date: 2025-12-17
|
|
46
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`
|
|
47
74
|
- version: 6.0.0
|
|
48
75
|
date: 2025-09-16
|
|
49
76
|
changes: Aggiunta modalità di importazione `live`
|
|
@@ -92,7 +119,7 @@ Intlayer accetta formati di file di configurazione JSON, JS, MJS e TS:
|
|
|
92
119
|
|
|
93
120
|
## Esempio di file di configurazione
|
|
94
121
|
|
|
95
|
-
|
|
122
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
96
123
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
97
124
|
import { nextjsRewrite } from "intlayer/routing";
|
|
98
125
|
import { z } from "zod";
|
|
@@ -190,7 +217,7 @@ const config: IntlayerConfig = {
|
|
|
190
217
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
191
218
|
* Default: ['cookie', 'header']
|
|
192
219
|
*/
|
|
193
|
-
storage: "cookie",
|
|
220
|
+
storage: ["cookie", "header"],
|
|
194
221
|
|
|
195
222
|
/**
|
|
196
223
|
* Base path for the application URLs.
|
|
@@ -321,12 +348,23 @@ const config: IntlayerConfig = {
|
|
|
321
348
|
/**
|
|
322
349
|
* Global context to guide the AI in generating translations.
|
|
323
350
|
*/
|
|
324
|
-
applicationContext: "
|
|
351
|
+
applicationContext: "Questa è un'applicazione di prenotazione viaggi.",
|
|
325
352
|
|
|
326
353
|
/**
|
|
327
354
|
* Base URL for the AI API.
|
|
328
355
|
*/
|
|
329
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",
|
|
330
368
|
},
|
|
331
369
|
|
|
332
370
|
/**
|
|
@@ -349,9 +387,9 @@ const config: IntlayerConfig = {
|
|
|
349
387
|
|
|
350
388
|
/**
|
|
351
389
|
* Output format for generated dictionary files.
|
|
352
|
-
* Default: ['
|
|
390
|
+
* Default: ['cjs', 'esm']
|
|
353
391
|
*/
|
|
354
|
-
outputFormat: ["esm"],
|
|
392
|
+
outputFormat: ["cjs", "esm"],
|
|
355
393
|
|
|
356
394
|
/**
|
|
357
395
|
* Indicates if the build should check TypeScript types.
|
|
@@ -426,42 +464,70 @@ const config: IntlayerConfig = {
|
|
|
426
464
|
compiler: {
|
|
427
465
|
/**
|
|
428
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
|
|
429
473
|
*/
|
|
430
474
|
enabled: true,
|
|
431
475
|
|
|
432
476
|
/**
|
|
433
|
-
*
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
*
|
|
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.
|
|
442
513
|
*/
|
|
443
|
-
|
|
514
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
444
515
|
|
|
445
516
|
/**
|
|
446
|
-
*
|
|
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.
|
|
447
519
|
*/
|
|
448
|
-
|
|
520
|
+
saveComponents: false,
|
|
449
521
|
|
|
450
522
|
/**
|
|
451
|
-
* Inserisci solo il contenuto nel file generato
|
|
523
|
+
* Inserisci solo il contenuto nel file generato. Utile per output JSON i18next o ICU MessageFormat per lingua.
|
|
452
524
|
*/
|
|
453
525
|
noMetadata: false,
|
|
454
526
|
|
|
455
527
|
/**
|
|
456
528
|
* Prefisso chiave dizionario
|
|
457
529
|
*/
|
|
458
|
-
dictionaryKeyPrefix: "", //
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* Indica se i componenti devono essere salvati dopo essere stati trasformati.
|
|
462
|
-
* In questo modo, il compilatore può essere eseguito una sola volta per trasformare l'app e poi rimosso.
|
|
463
|
-
*/
|
|
464
|
-
saveComponents: false,
|
|
530
|
+
dictionaryKeyPrefix: "", // Aggiungi un prefisso opzionale per le chiavi del dizionario estratte
|
|
465
531
|
},
|
|
466
532
|
|
|
467
533
|
/**
|
|
@@ -480,7 +546,7 @@ const config: IntlayerConfig = {
|
|
|
480
546
|
};
|
|
481
547
|
|
|
482
548
|
export default config;
|
|
483
|
-
|
|
549
|
+
````
|
|
484
550
|
|
|
485
551
|
## Riferimento alla Configurazione
|
|
486
552
|
|
|
@@ -614,36 +680,50 @@ Definisce le impostazioni relative all'editor integrato, incluso il porto del se
|
|
|
614
680
|
- _Predefinito_: `'http://localhost:{liveSyncPort}'`
|
|
615
681
|
- _Descrizione_: L'URL del server di sincronizzazione live.
|
|
616
682
|
- _Esempio_: `'https://example.com'`
|
|
617
|
-
- _Nota_: Punta a localhost di default ma può essere cambiato in qualsiasi URL nel caso di un
|
|
618
|
-
|
|
619
|
-
### Configurazione del Middleware
|
|
683
|
+
- _Nota_: Punta a localhost di default ma può essere cambiato in qualsiasi URL nel caso di un se### Configurazione del Routing
|
|
620
684
|
|
|
621
|
-
Impostazioni che controllano il comportamento del
|
|
685
|
+
Impostazioni che controllano il comportamento del routing, inclusa la struttura dell'URL, la memorizzazione della localizzazione e il funzionamento del middleware.
|
|
622
686
|
|
|
623
687
|
#### Proprietà
|
|
624
688
|
|
|
625
|
-
- **
|
|
626
|
-
- _Tipo_: `
|
|
627
|
-
- _Predefinito_: `'
|
|
628
|
-
- _Descrizione_:
|
|
629
|
-
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
-
|
|
633
|
-
|
|
634
|
-
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
-
|
|
638
|
-
|
|
639
|
-
-
|
|
640
|
-
|
|
641
|
-
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
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' }`).
|
|
647
727
|
|
|
648
728
|
- **basePath**:
|
|
649
729
|
- _Tipo_: `string`
|
|
@@ -651,10 +731,10 @@ Impostazioni che controllano il comportamento del middleware, incluso come l'app
|
|
|
651
731
|
- _Descrizione_: Il percorso base per gli URL dell'applicazione.
|
|
652
732
|
- _Esempio_: `'/my-app'`
|
|
653
733
|
- _Nota_:
|
|
654
|
-
- Se l'applicazione è ospitata su `https://example.com/my-app
|
|
655
|
-
-
|
|
656
|
-
- L'URL sarà `https://example.com/my-app/
|
|
657
|
-
- Se il percorso base non è impostato, l'URL sarà `https://example.com/
|
|
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`.
|
|
658
738
|
|
|
659
739
|
- **rewrite**:
|
|
660
740
|
- _Tipo_: `Record<string, StrictModeLocaleMap<string>>`
|
|
@@ -665,17 +745,20 @@ Impostazioni che controllano il comportamento del middleware, incluso come l'app
|
|
|
665
745
|
routing: {
|
|
666
746
|
mode: "prefix-no-default", // Strategia di fallback
|
|
667
747
|
rewrite: nextjsRewrite({
|
|
668
|
-
"/
|
|
669
|
-
|
|
670
|
-
|
|
748
|
+
"/about": {
|
|
749
|
+
it: "/chi-siamo",
|
|
750
|
+
en: "/about",
|
|
751
|
+
fr: "/a-propos",
|
|
671
752
|
},
|
|
672
|
-
"/
|
|
673
|
-
|
|
674
|
-
|
|
753
|
+
"/product/[slug]": {
|
|
754
|
+
it: "/prodotto/[slug]",
|
|
755
|
+
en: "/product/[slug]",
|
|
756
|
+
fr: "/produit/[slug]",
|
|
675
757
|
},
|
|
676
|
-
"/
|
|
677
|
-
|
|
678
|
-
|
|
758
|
+
"/blog/[category]/[id]": {
|
|
759
|
+
it: "/blog/[category]/[id]",
|
|
760
|
+
en: "/blog/[category]/[id]",
|
|
761
|
+
fr: "/journal/[category]/[id]",
|
|
679
762
|
},
|
|
680
763
|
}),
|
|
681
764
|
}
|
|
@@ -686,25 +769,157 @@ Impostazioni che controllano il comportamento del middleware, incluso come l'app
|
|
|
686
769
|
- _Nota_: Quando si generano URL con `getLocalizedUrl()`, le regole di riscrittura vengono applicate automaticamente se corrispondono al percorso fornito.
|
|
687
770
|
- _Riferimento_: Per maggiori informazioni, vedi [Riscritture URL Personalizzate](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/custom_url_rewrites.md).
|
|
688
771
|
|
|
689
|
-
|
|
690
|
-
- _Tipo_: `string`
|
|
691
|
-
- _Predefinito_: `'always'`
|
|
692
|
-
- _Descrizione_: Regola per impostare il cookie della lingua sul server.
|
|
693
|
-
- _Opzioni_: `'always'`, `'never'`
|
|
694
|
-
- _Esempio_: `'never'`
|
|
695
|
-
- _Nota_: Controlla se il cookie della lingua viene impostato ad ogni richiesta o mai.
|
|
772
|
+
#### Attributi dei Cookie
|
|
696
773
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
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
|
+
```
|
|
708
923
|
|
|
709
924
|
---
|
|
710
925
|
|
|
@@ -901,54 +1116,49 @@ Intlayer supporta più provider AI per una maggiore flessibilità e scelta. I pr
|
|
|
901
1116
|
- **Fireworks**
|
|
902
1117
|
- **Hugging Face**
|
|
903
1118
|
- **Groq**
|
|
904
|
-
- **Amazon
|
|
905
|
-
-
|
|
906
|
-
-
|
|
907
|
-
-
|
|
908
|
-
-
|
|
909
|
-
|
|
910
|
-
#### Proprietà
|
|
911
|
-
|
|
912
|
-
- **provider**:
|
|
913
|
-
- _Tipo_: `string`
|
|
914
|
-
- _Predefinito_: `'openai'`
|
|
915
|
-
- _Descrizione_: Il provider da utilizzare per le funzionalità AI di Intlayer.
|
|
916
|
-
- _Opzioni_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
917
|
-
- _Esempio_: `'anthropic'`
|
|
1119
|
+
- **Amazon Bedroc- provider** :
|
|
1120
|
+
- _Tipo_ : `string`
|
|
1121
|
+
- _Predefinito_ : `'openai'`
|
|
1122
|
+
- _Descrizione_ : Il provider da utilizzare per le funzionalità AI di Intlayer.
|
|
1123
|
+
- _Opzioni_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1124
|
+
- _Esempio_ : `'anthropic'`
|
|
918
1125
|
- _Nota_: Diversi provider potrebbero richiedere chiavi API differenti e avere modelli di prezzo diversi.
|
|
919
1126
|
|
|
920
|
-
- **model
|
|
921
|
-
- _Tipo_: `string`
|
|
922
|
-
- _Predefinito_: Nessuno
|
|
923
|
-
- _Descrizione_: Il modello da utilizzare per le funzionalità AI di Intlayer.
|
|
924
|
-
- _Esempio_: `'gpt-4o-2024-11-20'`
|
|
925
|
-
- _Nota_: Il modello specifico da utilizzare varia a seconda del provider.
|
|
926
|
-
|
|
927
|
-
- **temperature
|
|
928
|
-
- _Tipo_: `number`
|
|
929
|
-
- _Predefinito_: Nessuno
|
|
930
|
-
- _Descrizione_: La temperatura controlla la casualità delle risposte dell'AI.
|
|
931
|
-
- _Esempio_: `0.1`
|
|
932
|
-
- _Nota_: Una temperatura più alta rende l'AI più creativa e meno prevedibile.
|
|
933
|
-
|
|
934
|
-
- **apiKey
|
|
935
|
-
- _Tipo_: `string`
|
|
936
|
-
- _Predefinito_: Nessuno
|
|
937
|
-
- _Descrizione_: La tua chiave API per il provider selezionato.
|
|
938
|
-
- _Esempio_: `process.env.OPENAI_API_KEY`
|
|
939
|
-
- _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.
|
|
940
|
-
|
|
941
|
-
- **applicationContext
|
|
942
|
-
- _Tipo_: `string`
|
|
943
|
-
- _Predefinito_: Nessuno
|
|
944
|
-
- _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.
|
|
945
|
-
|
|
946
|
-
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
-
|
|
950
|
-
-
|
|
951
|
-
-
|
|
1127
|
+
- **model** :
|
|
1128
|
+
- _Tipo_ : `string`
|
|
1129
|
+
- _Predefinito_ : Nessuno
|
|
1130
|
+
- _Descrizione_ : Il modello da utilizzare per le funzionalità AI di Intlayer.
|
|
1131
|
+
- _Esempio_ : `'gpt-4o-2024-11-20'`
|
|
1132
|
+
- _Nota_ : Il modello specifico da utilizzare varia a seconda del provider.
|
|
1133
|
+
|
|
1134
|
+
- **temperature** :
|
|
1135
|
+
- _Tipo_ : `number`
|
|
1136
|
+
- _Predefinito_ : Nessuno
|
|
1137
|
+
- _Descrizione_ : La temperatura controlla la casualità delle risposte dell'AI.
|
|
1138
|
+
- _Esempio_ : `0.1`
|
|
1139
|
+
- _Nota_ : Una temperatura più alta rende l'AI più creativa e meno prevedibile.
|
|
1140
|
+
|
|
1141
|
+
- **apiKey** :
|
|
1142
|
+
- _Tipo_ : `string`
|
|
1143
|
+
- _Predefinito_ : Nessuno
|
|
1144
|
+
- _Descrizione_ : La tua chiave API per il provider selezionato.
|
|
1145
|
+
- _Esempio_ : `process.env.OPENAI_API_KEY`
|
|
1146
|
+
- _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.
|
|
1147
|
+
|
|
1148
|
+
- **applicationContext** :
|
|
1149
|
+
- _Tipo_ : `string`
|
|
1150
|
+
- _Predefinito_ : Nessuno
|
|
1151
|
+
- _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.
|
|
1152
|
+
- _Nota_: Puoi usare questo per aggiungere altre regole al modello AI (ad esempio "non trasformare gli URL").
|
|
1153
|
+
- _Esempio_ : `'Il contesto della mia applicazione'`
|
|
1154
|
+
|
|
1155
|
+
- **baseURL** :
|
|
1156
|
+
- _Tipo_ : `string`
|
|
1157
|
+
- _Predefinito_ : Nessuno
|
|
1158
|
+
- _Descrizione_ : L'URL di base per l'API AI.
|
|
1159
|
+
- _Esempio_ : `'https://api.openai.com/v1'`
|
|
1160
|
+
- _Esempio_ : `'http://localhost:5000'`
|
|
1161
|
+
- _Nota_ : Può essere utilizzato per puntare a un endpoint API AI locale o personalizzato.
|
|
952
1162
|
|
|
953
1163
|
- **dataSerialization**:
|
|
954
1164
|
- _Tipo_: `'json' | 'toon'`
|
|
@@ -956,6 +1166,7 @@ Intlayer supporta più provider AI per una maggiore flessibilità e scelta. I pr
|
|
|
956
1166
|
- _Descrizione_: Il formato di serializzazione dei dati da utilizzare per le funzionalità AI di Intlayer.
|
|
957
1167
|
- _Esempio_: `'toon'`
|
|
958
1168
|
- _Nota_: `json`: Standard, affidabile; utilizza più token. `toon`: Meno token, meno coerente del JSON.
|
|
1169
|
+
> 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.
|
|
959
1170
|
|
|
960
1171
|
### Configurazione della Build
|
|
961
1172
|
|
|
@@ -969,65 +1180,72 @@ Le opzioni di build si applicano ai plugin `@intlayer/babel` e `@intlayer/swc`.
|
|
|
969
1180
|
|
|
970
1181
|
#### Proprietà
|
|
971
1182
|
|
|
972
|
-
- **mode
|
|
973
|
-
- _Tipo_: `'auto' | 'manual'`
|
|
974
|
-
- _Predefinito_: `'auto'`
|
|
975
|
-
- _Descrizione_: Controlla la modalità della build.
|
|
976
|
-
- _Esempio_: `'manual'`
|
|
977
|
-
- _Nota_: Se 'auto', la build sarà abilitata automaticamente
|
|
978
|
-
- _Nota_: Se 'manual', la build
|
|
979
|
-
- _Nota_: Può essere utilizzato per disabilitare la build dei dizionari, ad esempio quando l'esecuzione in un ambiente Node.js
|
|
980
|
-
|
|
981
|
-
- **
|
|
982
|
-
- _Tipo_: `boolean`
|
|
983
|
-
- _Predefinito_: `
|
|
984
|
-
- _Descrizione_:
|
|
985
|
-
-
|
|
986
|
-
|
|
987
|
-
-
|
|
988
|
-
-
|
|
989
|
-
-
|
|
990
|
-
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
-
|
|
994
|
-
-
|
|
995
|
-
-
|
|
996
|
-
|
|
997
|
-
-
|
|
998
|
-
- _Nota_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
999
|
-
- _Tipo_: `'static' | 'dynamic' | 'fetch'`
|
|
1000
|
-
- _Predefinito_: `'static'`
|
|
1001
|
-
- _Descrizione_: Controlla come vengono importati i dizionari.
|
|
1002
|
-
- _Esempio_: `'dynamic'`
|
|
1003
|
-
- _Nota_: Modalità disponibili:
|
|
1183
|
+
- **mode** :
|
|
1184
|
+
- _Tipo_ : `'auto' | 'manual'`
|
|
1185
|
+
- _Predefinito_ : `'auto'`
|
|
1186
|
+
- _Descrizione_ : Controlla la modalità della build.
|
|
1187
|
+
- _Esempio_ : `'manual'`
|
|
1188
|
+
- _Nota_ : Se 'auto', la build sarà abilitata automaticamente durante la build dell'app.
|
|
1189
|
+
- _Nota_ : Se 'manual', la build verrà attivata solo quando viene eseguito il comando di build.
|
|
1190
|
+
- _Nota_ : Può essere utilizzato per disabilitare la build dei dizionari, ad esempio quando si vuole evitare l'esecuzione in un ambiente Node.js.
|
|
1191
|
+
|
|
1192
|
+
- **optimize** :
|
|
1193
|
+
- _Tipo_ : `boolean`
|
|
1194
|
+
- _Predefinito_ : `undefined`
|
|
1195
|
+
- _Descrizione_ : Controlla se la build deve essere ottimizzata.
|
|
1196
|
+
- _Esempio_ : `process.env.NODE_ENV === 'production'`
|
|
1197
|
+
- _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.
|
|
1198
|
+
- _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.
|
|
1199
|
+
- _Nota_ : Intlayer sostituirà tutte le chiamate di `useIntlayer` con la modalità definita dall'opzione `importMode` e `getIntlayer` con `getDictionary`.
|
|
1200
|
+
- _Nota_ : Questa opzione si basa sui plugin `@intlayer/babel` e `@intlayer/swc`.
|
|
1201
|
+
- _Nota_ : Assicurarsi che tutte le chiavi siano dichiarate staticamente nelle chiamate a `useIntlayer`. Ad esempio `useIntlayer('navbar')`.
|
|
1202
|
+
|
|
1203
|
+
- **importMode** :
|
|
1204
|
+
- _Tipo_ : `'static' | 'dynamic' | 'fetch'`
|
|
1205
|
+
- _Predefinito_ : `'static'`
|
|
1206
|
+
- _Descrizione_ : Controlla come vengono importati i dizionari.
|
|
1207
|
+
- _Esempio_ : `'dynamic'`
|
|
1208
|
+
- _Nota_ : Modalità disponibili:
|
|
1004
1209
|
- "static": I dizionari sono importati staticamente. Sostituisce `useIntlayer` con `useDictionary`.
|
|
1005
1210
|
- "dynamic": I dizionari sono importati dinamicamente usando Suspense. Sostituisce `useIntlayer` con `useDictionaryDynamic`.
|
|
1006
|
-
|
|
1007
|
-
- _Nota_: Gli import dinamici si basano su Suspense e possono influire leggermente sulle prestazioni di rendering.
|
|
1008
|
-
- _Nota_: Se disabilitato, tutte le localizzazioni verranno caricate contemporaneamente, anche se non vengono utilizzate.
|
|
1009
|
-
- _Nota_: Questa opzione si basa sui plugin `@intlayer/babel` e `@intlayer/swc`.
|
|
1010
|
-
- _Nota_: Assicurarsi che tutte le chiavi siano dichiarate staticamente nelle chiamate a `useIntlayer
|
|
1011
|
-
- _Nota_: Questa opzione verrà ignorata se `optimize` è disabilitato.
|
|
1012
|
-
- _Nota_: Se impostato su "
|
|
1013
|
-
- _Nota_: La modalità
|
|
1014
|
-
- _Nota_: Questa opzione non influenzerà le funzioni `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` e `useDictionaryDynamic`.
|
|
1015
|
-
|
|
1016
|
-
- **
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
-
|
|
1020
|
-
-
|
|
1021
|
-
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
-
|
|
1026
|
-
-
|
|
1027
|
-
|
|
1028
|
-
-
|
|
1029
|
-
- _Nota_:
|
|
1030
|
-
|
|
1211
|
+
- "fetch": I dizionari vengono recuperati dinamicamente utilizzando l'API di sincronizzazione live. Sostituisce `useIntlayer` con `useDictionaryDynamic`.
|
|
1212
|
+
- _Nota_ : Gli import dinamici si basano su Suspense e possono influire leggermente sulle prestazioni di rendering.
|
|
1213
|
+
- _Nota_ : Se disabilitato, tutte le localizzazioni verranno caricate contemporaneamente, anche se non vengono utilizzate.
|
|
1214
|
+
- _Nota_ : Questa opzione si basa sui plugin `@intlayer/babel` e `@intlayer/swc`.
|
|
1215
|
+
- _Nota_ : Assicurarsi che tutte le chiavi siano dichiarate staticamente nelle chiamate a `useIntlayer`. Ad esempio `useIntlayer('navbar')`.
|
|
1216
|
+
- _Nota_ : Questa opzione verrà ignorata se `optimize` è disabilitato.
|
|
1217
|
+
- _Nota_ : Se impostato su "fetch", solo i dizionari che includono contenuti remoti e sono contrassegnati come "fetch" saranno trasformati in modalità live. Gli altri saranno importati dinamicamente in modalità "dynamic" per ottimizzare il numero di richieste di fetch e le prestazioni di caricamento.
|
|
1218
|
+
- _Nota_ : La modalità fetch utilizzerà l'API di sincronizzazione live per recuperare i dizionari. Se la chiamata API fallisce, i dizionari saranno importati dinamicamente in modalità "dynamic".
|
|
1219
|
+
- _Nota_ : Questa opzione non influenzerà le funzioni `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` e `useDictionaryDynamic`.
|
|
1220
|
+
- _Nota_: **Veraltet**: Verwenden Sie statis... (Opps, wrong language in English note. Wait, the English note was "Deprecated: Use dictionary.importMode instead").
|
|
1221
|
+
- _Nota_: **Deprecato**: Usa invece `dictionary.importMode`.
|
|
1222
|
+
|
|
1223
|
+
- **checkTypes** :
|
|
1224
|
+
- _Tipo_ : `boolean`
|
|
1225
|
+
- _Predefinito_ : `false`
|
|
1226
|
+
- _Descrizione_ : Indica se la build deve controllare i tipi TypeScript e registrare gli errori.
|
|
1227
|
+
- _Nota_ : Questo può rallentare la build.
|
|
1228
|
+
|
|
1229
|
+
- **outputFormat** :
|
|
1230
|
+
- _Tipo_ : `('esm' | 'cjs')[]`
|
|
1231
|
+
- _Predefinito_ : `['cjs', 'esm']`
|
|
1232
|
+
- _Descrizione_ : Controlla il formato di output dei dizionari generati.
|
|
1233
|
+
- _Esempio_ : `'cjs'`
|
|
1234
|
+
- _Nota_ : Il formato di output dei dizionari.
|
|
1235
|
+
|
|
1236
|
+
- **traversePattern** :
|
|
1237
|
+
- _Tipo_ : `string[]`
|
|
1238
|
+
- _Predefinito_ : `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1239
|
+
- _Descrizione_ : Pattern che definiscono quali file devono essere attraversati durante l'ottimizzazione.
|
|
1240
|
+
- _Esempio_ : `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1241
|
+
- _Nota_ : Usare questo per limitare l'ottimizzazione ai file di codice rilevanti e migliorare le prestazioni di build.
|
|
1242
|
+
- _Nota_ : Questa opzione sarà ignorata se `optimize` è disabilitato.
|
|
1243
|
+
- _Nota_ : Usare pattern glob.
|
|
1244
|
+
|
|
1245
|
+
---restazioni di build.
|
|
1246
|
+
|
|
1247
|
+
- _Nota_: Questa opzione sarà ignorata se `optimize` è disabilitato.
|
|
1248
|
+
- _Nota_: Usare pattern glob.
|
|
1031
1249
|
|
|
1032
1250
|
---
|
|
1033
1251
|
|
|
@@ -1046,7 +1264,7 @@ Impostazioni che controllano il compilatore Intlayer, che estrae i dizionari dir
|
|
|
1046
1264
|
|
|
1047
1265
|
- **dictionaryKeyPrefix**:
|
|
1048
1266
|
- _Tipo_: `string`
|
|
1049
|
-
- _Predefinito_: `'
|
|
1267
|
+
- _Predefinito_: `''`
|
|
1050
1268
|
- _Descrizione_: Prefisso per le chiavi dei dizionari estratti.
|
|
1051
1269
|
- _Esempio_: `'my-key-'`
|
|
1052
1270
|
- _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.
|
|
@@ -1070,30 +1288,34 @@ Impostazioni che controllano il compilatore Intlayer, che estrae i dizionari dir
|
|
|
1070
1288
|
- _Descrizione_: Pattern che definiscono quali file devono essere esclusi durante l'ottimizzazione.
|
|
1071
1289
|
- _Esempio_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1072
1290
|
|
|
1073
|
-
- **outputDir**:
|
|
1074
|
-
- _Tipo_: `string`
|
|
1075
|
-
- _Predefinito_: `'compiler'`
|
|
1076
|
-
- _Descrizione_: La directory in cui verranno memorizzati i dizionari estratti, relativa al percorso di base del progetto.
|
|
1077
|
-
|
|
1078
1291
|
- **output**:
|
|
1079
|
-
-
|
|
1080
|
-
-
|
|
1081
|
-
- _Descrizione_: Definisce il percorso dei file di output. Sostituisce `outputDir`. Gestisce variabili dinamiche
|
|
1082
|
-
- _Nota_:
|
|
1083
|
-
-
|
|
1292
|
+
- _Tipo_: `FilePathPattern`
|
|
1293
|
+
- _Predefinito_: `undefined`
|
|
1294
|
+
- _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}}`.
|
|
1295
|
+
- _Nota_: I percorsi `./` sono risolti rispetto alla directory del componente. I percorsi `/` sono risolti rispetto alla radice del progetto (`baseDir`).
|
|
1296
|
+
- _Nota_: L'inserimento della variabile `{{locale}}` nel percorso attiverà la generazione di dizionari separati per lingua.
|
|
1297
|
+
- _Esempio_:
|
|
1298
|
+
- **File multilingue vicino al componente** :
|
|
1299
|
+
- Stringa: `'./{{fileName}}{{extension}}'`
|
|
1300
|
+
- Funzione: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1301
|
+
|
|
1302
|
+
- **File JSON centralizzati per lingua** :
|
|
1303
|
+
- Stringa: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1304
|
+
- Funzione: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1084
1305
|
|
|
1085
1306
|
- **noMetadata**:
|
|
1086
1307
|
- _Tipo_: `boolean`
|
|
1087
1308
|
- _Predefinito_: `false`
|
|
1088
|
-
- _Descrizione_: Indica se i metadati devono essere salvati nel file. Se vero, il compilatore non salverà i metadatati dei dizionari (chiave, contenitore del contenuto).
|
|
1309
|
+
- _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.
|
|
1089
1310
|
- _Nota_: Utile se utilizzato con il plugin `loadJSON`.
|
|
1090
|
-
- _Esempio_:
|
|
1311
|
+
- _Esempio_:
|
|
1312
|
+
Se `true` :
|
|
1091
1313
|
```json
|
|
1092
1314
|
{
|
|
1093
1315
|
"key": "value"
|
|
1094
1316
|
}
|
|
1095
1317
|
```
|
|
1096
|
-
Se `false
|
|
1318
|
+
Se `false` :
|
|
1097
1319
|
```json
|
|
1098
1320
|
{
|
|
1099
1321
|
"key": "value",
|