@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 | Externez votre contenu dans le CMS Intlayer
5
- description: Externez votre contenu dans le CMS Intlayer pour déléguer la gestion de votre contenu à votre équipe.
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
+ title: Intlayer CMS | Externalisez votre contenu dans le CMS Intlayer
5
+ description: Externalisez votre contenu dans le CMS Intlayer pour déléguer la gestion de votre contenu à votre équipe.
6
6
  keywords:
7
7
  - CMS
8
- - Éditeur visuel
8
+ - Éditeur Visuel
9
9
  - Internationalisation
10
10
  - Documentation
11
11
  - Intlayer
@@ -21,7 +21,7 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
21
21
 
22
22
  # Documentation du Système de Gestion de Contenu (CMS) 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="Éditeur Visuel + CMS pour votre application Web : Intlayer expliqué" 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
26
  Le CMS Intlayer est une application qui vous permet d'externaliser le contenu d'un projet Intlayer.
27
27
 
@@ -33,31 +33,31 @@ Pour cela, Intlayer introduit le concept de « dictionnaires distants ».
33
33
 
34
34
  Intlayer fait une distinction entre les dictionnaires « locaux » et « distants ».
35
35
 
36
- - Un dictionnaire 'local' est un dictionnaire déclaré dans votre projet Intlayer. Comme le fichier de déclaration d'un bouton ou de votre barre de navigation. Externaliser votre contenu n'a pas de sens dans ce cas car ce contenu n'est pas censé changer fréquemment.
36
+ - Un dictionnaire « local » est un dictionnaire déclaré dans votre projet Intlayer. Par exemple, le fichier de déclaration dun bouton ou votre barre de navigation. Externaliser votre contenu na pas de sens dans ce cas, car ce contenu nest pas censé changer fréquemment.
37
37
 
38
- - Un dictionnaire 'distant' est un dictionnaire géré via le CMS Intlayer. Cela peut être utile pour permettre à votre équipe de gérer directement le contenu de votre site web, et vise également à utiliser des fonctionnalités de tests A/B et d'optimisation automatique pour le SEO.
38
+ - Un dictionnaire « distant » est un dictionnaire géré via le CMS Intlayer. Cela peut être utile pour permettre à votre équipe de gérer directement votre contenu sur votre site web, et vise également à utiliser des fonctionnalités de tests A/B et doptimisation automatique SEO.
39
39
 
40
40
  ## Éditeur visuel vs CMS
41
41
 
42
- L'[éditeur visuel Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md) est un outil qui vous permet de gérer votre contenu dans un éditeur visuel pour les dictionnaires locaux. Une fois une modification effectuée, le contenu sera remplacé dans la base de code. Cela signifie que l'application sera reconstruite et que la page sera rechargée pour afficher le nouveau contenu.
42
+ L’éditeur [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md) est un outil qui vous permet de gérer votre contenu dans un éditeur visuel pour les dictionnaires locaux. Une fois qu’une modification est effectuée, le contenu sera remplacé dans la base de code. Cela signifie que lapplication sera reconstruite et que la page sera rechargée pour afficher le nouveau contenu.
43
43
 
44
- En revanche, le CMS Intlayer est un outil qui vous permet de gérer votre contenu dans un éditeur visuel pour les dictionnaires distants. Une fois une modification effectuée, le contenu **n'impactera pas** votre base de code. Et le site web affichera automatiquement le contenu modifié.
44
+ En revanche, le CMS Intlayer est un outil qui vous permet de gérer votre contenu dans un éditeur visuel pour les dictionnaires distants. Une fois qu’une modification est effectuée, le contenu nimpactera **pas** votre base de code. Et le site web affichera automatiquement le contenu modifié.
45
45
 
46
46
  ## Intégration
47
47
 
48
- Pour plus de détails sur l'installation du package, consultez la section correspondante ci-dessous :
48
+ Pour plus de détails sur la façon d’installer le package, consultez la section correspondante ci-dessous :
49
49
 
50
50
  ### Intégration avec Next.js
51
51
 
52
- Pour l'intégration avec Next.js, consultez le [guide d'installation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_nextjs_15.md).
52
+ Pour lintégration avec Next.js, référez-vous au [guide dinstallation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_nextjs_15.md).
53
53
 
54
54
  ### Intégration avec Create React App
55
55
 
56
- Pour l'intégration avec Create React App, consultez le [guide d'installation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_create_react_app.md).
56
+ Pour lintégration avec Create React App, référez-vous au [guide dinstallation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_create_react_app.md).
57
57
 
58
58
  ### Intégration avec Vite + React
59
59
 
60
- Pour l'intégration avec Vite + React, consultez le [guide d'installation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_vite+react.md).
60
+ Pour lintégration avec Vite + React, référez-vous au [guide dinstallation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_vite+react.md).
61
61
 
62
62
  ## Configuration
63
63
 
@@ -81,7 +81,7 @@ const config: IntlayerConfig = {
81
81
  * Obligatoire
82
82
  *
83
83
  * L'ID client et le secret client sont nécessaires pour activer l'éditeur.
84
- * Ils permettent d'identifier l'utilisateur qui modifie le contenu.
84
+ * Ils permettent d'identifier l'utilisateur qui édite le contenu.
85
85
  * Ils peuvent être obtenus en créant un nouveau client dans le tableau de bord Intlayer - Projets (https://intlayer.org/dashboard/projects).
86
86
  * clientId: process.env.INTLAYER_CLIENT_ID,
87
87
  * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
@@ -95,7 +95,7 @@ const config: IntlayerConfig = {
95
95
  * Dans le cas où vous hébergez vous-même le CMS Intlayer, vous pouvez définir l'URL du CMS.
96
96
  *
97
97
  * L'URL du CMS Intlayer.
98
- * Par défaut, il est défini sur https://intlayer.org
98
+ * Par défaut, elle est définie sur https://intlayer.org
99
99
  */
100
100
  cmsURL: process.env.INTLAYER_CMS_URL,
101
101
 
@@ -104,8 +104,8 @@ const config: IntlayerConfig = {
104
104
  *
105
105
  * Dans le cas où vous hébergez vous-même le CMS Intlayer, vous pouvez définir l'URL du backend.
106
106
  *
107
- * L'URL du CMS Intlayer.
108
- * Par défaut, il est défini sur https://back.intlayer.org
107
+ * L'URL du backend Intlayer.
108
+ * Par défaut, elle est définie sur https://back.intlayer.org
109
109
  */
110
110
  backendURL: process.env.INTLAYER_BACKEND_URL,
111
111
  },
@@ -128,10 +128,10 @@ const config = {
128
128
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
129
129
 
130
130
  /**
131
- * Obligatoire
131
+ * Requis
132
132
  *
133
133
  * L'ID client et le secret client sont nécessaires pour activer l'éditeur.
134
- * Ils permettent d'identifier l'utilisateur qui modifie le contenu.
134
+ * Ils permettent d'identifier l'utilisateur qui édite le contenu.
135
135
  * Ils peuvent être obtenus en créant un nouveau client dans le tableau de bord Intlayer - Projets (https://intlayer.org/dashboard/projects).
136
136
  * clientId: process.env.INTLAYER_CLIENT_ID,
137
137
  * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
@@ -145,7 +145,7 @@ const config = {
145
145
  * Dans le cas où vous hébergez vous-même le CMS Intlayer, vous pouvez définir l'URL du CMS.
146
146
  *
147
147
  * L'URL du CMS Intlayer.
148
- * Par défaut, il est défini sur https://intlayer.org
148
+ * Par défaut, elle est définie sur https://intlayer.org
149
149
  */
150
150
  cmsURL: process.env.INTLAYER_CMS_URL,
151
151
 
@@ -154,8 +154,8 @@ const config = {
154
154
  *
155
155
  * Dans le cas où vous hébergez vous-même le CMS Intlayer, vous pouvez définir l'URL du backend.
156
156
  *
157
- * L'URL du backend Intlayer.
158
- * Par défaut, il est défini sur https://back.intlayer.org
157
+ * L'URL du CMS Intlayer.
158
+ * Par défaut, elle est définie sur https://back.intlayer.org
159
159
  */
160
160
  backendURL: process.env.INTLAYER_BACKEND_URL,
161
161
  },
@@ -170,7 +170,7 @@ const config = {
170
170
  // ... autres paramètres de configuration
171
171
  editor: {
172
172
  /**
173
- * Obligatoire
173
+ * Requis
174
174
  *
175
175
  * L'URL de l'application.
176
176
  * C'est l'URL ciblée par l'éditeur visuel.
@@ -178,11 +178,11 @@ const config = {
178
178
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
179
179
 
180
180
  /**
181
- * Obligatoire
181
+ * Requis
182
182
  *
183
183
  * L'ID client et le secret client sont nécessaires pour activer l'éditeur.
184
- * Ils permettent d'identifier l'utilisateur qui modifie le contenu.
185
- * Ils peuvent être obtenus en créant un nouveau client dans le tableau de bord Intlayer - Projets (https://intlayer.org/dashboard/projects).
184
+ * Ils permettent d'identifier l'utilisateur qui édite le contenu.
185
+ * Ils peuvent être obtenus en créant un nouveau client dans le Tableau de bord Intlayer - Projets (https://intlayer.org/dashboard/projects).
186
186
  * clientId: process.env.INTLAYER_CLIENT_ID,
187
187
  * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
188
188
  */
@@ -195,7 +195,8 @@ const config = {
195
195
  * Dans le cas où vous hébergez vous-même le CMS Intlayer, vous pouvez définir l'URL du CMS.
196
196
  *
197
197
  * L'URL du CMS Intlayer.
198
- * Par défaut, il est défini sur https://intlayer.org
198
+ * Par défaut, elle est définie sur https://intlayer.org
199
+ */
199
200
  cmsURL: process.env.INTLAYER_CMS_URL,
200
201
 
201
202
  /**
@@ -203,7 +204,7 @@ const config = {
203
204
  *
204
205
  * Dans le cas où vous hébergez vous-même le CMS Intlayer, vous pouvez définir l'URL du backend.
205
206
  *
206
- * L'URL du backend Intlayer.
207
+ * L'URL du CMS Intlayer.
207
208
  * Par défaut, elle est définie sur https://back.intlayer.org
208
209
  */
209
210
  backendURL: process.env.INTLAYER_BACKEND_URL,
@@ -213,37 +214,37 @@ const config = {
213
214
  module.exports = config;
214
215
  ```
215
216
 
216
- > Si vous n'avez pas d'ID client et de secret client, vous pouvez les obtenir en créant un nouveau client dans le [tableau de bord Intlayer - Projets](https://intlayer.org/dashboard/projects).
217
+ > Si vous ne disposez pas d'un ID client et d'un secret client, vous pouvez les obtenir en créant un nouveau client dans le [Tableau de bord Intlayer - Projets](https://intlayer.org/dashboard/projects).
217
218
 
218
- > Pour voir tous les paramètres disponibles, consultez la [documentation de configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md).
219
+ > Pour voir tous les paramètres disponibles, référez-vous à la [documentation de configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md).
219
220
 
220
- ## Utiliser le CMS
221
+ ## Utilisation du CMS
221
222
 
222
- ### Pousser votre configuration
223
+ ### Poussez votre configuration
223
224
 
224
- Pour configurer le CMS Intlayer, vous pouvez utiliser les commandes du [CLI Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_cli.md).
225
+ Pour configurer le CMS Intlayer, vous pouvez utiliser les commandes du [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/fr/intlayer_cli.md).
225
226
 
226
227
  ```bash
227
228
  npx intlayer config push
228
229
  ```
229
230
 
230
- > Si vous utilisez des variables d'environnement dans votre fichier `intlayer.config.ts`, vous pouvez spécifier l'environnement souhaité en utilisant l'argument `--env` :
231
+ > Si vous utilisez des variables d'environnement dans votre fichier de configuration `intlayer.config.ts`, vous pouvez spécifier l'environnement souhaité en utilisant l'argument `--env` :
231
232
 
232
233
  ```bash
233
234
  npx intlayer config push --env production
234
235
  ```
235
236
 
236
- Cette commande télécharge votre configuration sur le CMS Intlayer.
237
+ Cette commande téléverse votre configuration vers le CMS Intlayer.
237
238
 
238
239
  ### Pousser un dictionnaire
239
240
 
240
- Pour transformer vos dictionnaires locaux en dictionnaires distants, vous pouvez utiliser les commandes du [CLI Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_cli.md).
241
+ Pour transformer vos dictionnaires de locale en un dictionnaire distant, vous pouvez utiliser les commandes du [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/fr/intlayer_cli.md).
241
242
 
242
243
  ```bash
243
244
  npx intlayer dictionary push -d my-first-dictionary-key
244
245
  ```
245
246
 
246
- > Si vous utilisez des variables d'environnement dans votre fichier `intlayer.config.ts`, vous pouvez spécifier l'environnement souhaité en utilisant l'argument `--env` :
247
+ > Si vous utilisez des variables d'environnement dans votre fichier de configuration `intlayer.config.ts`, vous pouvez spécifier l'environnement souhaité en utilisant l'argument `--env` :
247
248
 
248
249
  ```bash
249
250
  npx intlayer dictionary push -d my-first-dictionary-key --env production
@@ -253,14 +254,15 @@ Cette commande télécharge vos dictionnaires de contenu initiaux, les rendant d
253
254
 
254
255
  ### Modifier le dictionnaire
255
256
 
256
- Vous pourrez ensuite voir et gérer votre dictionnaire dans le [CMS Intlayer](https://intlayer.org/dashboard/content).
257
+ Vous pourrez alors voir et gérer votre dictionnaire dans le [CMS Intlayer](https://intlayer.org/dashboard/content).
257
258
 
258
- ## Rechargement à chaud
259
+ ## Synchronisation en direct
259
260
 
260
- Le CMS Intlayer est capable de recharger à chaud les dictionnaires lorsqu'un changement est détecté.
261
+ La synchronisation en direct permet à votre application de refléter les modifications du contenu CMS en temps réel. Aucune reconstruction ou redéploiement n'est nécessaire. Lorsqu'elle est activée, les mises à jour sont diffusées vers un serveur de synchronisation en direct qui actualise les dictionnaires que votre application utilise.
261
262
 
262
- Sans le rechargement à chaud, une nouvelle construction de l'application sera nécessaire pour afficher le nouveau contenu.
263
- En activant la configuration [`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration), l'application remplacera automatiquement le contenu mis à jour lorsqu'il est détecté.
263
+ > La synchronisation en direct nécessite une connexion continue au serveur et est disponible dans le plan entreprise.
264
+
265
+ Activez la synchronisation en direct en mettant à jour votre configuration Intlayer :
264
266
 
265
267
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
266
268
  import type { IntlayerConfig } from "intlayer";
@@ -268,18 +270,32 @@ import type { IntlayerConfig } from "intlayer";
268
270
  const config: IntlayerConfig = {
269
271
  // ... autres paramètres de configuration
270
272
  editor: {
271
- // ... autres paramètres de configuration
272
-
273
273
  /**
274
- * Indique si l'application doit recharger à chaud les configurations locales lorsqu'un changement est détecté.
275
- * Par exemple, lorsqu'un nouveau dictionnaire est ajouté ou mis à jour, l'application mettra à jour le contenu à afficher sur la page.
274
+ * Active le rechargement à chaud des configurations de langue lorsque des modifications sont détectées.
275
+ * Par exemple, lorsqu'un dictionnaire est ajouté ou mis à jour, l'application met à jour
276
+ * le contenu affiché sur la page.
276
277
  *
277
- * Comme le rechargement à chaud nécessite une connexion continue au serveur, il est uniquement disponible pour les clients du plan `enterprise`.
278
+ * Comme le rechargement à chaud nécessite une connexion continue au serveur,
279
+ * il est uniquement disponible pour les clients du plan `enterprise`.
278
280
  *
279
281
  * Par défaut : false
280
282
  */
281
283
  liveSync: true,
282
284
  },
285
+ build: {
286
+ /**
287
+ * Contrôle la manière dont les dictionnaires sont importés :
288
+ *
289
+ * - "live" : Les dictionnaires sont récupérés dynamiquement via l'API Live Sync.
290
+ * Remplace useIntlayer par useDictionaryDynamic.
291
+ *
292
+ * Remarque : Le mode live utilise l'API Live Sync pour récupérer les dictionnaires. Si l'appel API
293
+ * échoue, les dictionnaires sont importés dynamiquement.
294
+ * Remarque : Seuls les dictionnaires avec un contenu distant et le drapeau "live" utilisent le mode live.
295
+ * Les autres utilisent le mode dynamique pour des raisons de performance.
296
+ */
297
+ importMode: "live",
298
+ },
283
299
  };
284
300
 
285
301
  export default config;
@@ -290,18 +306,32 @@ export default config;
290
306
  const config = {
291
307
  // ... autres paramètres de configuration
292
308
  editor: {
293
- // ... autres paramètres de configuration
294
-
295
309
  /**
296
- * Indique si l'application doit recharger à chaud les configurations locales lorsqu'un changement est détecté.
297
- * Par exemple, lorsqu'un nouveau dictionnaire est ajouté ou mis à jour, l'application mettra à jour le contenu à afficher sur la page.
310
+ * Active le rechargement à chaud des configurations de langue lorsque des modifications sont détectées.
311
+ * Par exemple, lorsqu'un dictionnaire est ajouté ou mis à jour, l'application met à jour
312
+ * le contenu affiché sur la page.
298
313
  *
299
- * Comme le rechargement à chaud nécessite une connexion continue au serveur, il est uniquement disponible pour les clients du plan `enterprise`.
314
+ * Comme le rechargement à chaud nécessite une connexion continue au serveur, il est
315
+ * uniquement disponible pour les clients du plan `enterprise`.
300
316
  *
301
317
  * Par défaut : false
302
318
  */
303
319
  liveSync: true,
304
320
  },
321
+ build: {
322
+ /**
323
+ * Contrôle la manière dont les dictionnaires sont importés :
324
+ *
325
+ * - "live" : Les dictionnaires sont récupérés dynamiquement via l'API Live Sync.
326
+ * Remplace useIntlayer par useDictionaryDynamic.
327
+ *
328
+ * Remarque : Le mode live utilise l'API Live Sync pour récupérer les dictionnaires. Si l'appel API
329
+ * échoue, les dictionnaires sont importés dynamiquement.
330
+ * Note : Seuls les dictionnaires avec un contenu distant et le drapeau "live" utilisent le mode live.
331
+ * Les autres utilisent le mode dynamique pour des raisons de performance.
332
+ */
333
+ importMode: "live",
334
+ },
305
335
  };
306
336
 
307
337
  export default config;
@@ -312,29 +342,176 @@ export default config;
312
342
  const config = {
313
343
  // ... autres paramètres de configuration
314
344
  editor: {
315
- // ... autres paramètres de configuration
316
-
317
345
  /**
318
- * Indique si l'application doit recharger à chaud les configurations locales lorsqu'un changement est détecté.
319
- * Par exemple, lorsqu'un nouveau dictionnaire est ajouté ou mis à jour, l'application mettra à jour le contenu à afficher sur la page.
346
+ * Active le rechargement à chaud des configurations de langue lorsque des modifications sont détectées.
347
+ * Par exemple, lorsqu'un dictionnaire est ajouté ou mis à jour, l'application met à jour
348
+ * le contenu affiché sur la page.
320
349
  *
321
- * Comme le rechargement à chaud nécessite une connexion continue au serveur, il est uniquement disponible pour les clients du plan `enterprise`.
350
+ * Comme le rechargement à chaud nécessite une connexion continue au serveur, il est
351
+ * uniquement disponible pour les clients du plan `enterprise`.
322
352
  *
323
353
  * Par défaut : false
324
354
  */
325
355
  liveSync: true,
356
+
357
+ /**
358
+ * Le port du serveur Live Sync.
359
+ *
360
+ * Par défaut : 4000
361
+ */
362
+ liveSyncPort: 4000,
363
+
364
+ /**
365
+ * L'URL du serveur Live Sync.
366
+ *
367
+ * Par défaut : http://localhost:{liveSyncPort}
368
+ */
369
+ liveSyncURL: "https://live.example.com",
370
+ },
371
+ build: {
372
+ /**
373
+ * Contrôle la manière dont les dictionnaires sont importés :
374
+ *
375
+ * - "live" : Les dictionnaires sont récupérés dynamiquement via l'API Live Sync.
376
+ * Remplace useIntlayer par useDictionaryDynamic.
377
+ *
378
+ * Remarque : Le mode live utilise l'API Live Sync pour récupérer les dictionnaires. Si l'appel API
379
+ * échoue, les dictionnaires sont importés dynamiquement.
380
+ * Remarque : Seuls les dictionnaires avec un contenu distant et des indicateurs "live" utilisent le mode live.
381
+ * Les autres utilisent le mode dynamique pour des raisons de performance.
382
+ */
383
+ importMode: "live",
384
+ },
385
+ };
386
+
387
+ module.exports = config;
388
+ ```
389
+
390
+ Démarrez le serveur Live Sync pour envelopper votre application :
391
+
392
+ Exemple avec Next.js :
393
+
394
+ ```json5 fileName="package.json"
395
+ {
396
+ "scripts": {
397
+ // ... autres scripts
398
+ "build": "next build",
399
+ "dev": "next dev",
400
+ "start": "npx intlayer live --process 'next start'",
401
+ },
402
+ }
403
+ ```
404
+
405
+ Exemple avec Vite :
406
+
407
+ ```json5 fileName="package.json"
408
+ {
409
+ "scripts": {
410
+ // ... autres scripts
411
+ "build": "vite build",
412
+ "dev": "vite dev",
413
+ "start": "npx intlayer live --process 'vite start'",
414
+ },
415
+ }
416
+ ```
417
+
418
+ Le serveur Live Sync enveloppe votre application et applique automatiquement le contenu mis à jour dès son arrivée.
419
+
420
+ Pour recevoir les notifications de changement depuis le CMS, le serveur Live Sync maintient une connexion SSE avec le backend. Lorsque le contenu change dans le CMS, le backend transmet la mise à jour au serveur Live Sync, qui écrit les nouveaux dictionnaires. Votre application reflétera la mise à jour lors de la prochaine navigation ou du rechargement du navigateur — aucune reconstruction n’est nécessaire.
421
+
422
+ Organigramme (CMS/Backend -> Serveur Live Sync -> Serveur d’application -> Frontend) :
423
+
424
+ ![Schéma logique Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
425
+
426
+ Comment cela fonctionne :
427
+
428
+ ![Schéma du flux Live Sync CMS/Backend/Serveur Live Sync/Serveur d’application/Frontend](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
429
+
430
+ ### Flux de travail en développement (local)
431
+
432
+ - En développement, tous les dictionnaires distants sont récupérés au démarrage de l'application, ce qui vous permet de tester rapidement les mises à jour.
433
+ - Pour tester Live Sync localement avec Next.js, encapsulez votre serveur de développement :
434
+
435
+ ```json5 fileName="package.json"
436
+ {
437
+ "scripts": {
438
+ // ... autres scripts
439
+ "dev": "npx intlayer live --process 'next dev'",
440
+ // "dev": "npx intlayer live --process 'vite dev'", // Pour Vite
441
+ },
442
+ }
443
+ ```
444
+
445
+ Activez l'optimisation afin qu'Intlayer applique les transformations d'importation Live pendant le développement :
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",
326
493
  },
327
494
  };
328
495
 
329
496
  module.exports = config;
330
497
  ```
331
498
 
332
- Le rechargement à chaud remplace le contenu à la fois côté serveur et côté client.
499
+ Cette configuration encapsule votre serveur de développement avec le serveur Live Sync, récupère les dictionnaires distants au démarrage et diffuse les mises à jour du CMS via SSE. Rafraîchissez la page pour voir les changements.
500
+
501
+ Notes et contraintes :
333
502
 
334
- - Côté serveur, vous devez vous assurer que le processus de l'application a un accès en écriture au répertoire `.intlayer/dictionaries`.
335
- - Côté client, le rechargement à chaud permet à l'application de recharger à chaud le contenu dans le navigateur, sans avoir besoin de recharger la page. Cependant, cette fonctionnalité est uniquement disponible pour les composants clients.
503
+ - Ajoutez l'origine de live sync à votre politique de sécurité du site (CSP). Assurez-vous que l'URL de live sync est autorisée dans `connect-src` (et `frame-ancestors` si pertinent).
504
+ - Live Sync ne fonctionne pas avec une sortie statique. Pour Next.js, la page doit être dynamique pour recevoir les mises à jour à l'exécution (par exemple, utilisez `generateStaticParams`, `generateMetadata`, `getServerSideProps` ou `getStaticProps` de manière appropriée pour éviter les contraintes de statique complète).
336
505
 
337
- > Comme le rechargement à chaud nécessite une connexion continue au serveur via un `EventListener`, il est uniquement disponible pour les clients du plan `enterprise`.
506
+ Cette configuration enveloppe votre serveur de développement avec le serveur Live Sync, récupère les dictionnaires distants au démarrage, et diffuse les mises à jour du CMS via SSE. Actualisez la page pour voir les changements.
507
+
508
+ Notes et contraintes :
509
+
510
+ - Ajoutez l'origine du live sync à la politique de sécurité de votre site (CSP). Assurez-vous que l'URL du live sync est autorisée dans `connect-src` (et `frame-ancestors` si pertinent).
511
+ - Live Sync ne fonctionne pas avec une sortie statique. Pour Next.js, la page doit être dynamique pour recevoir les mises à jour à l'exécution (par exemple, utilisez `generateStaticParams`, `generateMetadata`, `getServerSideProps` ou `getStaticProps` de manière appropriée pour éviter les contraintes de statique complète).
512
+ - Dans le CMS, chaque dictionnaire possède un indicateur `live`. Seuls les dictionnaires avec `live=true` sont récupérés via l'API de synchronisation en direct ; les autres sont importés dynamiquement et restent inchangés à l'exécution.
513
+ - L'indicateur `live` est évalué pour chaque dictionnaire au moment de la compilation. Si le contenu distant n'était pas marqué `live=true` lors de la compilation, vous devez recompiler pour activer la synchronisation en direct pour ce dictionnaire.
514
+ - Le serveur de synchronisation en direct doit pouvoir écrire dans `.intlayer`. Dans les conteneurs, assurez-vous d'avoir un accès en écriture à `/.intlayer`.
338
515
 
339
516
  ## Débogage
340
517
 
@@ -342,14 +519,19 @@ Si vous rencontrez des problèmes avec le CMS, vérifiez les points suivants :
342
519
 
343
520
  - L'application est en cours d'exécution.
344
521
 
345
- - Les paramètres de configuration de l'[éditeur](https://intlayer.org/doc/concept/configuration#editor-configuration) sont correctement définis dans votre fichier de configuration Intlayer.
346
- - Champs obligatoires :
347
- - L'URL de l'application doit correspondre à celle que vous avez définie dans la configuration de l'éditeur (`applicationURL`).
348
- - L'URL du CMS.
522
+ - La configuration de [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) est correctement définie dans votre fichier de configuration Intlayer.
523
+ - Champs requis :
524
+ - L'URL de l'application doit correspondre à celle que vous avez définie dans la configuration de l'éditeur (`applicationURL`).
525
+ - L'URL du CMS
349
526
 
350
527
  - Assurez-vous que la configuration du projet a été poussée vers le CMS Intlayer.
351
- - L'éditeur visuel utilise une iframe pour afficher votre site web. Assurez-vous que la politique de sécurité du contenu (CSP) de votre site web autorise l'URL du CMS comme `frame-ancestors` ('https://intlayer.org' par défaut). Vérifiez la console de l'éditeur pour toute erreur.
528
+
529
+ - L'éditeur visuel utilise un iframe pour afficher votre site web. Assurez-vous que la politique de sécurité du contenu (Content Security Policy, CSP) de votre site autorise l'URL du CMS en tant que `frame-ancestors` ('https://intlayer.org' par défaut). Vérifiez la console de l'éditeur pour toute erreur.
352
530
 
353
531
  ## Historique de la documentation
354
532
 
355
- - 5.5.10 - 2025-06-29 : Historique initial
533
+ | Version | Date | Modifications |
534
+ | ------- | ---------- | ---------------------------------------------------------- |
535
+ | 6.0.1 | 2025-09-22 | Ajout de la documentation sur la synchronisation en direct |
536
+ | 6.0.0 | 2025-09-04 | Remplacement du champ `hotReload` par `liveSync` |
537
+ | 5.5.10 | 2025-06-29 | Historique initial |