@intlayer/docs 9.3.0 → 9.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/README.md +24 -24
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/cjs/authors2.cjs +0 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +4 -2
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +4 -2
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +4 -2
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +4 -2
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/docs/ar/configuration.md +10 -10
- package/docs/ar/interest_of_intlayer.md +24 -22
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ar/intlayer_with_tanstack.md +5 -3
- package/docs/ar/lsp.md +114 -175
- package/docs/ar/readme.md +25 -25
- package/docs/bn/configuration.md +10 -10
- package/docs/bn/interest_of_intlayer.md +24 -22
- package/docs/cs/configuration.md +10 -10
- package/docs/cs/interest_of_intlayer.md +24 -22
- package/docs/de/configuration.md +10 -10
- package/docs/de/interest_of_intlayer.md +24 -22
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +5 -3
- package/docs/de/intlayer_with_tanstack.md +5 -3
- package/docs/de/lsp.md +111 -172
- package/docs/de/readme.md +24 -24
- package/docs/en/configuration.md +10 -10
- package/docs/en/interest_of_intlayer.md +24 -22
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en/intlayer_with_tanstack.md +5 -3
- package/docs/en/lsp.md +109 -170
- package/docs/en/readme.md +24 -24
- package/docs/en-GB/configuration.md +10 -10
- package/docs/en-GB/interest_of_intlayer.md +24 -22
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en-GB/intlayer_with_tanstack.md +5 -3
- package/docs/en-GB/lsp.md +109 -170
- package/docs/en-GB/readme.md +24 -24
- package/docs/es/configuration.md +10 -10
- package/docs/es/interest_of_intlayer.md +24 -22
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +5 -3
- package/docs/es/intlayer_with_tanstack.md +5 -3
- package/docs/es/lsp.md +114 -175
- package/docs/es/readme.md +24 -24
- package/docs/fr/configuration.md +10 -10
- package/docs/fr/interest_of_intlayer.md +24 -22
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/fr/intlayer_with_tanstack.md +5 -3
- package/docs/fr/lsp.md +110 -171
- package/docs/fr/readme.md +24 -24
- package/docs/hi/configuration.md +10 -10
- package/docs/hi/interest_of_intlayer.md +24 -22
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/hi/intlayer_with_tanstack.md +5 -3
- package/docs/hi/lsp.md +113 -174
- package/docs/hi/readme.md +24 -24
- package/docs/id/configuration.md +10 -10
- package/docs/id/interest_of_intlayer.md +24 -22
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +5 -3
- package/docs/id/intlayer_with_tanstack.md +5 -3
- package/docs/id/lsp.md +113 -174
- package/docs/id/readme.md +24 -24
- package/docs/it/configuration.md +10 -10
- package/docs/it/interest_of_intlayer.md +24 -22
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +5 -3
- package/docs/it/intlayer_with_tanstack.md +5 -3
- package/docs/it/lsp.md +115 -176
- package/docs/it/readme.md +24 -24
- package/docs/ja/configuration.md +10 -10
- package/docs/ja/interest_of_intlayer.md +24 -22
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ja/intlayer_with_tanstack.md +5 -3
- package/docs/ja/lsp.md +113 -174
- package/docs/ja/readme.md +24 -24
- package/docs/ko/configuration.md +10 -10
- package/docs/ko/interest_of_intlayer.md +24 -22
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ko/intlayer_with_tanstack.md +5 -3
- package/docs/ko/lsp.md +112 -173
- package/docs/ko/readme.md +24 -24
- package/docs/nl/configuration.md +10 -10
- package/docs/nl/interest_of_intlayer.md +24 -22
- package/docs/pl/configuration.md +10 -10
- package/docs/pl/interest_of_intlayer.md +4 -2
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pl/intlayer_with_tanstack.md +5 -3
- package/docs/pl/lsp.md +115 -176
- package/docs/pl/readme.md +24 -24
- package/docs/pt/configuration.md +10 -10
- package/docs/pt/interest_of_intlayer.md +24 -22
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pt/intlayer_with_tanstack.md +5 -3
- package/docs/pt/lsp.md +113 -174
- package/docs/pt/readme.md +24 -24
- package/docs/ru/configuration.md +10 -10
- package/docs/ru/interest_of_intlayer.md +24 -22
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ru/intlayer_with_tanstack.md +5 -3
- package/docs/ru/lsp.md +112 -173
- package/docs/ru/readme.md +24 -24
- package/docs/tr/configuration.md +10 -10
- package/docs/tr/interest_of_intlayer.md +24 -22
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/tr/intlayer_with_tanstack.md +5 -3
- package/docs/tr/lsp.md +113 -174
- package/docs/tr/readme.md +24 -24
- package/docs/uk/configuration.md +10 -10
- package/docs/uk/interest_of_intlayer.md +4 -2
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
- package/docs/uk/intlayer_with_tanstack.md +5 -3
- package/docs/uk/lsp.md +113 -174
- package/docs/uk/per_locale_file.md +1 -1
- package/docs/uk/readme.md +24 -24
- package/docs/ur/configuration.md +10 -10
- package/docs/ur/interest_of_intlayer.md +24 -22
- package/docs/vi/configuration.md +10 -10
- package/docs/vi/interest_of_intlayer.md +24 -22
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/vi/intlayer_with_tanstack.md +5 -3
- package/docs/vi/lsp.md +115 -176
- package/docs/vi/readme.md +24 -24
- package/docs/zh/configuration.md +10 -10
- package/docs/zh/interest_of_intlayer.md +24 -22
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
- package/docs/zh/intlayer_with_tanstack.md +5 -3
- package/docs/zh/lsp.md +113 -174
- package/docs/zh/readme.md +21 -21
- package/docs/zh-TW/interest_of_intlayer.md +24 -22
- package/package.json +6 -6
package/docs/es/lsp.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-06-07
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-08-10
|
|
4
4
|
title: Servidor LSP de Intlayer
|
|
5
|
-
description:
|
|
5
|
+
description: Descubra cómo el servidor de lenguaje de Intlayer aporta Go-to-Definition, búsqueda de referencias, vistas previas al pasar el cursor, autocompletado de claves y diagnósticos a su IDE y a su agente de IA.
|
|
6
6
|
keywords:
|
|
7
7
|
- LSP
|
|
8
|
-
- Servidor de
|
|
9
|
-
-
|
|
8
|
+
- Servidor de lenguaje
|
|
9
|
+
- Go to Definition
|
|
10
|
+
- Autocompletado
|
|
11
|
+
- Diagnósticos
|
|
10
12
|
- IDE
|
|
11
13
|
- Intlayer
|
|
12
14
|
- VS Code
|
|
@@ -16,6 +18,9 @@ slugs:
|
|
|
16
18
|
- doc
|
|
17
19
|
- lsp
|
|
18
20
|
history:
|
|
21
|
+
- version: 9.1.3
|
|
22
|
+
date: 2026-08-10
|
|
23
|
+
changes: "Se añaden búsqueda de referencias, hover, autocompletado y diagnósticos"
|
|
19
24
|
- version: 8.12.0
|
|
20
25
|
date: 2026-06-01
|
|
21
26
|
changes: "Release LSP"
|
|
@@ -24,48 +29,47 @@ author: aymericzip
|
|
|
24
29
|
|
|
25
30
|
# Servidor LSP de Intlayer
|
|
26
31
|
|
|
27
|
-
El **
|
|
32
|
+
El **servidor de lenguaje de Intlayer** es una implementación del [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) que hace que su IDE — y su agente de IA — reconozcan Intlayer. Conecta una llamada como `useIntlayer("home")` con el archivo `.content.ts` que la declara, en ambas direcciones.
|
|
28
33
|
|
|
29
34
|
---
|
|
30
35
|
|
|
31
|
-
##
|
|
36
|
+
## Funcionalidades
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
| Funcionalidad | Atajo | Qué hace |
|
|
39
|
+
| -------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
40
|
+
| **Ir a la definición** | `F12` / `Cmd+Clic` | Saltar desde una clave de diccionario o el uso de un campo a su declaración en el archivo de contenido |
|
|
41
|
+
| **Buscar todas las referencias** | `Mayús+F12` | Desde un archivo de contenido, listar todos los puntos de llamada que usan esa clave o campo |
|
|
42
|
+
| **Hover** | pasar el cursor | Previsualizar los campos de un diccionario, o el valor traducido de un campo, sin salir del archivo |
|
|
43
|
+
| **Autocompletado** | `"` `'` `` ` `` `.` | Sugerir las claves de diccionario declaradas dentro de un getter, y los campos de contenido tras `.` o al desestructurar |
|
|
44
|
+
| **Diagnósticos** | automático | Avisar cuando una clave no está declarada en ningún archivo de contenido |
|
|
34
45
|
|
|
35
|
-
|
|
46
|
+
Merece la pena conocer dos comportamientos adicionales:
|
|
36
47
|
|
|
37
|
-
|
|
48
|
+
- **Diccionarios fusionados** — una clave repartida entre varios archivos de contenido devuelve un resultado por archivo, de modo que puede navegar a cada declaración.
|
|
49
|
+
- **Compatible con monorepos** — el servidor resuelve el `intlayer.config.*` _más cercano_ a cada archivo, de modo que varios proyectos en un mismo espacio de trabajo tienen cada uno sus propios diccionarios.
|
|
38
50
|
|
|
39
|
-
|
|
51
|
+
### Llamadas compatibles
|
|
40
52
|
|
|
41
|
-
|
|
53
|
+
La clave se lee bien desde un argumento posicional de tipo cadena, bien desde un objeto de opciones (`{ namespace }`, `{ id }`).
|
|
42
54
|
|
|
43
|
-
|
|
55
|
+
| Biblioteca | Llamadas |
|
|
56
|
+
| --------------------------- | -------------------------------------------------------- |
|
|
57
|
+
| **Intlayer** | `useIntlayer`, `getIntlayer` |
|
|
58
|
+
| **i18next / react-i18next** | `useTranslation`, `getFixedT`, `t`, `Trans` |
|
|
59
|
+
| **next-intl / use-intl** | `useTranslations`, `getTranslations`, `createTranslator` |
|
|
60
|
+
| **react-intl** | `formatMessage`, `FormattedMessage` |
|
|
61
|
+
| **Lingui** | `useLingui`, `t`, `Trans`, `_` |
|
|
62
|
+
| **vue-i18n** | `useI18n` |
|
|
44
63
|
|
|
45
|
-
|
|
64
|
+
Esto funciona con todos los paquetes `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `intlayer`), y con los paquetes adaptadores de compatibilidad que le permiten conservar su sintaxis i18n actual.
|
|
46
65
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Es compatible con todos los paquetes `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `adonis-intlayer`, `intlayer`).
|
|
50
|
-
|
|
51
|
-
### Llamadas de obtención admitidas
|
|
52
|
-
|
|
53
|
-
El servidor detecta las siguientes llamadas a funciones y extrae el primer argumento de cadena literal como la clave del diccionario:
|
|
54
|
-
|
|
55
|
-
| Función | Ejemplo |
|
|
56
|
-
| ------------- | ----------------------------- |
|
|
57
|
-
| `useIntlayer` | `useIntlayer("hero")` |
|
|
58
|
-
| `getIntlayer` | `getIntlayer("hero", locale)` |
|
|
59
|
-
|
|
60
|
-
Se ignoran los genéricos de TypeScript y los argumentos adicionales; solo importa la cadena de la clave.
|
|
61
|
-
|
|
62
|
-
> `useDictionary` y `getDictionary` reciben un objeto `Dictionary` ya importado como su primer argumento en lugar de una clave de cadena, por lo que no se benefician de Ir a la definición y no son rastreados por el servidor.
|
|
66
|
+
> Los diccionarios se leen de la salida de compilación, así que ejecute `npx intlayer build` — o mantenga su servidor de desarrollo en marcha — para darle al servidor algo que resolver.
|
|
63
67
|
|
|
64
68
|
---
|
|
65
69
|
|
|
66
70
|
## Instalación
|
|
67
71
|
|
|
68
|
-
El servidor
|
|
72
|
+
El servidor se distribuye como el binario `intlayer-lsp` dentro de `@intlayer/lsp`:
|
|
69
73
|
|
|
70
74
|
```bash packageManager="npm"
|
|
71
75
|
npm install --save-dev @intlayer/lsp
|
|
@@ -83,43 +87,43 @@ pnpm add --save-dev @intlayer/lsp
|
|
|
83
87
|
bun add --dev @intlayer/lsp
|
|
84
88
|
```
|
|
85
89
|
|
|
86
|
-
|
|
90
|
+
Instálelo globalmente (`npm install -g @intlayer/lsp`) si su editor necesita `intlayer-lsp` en el `PATH` — es el caso del plugin de Claude Code y de cualquier configuración de abajo que invoque el binario directamente.
|
|
87
91
|
|
|
88
92
|
---
|
|
89
93
|
|
|
90
|
-
## Configuración
|
|
94
|
+
## Configuración
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
<Tabs defaultTab="vscode">
|
|
97
|
+
<Tab label="VS Code" value="vscode">
|
|
93
98
|
|
|
94
|
-
|
|
99
|
+
Instale la [extensión de VS Code de Intlayer](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). El servidor de lenguaje va incluido desde la v8.12.0 y se inicia automáticamente — **no requiere configuración**.
|
|
95
100
|
|
|
96
|
-
|
|
97
|
-
npm install -g @intlayer/lsp
|
|
98
|
-
```
|
|
101
|
+
Consulte la [documentación de la extensión de VS Code](https://intlayer.org/doc/vs-code-extension) para conocer sus demás funcionalidades.
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
+
</Tab>
|
|
104
|
+
<Tab label="Cursor / Windsurf" value="cursor">
|
|
103
105
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
[Cursor](https://www.cursor.com/) y [Windsurf](https://windsurf.com/) son forks de VS Code y usan el mismo ecosistema de extensiones. Instale la [extensión de VS Code de Intlayer](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) una vez y el servidor se activa automáticamente — **no requiere configuración**.
|
|
107
|
+
|
|
108
|
+
</Tab>
|
|
109
|
+
<Tab label="Claude Code" value="claude-code">
|
|
107
110
|
|
|
108
|
-
|
|
111
|
+
Intlayer ofrece un **plugin de Claude Code** alojado en el repositorio de Intlayer. Le da a Claude Code una resolución real de símbolos para sus claves de diccionario en lugar de recurrir a `grep`.
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
Ponga el binario en su `PATH`, luego registre el marketplace e instale el plugin:
|
|
111
114
|
|
|
112
115
|
```bash
|
|
116
|
+
npm install -g @intlayer/lsp
|
|
117
|
+
|
|
113
118
|
claude plugin marketplace add intlayer@github:aymericzip/intlayer
|
|
114
119
|
claude plugin install intlayer-lsp@intlayer
|
|
115
|
-
claude plugin enable intlayer-lsp@intlayer
|
|
116
120
|
```
|
|
117
121
|
|
|
118
|
-
|
|
122
|
+
`install` también habilita el plugin. **Reinicie Claude Code** — los servidores de lenguaje se cargan al arrancar, así que el plugin no tiene efecto hasta entonces.
|
|
119
123
|
|
|
120
|
-
|
|
124
|
+
Claude Code inicia entonces el servidor en archivos `.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.astro` y `.svelte`, y usa `goToDefinition`, `findReferences` y `hover` al navegar por su código.
|
|
121
125
|
|
|
122
|
-
|
|
126
|
+
Si Go-to-Definition sigue sin hacer nada, puede que su versión de Claude Code limite la herramienta LSP tras una bandera:
|
|
123
127
|
|
|
124
128
|
```json fileName="~/.claude/settings.json"
|
|
125
129
|
{
|
|
@@ -129,61 +133,10 @@ Algunas versiones de Claude Code requieren que se establezca la bandera de funci
|
|
|
129
133
|
}
|
|
130
134
|
```
|
|
131
135
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## Configuración en VS Code (a través de la extensión — recomendado)
|
|
137
|
-
|
|
138
|
-
Si tiene instalada la **extensión Intlayer de VS Code**, el servidor de lenguaje se inicia automáticamente. No se requiere configuración adicional. El LSP está integrado directamente en la extensión de VSCode desde la versión 8.12.0.
|
|
139
|
-
|
|
140
|
-
> Consulte la [documentación de la extensión de VS Code](https://intlayer.org/doc/vs-code-extension) para conocer la instalación y otras características.
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Configuración manual en VS Code
|
|
145
|
-
|
|
146
|
-
Si no está utilizando la extensión de Intlayer, puede conectar el servidor de lenguaje manualmente utilizando una extensión de cliente LSP genérica como [**vscode-glspc**](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter) o escribiendo su propia extensión pequeña. El enfoque recomendado es utilizar la extensión de Intlayer.
|
|
147
|
-
|
|
148
|
-
Como referencia, el servidor se inicia a través del binario `intlayer-lsp` sobre stdio:
|
|
149
|
-
|
|
150
|
-
```json fileName=".vscode/settings.json"
|
|
151
|
-
{
|
|
152
|
-
"intlayer.languageServer.command": "npx",
|
|
153
|
-
"intlayer.languageServer.args": ["@intlayer/lsp"]
|
|
154
|
-
}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
La extensión de Intlayer lee estas configuraciones para iniciar el servidor. Si depende únicamente de la extensión, no se necesitan configuraciones manuales.
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## Configuración en Cursor
|
|
162
|
-
|
|
163
|
-
[Cursor](https://www.cursor.com/) es una bifurcación de VS Code con características de IA integradas. Utiliza el mismo ecosistema de extensiones, por lo que la **extensión Intlayer de VS Code** funciona sin ninguna configuración adicional; instálela una vez y Cursor la detectará automáticamente.
|
|
164
|
-
|
|
165
|
-
Si prefiere una configuración manual, Cursor también lee `.vscode/settings.json` desde la raíz del espacio de trabajo, por lo que el fragmento de VS Code anterior se aplica directamente.
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Configuración en Windsurf
|
|
170
|
-
|
|
171
|
-
[Windsurf](https://windsurf.com/) (de Codeium) es otro editor basado en VS Code. Instale la extensión de Intlayer desde el mercado de VS Code y el servidor de lenguaje se activará automáticamente, exactamente como lo hace en VS Code y Cursor.
|
|
172
|
-
|
|
173
|
-
Para la configuración manual, cree `.vscode/settings.json` en la raíz del proyecto:
|
|
174
|
-
|
|
175
|
-
```json fileName=".vscode/settings.json"
|
|
176
|
-
{
|
|
177
|
-
"intlayer.languageServer.command": "npx",
|
|
178
|
-
"intlayer.languageServer.args": ["@intlayer/lsp"]
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## Configuración en Zed
|
|
136
|
+
</Tab>
|
|
137
|
+
<Tab label="Zed" value="zed">
|
|
185
138
|
|
|
186
|
-
|
|
139
|
+
Zed tiene soporte LSP nativo. Añada el servidor a sus ajustes de usuario:
|
|
187
140
|
|
|
188
141
|
```json fileName="~/.config/zed/settings.json"
|
|
189
142
|
{
|
|
@@ -196,47 +149,21 @@ Para la configuración manual, cree `.vscode/settings.json` en la raíz del proy
|
|
|
196
149
|
}
|
|
197
150
|
},
|
|
198
151
|
"languages": {
|
|
199
|
-
"TypeScript": {
|
|
200
|
-
|
|
201
|
-
},
|
|
202
|
-
"
|
|
203
|
-
|
|
204
|
-
},
|
|
205
|
-
"JavaScript": {
|
|
206
|
-
"language_servers": ["intlayer-lsp", "..."]
|
|
207
|
-
},
|
|
208
|
-
"Vue.js": {
|
|
209
|
-
"language_servers": ["intlayer-lsp", "..."]
|
|
210
|
-
},
|
|
211
|
-
"Svelte": {
|
|
212
|
-
"language_servers": ["intlayer-lsp", "..."]
|
|
213
|
-
}
|
|
152
|
+
"TypeScript": { "language_servers": ["intlayer-lsp", "..."] },
|
|
153
|
+
"TSX": { "language_servers": ["intlayer-lsp", "..."] },
|
|
154
|
+
"JavaScript": { "language_servers": ["intlayer-lsp", "..."] },
|
|
155
|
+
"Vue.js": { "language_servers": ["intlayer-lsp", "..."] },
|
|
156
|
+
"Svelte": { "language_servers": ["intlayer-lsp", "..."] }
|
|
214
157
|
}
|
|
215
158
|
}
|
|
216
159
|
```
|
|
217
160
|
|
|
218
|
-
El marcador
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## Configuración para CLIs de agentes de IA (Claude Code, Codex, etc.)
|
|
223
|
-
|
|
224
|
-
**Claude Code** tiene soporte de primer nivel para plugins de LSP; siga la [configuración del plugin de Claude Code](#configuración-como-un-plugin-de-claude-code) anterior para obtener la experiencia completa de Ir a la definición directamente en sus sesiones de terminal.
|
|
161
|
+
El marcador `"..."` mantiene los servidores de lenguaje por defecto de Zed junto al de Intlayer.
|
|
225
162
|
|
|
226
|
-
|
|
163
|
+
</Tab>
|
|
164
|
+
<Tab label="Neovim" value="neovim">
|
|
227
165
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
# Mantener el servidor activo en segundo plano
|
|
232
|
-
npx @intlayer/lsp &
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Configuración manual en Neovim
|
|
238
|
-
|
|
239
|
-
Usando [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), registre una configuración de servidor personalizada:
|
|
166
|
+
Con [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), registre una configuración de servidor personalizada:
|
|
240
167
|
|
|
241
168
|
```lua fileName="~/.config/nvim/init.lua"
|
|
242
169
|
local lspconfig = require('lspconfig')
|
|
@@ -245,7 +172,7 @@ local configs = require('lspconfig.configs')
|
|
|
245
172
|
if not configs.intlayer_lsp then
|
|
246
173
|
configs.intlayer_lsp = {
|
|
247
174
|
default_config = {
|
|
248
|
-
--
|
|
175
|
+
-- Iniciar el servidor con npx para no necesitar una instalación global
|
|
249
176
|
cmd = { 'npx', '--yes', '@intlayer/lsp' },
|
|
250
177
|
filetypes = {
|
|
251
178
|
'typescript',
|
|
@@ -267,21 +194,10 @@ end
|
|
|
267
194
|
lspconfig.intlayer_lsp.setup({})
|
|
268
195
|
```
|
|
269
196
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## Configuración manual en otros editores
|
|
275
|
-
|
|
276
|
-
Cualquier editor que admita el Protocolo de Servidor de Lenguaje puede usar `@intlayer/lsp`. El servidor:
|
|
197
|
+
Tras reiniciar Neovim, `gd` sobre una clave de diccionario ejecuta Ir a la definición y `gr` ejecuta Buscar referencias.
|
|
277
198
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
- **Capacidades** – `definitionProvider: true`, `textDocumentSync: Incremental`
|
|
281
|
-
|
|
282
|
-
Consulte la documentación de LSP de su editor para conocer el formato de configuración exacto (por ejemplo, `languageserver.json` para [coc.nvim](https://github.com/neoclide/coc.nvim), o la configuración del cliente LSP en [Helix](https://helix-editor.com)).
|
|
283
|
-
|
|
284
|
-
### Ejemplo: coc.nvim
|
|
199
|
+
</Tab>
|
|
200
|
+
<Tab label="coc.nvim" value="coc">
|
|
285
201
|
|
|
286
202
|
```json fileName="~/.config/nvim/coc-settings.json"
|
|
287
203
|
{
|
|
@@ -307,9 +223,14 @@ Consulte la documentación de LSP de su editor para conocer el formato de config
|
|
|
307
223
|
}
|
|
308
224
|
```
|
|
309
225
|
|
|
310
|
-
|
|
226
|
+
</Tab>
|
|
227
|
+
<Tab label="Helix" value="helix">
|
|
311
228
|
|
|
312
229
|
```toml fileName="~/.config/helix/languages.toml"
|
|
230
|
+
[language-server.intlayer-lsp]
|
|
231
|
+
command = "npx"
|
|
232
|
+
args = ["@intlayer/lsp"]
|
|
233
|
+
|
|
313
234
|
[[language]]
|
|
314
235
|
name = "typescript"
|
|
315
236
|
language-servers = ["intlayer-lsp", "typescript-language-server"]
|
|
@@ -317,36 +238,54 @@ language-servers = ["intlayer-lsp", "typescript-language-server"]
|
|
|
317
238
|
[[language]]
|
|
318
239
|
name = "tsx"
|
|
319
240
|
language-servers = ["intlayer-lsp", "typescript-language-server"]
|
|
320
|
-
|
|
321
|
-
[language-server.intlayer-lsp]
|
|
322
|
-
command = "npx"
|
|
323
|
-
args = ["@intlayer/lsp"]
|
|
324
241
|
```
|
|
325
242
|
|
|
243
|
+
</Tab>
|
|
244
|
+
<Tab label="Otros editores" value="other">
|
|
245
|
+
|
|
246
|
+
Cualquier editor compatible con LSP puede ejecutar `@intlayer/lsp`. Apúntelo a:
|
|
247
|
+
|
|
248
|
+
- **Ejecutable** — `npx @intlayer/lsp`, o el binario `intlayer-lsp`
|
|
249
|
+
- **Transporte** — stdio (estándar)
|
|
250
|
+
- **Capacidades** — `definitionProvider`, `referencesProvider`, `hoverProvider`, `completionProvider` (caracteres desencadenantes `"` `'` `` ` `` `.`), diagnósticos push, `textDocumentSync: Incremental`
|
|
251
|
+
- **Patrones de raíz** — `intlayer.config.ts`, `intlayer.config.js`, `package.json`
|
|
252
|
+
|
|
253
|
+
Consulte la documentación LSP de su editor para el formato de configuración exacto.
|
|
254
|
+
|
|
255
|
+
</Tab>
|
|
256
|
+
</Tabs>
|
|
257
|
+
|
|
326
258
|
---
|
|
327
259
|
|
|
328
|
-
##
|
|
260
|
+
## Nota sobre los agentes de IA en terminal
|
|
329
261
|
|
|
330
|
-
|
|
262
|
+
**Claude Code** actúa como un cliente LSP real — vea la pestaña anterior.
|
|
331
263
|
|
|
332
|
-
|
|
264
|
+
**OpenAI Codex** y la mayoría de las demás herramientas de terminal no son clientes LSP: leen y escriben archivos directamente. Ejecutar el servidor por sí solo no les ayuda; el valor viene de tenerlo activo en un editor acompañante cuyo índice el agente pueda consultar (Cursor Composer, Windsurf Cascade, Copilot Chat).
|
|
333
265
|
|
|
334
|
-
|
|
335
|
-
2. Escanea llamadas de obtención (`useIntlayer`, `getIntlayer`, etc.) utilizando una expresión regular.
|
|
336
|
-
3. Comprueba si la posición del cursor cae dentro de una de esas llamadas.
|
|
337
|
-
4. Si es así, extrae la clave del diccionario (grupo de captura 3 de la expresión regular) y llama a `getUnmergedDictionaries()` para ubicar cada archivo de contenido que declara esa clave.
|
|
338
|
-
5. Lee cada archivo correspondiente y busca la línea exacta que contiene `key: "<key>"` para posicionar el cursor con precisión.
|
|
339
|
-
6. Devuelve una matriz de objetos `Location` — uno por archivo de origen.
|
|
266
|
+
---
|
|
340
267
|
|
|
341
|
-
|
|
268
|
+
## Cómo funciona
|
|
269
|
+
|
|
270
|
+
Para cada archivo, el servidor localiza el `intlayer.config.*` más cercano y carga la configuración de ese proyecto para encontrar los diccionarios compilados. La configuración, los diccionarios y la lista de archivos fuente se cachean con TTL cortos, y se invalidan cuando cambia un archivo de contenido vigilado.
|
|
271
|
+
|
|
272
|
+
En cada petición, el servidor analiza el documento (mediante [oxc](https://oxc.rs/)) e inspecciona la posición del cursor:
|
|
273
|
+
|
|
274
|
+
1. **Sobre una cadena de clave** (`useIntlayer("home")`) → devuelve todos los archivos de contenido que declaran esa clave, situados en su línea `key:`.
|
|
275
|
+
2. **Sobre el uso de un campo** (`content.title`, una propiedad desestructurada, `t('path.to.field')`, `<Trans>`, …) → resuelve la variable hasta su diccionario y devuelve el campo correspondiente dentro de los archivos de contenido.
|
|
276
|
+
3. **Desde un archivo de contenido** → ejecuta la búsqueda inversa, recorriendo las fuentes del proyecto en busca de los puntos de llamada de esa clave o campo.
|
|
342
277
|
|
|
343
278
|
---
|
|
344
279
|
|
|
345
|
-
##
|
|
280
|
+
## Solución de problemas
|
|
281
|
+
|
|
282
|
+
| Síntoma | Causa probable | Solución |
|
|
283
|
+
| -------------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------- |
|
|
284
|
+
| No ocurre absolutamente nada | El servidor no está en ejecución | Compruebe que `@intlayer/lsp` está instalado y que su editor lo lanza |
|
|
285
|
+
| Funciona en el editor, no en Claude Code | Plugin instalado a mitad de sesión | Reinicie Claude Code — los servidores de lenguaje se cargan al arrancar |
|
|
286
|
+
| No se encuentran definiciones para una clave | Diccionarios sin compilar | Ejecute `npx intlayer build`, o inicie su servidor de desarrollo |
|
|
287
|
+
| Todas las claves marcadas como no declaradas | Configuración no resuelta | Verifique que existe un `intlayer.config.ts` (o `.js`) en la raíz de su proyecto |
|
|
288
|
+
| Se usa el proyecto equivocado en un monorepo | Falta configuración por paquete | Añada un `intlayer.config.*` a cada paquete que declare su propio contenido |
|
|
289
|
+
| El servidor falla al arrancar | Versión de Node.js demasiado antigua | Requiere Node.js ≥ 14.18 |
|
|
346
290
|
|
|
347
|
-
|
|
348
|
-
| -------------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
349
|
-
| Ir a la definición no hace nada | El servidor no se está ejecutando | Compruebe que `@intlayer/lsp` esté instalado y que el editor lo esté iniciando |
|
|
350
|
-
| Raíz de espacio de trabajo incorrecta | Múltiples carpetas de espacio de trabajo | Asegúrese de que la carpeta que contiene `intlayer.config.ts` sea la primera carpeta de espacio de trabajo |
|
|
351
|
-
| No se encuentran definiciones para una clave | Configuración no resuelta | Verifique que `intlayer.config.ts` (o `.js`) exista en la raíz del espacio de trabajo |
|
|
352
|
-
| El servidor se bloquea al iniciar | Versión de Node.js demasiado antigua | Requiere Node.js ≥ 14.18 |
|
|
291
|
+
En VS Code, el servidor registra en **Ver → Salida → «Intlayer LSP»** — útil para confirmar qué configuración se resolvió y cuántos diccionarios se encontraron.
|
package/docs/es/readme.md
CHANGED
|
@@ -46,27 +46,27 @@ Con **archivos de contenido por localidad**, **autocompletado de TypeScript**, *
|
|
|
46
46
|
|
|
47
47
|
## Beneficios clave de Intlayer:
|
|
48
48
|
|
|
49
|
-
| Característica | Descripción
|
|
50
|
-
| --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
51
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Soporte Multi-Frameworks**<br><br>Intlayer es compatible con todos los principales marcos y bibliotecas, incluidos Next.js, React, Vite, Vue.js, Nuxt, Preact, Express y más.
|
|
52
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **Gestión de contenido impulsada por JavaScript**<br><br>Aproveche la flexibilidad de JavaScript para definir y gestionar su contenido de manera eficiente. <br><br> - [Declaración de contenido](https://intlayer.org/doc/concept/content)
|
|
53
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **Archivo de declaración de contenido por localidad**<br><br>Acelere su desarrollo declarando su contenido una vez, antes de la generación automática.<br><br> - [Archivo de declaración de contenido por localidad](https://intlayer.org/doc/concept/per-locale-file)
|
|
54
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compilador**<br><br>El compilador Intlayer extrae automáticamente el contenido de los componentes y genera los archivos de diccionario.<br><br> - [Compilador](https://intlayer.org/doc/compiler)
|
|
55
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Entorno seguro para tipos**<br><br>Aproveche TypeScript para garantizar que sus definiciones de contenido y código estén libres de errores, mientras se beneficia del autocompletado del IDE.<br><br> - [Configuración de TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript)
|
|
56
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Configuración simplificada**<br><br>Póngase en marcha rápidamente con una configuración mínima. Ajuste configuraciones para internacionalización, enrutamiento, IA, compilación y manejo de contenido con facilidad. <br><br> - [Explorar la integración con Next.js](https://intlayer.org/doc/environment/nextjs)
|
|
57
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Recuperación de contenido simplificada**<br><br>No es necesario llamar a su función `t` para cada elemento de contenido. Recupere todo su contenido directamente utilizando un solo hook.<br><br> - [Integración con React](https://intlayer.org/doc/environment/create-react-app)
|
|
58
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Implementación consistente de componentes de servidor**<br><br>Perfectamente adecuado para componentes de servidor de Next.js, use la misma implementación tanto para componentes de cliente como de servidor, sin necesidad de pasar su función `t` por cada componente de servidor. <br><br> - [Componentes de servidor](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code)
|
|
59
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Base de código organizada**<br><br>Mantenga su base de código más organizada: 1 componente = 1 diccionario en la misma carpeta. Traducciones cerca de sus respectivos componentes, mejoran la mantenibilidad y claridad. <br><br> - [Cómo funciona Intlayer](https://intlayer.org/doc/concept/how-works-intlayer)
|
|
60
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Enrutamiento mejorado**<br><br>Soporte completo de enrutamiento de aplicaciones, adaptándose perfectamente a estructuras complejas de aplicaciones para Next.js, React, Vite, Vue.js, etc.<br><br> - [Explorar la integración con Next.js](https://intlayer.org/doc/environment/nextjs)
|
|
61
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Soporte para Markdown**<br><br>Importe e interprete archivos locales y Markdown remoto para contenido multilingüe como las políticas de privacidad, documentación, etc. Interprete y haga accesibles los metadatos de Markdown en su código.<br><br> - [Archivos de contenido](https://intlayer.org/doc/concept/content/file)
|
|
62
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Editor visual y CMS gratuitos**<br><br>Un editor visual y un CMS gratuitos están disponibles para los redactores de contenido, eliminando la necesidad de una plataforma de localización. Mantenga su contenido sincronizado usando Git, o externalícelo total o parcialmente con el CMS.<br><br> - [Editor Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms)
|
|
63
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Contenido tree-shakable**<br><br>Contenido tree-shakable, que reduce el tamaño del bundle final. Carga el contenido por componente, excluyendo cualquier contenido no utilizado de su paquete. Admite la carga diferida (lazy loading) para mejorar la eficiencia de carga de la aplicación. <br><br> - [Optimización de la compilación de la aplicación](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization)
|
|
64
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Renderizado estático**<br><br>No bloquea el renderizado estático. <br><br> - [Integración con Next.js](https://intlayer.org/doc/environment/nextjs)
|
|
65
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Traducción impulsada por IA**<br><br>Transforme su sitio web a 231 idiomas con un solo clic utilizando las avanzadas herramientas de traducción impulsadas por IA de Intlayer con su propio proveedor de IA / clave API. <br><br> - [Integración CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI de Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Llenado automático](https://intlayer.org/doc/concept/auto-fill)
|
|
66
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Integración del servidor MCP**<br><br>Proporciona un servidor MCP (Protocolo de Contexto de Modelo) para la automatización del IDE, permitiendo una gestión de contenido fluida y flujos de trabajo de i18n directamente dentro de su entorno de desarrollo. <br><br> - [Servidor MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/mcp_server.md)
|
|
67
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Extensión de VSCode**<br><br>Intlayer proporciona una extensión para VSCode para ayudarle a gestionar su contenido y traducciones, construir sus diccionarios, traducir su contenido y más. <br><br> - [Extensión de VSCode](https://intlayer.org/doc/vs-code-extension)
|
|
68
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Interoperabilidad**<br><br>Permitir la interoperabilidad con react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer y react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer y next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer y next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer y vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
|
|
69
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Rendimiento y Benchmark**<br><br>Utiliza tree-shaking avanzado y carga dinámica para mejorar el rendimiento y mantener la solución lo más ligera posible. <br><br> - [Rendimiento y Benchmark](https://intlayer.org/doc/benchmark)
|
|
49
|
+
| Característica | Descripción |
|
|
50
|
+
| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
51
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Soporte Multi-Frameworks**<br><br>Intlayer es compatible con todos los principales marcos y bibliotecas, incluidos Next.js, React, Vite, Vue.js, Nuxt, Preact, Express y más. |
|
|
52
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **Gestión de contenido impulsada por JavaScript**<br><br>Aproveche la flexibilidad de JavaScript para definir y gestionar su contenido de manera eficiente. <br><br> - [Declaración de contenido](https://intlayer.org/doc/concept/content) |
|
|
53
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **Archivo de declaración de contenido por localidad**<br><br>Acelere su desarrollo declarando su contenido una vez, antes de la generación automática.<br><br> - [Archivo de declaración de contenido por localidad](https://intlayer.org/doc/concept/per-locale-file) |
|
|
54
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compilador**<br><br>El compilador Intlayer extrae automáticamente el contenido de los componentes y genera los archivos de diccionario.<br><br> - [Compilador](https://intlayer.org/doc/compiler) |
|
|
55
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Entorno seguro para tipos**<br><br>Aproveche TypeScript para garantizar que sus definiciones de contenido y código estén libres de errores, mientras se beneficia del autocompletado del IDE.<br><br> - [Configuración de TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
56
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Configuración simplificada**<br><br>Póngase en marcha rápidamente con una configuración mínima. Ajuste configuraciones para internacionalización, enrutamiento, IA, compilación y manejo de contenido con facilidad. <br><br> - [Explorar la integración con Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
57
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Recuperación de contenido simplificada**<br><br>No es necesario llamar a su función `t` para cada elemento de contenido. Recupere todo su contenido directamente utilizando un solo hook.<br><br> - [Integración con React](https://intlayer.org/doc/environment/create-react-app) |
|
|
58
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Implementación consistente de componentes de servidor**<br><br>Perfectamente adecuado para componentes de servidor de Next.js, use la misma implementación tanto para componentes de cliente como de servidor, sin necesidad de pasar su función `t` por cada componente de servidor. <br><br> - [Componentes de servidor](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
59
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Base de código organizada**<br><br>Mantenga su base de código más organizada: 1 componente = 1 diccionario en la misma carpeta. Traducciones cerca de sus respectivos componentes, mejoran la mantenibilidad y claridad. <br><br> - [Cómo funciona Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
60
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Enrutamiento mejorado**<br><br>Soporte completo de enrutamiento de aplicaciones, adaptándose perfectamente a estructuras complejas de aplicaciones para Next.js, React, Vite, Vue.js, etc.<br><br> - [Explorar la integración con Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
61
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Soporte para Markdown**<br><br>Importe e interprete archivos locales y Markdown remoto para contenido multilingüe como las políticas de privacidad, documentación, etc. Interprete y haga accesibles los metadatos de Markdown en su código.<br><br> - [Archivos de contenido](https://intlayer.org/doc/concept/content/file) |
|
|
62
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Editor visual y CMS gratuitos**<br><br>Un editor visual y un CMS gratuitos están disponibles para los redactores de contenido, eliminando la necesidad de una plataforma de localización. Mantenga su contenido sincronizado usando Git, o externalícelo total o parcialmente con el CMS.<br><br> - [Editor Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
|
|
63
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Contenido tree-shakable**<br><br>Contenido tree-shakable, que reduce el tamaño del bundle final. Carga el contenido por componente, excluyendo cualquier contenido no utilizado de su paquete. Admite la carga diferida (lazy loading) para mejorar la eficiencia de carga de la aplicación. <br><br> - [Optimización de la compilación de la aplicación](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
64
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Renderizado estático**<br><br>No bloquea el renderizado estático. <br><br> - [Integración con Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
65
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Traducción impulsada por IA**<br><br>Transforme su sitio web a 231 idiomas con un solo clic utilizando las avanzadas herramientas de traducción impulsadas por IA de Intlayer con su propio proveedor de IA / clave API. <br><br> - [Integración CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI de Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Llenado automático](https://intlayer.org/doc/concept/auto-fill) |
|
|
66
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Integración del servidor MCP**<br><br>Proporciona un servidor MCP (Protocolo de Contexto de Modelo) para la automatización del IDE, permitiendo una gestión de contenido fluida y flujos de trabajo de i18n directamente dentro de su entorno de desarrollo. <br><br> - [Servidor MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/mcp_server.md) |
|
|
67
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Extensión de VSCode**<br><br>Intlayer proporciona una extensión para VSCode para ayudarle a gestionar su contenido y traducciones, construir sus diccionarios, traducir su contenido y más. <br><br> - [Extensión de VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
68
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Interoperabilidad**<br><br>Permitir la interoperabilidad con react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer y react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer y next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer y next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer y vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) <br> - [Adaptadores de compatibilidad de Intlayer](https://intlayer.org/doc/compatibility) |
|
|
69
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Rendimiento y Benchmark**<br><br>Utiliza tree-shaking avanzado y carga dinámica para mejorar el rendimiento y mantener la solución lo más ligera posible. <br><br> - [Rendimiento y Benchmark](https://intlayer.org/doc/benchmark) |
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
@@ -173,7 +173,7 @@ Explore nuestra documentación completa para comenzar con Intlayer y aprender c
|
|
|
173
173
|
<li><a href="https://intlayer.org/doc/concept/cms" rel=''>CMS de Intlayer</a></li>
|
|
174
174
|
<li><a href="https://intlayer.org/doc/concept/content" rel=''>Diccionario</a>
|
|
175
175
|
<ul>
|
|
176
|
-
<li><a href="https://intlayer.org/doc/concept/
|
|
176
|
+
<li><a href="https://intlayer.org/doc/concept/per-locale-file" rel=''>Archivo de declaración de contenido por localidad</a></li>
|
|
177
177
|
<li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>Traducción</a></li>
|
|
178
178
|
<li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>Enumeración</a></li>
|
|
179
179
|
<li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>Condición</a></li>
|
|
@@ -194,7 +194,7 @@ Explore nuestra documentación completa para comenzar con Intlayer y aprender c
|
|
|
194
194
|
<ul>
|
|
195
195
|
<li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
|
|
196
196
|
<li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
|
|
197
|
-
<li><a href="https://intlayer.org/doc/environment/nextjs/next-with-
|
|
197
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/next-with-page-router" rel=''>Next.js Page Router</a></li>
|
|
198
198
|
<li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>Next.js usando el Compilador</a></li>
|
|
199
199
|
</ul>
|
|
200
200
|
</li>
|
|
@@ -223,7 +223,7 @@ Explore nuestra documentación completa para comenzar con Intlayer y aprender c
|
|
|
223
223
|
<li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
|
|
224
224
|
<li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
|
|
225
225
|
<li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
|
|
226
|
-
<li><a href="https://intlayer.org/doc/environment/
|
|
226
|
+
<li><a href="https://intlayer.org/doc/environment/nuxt-and-vue" rel=''>Vite + Nuxt</a></li>
|
|
227
227
|
<li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
|
|
228
228
|
<li><a href="https://intlayer.org/doc/environment/angular" rel=''>Angular</a></li>
|
|
229
229
|
<li>
|