@intlayer/docs 8.4.5 → 8.4.6
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/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/configuration.md +520 -722
- package/docs/ar/intlayer_with_storybook.md +521 -0
- package/docs/bn/configuration.md +922 -0
- package/docs/bn/intlayer_with_hono.md +428 -0
- package/docs/de/configuration.md +369 -743
- package/docs/de/intlayer_with_storybook.md +521 -0
- package/docs/en/configuration.md +181 -507
- package/docs/en/intlayer_with_storybook.md +521 -0
- package/docs/en-GB/configuration.md +456 -657
- package/docs/en-GB/intlayer_with_storybook.md +521 -0
- package/docs/es/configuration.md +379 -754
- package/docs/es/intlayer_with_storybook.md +521 -0
- package/docs/fr/configuration.md +376 -757
- package/docs/fr/intlayer_with_storybook.md +521 -0
- package/docs/hi/configuration.md +532 -728
- package/docs/hi/intlayer_with_storybook.md +521 -0
- package/docs/id/configuration.md +371 -684
- package/docs/id/intlayer_with_storybook.md +521 -0
- package/docs/it/configuration.md +397 -775
- package/docs/it/intlayer_with_storybook.md +521 -0
- package/docs/ja/configuration.md +525 -724
- package/docs/ja/intlayer_with_storybook.md +521 -0
- package/docs/ko/configuration.md +525 -724
- package/docs/ko/intlayer_with_storybook.md +521 -0
- package/docs/pl/configuration.md +430 -734
- package/docs/pl/intlayer_with_storybook.md +521 -0
- package/docs/pt/configuration.md +375 -746
- package/docs/pt/intlayer_with_storybook.md +521 -0
- package/docs/ru/configuration.md +532 -701
- package/docs/ru/intlayer_with_storybook.md +521 -0
- package/docs/tr/configuration.md +527 -719
- package/docs/tr/intlayer_with_storybook.md +521 -0
- package/docs/uk/configuration.md +425 -744
- package/docs/uk/intlayer_with_storybook.md +521 -0
- package/docs/ur/configuration.md +922 -0
- package/docs/ur/intlayer_with_hono.md +428 -0
- package/docs/vi/configuration.md +412 -753
- package/docs/vi/intlayer_with_storybook.md +521 -0
- package/docs/zh/configuration.md +521 -714
- package/docs/zh/intlayer_with_storybook.md +521 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
package/docs/es/configuration.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
4
|
-
title: Configuración
|
|
5
|
-
description:
|
|
3
|
+
updatedAt: 2026-03-20
|
|
4
|
+
title: Configuración (Configuration)
|
|
5
|
+
description: Aprenda a configurar Intlayer para su aplicación. Entienda los diversos ajustes y opciones disponibles para personalizar Intlayer según sus necesidades.
|
|
6
6
|
keywords:
|
|
7
7
|
- Configuración
|
|
8
8
|
- Ajustes
|
|
@@ -14,85 +14,88 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.4.0
|
|
18
|
+
date: 2026-03-20
|
|
19
|
+
changes: Se añadió la notación de objeto por localidad para 'compiler.output' y 'dictionary.fill'
|
|
17
20
|
- version: 8.3.0
|
|
18
21
|
date: 2026-03-11
|
|
19
|
-
changes:
|
|
22
|
+
changes: Se movió 'baseDir' de la configuración 'content' a la configuración 'system'
|
|
20
23
|
- version: 8.2.0
|
|
21
24
|
date: 2026-03-09
|
|
22
|
-
changes:
|
|
25
|
+
changes: Se actualizaron las opciones del compilador (compiler), se añadió soporte para 'output' y 'noMetadata'
|
|
23
26
|
- version: 8.1.7
|
|
24
27
|
date: 2026-02-25
|
|
25
|
-
changes:
|
|
28
|
+
changes: Se actualizaron las opciones del compilador
|
|
26
29
|
- version: 8.1.5
|
|
27
30
|
date: 2026-02-23
|
|
28
|
-
changes:
|
|
31
|
+
changes: Se añadió la opción del compilador 'build-only' y el prefijo del diccionario
|
|
29
32
|
- version: 8.0.6
|
|
30
33
|
date: 2026-02-12
|
|
31
|
-
changes:
|
|
34
|
+
changes: Se añadió soporte para los proveedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face y Together.ai
|
|
32
35
|
- version: 8.0.5
|
|
33
36
|
date: 2026-02-06
|
|
34
|
-
changes:
|
|
37
|
+
changes: Se añadió `dataSerialization` a la configuración de IA
|
|
35
38
|
- version: 8.0.0
|
|
36
39
|
date: 2026-01-24
|
|
37
|
-
changes:
|
|
40
|
+
changes: Se renombró el modo de importación `live` a `fetch` para describir mejor el mecanismo subyacente.
|
|
38
41
|
- version: 8.0.0
|
|
39
42
|
date: 2026-01-22
|
|
40
|
-
changes:
|
|
43
|
+
changes: Se movió la configuración de compilación `importMode` a la configuración `dictionary`.
|
|
41
44
|
- version: 8.0.0
|
|
42
45
|
date: 2026-01-22
|
|
43
|
-
changes:
|
|
46
|
+
changes: Se añadió la opción `rewrite` a la configuración de enrutamiento
|
|
44
47
|
- version: 8.0.0
|
|
45
48
|
date: 2026-01-18
|
|
46
|
-
changes:
|
|
49
|
+
changes: Se separó la configuración del sistema de la configuración de contenido. Se movieron las rutas internas a la propiedad `system`. Se añadió `codeDir` para separar los archivos de contenido y la transformación de código.
|
|
47
50
|
- version: 8.0.0
|
|
48
51
|
date: 2026-01-18
|
|
49
|
-
changes:
|
|
52
|
+
changes: Se añadieron las opciones de diccionario `location` y `schema`
|
|
50
53
|
- version: 7.5.1
|
|
51
54
|
date: 2026-01-10
|
|
52
|
-
changes:
|
|
55
|
+
changes: Se añadió soporte para los formatos de archivo JSON5 y JSONC
|
|
53
56
|
- version: 7.5.0
|
|
54
57
|
date: 2025-12-17
|
|
55
|
-
changes:
|
|
58
|
+
changes: Se añadió la opción `buildMode`
|
|
56
59
|
- version: 7.0.0
|
|
57
60
|
date: 2025-10-25
|
|
58
|
-
changes:
|
|
61
|
+
changes: Se añadió la configuración `dictionary`
|
|
59
62
|
- version: 7.0.0
|
|
60
63
|
date: 2025-10-21
|
|
61
|
-
changes:
|
|
64
|
+
changes: Se reemplazó `middleware` por la configuración de enrutamiento `routing`
|
|
62
65
|
- version: 7.0.0
|
|
63
66
|
date: 2025-10-12
|
|
64
|
-
changes:
|
|
67
|
+
changes: Se añadió la opción `formatCommand`
|
|
65
68
|
- version: 6.2.0
|
|
66
69
|
date: 2025-10-12
|
|
67
|
-
changes:
|
|
70
|
+
changes: Se actualizó la opción `excludedPath`
|
|
68
71
|
- version: 6.0.2
|
|
69
72
|
date: 2025-09-23
|
|
70
|
-
changes:
|
|
73
|
+
changes: Se añadió la opción `outputFormat`
|
|
71
74
|
- version: 6.0.0
|
|
72
75
|
date: 2025-09-21
|
|
73
|
-
changes:
|
|
76
|
+
changes: Se eliminó el campo `dictionaryOutput` y el campo `i18nextResourcesDir`
|
|
74
77
|
- version: 6.0.0
|
|
75
78
|
date: 2025-09-16
|
|
76
|
-
changes:
|
|
79
|
+
changes: Se añadió el modo de importación `live`
|
|
77
80
|
- version: 6.0.0
|
|
78
81
|
date: 2025-09-04
|
|
79
|
-
changes:
|
|
82
|
+
changes: Se reemplazó el campo `hotReload` por `liveSync`, y se añadieron los campos `liveSyncPort` y `liveSyncURL`
|
|
80
83
|
- version: 5.6.1
|
|
81
84
|
date: 2025-07-25
|
|
82
|
-
changes:
|
|
85
|
+
changes: Se reemplazó `activateDynamicImport` por la opción `importMode`
|
|
83
86
|
- version: 5.6.0
|
|
84
87
|
date: 2025-07-13
|
|
85
|
-
changes:
|
|
88
|
+
changes: Se cambió el contentDir predeterminado de `['src']` a `['.']`
|
|
86
89
|
- version: 5.5.11
|
|
87
90
|
date: 2025-06-29
|
|
88
|
-
changes:
|
|
91
|
+
changes: Se añadieron los comandos `docs`
|
|
89
92
|
---
|
|
90
93
|
|
|
91
94
|
# Documentación de Configuración de Intlayer
|
|
92
95
|
|
|
93
|
-
##
|
|
96
|
+
## Resumen
|
|
94
97
|
|
|
95
|
-
Los archivos de configuración de Intlayer permiten
|
|
98
|
+
Los archivos de configuración de Intlayer le permiten personalizar diversos aspectos del complemento, como la internacionalización (internationalization), el middleware y el manejo de contenido. Esta documentación proporciona una descripción detallada de cada propiedad en la configuración.
|
|
96
99
|
|
|
97
100
|
---
|
|
98
101
|
|
|
@@ -102,9 +105,9 @@ Los archivos de configuración de Intlayer permiten la personalización de vario
|
|
|
102
105
|
|
|
103
106
|
---
|
|
104
107
|
|
|
105
|
-
##
|
|
108
|
+
## Formatos de archivos de configuración compatibles
|
|
106
109
|
|
|
107
|
-
Intlayer acepta formatos de archivo de configuración JSON, JS, MJS y TS:
|
|
110
|
+
Intlayer acepta los formatos de archivo de configuración JSON, JS, MJS y TS:
|
|
108
111
|
|
|
109
112
|
- `intlayer.config.ts`
|
|
110
113
|
- `intlayer.config.js`
|
|
@@ -117,7 +120,7 @@ Intlayer acepta formatos de archivo de configuración JSON, JS, MJS y TS:
|
|
|
117
120
|
|
|
118
121
|
---
|
|
119
122
|
|
|
120
|
-
##
|
|
123
|
+
## Ejemplo de archivo de configuración
|
|
121
124
|
|
|
122
125
|
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
123
126
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -125,108 +128,108 @@ import { nextjsRewrite } from "intlayer/routing";
|
|
|
125
128
|
import { z } from "zod";
|
|
126
129
|
|
|
127
130
|
/**
|
|
128
|
-
*
|
|
131
|
+
* Ejemplo de archivo de configuración de Intlayer que muestra todas las opciones disponibles.
|
|
129
132
|
*/
|
|
130
133
|
const config: IntlayerConfig = {
|
|
131
134
|
/**
|
|
132
|
-
*
|
|
135
|
+
* Configuración de los ajustes de internacionalización.
|
|
133
136
|
*/
|
|
134
137
|
internationalization: {
|
|
135
138
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
139
|
+
* Lista de localidades (locales) admitidas en la aplicación.
|
|
140
|
+
* Predeterminado: [Locales.ENGLISH]
|
|
138
141
|
*/
|
|
139
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
140
143
|
|
|
141
144
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
+
* Lista de localidades obligatorias que deben definirse en cada diccionario.
|
|
146
|
+
* Si está vacío, todas las localidades son obligatorias en modo `strict`.
|
|
147
|
+
* Predeterminado: []
|
|
145
148
|
*/
|
|
146
149
|
requiredLocales: [Locales.ENGLISH],
|
|
147
150
|
|
|
148
151
|
/**
|
|
149
|
-
*
|
|
150
|
-
* - "strict":
|
|
151
|
-
* - "inclusive":
|
|
152
|
-
* - "loose":
|
|
153
|
-
*
|
|
152
|
+
* Nivel de rigor para el contenido internacionalizado.
|
|
153
|
+
* - "strict": Error si falta alguna localidad declarada o si no está declarada.
|
|
154
|
+
* - "inclusive": Advertencia si falta una localidad declarada.
|
|
155
|
+
* - "loose": Acepta cualquier localidad existente.
|
|
156
|
+
* Predeterminado: "inclusive"
|
|
154
157
|
*/
|
|
155
158
|
strictMode: "inclusive",
|
|
156
159
|
|
|
157
160
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
161
|
+
* Localidad predeterminada utilizada como recurso en caso de que no se encuentre la localidad solicitada.
|
|
162
|
+
* Predeterminado: Locales.ENGLISH
|
|
160
163
|
*/
|
|
161
164
|
defaultLocale: Locales.ENGLISH,
|
|
162
165
|
},
|
|
163
166
|
|
|
164
167
|
/**
|
|
165
|
-
*
|
|
168
|
+
* Ajustes que controlan las operaciones de diccionarios y el comportamiento de respaldo.
|
|
166
169
|
*/
|
|
167
170
|
dictionary: {
|
|
168
171
|
/**
|
|
169
|
-
*
|
|
170
|
-
* - "static":
|
|
171
|
-
* - "dynamic":
|
|
172
|
-
* - "fetch":
|
|
173
|
-
*
|
|
172
|
+
* Controla cómo se importan los diccionarios.
|
|
173
|
+
* - "static": Importado estáticamente en el momento de la compilación.
|
|
174
|
+
* - "dynamic": Importado dinámicamente utilizando Suspense.
|
|
175
|
+
* - "fetch": Recuperado dinámicamente mediante el Live Sync API.
|
|
176
|
+
* Predeterminado: "static"
|
|
174
177
|
*/
|
|
175
178
|
importMode: "static",
|
|
176
179
|
|
|
177
180
|
/**
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
+
* Estrategia para rellenar automáticamente las traducciones faltantes mediante IA.
|
|
182
|
+
* Puede ser un valor booleano o un patrón de ruta para guardar el contenido rellenado.
|
|
183
|
+
* Predeterminado: true
|
|
181
184
|
*/
|
|
182
185
|
fill: true,
|
|
183
186
|
|
|
184
187
|
/**
|
|
185
|
-
*
|
|
186
|
-
* - "local":
|
|
187
|
-
* - "remote":
|
|
188
|
-
* - "hybrid":
|
|
189
|
-
* - "plugin" (
|
|
190
|
-
*
|
|
188
|
+
* Ubicación física de los archivos de diccionario.
|
|
189
|
+
* - "local": Almacenado en el sistema de archivos local.
|
|
190
|
+
* - "remote": Almacenado en el CMS de Intlayer.
|
|
191
|
+
* - "hybrid": Almacenado tanto localmente como en el CMS de Intlayer.
|
|
192
|
+
* - "plugin" (o cualquier cadena personalizada): Proporcionada por un complemento o fuente personalizada.
|
|
193
|
+
* Predeterminado: "local"
|
|
191
194
|
*/
|
|
192
195
|
location: "local",
|
|
193
196
|
|
|
194
197
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
198
|
+
* Si el contenido debe transformarse automáticamente (p. ej., Markdown a HTML).
|
|
199
|
+
* Predeterminado: false
|
|
197
200
|
*/
|
|
198
201
|
contentAutoTransformation: false,
|
|
199
202
|
},
|
|
200
203
|
|
|
201
204
|
/**
|
|
202
|
-
*
|
|
205
|
+
* Configuración de enrutamiento y middleware.
|
|
203
206
|
*/
|
|
204
207
|
routing: {
|
|
205
208
|
/**
|
|
206
|
-
*
|
|
207
|
-
* - "prefix-no-default":
|
|
208
|
-
* - "prefix-all":
|
|
209
|
-
* - "no-prefix":
|
|
210
|
-
* - "search-params":
|
|
211
|
-
*
|
|
209
|
+
* Estrategia de enrutamiento de localidades.
|
|
210
|
+
* - "prefix-no-default": Prefija todo excepto la localidad predeterminada (p. ej., /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Prefija todas las localidades (p. ej., /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Sin localidad en la URL.
|
|
213
|
+
* - "search-params": Utiliza ?locale=...
|
|
214
|
+
* Predeterminado: "prefix-no-default"
|
|
212
215
|
*/
|
|
213
216
|
mode: "prefix-no-default",
|
|
214
217
|
|
|
215
218
|
/**
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
+
* Dónde almacenar la localidad seleccionada por el usuario.
|
|
220
|
+
* Opciones: 'cookie', 'localStorage', 'sessionStorage', 'header' o una combinación de estos.
|
|
221
|
+
* Predeterminado: ['cookie', 'header']
|
|
219
222
|
*/
|
|
220
223
|
storage: ["cookie", "header"],
|
|
221
224
|
|
|
222
225
|
/**
|
|
223
|
-
*
|
|
224
|
-
*
|
|
226
|
+
* Ruta base para las URL de la aplicación.
|
|
227
|
+
* Predeterminado: ""
|
|
225
228
|
*/
|
|
226
229
|
basePath: "",
|
|
227
230
|
|
|
228
231
|
/**
|
|
229
|
-
*
|
|
232
|
+
* Reglas de reescritura de URL personalizadas para rutas específicas por localidad.
|
|
230
233
|
*/
|
|
231
234
|
rewrite: nextjsRewrite({
|
|
232
235
|
"/[locale]/about": {
|
|
@@ -237,301 +240,301 @@ const config: IntlayerConfig = {
|
|
|
237
240
|
},
|
|
238
241
|
|
|
239
242
|
/**
|
|
240
|
-
*
|
|
243
|
+
* Ajustes relacionados con la búsqueda y procesamiento de archivos de contenido.
|
|
241
244
|
*/
|
|
242
245
|
content: {
|
|
243
246
|
/**
|
|
244
|
-
*
|
|
245
|
-
*
|
|
247
|
+
* Extensiones de archivo para escanear en busca de diccionarios.
|
|
248
|
+
* Predeterminado: ['.content.ts', '.content.js', '.content.json', etc.]
|
|
246
249
|
*/
|
|
247
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
248
251
|
|
|
249
252
|
/**
|
|
250
|
-
*
|
|
251
|
-
*
|
|
253
|
+
* Directorios donde se encuentran los archivos .content.
|
|
254
|
+
* Predeterminado: ["."]
|
|
252
255
|
*/
|
|
253
256
|
contentDir: ["src"],
|
|
254
257
|
|
|
255
258
|
/**
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
+
* Ubicación del código fuente.
|
|
260
|
+
* Se usa para la optimización de la compilación y transformación del código.
|
|
261
|
+
* Predeterminado: ["."]
|
|
259
262
|
*/
|
|
260
263
|
codeDir: ["src"],
|
|
261
264
|
|
|
262
265
|
/**
|
|
263
|
-
*
|
|
264
|
-
*
|
|
266
|
+
* Patrones excluidos del escaneo.
|
|
267
|
+
* Predeterminado: ['node_modules', '.intlayer', etc.]
|
|
265
268
|
*/
|
|
266
269
|
excludedPath: ["node_modules"],
|
|
267
270
|
|
|
268
271
|
/**
|
|
269
|
-
*
|
|
270
|
-
*
|
|
272
|
+
* Si se deben monitorear los cambios y reconstruir los diccionarios durante el desarrollo.
|
|
273
|
+
* Predeterminado: true en modo de desarrollo
|
|
271
274
|
*/
|
|
272
275
|
watch: true,
|
|
273
276
|
|
|
274
277
|
/**
|
|
275
|
-
*
|
|
278
|
+
* Comando utilizado para formatear los archivos .content recién creados / actualizados.
|
|
276
279
|
*/
|
|
277
280
|
formatCommand: 'npx prettier --write "{{file}}"',
|
|
278
281
|
},
|
|
279
282
|
|
|
280
283
|
/**
|
|
281
|
-
* Visual Editor
|
|
284
|
+
* Configuración del Editor Visual (Visual Editor).
|
|
282
285
|
*/
|
|
283
286
|
editor: {
|
|
284
287
|
/**
|
|
285
|
-
*
|
|
286
|
-
*
|
|
288
|
+
* Si el editor visual está habilitado.
|
|
289
|
+
* Predeterminado: false
|
|
287
290
|
*/
|
|
288
291
|
enabled: true,
|
|
289
292
|
|
|
290
293
|
/**
|
|
291
|
-
* URL
|
|
292
|
-
*
|
|
294
|
+
* La URL de su aplicación para la validación de origen.
|
|
295
|
+
* Predeterminado: ""
|
|
293
296
|
*/
|
|
294
297
|
applicationURL: "http://localhost:3000",
|
|
295
298
|
|
|
296
299
|
/**
|
|
297
|
-
*
|
|
298
|
-
*
|
|
300
|
+
* Puerto para el servidor del editor local.
|
|
301
|
+
* Predeterminado: 8000
|
|
299
302
|
*/
|
|
300
303
|
port: 8000,
|
|
301
304
|
|
|
302
305
|
/**
|
|
303
|
-
*
|
|
304
|
-
*
|
|
306
|
+
* URL pública del editor.
|
|
307
|
+
* Predeterminado: "http://localhost:8000"
|
|
305
308
|
*/
|
|
306
309
|
editorURL: "http://localhost:8000",
|
|
307
310
|
|
|
308
311
|
/**
|
|
309
|
-
*
|
|
310
|
-
*
|
|
312
|
+
* URL del CMS de Intlayer.
|
|
313
|
+
* Predeterminado: "https://app.intlayer.org"
|
|
311
314
|
*/
|
|
312
315
|
cmsURL: "https://app.intlayer.org",
|
|
313
316
|
|
|
314
317
|
/**
|
|
315
|
-
*
|
|
316
|
-
*
|
|
318
|
+
* URL de la API del Backend.
|
|
319
|
+
* Predeterminado: "https://back.intlayer.org"
|
|
317
320
|
*/
|
|
318
321
|
backendURL: "https://back.intlayer.org",
|
|
319
322
|
|
|
320
323
|
/**
|
|
321
|
-
*
|
|
322
|
-
*
|
|
324
|
+
* Activa la sincronización de contenido en tiempo real.
|
|
325
|
+
* Predeterminado: false
|
|
323
326
|
*/
|
|
324
327
|
liveSync: true,
|
|
325
328
|
},
|
|
326
329
|
|
|
327
330
|
/**
|
|
328
|
-
*
|
|
331
|
+
* Ajustes de traducción y construcción basados en IA.
|
|
329
332
|
*/
|
|
330
333
|
ai: {
|
|
331
334
|
/**
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
+
* Proveedor de IA que se utilizará.
|
|
336
|
+
* Opciones: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
|
+
* Predeterminado: 'openai'
|
|
335
338
|
*/
|
|
336
339
|
provider: "openai",
|
|
337
340
|
|
|
338
341
|
/**
|
|
339
|
-
*
|
|
342
|
+
* Modelo del proveedor seleccionado que se utilizará.
|
|
340
343
|
*/
|
|
341
344
|
model: "gpt-4o",
|
|
342
345
|
|
|
343
346
|
/**
|
|
344
|
-
*
|
|
347
|
+
* Clave de API del proveedor.
|
|
345
348
|
*/
|
|
346
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
347
350
|
|
|
348
351
|
/**
|
|
349
|
-
*
|
|
352
|
+
* Contexto global para guiar a la IA al generar traducciones.
|
|
350
353
|
*/
|
|
351
354
|
applicationContext: "Esta es una aplicación de reserva de viajes.",
|
|
352
355
|
|
|
353
356
|
/**
|
|
354
|
-
*
|
|
357
|
+
* URL de ruta base para la API de IA.
|
|
355
358
|
*/
|
|
356
359
|
baseURL: "http://localhost:3000",
|
|
357
360
|
|
|
358
361
|
/**
|
|
359
|
-
* Serialización de datos
|
|
362
|
+
* Serialización de datos (Data Serialization)
|
|
360
363
|
*
|
|
361
364
|
* Opciones:
|
|
362
|
-
* - "json":
|
|
363
|
-
* - "toon":
|
|
365
|
+
* - "json": Por defecto, robusto; consume más tokens.
|
|
366
|
+
* - "toon": consume menos tokens, puede no ser tan consistente como el JSON.
|
|
364
367
|
*
|
|
365
|
-
*
|
|
368
|
+
* Predeterminado: "json"
|
|
366
369
|
*/
|
|
367
370
|
dataSerialization: "json",
|
|
368
371
|
},
|
|
369
372
|
|
|
370
373
|
/**
|
|
371
|
-
*
|
|
374
|
+
* Ajustes de compilación y optimización.
|
|
372
375
|
*/
|
|
373
376
|
build: {
|
|
374
377
|
/**
|
|
375
|
-
*
|
|
376
|
-
* - "auto":
|
|
377
|
-
* - "manual":
|
|
378
|
-
*
|
|
378
|
+
* Modo de ejecución de compilación.
|
|
379
|
+
* - "auto": Se compila automáticamente durante la compilación de la aplicación.
|
|
380
|
+
* - "manual": Requiere un comando de compilación explícito.
|
|
381
|
+
* Predeterminado: "auto"
|
|
379
382
|
*/
|
|
380
383
|
mode: "auto",
|
|
381
384
|
|
|
382
385
|
/**
|
|
383
|
-
*
|
|
384
|
-
*
|
|
386
|
+
* Si se debe optimizar el paquete final eliminando los diccionarios no utilizados.
|
|
387
|
+
* Predeterminado: true en producción
|
|
385
388
|
*/
|
|
386
389
|
optimize: true,
|
|
387
390
|
|
|
388
391
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
392
|
+
* Formato de salida para los archivos de diccionario generados.
|
|
393
|
+
* Predeterminado: ['cjs', 'esm']
|
|
391
394
|
*/
|
|
392
395
|
outputFormat: ["cjs", "esm"],
|
|
393
396
|
|
|
394
397
|
/**
|
|
395
|
-
*
|
|
396
|
-
*
|
|
398
|
+
* Indica si la compilación debe verificar los tipos de TypeScript.
|
|
399
|
+
* Predeterminado: false
|
|
397
400
|
*/
|
|
398
401
|
checkTypes: false,
|
|
399
402
|
},
|
|
400
403
|
|
|
401
404
|
/**
|
|
402
|
-
* Logger
|
|
405
|
+
* Configuración del registrador (Logger).
|
|
403
406
|
*/
|
|
404
407
|
log: {
|
|
405
408
|
/**
|
|
406
|
-
*
|
|
407
|
-
* - "default":
|
|
408
|
-
* - "verbose":
|
|
409
|
-
* - "disabled":
|
|
410
|
-
*
|
|
409
|
+
* Nivel de registro.
|
|
410
|
+
* - "default": Registro estándar.
|
|
411
|
+
* - "verbose": Registro detallado de depuración.
|
|
412
|
+
* - "disabled": Desactiva el registro.
|
|
413
|
+
* Predeterminado: "default"
|
|
411
414
|
*/
|
|
412
415
|
mode: "default",
|
|
413
416
|
|
|
414
417
|
/**
|
|
415
|
-
*
|
|
416
|
-
*
|
|
418
|
+
* Prefijo para todos los mensajes de registro.
|
|
419
|
+
* Predeterminado: "[intlayer]"
|
|
417
420
|
*/
|
|
418
421
|
prefix: "[intlayer]",
|
|
419
422
|
},
|
|
420
423
|
|
|
421
424
|
/**
|
|
422
|
-
*
|
|
425
|
+
* Configuración del sistema (para uso avanzado)
|
|
423
426
|
*/
|
|
424
427
|
system: {
|
|
425
428
|
/**
|
|
426
|
-
*
|
|
429
|
+
* Directorio para almacenar diccionarios localizados.
|
|
427
430
|
*/
|
|
428
431
|
dictionariesDir: ".intlayer/dictionary",
|
|
429
432
|
|
|
430
433
|
/**
|
|
431
|
-
*
|
|
434
|
+
* Directorio para el aumento de módulos de TypeScript (module augmentation).
|
|
432
435
|
*/
|
|
433
436
|
moduleAugmentationDir: ".intlayer/types",
|
|
434
437
|
|
|
435
438
|
/**
|
|
436
|
-
*
|
|
439
|
+
* Directorio para almacenar diccionarios no fusionados.
|
|
437
440
|
*/
|
|
438
441
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
439
442
|
|
|
440
443
|
/**
|
|
441
|
-
*
|
|
444
|
+
* Directorio para almacenar tipos de diccionarios.
|
|
442
445
|
*/
|
|
443
446
|
typesDir: ".intlayer/types",
|
|
444
447
|
|
|
445
448
|
/**
|
|
446
|
-
*
|
|
449
|
+
* Directorio donde se almacenan los archivos principales de la aplicación.
|
|
447
450
|
*/
|
|
448
451
|
mainDir: ".intlayer/main",
|
|
449
452
|
|
|
450
453
|
/**
|
|
451
|
-
*
|
|
454
|
+
* Directorio donde se almacenan los archivos de configuración.
|
|
452
455
|
*/
|
|
453
456
|
configDir: ".intlayer/config",
|
|
454
457
|
|
|
455
458
|
/**
|
|
456
|
-
*
|
|
459
|
+
* Directorio donde se almacenan los archivos de caché.
|
|
457
460
|
*/
|
|
458
461
|
cacheDir: ".intlayer/cache",
|
|
459
462
|
},
|
|
460
463
|
|
|
461
464
|
/**
|
|
462
|
-
*
|
|
465
|
+
* Configuración del Compilador (Para uso avanzado)
|
|
463
466
|
*/
|
|
464
467
|
compiler: {
|
|
465
468
|
/**
|
|
466
|
-
* Indica si el compilador debe estar habilitado.
|
|
469
|
+
* Indica si el compilador (compiler) debe estar habilitado.
|
|
467
470
|
*
|
|
468
|
-
* - false
|
|
469
|
-
* - true
|
|
470
|
-
* - "build-only"
|
|
471
|
+
* - false: Deshabilita el compilador.
|
|
472
|
+
* - true: Habilita el compilador.
|
|
473
|
+
* - "build-only": Omite el compilador durante el desarrollo y acelera el tiempo de arranque.
|
|
471
474
|
*
|
|
472
|
-
*
|
|
475
|
+
* Predeterminado: false
|
|
473
476
|
*/
|
|
474
477
|
enabled: true,
|
|
475
478
|
|
|
476
479
|
/**
|
|
477
|
-
* Define la ruta
|
|
480
|
+
* Define la ruta para los archivos de salida. Reemplaza `outputDir`.
|
|
478
481
|
*
|
|
479
|
-
* - Las rutas `./` se resuelven
|
|
480
|
-
* - Las rutas `/` se resuelven
|
|
482
|
+
* - Las rutas con `./` se resuelven en relación con el directorio del componente.
|
|
483
|
+
* - Las rutas con `/` se resuelven en relación con la raíz del proyecto (`baseDir`).
|
|
481
484
|
*
|
|
482
|
-
* -
|
|
485
|
+
* - Al incluir la variable `{{locale}}` en la ruta, se activará la creación de diccionarios separados por idioma.
|
|
483
486
|
*
|
|
484
487
|
* Ejemplo:
|
|
485
488
|
* ```ts
|
|
486
489
|
* {
|
|
487
|
-
* // Crear archivos .content.ts multilingües
|
|
490
|
+
* // Crear archivos .content.ts multilingües al lado del componente
|
|
488
491
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
489
492
|
*
|
|
490
|
-
* // output: './{{fileName}}{{extension}}', // Equivalente usando
|
|
493
|
+
* // output: './{{fileName}}{{extension}}', // Equivalente usando cadena de plantilla
|
|
491
494
|
* }
|
|
492
495
|
* ```
|
|
493
496
|
*
|
|
494
497
|
* ```ts
|
|
495
498
|
* {
|
|
496
|
-
* // Crear JSON centralizados por
|
|
499
|
+
* // Crear JSON centralizados por idioma en la raíz del proyecto
|
|
497
500
|
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
498
501
|
*
|
|
499
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando
|
|
502
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando cadena de plantilla
|
|
500
503
|
* }
|
|
501
504
|
* ```
|
|
502
505
|
*
|
|
503
506
|
* Lista de variables:
|
|
504
|
-
* - `fileName`:
|
|
505
|
-
* - `key`:
|
|
506
|
-
* - `locale`:
|
|
507
|
-
* - `extension`:
|
|
508
|
-
* - `componentFileName`:
|
|
509
|
-
* - `componentExtension`:
|
|
510
|
-
* - `format`:
|
|
511
|
-
* - `componentFormat`:
|
|
512
|
-
* - `componentDirPath`:
|
|
507
|
+
* - `fileName`: Nombre del archivo.
|
|
508
|
+
* - `key`: Clave de contenido.
|
|
509
|
+
* - `locale`: Localidad del contenido.
|
|
510
|
+
* - `extension`: Extensión del archivo.
|
|
511
|
+
* - `componentFileName`: Nombre del archivo del componente.
|
|
512
|
+
* - `componentExtension`: Extensión del archivo del componente.
|
|
513
|
+
* - `format`: Formato del diccionario.
|
|
514
|
+
* - `componentFormat`: Formato del diccionario del componente.
|
|
515
|
+
* - `componentDirPath`: Ruta del directorio del componente.
|
|
513
516
|
*/
|
|
514
517
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
515
518
|
|
|
516
519
|
/**
|
|
517
520
|
* Indica si los componentes deben guardarse después de ser transformados.
|
|
518
|
-
* De esta manera, el compilador puede ejecutarse una
|
|
521
|
+
* De esta manera, el compilador puede ejecutarse solo una vez para transformar la aplicación y luego puede eliminarse.
|
|
519
522
|
*/
|
|
520
523
|
saveComponents: false,
|
|
521
524
|
|
|
522
525
|
/**
|
|
523
|
-
*
|
|
526
|
+
* Solo inserta el contenido en el archivo generado. Útil para salida de JSON por idioma para i18next o ICU MessageFormat.
|
|
524
527
|
*/
|
|
525
528
|
noMetadata: false,
|
|
526
529
|
|
|
527
530
|
/**
|
|
528
531
|
* Prefijo de clave de diccionario
|
|
529
532
|
*/
|
|
530
|
-
dictionaryKeyPrefix: "", //
|
|
533
|
+
dictionaryKeyPrefix: "", // Agregue un prefijo opcional a las claves de diccionario extraídas
|
|
531
534
|
},
|
|
532
535
|
|
|
533
536
|
/**
|
|
534
|
-
*
|
|
537
|
+
* Esquemas personalizados (Schemas) para validar el contenido de los diccionarios.
|
|
535
538
|
*/
|
|
536
539
|
schemas: {
|
|
537
540
|
"my-schema": z.object({
|
|
@@ -540,7 +543,7 @@ const config: IntlayerConfig = {
|
|
|
540
543
|
},
|
|
541
544
|
|
|
542
545
|
/**
|
|
543
|
-
* Plugins
|
|
546
|
+
* Configuración de complementos (Plugins).
|
|
544
547
|
*/
|
|
545
548
|
plugins: [],
|
|
546
549
|
};
|
|
@@ -548,248 +551,114 @@ const config: IntlayerConfig = {
|
|
|
548
551
|
export default config;
|
|
549
552
|
````
|
|
550
553
|
|
|
554
|
+
---
|
|
555
|
+
|
|
551
556
|
## Referencia de Configuración
|
|
552
557
|
|
|
553
|
-
|
|
558
|
+
En las siguientes secciones se describen las diversas opciones de configuración disponibles en Intlayer.
|
|
554
559
|
|
|
555
560
|
---
|
|
556
561
|
|
|
557
|
-
### Configuración de Internacionalización
|
|
558
|
-
|
|
559
|
-
Define
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
- _Ejemplo_: `['en', 'fr', 'es']`
|
|
568
|
-
|
|
569
|
-
- **requiredLocales**:
|
|
570
|
-
- _Tipo_: `string[]`
|
|
571
|
-
- _Por defecto_: `[]`
|
|
572
|
-
- _Descripción_: La lista de locales requeridos en la aplicación.
|
|
573
|
-
- _Ejemplo_: `[]`
|
|
574
|
-
- _Nota_: Si está vacío, todos los locales son obligatorios en modo `strict`.
|
|
575
|
-
- _Nota_: Asegúrese de que los locales requeridos también estén definidos en el campo `locales`.
|
|
576
|
-
- **strictMode**:
|
|
577
|
-
- _Tipo_: `string`
|
|
578
|
-
- _Por defecto_: `inclusive`
|
|
579
|
-
- _Descripción_: Garantiza implementaciones sólidas de contenido internacionalizado usando typescript.
|
|
580
|
-
- _Nota_: Si se establece en "strict", la función de traducción `t` requerirá que cada uno de los locales declarados esté definido. Si falta un locale, o si un locale no está declarado en su configuración, lanzará un error.
|
|
581
|
-
- _Nota_: Si se establece en "inclusive", la función de traducción `t` requerirá que cada uno de los locales declarados esté definido. Si falta un locale, lanzará una advertencia. Pero aceptará si un locale no está declarado en su configuración, pero existe.
|
|
582
|
-
- _Nota_: Si se establece en "loose", la función de traducción `t` aceptará cualquier locale existente.
|
|
583
|
-
|
|
584
|
-
- **defaultLocale**:
|
|
585
|
-
- _Tipo_: `string`
|
|
586
|
-
- _Por defecto_: `'en'`
|
|
587
|
-
- _Descripción_: El locale predeterminado que se usa como respaldo si no se encuentra el locale solicitado.
|
|
588
|
-
- _Ejemplo_: `'en'`
|
|
589
|
-
- _Nota_: Esto se usa para determinar el locale cuando no se especifica ninguno en la URL, cookie o encabezado.
|
|
562
|
+
### Configuración de Internacionalización (Internationalization Configuration)
|
|
563
|
+
|
|
564
|
+
Define los ajustes relacionados con la internacionalización, incluidas las localidades disponibles y la localidad predeterminada de la aplicación.
|
|
565
|
+
|
|
566
|
+
| Campo | Tipo | Descripción | Ejemplo | Nota |
|
|
567
|
+
| ----------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | `string[]` | Lista de localidades admitidas en la aplicación. Predeterminado: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | `string[]` | Lista de localidades obligatorias en la aplicación. Predeterminado: `[]` | `[]` | Si está vacío, todas las localidades son obligatorias en modo `strict`. Asegúrese de que las localidades obligatorias también estén definidas en el campo `locales`. |
|
|
570
|
+
| `strictMode` | `string` | Garantiza una implementación robusta del contenido internacionalizado mediante el uso de TypeScript. Predeterminado: `inclusive` | | Si es `"strict"`: la función `t` requiere que se defina cada localidad declarada; arroja un error si alguna de ellas falta o no está declarada. Si es `"inclusive"`: advierte sobre las localidades que faltan pero acepta las localidades existentes no declaradas. Si es `"loose"`: acepta cualquier localidad existente. |
|
|
571
|
+
| `defaultLocale` | `string` | Localidad predeterminada utilizada como reserva si no se encuentra la localidad solicitada. Predeterminado: `Locales.ENGLISH` | `'en'` | Se utiliza para determinar la localidad cuando no se especifica ninguna en la URL, galleta (cookie) o cabecera. |
|
|
590
572
|
|
|
591
573
|
---
|
|
592
574
|
|
|
593
|
-
### Configuración del Editor
|
|
594
|
-
|
|
595
|
-
Define
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
- _Nota_: El puerto del servidor de sincronización en vivo.
|
|
677
|
-
|
|
678
|
-
- **liveSyncURL**:
|
|
679
|
-
- _Tipo_: `string`
|
|
680
|
-
- _Por defecto_: `'http://localhost:{liveSyncPort}'`
|
|
681
|
-
- _Descripción_: La URL del servidor de sincronización en vivo.
|
|
682
|
-
- _Ejemplo_: `'https://example.com'`
|
|
683
|
-
- _Nota_: Apunta a localhost por defecto, pero puede cambiarse a cualquier URL en el caso de un servidor de sincronización en vivo remoto.
|
|
684
|
-
|
|
685
|
-
### Configuración de Enrutamiento
|
|
686
|
-
|
|
687
|
-
Configuraciones que controlan el comportamiento del enrutamiento, incluyendo la estructura de la URL, el almacenamiento de locales y el manejo del middleware.
|
|
688
|
-
|
|
689
|
-
#### Propiedades
|
|
690
|
-
|
|
691
|
-
- **mode**:
|
|
692
|
-
- _Tipo_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
693
|
-
- _Par defecto_: `'prefix-no-default'`
|
|
694
|
-
- _Descripción_: Modo de enrutamiento de URL para el manejo de locales.
|
|
695
|
-
- _Ejemplos_:
|
|
696
|
-
- `'prefix-no-default'`: `/dashboard` (en) o `/fr/dashboard` (fr)
|
|
697
|
-
- `'prefix-all'`: `/en/dashboard` (en) o `/fr/dashboard` (fr)
|
|
698
|
-
- `'no-prefix'`: `/dashboard` (locale gestionado por otros medios)
|
|
699
|
-
- `'search-params'`: `/dashboard?locale=fr`
|
|
700
|
-
- _Nota_: Esta configuración no afecta la gestión de cookies o el almacenamiento de locales.
|
|
701
|
-
|
|
702
|
-
- **storage**:
|
|
703
|
-
- _Tipo_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
|
|
704
|
-
- _Par defecto_: `['cookie', 'header']`
|
|
705
|
-
- _Descripción_: Configuración para almacenar el locale en el cliente.
|
|
706
|
-
|
|
707
|
-
- **cookie**:
|
|
708
|
-
- _Descripción_: Almacena datos en cookies, pequeños fragmentos de datos almacenados en el navegador del cliente, accesibles tanto en el lado del cliente como del servidor.
|
|
709
|
-
- _Note_: Para el almacenamiento conforme al RGPD, asegúrese del consentimiento del usuario antes del uso.
|
|
710
|
-
- _Note_: Los parámetros de las cookies son personalizables si se configuran como CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
|
|
711
|
-
|
|
712
|
-
- **localStorage**:
|
|
713
|
-
- _Descripción_: Almacena datos en el navegador sin fechas de expiración, permitiendo la persistencia de datos entre sesiones, accesible solo en el lado del cliente.
|
|
714
|
-
- _Note_: Ideal para almacenar datos a largo plazo, pero tenga en cuenta las implicaciones de privacidad y seguridad.
|
|
715
|
-
- _Note_: El almacenamiento local solo es accesible en el lado del cliente, el proxy de intlayer no podrá acceder a él.
|
|
716
|
-
- _Note_: Los parámetros de almacenamiento local son personalizables si se configuran como StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
|
|
717
|
-
|
|
718
|
-
- **sessionStorage**:
|
|
719
|
-
- _Descripción_: Almacena datos durante la sesión de la página, lo que significa que se borran una vez que se cierra la pestaña o ventana, accesible solo en el lado del cliente.
|
|
720
|
-
- _Note_: Adecuado para el almacenamiento temporal de datos para cada sesión.
|
|
721
|
-
- _Note_: El almacenamiento de locales solo es accesible en el lado del cliente, el proxy de intlayer no podrá acceder a él.
|
|
722
|
-
- _Note_: Los parámetros de almacenamiento local son personalizables si se configuran como StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
|
|
723
|
-
|
|
724
|
-
- **header**:
|
|
725
|
-
- _Descripción_: Utiliza encabezados HTTP para almacenar o transmitir datos de locales, adecuado para la determinación del idioma en el lado del servidor.
|
|
726
|
-
- _Note_: Útil en llamadas API para mantener configuraciones de idioma consistentes entre solicitudes.
|
|
727
|
-
- _Note_: El encabezado solo es accesible en el lado del servidor, el lado del cliente no podrá acceder a él.
|
|
728
|
-
- _Note_: El nombre del encabezado es personalizable si se configura como StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
|
|
729
|
-
|
|
730
|
-
- **basePath**:
|
|
731
|
-
- _Type_: `string`
|
|
732
|
-
- _Par defecto_: `''`
|
|
733
|
-
- _Descripción_: La ruta base para las URLs de la aplicación.
|
|
734
|
-
- _Exemple_: `'/my-app'`
|
|
735
|
-
- _Note_:
|
|
736
|
-
- Si la aplicación está alojada en `https://example.com/my-app`
|
|
737
|
-
- La ruta base es `'/my-app'`
|
|
738
|
-
- La URL será `https://example.com/my-app/en`
|
|
739
|
-
- Si no se establece la ruta base, la URL será `https://example.com/en`
|
|
740
|
-
|
|
741
|
-
- **rewrite**:
|
|
742
|
-
- _Type_: `Record<string, StrictModeLocaleMap<string>>`
|
|
743
|
-
- _Par defecto_: `undefined`
|
|
744
|
-
- _Descripción_: Reglas personalizadas de reescritura de URL que sobrescriben el modo de enrutamiento predeterminado para rutas específicas. Permite definir rutas específicas por locale que difieren del comportamiento de enrutamiento estándar. Admite parámetros de ruta dinámicos usando la sintaxis `[param]`.
|
|
745
|
-
- _Ejemplo_:
|
|
746
|
-
```typescript
|
|
747
|
-
routing: {
|
|
748
|
-
mode: "prefix-no-default", // Estrategia de respaldo
|
|
749
|
-
rewrite: nextjsRewrite({
|
|
750
|
-
"/about": {
|
|
751
|
-
en: "/about",
|
|
752
|
-
fr: "/a-propos",
|
|
753
|
-
},
|
|
754
|
-
"/product/[slug]": {
|
|
755
|
-
en: "/product/[slug]",
|
|
756
|
-
fr: "/produit/[slug]",
|
|
757
|
-
},
|
|
758
|
-
"/blog/[category]/[id]": {
|
|
759
|
-
en: "/blog/[category]/[id]",
|
|
760
|
-
fr: "/journal/[category]/[id]",
|
|
761
|
-
},
|
|
762
|
-
}),
|
|
763
|
-
}
|
|
764
|
-
```
|
|
765
|
-
- _Note_: Las reglas de reescritura tienen prioridad sobre el comportamiento predeterminado de `mode`. Si una ruta coincide con una regla de reescritura, se usará la ruta localizada de la configuración de reescritura en lugar del prefijo de locale estándar.
|
|
766
|
-
- _Note_: Los parámetros de ruta dinámicos se admiten mediante la notación de corchetes (por ejemplo, `[slug]`, `[id]`). Los valores de los parámetros se extraen automáticamente de la URL y se interpolan en la ruta reescrita.
|
|
767
|
-
- _Note_: Funciona con aplicaciones Next.js y Vite. El middleware/proxy reescribirá automáticamente las solicitudes entrantes para que coincidan con la estructura interna de las rutas.
|
|
768
|
-
- _Note_: Al generar URLs con `getLocalizedUrl()`, las reglas de reescritura se aplican automáticamente si coinciden con la ruta proporcionada.
|
|
769
|
-
- _Reference_: Para obtener más información, consulte [Reescrituras de URL Personalizadas](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/custom_url_rewrites.md).
|
|
770
|
-
|
|
771
|
-
#### Atributos de Cookie
|
|
772
|
-
|
|
773
|
-
Cuando use el almacenamiento de cookies, puede configurar atributos de cookies adicionales:
|
|
774
|
-
|
|
775
|
-
- **name**: Nombre de la cookie (por defecto: `'INTLAYER_LOCALE'`)
|
|
776
|
-
- **domain**: Dominio de la cookie (por defecto: undefined)
|
|
777
|
-
- **path**: Ruta de la cookie (por defecto: undefined)
|
|
778
|
-
- **secure**: Requiere HTTPS (por defecto: undefined)
|
|
779
|
-
- **httpOnly**: Bandera HTTP-only (por defecto: undefined)
|
|
780
|
-
- **sameSite**: Política SameSite (`'strict' | 'lax' | 'none'`)
|
|
781
|
-
- **expires**: Fecha de expiración o días (por defecto: undefined)
|
|
782
|
-
|
|
783
|
-
#### Atributos de Almacenamiento Local de Locales
|
|
784
|
-
|
|
785
|
-
Cuando use localStorage o sessionStorage:
|
|
786
|
-
|
|
787
|
-
- **type**: Tipo de almacenamiento (`'localStorage' | 'sessionStorage'`)
|
|
788
|
-
- **name**: Nombre de la clave de almacenamiento (por defecto: `'INTLAYER_LOCALE'`)
|
|
575
|
+
### Configuración del Editor (Editor Configuration)
|
|
576
|
+
|
|
577
|
+
Define los ajustes relacionados con el editor integrado, incluido el puerto del servidor y su estado de actividad.
|
|
578
|
+
|
|
579
|
+
| Campo | Tipo | Descripción | Ejemplo | Nota |
|
|
580
|
+
| ---------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | `string` | URL de su aplicación. Predeterminado: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Se utiliza para restringir los orígenes del editor por razones de seguridad. Si se establece en `'*'`, se puede acceder al editor desde cualquier origen. |
|
|
582
|
+
| `port` | `number` | Puerto utilizado por el servidor del Editor Visual. Predeterminado: `8000` | | |
|
|
583
|
+
| `editorURL` | `string` | URL del servidor del editor. Predeterminado: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Se utiliza para restringir los orígenes que pueden interactuar con la aplicación. Si se establece en `'*'`, es accesible desde cualquier origen. Debe establecerse si cambia el puerto o si el editor está alojado en un dominio diferente. |
|
|
584
|
+
| `cmsURL` | `string` | URL del CMS de Intlayer. Predeterminado: `'https://intlayer.org'` | `'https://intlayer.org'` | |
|
|
585
|
+
| `backendURL` | `string` | URL del servidor backend. Predeterminado: `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | `boolean` | Indica si la aplicación interactuará con el editor visual. Predeterminado: `true` | `process.env.NODE_ENV !== 'production'` | Si es `false`, el editor no puede interactuar con la aplicación. Deshabilitarlo en entornos específicos mejora la seguridad. |
|
|
587
|
+
| `clientId` | `string | undefined` | Permite que los paquetes intlayer se autentiquen con el backend utilizando oAuth2. Para recibir un token de acceso, vaya a [intlayer.org/project](https://app.intlayer.org/project). Predeterminado: `undefined` | | Manténgalo en secreto; almacénelo en variables de entorno. |
|
|
588
|
+
| `clientSecret` | `string | undefined` | Permite que los paquetes intlayer se autentiquen con el backend utilizando oAuth2. Para recibir un token de acceso, vaya a [intlayer.org/project](https://app.intlayer.org/project). Predeterminado: `undefined` | | Manténgalo en secreto; almacénelo en variables de entorno. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | `string` | Estrategia para priorizar los diccionarios cuando existan diccionarios locales y remotos. Predeterminado: `'local_first'` | `'distant_first'` | `'distant_first'`: Prioriza los remotos sobre los locales. `'local_first'`: Prioriza los locales sobre los remotos. |
|
|
590
|
+
| `liveSync` | `boolean` | Indica si el servidor de aplicaciones debe recargar el contenido en caliente cuando se detecta un cambio en el CMS / Editor Visual / Backend. Predeterminado: `true` | `true` | Cuando se agrega/actualiza un diccionario, la aplicación actualiza el contenido de la página. Live sync externaliza el contenido a otro servidor, lo que puede afectar ligeramente el rendimiento. Se recomienda alojar ambos en la misma máquina. |
|
|
591
|
+
| `liveSyncPort` | `number` | Puerto del servidor Live Sync. Predeterminado: `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | `string` | URL del servidor Live Sync. Predeterminado: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Apunta a localhost de forma predeterminada; puede cambiarse a un servidor remoto de Live Sync. |
|
|
593
|
+
|
|
594
|
+
### Configuración de Enrutamiento (Routing Configuration)
|
|
595
|
+
|
|
596
|
+
Ajustes que controlan el comportamiento del enrutamiento, incluida la estructura de la URL, el almacenamiento de localidades y el manejo del middleware.
|
|
597
|
+
|
|
598
|
+
| Campo | Tipo | Descripción | Ejemplo | Nota |
|
|
599
|
+
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
600
|
+
| `mode` | `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'` | Modo de enrutamiento de URL para el manejo de localidades. Predeterminado: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) o `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: la localidad se maneja mediante otros medios. `'search-params'`: `/dashboard?locale=fr` | No afecta la gestión de galletas (cookies) o el almacenamiento de localidades. |
|
|
601
|
+
| `storage` | `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array` | Configuración para almacenar la localidad en el cliente. Predeterminado: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Consulte la tabla de Opciones de Almacenamiento más abajo. |
|
|
602
|
+
| `basePath` | `string` | Ruta base para las URL de la aplicación. Predeterminado: `''` | `'/my-app'` | Si la aplicación está en `https://example.com/my-app`, basePath es `'/my-app'` y las URL se convierten en `https://example.com/my-app/en`. |
|
|
603
|
+
| `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | Reglas de reescritura de URL personalizadas que anulan el modo de enrutamiento predeterminado para rutas específicas. Admite parámetros dinámicos `[param]`. Predeterminado: `undefined` | Ver ejemplo abajo | Las reglas de reescritura tienen prioridad sobre `mode`. Funciona con Next.js y Vite. `getLocalizedUrl()` aplica automáticamente las reglas correspondientes. Ver [Reescrituras de URL Personalizadas](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/custom_url_rewrites.md). |
|
|
604
|
+
|
|
605
|
+
**Ejemplo de `rewrite`**:
|
|
606
|
+
|
|
607
|
+
```typescript
|
|
608
|
+
routing: {
|
|
609
|
+
mode: "prefix-no-default", // Estrategia de respaldo
|
|
610
|
+
rewrite: nextjsRewrite({
|
|
611
|
+
"/about": {
|
|
612
|
+
en: "/about",
|
|
613
|
+
fr: "/a-propos",
|
|
614
|
+
},
|
|
615
|
+
"/product/[slug]": {
|
|
616
|
+
en: "/product/[slug]",
|
|
617
|
+
fr: "/produit/[slug]",
|
|
618
|
+
},
|
|
619
|
+
"/blog/[category]/[id]": {
|
|
620
|
+
en: "/blog/[category]/[id]",
|
|
621
|
+
fr: "/journal/[category]/[id]",
|
|
622
|
+
},
|
|
623
|
+
}),
|
|
624
|
+
}
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
#### Opciones de Almacenamiento (Storage Options)
|
|
628
|
+
|
|
629
|
+
| Valor | Descripción | Nota |
|
|
630
|
+
| ------------------ | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
631
|
+
| `'cookie'` | Guarda la localidad en las cookies (galletas); accesible tanto por el lado del cliente como del servidor. | Para el cumplimiento de GDPR, asegúrese de obtener el consentimiento adecuado del usuario. Personalizable mediante `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
|
|
632
|
+
| `'localStorage'` | Guarda la localidad en el navegador sin fecha de caducidad (solo del lado del cliente). | No caduca a menos que se borre explícitamente. El proxy de Intlayer no puede acceder a él. Personalizable mediante `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
|
|
633
|
+
| `'sessionStorage'` | Guarda la localidad durante la sesión de la página (solo del lado del cliente). | Se borra cuando se cierra la pestaña/ventana. El proxy de Intlayer no puede acceder a él. Personalizable mediante `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
|
|
634
|
+
| `'header'` | Guarda o transmite la localidad mediante cabeceras HTTP (solo del lado del servidor). | Útil para llamadas de API. El lado del cliente no puede acceder a él. Personalizable mediante `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
|
|
635
|
+
|
|
636
|
+
#### Atributos de Galleta (Cookie Attributes)
|
|
637
|
+
|
|
638
|
+
Cuando se utiliza el almacenamiento mediante galletas (cookies), se pueden configurar atributos adicionales:
|
|
639
|
+
|
|
640
|
+
| Campo | Tipo | Descripción |
|
|
641
|
+
| ---------- | ------------------------------------- | ------------------------------------------------------------------ |
|
|
642
|
+
| `name` | `string` | Nombre de la galleta (cookie). Predeterminado: `'INTLAYER_LOCALE'` |
|
|
643
|
+
| `domain` | `string` | Dominio de la galleta. Predeterminado: `undefined` |
|
|
644
|
+
| `path` | `string` | Ruta de la galleta. Predeterminado: `undefined` |
|
|
645
|
+
| `secure` | `boolean` | Requiere HTTPS. Predeterminado: `undefined` |
|
|
646
|
+
| `httpOnly` | `boolean` | Bandera HTTP-only. Predeterminado: `undefined` |
|
|
647
|
+
| `sameSite` | `'strict' | 'lax' | 'none'` | Política de SameSite. |
|
|
648
|
+
| `expires` | `Date | number` | Fecha de expiración o número de días. Predeterminado: `undefined` |
|
|
649
|
+
|
|
650
|
+
#### Atributos de Almacenamiento de Localidad (Locale Storage Attributes)
|
|
651
|
+
|
|
652
|
+
Cuando se utiliza localStorage o sessionStorage:
|
|
653
|
+
|
|
654
|
+
| Campo | Tipo | Descripción |
|
|
655
|
+
| ------ | ---------------------------------------- | ------------------------------------------------------------------------- |
|
|
656
|
+
| `type` | `'localStorage' | 'sessionStorage'` | Tipo de almacenamiento. |
|
|
657
|
+
| `name` | `string` | Nombre de la clave de almacenamiento. Predeterminado: `'INTLAYER_LOCALE'` |
|
|
789
658
|
|
|
790
659
|
#### Ejemplos de Configuración
|
|
791
660
|
|
|
792
|
-
Aquí
|
|
661
|
+
Aquí se muestran algunos ejemplos comunes de configuración para la nueva estructura de enrutamiento v7:
|
|
793
662
|
|
|
794
663
|
**Configuración Básica (Predeterminada)**:
|
|
795
664
|
|
|
@@ -811,7 +680,7 @@ const config: IntlayerConfig = {
|
|
|
811
680
|
export default config;
|
|
812
681
|
```
|
|
813
682
|
|
|
814
|
-
**Configuración
|
|
683
|
+
**Configuración compatible con GDPR**:
|
|
815
684
|
|
|
816
685
|
```typescript
|
|
817
686
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -843,7 +712,7 @@ const config: IntlayerConfig = {
|
|
|
843
712
|
export default config;
|
|
844
713
|
```
|
|
845
714
|
|
|
846
|
-
**Modo
|
|
715
|
+
**Modo Parámetros de Búsqueda (Search Parameters Mode)**:
|
|
847
716
|
|
|
848
717
|
```typescript
|
|
849
718
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -863,7 +732,7 @@ const config: IntlayerConfig = {
|
|
|
863
732
|
export default config;
|
|
864
733
|
```
|
|
865
734
|
|
|
866
|
-
**Modo
|
|
735
|
+
**Modo sin prefijo (No Prefix Mode) con almacenamiento personalizado**:
|
|
867
736
|
|
|
868
737
|
```typescript
|
|
869
738
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -886,7 +755,7 @@ const config: IntlayerConfig = {
|
|
|
886
755
|
export default config;
|
|
887
756
|
```
|
|
888
757
|
|
|
889
|
-
**Reescritura de URL
|
|
758
|
+
**Reescritura de URL personalizada con rutas dinámicas**:
|
|
890
759
|
|
|
891
760
|
```typescript
|
|
892
761
|
// intlayer.config.ts
|
|
@@ -898,7 +767,7 @@ const config: IntlayerConfig = {
|
|
|
898
767
|
defaultLocale: "en",
|
|
899
768
|
},
|
|
900
769
|
routing: {
|
|
901
|
-
mode: "prefix-no-default", // Estrategia de respaldo para rutas no
|
|
770
|
+
mode: "prefix-no-default", // Estrategia de respaldo para rutas que no se reescriben
|
|
902
771
|
storage: "cookie",
|
|
903
772
|
rewrite: nextjsRewrite({
|
|
904
773
|
"/about": {
|
|
@@ -922,376 +791,132 @@ export default config;
|
|
|
922
791
|
|
|
923
792
|
---
|
|
924
793
|
|
|
925
|
-
### Configuración de Contenido
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
- **excludedPath**:
|
|
970
|
-
- _Tipo_: `string[]`
|
|
971
|
-
- _Por defecto_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
|
|
972
|
-
- _Descripción_: Directorios excluidos de la búsqueda de contenido.
|
|
973
|
-
- _Nota_: Esta configuración aún no se utiliza, pero está planificada para una implementación futura.
|
|
974
|
-
|
|
975
|
-
- **formatCommand**:
|
|
976
|
-
- _Tipo_: `string`
|
|
977
|
-
- _Por defecto_: `undefined`
|
|
978
|
-
- _Descripción_: El comando para formatear el contenido. Cuando Intlayer escribe tus archivos .content localmente, este comando se usará para formatear el contenido.
|
|
979
|
-
- _Ejemplo_: `'npx prettier --write "{{file}}" --log-level silent'` Usando Prettier
|
|
980
|
-
- _Ejemplo_: `'npx biome format "{{file}}" --write --log-level none'` Usando Biome
|
|
981
|
-
- _Ejemplo_: `'npx eslint --fix "{{file}}" --quiet'` Usando ESLint
|
|
982
|
-
- _Nota_: Intlayer reemplazará {{file}} con la ruta del archivo a formatear.
|
|
983
|
-
- _Nota_: Si no se establece, Intlayer intentará detectar automáticamente el comando de formato. Intentando resolver los siguientes comandos: prettier, biome, eslint.
|
|
794
|
+
### Configuración de Contenido (Content Configuration)
|
|
795
|
+
|
|
796
|
+
Ajustes relacionados con el procesamiento de contenido dentro de la aplicación (nombres de directorio, extensiones de archivo y configuraciones derivadas).
|
|
797
|
+
|
|
798
|
+
| Campo | Tipo | Descripción | Ejemplo | Nota |
|
|
799
|
+
| ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
800
|
+
| `watch` | `boolean` | Indica si Intlayer debe vigilar los cambios en los archivos de declaración de contenido para reconstruir los diccionarios. Predeterminado: `process.env.NODE_ENV === 'development'` | | |
|
|
801
|
+
| `fileExtensions` | `string[]` | Extensiones de archivo utilizadas para escanear archivos de declaración de contenido. Predeterminado: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
|
|
802
|
+
| `contentDir` | `string[]` | Rutas a los directorios donde se encuentran los archivos de declaración de contenido. Predeterminado: `['.']` | `['src/content']` | |
|
|
803
|
+
| `codeDir` | `string[]` | Rutas a los directorios donde se encuentran los archivos de código fuente de su aplicación. Predeterminado: `['.']` | `['src']` | Se utiliza para optimizar la compilación y garantizar que la transformación del código y la recarga en caliente solo se apliquen a los archivos necesarios. |
|
|
804
|
+
| `excludedPath` | `string[]` | Rutas excluidas del escaneo de contenido. Predeterminado: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
|
|
805
|
+
| `formatCommand` | `string` | Comando que se ejecutará para formatear los archivos de contenido recién creados o actualizados. Predeterminado: `undefined` | `'npx prettier --write "{{file}}"'` | Se utiliza durante la extracción del contenido o mediante el editor visual. |
|
|
806
|
+
|
|
807
|
+
---
|
|
808
|
+
|
|
809
|
+
### Configuración de Diccionario (Dictionary Configuration)
|
|
810
|
+
|
|
811
|
+
Ajustes que controlan las operaciones de diccionarios, incluyendo el comportamiento de relleno automático y la generación de contenido.
|
|
812
|
+
|
|
813
|
+
Esta configuración de diccionario tiene dos propósitos principales:
|
|
814
|
+
|
|
815
|
+
1. **Valores predeterminados**: Definir valores predeterminados al crear archivos de declaración de contenido.
|
|
816
|
+
2. **Comportamiento de respaldo**: Proporcionar valores de respaldo cuando no se definen campos específicos, lo que le permite definir el comportamiento de las operaciones de diccionario de forma global.
|
|
817
|
+
|
|
818
|
+
Para obtener más información sobre los archivos de declaración de contenido y cómo se aplican los valores de configuración, consulte la [documentación de archivos de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/content_file.md).
|
|
819
|
+
|
|
820
|
+
| Campo | Tipo | Descripción | Ejemplo | Nota |
|
|
821
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
822
|
+
| `fill` | `boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>>` | Controla cómo se generan los archivos de salida del relleno automático (traducción por IA). Predeterminado: `true` | Ver ejemplo abajo | `true`: Ruta predeterminada (mismo archivo que la fuente). `false`: Deshabilitado. Las plantillas de cadena/función generan archivos por localidad. Objeto por localidad: cada localidad se asigna a su propio patrón; `false` omite esa localidad. Incluir `{{locale}}` activa la generación por localidad. El `fill` a nivel de diccionario siempre tiene prioridad sobre esta configuración global. |
|
|
823
|
+
| `importMode` | `'static' | 'dynamic' | 'fetch'` | Controla cómo se importan los diccionarios. Predeterminado: `'static'` | `'dynamic'` | `'static'`: Importado estáticamente. `'dynamic'`: Importado dinámicamente mediante Suspense. `'fetch'`: Recuperado dinámicamente mediante el Live Sync API. No afecta a `getIntlayer`, `getDictionary`, `useDictionary`, etc. |
|
|
824
|
+
| `location` | `'local' | 'remote' | 'hybrid' | string` | Dónde se almacenan los diccionarios. Predeterminado: `'local'` | `'remote'` | `'local'`: sistema de archivos. `'remote'`: CMS de Intlayer. `'hybrid'`: ambos. |
|
|
825
|
+
| `contentAutoTransformation` | `boolean` | Si los archivos de contenido deben transformarse automáticamente (p. ej., de Markdown a HTML). Predeterminado: `false` | `true` | Útil para procesar campos Markdown mediante @intlayer/markdown. |
|
|
826
|
+
|
|
827
|
+
**Ejemplo de `fill`**:
|
|
828
|
+
|
|
829
|
+
```ts
|
|
830
|
+
dictionary: {
|
|
831
|
+
fill: {
|
|
832
|
+
en: '/locales/en/{{key}}.content.json',
|
|
833
|
+
fr: ({ key }) => `/locales/fr/${key}.content.json`,
|
|
834
|
+
es: false,
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
```
|
|
984
838
|
|
|
985
839
|
---
|
|
986
840
|
|
|
987
|
-
### Configuración
|
|
841
|
+
### Configuración de IA (AI Configuration)
|
|
988
842
|
|
|
989
|
-
|
|
843
|
+
Define los ajustes para las características potenciadas por IA de Intlayer, como la construcción de traducciones.
|
|
990
844
|
|
|
991
|
-
|
|
845
|
+
| Campo | Tipo | Descripción | Ejemplo | Nota |
|
|
846
|
+
| -------------------- | ---------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
847
|
+
| `provider` | `string` | Proveedor de IA que se utilizará. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
|
|
848
|
+
| `model` | `string` | Modelo de IA que se utilizará. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
|
|
849
|
+
| `apiKey` | `string` | Clave de API para el proveedor seleccionado. | `process.env.OPENAI_API_KEY` | |
|
|
850
|
+
| `applicationContext` | `string` | Contexto adicional sobre su aplicación para mejorar la precisión de la traducción por la IA. | `'Plataforma de estudio para niños.'` | |
|
|
851
|
+
| `baseURL` | `string` | URL base opcional para las llamadas de API. | | Útil si utiliza un proxy o un despliegue local de IA. |
|
|
852
|
+
| `dataSerialization` | `'json' | 'toon'` | Define cómo se envían los datos a la IA. Predeterminado: `'json'` | `'json'` | `'json'`: más robusto y preciso. `'toon'`: consume menos tokens pero puede ser menos estable. |
|
|
992
853
|
|
|
993
|
-
|
|
994
|
-
- _Tipo_: `string`
|
|
995
|
-
- _Por defecto_: `process.cwd()`
|
|
996
|
-
- _Descripción_: El directorio base para el proyecto.
|
|
997
|
-
- _Ejemplo_: `'/ruta/al/proyecto'`
|
|
998
|
-
- _Nota_: Esto se usa para resolver todos los directorios relacionados con Intlayer.
|
|
854
|
+
---
|
|
999
855
|
|
|
1000
|
-
|
|
1001
|
-
- _Tipo_: `string`
|
|
1002
|
-
- _Por defecto_: `'.intlayer/dictionary'`
|
|
1003
|
-
- _Descripción_: La ruta del directorio para almacenar los diccionarios de localización.
|
|
856
|
+
### Configuración de Compilación (Build Configuration)
|
|
1004
857
|
|
|
1005
|
-
|
|
1006
|
-
- _Tipo_: `string`
|
|
1007
|
-
- _Por defecto_: `'.intlayer/types'`
|
|
1008
|
-
- _Descripción_: Directorio para la ampliación de módulos, permitiendo mejores sugerencias en el IDE y verificación de tipos.
|
|
1009
|
-
- _Ejemplo_: `'intlayer-types'`
|
|
1010
|
-
- _Nota_: Asegúrate de incluir esto en `tsconfig.json`.
|
|
858
|
+
Ajustes para el proceso de compilación y optimización de Intlayer.
|
|
1011
859
|
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
860
|
+
| Campo | Tipo | Descripción | Ejemplo | Nota |
|
|
861
|
+
| -------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | ------- | ---- |
|
|
862
|
+
| `mode` | `'auto' | 'manual'` | Indica si Intlayer debe ejecutarse automáticamente durante los pasos de precompilación de la aplicación. Predeterminado: `'auto'` | | |
|
|
863
|
+
| `optimize` | `boolean` | Indica si los diccionarios compilados deben optimizarse para el tiempo de ejecución. Predeterminado: `true` en producción | | |
|
|
864
|
+
| `outputFormat` | `('cjs' | 'esm')[]` | Formato de salida para los archivos de diccionario generados. Predeterminado: `['cjs', 'esm']` | | |
|
|
865
|
+
| `checkTypes` | `boolean` | Indica si Intlayer debe verificar los tipos en los archivos generados. Predeterminado: `false` | | |
|
|
1016
866
|
|
|
1017
|
-
|
|
1018
|
-
- _Tipo_: `string`
|
|
1019
|
-
- _Por defecto_: `'.intlayer/types'`
|
|
1020
|
-
- _Descripción_: El directorio para almacenar los tipos de diccionario.
|
|
867
|
+
---
|
|
1021
868
|
|
|
1022
|
-
|
|
1023
|
-
- _Tipo_: `string`
|
|
1024
|
-
- _Por defecto_: `'.intlayer/main'`
|
|
1025
|
-
- _Descripción_: El directorio donde se almacenan los archivos principales de la aplicación.
|
|
869
|
+
### Configuración del Sistema (System Configuration)
|
|
1026
870
|
|
|
1027
|
-
|
|
1028
|
-
- _Tipo_: `string`
|
|
1029
|
-
- _Por defecto_: `'.intlayer/config'`
|
|
1030
|
-
- _Descripción_: El directorio donde se almacenan los archivos de configuración.
|
|
871
|
+
Estos ajustes están destinados a casos de uso avanzados y para la configuración interna de Intlayer.
|
|
1031
872
|
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
873
|
+
| Campo | Tipo | Descripción | Predeterminado |
|
|
874
|
+
| ------------------------- | -------- | --------------------------------------------------- | --------------------------------- |
|
|
875
|
+
| `dictionariesDir` | `string` | Directorio de diccionarios compilados. | `'.intlayer/dictionary'` |
|
|
876
|
+
| `moduleAugmentationDir` | `string` | Directorio de aumento de módulos de TypeScript. | `'.intlayer/types'` |
|
|
877
|
+
| `unmergedDictionariesDir` | `string` | Directorio de diccionarios no fusionados. | `'.intlayer/unmerged_dictionary'` |
|
|
878
|
+
| `typesDir` | `string` | Directorio de tipos generados. | `'.intlayer/types'` |
|
|
879
|
+
| `mainDir` | `string` | Directorio principal de archivos de Intlayer. | `'.intlayer/main'` |
|
|
880
|
+
| `configDir` | `string` | Directorio de archivos de configuración compilados. | `'.intlayer/config'` |
|
|
881
|
+
| `cacheDir` | `string` | Directorio de archivos de caché. | `'.intlayer/cache'` |
|
|
1036
882
|
|
|
1037
|
-
|
|
883
|
+
---
|
|
884
|
+
|
|
885
|
+
### Configuración del Compilador (Compiler Configuration)
|
|
1038
886
|
|
|
1039
|
-
|
|
887
|
+
Ajustes para el compilador de Intlayer (`intlayer compiler`).
|
|
1040
888
|
|
|
1041
|
-
|
|
889
|
+
| Campo | Tipo | Descripción | Predeterminado |
|
|
890
|
+
| --------------------- | ------------------------ | --------------------------------------------------------------------------------------------------- | -------------- |
|
|
891
|
+
| `enabled` | `boolean` | Indica si el compilador está activo. | `false` |
|
|
892
|
+
| `output` | `string | Function` | Ruta de salida para los diccionarios extraídos. | |
|
|
893
|
+
| `saveComponents` | `boolean` | Indica si los archivos de origen originales deben ser sobrescritos con las versiones transformadas. | `false` |
|
|
894
|
+
| `noMetadata` | `boolean` | Si es `true`, el compilador no incluirá metadatos en los archivos generados. | `false` |
|
|
895
|
+
| `dictionaryKeyPrefix` | `string` | Prefijo opcional de clave de diccionario. | `''` |
|
|
1042
896
|
|
|
1043
|
-
|
|
1044
|
-
2. **Comportamiento de respaldo**: Proporciona valores de respaldo cuando campos específicos no están definidos, permitiéndote definir el comportamiento de las operaciones del diccionario globalmente
|
|
897
|
+
---
|
|
1045
898
|
|
|
1046
|
-
|
|
899
|
+
### Configuración del Registrador (Logger Configuration)
|
|
1047
900
|
|
|
1048
|
-
|
|
901
|
+
Ajustes para personalizar la salida de registros de Intlayer.
|
|
1049
902
|
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
- **priority**
|
|
1055
|
-
- **live**
|
|
1056
|
-
- **schema**
|
|
1057
|
-
- **title**
|
|
1058
|
-
- **tags**
|
|
1059
|
-
- **version**
|
|
903
|
+
| Campo | Tipo | Descripción | Predeterminado |
|
|
904
|
+
| -------- | ---------------------------------------------- | -------------------------------------- | -------------- |
|
|
905
|
+
| `mode` | `'default' | 'verbose' | 'disabled'` | Modo de registro. | `'default'` |
|
|
906
|
+
| `prefix` | `string` | Prefijo para los mensajes de registro. | `'[intlayer]'` |
|
|
1060
907
|
|
|
1061
908
|
---
|
|
1062
909
|
|
|
1063
|
-
###
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
- **mode**:
|
|
1070
|
-
- _Tipo_: `string`
|
|
1071
|
-
- _Por defecto_: `default`
|
|
1072
|
-
- _Descripción_: Indica el modo del logger.
|
|
1073
|
-
- _Opciones_: `default`, `verbose`, `disabled`
|
|
1074
|
-
- _Ejemplo_: `default`
|
|
1075
|
-
- _Nota_: El modo del logger. El modo verbose registrará más información, pero puede usarse para propósitos de depuración. El modo disabled desactivará el logger.
|
|
1076
|
-
|
|
1077
|
-
- **prefix**:
|
|
1078
|
-
- _Tipo_: `string`
|
|
1079
|
-
- _Por defecto_: `'[intlayer] '`
|
|
1080
|
-
- _Descripción_: El prefijo del logger.
|
|
1081
|
-
- _Ejemplo_: `'[my custom prefix] '`
|
|
1082
|
-
- _Nota_: El prefijo del registrador.
|
|
1083
|
-
|
|
1084
|
-
### Configuración de IA
|
|
1085
|
-
|
|
1086
|
-
Configuraciones que controlan las funciones de IA de Intlayer, incluyendo el proveedor, modelo y clave API.
|
|
1087
|
-
|
|
1088
|
-
Esta configuración es opcional si estás registrado en el [Panel de Control de Intlayer](https://app.intlayer.org/project) usando una clave de acceso. Intlayer gestionará automáticamente la solución de IA más eficiente y rentable para tus necesidades. Usar las opciones predeterminadas asegura un mejor mantenimiento a largo plazo, ya que Intlayer se actualiza continuamente para usar los modelos más relevantes.
|
|
1089
|
-
|
|
1090
|
-
Si prefieres usar tu propia clave API o un modelo específico, puedes definir tu configuración personalizada de IA.
|
|
1091
|
-
Esta configuración de IA se utilizará globalmente en todo su entorno Intlayer. Los comandos CLI usarán estas configuraciones como valores predeterminados para los comandos (por ejemplo, `fill`), así como el SDK, el Editor Visual y el CMS. Puede anular estos valores predeterminados para casos de uso específicos utilizando parámetros de comando.
|
|
1092
|
-
|
|
1093
|
-
Intlayer admite múltiples proveedores de IA para una mayor flexibilidad y elección. Los proveedores actualmente soportados son:
|
|
1094
|
-
|
|
1095
|
-
- **OpenAI** (predeterminado)
|
|
1096
|
-
- **Anthropic Claude**
|
|
1097
|
-
- **Mistral AI**
|
|
1098
|
-
- **DeepSeek**
|
|
1099
|
-
- **Google Gemini**
|
|
1100
|
-
- **Meta Llama**
|
|
1101
|
-
- **Ollama**
|
|
1102
|
-
- **OpenRouter**
|
|
1103
|
-
- **Alibaba Cloud**
|
|
1104
|
-
- **Fireworks**
|
|
1105
|
-
- **Hugging Face**
|
|
1106
|
-
- **Groq**
|
|
1107
|
-
- **Amazon Bedrock**
|
|
1108
|
-
- **Google AI Studio**
|
|
1109
|
-
- **Google Vertex**
|
|
1110
|
-
- **Together.ai**
|
|
1111
|
-
- **ollama**
|
|
1112
|
-
|
|
1113
|
-
#### Propiedades
|
|
1114
|
-
|
|
1115
|
-
- **provider** :
|
|
1116
|
-
- _Tipo_ : `string`
|
|
1117
|
-
- _Par defecto_ : `'openai'`
|
|
1118
|
-
- _Descripción_ : El proveedor que se utilizará para las funciones de IA de Intlayer.
|
|
1119
|
-
- _Opciones_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1120
|
-
- _Ejemplo_ : `'anthropic'`
|
|
1121
|
-
- _Nota_: Diferentes proveedores pueden requerir diferentes claves de API y tener diferentes modelos de precios.
|
|
1122
|
-
|
|
1123
|
-
- **model** :
|
|
1124
|
-
- _Tipo_ : `string`
|
|
1125
|
-
- _Par defecto_ : Ninguno
|
|
1126
|
-
- _Descripción_ : El modelo que se utilizará para las funciones de IA de Intlayer.
|
|
1127
|
-
- _Ejemplo_ : `'gpt-4o-2024-11-20'`
|
|
1128
|
-
- _Nota_ : El modelo específico que se utilizará varía según el proveedor.
|
|
1129
|
-
|
|
1130
|
-
- **temperature** :
|
|
1131
|
-
- _Tipo_ : `number`
|
|
1132
|
-
- _Par defecto_ : Ninguna
|
|
1133
|
-
- _Descripción_ : La temperatura controla la aleatoriedad de las respuestas de la IA.
|
|
1134
|
-
- _Ejemplo_ : `0.1`
|
|
1135
|
-
- _Nota_ : Una temperatura más alta hará que la IA sea más creativa y menos predecible.
|
|
1136
|
-
|
|
1137
|
-
- **apiKey** :
|
|
1138
|
-
- _Tipo_ : `string`
|
|
1139
|
-
- _Par defecto_ : Ninguna
|
|
1140
|
-
- _Descripción_ : Tu clave de API para el proveedor seleccionado.
|
|
1141
|
-
- _Ejemplo_ : `process.env.OPENAI_API_KEY`
|
|
1142
|
-
- _Nota_ : Importante: Las claves de API deben mantenerse en secreto y no compartirse públicamente. Asegúrate de guardarlas en un lugar seguro, como variables de entorno.
|
|
1143
|
-
|
|
1144
|
-
- **applicationContext** :
|
|
1145
|
-
- _Tipo_ : `string`
|
|
1146
|
-
- _Par defecto_ : Ninguno
|
|
1147
|
-
- _Descripción_ : Proporciona contexto adicional sobre tu aplicación al modelo de IA, ayudándole a generar traducciones más precisas y contextualmente adecuadas. Esto puede incluir información sobre el dominio de tu aplicación, el público objetivo, el tono o terminología específica.
|
|
1148
|
-
- _Note_: Puedes usarlo para añadir más reglas al modelo de IA (por ejemplo, "No debes transformar las URLs").
|
|
1149
|
-
- _Ejemplo_ : `'Mi contexto de aplicación'`
|
|
1150
|
-
|
|
1151
|
-
- **baseURL** :
|
|
1152
|
-
- _Tipo_ : `string`
|
|
1153
|
-
- _Par defecto_ : Ninguna
|
|
1154
|
-
- _Descripción_ : La URL base para la API de IA.
|
|
1155
|
-
- _Ejemplo_ : `'https://api.openai.com/v1'`
|
|
1156
|
-
- _Exemple_ : `'http://localhost:5000'`
|
|
1157
|
-
- _Nota_ : Puede usarse para apuntar a un punto final de API de IA local o personalizado.
|
|
1158
|
-
|
|
1159
|
-
- **dataSerialization**:
|
|
1160
|
-
- _Type_: `'json' | 'toon'`
|
|
1161
|
-
- _Par defecto_: `'json'`
|
|
1162
|
-
- _Descripción_: El formato de serialización de datos que se utilizará para las funciones de IA de Intlayer.
|
|
1163
|
-
- _Ejemplo_: `'toon'`
|
|
1164
|
-
- _Note_: `json`: Estándar, confiable; utiliza más tokens. `toon`: Menos tokens, menos consistente que el JSON.
|
|
1165
|
-
> Si proporcionas parámetros adicionales, Intlayer los pasará al modelo de IA como contexto. Esto se puede usar para personalizar el esfuerzo de razonamiento, la verbosidad del texto, etc.
|
|
1166
|
-
|
|
1167
|
-
### Configuración de Build
|
|
1168
|
-
|
|
1169
|
-
Configuraciones que controlan cómo Intlayer optimiza y construye la internacionalización de tu aplicación.
|
|
1170
|
-
|
|
1171
|
-
Las opciones de compilación se aplican a los plugins `@intlayer/babel` y `@intlayer/swc`.
|
|
1172
|
-
|
|
1173
|
-
> En modo de desarrollo, Intlayer utiliza importaciones estáticas para los diccionarios para simplificar la experiencia de desarrollo.
|
|
1174
|
-
|
|
1175
|
-
> Cuando se optimiza, Intlayer reemplazará las llamadas a los diccionarios para optimizar la división, de modo que el paquete final solo importe los diccionarios que realmente se utilizan.
|
|
1176
|
-
|
|
1177
|
-
#### Propiedades
|
|
1178
|
-
|
|
1179
|
-
- **mode** :
|
|
1180
|
-
- _Tipo_ : `'auto' | 'manual'`
|
|
1181
|
-
- _Par defecto_ : `'auto'`
|
|
1182
|
-
- _Descripción_ : Controla el modo del build.
|
|
1183
|
-
- _Ejemplo_ : `'manual'`
|
|
1184
|
-
- _Nota_ : Si es 'auto', el build se activará automáticamente durante la construcción de la aplicación.
|
|
1185
|
-
- _Nota_ : Si es 'manual', el build solo se activará cuando se ejecute la orden de construcción.
|
|
1186
|
-
- _Nota_ : Se puede usar para desactivar la construcción de diccionarios, por ejemplo, cuando se debe evitar la ejecución en un entorno Node.js.
|
|
1187
|
-
|
|
1188
|
-
- **checkTypes**:
|
|
1189
|
-
- _Tipo_: `boolean`
|
|
1190
|
-
- _Por defecto_: `false`
|
|
1191
|
-
- _Descripción_: Indica si la compilación debe comprobar los tipos de TypeScript y registrar errores.
|
|
1192
|
-
- _Nota_: Esto puede ralentizar la compilación.
|
|
1193
|
-
|
|
1194
|
-
- **optimize** :
|
|
1195
|
-
- _Tipo_ : `boolean`
|
|
1196
|
-
- _Par defecto_ : `undefined`
|
|
1197
|
-
- _Descripción_ : Controla si el build debe optimizarse.
|
|
1198
|
-
- _Ejemplo_ : `process.env.NODE_ENV === 'production'`
|
|
1199
|
-
- _Note_ : Por defecto, la optimización del build no está fijada. Si no se define, Intlayer activará la optimización del build durante la construcción de tu aplicación (vite / nextjs / etc). Establecerlo en `true` forzará la optimización del build, incluso en modo de desarrollo. Establecerlo en `false` desactivará la optimización del build.
|
|
1200
|
-
- _Nota_ : Cuando se habilita, Intlayer reemplazará todas las llamadas a los diccionarios para optimizar la división. Por lo tanto, el paquete final solo importará los diccionarios utilizados. Todas las importaciones seguirán siendo importaciones estáticas para evitar el procesamiento asíncrono al cargar los diccionarios.
|
|
1201
|
-
- _Nota_ : Intlayer reemplazará todas las llamadas de `useIntlayer` por el modo definido a través de la opción `importMode` y `getIntlayer` por `getDictionary`.
|
|
1202
|
-
- _Nota_ : Esta opción depende de los plugins `@intlayer/babel` y `@intlayer/swc`.
|
|
1203
|
-
- _Nota_ : Asegúrate de que todas las claves se declaren estáticamente en las llamadas a `useIntlayer`. Por ejemplo, `useIntlayer('navbar')`.
|
|
1204
|
-
|
|
1205
|
-
- **outputFormat** :
|
|
1206
|
-
- _Type_ : `('esm' | 'cjs')[]`
|
|
1207
|
-
- _Par defecto_ : `['cjs', 'esm']`
|
|
1208
|
-
- _Descripción_ : Controla el formato de salida de los diccionarios.
|
|
1209
|
-
- _Ejemplo_ : `'cjs'`
|
|
1210
|
-
- _Nota_ : El formato de salida de los diccionarios.
|
|
1211
|
-
|
|
1212
|
-
- **traversePattern** :
|
|
1213
|
-
- _Tipo_ : `string[]`
|
|
1214
|
-
- _Par defecto_ : `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1215
|
-
- _Descripción_ : Patrones que definen qué archivos deben recorrerse durante la optimización.
|
|
1216
|
-
- _Ejemplo_ : `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1217
|
-
- _Nota_ : Usa esto para limitar la optimización a los archivos de código relevantes y mejorar el rendimiento de la construcción.
|
|
1218
|
-
- _Nota_ : Esta opción se ignorará si `optimize` está desactivado.
|
|
1219
|
-
- _Nota_ : Usa un patrón glob.
|
|
910
|
+
### Esquemas Personalizados (Custom Schemas)
|
|
911
|
+
|
|
912
|
+
| Campo | Tipo | Descripción |
|
|
913
|
+
| --------- | --------------------------- | ------------------------------------------------------------------------------- |
|
|
914
|
+
| `schemas` | `Record<string, ZodSchema>` | Permite definir esquemas de Zod para validar la estructura de sus diccionarios. |
|
|
1220
915
|
|
|
1221
916
|
---
|
|
1222
917
|
|
|
1223
|
-
###
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
- **enabled**:
|
|
1230
|
-
- _Tipo_: `boolean | 'build-only'`
|
|
1231
|
-
- _Por defecto_: `true`
|
|
1232
|
-
- _Descripción_: Indica si el compilador debe estar habilitado para extraer los diccionarios.
|
|
1233
|
-
- _Ejemplo_: `'build-only'`
|
|
1234
|
-
- _Nota_: Establecerlo en `'build-only'` saltará el compilador durante el modo de desarrollo para acelerar los tiempos de inicio. Solo se ejecutará en los comandos de construcción.
|
|
1235
|
-
|
|
1236
|
-
- **dictionaryKeyPrefix**:
|
|
1237
|
-
- _Tipo_: `string`
|
|
1238
|
-
- _Por defecto_: `''`
|
|
1239
|
-
- _Descripción_: Prefijo para las claves de diccionario extraídas.
|
|
1240
|
-
- _Ejemplo_: `'my-key-'`
|
|
1241
|
-
- _Nota_: Cuando se extraen diccionarios, la clave se genera a partir del nombre del archivo. Este prefijo se añade a la clave generada para evitar conflictos.
|
|
1242
|
-
|
|
1243
|
-
- **saveComponents**:
|
|
1244
|
-
- _Tipo_: `boolean`
|
|
1245
|
-
- _Por defecto_: `false`
|
|
1246
|
-
- _Descripción_: Indica si los componentes deben guardarse después de ser transformados.
|
|
1247
|
-
- _Nota_: Si es verdadero, el compilador reemplazará los archivos originales con los archivos transformados. De esa manera, el compilador puede ejecutarse solo una vez para transformar la aplicación y luego puede eliminarse.
|
|
1248
|
-
|
|
1249
|
-
- **transformPattern**:
|
|
1250
|
-
- _Tipo_: `string | string[]`
|
|
1251
|
-
- _Por defecto_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
|
|
1252
|
-
- _Descripción_: Patrones que definen qué archivos deben ser recorridos durante la optimización.
|
|
1253
|
-
- _Ejemplo_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1254
|
-
- _Nota_: Use esto para limitar la optimización a archivos de código relevantes y mejorar el rendimiento de la construcción.
|
|
1255
|
-
|
|
1256
|
-
- **excludePattern**:
|
|
1257
|
-
- _Tipo_: `string | string[]`
|
|
1258
|
-
- _Por defecto_: `['**/node_modules/**']`
|
|
1259
|
-
- _Descripción_: Patrones que definen qué archivos deben excluirse durante la optimización.
|
|
1260
|
-
- _Ejemplo_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1261
|
-
|
|
1262
|
-
- **output**:
|
|
1263
|
-
- _Type_: `FilePathPattern`
|
|
1264
|
-
- _Par defecto_: `undefined`
|
|
1265
|
-
- _Descripción_: Define la ruta de los archivos de salida. Reemplaza `outputDir`. Maneja variables dinámicas a través de cadenas de plantillas o una función. Variables compatibles: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` y `{{componentDirPath}}`.
|
|
1266
|
-
- _Nota_: Las rutas `./` se resuelven de forma relativa al directorio del componente. Las rutas `/` se resuelven de forma relativa a la raíz del proyecto (`baseDir`).
|
|
1267
|
-
- _Nota_: Incluir la variable `{{locale}}` en la ruta activará la generación de diccionarios separados por locale.
|
|
1268
|
-
- _Ejemplo_:
|
|
1269
|
-
- **Archivos multilingües cerca del componente** :
|
|
1270
|
-
- Cadena : `'./{{fileName}}{{extension}}'`
|
|
1271
|
-
- Función : `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1272
|
-
|
|
1273
|
-
- **JSON centralizado por locale** :
|
|
1274
|
-
- Cadena : `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1275
|
-
- Función : `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1276
|
-
|
|
1277
|
-
- **noMetadata**:
|
|
1278
|
-
- _Tipo_: `boolean`
|
|
1279
|
-
- _Par defecto_: `false`
|
|
1280
|
-
- _Descripción_: Indica si los metadatos deben guardarse en el archivo. Si es verdadero, el compilador no guardará los metadatos de los diccionarios (clave, contenedor de contenido). Útil para las salidas JSON de i18next o ICU MessageFormat por locale.
|
|
1281
|
-
- _Nota_: Útil si se usa con el plugin `loadJSON`.
|
|
1282
|
-
- _Ejemplo_:
|
|
1283
|
-
Si es `true` :
|
|
1284
|
-
```json
|
|
1285
|
-
{
|
|
1286
|
-
"key": "value"
|
|
1287
|
-
}
|
|
1288
|
-
```
|
|
1289
|
-
Si es `false`:
|
|
1290
|
-
```json
|
|
1291
|
-
{
|
|
1292
|
-
"key": "value",
|
|
1293
|
-
"content": {
|
|
1294
|
-
"key": "value"
|
|
1295
|
-
}
|
|
1296
|
-
}
|
|
1297
|
-
```
|
|
918
|
+
### Complementos (Plugins)
|
|
919
|
+
|
|
920
|
+
| Campo | Tipo | Descripción |
|
|
921
|
+
| --------- | ------------------ | --------------------------------------------------- |
|
|
922
|
+
| `plugins` | `IntlayerPlugin[]` | Lista de complementos de Intlayer que se activarán. |
|