@intlayer/docs 6.0.1 → 6.0.2

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.
Files changed (104) hide show
  1. package/dist/cjs/blog.cjs.map +1 -1
  2. package/dist/cjs/common.cjs +6 -5
  3. package/dist/cjs/common.cjs.map +1 -1
  4. package/dist/cjs/generated/blog.entry.cjs +318 -1863
  5. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  6. package/dist/cjs/generated/docs.entry.cjs +1317 -6282
  7. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  8. package/dist/cjs/generated/frequentQuestions.entry.cjs +197 -1182
  9. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  10. package/dist/cjs/generated/legal.entry.cjs +43 -84
  11. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  12. package/dist/esm/blog.mjs.map +1 -1
  13. package/dist/esm/common.mjs +2 -5
  14. package/dist/esm/common.mjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +318 -1863
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +1317 -6282
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +197 -1182
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +43 -84
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/dist/types/blog.d.ts +1 -1
  24. package/dist/types/blog.d.ts.map +1 -1
  25. package/dist/types/common.d.ts +1 -1
  26. package/dist/types/common.d.ts.map +1 -1
  27. package/dist/types/generated/blog.entry.d.ts +1 -1
  28. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  29. package/dist/types/generated/docs.entry.d.ts +2 -1
  30. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  31. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
  32. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  33. package/dist/types/generated/legal.entry.d.ts +1 -1
  34. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  35. package/docs/ar/intlayer_CMS.md +261 -85
  36. package/docs/ar/releases/v6.md +273 -0
  37. package/docs/ar/roadmap.md +1 -3
  38. package/docs/ar/vs_code_extension.md +94 -63
  39. package/docs/de/intlayer_CMS.md +247 -65
  40. package/docs/de/releases/v6.md +298 -0
  41. package/docs/de/roadmap.md +1 -3
  42. package/docs/de/vs_code_extension.md +89 -58
  43. package/docs/en/configuration.md +9 -2
  44. package/docs/en/intlayer_CMS.md +205 -23
  45. package/docs/en/intlayer_cli.md +4 -4
  46. package/docs/en/intlayer_visual_editor.md +7 -6
  47. package/docs/en/intlayer_with_nextjs_14.md +17 -1
  48. package/docs/en/intlayer_with_nextjs_15.md +17 -1
  49. package/docs/en/releases/v6.md +268 -0
  50. package/docs/en/roadmap.md +1 -3
  51. package/docs/en/vs_code_extension.md +79 -49
  52. package/docs/en-GB/intlayer_CMS.md +216 -52
  53. package/docs/en-GB/releases/v6.md +297 -0
  54. package/docs/en-GB/roadmap.md +1 -3
  55. package/docs/en-GB/vs_code_extension.md +79 -48
  56. package/docs/es/intlayer_CMS.md +257 -84
  57. package/docs/es/releases/v6.md +274 -0
  58. package/docs/es/roadmap.md +1 -3
  59. package/docs/es/vs_code_extension.md +90 -60
  60. package/docs/fr/intlayer_CMS.md +250 -68
  61. package/docs/fr/releases/v6.md +274 -0
  62. package/docs/fr/roadmap.md +1 -3
  63. package/docs/fr/vs_code_extension.md +94 -63
  64. package/docs/hi/intlayer_CMS.md +253 -77
  65. package/docs/hi/releases/v6.md +273 -0
  66. package/docs/hi/roadmap.md +1 -3
  67. package/docs/hi/vs_code_extension.md +92 -61
  68. package/docs/it/intlayer_CMS.md +251 -73
  69. package/docs/it/releases/v6.md +273 -0
  70. package/docs/it/roadmap.md +1 -3
  71. package/docs/it/vs_code_extension.md +94 -63
  72. package/docs/ja/intlayer_CMS.md +282 -97
  73. package/docs/ja/releases/v6.md +273 -0
  74. package/docs/ja/roadmap.md +1 -3
  75. package/docs/ja/vs_code_extension.md +99 -68
  76. package/docs/ko/intlayer_CMS.md +267 -93
  77. package/docs/ko/releases/v6.md +273 -0
  78. package/docs/ko/roadmap.md +1 -3
  79. package/docs/ko/vs_code_extension.md +88 -57
  80. package/docs/pt/intlayer_CMS.md +261 -83
  81. package/docs/pt/releases/v6.md +273 -0
  82. package/docs/pt/roadmap.md +1 -3
  83. package/docs/pt/vs_code_extension.md +89 -58
  84. package/docs/ru/intlayer_CMS.md +240 -65
  85. package/docs/ru/releases/v6.md +274 -0
  86. package/docs/ru/roadmap.md +1 -1
  87. package/docs/ru/vs_code_extension.md +83 -52
  88. package/docs/tr/intlayer_CMS.md +278 -96
  89. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  90. package/docs/tr/intlayer_with_tanstack.md +3 -0
  91. package/docs/tr/releases/v6.md +273 -0
  92. package/docs/tr/roadmap.md +1 -1
  93. package/docs/tr/vs_code_extension.md +100 -71
  94. package/docs/zh/intlayer_CMS.md +257 -76
  95. package/docs/zh/releases/v6.md +273 -0
  96. package/docs/zh/roadmap.md +1 -3
  97. package/docs/zh/vs_code_extension.md +99 -68
  98. package/package.json +11 -10
  99. package/src/blog.ts +1 -1
  100. package/src/common.ts +2 -6
  101. package/src/generated/blog.entry.ts +323 -1864
  102. package/src/generated/docs.entry.ts +1317 -6278
  103. package/src/generated/frequentQuestions.entry.ts +202 -1183
  104. package/src/generated/legal.entry.ts +48 -85
@@ -1,11 +1,11 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
4
- title: CMS Intlayer | Esterna il tuo contenuto nel CMS Intlayer
5
- description: Esterna il tuo contenuto nel CMS Intlayer per delegare la gestione del tuo contenuto al tuo team.
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 visuale
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 Content Management System (CMS) di Intlayer
22
+ # Documentazione del Sistema di Gestione dei Contenuti (CMS) di Intlayer
23
23
 
24
- <iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" 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&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
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&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
25
25
 
26
- Il CMS di Intlayer è un'applicazione che consente di esternalizzare i contenuti di un progetto Intlayer.
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 della barra di navigazione. Esternalizzare il contenuto non ha senso in questo caso perché questo contenuto non dovrebbe cambiare spesso.
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 consentire al tuo team di gestire direttamente i contenuti sul tuo sito web e mira anche a utilizzare funzionalità di test A/B e ottimizzazione automatica SEO.
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'[Editor Visivo di Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_visual_editor.md) è uno strumento che consente di gestire i contenuti in un editor visivo per i dizionari locali. Una volta apportata una modifica, il contenuto verrà sostituito nella base di codice. Ciò significa che l'applicazione verrà ricostruita e la pagina verrà ricaricata per visualizzare il nuovo contenuto.
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 consente di gestire i contenuti in un editor visivo per i dizionari remoti. Una volta apportata una modifica, il contenuto **non** influirà sulla base di codice. E il sito web visualizzerà automaticamente il contenuto modificato.
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 mirato dall'editor visivo.
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
- * Consentono di identificare l'utente che sta modificando il contenuto.
85
- * Possono essere ottenuti creando un nuovo client nella Dashboard di Intlayer - Progetti (https://intlayer.org/dashboard/projects).
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
- * Opzionale
93
+ * Facoltativo
94
94
  *
95
- * Nel caso in cui si stia ospitando autonomamente il CMS di Intlayer, è possibile impostare l'URL del CMS.
95
+ * Nel caso in cui stiate ospitando autonomamente l'Intlayer CMS, potete impostare l'URL del CMS.
96
96
  *
97
- * L'URL del CMS di Intlayer.
98
- * Per impostazione predefinita, è impostato su https://intlayer.org
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 si stia ospitando autonomamente il CMS di Intlayer, è possibile impostare l'URL del backend.
105
+ * Nel caso in cui stiate ospitando autonomamente l'Intlayer CMS, potete impostare l'URL del backend.
106
106
  *
107
- * L'URL del CMS di Intlayer.
108
- * Per impostazione predefinita, è impostato su https://back.intlayer.org
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
- * Questo è l'URL mirato dall'editor visivo.
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
- * Consentono di identificare l'utente che sta modificando il contenuto.
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 si stia ospitando autonomamente il CMS di Intlayer, è possibile impostare l'URL del CMS.
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 si stia ospitando autonomamente il CMS di Intlayer, è possibile impostare l'URL del backend.
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 backend di Intlayer.
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
- * Questo è l'URL mirato dall'editor visivo.
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
- * Consentono di identificare l'utente che sta modificando il contenuto.
185
- * Possono essere ottenuti creando un nuovo client nella Dashboard di Intlayer - Progetti (https://intlayer.org/dashboard/projects).
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 si stia ospitando autonomamente il CMS di Intlayer, è possibile impostare l'URL del CMS.
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 si stia ospitando autonomamente il CMS di Intlayer, è possibile impostare l'URL del backend.
205
+ * Nel caso in cui tu stia ospitando autonomamente l'Intlayer CMS, puoi impostare l'URL del backend.
203
206
  *
204
- * L'URL del backend di Intlayer.
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 nella [Dashboard di Intlayer - Progetti](https://intlayer.org/dashboard/projects).
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, consulta la [documentazione di configurazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md).
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
- ### Carica la tua configurazione
223
+ ### Invia la tua configurazione
221
224
 
222
- Per configurare il CMS di Intlayer, puoi utilizzare i comandi della [CLI di Intlayer](https://github.com/aymericzip/intlayer/tree/main/docs/it/intlayer_cli.md).
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 di ambiente nel tuo file di configurazione `intlayer.config.ts`, puoi specificare l'ambiente desiderato utilizzando l'argomento `--env`:
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 nel CMS di Intlayer.
237
+ Questo comando carica la tua configurazione sull'Intlayer CMS.
235
238
 
236
- ### Carica un dizionario
239
+ ### Caricare un dizionario
237
240
 
238
- Per trasformare i tuoi dizionari locali in un dizionario remoto, puoi utilizzare i comandi della [CLI di Intlayer](https://github.com/aymericzip/intlayer/tree/main/docs/it/intlayer_cli.md).
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 di ambiente nel tuo file di configurazione `intlayer.config.ts`, puoi specificare l'ambiente desiderato utilizzando l'argomento `--env`:
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, sarai in grado di visualizzare e gestire il tuo dizionario nel [CMS di Intlayer](https://intlayer.org/dashboard/content).
257
+ Successivamente potrai visualizzare e gestire il tuo dizionario nel [Intlayer CMS](https://intlayer.org/dashboard/content).
258
+
259
+ ## Sincronizzazione live
255
260
 
256
- ## Hot reloading
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
- Il CMS di Intlayer è in grado di ricaricare automaticamente i dizionari quando viene rilevata una modifica.
263
+ > Live Sync richiede una connessione continua al server ed è disponibile nel piano enterprise.
259
264
 
260
- Senza il ricaricamento automatico, sarà necessaria una nuova build dell'applicazione per visualizzare il nuovo contenuto.
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
- * Indica se l'applicazione dovrebbe ricaricare automaticamente le configurazioni locali quando viene rilevata una modifica.
273
- * Ad esempio, quando viene aggiunto o aggiornato un nuovo dizionario, l'applicazione aggiornerà il contenuto da visualizzare nella pagina.
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 ricaricamento automatico richiede una connessione continua al server, è disponibile solo per i clienti del piano `enterprise`.
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
- * Indica se l'applicazione dovrebbe ricaricare automaticamente le configurazioni locali quando viene rilevata una modifica.
295
- * Ad esempio, quando viene aggiunto o aggiornato un nuovo dizionario, l'applicazione aggiornerà il contenuto da visualizzare nella pagina.
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 ricaricamento automatico richiede una connessione continua al server, è disponibile solo per i clienti del piano `enterprise`.
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
- * Indica se l'applicazione dovrebbe ricaricare automaticamente le configurazioni locali quando viene rilevata una modifica.
317
- * Ad esempio, quando viene aggiunto o aggiornato un nuovo dizionario, l'applicazione aggiornerà il contenuto da visualizzare nella pagina.
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 ricaricamento automatico richiede una connessione continua al server, è disponibile solo per i clienti del piano `enterprise`.
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
+ ![Schema Logica Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
425
+
426
+ Come funziona:
427
+
428
+ ![Schema Flusso Live Sync CMS/Backend/Server Live Sync/Server Applicazione/Frontend](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
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
- Il ricaricamento automatico sostituisce il contenuto sia lato server che lato client.
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
- - Sul lato server, devi assicurarti che il processo dell'applicazione abbia accesso in scrittura alla directory `.intlayer/dictionaries`.
333
- - Sul lato client, il ricaricamento automatico consente all'applicazione di aggiornare il contenuto nel browser senza dover ricaricare la pagina. Tuttavia, questa funzionalità è disponibile solo per i componenti client.
334
- > Poiché il ricaricamento automatico richiede una connessione continua al server utilizzando un `EventListener`, è disponibile solo per i clienti del piano `enterprise`.
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
- - L'URL dell'applicazione deve corrispondere a quello impostato nella configurazione dell'editor (`applicationURL`).
345
- - L'URL del CMS
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 configurazione del progetto sia stata caricata nel CMS di Intlayer.
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 del documento
524
+ ## Cronologia della Documentazione
351
525
 
352
- - 5.5.10 - 2025-06-29: Inizio cronologia
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 |