@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/fr/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 | 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
|
|
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="
|
|
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&origin=http://intlayer.org&controls=0&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
|
|
36
|
+
- Un dictionnaire « local » est un dictionnaire déclaré dans votre projet Intlayer. Par exemple, le fichier de déclaration d’un bouton ou 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.
|
|
37
37
|
|
|
38
|
-
- Un dictionnaire
|
|
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 d’optimisation automatique SEO.
|
|
39
39
|
|
|
40
40
|
## Éditeur visuel vs CMS
|
|
41
41
|
|
|
42
|
-
L
|
|
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 l’application 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
|
|
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 n’impactera **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
|
|
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
|
|
52
|
+
Pour l’intégration avec Next.js, référez-vous au [guide d’installation](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
|
|
56
|
+
Pour l’intégration avec Create React App, référez-vous au [guide d’installation](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
|
|
60
|
+
Pour l’intégration avec Vite + React, référez-vous au [guide d’installation](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
|
|
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,
|
|
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
|
|
108
|
-
* Par défaut,
|
|
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
|
-
*
|
|
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
|
|
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,
|
|
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
|
|
158
|
-
* Par défaut,
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
185
|
-
* Ils peuvent être obtenus en créant un nouveau client dans le
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
##
|
|
221
|
+
## Utilisation du CMS
|
|
221
222
|
|
|
222
|
-
###
|
|
223
|
+
### Poussez votre configuration
|
|
223
224
|
|
|
224
|
-
Pour configurer le CMS Intlayer, vous pouvez utiliser les commandes du [CLI
|
|
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
|
|
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
|
|
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
|
|
257
|
+
Vous pourrez alors voir et gérer votre dictionnaire dans le [CMS Intlayer](https://intlayer.org/dashboard/content).
|
|
257
258
|
|
|
258
|
-
##
|
|
259
|
+
## Synchronisation en direct
|
|
259
260
|
|
|
260
|
-
|
|
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
|
-
|
|
263
|
-
|
|
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
|
-
*
|
|
275
|
-
* Par exemple, lorsqu'un
|
|
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,
|
|
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
|
-
*
|
|
297
|
-
* Par exemple, lorsqu'un
|
|
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
|
|
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
|
-
*
|
|
319
|
-
* Par exemple, lorsqu'un
|
|
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
|
|
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
|
+

|
|
425
|
+
|
|
426
|
+
Comment cela fonctionne :
|
|
427
|
+
|
|
428
|
+

|
|
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
|
-
|
|
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
|
-
-
|
|
335
|
-
-
|
|
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
|
-
|
|
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
|
-
-
|
|
346
|
-
- Champs
|
|
347
|
-
|
|
348
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 |
|