@intlayer/docs 8.3.0-canary.4 → 8.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
package/docs/es/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Configuración
|
|
5
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.
|
|
6
6
|
keywords:
|
|
@@ -15,23 +15,32 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: Mover 'baseDir' de la configuración 'content' a la de 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
|
-
date: 2026-03-
|
|
21
|
+
date: 2026-03-09
|
|
22
22
|
changes: Actualizar opciones del compilador, añadir soporte para 'output' y 'noMetadata'
|
|
23
23
|
- version: 8.1.7
|
|
24
24
|
date: 2026-02-25
|
|
25
25
|
changes: Actualizar opciones del compilador
|
|
26
|
+
- version: 8.1.5
|
|
27
|
+
date: 2026-02-23
|
|
28
|
+
changes: Añadir opción de compilador 'build-only' y prefijo de diccionario
|
|
26
29
|
- version: 8.0.6
|
|
27
30
|
date: 2026-02-12
|
|
28
31
|
changes: Añadir soporte para los proveedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face y Together.ai
|
|
29
32
|
- version: 8.0.5
|
|
30
33
|
date: 2026-02-06
|
|
31
34
|
changes: Añadir `dataSerialization` a la configuración de IA
|
|
35
|
+
- version: 8.0.0
|
|
36
|
+
date: 2026-01-24
|
|
37
|
+
changes: Renombrar el modo de importación `live` a `fetch` para describir mejor el mecanismo subyacente.
|
|
38
|
+
- version: 8.0.0
|
|
39
|
+
date: 2026-01-22
|
|
40
|
+
changes: Mover la configuración de construcción para `importMode` a la configuración del diccionario.
|
|
32
41
|
- version: 8.0.0
|
|
33
42
|
date: 2026-01-22
|
|
34
|
-
changes:
|
|
43
|
+
changes: Añadir la opción `rewrite` a la configuración de enrutamiento
|
|
35
44
|
- version: 8.0.0
|
|
36
45
|
date: 2026-01-18
|
|
37
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.
|
|
@@ -44,6 +53,24 @@ history:
|
|
|
44
53
|
- version: 7.5.0
|
|
45
54
|
date: 2025-12-17
|
|
46
55
|
changes: Añadir opción `buildMode`
|
|
56
|
+
- version: 7.0.0
|
|
57
|
+
date: 2025-10-25
|
|
58
|
+
changes: Añadir configuración de `dictionary`
|
|
59
|
+
- version: 7.0.0
|
|
60
|
+
date: 2025-10-21
|
|
61
|
+
changes: Reemplazar el `middleware` por la configuración de `routing`
|
|
62
|
+
- version: 7.0.0
|
|
63
|
+
date: 2025-10-12
|
|
64
|
+
changes: Añadir opción `formatCommand`
|
|
65
|
+
- version: 6.2.0
|
|
66
|
+
date: 2025-10-12
|
|
67
|
+
changes: Actualizar opción `excludedPath`
|
|
68
|
+
- version: 6.0.2
|
|
69
|
+
date: 2025-09-23
|
|
70
|
+
changes: Añadir opción `outputFormat`
|
|
71
|
+
- version: 6.0.0
|
|
72
|
+
date: 2025-09-21
|
|
73
|
+
changes: Eliminar el campo `dictionaryOutput` y el campo `i18nextResourcesDir`
|
|
47
74
|
- version: 6.0.0
|
|
48
75
|
date: 2025-09-16
|
|
49
76
|
changes: Añadido modo de importación `live`
|
|
@@ -92,7 +119,7 @@ Intlayer acepta formatos de archivo de configuración JSON, JS, MJS y TS:
|
|
|
92
119
|
|
|
93
120
|
## Archivo de configuración de ejemplo
|
|
94
121
|
|
|
95
|
-
|
|
122
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
96
123
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
97
124
|
import { nextjsRewrite } from "intlayer/routing";
|
|
98
125
|
import { z } from "zod";
|
|
@@ -190,7 +217,7 @@ const config: IntlayerConfig = {
|
|
|
190
217
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
191
218
|
* Default: ['cookie', 'header']
|
|
192
219
|
*/
|
|
193
|
-
storage: "cookie",
|
|
220
|
+
storage: ["cookie", "header"],
|
|
194
221
|
|
|
195
222
|
/**
|
|
196
223
|
* Base path for the application URLs.
|
|
@@ -321,12 +348,23 @@ const config: IntlayerConfig = {
|
|
|
321
348
|
/**
|
|
322
349
|
* Global context to guide the AI in generating translations.
|
|
323
350
|
*/
|
|
324
|
-
applicationContext: "
|
|
351
|
+
applicationContext: "Esta es una aplicación de reserva de viajes.",
|
|
325
352
|
|
|
326
353
|
/**
|
|
327
354
|
* Base URL for the AI API.
|
|
328
355
|
*/
|
|
329
356
|
baseURL: "http://localhost:3000",
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Serialización de datos
|
|
360
|
+
*
|
|
361
|
+
* Opciones:
|
|
362
|
+
* - "json": Estándar, confiable; consume más tokens.
|
|
363
|
+
* - "toon": Menos tokens, menos consistente que JSON.
|
|
364
|
+
*
|
|
365
|
+
* Por defecto: "json"
|
|
366
|
+
*/
|
|
367
|
+
dataSerialization: "json",
|
|
330
368
|
},
|
|
331
369
|
|
|
332
370
|
/**
|
|
@@ -349,9 +387,9 @@ const config: IntlayerConfig = {
|
|
|
349
387
|
|
|
350
388
|
/**
|
|
351
389
|
* Output format for generated dictionary files.
|
|
352
|
-
* Default: ['
|
|
390
|
+
* Default: ['cjs', 'esm']
|
|
353
391
|
*/
|
|
354
|
-
outputFormat: ["esm"],
|
|
392
|
+
outputFormat: ["cjs", "esm"],
|
|
355
393
|
|
|
356
394
|
/**
|
|
357
395
|
* Indicates if the build should check TypeScript types.
|
|
@@ -425,43 +463,71 @@ const config: IntlayerConfig = {
|
|
|
425
463
|
*/
|
|
426
464
|
compiler: {
|
|
427
465
|
/**
|
|
428
|
-
*
|
|
466
|
+
* Indica si el compilador debe estar habilitado.
|
|
467
|
+
*
|
|
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
|
+
*
|
|
472
|
+
* Por defecto : false
|
|
429
473
|
*/
|
|
430
474
|
enabled: true,
|
|
431
475
|
|
|
432
476
|
/**
|
|
433
|
-
*
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
*
|
|
477
|
+
* Define la ruta de los archivos de salida. Reemplaza `outputDir`.
|
|
478
|
+
*
|
|
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`).
|
|
481
|
+
*
|
|
482
|
+
* - Incluir la variable `{{locale}}` en la ruta activará la generación de diccionarios separados por locale.
|
|
483
|
+
*
|
|
484
|
+
* Ejemplo:
|
|
485
|
+
* ```ts
|
|
486
|
+
* {
|
|
487
|
+
* // Crear archivos .content.ts multilingües cerca del componente
|
|
488
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
489
|
+
*
|
|
490
|
+
* // output: './{{fileName}}{{extension}}', // Equivalente usando una cadena de plantilla
|
|
491
|
+
* }
|
|
492
|
+
* ```
|
|
493
|
+
*
|
|
494
|
+
* ```ts
|
|
495
|
+
* {
|
|
496
|
+
* // Crear JSON centralizados por locale en la raíz del proyecto
|
|
497
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
498
|
+
*
|
|
499
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando una cadena de plantilla
|
|
500
|
+
* }
|
|
501
|
+
* ```
|
|
502
|
+
*
|
|
503
|
+
* 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.
|
|
442
513
|
*/
|
|
443
|
-
|
|
514
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
444
515
|
|
|
445
516
|
/**
|
|
446
|
-
*
|
|
517
|
+
* 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.
|
|
447
519
|
*/
|
|
448
|
-
|
|
520
|
+
saveComponents: false,
|
|
449
521
|
|
|
450
522
|
/**
|
|
451
|
-
* Inserta solo el contenido en el archivo generado
|
|
523
|
+
* Inserta solo el contenido en el archivo generado. Útil para salidas JSON de i18next o ICU MessageFormat por locale.
|
|
452
524
|
*/
|
|
453
525
|
noMetadata: false,
|
|
454
526
|
|
|
455
527
|
/**
|
|
456
528
|
* Prefijo de clave de diccionario
|
|
457
529
|
*/
|
|
458
|
-
dictionaryKeyPrefix: "", //
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* Indica si los componentes deben guardarse después de ser transformados.
|
|
462
|
-
* De esta manera, el compilador puede ejecutarse una sola vez para transformar la aplicación y luego puede eliminarse.
|
|
463
|
-
*/
|
|
464
|
-
saveComponents: false,
|
|
530
|
+
dictionaryKeyPrefix: "", // Añadir un prefijo opcional para las claves de diccionario extraídas
|
|
465
531
|
},
|
|
466
532
|
|
|
467
533
|
/**
|
|
@@ -480,7 +546,7 @@ const config: IntlayerConfig = {
|
|
|
480
546
|
};
|
|
481
547
|
|
|
482
548
|
export default config;
|
|
483
|
-
|
|
549
|
+
````
|
|
484
550
|
|
|
485
551
|
## Referencia de Configuración
|
|
486
552
|
|
|
@@ -616,95 +682,243 @@ Define configuraciones relacionadas con el editor integrado, incluyendo el puert
|
|
|
616
682
|
- _Ejemplo_: `'https://example.com'`
|
|
617
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.
|
|
618
684
|
|
|
619
|
-
### Configuración
|
|
685
|
+
### Configuración de Enrutamiento
|
|
620
686
|
|
|
621
|
-
Configuraciones que controlan el comportamiento del
|
|
687
|
+
Configuraciones que controlan el comportamiento del enrutamiento, incluyendo la estructura de la URL, el almacenamiento de locales y el manejo del middleware.
|
|
622
688
|
|
|
623
689
|
#### Propiedades
|
|
624
690
|
|
|
625
|
-
- **
|
|
626
|
-
- _Tipo_: `
|
|
627
|
-
-
|
|
628
|
-
- _Descripción_:
|
|
629
|
-
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
-
|
|
633
|
-
|
|
634
|
-
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
-
|
|
638
|
-
|
|
639
|
-
-
|
|
640
|
-
|
|
641
|
-
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
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' }`).
|
|
647
729
|
|
|
648
730
|
- **basePath**:
|
|
649
|
-
-
|
|
650
|
-
-
|
|
731
|
+
- _Type_: `string`
|
|
732
|
+
- _Par defecto_: `''`
|
|
651
733
|
- _Descripción_: La ruta base para las URLs de la aplicación.
|
|
652
|
-
-
|
|
653
|
-
-
|
|
734
|
+
- _Exemple_: `'/my-app'`
|
|
735
|
+
- _Note_:
|
|
654
736
|
- Si la aplicación está alojada en `https://example.com/my-app`
|
|
655
737
|
- La ruta base es `'/my-app'`
|
|
656
738
|
- La URL será `https://example.com/my-app/en`
|
|
657
739
|
- Si no se establece la ruta base, la URL será `https://example.com/en`
|
|
658
740
|
|
|
659
741
|
- **rewrite**:
|
|
660
|
-
-
|
|
661
|
-
-
|
|
662
|
-
- _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
|
|
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]`.
|
|
663
745
|
- _Ejemplo_:
|
|
664
746
|
```typescript
|
|
665
747
|
routing: {
|
|
666
748
|
mode: "prefix-no-default", // Estrategia de respaldo
|
|
667
749
|
rewrite: nextjsRewrite({
|
|
668
|
-
"/
|
|
669
|
-
en: "/
|
|
670
|
-
fr: "/
|
|
750
|
+
"/about": {
|
|
751
|
+
en: "/about",
|
|
752
|
+
fr: "/a-propos",
|
|
671
753
|
},
|
|
672
|
-
"/
|
|
673
|
-
en: "/
|
|
674
|
-
fr: "/
|
|
754
|
+
"/product/[slug]": {
|
|
755
|
+
en: "/product/[slug]",
|
|
756
|
+
fr: "/produit/[slug]",
|
|
675
757
|
},
|
|
676
|
-
"/
|
|
677
|
-
en: "/
|
|
678
|
-
fr: "/
|
|
758
|
+
"/blog/[category]/[id]": {
|
|
759
|
+
en: "/blog/[category]/[id]",
|
|
760
|
+
fr: "/journal/[category]/[id]",
|
|
679
761
|
},
|
|
680
762
|
}),
|
|
681
763
|
}
|
|
682
764
|
```
|
|
683
|
-
-
|
|
684
|
-
-
|
|
685
|
-
-
|
|
686
|
-
-
|
|
687
|
-
-
|
|
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).
|
|
688
770
|
|
|
689
|
-
|
|
690
|
-
- _Tipo_: `string`
|
|
691
|
-
- _Por defecto_: `'always'`
|
|
692
|
-
- _Descripción_: Regla para establecer la cookie de localización en el servidor.
|
|
693
|
-
- _Opciones_: `'always'`, `'never'`
|
|
694
|
-
- _Ejemplo_: `'never'`
|
|
695
|
-
- _Nota_: Controla si la cookie de localización se establece en cada solicitud o nunca.
|
|
771
|
+
#### Atributos de Cookie
|
|
696
772
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
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'`)
|
|
789
|
+
|
|
790
|
+
#### Ejemplos de Configuración
|
|
791
|
+
|
|
792
|
+
Aquí hay algunos ejemplos comunes de configuración para la nueva estructura de enrutamiento v8:
|
|
793
|
+
|
|
794
|
+
**Configuración Básica (Predeterminada)**:
|
|
795
|
+
|
|
796
|
+
```typescript
|
|
797
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
798
|
+
// intlayer.config.ts
|
|
799
|
+
const config: IntlayerConfig = {
|
|
800
|
+
internationalization: {
|
|
801
|
+
locales: ["en", "fr", "es"],
|
|
802
|
+
defaultLocale: "en",
|
|
803
|
+
},
|
|
804
|
+
routing: {
|
|
805
|
+
mode: "prefix-no-default",
|
|
806
|
+
storage: "localStorage",
|
|
807
|
+
basePath: "",
|
|
808
|
+
},
|
|
809
|
+
};
|
|
810
|
+
|
|
811
|
+
export default config;
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
**Configuración Conforme al RGPD**:
|
|
815
|
+
|
|
816
|
+
```typescript
|
|
817
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
818
|
+
// intlayer.config.ts
|
|
819
|
+
const config: IntlayerConfig = {
|
|
820
|
+
internationalization: {
|
|
821
|
+
locales: ["en", "fr", "es"],
|
|
822
|
+
defaultLocale: "en",
|
|
823
|
+
},
|
|
824
|
+
routing: {
|
|
825
|
+
mode: "prefix-no-default",
|
|
826
|
+
storage: [
|
|
827
|
+
{
|
|
828
|
+
type: "localStorage",
|
|
829
|
+
name: "user-locale",
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
type: "cookie",
|
|
833
|
+
name: "user-locale",
|
|
834
|
+
secure: true,
|
|
835
|
+
sameSite: "strict",
|
|
836
|
+
httpOnly: false,
|
|
837
|
+
},
|
|
838
|
+
],
|
|
839
|
+
basePath: "",
|
|
840
|
+
},
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
export default config;
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
**Modo de Parámetros de Búsqueda**:
|
|
847
|
+
|
|
848
|
+
```typescript
|
|
849
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
850
|
+
// intlayer.config.ts
|
|
851
|
+
const config: IntlayerConfig = {
|
|
852
|
+
internationalization: {
|
|
853
|
+
locales: ["en", "fr", "es"],
|
|
854
|
+
defaultLocale: "en",
|
|
855
|
+
},
|
|
856
|
+
routing: {
|
|
857
|
+
mode: "search-params",
|
|
858
|
+
storage: "localStorage",
|
|
859
|
+
basePath: "",
|
|
860
|
+
},
|
|
861
|
+
};
|
|
862
|
+
|
|
863
|
+
export default config;
|
|
864
|
+
```
|
|
865
|
+
|
|
866
|
+
**Modo Sin Prefijo con Almacenamiento Personalizado**:
|
|
867
|
+
|
|
868
|
+
```typescript
|
|
869
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
870
|
+
// intlayer.config.ts
|
|
871
|
+
const config: IntlayerConfig = {
|
|
872
|
+
internationalization: {
|
|
873
|
+
locales: ["en", "fr", "es"],
|
|
874
|
+
defaultLocale: "en",
|
|
875
|
+
},
|
|
876
|
+
routing: {
|
|
877
|
+
mode: "no-prefix",
|
|
878
|
+
storage: {
|
|
879
|
+
type: "sessionStorage",
|
|
880
|
+
name: "app-locale",
|
|
881
|
+
},
|
|
882
|
+
basePath: "/my-app",
|
|
883
|
+
},
|
|
884
|
+
};
|
|
885
|
+
|
|
886
|
+
export default config;
|
|
887
|
+
```
|
|
888
|
+
|
|
889
|
+
**Reescritura de URL Personalizada con Rutas Dinámicas**:
|
|
890
|
+
|
|
891
|
+
```typescript
|
|
892
|
+
// intlayer.config.ts
|
|
893
|
+
import { nextjsRewrite } from "intlayer/routing";
|
|
894
|
+
|
|
895
|
+
const config: IntlayerConfig = {
|
|
896
|
+
internationalization: {
|
|
897
|
+
locales: ["en", "fr"],
|
|
898
|
+
defaultLocale: "en",
|
|
899
|
+
},
|
|
900
|
+
routing: {
|
|
901
|
+
mode: "prefix-no-default", // Estrategia de respaldo para rutas no reescritas
|
|
902
|
+
storage: "cookie",
|
|
903
|
+
rewrite: nextjsRewrite({
|
|
904
|
+
"/about": {
|
|
905
|
+
en: "/about",
|
|
906
|
+
fr: "/a-propos",
|
|
907
|
+
},
|
|
908
|
+
"/product/[slug]": {
|
|
909
|
+
en: "/product/[slug]",
|
|
910
|
+
fr: "/produit/[slug]",
|
|
911
|
+
},
|
|
912
|
+
"/blog/[category]/[id]": {
|
|
913
|
+
en: "/blog/[category]/[id]",
|
|
914
|
+
fr: "/journal/[category]/[id]",
|
|
915
|
+
},
|
|
916
|
+
}),
|
|
917
|
+
},
|
|
918
|
+
};
|
|
919
|
+
|
|
920
|
+
export default config;
|
|
921
|
+
```
|
|
708
922
|
|
|
709
923
|
---
|
|
710
924
|
|
|
@@ -903,74 +1117,78 @@ Intlayer admite múltiples proveedores de IA para una mayor flexibilidad y elecc
|
|
|
903
1117
|
|
|
904
1118
|
#### Propiedades
|
|
905
1119
|
|
|
906
|
-
- **provider
|
|
907
|
-
- _Tipo_: `string`
|
|
908
|
-
-
|
|
909
|
-
- _Descripción_: El proveedor
|
|
910
|
-
- _Opciones_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
911
|
-
- _Ejemplo_: `'anthropic'`
|
|
912
|
-
- _Nota_: Diferentes proveedores pueden requerir diferentes claves API y tener
|
|
913
|
-
|
|
914
|
-
- **model
|
|
915
|
-
- _Tipo_: `string`
|
|
916
|
-
-
|
|
917
|
-
- _Descripción_: El modelo
|
|
918
|
-
- _Ejemplo_: `'gpt-4o-2024-11-20'`
|
|
919
|
-
- _Nota_: El modelo específico
|
|
920
|
-
|
|
921
|
-
- **temperature
|
|
922
|
-
- _Tipo_: `number`
|
|
923
|
-
-
|
|
924
|
-
- _Descripción_: La temperatura controla la aleatoriedad de las respuestas de la IA.
|
|
925
|
-
- _Ejemplo_: `0.1`
|
|
926
|
-
- _Nota_: Una temperatura más alta hará que la IA sea más creativa y menos predecible.
|
|
927
|
-
|
|
928
|
-
- **apiKey
|
|
929
|
-
- _Tipo_: `string`
|
|
930
|
-
-
|
|
931
|
-
- _Descripción_:
|
|
932
|
-
- _Ejemplo_: `process.env.OPENAI_API_KEY`
|
|
933
|
-
- _Nota_: Importante: Las claves API deben mantenerse en secreto y no compartirse públicamente.
|
|
934
|
-
|
|
935
|
-
- **applicationContext
|
|
936
|
-
- _Tipo_: `string`
|
|
937
|
-
-
|
|
938
|
-
- _Descripción_: Proporciona contexto adicional sobre
|
|
939
|
-
|
|
940
|
-
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
-
|
|
944
|
-
-
|
|
945
|
-
-
|
|
1120
|
+
- **provider** :
|
|
1121
|
+
- _Tipo_ : `string`
|
|
1122
|
+
- _Par defecto_ : `'openai'`
|
|
1123
|
+
- _Descripción_ : El proveedor que se utilizará para las funciones de IA de Intlayer.
|
|
1124
|
+
- _Opciones_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1125
|
+
- _Ejemplo_ : `'anthropic'`
|
|
1126
|
+
- _Nota_: Diferentes proveedores pueden requerir diferentes claves de API y tener diferentes modelos de precios.
|
|
1127
|
+
|
|
1128
|
+
- **model** :
|
|
1129
|
+
- _Tipo_ : `string`
|
|
1130
|
+
- _Par defecto_ : Ninguno
|
|
1131
|
+
- _Descripción_ : El modelo que se utilizará para las funciones de IA de Intlayer.
|
|
1132
|
+
- _Ejemplo_ : `'gpt-4o-2024-11-20'`
|
|
1133
|
+
- _Nota_ : El modelo específico que se utilizará varía según el proveedor.
|
|
1134
|
+
|
|
1135
|
+
- **temperature** :
|
|
1136
|
+
- _Tipo_ : `number`
|
|
1137
|
+
- _Par defecto_ : Ninguna
|
|
1138
|
+
- _Descripción_ : La temperatura controla la aleatoriedad de las respuestas de la IA.
|
|
1139
|
+
- _Ejemplo_ : `0.1`
|
|
1140
|
+
- _Nota_ : Una temperatura más alta hará que la IA sea más creativa y menos predecible.
|
|
1141
|
+
|
|
1142
|
+
- **apiKey** :
|
|
1143
|
+
- _Tipo_ : `string`
|
|
1144
|
+
- _Par defecto_ : Ninguna
|
|
1145
|
+
- _Descripción_ : Tu clave de API para el proveedor seleccionado.
|
|
1146
|
+
- _Ejemplo_ : `process.env.OPENAI_API_KEY`
|
|
1147
|
+
- _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.
|
|
1148
|
+
|
|
1149
|
+
- **applicationContext** :
|
|
1150
|
+
- _Tipo_ : `string`
|
|
1151
|
+
- _Par defecto_ : Ninguno
|
|
1152
|
+
- _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.
|
|
1153
|
+
- _Note_: Puedes usarlo para añadir más reglas al modelo de IA (por ejemplo, "No debes transformar las URLs").
|
|
1154
|
+
- _Ejemplo_ : `'Mi contexto de aplicación'`
|
|
1155
|
+
|
|
1156
|
+
- **baseURL** :
|
|
1157
|
+
- _Tipo_ : `string`
|
|
1158
|
+
- _Par defecto_ : Ninguna
|
|
1159
|
+
- _Descripción_ : La URL base para la API de IA.
|
|
1160
|
+
- _Ejemplo_ : `'https://api.openai.com/v1'`
|
|
1161
|
+
- _Exemple_ : `'http://localhost:5000'`
|
|
1162
|
+
- _Nota_ : Puede usarse para apuntar a un punto final de API de IA local o personalizado.
|
|
946
1163
|
|
|
947
1164
|
- **dataSerialization**:
|
|
948
|
-
-
|
|
949
|
-
-
|
|
950
|
-
- _Descripción_: El formato de serialización de datos
|
|
1165
|
+
- _Type_: `'json' | 'toon'`
|
|
1166
|
+
- _Par defecto_: `'json'`
|
|
1167
|
+
- _Descripción_: El formato de serialización de datos que se utilizará para las funciones de IA de Intlayer.
|
|
951
1168
|
- _Ejemplo_: `'toon'`
|
|
952
|
-
-
|
|
1169
|
+
- _Note_: `json`: Estándar, confiable; utiliza más tokens. `toon`: Menos tokens, menos consistente que el JSON.
|
|
1170
|
+
> 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.
|
|
953
1171
|
|
|
954
|
-
### Configuración de
|
|
1172
|
+
### Configuración de Build
|
|
955
1173
|
|
|
956
|
-
Configuraciones que controlan cómo Intlayer optimiza y construye la internacionalización de
|
|
1174
|
+
Configuraciones que controlan cómo Intlayer optimiza y construye la internacionalización de tu aplicación.
|
|
957
1175
|
|
|
958
1176
|
Las opciones de compilación se aplican a los plugins `@intlayer/babel` y `@intlayer/swc`.
|
|
959
1177
|
|
|
960
1178
|
> En modo de desarrollo, Intlayer utiliza importaciones estáticas para los diccionarios para simplificar la experiencia de desarrollo.
|
|
961
1179
|
|
|
962
|
-
> Cuando
|
|
1180
|
+
> 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.
|
|
963
1181
|
|
|
964
1182
|
#### Propiedades
|
|
965
1183
|
|
|
966
|
-
- **mode
|
|
967
|
-
- _Tipo_: `'auto' | 'manual'`
|
|
968
|
-
-
|
|
969
|
-
- _Descripción_: Controla el modo
|
|
970
|
-
- _Ejemplo_: `'manual'`
|
|
971
|
-
- _Nota_: Si 'auto',
|
|
972
|
-
- _Nota_: Si 'manual',
|
|
973
|
-
- _Nota_:
|
|
1184
|
+
- **mode** :
|
|
1185
|
+
- _Tipo_ : `'auto' | 'manual'`
|
|
1186
|
+
- _Par defecto_ : `'auto'`
|
|
1187
|
+
- _Descripción_ : Controla el modo del build.
|
|
1188
|
+
- _Ejemplo_ : `'manual'`
|
|
1189
|
+
- _Nota_ : Si es 'auto', el build se activará automáticamente durante la construcción de la aplicación.
|
|
1190
|
+
- _Nota_ : Si es 'manual', el build solo se activará cuando se ejecute la orden de construcción.
|
|
1191
|
+
- _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.
|
|
974
1192
|
|
|
975
1193
|
- **checkTypes**:
|
|
976
1194
|
- _Tipo_: `boolean`
|
|
@@ -978,50 +1196,51 @@ Las opciones de compilación se aplican a los plugins `@intlayer/babel` y `@intl
|
|
|
978
1196
|
- _Descripción_: Indica si la compilación debe comprobar los tipos de TypeScript y registrar errores.
|
|
979
1197
|
- _Nota_: Esto puede ralentizar la compilación.
|
|
980
1198
|
|
|
981
|
-
- **optimize
|
|
982
|
-
- _Tipo_: `boolean`
|
|
983
|
-
-
|
|
984
|
-
- _Descripción_: Controla si
|
|
985
|
-
- _Ejemplo_: `
|
|
986
|
-
-
|
|
987
|
-
- _Nota_: Intlayer reemplazará todas las llamadas a
|
|
988
|
-
- _Nota_:
|
|
989
|
-
- _Nota_:
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
- _Tipo_: `'static' | 'dynamic' | 'fetch'`
|
|
994
|
-
-
|
|
995
|
-
- _Descripción_: Controla cómo se importan los diccionarios.
|
|
996
|
-
- _Ejemplo_: `'dynamic'`
|
|
997
|
-
- _Nota_: Modos disponibles:
|
|
998
|
-
- "static": Los diccionarios se importan
|
|
999
|
-
- "dynamic": Los diccionarios se importan dinámicamente usando Suspense. Reemplaza `useIntlayer`
|
|
1000
|
-
- "fetch": Los diccionarios se
|
|
1001
|
-
- _Nota_: Las importaciones dinámicas dependen de Suspense y pueden afectar ligeramente el rendimiento del renderizado.
|
|
1002
|
-
- _Nota_: Si
|
|
1003
|
-
- _Nota_: Esta opción depende de los plugins `@intlayer/babel` y `@intlayer/swc`.
|
|
1004
|
-
- _Nota_:
|
|
1005
|
-
- _Nota_: Esta opción
|
|
1006
|
-
-
|
|
1007
|
-
-
|
|
1008
|
-
- _Nota_: Esta opción no afectará a las funciones `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` y `useDictionaryDynamic`.
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
-
|
|
1013
|
-
-
|
|
1014
|
-
-
|
|
1015
|
-
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
-
|
|
1020
|
-
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
- _Nota_:
|
|
1024
|
-
- _Nota_:
|
|
1199
|
+
- **optimize** :
|
|
1200
|
+
- _Tipo_ : `boolean`
|
|
1201
|
+
- _Par defecto_ : `undefined`
|
|
1202
|
+
- _Descripción_ : Controla si el build debe optimizarse.
|
|
1203
|
+
- _Ejemplo_ : `process.env.NODE_ENV === 'production'`
|
|
1204
|
+
- _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.
|
|
1205
|
+
- _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.
|
|
1206
|
+
- _Nota_ : Intlayer reemplazará todas las llamadas de `useIntlayer` por el modo definido a través de la opción `importMode` y `getIntlayer` por `getDictionary`.
|
|
1207
|
+
- _Nota_ : Esta opción depende de los plugins `@intlayer/babel` y `@intlayer/swc`.
|
|
1208
|
+
- _Nota_ : Asegúrate de que todas las claves se declaren estáticamente en las llamadas a `useIntlayer`. Por ejemplo, `useIntlayer('navbar')`.
|
|
1209
|
+
|
|
1210
|
+
- **importMode** :
|
|
1211
|
+
- _Tipo_ : `'static' | 'dynamic' | 'fetch'`
|
|
1212
|
+
- _Par defecto_ : `'static'`
|
|
1213
|
+
- _Descripción_ : Controla cómo se importan los diccionarios.
|
|
1214
|
+
- _Ejemplo_ : `'dynamic'`
|
|
1215
|
+
- _Nota_ : Modos disponibles:
|
|
1216
|
+
- "static": Los diccionarios se importan estáticamente. Reemplaza `useIntlayer` por `useDictionary`.
|
|
1217
|
+
- "dynamic": Los diccionarios se importan dinámicamente usando Suspense. Reemplaza `useIntlayer` por `useDictionaryDynamic`.
|
|
1218
|
+
- "fetch": Los diccionarios se recuperan dinámicamente a través de la API de sincronización en vivo. Reemplaza `useIntlayer` por `useDictionaryDynamic`.
|
|
1219
|
+
- _Nota_ : Las importaciones dinámicas dependen de Suspense y pueden afectar ligeramente el rendimiento del renderizado.
|
|
1220
|
+
- _Nota_ : Si se desactiva, todos los locales se cargarán a la vez, incluso si no se utilizan.
|
|
1221
|
+
- _Nota_ : Esta opción depende de los plugins `@intlayer/babel` y `@intlayer/swc`.
|
|
1222
|
+
- _Nota_ : Asegúrate de que todas las claves se declaren estáticamente en las llamadas a `useIntlayer`. Por ejemplo, `useIntlayer('navbar')`.
|
|
1223
|
+
- _Nota_ : Esta opción se ignorará si `optimize` está desactivado.
|
|
1224
|
+
- _Note_ : Si se establece en "fetch", solo los diccionarios que incluyan contenido remoto y estén marcados como "fetch" se transformarán en modo fetch. Los demás se importarán dinámicamente en modo "dynamic" para optimizar la cantidad de solicitudes fetch y el rendimiento de la carga.
|
|
1225
|
+
- _Note_ : El modo fetch utilizará la API de sincronización en vivo para recuperar los diccionarios. Si falla la llamada a la API, los diccionarios se importarán dinámicamente en modo "dynamic".
|
|
1226
|
+
- _Nota_ : Esta opción no afectará a las funciones `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` y `useDictionaryDynamic`.
|
|
1227
|
+
- _Note_: **Obsoleto**: Usa `dictionary.importMode` en su lugar.
|
|
1228
|
+
|
|
1229
|
+
- **outputFormat** :
|
|
1230
|
+
- _Type_ : `('esm' | 'cjs')[]`
|
|
1231
|
+
- _Par defecto_ : `['cjs', 'esm']`
|
|
1232
|
+
- _Descripción_ : Controla el formato de salida de los diccionarios.
|
|
1233
|
+
- _Ejemplo_ : `'cjs'`
|
|
1234
|
+
- _Nota_ : El formato de salida de los diccionarios.
|
|
1235
|
+
|
|
1236
|
+
- **traversePattern** :
|
|
1237
|
+
- _Tipo_ : `string[]`
|
|
1238
|
+
- _Par defecto_ : `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1239
|
+
- _Descripción_ : Patrones que definen qué archivos deben recorrerse durante la optimización.
|
|
1240
|
+
- _Ejemplo_ : `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1241
|
+
- _Nota_ : Usa esto para limitar la optimización a los archivos de código relevantes y mejorar el rendimiento de la construcción.
|
|
1242
|
+
- _Nota_ : Esta opción se ignorará si `optimize` está desactivado.
|
|
1243
|
+
- _Nota_ : Usa un patrón glob.
|
|
1025
1244
|
|
|
1026
1245
|
---
|
|
1027
1246
|
|
|
@@ -1040,7 +1259,7 @@ Ajustes que controlan el compilador Intlayer, que extrae diccionarios directamen
|
|
|
1040
1259
|
|
|
1041
1260
|
- **dictionaryKeyPrefix**:
|
|
1042
1261
|
- _Tipo_: `string`
|
|
1043
|
-
- _Por defecto_: `'
|
|
1262
|
+
- _Por defecto_: `''`
|
|
1044
1263
|
- _Descripción_: Prefijo para las claves de diccionario extraídas.
|
|
1045
1264
|
- _Ejemplo_: `'my-key-'`
|
|
1046
1265
|
- _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.
|
|
@@ -1064,24 +1283,28 @@ Ajustes que controlan el compilador Intlayer, que extrae diccionarios directamen
|
|
|
1064
1283
|
- _Descripción_: Patrones que definen qué archivos deben excluirse durante la optimización.
|
|
1065
1284
|
- _Ejemplo_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1066
1285
|
|
|
1067
|
-
- **outputDir**:
|
|
1068
|
-
- _Tipo_: `string`
|
|
1069
|
-
- _Por defecto_: `'compiler'`
|
|
1070
|
-
- _Descripción_: El directorio donde se almacenarán los diccionarios extraídos, relativo a la ruta base de su proyecto.
|
|
1071
|
-
|
|
1072
1286
|
- **output**:
|
|
1073
1287
|
- _Type_: `FilePathPattern`
|
|
1074
|
-
-
|
|
1075
|
-
- _Descripción_: Define la ruta de los archivos de salida. Reemplaza `outputDir`. Maneja variables dinámicas
|
|
1076
|
-
- _Nota_:
|
|
1077
|
-
-
|
|
1288
|
+
- _Par defecto_: `undefined`
|
|
1289
|
+
- _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}}`.
|
|
1290
|
+
- _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`).
|
|
1291
|
+
- _Nota_: Incluir la variable `{{locale}}` en la ruta activará la generación de diccionarios separados por locale.
|
|
1292
|
+
- _Ejemplo_:
|
|
1293
|
+
- **Archivos multilingües cerca del componente** :
|
|
1294
|
+
- Cadena : `'./{{fileName}}{{extension}}'`
|
|
1295
|
+
- Función : `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1296
|
+
|
|
1297
|
+
- **JSON centralizado por locale** :
|
|
1298
|
+
- Cadena : `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1299
|
+
- Función : `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1078
1300
|
|
|
1079
1301
|
- **noMetadata**:
|
|
1080
1302
|
- _Tipo_: `boolean`
|
|
1081
|
-
-
|
|
1082
|
-
- _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).
|
|
1303
|
+
- _Par defecto_: `false`
|
|
1304
|
+
- _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.
|
|
1083
1305
|
- _Nota_: Útil si se usa con el plugin `loadJSON`.
|
|
1084
|
-
- _Ejemplo_:
|
|
1306
|
+
- _Ejemplo_:
|
|
1307
|
+
Si es `true` :
|
|
1085
1308
|
```json
|
|
1086
1309
|
{
|
|
1087
1310
|
"key": "value"
|