@intlayer/docs 6.0.1 → 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/es/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 | Externaliza tu contenido en el Intlayer CMS
|
|
5
|
+
description: Externaliza tu contenido en el Intlayer CMS para delegar la gestión de tu contenido a tu equipo.
|
|
6
6
|
keywords:
|
|
7
7
|
- CMS
|
|
8
|
-
- Editor
|
|
8
|
+
- Editor Visual
|
|
9
9
|
- Internacionalización
|
|
10
10
|
- Documentación
|
|
11
11
|
- Intlayer
|
|
@@ -21,27 +21,27 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
|
|
|
21
21
|
|
|
22
22
|
# Documentación del Sistema de Gestión de Contenidos (CMS) de Intlayer
|
|
23
23
|
|
|
24
|
-
<iframe title="Visual
|
|
24
|
+
<iframe title="Editor Visual + CMS para tu Aplicación Web: Explicación de Intlayer" 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
|
-
El CMS de Intlayer es una aplicación que te permite externalizar el contenido de un proyecto
|
|
26
|
+
El CMS de Intlayer es una aplicación que te permite externalizar el contenido de un proyecto Intlayer.
|
|
27
27
|
|
|
28
|
-
Para ello, Intlayer introduce el concepto de 'diccionarios
|
|
28
|
+
Para ello, Intlayer introduce el concepto de 'diccionarios distantes'.
|
|
29
29
|
|
|
30
30
|

|
|
31
31
|
|
|
32
|
-
## Entendiendo los diccionarios
|
|
32
|
+
## Entendiendo los diccionarios distantes
|
|
33
33
|
|
|
34
|
-
Intlayer diferencia entre diccionarios 'locales' y '
|
|
34
|
+
Intlayer diferencia entre diccionarios 'locales' y 'distantes'.
|
|
35
35
|
|
|
36
|
-
- Un diccionario 'local' es un diccionario que se declara en tu proyecto
|
|
36
|
+
- Un diccionario 'local' es un diccionario que se declara en tu proyecto Intlayer. Como el archivo de declaración de un botón, o tu barra de navegación. Externalizar tu contenido no tiene sentido en este caso porque se supone que este contenido no debe cambiar con frecuencia.
|
|
37
37
|
|
|
38
|
-
- Un diccionario '
|
|
38
|
+
- Un diccionario 'distante' es un diccionario que se gestiona a través del CMS de Intlayer. Puede ser útil para permitir que tu equipo gestione el contenido directamente en tu sitio web, y también tiene como objetivo utilizar funciones de pruebas A/B y optimización automática para SEO.
|
|
39
39
|
|
|
40
40
|
## Editor visual vs CMS
|
|
41
41
|
|
|
42
|
-
El [
|
|
42
|
+
El editor [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_visual_editor.md) es una herramienta que te permite gestionar tu contenido en un editor visual para diccionarios locales. Una vez que se realiza un cambio, el contenido será reemplazado en la base de código. Eso significa que la aplicación se reconstruirá y la página se recargará para mostrar el nuevo contenido.
|
|
43
43
|
|
|
44
|
-
En contraste, el CMS de Intlayer es una herramienta que te permite gestionar tu contenido en un editor visual para diccionarios
|
|
44
|
+
En contraste, el CMS de Intlayer es una herramienta que te permite gestionar tu contenido en un editor visual para diccionarios distantes. Una vez que se realiza un cambio, el contenido **no** afectará tu base de código. Y el sitio web mostrará automáticamente el contenido modificado.
|
|
45
45
|
|
|
46
46
|
## Integración
|
|
47
47
|
|
|
@@ -67,20 +67,20 @@ En tu archivo de configuración de Intlayer, puedes personalizar los ajustes del
|
|
|
67
67
|
import type { IntlayerConfig } from "intlayer";
|
|
68
68
|
|
|
69
69
|
const config: IntlayerConfig = {
|
|
70
|
-
// ...
|
|
70
|
+
// ... otras configuraciones
|
|
71
71
|
editor: {
|
|
72
72
|
/**
|
|
73
73
|
* Requerido
|
|
74
74
|
*
|
|
75
75
|
* La URL de la aplicación.
|
|
76
|
-
* Esta es la URL
|
|
76
|
+
* Esta es la URL a la que apunta el editor visual.
|
|
77
77
|
*/
|
|
78
78
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
81
|
* Requerido
|
|
82
82
|
*
|
|
83
|
-
*
|
|
83
|
+
* El ID de cliente y el secreto de cliente son necesarios para habilitar el editor.
|
|
84
84
|
* Permiten identificar al usuario que está editando el contenido.
|
|
85
85
|
* Se pueden obtener creando un nuevo cliente en el Panel de Intlayer - Proyectos (https://intlayer.org/dashboard/projects).
|
|
86
86
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
@@ -92,20 +92,20 @@ const config: IntlayerConfig = {
|
|
|
92
92
|
/**
|
|
93
93
|
* Opcional
|
|
94
94
|
*
|
|
95
|
-
* En caso de que
|
|
95
|
+
* En caso de que esté alojando el Intlayer CMS por su cuenta, puede configurar la URL del CMS.
|
|
96
96
|
*
|
|
97
|
-
* La URL del CMS
|
|
98
|
-
* Por defecto, está configurada
|
|
97
|
+
* La URL del Intlayer CMS.
|
|
98
|
+
* Por defecto, está configurada a https://intlayer.org
|
|
99
99
|
*/
|
|
100
100
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
103
|
* Opcional
|
|
104
104
|
*
|
|
105
|
-
* En caso de que
|
|
105
|
+
* En caso de que esté alojando el Intlayer CMS por su cuenta, puede configurar la URL del backend.
|
|
106
106
|
*
|
|
107
|
-
* La URL del CMS
|
|
108
|
-
* Por defecto, está configurada
|
|
107
|
+
* La URL del Intlayer CMS.
|
|
108
|
+
* Por defecto, está configurada a https://back.intlayer.org
|
|
109
109
|
*/
|
|
110
110
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
111
111
|
},
|
|
@@ -117,20 +117,20 @@ export default config;
|
|
|
117
117
|
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
118
118
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
119
119
|
const config = {
|
|
120
|
-
// ...
|
|
120
|
+
// ... otras configuraciones
|
|
121
121
|
editor: {
|
|
122
122
|
/**
|
|
123
123
|
* Requerido
|
|
124
124
|
*
|
|
125
125
|
* La URL de la aplicación.
|
|
126
|
-
* Esta es la URL
|
|
126
|
+
* Esta es la URL a la que apunta el editor visual.
|
|
127
127
|
*/
|
|
128
128
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
131
|
* Requerido
|
|
132
132
|
*
|
|
133
|
-
*
|
|
133
|
+
* El ID de cliente y el secreto de cliente son necesarios para habilitar el editor.
|
|
134
134
|
* Permiten identificar al usuario que está editando el contenido.
|
|
135
135
|
* Se pueden obtener creando un nuevo cliente en el Panel de Intlayer - Proyectos (https://intlayer.org/dashboard/projects).
|
|
136
136
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
@@ -142,20 +142,20 @@ const config = {
|
|
|
142
142
|
/**
|
|
143
143
|
* Opcional
|
|
144
144
|
*
|
|
145
|
-
* En caso de que
|
|
145
|
+
* En caso de que esté alojando el Intlayer CMS por su cuenta, puede configurar la URL del CMS.
|
|
146
146
|
*
|
|
147
147
|
* La URL del CMS de Intlayer.
|
|
148
|
-
* Por defecto, está configurada
|
|
148
|
+
* Por defecto, está configurada a https://intlayer.org
|
|
149
149
|
*/
|
|
150
150
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
151
151
|
|
|
152
152
|
/**
|
|
153
153
|
* Opcional
|
|
154
154
|
*
|
|
155
|
-
* En caso de que estés alojando el CMS de Intlayer por tu cuenta, puedes
|
|
155
|
+
* En caso de que estés alojando el CMS de Intlayer por tu cuenta, puedes configurar la URL del backend.
|
|
156
156
|
*
|
|
157
157
|
* La URL del CMS de Intlayer.
|
|
158
|
-
* Por defecto, está configurada
|
|
158
|
+
* Por defecto, está configurada a https://back.intlayer.org
|
|
159
159
|
*/
|
|
160
160
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
161
161
|
},
|
|
@@ -167,20 +167,20 @@ export default config;
|
|
|
167
167
|
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
168
168
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
169
169
|
const config = {
|
|
170
|
-
// ...
|
|
170
|
+
// ... otras configuraciones
|
|
171
171
|
editor: {
|
|
172
172
|
/**
|
|
173
173
|
* Requerido
|
|
174
174
|
*
|
|
175
175
|
* La URL de la aplicación.
|
|
176
|
-
* Esta es la URL
|
|
176
|
+
* Esta es la URL a la que apunta el editor visual.
|
|
177
177
|
*/
|
|
178
178
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
179
179
|
|
|
180
180
|
/**
|
|
181
181
|
* Requerido
|
|
182
182
|
*
|
|
183
|
-
*
|
|
183
|
+
* El ID de cliente y el secreto de cliente son necesarios para habilitar el editor.
|
|
184
184
|
* Permiten identificar al usuario que está editando el contenido.
|
|
185
185
|
* Se pueden obtener creando un nuevo cliente en el Panel de Intlayer - Proyectos (https://intlayer.org/dashboard/projects).
|
|
186
186
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
@@ -192,19 +192,20 @@ const config = {
|
|
|
192
192
|
/**
|
|
193
193
|
* Opcional
|
|
194
194
|
*
|
|
195
|
-
* En caso de que estés alojando el CMS de Intlayer por tu cuenta, puedes
|
|
195
|
+
* En caso de que estés alojando el CMS de Intlayer por tu cuenta, puedes configurar la URL del CMS.
|
|
196
196
|
*
|
|
197
197
|
* La URL del CMS de Intlayer.
|
|
198
|
-
* Por defecto, está configurada
|
|
198
|
+
* Por defecto, está configurada a https://intlayer.org
|
|
199
|
+
*/
|
|
199
200
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
200
201
|
|
|
201
202
|
/**
|
|
202
203
|
* Opcional
|
|
203
204
|
*
|
|
204
|
-
* En caso de que estés alojando el CMS
|
|
205
|
+
* En caso de que estés alojando el Intlayer CMS por tu cuenta, puedes configurar la URL del backend.
|
|
205
206
|
*
|
|
206
|
-
* La URL del CMS
|
|
207
|
-
* Por defecto, está configurada
|
|
207
|
+
* La URL del Intlayer CMS.
|
|
208
|
+
* Por defecto, está configurada en https://back.intlayer.org
|
|
208
209
|
*/
|
|
209
210
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
210
211
|
},
|
|
@@ -217,11 +218,11 @@ module.exports = config;
|
|
|
217
218
|
|
|
218
219
|
> Para ver todos los parámetros disponibles, consulta la [documentación de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md).
|
|
219
220
|
|
|
220
|
-
##
|
|
221
|
+
## Uso del CMS
|
|
221
222
|
|
|
222
|
-
###
|
|
223
|
+
### Enviar tu configuración
|
|
223
224
|
|
|
224
|
-
Para configurar el CMS
|
|
225
|
+
Para configurar el Intlayer CMS, puedes usar los comandos del [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/es/intlayer_cli.md).
|
|
225
226
|
|
|
226
227
|
```bash
|
|
227
228
|
npx intlayer config push
|
|
@@ -233,11 +234,11 @@ npx intlayer config push
|
|
|
233
234
|
npx intlayer config push --env production
|
|
234
235
|
```
|
|
235
236
|
|
|
236
|
-
Este comando sube tu configuración al CMS
|
|
237
|
+
Este comando sube tu configuración al Intlayer CMS.
|
|
237
238
|
|
|
238
|
-
###
|
|
239
|
+
### Subir un diccionario
|
|
239
240
|
|
|
240
|
-
Para transformar tus diccionarios
|
|
241
|
+
Para transformar tus diccionarios de localización en un diccionario remoto, puedes usar los comandos del [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/es/intlayer_cli.md).
|
|
241
242
|
|
|
242
243
|
```bash
|
|
243
244
|
npx intlayer dictionary push -d my-first-dictionary-key
|
|
@@ -249,37 +250,52 @@ npx intlayer dictionary push -d my-first-dictionary-key
|
|
|
249
250
|
npx intlayer dictionary push -d my-first-dictionary-key --env production
|
|
250
251
|
```
|
|
251
252
|
|
|
252
|
-
Este comando sube tus diccionarios de contenido
|
|
253
|
+
Este comando sube tus diccionarios de contenido inicial, haciéndolos disponibles para su obtención y edición asíncrona a través de la plataforma Intlayer.
|
|
254
|
+
|
|
255
|
+
### Editar el diccionario
|
|
253
256
|
|
|
254
|
-
|
|
257
|
+
Luego podrás ver y gestionar tu diccionario en el [Intlayer CMS](https://intlayer.org/dashboard/content).
|
|
255
258
|
|
|
256
|
-
|
|
259
|
+
## Sincronización en vivo
|
|
257
260
|
|
|
258
|
-
|
|
261
|
+
La sincronización en vivo permite que tu aplicación refleje los cambios de contenido del CMS en tiempo de ejecución. No se requiere reconstrucción ni redepliegue. Cuando está habilitada, las actualizaciones se transmiten a un servidor de sincronización en vivo que actualiza los diccionarios que tu aplicación lee.
|
|
259
262
|
|
|
260
|
-
|
|
263
|
+
> Live Sync requiere una conexión continua al servidor y está disponible en el plan enterprise.
|
|
261
264
|
|
|
262
|
-
|
|
263
|
-
Al activar la configuración [`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration), la aplicación reemplazará automáticamente el contenido actualizado cuando sea detectado.
|
|
265
|
+
Habilita Live Sync actualizando tu configuración de Intlayer:
|
|
264
266
|
|
|
265
267
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
266
268
|
import type { IntlayerConfig } from "intlayer";
|
|
267
269
|
|
|
268
270
|
const config: IntlayerConfig = {
|
|
269
|
-
// ...
|
|
271
|
+
// ... otras configuraciones
|
|
270
272
|
editor: {
|
|
271
|
-
// ... otros ajustes de configuración
|
|
272
|
-
|
|
273
273
|
/**
|
|
274
|
-
*
|
|
275
|
-
* Por ejemplo, cuando se
|
|
274
|
+
* Habilita la recarga en caliente de las configuraciones de localización cuando se detectan cambios.
|
|
275
|
+
* Por ejemplo, cuando se añade o actualiza un diccionario, la aplicación actualiza
|
|
276
|
+
* el contenido mostrado en la página.
|
|
276
277
|
*
|
|
277
|
-
* Debido a que la recarga en caliente
|
|
278
|
+
* Debido a que la recarga en caliente requiere una conexión continua al servidor,
|
|
279
|
+
* solo está disponible para clientes del plan `enterprise`.
|
|
278
280
|
*
|
|
279
281
|
* Por defecto: false
|
|
280
282
|
*/
|
|
281
283
|
liveSync: true,
|
|
282
284
|
},
|
|
285
|
+
build: {
|
|
286
|
+
/**
|
|
287
|
+
* Controla cómo se importan los diccionarios:
|
|
288
|
+
*
|
|
289
|
+
* - "live": Los diccionarios se obtienen dinámicamente usando la API de Live Sync.
|
|
290
|
+
* Reemplaza useIntlayer por useDictionaryDynamic.
|
|
291
|
+
*
|
|
292
|
+
* Nota: El modo live usa la API de Live Sync para obtener los diccionarios. Si la llamada a la API
|
|
293
|
+
* falla, los diccionarios se importan dinámicamente.
|
|
294
|
+
* Nota: Solo los diccionarios con contenido remoto y la bandera "live" usan el modo live.
|
|
295
|
+
* Los demás usan el modo dinámico para mejorar el rendimiento.
|
|
296
|
+
*/
|
|
297
|
+
importMode: "live",
|
|
298
|
+
},
|
|
283
299
|
};
|
|
284
300
|
|
|
285
301
|
export default config;
|
|
@@ -288,20 +304,34 @@ export default config;
|
|
|
288
304
|
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
289
305
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
290
306
|
const config = {
|
|
291
|
-
// ...
|
|
307
|
+
// ... otras configuraciones
|
|
292
308
|
editor: {
|
|
293
|
-
// ... otros ajustes de configuración
|
|
294
|
-
|
|
295
309
|
/**
|
|
296
|
-
*
|
|
297
|
-
* Por ejemplo, cuando se
|
|
310
|
+
* Habilita la recarga en caliente de las configuraciones de localización cuando se detectan cambios.
|
|
311
|
+
* Por ejemplo, cuando se añade o actualiza un diccionario, la aplicación actualiza
|
|
312
|
+
* el contenido mostrado en la página.
|
|
298
313
|
*
|
|
299
|
-
* Debido a que la recarga en caliente
|
|
314
|
+
* Debido a que la recarga en caliente requiere una conexión continua con el servidor,
|
|
315
|
+
* solo está disponible para clientes del plan `enterprise`.
|
|
300
316
|
*
|
|
301
317
|
* Por defecto: false
|
|
302
318
|
*/
|
|
303
319
|
liveSync: true,
|
|
304
320
|
},
|
|
321
|
+
build: {
|
|
322
|
+
/**
|
|
323
|
+
* Controla cómo se importan los diccionarios:
|
|
324
|
+
*
|
|
325
|
+
* - "live": Los diccionarios se obtienen dinámicamente usando la API de Live Sync.
|
|
326
|
+
* Reemplaza useIntlayer por useDictionaryDynamic.
|
|
327
|
+
*
|
|
328
|
+
* Nota: El modo live usa la API de Live Sync para obtener los diccionarios. Si la llamada a la API
|
|
329
|
+
* falla, los diccionarios se importan dinámicamente.
|
|
330
|
+
* Nota: Solo los diccionarios con contenido remoto y la bandera "live" usan el modo en vivo.
|
|
331
|
+
* Otros usan el modo dinámico para mejorar el rendimiento.
|
|
332
|
+
*/
|
|
333
|
+
importMode: "live",
|
|
334
|
+
},
|
|
305
335
|
};
|
|
306
336
|
|
|
307
337
|
export default config;
|
|
@@ -310,45 +340,188 @@ export default config;
|
|
|
310
340
|
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
311
341
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
312
342
|
const config = {
|
|
313
|
-
// ...
|
|
343
|
+
// ... otras configuraciones
|
|
314
344
|
editor: {
|
|
315
|
-
// ... otros ajustes de configuración
|
|
316
|
-
|
|
317
345
|
/**
|
|
318
|
-
*
|
|
319
|
-
* Por ejemplo, cuando se
|
|
346
|
+
* Habilita la recarga en caliente de las configuraciones de localización cuando se detectan cambios.
|
|
347
|
+
* Por ejemplo, cuando se añade o actualiza un diccionario, la aplicación actualiza
|
|
348
|
+
* el contenido mostrado en la página.
|
|
320
349
|
*
|
|
321
|
-
* Debido a que la recarga en caliente
|
|
350
|
+
* Debido a que la recarga en caliente requiere una conexión continua con el servidor,
|
|
351
|
+
* solo está disponible para clientes del plan `enterprise`.
|
|
322
352
|
*
|
|
323
353
|
* Por defecto: false
|
|
324
354
|
*/
|
|
325
355
|
liveSync: true,
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* El puerto del servidor Live Sync.
|
|
359
|
+
*
|
|
360
|
+
* Predeterminado: 4000
|
|
361
|
+
*/
|
|
362
|
+
liveSyncPort: 4000,
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* La URL del servidor Live Sync.
|
|
366
|
+
*
|
|
367
|
+
* Predeterminado: http://localhost:{liveSyncPort}
|
|
368
|
+
*/
|
|
369
|
+
liveSyncURL: "https://live.example.com",
|
|
370
|
+
},
|
|
371
|
+
build: {
|
|
372
|
+
/**
|
|
373
|
+
* Controla cómo se importan los diccionarios:
|
|
374
|
+
*
|
|
375
|
+
* - "live": Los diccionarios se obtienen dinámicamente usando la API de Live Sync.
|
|
376
|
+
* Reemplaza useIntlayer por useDictionaryDynamic.
|
|
377
|
+
*
|
|
378
|
+
* Nota: El modo en vivo usa la API de Live Sync para obtener los diccionarios. Si la llamada a la API
|
|
379
|
+
* falla, los diccionarios se importan dinámicamente.
|
|
380
|
+
* Nota: Solo los diccionarios con contenido remoto y la bandera "live" usan el modo en vivo.
|
|
381
|
+
* Otros usan el modo dinámico para mejorar el rendimiento.
|
|
382
|
+
*/
|
|
383
|
+
importMode: "live",
|
|
326
384
|
},
|
|
327
385
|
};
|
|
328
386
|
|
|
329
387
|
module.exports = config;
|
|
330
388
|
```
|
|
331
389
|
|
|
332
|
-
|
|
390
|
+
Inicie el servidor Live Sync para envolver su aplicación:
|
|
391
|
+
|
|
392
|
+
Ejemplo usando Next.js:
|
|
393
|
+
|
|
394
|
+
```json5 fileName="package.json"
|
|
395
|
+
{
|
|
396
|
+
"scripts": {
|
|
397
|
+
// ... otros scripts
|
|
398
|
+
"build": "next build",
|
|
399
|
+
"dev": "next dev",
|
|
400
|
+
"start": "npx intlayer live --process 'next start'",
|
|
401
|
+
},
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Ejemplo usando Vite:
|
|
406
|
+
|
|
407
|
+
```json5 fileName="package.json"
|
|
408
|
+
{
|
|
409
|
+
"scripts": {
|
|
410
|
+
// ... otros scripts
|
|
411
|
+
"build": "vite build",
|
|
412
|
+
"dev": "vite dev",
|
|
413
|
+
"start": "npx intlayer live --process 'vite start'",
|
|
414
|
+
},
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
El servidor Live Sync envuelve su aplicación y aplica automáticamente el contenido actualizado a medida que llega.
|
|
419
|
+
|
|
420
|
+
Para recibir notificaciones de cambios desde el CMS, el servidor Live Sync mantiene una conexión SSE con el backend. Cuando el contenido cambia en el CMS, el backend envía la actualización al servidor Live Sync, que escribe los nuevos diccionarios. Su aplicación reflejará la actualización en la siguiente navegación o recarga del navegador, sin necesidad de reconstrucción.
|
|
421
|
+
|
|
422
|
+
Diagrama de flujo (CMS/Backend -> Servidor Live Sync -> Servidor de Aplicación -> Frontend):
|
|
423
|
+
|
|
424
|
+

|
|
425
|
+
|
|
426
|
+
Cómo funciona:
|
|
427
|
+
|
|
428
|
+

|
|
429
|
+
|
|
430
|
+
### Flujo de trabajo de desarrollo (local)
|
|
431
|
+
|
|
432
|
+
docs/ko/intlayer_CMS.md
|
|
433
|
+
|
|
434
|
+
- En desarrollo, todos los diccionarios remotos se obtienen cuando la aplicación se inicia, para que puedas probar actualizaciones rápidamente.
|
|
435
|
+
- Para probar Live Sync localmente con Next.js, envuelve tu servidor de desarrollo:
|
|
436
|
+
|
|
437
|
+
```json5 fileName="package.json"
|
|
438
|
+
{
|
|
439
|
+
"scripts": {
|
|
440
|
+
// ... otros scripts
|
|
441
|
+
"dev": "npx intlayer live --process 'next dev'",
|
|
442
|
+
// "dev": "npx intlayer live --process 'vite dev'", // Para Vite
|
|
443
|
+
},
|
|
444
|
+
}
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
Habilita la optimización para que Intlayer aplique las transformaciones de importación en vivo durante el desarrollo:
|
|
448
|
+
|
|
449
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
450
|
+
import type { IntlayerConfig } from "intlayer";
|
|
451
|
+
|
|
452
|
+
const config: IntlayerConfig = {
|
|
453
|
+
editor: {
|
|
454
|
+
applicationURL: "http://localhost:5173",
|
|
455
|
+
liveSyncURL: "http://localhost:4000",
|
|
456
|
+
liveSync: true,
|
|
457
|
+
},
|
|
458
|
+
build: {
|
|
459
|
+
optimize: true,
|
|
460
|
+
importMode: "live",
|
|
461
|
+
},
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
export default config;
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
468
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
469
|
+
const config = {
|
|
470
|
+
editor: {
|
|
471
|
+
applicationURL: "http://localhost:5173",
|
|
472
|
+
liveSyncURL: "http://localhost:4000",
|
|
473
|
+
liveSync: true,
|
|
474
|
+
},
|
|
475
|
+
build: {
|
|
476
|
+
optimize: true,
|
|
477
|
+
importMode: "live",
|
|
478
|
+
},
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
export default config;
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
485
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
486
|
+
const config = {
|
|
487
|
+
editor: {
|
|
488
|
+
applicationURL: "http://localhost:5173",
|
|
489
|
+
liveSyncURL: "http://localhost:4000",
|
|
490
|
+
liveSync: true,
|
|
491
|
+
},
|
|
492
|
+
build: {
|
|
493
|
+
optimize: true,
|
|
494
|
+
importMode: "live",
|
|
495
|
+
},
|
|
496
|
+
};
|
|
497
|
+
|
|
498
|
+
module.exports = config;
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
Esta configuración envuelve tu servidor de desarrollo con el servidor Live Sync, obtiene los diccionarios remotos al iniciar y transmite actualizaciones desde el CMS vía SSE. Actualiza la página para ver los cambios.
|
|
502
|
+
|
|
503
|
+
Notas y restricciones:
|
|
333
504
|
|
|
334
|
-
-
|
|
335
|
-
-
|
|
336
|
-
> Debido a que la recarga en caliente necesita una conexión continua con el servidor utilizando un `EventListener`, solo está disponible para clientes del plan `enterprise`.
|
|
505
|
+
- Añade el origen de live sync a la política de seguridad de tu sitio (CSP). Asegúrate de que la URL de live sync esté permitida en `connect-src` (y en `frame-ancestors` si es relevante).
|
|
506
|
+
- Live Sync no funciona con salida estática. Para Next.js, la página debe ser dinámica para recibir actualizaciones en tiempo de ejecución (por ejemplo, usa `generateStaticParams`, `generateMetadata`, `getServerSideProps` o `getStaticProps` adecuadamente para evitar restricciones de solo estático).
|
|
337
507
|
|
|
338
|
-
|
|
508
|
+
Esta configuración envuelve tu servidor de desarrollo con el servidor Live Sync, obtiene diccionarios remotos al iniciar y transmite actualizaciones desde el CMS vía SSE. Actualiza la página para ver los cambios.
|
|
339
509
|
|
|
340
|
-
|
|
510
|
+
Notas y restricciones:
|
|
341
511
|
|
|
342
|
-
-
|
|
512
|
+
- Añade el origen de live sync a la política de seguridad de tu sitio (CSP). Asegúrate de que la URL de live sync esté permitida en `connect-src` (y en `frame-ancestors` si es relevante).
|
|
513
|
+
- Live Sync no funciona con salida estática. Para Next.js, la página debe ser dinámica para recibir actualizaciones en tiempo de ejecución (por ejemplo, usa `generateStaticParams`, `generateMetadata`, `getServerSideProps` o `getStaticProps` adecuadamente para evitar restricciones de solo estático).
|
|
514
|
+
- La URL de la aplicación debe coincidir con la que configuraste en la configuración del editor (`applicationURL`).
|
|
515
|
+
- La URL del CMS
|
|
343
516
|
|
|
344
|
-
-
|
|
345
|
-
- Campos requeridos:
|
|
346
|
-
- La URL de la aplicación debe coincidir con la que configuraste en la configuración del editor (`applicationURL`).
|
|
347
|
-
- La URL del CMS.
|
|
517
|
+
- Asegúrate de que la configuración del proyecto se haya enviado al CMS de Intlayer.
|
|
348
518
|
|
|
349
|
-
- Asegúrate de que la
|
|
350
|
-
- El editor visual utiliza un iframe para mostrar tu sitio web. Asegúrate de que la Política de Seguridad de Contenidos (CSP) de tu sitio web permita la URL del CMS como `frame-ancestors` ('https://intlayer.org' por defecto). Revisa la consola del editor para detectar cualquier error.
|
|
519
|
+
- El editor visual utiliza un iframe para mostrar tu sitio web. Asegúrate de que la Política de Seguridad de Contenidos (CSP) de tu sitio web permita la URL del CMS como `frame-ancestors` ('https://intlayer.org' por defecto). Revisa la consola del editor para cualquier error.
|
|
351
520
|
|
|
352
|
-
## Historial
|
|
521
|
+
## Historial de Documentación
|
|
353
522
|
|
|
354
|
-
|
|
523
|
+
| Versión | Fecha | Cambios |
|
|
524
|
+
| ------- | ---------- | ----------------------------------------------- |
|
|
525
|
+
| 6.0.1 | 2025-09-22 | Añadida documentación de sincronización en vivo |
|
|
526
|
+
| 6.0.0 | 2025-09-04 | Reemplazado el campo `hotReload` por `liveSync` |
|
|
527
|
+
| 5.5.10 | 2025-06-29 | Historial inicial |
|