@intlayer/docs 6.0.0 → 6.0.2-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +6 -5
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +318 -1863
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +1317 -6282
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +197 -1182
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +43 -84
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +2 -5
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +318 -1863
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1317 -6282
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +197 -1182
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +43 -84
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/blog.d.ts +1 -1
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/intlayer_CMS.md +261 -85
- package/docs/ar/releases/v6.md +273 -0
- package/docs/ar/roadmap.md +1 -3
- package/docs/ar/vs_code_extension.md +94 -63
- package/docs/de/intlayer_CMS.md +247 -65
- package/docs/de/releases/v6.md +298 -0
- package/docs/de/roadmap.md +1 -3
- package/docs/de/vs_code_extension.md +89 -58
- package/docs/en/configuration.md +9 -2
- package/docs/en/intlayer_CMS.md +205 -23
- package/docs/en/intlayer_cli.md +4 -4
- package/docs/en/intlayer_visual_editor.md +7 -6
- package/docs/en/intlayer_with_nextjs_14.md +17 -1
- package/docs/en/intlayer_with_nextjs_15.md +17 -1
- package/docs/en/releases/v6.md +268 -0
- package/docs/en/roadmap.md +1 -3
- package/docs/en/vs_code_extension.md +79 -49
- package/docs/en-GB/intlayer_CMS.md +216 -52
- package/docs/en-GB/releases/v6.md +297 -0
- package/docs/en-GB/roadmap.md +1 -3
- package/docs/en-GB/vs_code_extension.md +79 -48
- package/docs/es/intlayer_CMS.md +257 -84
- package/docs/es/releases/v6.md +274 -0
- package/docs/es/roadmap.md +1 -3
- package/docs/es/vs_code_extension.md +90 -60
- package/docs/fr/intlayer_CMS.md +250 -68
- package/docs/fr/releases/v6.md +274 -0
- package/docs/fr/roadmap.md +1 -3
- package/docs/fr/vs_code_extension.md +94 -63
- package/docs/hi/intlayer_CMS.md +253 -77
- package/docs/hi/releases/v6.md +273 -0
- package/docs/hi/roadmap.md +1 -3
- package/docs/hi/vs_code_extension.md +92 -61
- package/docs/it/intlayer_CMS.md +251 -73
- package/docs/it/releases/v6.md +273 -0
- package/docs/it/roadmap.md +1 -3
- package/docs/it/vs_code_extension.md +94 -63
- package/docs/ja/intlayer_CMS.md +282 -97
- package/docs/ja/releases/v6.md +273 -0
- package/docs/ja/roadmap.md +1 -3
- package/docs/ja/vs_code_extension.md +99 -68
- package/docs/ko/intlayer_CMS.md +267 -93
- package/docs/ko/releases/v6.md +273 -0
- package/docs/ko/roadmap.md +1 -3
- package/docs/ko/vs_code_extension.md +88 -57
- package/docs/pt/intlayer_CMS.md +261 -83
- package/docs/pt/releases/v6.md +273 -0
- package/docs/pt/roadmap.md +1 -3
- package/docs/pt/vs_code_extension.md +89 -58
- package/docs/ru/intlayer_CMS.md +240 -65
- package/docs/ru/releases/v6.md +274 -0
- package/docs/ru/roadmap.md +1 -1
- package/docs/ru/vs_code_extension.md +83 -52
- package/docs/tr/intlayer_CMS.md +278 -96
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +3 -0
- package/docs/tr/releases/v6.md +273 -0
- package/docs/tr/roadmap.md +1 -1
- package/docs/tr/vs_code_extension.md +100 -71
- package/docs/zh/intlayer_CMS.md +257 -76
- package/docs/zh/releases/v6.md +273 -0
- package/docs/zh/roadmap.md +1 -3
- package/docs/zh/vs_code_extension.md +99 -68
- package/package.json +9 -8
- package/src/blog.ts +1 -1
- package/src/common.ts +2 -6
- package/src/generated/blog.entry.ts +323 -1864
- package/src/generated/docs.entry.ts +1317 -6278
- package/src/generated/frequentQuestions.entry.ts +202 -1183
- package/src/generated/legal.entry.ts +48 -85
package/docs/it/intlayer_CMS.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: CMS
|
|
5
|
-
description:
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
|
+
title: Intlayer CMS | Esternalizza i tuoi contenuti nel CMS di Intlayer
|
|
5
|
+
description: Esternalizza i tuoi contenuti nel CMS di Intlayer per delegare la gestione dei tuoi contenuti al tuo team.
|
|
6
6
|
keywords:
|
|
7
7
|
- CMS
|
|
8
|
-
- Editor
|
|
8
|
+
- Editor Visivo
|
|
9
9
|
- Internazionalizzazione
|
|
10
10
|
- Documentazione
|
|
11
11
|
- Intlayer
|
|
@@ -19,11 +19,11 @@ slugs:
|
|
|
19
19
|
youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
# Documentazione del
|
|
22
|
+
# Documentazione del Sistema di Gestione dei Contenuti (CMS) di Intlayer
|
|
23
23
|
|
|
24
|
-
<iframe title="
|
|
24
|
+
<iframe title="Editor Visivo + CMS per la tua Web App: Intlayer Spiegato" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
25
25
|
|
|
26
|
-
Il CMS di Intlayer è un'applicazione che
|
|
26
|
+
Il CMS di Intlayer è un'applicazione che ti permette di esternalizzare i contenuti di un progetto Intlayer.
|
|
27
27
|
|
|
28
28
|
Per questo, Intlayer introduce il concetto di 'dizionari remoti'.
|
|
29
29
|
|
|
@@ -33,15 +33,15 @@ Per questo, Intlayer introduce il concetto di 'dizionari remoti'.
|
|
|
33
33
|
|
|
34
34
|
Intlayer distingue tra dizionari 'locali' e 'remoti'.
|
|
35
35
|
|
|
36
|
-
- Un dizionario 'locale' è un dizionario dichiarato nel tuo progetto Intlayer. Come il file di dichiarazione di un pulsante o
|
|
36
|
+
- Un dizionario 'locale' è un dizionario dichiarato nel tuo progetto Intlayer. Come ad esempio il file di dichiarazione di un pulsante o la tua barra di navigazione. Esternalizzare i contenuti in questo caso non ha senso perché questi contenuti non dovrebbero cambiare spesso.
|
|
37
37
|
|
|
38
|
-
- Un dizionario 'remoto' è un dizionario gestito tramite il CMS di Intlayer. Potrebbe essere utile per
|
|
38
|
+
- Un dizionario 'remoto' è un dizionario gestito tramite il CMS di Intlayer. Potrebbe essere utile per permettere al tuo team di gestire direttamente i contenuti sul tuo sito web, e mira anche a utilizzare funzionalità di A/B testing e ottimizzazione SEO automatica.
|
|
39
39
|
|
|
40
40
|
## Editor visivo vs CMS
|
|
41
41
|
|
|
42
|
-
L'[
|
|
42
|
+
L'editor [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_visual_editor.md) è uno strumento che ti permette di gestire i tuoi contenuti in un editor visuale per dizionari locali. Una volta effettuata una modifica, il contenuto verrà sostituito nel codice sorgente. Ciò significa che l'applicazione verrà ricostruita e la pagina ricaricata per mostrare il nuovo contenuto.
|
|
43
43
|
|
|
44
|
-
Al contrario, il CMS di Intlayer è uno strumento che
|
|
44
|
+
Al contrario, il CMS di Intlayer è uno strumento che ti permette di gestire i tuoi contenuti in un editor visuale per dizionari remoti. Una volta effettuata una modifica, il contenuto **non** influenzerà il codice sorgente. E il sito web mostrerà automaticamente il contenuto modificato.
|
|
45
45
|
|
|
46
46
|
## Integrazione
|
|
47
47
|
|
|
@@ -73,7 +73,7 @@ const config: IntlayerConfig = {
|
|
|
73
73
|
* Obbligatorio
|
|
74
74
|
*
|
|
75
75
|
* L'URL dell'applicazione.
|
|
76
|
-
* Questo è l'URL
|
|
76
|
+
* Questo è l'URL a cui punta l'editor visuale.
|
|
77
77
|
*/
|
|
78
78
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
79
79
|
|
|
@@ -81,8 +81,8 @@ const config: IntlayerConfig = {
|
|
|
81
81
|
* Obbligatorio
|
|
82
82
|
*
|
|
83
83
|
* Client ID e client secret sono necessari per abilitare l'editor.
|
|
84
|
-
*
|
|
85
|
-
* Possono essere ottenuti creando un nuovo client
|
|
84
|
+
* Permettono di identificare l'utente che sta modificando il contenuto.
|
|
85
|
+
* Possono essere ottenuti creando un nuovo client nel Dashboard di Intlayer - Progetti (https://intlayer.org/dashboard/projects).
|
|
86
86
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
87
87
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
88
88
|
*/
|
|
@@ -90,22 +90,22 @@ const config: IntlayerConfig = {
|
|
|
90
90
|
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
|
-
*
|
|
93
|
+
* Facoltativo
|
|
94
94
|
*
|
|
95
|
-
* Nel caso in cui
|
|
95
|
+
* Nel caso in cui stiate ospitando autonomamente l'Intlayer CMS, potete impostare l'URL del CMS.
|
|
96
96
|
*
|
|
97
|
-
* L'URL
|
|
98
|
-
*
|
|
97
|
+
* L'URL dell'Intlayer CMS.
|
|
98
|
+
* Di default, è impostato su https://intlayer.org
|
|
99
99
|
*/
|
|
100
100
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
103
|
* Opzionale
|
|
104
104
|
*
|
|
105
|
-
* Nel caso in cui
|
|
105
|
+
* Nel caso in cui stiate ospitando autonomamente l'Intlayer CMS, potete impostare l'URL del backend.
|
|
106
106
|
*
|
|
107
|
-
* L'URL
|
|
108
|
-
*
|
|
107
|
+
* L'URL dell'Intlayer CMS.
|
|
108
|
+
* Di default, è impostato su https://back.intlayer.org
|
|
109
109
|
*/
|
|
110
110
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
111
111
|
},
|
|
@@ -123,7 +123,7 @@ const config = {
|
|
|
123
123
|
* Obbligatorio
|
|
124
124
|
*
|
|
125
125
|
* L'URL dell'applicazione.
|
|
126
|
-
*
|
|
126
|
+
* Questa è l'URL a cui punta l'editor visuale.
|
|
127
127
|
*/
|
|
128
128
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
129
129
|
|
|
@@ -131,7 +131,7 @@ const config = {
|
|
|
131
131
|
* Obbligatorio
|
|
132
132
|
*
|
|
133
133
|
* Client ID e client secret sono necessari per abilitare l'editor.
|
|
134
|
-
*
|
|
134
|
+
* Permettono di identificare l'utente che sta modificando il contenuto.
|
|
135
135
|
* Possono essere ottenuti creando un nuovo client nella Dashboard di Intlayer - Progetti (https://intlayer.org/dashboard/projects).
|
|
136
136
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
137
137
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
@@ -142,7 +142,7 @@ const config = {
|
|
|
142
142
|
/**
|
|
143
143
|
* Opzionale
|
|
144
144
|
*
|
|
145
|
-
* Nel caso in cui
|
|
145
|
+
* Nel caso in cui stiate ospitando autonomamente l'Intlayer CMS, potete impostare l'URL del CMS.
|
|
146
146
|
*
|
|
147
147
|
* L'URL del CMS di Intlayer.
|
|
148
148
|
* Per impostazione predefinita, è impostato su https://intlayer.org
|
|
@@ -152,9 +152,9 @@ const config = {
|
|
|
152
152
|
/**
|
|
153
153
|
* Opzionale
|
|
154
154
|
*
|
|
155
|
-
* Nel caso in cui
|
|
155
|
+
* Nel caso in cui tu stia ospitando autonomamente il CMS di Intlayer, puoi impostare l'URL del backend.
|
|
156
156
|
*
|
|
157
|
-
* L'URL del
|
|
157
|
+
* L'URL del CMS di Intlayer.
|
|
158
158
|
* Per impostazione predefinita, è impostato su https://back.intlayer.org
|
|
159
159
|
*/
|
|
160
160
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
@@ -173,7 +173,7 @@ const config = {
|
|
|
173
173
|
* Obbligatorio
|
|
174
174
|
*
|
|
175
175
|
* L'URL dell'applicazione.
|
|
176
|
-
*
|
|
176
|
+
* Questa è l'URL a cui punta l'editor visuale.
|
|
177
177
|
*/
|
|
178
178
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
179
179
|
|
|
@@ -181,8 +181,8 @@ const config = {
|
|
|
181
181
|
* Obbligatorio
|
|
182
182
|
*
|
|
183
183
|
* Client ID e client secret sono necessari per abilitare l'editor.
|
|
184
|
-
*
|
|
185
|
-
* Possono essere ottenuti creando un nuovo client
|
|
184
|
+
* Permettono di identificare l'utente che sta modificando il contenuto.
|
|
185
|
+
* Possono essere ottenuti creando un nuovo client nel Intlayer Dashboard - Projects (https://intlayer.org/dashboard/projects).
|
|
186
186
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
187
187
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
188
188
|
*/
|
|
@@ -192,16 +192,19 @@ const config = {
|
|
|
192
192
|
/**
|
|
193
193
|
* Opzionale
|
|
194
194
|
*
|
|
195
|
-
* Nel caso in cui
|
|
195
|
+
* Nel caso in cui tu stia ospitando autonomamente il CMS di Intlayer, puoi impostare l'URL del CMS.
|
|
196
196
|
*
|
|
197
197
|
* L'URL del CMS di Intlayer.
|
|
198
198
|
* Per impostazione predefinita, è impostato su https://intlayer.org
|
|
199
|
+
*/
|
|
200
|
+
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
201
|
+
|
|
199
202
|
/**
|
|
200
203
|
* Opzionale
|
|
201
204
|
*
|
|
202
|
-
* Nel caso in cui
|
|
205
|
+
* Nel caso in cui tu stia ospitando autonomamente l'Intlayer CMS, puoi impostare l'URL del backend.
|
|
203
206
|
*
|
|
204
|
-
* L'URL
|
|
207
|
+
* L'URL dell'Intlayer CMS.
|
|
205
208
|
* Per impostazione predefinita, è impostato su https://back.intlayer.org
|
|
206
209
|
*/
|
|
207
210
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
@@ -211,37 +214,37 @@ const config = {
|
|
|
211
214
|
module.exports = config;
|
|
212
215
|
```
|
|
213
216
|
|
|
214
|
-
> Se non hai un client ID e un client secret, puoi ottenerli creando un nuovo client
|
|
217
|
+
> Se non hai un client ID e un client secret, puoi ottenerli creando un nuovo client nel [Intlayer Dashboard - Projects](https://intlayer.org/dashboard/projects).
|
|
215
218
|
|
|
216
|
-
> Per vedere tutti i parametri disponibili,
|
|
219
|
+
> Per vedere tutti i parametri disponibili, fai riferimento alla [documentazione di configurazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md).
|
|
217
220
|
|
|
218
221
|
## Utilizzo del CMS
|
|
219
222
|
|
|
220
|
-
###
|
|
223
|
+
### Invia la tua configurazione
|
|
221
224
|
|
|
222
|
-
Per configurare
|
|
225
|
+
Per configurare l'Intlayer CMS, puoi utilizzare i comandi della [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/it/intlayer_cli.md).
|
|
223
226
|
|
|
224
227
|
```bash
|
|
225
228
|
npx intlayer config push
|
|
226
229
|
```
|
|
227
230
|
|
|
228
|
-
> Se utilizzi variabili
|
|
231
|
+
> Se utilizzi variabili d'ambiente nel file di configurazione `intlayer.config.ts`, puoi specificare l'ambiente desiderato usando l'argomento `--env`:
|
|
229
232
|
|
|
230
233
|
```bash
|
|
231
234
|
npx intlayer config push --env production
|
|
232
235
|
```
|
|
233
236
|
|
|
234
|
-
Questo comando carica la tua configurazione
|
|
237
|
+
Questo comando carica la tua configurazione sull'Intlayer CMS.
|
|
235
238
|
|
|
236
|
-
###
|
|
239
|
+
### Caricare un dizionario
|
|
237
240
|
|
|
238
|
-
Per trasformare i tuoi dizionari
|
|
241
|
+
Per trasformare i tuoi dizionari di localizzazione in un dizionario remoto, puoi utilizzare i comandi della [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/it/intlayer_cli.md).
|
|
239
242
|
|
|
240
243
|
```bash
|
|
241
244
|
npx intlayer dictionary push -d my-first-dictionary-key
|
|
242
245
|
```
|
|
243
246
|
|
|
244
|
-
> Se utilizzi variabili
|
|
247
|
+
> Se utilizzi variabili d'ambiente nel file di configurazione `intlayer.config.ts`, puoi specificare l'ambiente desiderato usando l'argomento `--env`:
|
|
245
248
|
|
|
246
249
|
```bash
|
|
247
250
|
npx intlayer dictionary push -d my-first-dictionary-key --env production
|
|
@@ -251,14 +254,15 @@ Questo comando carica i tuoi dizionari di contenuti iniziali, rendendoli disponi
|
|
|
251
254
|
|
|
252
255
|
### Modifica il dizionario
|
|
253
256
|
|
|
254
|
-
Successivamente
|
|
257
|
+
Successivamente potrai visualizzare e gestire il tuo dizionario nel [Intlayer CMS](https://intlayer.org/dashboard/content).
|
|
258
|
+
|
|
259
|
+
## Sincronizzazione live
|
|
255
260
|
|
|
256
|
-
|
|
261
|
+
La Sincronizzazione Live consente alla tua app di riflettere le modifiche ai contenuti del CMS in tempo reale. Non è necessario ricostruire o ridistribuire. Quando abilitata, gli aggiornamenti vengono trasmessi a un server di Sincronizzazione Live che aggiorna i dizionari letti dalla tua applicazione.
|
|
257
262
|
|
|
258
|
-
|
|
263
|
+
> Live Sync richiede una connessione continua al server ed è disponibile nel piano enterprise.
|
|
259
264
|
|
|
260
|
-
|
|
261
|
-
Attivando la configurazione [`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration), l'applicazione sostituirà automaticamente il contenuto aggiornato quando viene rilevato.
|
|
265
|
+
Abilita Live Sync aggiornando la configurazione di Intlayer:
|
|
262
266
|
|
|
263
267
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
264
268
|
import type { IntlayerConfig } from "intlayer";
|
|
@@ -266,18 +270,32 @@ import type { IntlayerConfig } from "intlayer";
|
|
|
266
270
|
const config: IntlayerConfig = {
|
|
267
271
|
// ... altre impostazioni di configurazione
|
|
268
272
|
editor: {
|
|
269
|
-
// ... altre impostazioni di configurazione
|
|
270
|
-
|
|
271
273
|
/**
|
|
272
|
-
*
|
|
273
|
-
* Ad esempio, quando viene aggiunto o aggiornato
|
|
274
|
+
* Abilita il caricamento a caldo delle configurazioni locali quando vengono rilevate modifiche.
|
|
275
|
+
* Ad esempio, quando un dizionario viene aggiunto o aggiornato, l'applicazione aggiorna
|
|
276
|
+
* il contenuto visualizzato nella pagina.
|
|
274
277
|
*
|
|
275
|
-
* Poiché il
|
|
278
|
+
* Poiché il caricamento a caldo richiede una connessione continua al server, è
|
|
279
|
+
* disponibile solo per i clienti del piano `enterprise`.
|
|
276
280
|
*
|
|
277
281
|
* Predefinito: false
|
|
278
282
|
*/
|
|
279
283
|
liveSync: true,
|
|
280
284
|
},
|
|
285
|
+
build: {
|
|
286
|
+
/**
|
|
287
|
+
* Controlla come vengono importati i dizionari:
|
|
288
|
+
*
|
|
289
|
+
* - "live": I dizionari vengono recuperati dinamicamente utilizzando l'API Live Sync.
|
|
290
|
+
* Sostituisce useIntlayer con useDictionaryDynamic.
|
|
291
|
+
*
|
|
292
|
+
* Nota: La modalità live utilizza l'API Live Sync per recuperare i dizionari. Se la chiamata API
|
|
293
|
+
* fallisce, i dizionari vengono importati dinamicamente.
|
|
294
|
+
* Nota: Solo i dizionari con contenuto remoto e flag "live" utilizzano la modalità live.
|
|
295
|
+
* Gli altri usano la modalità dinamica per le prestazioni.
|
|
296
|
+
*/
|
|
297
|
+
importMode: "live",
|
|
298
|
+
},
|
|
281
299
|
};
|
|
282
300
|
|
|
283
301
|
export default config;
|
|
@@ -288,18 +306,32 @@ export default config;
|
|
|
288
306
|
const config = {
|
|
289
307
|
// ... altre impostazioni di configurazione
|
|
290
308
|
editor: {
|
|
291
|
-
// ... altre impostazioni di configurazione
|
|
292
|
-
|
|
293
309
|
/**
|
|
294
|
-
*
|
|
295
|
-
* Ad esempio, quando viene aggiunto o aggiornato
|
|
310
|
+
* Abilita il caricamento a caldo delle configurazioni di localizzazione quando vengono rilevate modifiche.
|
|
311
|
+
* Ad esempio, quando un dizionario viene aggiunto o aggiornato, l'applicazione aggiorna
|
|
312
|
+
* il contenuto visualizzato nella pagina.
|
|
296
313
|
*
|
|
297
|
-
* Poiché il
|
|
314
|
+
* Poiché il caricamento a caldo richiede una connessione continua al server, è
|
|
315
|
+
* disponibile solo per i clienti del piano `enterprise`.
|
|
298
316
|
*
|
|
299
317
|
* Predefinito: false
|
|
300
318
|
*/
|
|
301
319
|
liveSync: true,
|
|
302
320
|
},
|
|
321
|
+
build: {
|
|
322
|
+
/**
|
|
323
|
+
* Controlla come vengono importati i dizionari:
|
|
324
|
+
*
|
|
325
|
+
* - "live": I dizionari vengono recuperati dinamicamente utilizzando l'API Live Sync.
|
|
326
|
+
* Sostituisce useIntlayer con useDictionaryDynamic.
|
|
327
|
+
*
|
|
328
|
+
* Nota: La modalità live utilizza l'API Live Sync per recuperare i dizionari. Se la chiamata API
|
|
329
|
+
* fallisce, i dizionari vengono importati dinamicamente.
|
|
330
|
+
* Nota: Solo i dizionari con contenuti remoti e flag "live" utilizzano la modalità live.
|
|
331
|
+
* Gli altri usano la modalità dinamica per le prestazioni.
|
|
332
|
+
*/
|
|
333
|
+
importMode: "live",
|
|
334
|
+
},
|
|
303
335
|
};
|
|
304
336
|
|
|
305
337
|
export default config;
|
|
@@ -310,28 +342,169 @@ export default config;
|
|
|
310
342
|
const config = {
|
|
311
343
|
// ... altre impostazioni di configurazione
|
|
312
344
|
editor: {
|
|
313
|
-
// ... altre impostazioni di configurazione
|
|
314
|
-
|
|
315
345
|
/**
|
|
316
|
-
*
|
|
317
|
-
* Ad esempio, quando viene aggiunto o aggiornato
|
|
346
|
+
* Abilita il caricamento a caldo delle configurazioni di localizzazione quando vengono rilevate modifiche.
|
|
347
|
+
* Ad esempio, quando un dizionario viene aggiunto o aggiornato, l'applicazione aggiorna
|
|
348
|
+
* il contenuto visualizzato nella pagina.
|
|
318
349
|
*
|
|
319
|
-
* Poiché il
|
|
350
|
+
* Poiché il caricamento a caldo richiede una connessione continua al server, è
|
|
351
|
+
* disponibile solo per i clienti del piano `enterprise`.
|
|
320
352
|
*
|
|
321
353
|
* Predefinito: false
|
|
322
354
|
*/
|
|
323
355
|
liveSync: true,
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* La porta del server Live Sync.
|
|
359
|
+
*
|
|
360
|
+
* Predefinito: 4000
|
|
361
|
+
*/
|
|
362
|
+
liveSyncPort: 4000,
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* L'URL del server Live Sync.
|
|
366
|
+
*
|
|
367
|
+
* Predefinito: http://localhost:{liveSyncPort}
|
|
368
|
+
*/
|
|
369
|
+
liveSyncURL: "https://live.example.com",
|
|
370
|
+
},
|
|
371
|
+
build: {
|
|
372
|
+
/**
|
|
373
|
+
* Controlla come vengono importati i dizionari:
|
|
374
|
+
*
|
|
375
|
+
* - "live": I dizionari vengono recuperati dinamicamente utilizzando l'API Live Sync.
|
|
376
|
+
* Sostituisce useIntlayer con useDictionaryDynamic.
|
|
377
|
+
*
|
|
378
|
+
* Nota: La modalità live utilizza l'API Live Sync per recuperare i dizionari. Se la chiamata API
|
|
379
|
+
* fallisce, i dizionari vengono importati dinamicamente.
|
|
380
|
+
* Nota: Solo i dizionari con contenuto remoto e flag "live" usano la modalità live.
|
|
381
|
+
* Gli altri usano la modalità dinamica per le prestazioni.
|
|
382
|
+
*/
|
|
383
|
+
importMode: "live",
|
|
384
|
+
},
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
module.exports = config;
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
Avvia il server Live Sync per avvolgere la tua applicazione:
|
|
391
|
+
|
|
392
|
+
Esempio con Next.js:
|
|
393
|
+
|
|
394
|
+
```json5 fileName="package.json"
|
|
395
|
+
{
|
|
396
|
+
"scripts": {
|
|
397
|
+
// ... altri script
|
|
398
|
+
"build": "next build",
|
|
399
|
+
"dev": "next dev",
|
|
400
|
+
"start": "npx intlayer live --process 'next start'",
|
|
401
|
+
},
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Esempio con Vite:
|
|
406
|
+
|
|
407
|
+
```json5 fileName="package.json"
|
|
408
|
+
{
|
|
409
|
+
"scripts": {
|
|
410
|
+
// ... altri script
|
|
411
|
+
"build": "vite build",
|
|
412
|
+
"dev": "vite dev",
|
|
413
|
+
"start": "npx intlayer live --process 'vite start'",
|
|
414
|
+
},
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
Il server Live Sync avvolge la tua applicazione e applica automaticamente i contenuti aggiornati non appena arrivano.
|
|
419
|
+
|
|
420
|
+
Per ricevere notifiche di modifica dal CMS, il server Live Sync mantiene una connessione SSE con il backend. Quando il contenuto cambia nel CMS, il backend inoltra l'aggiornamento al server Live Sync, che scrive i nuovi dizionari. La tua applicazione rifletterà l'aggiornamento alla successiva navigazione o al reload del browser—non è necessario ricostruire.
|
|
421
|
+
|
|
422
|
+
Diagramma di flusso (CMS/Backend -> Server Live Sync -> Server Applicazione -> Frontend):
|
|
423
|
+
|
|
424
|
+

|
|
425
|
+
|
|
426
|
+
Come funziona:
|
|
427
|
+
|
|
428
|
+

|
|
429
|
+
|
|
430
|
+
### Flusso di lavoro di sviluppo (locale)
|
|
431
|
+
|
|
432
|
+
- In fase di sviluppo, tutti i dizionari remoti vengono recuperati all'avvio dell'applicazione, così puoi testare rapidamente gli aggiornamenti.
|
|
433
|
+
- Per testare Live Sync localmente con Next.js, avvolgi il tuo server di sviluppo:
|
|
434
|
+
|
|
435
|
+
```json5 fileName="package.json"
|
|
436
|
+
{
|
|
437
|
+
"scripts": {
|
|
438
|
+
// ... altri script
|
|
439
|
+
"dev": "npx intlayer live --process 'next dev'",
|
|
440
|
+
// "dev": "npx intlayer live --process 'vite dev'", // Per Vite
|
|
441
|
+
},
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
Abilita l'ottimizzazione affinché Intlayer applichi le trasformazioni di importazione Live durante lo sviluppo:
|
|
446
|
+
|
|
447
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
448
|
+
import type { IntlayerConfig } from "intlayer";
|
|
449
|
+
|
|
450
|
+
const config: IntlayerConfig = {
|
|
451
|
+
editor: {
|
|
452
|
+
applicationURL: "http://localhost:5173",
|
|
453
|
+
liveSyncURL: "http://localhost:4000",
|
|
454
|
+
liveSync: true,
|
|
455
|
+
},
|
|
456
|
+
build: {
|
|
457
|
+
optimize: true,
|
|
458
|
+
importMode: "live",
|
|
459
|
+
},
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
export default config;
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
466
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
467
|
+
const config = {
|
|
468
|
+
editor: {
|
|
469
|
+
applicationURL: "http://localhost:5173",
|
|
470
|
+
liveSyncURL: "http://localhost:4000",
|
|
471
|
+
liveSync: true,
|
|
472
|
+
},
|
|
473
|
+
build: {
|
|
474
|
+
optimize: true,
|
|
475
|
+
importMode: "live",
|
|
476
|
+
},
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
export default config;
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
483
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
484
|
+
const config = {
|
|
485
|
+
editor: {
|
|
486
|
+
applicationURL: "http://localhost:5173",
|
|
487
|
+
liveSyncURL: "http://localhost:4000",
|
|
488
|
+
liveSync: true,
|
|
489
|
+
},
|
|
490
|
+
build: {
|
|
491
|
+
optimize: true,
|
|
492
|
+
importMode: "live",
|
|
324
493
|
},
|
|
325
494
|
};
|
|
326
495
|
|
|
327
496
|
module.exports = config;
|
|
328
497
|
```
|
|
329
498
|
|
|
330
|
-
|
|
499
|
+
Questa configurazione avvolge il tuo server di sviluppo con il server Live Sync, recupera i dizionari remoti all'avvio e trasmette aggiornamenti dal CMS tramite SSE. Aggiorna la pagina per vedere le modifiche.
|
|
500
|
+
|
|
501
|
+
Note e vincoli:
|
|
331
502
|
|
|
332
|
-
-
|
|
333
|
-
-
|
|
334
|
-
|
|
503
|
+
- Aggiungi l'origine del live sync alla tua politica di sicurezza del sito (CSP). Assicurati che l'URL del live sync sia consentito in `connect-src` (e in `frame-ancestors` se pertinente).
|
|
504
|
+
- Live Sync non funziona con output statico. Per Next.js, la pagina deve essere dinamica per ricevere aggiornamenti in fase di esecuzione (ad esempio, usa `generateStaticParams`, `generateMetadata`, `getServerSideProps` o `getStaticProps` in modo appropriato per evitare vincoli di solo statico completo).
|
|
505
|
+
- Nel CMS, ogni dizionario ha un flag `live`. Solo i dizionari con `live=true` vengono recuperati tramite l'API di live sync; gli altri vengono importati dinamicamente e rimangono invariati a runtime.
|
|
506
|
+
- Il flag `live` viene valutato per ogni dizionario al momento della build. Se il contenuto remoto non era contrassegnato come `live=true` durante la build, è necessario ricostruire per abilitare Live Sync per quel dizionario.
|
|
507
|
+
- Il server di live sync deve poter scrivere nella cartella `.intlayer`. Nei container, assicurarsi che sia garantito l'accesso in scrittura a `/.intlayer`.
|
|
335
508
|
|
|
336
509
|
## Debug
|
|
337
510
|
|
|
@@ -339,14 +512,19 @@ Se riscontri problemi con il CMS, verifica quanto segue:
|
|
|
339
512
|
|
|
340
513
|
- L'applicazione è in esecuzione.
|
|
341
514
|
|
|
342
|
-
- La configurazione [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) è correttamente impostata nel file di configurazione di Intlayer.
|
|
515
|
+
- La configurazione dell'[`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) è correttamente impostata nel file di configurazione di Intlayer.
|
|
343
516
|
- Campi obbligatori:
|
|
344
|
-
|
|
345
|
-
|
|
517
|
+
- L'URL dell'applicazione deve corrispondere a quello impostato nella configurazione dell'editor (`applicationURL`).
|
|
518
|
+
- L'URL del CMS
|
|
519
|
+
|
|
520
|
+
- Assicurati che la configurazione del progetto sia stata inviata al CMS di Intlayer.
|
|
346
521
|
|
|
347
|
-
- Assicurati che la
|
|
348
|
-
- L'editor visivo utilizza un iframe per visualizzare il tuo sito web. Assicurati che la Content Security Policy (CSP) del tuo sito web consenta l'URL del CMS come `frame-ancestors` ('https://intlayer.org' per impostazione predefinita). Controlla la console dell'editor per eventuali errori.
|
|
522
|
+
- L'editor visivo utilizza un iframe per visualizzare il tuo sito web. Assicurati che la Content Security Policy (CSP) del tuo sito consenta l'URL del CMS come `frame-ancestors` ('https://intlayer.org' per impostazione predefinita). Controlla la console dell'editor per eventuali errori.
|
|
349
523
|
|
|
350
|
-
## Cronologia
|
|
524
|
+
## Cronologia della Documentazione
|
|
351
525
|
|
|
352
|
-
|
|
526
|
+
| Versione | Data | Modifiche |
|
|
527
|
+
| -------- | ---------- | --------------------------------------------------- |
|
|
528
|
+
| 6.0.1 | 2025-09-22 | Aggiunta documentazione sulla sincronizzazione live |
|
|
529
|
+
| 6.0.0 | 2025-09-04 | Sostituito il campo `hotReload` con `liveSync` |
|
|
530
|
+
| 5.5.10 | 2025-06-29 | Inizializzazione della cronologia |
|