@intlayer/docs 8.1.6 → 8.1.7
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 +18 -9
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/compiler.md +26 -0
- package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ar/readme.md +138 -110
- package/docs/de/compiler.md +26 -0
- package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/de/readme.md +152 -124
- package/docs/en/compiler.md +27 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
- package/docs/en/readme.md +129 -105
- package/docs/en-GB/compiler.md +26 -0
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/en-GB/readme.md +134 -108
- package/docs/es/compiler.md +26 -0
- package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/es/readme.md +149 -121
- package/docs/fr/compiler.md +26 -0
- package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/fr/readme.md +150 -122
- package/docs/hi/compiler.md +26 -0
- package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
- package/docs/hi/readme.md +153 -125
- package/docs/id/compiler.md +26 -0
- package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/id/readme.md +133 -105
- package/docs/it/compiler.md +26 -0
- package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/it/readme.md +155 -127
- package/docs/ja/compiler.md +26 -0
- package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ja/readme.md +152 -126
- package/docs/ko/compiler.md +26 -0
- package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ko/readme.md +154 -126
- package/docs/pl/compiler.md +26 -0
- package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/pl/readme.md +134 -106
- package/docs/pt/compiler.md +27 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/pt/readme.md +154 -126
- package/docs/ru/compiler.md +26 -0
- package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ru/readme.md +137 -109
- package/docs/tr/compiler.md +26 -0
- package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
- package/docs/tr/readme.md +139 -111
- package/docs/uk/compiler.md +26 -0
- package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/uk/readme.md +133 -109
- package/docs/vi/compiler.md +27 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/vi/readme.md +138 -110
- package/docs/zh/compiler.md +26 -0
- package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
- package/docs/zh/readme.md +148 -120
- package/package.json +7 -8
- package/src/generated/docs.entry.ts +40 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-03-07
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Vite y React i18n - Transforma una aplicación existente en una aplicación multilingüe (guía i18n 2026)
|
|
5
|
+
description: Descubre cómo hacer que tu aplicación Vite y React existente sea multilingüe utilizando Intlayer Compiler. Sigue la documentación para internacionalizar (i18n) y traducirla con IA.
|
|
6
|
+
keywords:
|
|
7
|
+
- Internacionalización
|
|
8
|
+
- Documentación
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Vite
|
|
11
|
+
- React
|
|
12
|
+
- Compilador
|
|
13
|
+
- IA
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- environment
|
|
17
|
+
- vite-and-react
|
|
18
|
+
- compiler
|
|
19
|
+
- AI
|
|
20
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
21
|
+
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
22
|
+
history:
|
|
23
|
+
- version: 8.1.6
|
|
24
|
+
date: 2026-02-23
|
|
25
|
+
changes: Lanzamiento inicial
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Cómo hacer multilingüe (i18n) una aplicación Vite y React existente a posteriori (guía i18n 2026)
|
|
29
|
+
|
|
30
|
+
<Tabs defaultTab="video">
|
|
31
|
+
<Tab label="Vídeo" value="video">
|
|
32
|
+
|
|
33
|
+
<iframe title="¿La mejor solución i18n para Vite y React? Descubre Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
34
|
+
|
|
35
|
+
</Tab>
|
|
36
|
+
<Tab label="Código" value="code">
|
|
37
|
+
|
|
38
|
+
<iframe
|
|
39
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
40
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
41
|
+
title="Demo CodeSandbox - Cómo internacionalizar tu aplicación usando Intlayer"
|
|
42
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
43
|
+
loading="lazy"
|
|
44
|
+
/>
|
|
45
|
+
|
|
46
|
+
</Tab>
|
|
47
|
+
</Tabs>
|
|
48
|
+
|
|
49
|
+
Ver [Plantilla de Aplicación](https://github.com/aymericzip/intlayer-vite-react-template) en GitHub.
|
|
50
|
+
|
|
51
|
+
## Tabla de Contenidos
|
|
52
|
+
|
|
53
|
+
<TOC/>
|
|
54
|
+
|
|
55
|
+
## ¿Por qué es difícil internacionalizar una aplicación existente?
|
|
56
|
+
|
|
57
|
+
Si alguna vez has intentado añadir varios idiomas a una aplicación que fue construida para uno solo, conoces el dolor. No es solo "difícil", es tedioso. Tienes que peinar cada archivo, cazar cada cadena de texto y moverlas a archivos de diccionario separados.
|
|
58
|
+
|
|
59
|
+
Luego viene la parte arriesgada: reemplazar todo ese texto con ganchos de código sin romper tu diseño o lógica. Es el tipo de trabajo que detiene el desarrollo de nuevas funciones durante semanas y se siente como una refactorización interminable.
|
|
60
|
+
|
|
61
|
+
## ¿Qué es el Compilador de Intlayer?
|
|
62
|
+
|
|
63
|
+
El **Compilador de Intlayer** fue construido para saltarse ese trabajo manual pesado. En lugar de extraer las cadenas manualmente, el compilador lo hace por ti. Escanea tu código, encuentra el texto y utiliza IA para generar los diccionarios en segundo plano.
|
|
64
|
+
Luego, modifica tu código durante la construcción para inyectar los ganchos i18n necesarios. Básicamente, sigues escribiendo tu aplicación como si fuera de un solo idioma, y el compilador se encarga de la transformación multilingüe automáticamente.
|
|
65
|
+
|
|
66
|
+
> Documentación del Compilador: [https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/compiler.md](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/compiler.md)
|
|
67
|
+
|
|
68
|
+
### Limitaciones
|
|
69
|
+
|
|
70
|
+
Debido a que el compilador realiza el análisis y la transformación del código (insertando ganchos y generando diccionarios) en el **momento de la compilación**, puede **ralentizar el proceso de construcción** de tu aplicación.
|
|
71
|
+
|
|
72
|
+
Para mitigar este impacto durante el desarrollo, puedes configurar el compilador para que se ejecute en modo [`'build-only'`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md) o desactivarlo cuando no sea necesario.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Guía paso a paso para configurar Intlayer en una aplicación Vite y React
|
|
77
|
+
|
|
78
|
+
### Paso 1: Instalar dependencias
|
|
79
|
+
|
|
80
|
+
Instala los paquetes necesarios usando npm:
|
|
81
|
+
|
|
82
|
+
```bash packageManager="npm"
|
|
83
|
+
npm install intlayer react-intlayer
|
|
84
|
+
npm install vite-intlayer --save-dev
|
|
85
|
+
npx intlayer init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```bash packageManager="pnpm"
|
|
89
|
+
pnpm add intlayer react-intlayer
|
|
90
|
+
pnpm add vite-intlayer --save-dev
|
|
91
|
+
pnpm intlayer init
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```bash packageManager="yarn"
|
|
95
|
+
yarn add intlayer react-intlayer
|
|
96
|
+
yarn add vite-intlayer --save-dev
|
|
97
|
+
yarn intlayer init
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```bash packageManager="bun"
|
|
101
|
+
bun add intlayer react-intlayer
|
|
102
|
+
bun add vite-intlayer --dev
|
|
103
|
+
bunx intlayer init
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- **intlayer**
|
|
107
|
+
El paquete principal que proporciona herramientas de internacionalización para la gestión de configuración, traducción, [declaración de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/content_file.md), transpilación y [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/cli/index.md).
|
|
108
|
+
|
|
109
|
+
- **react-intlayer**
|
|
110
|
+
El paquete que integra Intlayer con la aplicación React. Proporciona proveedores de contexto y ganchos para la internacionalización de React.
|
|
111
|
+
|
|
112
|
+
- **vite-intlayer**
|
|
113
|
+
Incluye el complemento de Vite para integrar Intlayer con el [empaquetador Vite](https://vite.dev/guide/why.html#why-bundle-for-production), así como el middleware para detectar el idioma preferido del usuario, gestionar cookies y manejar la redirección de URL.
|
|
114
|
+
|
|
115
|
+
### Paso 2: Configura tu proyecto
|
|
116
|
+
|
|
117
|
+
Crea un archivo de configuración para configurar los idiomas de tu aplicación:
|
|
118
|
+
|
|
119
|
+
```typescript fileName="intlayer.config.ts"
|
|
120
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
121
|
+
|
|
122
|
+
const config: IntlayerConfig = {
|
|
123
|
+
internationalization: {
|
|
124
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
125
|
+
defaultLocale: Locales.ENGLISH,
|
|
126
|
+
},
|
|
127
|
+
compiler: {
|
|
128
|
+
enabled: true, // Puede establecerse en 'build-only' para limitar el impacto en el modo dev
|
|
129
|
+
outputDir: "i18n",
|
|
130
|
+
dictionaryKeyPrefix: "", // Sin prefijo comp-
|
|
131
|
+
},
|
|
132
|
+
ai: {
|
|
133
|
+
provider: "openai",
|
|
134
|
+
model: "gpt-5-mini",
|
|
135
|
+
apiKey: process.env.OPEN_AI_API_KEY,
|
|
136
|
+
applicationContext: "Esta aplicación es una aplicación de mapas", // Nota: puedes personalizar esta descripción de la aplicación
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
export default config;
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
> **Nota**: Asegúrate de tener tu `OPEN_AI_API_KEY` configurada en tus variables de entorno.
|
|
144
|
+
|
|
145
|
+
> A través de este archivo de configuración, puedes configurar URLs localizadas, redirección de middleware, nombres de cookies, la ubicación y extensión de tus declaraciones de contenido, desactivar los registros de Intlayer en la consola y más. Para obtener una lista completa de los parámetros disponibles, consulta la [documentación de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md).
|
|
146
|
+
|
|
147
|
+
### Paso 3: Integra Intlayer en tu configuración de Vite
|
|
148
|
+
|
|
149
|
+
Añade el complemento de intlayer en tu configuración.
|
|
150
|
+
|
|
151
|
+
```typescript fileName="vite.config.ts"
|
|
152
|
+
import { defineConfig } from "vite";
|
|
153
|
+
import react from "@vitejs/plugin-react-swc";
|
|
154
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
155
|
+
|
|
156
|
+
// https://vitejs.dev/config/
|
|
157
|
+
export default defineConfig({
|
|
158
|
+
plugins: [react(), intlayer(), intlayerCompiler()],
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
> El complemento Vite `intlayer()` se utiliza para integrar Intlayer con Vite. Garantiza la construcción de archivos de declaración de contenido y los supervisa en modo de desarrollo. Define variables de entorno de Intlayer dentro de la aplicación Vite. Además, proporciona alias para optimizar el rendimiento.
|
|
163
|
+
|
|
164
|
+
> El complemento Vite `intlayerCompiler()` se utiliza para extraer contenido del componente y escribir archivos `.content`.
|
|
165
|
+
|
|
166
|
+
### Paso 4: Compila tu código
|
|
167
|
+
|
|
168
|
+
Simplemente escribe tus componentes con cadenas codificadas en tu idioma predeterminado. El compilador se encarga del resto.
|
|
169
|
+
|
|
170
|
+
Ejemplo de cómo podría verse tu página:
|
|
171
|
+
|
|
172
|
+
<Tabs>
|
|
173
|
+
<Tab value="Código">
|
|
174
|
+
|
|
175
|
+
```tsx fileName="src/App.tsx"
|
|
176
|
+
import { useState, type FC } from "react";
|
|
177
|
+
import reactLogo from "./assets/react.svg";
|
|
178
|
+
import viteLogo from "/vite.svg";
|
|
179
|
+
import "./App.css";
|
|
180
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
181
|
+
|
|
182
|
+
const AppContent: FC = () => {
|
|
183
|
+
const [count, setCount] = useState(0);
|
|
184
|
+
|
|
185
|
+
return (
|
|
186
|
+
<>
|
|
187
|
+
<div>
|
|
188
|
+
<a href="https://vitejs.dev" target="_blank">
|
|
189
|
+
<img src={viteLogo} className="logo" alt="Vite logo" />
|
|
190
|
+
</a>
|
|
191
|
+
<a href="https://react.dev" target="_blank">
|
|
192
|
+
<img src={reactLogo} className="logo react" alt="React logo" />
|
|
193
|
+
</a>
|
|
194
|
+
</div>
|
|
195
|
+
<h1>Vite + React</h1>
|
|
196
|
+
<div className="card">
|
|
197
|
+
<button onClick={() => setCount((count) => count + 1)}>
|
|
198
|
+
count is {count}
|
|
199
|
+
</button>
|
|
200
|
+
<p>
|
|
201
|
+
Edit <code>src/App.tsx</code> and save to test HMR
|
|
202
|
+
</p>
|
|
203
|
+
</div>
|
|
204
|
+
<p className="read-the-docs">
|
|
205
|
+
Click on the Vite and React logos to learn more
|
|
206
|
+
</p>
|
|
207
|
+
</>
|
|
208
|
+
);
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const App: FC = () => (
|
|
212
|
+
<IntlayerProvider>
|
|
213
|
+
<AppContent />
|
|
214
|
+
</IntlayerProvider>
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
export default App;
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
</Tab>
|
|
221
|
+
<Tab value="Salida">
|
|
222
|
+
|
|
223
|
+
```ts fileName="i18n/app-content.content.json"
|
|
224
|
+
{
|
|
225
|
+
key: "app-content",
|
|
226
|
+
content: {
|
|
227
|
+
nodeType: "translation",
|
|
228
|
+
translation: {
|
|
229
|
+
en: {
|
|
230
|
+
viteLogo: "Vite logo",
|
|
231
|
+
reactLogo: "React logo",
|
|
232
|
+
title: "Vite + React",
|
|
233
|
+
countButton: "count is",
|
|
234
|
+
editMessage: "Edit",
|
|
235
|
+
hmrMessage: "and save to test HMR",
|
|
236
|
+
readTheDocs: "Click on the Vite and React logos to learn more",
|
|
237
|
+
},
|
|
238
|
+
es: {
|
|
239
|
+
viteLogo: "Logotipo de Vite",
|
|
240
|
+
reactLogo: "Logotipo de React",
|
|
241
|
+
title: "Vite + React",
|
|
242
|
+
countButton: "la cuenta es",
|
|
243
|
+
editMessage: "Edita",
|
|
244
|
+
hmrMessage: "y guarda para probar HMR",
|
|
245
|
+
readTheDocs: "Haz clic en los logotipos de Vite y React para saber más",
|
|
246
|
+
},
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
```tsx fileName="src/App.tsx"
|
|
253
|
+
import { useState, type FC } from "react";
|
|
254
|
+
import reactLogo from "./assets/react.svg";
|
|
255
|
+
import viteLogo from "/vite.svg";
|
|
256
|
+
import "./App.css";
|
|
257
|
+
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
258
|
+
|
|
259
|
+
const AppContent: FC = () => {
|
|
260
|
+
const [count, setCount] = useState(0);
|
|
261
|
+
const content = useIntlayer("app-content");
|
|
262
|
+
|
|
263
|
+
return (
|
|
264
|
+
<>
|
|
265
|
+
<div>
|
|
266
|
+
<a href="https://vitejs.dev" target="_blank">
|
|
267
|
+
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
268
|
+
</a>
|
|
269
|
+
<a href="https://react.dev" target="_blank">
|
|
270
|
+
<img
|
|
271
|
+
src={reactLogo}
|
|
272
|
+
className="logo react"
|
|
273
|
+
alt={content.reactLogo.value}
|
|
274
|
+
/>
|
|
275
|
+
</a>
|
|
276
|
+
</div>
|
|
277
|
+
<h1>{content.title}</h1>
|
|
278
|
+
<div className="card">
|
|
279
|
+
<button onClick={() => setCount((count) => count + 1)}>
|
|
280
|
+
{content.countButton} {count}
|
|
281
|
+
</button>
|
|
282
|
+
<p>
|
|
283
|
+
{content.editMessage} <code>src/App.tsx</code> {content.hmrMessage}
|
|
284
|
+
</p>
|
|
285
|
+
</div>
|
|
286
|
+
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
287
|
+
</>
|
|
288
|
+
);
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
const App: FC = () => (
|
|
292
|
+
<IntlayerProvider>
|
|
293
|
+
<AppContent />
|
|
294
|
+
</IntlayerProvider>
|
|
295
|
+
);
|
|
296
|
+
|
|
297
|
+
export default App;
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
</Tab>
|
|
301
|
+
</Tabs>
|
|
302
|
+
|
|
303
|
+
- **`IntlayerProvider`** se utiliza para proporcionar el idioma a los componentes anidados.
|
|
304
|
+
|
|
305
|
+
### (Opcional) Paso 6: Cambiar el idioma de tu contenido
|
|
306
|
+
|
|
307
|
+
Para cambiar el idioma de tu contenido, puedes usar la función `setLocale` proporcionada por el gancho `useLocale`. Esta función te permite establecer el idioma de la aplicación y actualizar el contenido en consecuencia.
|
|
308
|
+
|
|
309
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx"
|
|
310
|
+
import type { FC } from "react";
|
|
311
|
+
import { Locales } from "intlayer";
|
|
312
|
+
import { useLocale } from "react-intlayer";
|
|
313
|
+
|
|
314
|
+
const LocaleSwitcher: FC = () => {
|
|
315
|
+
const { setLocale } = useLocale();
|
|
316
|
+
|
|
317
|
+
return (
|
|
318
|
+
<button onClick={() => setLocale(Locales.SPANISH)}>
|
|
319
|
+
Cambiar idioma a español
|
|
320
|
+
</button>
|
|
321
|
+
);
|
|
322
|
+
};
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
> Para obtener más información sobre el gancho `useLocale`, consulta la [documentación](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/react-intlayer/useLocale.md).
|
|
326
|
+
|
|
327
|
+
### (Opcional) Paso 7: Rellenar traducciones faltantes
|
|
328
|
+
|
|
329
|
+
Intlayer proporciona una herramienta CLI para ayudarte a rellenar las traducciones faltantes. Puedes usar el comando `intlayer` para probar y rellenar las traducciones faltantes de tu código.
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
npx intlayer test # Probar si faltan traducciones
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
npx intlayer fill # Rellenar traducciones faltantes
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
> Para más detalles, consulta la [documentación de la CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/cli/ci.md)
|
|
340
|
+
|
|
341
|
+
### Configuración de Git
|
|
342
|
+
|
|
343
|
+
Se recomienda ignorar los archivos generados por Intlayer. Esto te permite evitar enviarlos a tu repositorio de Git.
|
|
344
|
+
|
|
345
|
+
Para hacer esto, puedes añadir las siguientes instrucciones a tu archivo `.gitignore`:
|
|
346
|
+
|
|
347
|
+
```plaintext fileName=".gitignore"
|
|
348
|
+
# Ignorar los archivos generados por Intlayer
|
|
349
|
+
.intlayer
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Extensión de VS Code
|
|
353
|
+
|
|
354
|
+
Para mejorar tu experiencia de desarrollo con Intlayer, puedes instalar la **extensión oficial de Intlayer para VS Code**.
|
|
355
|
+
|
|
356
|
+
[Instalar desde el Marketplace de VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
357
|
+
|
|
358
|
+
Esta extensión proporciona:
|
|
359
|
+
|
|
360
|
+
- **Autocompletado** para las claves de traducción.
|
|
361
|
+
- **Detección de errores en tiempo real** para traducciones faltantes.
|
|
362
|
+
- **Vistas previas en línea** del contenido traducido.
|
|
363
|
+
- **Acciones rápidas** para crear y actualizar traducciones fácilmente.
|
|
364
|
+
|
|
365
|
+
Para más detalles sobre cómo usar la extensión, consulta la [documentación de la extensión de VS Code de Intlayer](https://intlayer.org/doc/vs-code-extension).
|
|
366
|
+
|
|
367
|
+
### Ir más allá
|
|
368
|
+
|
|
369
|
+
Para ir más allá, puedes implementar el [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_visual_editor.md) o externalizar tu contenido utilizando el [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_CMS.md).
|