@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.
Files changed (48) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +20 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +20 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +1 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/configuration.md +520 -722
  8. package/docs/ar/intlayer_with_storybook.md +521 -0
  9. package/docs/bn/configuration.md +922 -0
  10. package/docs/bn/intlayer_with_hono.md +428 -0
  11. package/docs/de/configuration.md +369 -743
  12. package/docs/de/intlayer_with_storybook.md +521 -0
  13. package/docs/en/configuration.md +181 -507
  14. package/docs/en/intlayer_with_storybook.md +521 -0
  15. package/docs/en-GB/configuration.md +456 -657
  16. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  17. package/docs/es/configuration.md +379 -754
  18. package/docs/es/intlayer_with_storybook.md +521 -0
  19. package/docs/fr/configuration.md +376 -757
  20. package/docs/fr/intlayer_with_storybook.md +521 -0
  21. package/docs/hi/configuration.md +532 -728
  22. package/docs/hi/intlayer_with_storybook.md +521 -0
  23. package/docs/id/configuration.md +371 -684
  24. package/docs/id/intlayer_with_storybook.md +521 -0
  25. package/docs/it/configuration.md +397 -775
  26. package/docs/it/intlayer_with_storybook.md +521 -0
  27. package/docs/ja/configuration.md +525 -724
  28. package/docs/ja/intlayer_with_storybook.md +521 -0
  29. package/docs/ko/configuration.md +525 -724
  30. package/docs/ko/intlayer_with_storybook.md +521 -0
  31. package/docs/pl/configuration.md +430 -734
  32. package/docs/pl/intlayer_with_storybook.md +521 -0
  33. package/docs/pt/configuration.md +375 -746
  34. package/docs/pt/intlayer_with_storybook.md +521 -0
  35. package/docs/ru/configuration.md +532 -701
  36. package/docs/ru/intlayer_with_storybook.md +521 -0
  37. package/docs/tr/configuration.md +527 -719
  38. package/docs/tr/intlayer_with_storybook.md +521 -0
  39. package/docs/uk/configuration.md +425 -744
  40. package/docs/uk/intlayer_with_storybook.md +521 -0
  41. package/docs/ur/configuration.md +922 -0
  42. package/docs/ur/intlayer_with_hono.md +428 -0
  43. package/docs/vi/configuration.md +412 -753
  44. package/docs/vi/intlayer_with_storybook.md +521 -0
  45. package/docs/zh/configuration.md +521 -714
  46. package/docs/zh/intlayer_with_storybook.md +521 -0
  47. package/package.json +6 -6
  48. package/src/generated/docs.entry.ts +20 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
4
- title: Configuración
5
- description: Aprende cómo configurar Intlayer para tu aplicación. Entiende las diversas configuraciones y opciones disponibles para personalizar Intlayer según tus necesidades.
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: Mover 'baseDir' de la configuración 'content' a la de 'system'
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: Actualizar opciones del compilador, añadir soporte para 'output' y 'noMetadata'
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: Actualizar opciones del compilador
28
+ changes: Se actualizaron las opciones del compilador
26
29
  - version: 8.1.5
27
30
  date: 2026-02-23
28
- changes: Añadir opción de compilador 'build-only' y prefijo de diccionario
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: Añadir soporte para los proveedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face y Together.ai
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: Añadir `dataSerialization` a la configuración de IA
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: Renombrar el modo de importación `live` a `fetch` para describir mejor el mecanismo subyacente.
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: Mover la configuración de construcción para `importMode` a la configuración del diccionario.
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: Añadir la opción `rewrite` a la configuración de enrutamiento
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: Separar la configuración del sistema de la configuración del contenido. Mover las rutas internas a la propiedad `system`. Añadir `codeDir` para separar los archivos de contenido de la transformación del código.
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: Añadir opciones de diccionario `location` y `schema`
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: Añadir soporte para formatos de archivo JSON5 y JSONC
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: Añadir opción `buildMode`
58
+ changes: Se añadió la opción `buildMode`
56
59
  - version: 7.0.0
57
60
  date: 2025-10-25
58
- changes: Añadir configuración de `dictionary`
61
+ changes: Se añadió la configuración `dictionary`
59
62
  - version: 7.0.0
60
63
  date: 2025-10-21
61
- changes: Reemplazar el `middleware` por la configuración de `routing`
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: Añadir opción `formatCommand`
67
+ changes: Se añadió la opción `formatCommand`
65
68
  - version: 6.2.0
66
69
  date: 2025-10-12
67
- changes: Actualizar opción `excludedPath`
70
+ changes: Se actualizó la opción `excludedPath`
68
71
  - version: 6.0.2
69
72
  date: 2025-09-23
70
- changes: Añadir opción `outputFormat`
73
+ changes: Se añadió la opción `outputFormat`
71
74
  - version: 6.0.0
72
75
  date: 2025-09-21
73
- changes: Eliminar el campo `dictionaryOutput` y el campo `i18nextResourcesDir`
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: Añadido modo de importación `live`
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: Reemplazar el campo `hotReload` por `liveSync` y agregar los campos `liveSyncPort` y `liveSyncURL`
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: Reemplazar `activateDynamicImport` por la opción `importMode`
85
+ changes: Se reemplazó `activateDynamicImport` por la opción `importMode`
83
86
  - version: 5.6.0
84
87
  date: 2025-07-13
85
- changes: Cambiar el valor predeterminado de contentDir de `['src']` a `['.']`
88
+ changes: Se cambió el contentDir predeterminado de `['src']` a `['.']`
86
89
  - version: 5.5.11
87
90
  date: 2025-06-29
88
- changes: Agregar comandos `docs`
91
+ changes: Se añadieron los comandos `docs`
89
92
  ---
90
93
 
91
94
  # Documentación de Configuración de Intlayer
92
95
 
93
- ## Visión General
96
+ ## Resumen
94
97
 
95
- Los archivos de configuración de Intlayer permiten la personalización de varios aspectos del plugin, como la internacionalización, middleware y manejo de contenido. Este documento proporciona una descripción detallada de cada propiedad en la configuración.
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
- ## Soporte de Archivos de Configuración
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
- ## Archivo de configuración de ejemplo
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
- * Example Intlayer configuration file showing all available options.
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
- * Configuration for internationalization settings.
135
+ * Configuración de los ajustes de internacionalización.
133
136
  */
134
137
  internationalization: {
135
138
  /**
136
- * List of supported locales in the application.
137
- * Default: [Locales.ENGLISH]
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
- * List of required locales that must be defined in every dictionary.
143
- * If empty, all locales are required in `strict` mode.
144
- * Default: []
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
- * Strictness level for internationalized content.
150
- * - "strict": Errors if any declared locale is missing or undeclared.
151
- * - "inclusive": Warnings if a declared locale is missing.
152
- * - "loose": Accepts any existing locale.
153
- * Default: "inclusive"
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
- * Default locale used as a fallback if the requested locale is not found.
159
- * Default: Locales.ENGLISH
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
- * Settings that control dictionary operations and fallback behavior.
168
+ * Ajustes que controlan las operaciones de diccionarios y el comportamiento de respaldo.
166
169
  */
167
170
  dictionary: {
168
171
  /**
169
- * Controls how dictionaries are imported.
170
- * - "static": Statically imported at build time.
171
- * - "dynamic": Dynamically imported using Suspense.
172
- * - "fetch": Fetched dynamically via the live sync API.
173
- * Default: "static"
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
- * Strategy for auto-filling missing translations using AI.
179
- * Can be a boolean or a path pattern to store filled content.
180
- * Default: true
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
- * Physical location of the dictionary files.
186
- * - "local": Stored in the local filesystem.
187
- * - "remote": Stored in the Intlayer CMS.
188
- * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
189
- * - "plugin" (or any custom string): Provided by a plugin or a custom source.
190
- * Default: "local"
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
- * Whether to automatically transform content (e.g., Markdown to HTML).
196
- * Default: false
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
- * Routing and middleware configuration.
205
+ * Configuración de enrutamiento y middleware.
203
206
  */
204
207
  routing: {
205
208
  /**
206
- * Locale routing strategy.
207
- * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
208
- * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
209
- * - "no-prefix": No locale in the URL.
210
- * - "search-params": Use ?locale=...
211
- * Default: "prefix-no-default"
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
- * Where to store the user's selected locale.
217
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
218
- * Default: ['cookie', 'header']
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
- * Base path for the application URLs.
224
- * Default: ""
226
+ * Ruta base para las URL de la aplicación.
227
+ * Predeterminado: ""
225
228
  */
226
229
  basePath: "",
227
230
 
228
231
  /**
229
- * Custom URL rewriting rules for locale-specific paths.
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
- * Settings for finding and processing content files.
243
+ * Ajustes relacionados con la búsqueda y procesamiento de archivos de contenido.
241
244
  */
242
245
  content: {
243
246
  /**
244
- * File extensions to scan for dictionaries.
245
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
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
- * Directories where .content files are located.
251
- * Default: ["."]
253
+ * Directorios donde se encuentran los archivos .content.
254
+ * Predeterminado: ["."]
252
255
  */
253
256
  contentDir: ["src"],
254
257
 
255
258
  /**
256
- * Directories where source code is located.
257
- * Used for build optimization and code transformation.
258
- * Default: ["."]
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
- * Patterns to exclude from scanning.
264
- * Default: ['node_modules', '.intlayer', etc.]
266
+ * Patrones excluidos del escaneo.
267
+ * Predeterminado: ['node_modules', '.intlayer', etc.]
265
268
  */
266
269
  excludedPath: ["node_modules"],
267
270
 
268
271
  /**
269
- * Whether to watch for changes and rebuild dictionaries in development.
270
- * Default: true in development
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
- * Command to format newly created / updated .content files.
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 configuration.
284
+ * Configuración del Editor Visual (Visual Editor).
282
285
  */
283
286
  editor: {
284
287
  /**
285
- * Whether the visual editor is enabled.
286
- * Default: false
288
+ * Si el editor visual está habilitado.
289
+ * Predeterminado: false
287
290
  */
288
291
  enabled: true,
289
292
 
290
293
  /**
291
- * URL of your application for origin validation.
292
- * Default: ""
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
- * Port for the local editor server.
298
- * Default: 8000
300
+ * Puerto para el servidor del editor local.
301
+ * Predeterminado: 8000
299
302
  */
300
303
  port: 8000,
301
304
 
302
305
  /**
303
- * Public URL for the editor.
304
- * Default: "http://localhost:8000"
306
+ * URL pública del editor.
307
+ * Predeterminado: "http://localhost:8000"
305
308
  */
306
309
  editorURL: "http://localhost:8000",
307
310
 
308
311
  /**
309
- * Intlayer CMS URL.
310
- * Default: "https://app.intlayer.org"
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
- * Backend API URL.
316
- * Default: "https://back.intlayer.org"
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
- * Whether to enable real-time content synchronization.
322
- * Default: false
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
- * AI-powered translation and generation settings.
331
+ * Ajustes de traducción y construcción basados en IA.
329
332
  */
330
333
  ai: {
331
334
  /**
332
- * AI provider to use.
333
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
334
- * Default: 'openai'
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
- * Model to use from the selected provider.
342
+ * Modelo del proveedor seleccionado que se utilizará.
340
343
  */
341
344
  model: "gpt-4o",
342
345
 
343
346
  /**
344
- * Provider API key.
347
+ * Clave de API del proveedor.
345
348
  */
346
349
  apiKey: process.env.OPENAI_API_KEY,
347
350
 
348
351
  /**
349
- * Global context to guide the AI in generating translations.
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
- * Base URL for the AI API.
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": Estándar, confiable; consume más tokens.
363
- * - "toon": Menos tokens, menos consistente que JSON.
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
- * Por defecto: "json"
368
+ * Predeterminado: "json"
366
369
  */
367
370
  dataSerialization: "json",
368
371
  },
369
372
 
370
373
  /**
371
- * Build and optimization settings.
374
+ * Ajustes de compilación y optimización.
372
375
  */
373
376
  build: {
374
377
  /**
375
- * Build execution mode.
376
- * - "auto": Automatic build during app build.
377
- * - "manual": Requires explicit build command.
378
- * Default: "auto"
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
- * Whether to optimize the final bundle by pruning unused dictionaries.
384
- * Default: true in production
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
- * Output format for generated dictionary files.
390
- * Default: ['cjs', 'esm']
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
- * Indicates if the build should check TypeScript types.
396
- * Default: false
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 configuration.
405
+ * Configuración del registrador (Logger).
403
406
  */
404
407
  log: {
405
408
  /**
406
- * Logging level.
407
- * - "default": Standard logging.
408
- * - "verbose": Detailed debug logging.
409
- * - "disabled": No logging.
410
- * Default: "default"
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
- * Prefix for all log messages.
416
- * Default: "[intlayer]"
418
+ * Prefijo para todos los mensajes de registro.
419
+ * Predeterminado: "[intlayer]"
417
420
  */
418
421
  prefix: "[intlayer]",
419
422
  },
420
423
 
421
424
  /**
422
- * System configuration (Advanced use cases)
425
+ * Configuración del sistema (para uso avanzado)
423
426
  */
424
427
  system: {
425
428
  /**
426
- * Directory for storing localization dictionaries.
429
+ * Directorio para almacenar diccionarios localizados.
427
430
  */
428
431
  dictionariesDir: ".intlayer/dictionary",
429
432
 
430
433
  /**
431
- * Directory for module augmentation.
434
+ * Directorio para el aumento de módulos de TypeScript (module augmentation).
432
435
  */
433
436
  moduleAugmentationDir: ".intlayer/types",
434
437
 
435
438
  /**
436
- * Directory for storing unmerged dictionaries.
439
+ * Directorio para almacenar diccionarios no fusionados.
437
440
  */
438
441
  unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
439
442
 
440
443
  /**
441
- * Directory for storing dictionary types.
444
+ * Directorio para almacenar tipos de diccionarios.
442
445
  */
443
446
  typesDir: ".intlayer/types",
444
447
 
445
448
  /**
446
- * Directory where main application files are stored.
449
+ * Directorio donde se almacenan los archivos principales de la aplicación.
447
450
  */
448
451
  mainDir: ".intlayer/main",
449
452
 
450
453
  /**
451
- * Directory where the configuration files are stored.
454
+ * Directorio donde se almacenan los archivos de configuración.
452
455
  */
453
456
  configDir: ".intlayer/config",
454
457
 
455
458
  /**
456
- * Directory where the cache files are stored.
459
+ * Directorio donde se almacenan los archivos de caché.
457
460
  */
458
461
  cacheDir: ".intlayer/cache",
459
462
  },
460
463
 
461
464
  /**
462
- * Compiler configuration (Advanced use cases)
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 : Deshabilita el compilador.
469
- * - true : Habilita el compilador.
470
- * - "build-only" : Omite el compilador durante el desarrollo para acelerar los tiempos de inicio.
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
- * Por defecto : false
475
+ * Predeterminado: false
473
476
  */
474
477
  enabled: true,
475
478
 
476
479
  /**
477
- * Define la ruta de los archivos de salida. Reemplaza `outputDir`.
480
+ * Define la ruta para los archivos de salida. Reemplaza `outputDir`.
478
481
  *
479
- * - Las rutas `./` se resuelven de forma relativa al directorio del componente.
480
- * - Las rutas `/` se resuelven de forma relativa a la raíz del proyecto (`baseDir`).
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
- * - Incluir la variable `{{locale}}` en la ruta activará la generación de diccionarios separados por locale.
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 cerca del componente
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 una cadena de plantilla
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 locale en la raíz del proyecto
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 una cadena de plantilla
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`: El nombre del archivo.
505
- * - `key`: La clave del contenido.
506
- * - `locale`: El locale del contenido.
507
- * - `extension`: La extensión del archivo.
508
- * - `componentFileName`: El nombre del archivo del componente.
509
- * - `componentExtension`: La extensión del archivo del componente.
510
- * - `format`: El formato del diccionario.
511
- * - `componentFormat`: El formato del diccionario del componente.
512
- * - `componentDirPath`: La ruta del directorio del componente.
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 sola vez para transformar la aplicación y luego puede eliminarse.
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
- * Inserta solo el contenido en el archivo generado. Útil para salidas JSON de i18next o ICU MessageFormat por locale.
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: "", // Añadir un prefijo opcional para las claves de diccionario extraídas
533
+ dictionaryKeyPrefix: "", // Agregue un prefijo opcional a las claves de diccionario extraídas
531
534
  },
532
535
 
533
536
  /**
534
- * Custom schemas to validate the dictionaries content.
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 configuration.
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
- Las siguientes secciones describen las diversas configuraciones disponibles para Intlayer.
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 configuraciones relacionadas con la internacionalización, incluyendo los locales disponibles y el local predeterminado para la aplicación.
560
-
561
- #### Propiedades
562
-
563
- - **locales**:
564
- - _Tipo_: `string[]`
565
- - _Por defecto_: `['en']`
566
- - _Descripción_: La lista de locales soportados en la aplicación.
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 configuraciones relacionadas con el editor integrado, incluyendo el puerto del servidor y el estado activo.
596
-
597
- #### Propiedades
598
-
599
- - **applicationURL**:
600
- - _Tipo_: `string`
601
- - _Por defecto_: `http://localhost:3000`
602
- - _Descripción_: La URL de la aplicación. Se usa para restringir el origen del editor por razones de seguridad.
603
- - _Ejemplo_:
604
- - `'http://localhost:3000'`
605
- - `'https://example.com'`
606
- - `process.env.INTLAYER_EDITOR_URL`
607
- - _Nota_: La URL de la aplicación. Se usa para restringir el origen del editor por razones de seguridad. Si se establece en `'*'`, el editor es accesible desde cualquier origen.
608
-
609
- - **port**:
610
- - _Tipo_: `number`
611
- - _Por defecto_: `8000`
612
- - _Descripción_: El puerto utilizado por el servidor del editor visual.
613
-
614
- - **editorURL**:
615
- - _Tipo_: `string`
616
- - _Por defecto_: `'http://localhost:8000'`
617
- - _Descripción_: La URL del servidor del editor. Se usa para restringir el origen del editor por razones de seguridad.
618
- - `'http://localhost:3000'`
619
- - `'https://example.com'`
620
- - `process.env.INTLAYER_EDITOR_URL`
621
- - _Nota_: La URL del servidor del editor a la que se accede desde la aplicación. Se usa para restringir los orígenes que pueden interactuar con la aplicación por razones de seguridad. Si se establece en `'*'`, el editor es accesible desde cualquier origen. Debe configurarse si se cambia el puerto o si el editor está alojado en un dominio diferente.
622
-
623
- - **cmsURL**:
624
- - _Tipo_: `string`
625
- - _Por defecto_: `'https://intlayer.org'`
626
- - _Descripción_: La URL del CMS de Intlayer.
627
- - _Ejemplo_: `'https://intlayer.org'`
628
- - _Nota_: La URL del CMS de Intlayer.
629
-
630
- - **backendURL**:
631
- - _Tipo_: `string`
632
- - _Por defecto_: `https://back.intlayer.org`
633
- - _Descripción_: La URL del servidor backend.
634
- - _Ejemplo_: `http://localhost:4000`
635
-
636
- - **enabled**:
637
- - _Tipo_: `boolean`
638
- - _Por defecto_: `true`
639
- - _Descripción_: Indica si la aplicación interactúa con el editor visual.
640
- - _Ejemplo_: `process.env.NODE_ENV !== 'production'`
641
- - _Nota_: Si es verdadero, el editor podrá interactuar con la aplicación. Si es falso, el editor no podrá interactuar con la aplicación. En cualquier caso, el editor solo puede ser habilitado por el editor visual. Deshabilitar el editor para entornos específicos es una forma de reforzar la seguridad.
642
-
643
- - **clientId**:
644
- - _Tipo_: `string` | `undefined`
645
- - _Por defecto_: `undefined`
646
- - _Descripción_: clientId y clientSecret permiten que los paquetes de intlayer se autentiquen con el backend utilizando la autenticación oAuth2. Un token de acceso se usa para autenticar al usuario relacionado con el proyecto. Para obtener un token de acceso, visite https://app.intlayer.org/project y cree una cuenta.
647
- - _Ejemplo_: `true`
648
- - _Nota_: Importante: El clientId y clientSecret deben mantenerse en secreto y no compartirse públicamente. Asegúrese de guardarlos en un lugar seguro, como variables de entorno.
649
-
650
- - **clientSecret**:
651
- - _Tipo_: `string` | `undefined`
652
- - _Por defecto_: `undefined`
653
- - _Descripción_: clientId y clientSecret permiten que los paquetes de intlayer se autentiquen con el backend utilizando la autenticación oAuth2. Se utiliza un token de acceso para autenticar al usuario relacionado con el proyecto. Para obtener un token de acceso, vaya a https://app.intlayer.org/project y cree una cuenta.
654
- - _Ejemplo_: `true`
655
- - _Nota_: Importante: El clientId y clientSecret deben mantenerse en secreto y no compartirse públicamente. Por favor, asegúrese de mantenerlos en un lugar seguro, como variables de entorno.
656
-
657
- - **dictionaryPriorityStrategy**:
658
- - _Tipo_: `string`
659
- - _Por defecto_: `'local_first'`
660
- - _Descripción_: La estrategia para priorizar los diccionarios en caso de que estén presentes tanto diccionarios locales como remotos. Si se establece en `'distant_first'`, la aplicación priorizará los diccionarios remotos sobre los locales. Si se establece en `'local_first'`, la aplicación priorizará los diccionarios locales sobre los remotos.
661
- - _Ejemplo_: `'distant_first'`
662
-
663
- - **liveSync**:
664
- - _Tipo_: `boolean`
665
- - _Por defecto_: `false`
666
- - _Descripción_: Indica si el servidor de la aplicación debe recargar en caliente el contenido de la aplicación cuando se detecta un cambio en el CMS / Editor Visual / Backend.
667
- - _Ejemplo_: `true`
668
- - _Nota_: Por ejemplo, cuando se añade o actualiza un nuevo diccionario, la aplicación actualizará el contenido para mostrarlo en la página.
669
- - _Nota_: La sincronización en vivo necesita externalizar el contenido de la aplicación a otro servidor. Esto significa que puede afectar ligeramente el rendimiento de la aplicación. Para limitar esto, recomendamos alojar la aplicación y el servidor de sincronización en vivo en la misma máquina. Además, la combinación de sincronización en vivo y `optimize` puede generar un número considerable de solicitudes al servidor de sincronización en vivo. Dependiendo de su infraestructura, recomendamos probar ambas opciones y su combinación.
670
-
671
- - **liveSyncPort**:
672
- - _Tipo_: `number`
673
- - _Por defecto_: `4000`
674
- - _Descripción_: El puerto del servidor de sincronización en vivo.
675
- - _Ejemplo_: `4000`
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 &#124; 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 &#124; 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' &#124; 'prefix-all' &#124; 'no-prefix' &#124; '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 &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; 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' &#124; 'lax' &#124; 'none'` | Política de SameSite. |
648
+ | `expires` | `Date &#124; 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' &#124; '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í hay algunos ejemplos comunes de configuración para la nueva estructura de enrutamiento v8:
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 Conforme al RGPD**:
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 de Parámetros de Búsqueda**:
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 Sin Prefijo con Almacenamiento Personalizado**:
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 Personalizada con Rutas Dinámicas**:
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 reescritas
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
- Configuraciones relacionadas con el manejo de contenido dentro de la aplicación, incluyendo nombres de directorios, extensiones de archivos y configuraciones derivadas.
928
-
929
- #### Propiedades
930
-
931
- - **autoFill**:
932
- - _Tipo_: `boolean | string | FilePathPattern | { [key in Locales]?: string }`
933
- - _Por defecto_: `undefined`
934
- - _Descripción_: Indica cómo debe completarse automáticamente el contenido usando IA. Puede declararse globalmente en el archivo `intlayer.config.ts`.
935
- - _Ejemplo_: true
936
- - _Ejemplo_: `'./{{fileName}}.content.json'`
937
- - _Ejemplo_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
938
- - _Nota_: La configuración de auto completado. Puede ser:
939
- - booleano: Habilitar auto completado para todas las locales
940
- - cadena: Ruta a un solo archivo o plantilla con variables
941
- - objeto: Rutas de archivo por locale
942
-
943
- - **watch**:
944
- - _Tipo_: `boolean`
945
- - _Por defecto_: `process.env.NODE_ENV === 'development'`
946
- - _Descripción_: Indica si Intlayer debe vigilar cambios en los archivos de declaración de contenido en la aplicación para reconstruir los diccionarios relacionados.
947
-
948
- - **fileExtensions**:
949
- - _Tipo_: `string[]`
950
- - _Por defecto_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
951
- - _Descripción_: Extensiones de archivo que se buscan al construir los diccionarios.
952
- - _Ejemplo_: `['.data.ts', '.data.js', '.data.json']`
953
- - _Nota_: Personalizar las extensiones de archivo puede ayudar a evitar conflictos.
954
-
955
- - **contentDir**:
956
- - _Tipo_: `string[]`
957
- - _Por defecto_: `['.']`
958
- - _Ejemplo_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
959
- - _Descripción_: La ruta del directorio donde se almacenan los archivos de definición de contenido (`.content.*`).
960
- - _Nota_: Esto se usa para vigilar los archivos de contenido para reconstruir los diccionarios.
961
-
962
- - **codeDir**:
963
- - _Tipo_: `string[]`
964
- - _Por defecto_: `['.']`
965
- - _Ejemplo_: `['src', '../../ui-library']`
966
- - _Descripción_: La ruta del directorio donde se almacena el código, relativa al directorio base.
967
- - _Nota_: Esto se usa para vigilar los archivos de código para transformar (podar, optimizar). Mantener esto separado de `contentDir` puede mejorar el rendimiento de la compilación al evitar escaneos innecesarios de archivos de contenido.
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 &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; 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' &#124; 'dynamic' &#124; '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' &#124; 'remote' &#124; 'hybrid' &#124; 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 del Sistema
841
+ ### Configuración de IA (AI Configuration)
988
842
 
989
- Estructura de directorios y resultados de salida de Intlayer. Estas configuraciones son típicamente internas y no deberían necesitar ser modificadas por el usuario.
843
+ Define los ajustes para las características potenciadas por IA de Intlayer, como la construcción de traducciones.
990
844
 
991
- #### Propiedades
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' &#124; '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
- - **baseDir**:
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
- - **dictionariesDir**:
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
- - **moduleAugmentationDir**:
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
- - **unmergedDictionariesDir**:
1013
- - _Tipo_: `string`
1014
- - _Por defecto_: `'.intlayer/unmerged_dictionary'`
1015
- - _Descripción_: El directorio para almacenar diccionarios no fusionados.
860
+ | Campo | Tipo | Descripción | Ejemplo | Nota |
861
+ | -------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | ------- | ---- |
862
+ | `mode` | `'auto' &#124; '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' &#124; '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
- - **typesDir**:
1018
- - _Tipo_: `string`
1019
- - _Por defecto_: `'.intlayer/types'`
1020
- - _Descripción_: El directorio para almacenar los tipos de diccionario.
867
+ ---
1021
868
 
1022
- - **mainDir**:
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
- - **configDir**:
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
- - **cacheDir**:
1033
- - _Tipo_: `string`
1034
- - _Por defecto_: `'.intlayer/cache'`
1035
- - _Descripción_: El directorio donde se almacenan los archivos de caché.
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
- ### Configuración del diccionario
883
+ ---
884
+
885
+ ### Configuración del Compilador (Compiler Configuration)
1038
886
 
1039
- Configuraciones que controlan las operaciones del diccionario, incluyendo el comportamiento de auto-relleno y la generación de contenido.
887
+ Ajustes para el compilador de Intlayer (`intlayer compiler`).
1040
888
 
1041
- Esta configuración de diccionario sirve para dos propósitos principales:
889
+ | Campo | Tipo | Descripción | Predeterminado |
890
+ | --------------------- | ------------------------ | --------------------------------------------------------------------------------------------------- | -------------- |
891
+ | `enabled` | `boolean` | Indica si el compilador está activo. | `false` |
892
+ | `output` | `string &#124; 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
- 1. **Valores por defecto**: Define valores por defecto al crear archivos de declaración de contenido
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
- Para más información sobre los archivos de declaración de contenido y cómo se aplican los valores de configuración, consulta la [Documentación del archivo de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/content_file.md).
899
+ ### Configuración del Registrador (Logger Configuration)
1047
900
 
1048
- #### Propiedades
901
+ Ajustes para personalizar la salida de registros de Intlayer.
1049
902
 
1050
- - **fill**
1051
- - **description**
1052
- - **locale**
1053
- - **location**
1054
- - **priority**
1055
- - **live**
1056
- - **schema**
1057
- - **title**
1058
- - **tags**
1059
- - **version**
903
+ | Campo | Tipo | Descripción | Predeterminado |
904
+ | -------- | ---------------------------------------------- | -------------------------------------- | -------------- |
905
+ | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | Modo de registro. | `'default'` |
906
+ | `prefix` | `string` | Prefijo para los mensajes de registro. | `'[intlayer]'` |
1060
907
 
1061
908
  ---
1062
909
 
1063
- ### Configuración del Logger
1064
-
1065
- Configuraciones que controlan el logger, incluyendo el prefijo a usar.
1066
-
1067
- #### Propiedades
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
- ### Configuración del compilador
1224
-
1225
- Ajustes que controlan el compilador Intlayer, que extrae diccionarios directamente de sus componentes.
1226
-
1227
- #### Propiedades
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. |