@intlayer/docs 8.0.4 → 8.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/blog.cjs +1 -0
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +1 -0
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs +1 -0
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +1 -0
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +21 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +1 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/legal.cjs +1 -0
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/doc-translate.md +1 -0
- package/docs/ar/cli/fill.md +1 -0
- package/docs/ar/configuration.md +10 -0
- package/docs/ar/intlayer_with_analog.md +371 -0
- package/docs/ar/intlayer_with_angular.md +12 -14
- package/docs/ar/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/de/agent_skills.md +53 -0
- package/docs/de/cli/doc-translate.md +1 -0
- package/docs/de/cli/fill.md +1 -0
- package/docs/de/configuration.md +10 -0
- package/docs/de/intlayer_with_analog.md +369 -0
- package/docs/de/intlayer_with_angular.md +11 -16
- package/docs/de/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/en/agent_skills.md +53 -0
- package/docs/en/cli/doc-translate.md +1 -0
- package/docs/en/cli/fill.md +1 -0
- package/docs/en/configuration.md +21 -1
- package/docs/en/intlayer_with_analog.md +4 -12
- package/docs/en/intlayer_with_angular.md +13 -15
- package/docs/en/packages/react-intlayer/useIntlayer.md +1 -1
- package/docs/en/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/en-GB/cli/doc-translate.md +1 -0
- package/docs/en-GB/cli/fill.md +1 -0
- package/docs/en-GB/configuration.md +10 -0
- package/docs/en-GB/intlayer_with_analog.md +369 -0
- package/docs/en-GB/intlayer_with_angular.md +12 -14
- package/docs/en-GB/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/es/agent_skills.md +53 -0
- package/docs/es/cli/doc-translate.md +1 -0
- package/docs/es/cli/fill.md +1 -0
- package/docs/es/configuration.md +10 -0
- package/docs/es/intlayer_with_analog.md +369 -0
- package/docs/es/intlayer_with_angular.md +11 -16
- package/docs/es/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/fr/agent_skills.md +53 -0
- package/docs/fr/cli/doc-translate.md +1 -0
- package/docs/fr/cli/fill.md +1 -0
- package/docs/fr/configuration.md +10 -0
- package/docs/fr/intlayer_with_analog.md +369 -0
- package/docs/fr/intlayer_with_angular.md +11 -16
- package/docs/fr/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/hi/cli/doc-translate.md +1 -0
- package/docs/hi/cli/fill.md +1 -0
- package/docs/hi/configuration.md +10 -0
- package/docs/hi/intlayer_with_analog.md +371 -0
- package/docs/hi/intlayer_with_angular.md +12 -14
- package/docs/hi/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/id/cli/doc-translate.md +1 -0
- package/docs/id/cli/fill.md +1 -0
- package/docs/id/configuration.md +10 -0
- package/docs/id/intlayer_with_analog.md +371 -0
- package/docs/id/intlayer_with_angular.md +12 -14
- package/docs/id/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/it/agent_skills.md +53 -0
- package/docs/it/cli/doc-translate.md +1 -0
- package/docs/it/cli/fill.md +1 -0
- package/docs/it/configuration.md +10 -0
- package/docs/it/intlayer_with_analog.md +371 -0
- package/docs/it/intlayer_with_angular.md +12 -14
- package/docs/it/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ja/agent_skills.md +53 -0
- package/docs/ja/cli/doc-translate.md +1 -0
- package/docs/ja/cli/fill.md +1 -0
- package/docs/ja/configuration.md +10 -0
- package/docs/ja/intlayer_with_analog.md +365 -0
- package/docs/ja/intlayer_with_angular.md +12 -14
- package/docs/ja/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ko/agent_skills.md +53 -0
- package/docs/ko/cli/doc-translate.md +1 -0
- package/docs/ko/cli/fill.md +1 -0
- package/docs/ko/configuration.md +10 -0
- package/docs/ko/intlayer_with_analog.md +365 -0
- package/docs/ko/intlayer_with_angular.md +12 -14
- package/docs/ko/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/pl/cli/doc-translate.md +1 -0
- package/docs/pl/cli/fill.md +1 -0
- package/docs/pl/configuration.md +10 -0
- package/docs/pl/intlayer_with_analog.md +371 -0
- package/docs/pl/intlayer_with_angular.md +12 -14
- package/docs/pl/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/pt/agent_skills.md +53 -0
- package/docs/pt/cli/doc-translate.md +1 -0
- package/docs/pt/cli/fill.md +1 -0
- package/docs/pt/configuration.md +10 -0
- package/docs/pt/intlayer_with_analog.md +371 -0
- package/docs/pt/intlayer_with_angular.md +12 -14
- package/docs/pt/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ru/cli/doc-translate.md +1 -0
- package/docs/ru/cli/fill.md +1 -0
- package/docs/ru/configuration.md +18 -0
- package/docs/ru/intlayer_with_analog.md +371 -0
- package/docs/ru/intlayer_with_angular.md +12 -14
- package/docs/ru/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/tr/cli/doc-translate.md +1 -0
- package/docs/tr/cli/fill.md +1 -0
- package/docs/tr/configuration.md +10 -0
- package/docs/tr/intlayer_with_analog.md +365 -0
- package/docs/tr/intlayer_with_angular.md +12 -14
- package/docs/tr/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/uk/cli/doc-translate.md +1 -0
- package/docs/uk/cli/fill.md +1 -0
- package/docs/uk/configuration.md +10 -0
- package/docs/uk/intlayer_with_analog.md +365 -0
- package/docs/uk/intlayer_with_angular.md +12 -14
- package/docs/uk/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/vi/configuration.md +10 -0
- package/docs/vi/intlayer_with_analog.md +365 -0
- package/docs/vi/intlayer_with_angular.md +12 -14
- package/docs/vi/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/zh/agent_skills.md +53 -0
- package/docs/zh/configuration.md +10 -0
- package/docs/zh/intlayer_with_analog.md +365 -0
- package/docs/zh/intlayer_with_angular.md +12 -14
- package/docs/zh/packages/solid-intlayer/useIntlayer.md +1 -1
- package/package.json +8 -8
- package/src/generated/docs.entry.ts +20 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-04-18
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Analog i18n - Cómo traducir tu aplicación Analog – guía 2026
|
|
5
|
+
description: Descubre cómo hacer que tu aplicación Analog sea multilingüe. Sigue la documentación para internacionalizarla (i18n) y traducirla.
|
|
6
|
+
keywords:
|
|
7
|
+
- Internacionalización
|
|
8
|
+
- Documentación
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Analog
|
|
11
|
+
- Angular
|
|
12
|
+
- JavaScript
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- entorno
|
|
16
|
+
- analog
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer/tree/main/examples/analog-app-template
|
|
18
|
+
history:
|
|
19
|
+
- version: 8.0.4
|
|
20
|
+
date: 2026-01-26
|
|
21
|
+
changes: Inicio del historial
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Traduce tu aplicación Analog (Angular) con Intlayer | Internacionalización (i18n)
|
|
25
|
+
|
|
26
|
+
## Tabla de contenidos
|
|
27
|
+
|
|
28
|
+
<TOC/>
|
|
29
|
+
|
|
30
|
+
## ¿Qué es Intlayer?
|
|
31
|
+
|
|
32
|
+
**Intlayer** es una biblioteca de internacionalización (i18n) innovadora y de código abierto diseñada para simplificar el soporte multilingüe en aplicaciones web modernas.
|
|
33
|
+
|
|
34
|
+
Con Intlayer, puedes:
|
|
35
|
+
|
|
36
|
+
- **Gestionar fácilmente las traducciones** utilizando diccionarios declarativos a nivel de componente.
|
|
37
|
+
- **Localizar dinámicamente metadatos**, rutas y contenido.
|
|
38
|
+
- **Garantizar el soporte de TypeScript** con tipos autogenerados, mejorando el autocompletado y la detección de errores.
|
|
39
|
+
- **Beneficiarte de funciones avanzadas**, como la detección y el cambio dinámico de idioma.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Guía paso a paso para configurar Intlayer en una aplicación Analog
|
|
44
|
+
|
|
45
|
+
<Tabs defaultTab="code">
|
|
46
|
+
<Tab label="Código" value="code">
|
|
47
|
+
|
|
48
|
+
<iframe
|
|
49
|
+
src="https://stackblitz.com/github/aymericzip/intlayer/tree/main/examples/vite-analog-app?embed=1&ctl=1&file=intlayer.config.ts"
|
|
50
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
51
|
+
title="Demo CodeSandbox - Cómo internacionalizar tu aplicación usando Intlayer"
|
|
52
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
53
|
+
loading="lazy"
|
|
54
|
+
/>
|
|
55
|
+
|
|
56
|
+
</Tab>
|
|
57
|
+
</Tabs>
|
|
58
|
+
|
|
59
|
+
Ver [Plantilla de Aplicación](https://github.com/aymericzip/intlayer/tree/main/examples/analog-app-template) en GitHub.
|
|
60
|
+
|
|
61
|
+
### Paso 1: Instalar dependencias
|
|
62
|
+
|
|
63
|
+
Instala los paquetes necesarios usando npm:
|
|
64
|
+
|
|
65
|
+
```bash packageManager="npm"
|
|
66
|
+
npm install intlayer angular-intlayer vite-intlayer
|
|
67
|
+
npx intlayer init
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```bash packageManager="pnpm"
|
|
71
|
+
pnpm add intlayer angular-intlayer vite-intlayer
|
|
72
|
+
pnpm intlayer init
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```bash packageManager="yarn"
|
|
76
|
+
yarn add intlayer angular-intlayer vite-intlayer
|
|
77
|
+
yarn intlayer init
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```bash packageManager="bun"
|
|
81
|
+
bun add intlayer angular-intlayer vite-intlayer
|
|
82
|
+
bunx intlayer init
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- **intlayer**
|
|
86
|
+
|
|
87
|
+
El paquete principal que proporciona herramientas de internacionalización para la gestión de la 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 de CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/cli/index.md).
|
|
88
|
+
|
|
89
|
+
- **angular-intlayer**
|
|
90
|
+
El paquete que integra Intlayer con la aplicación Angular. Proporciona proveedores de contexto y hooks para la internacionalización de Angular.
|
|
91
|
+
|
|
92
|
+
- **vite-intlayer**
|
|
93
|
+
El paquete que integra Intlayer con Vite. Proporciona un complemento para manejar archivos de declaración de contenido y establece alias para un rendimiento óptimo.
|
|
94
|
+
|
|
95
|
+
### Paso 2: Configuración de tu proyecto
|
|
96
|
+
|
|
97
|
+
Crea un archivo de configuración para configurar los idiomas de tu aplicación:
|
|
98
|
+
|
|
99
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
100
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
101
|
+
|
|
102
|
+
const config: IntlayerConfig = {
|
|
103
|
+
internationalization: {
|
|
104
|
+
locales: [
|
|
105
|
+
Locales.ENGLISH,
|
|
106
|
+
Locales.FRENCH,
|
|
107
|
+
Locales.SPANISH,
|
|
108
|
+
// Tus otros idiomas
|
|
109
|
+
],
|
|
110
|
+
defaultLocale: Locales.ENGLISH,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export default config;
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
118
|
+
import { Locales } from "intlayer";
|
|
119
|
+
|
|
120
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
121
|
+
const config = {
|
|
122
|
+
internationalization: {
|
|
123
|
+
locales: [
|
|
124
|
+
Locales.ENGLISH,
|
|
125
|
+
Locales.FRENCH,
|
|
126
|
+
Locales.SPANISH,
|
|
127
|
+
// Tus otros idiomas
|
|
128
|
+
],
|
|
129
|
+
defaultLocale: Locales.ENGLISH,
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default config;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
137
|
+
const { Locales } = require("intlayer");
|
|
138
|
+
|
|
139
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
140
|
+
const config = {
|
|
141
|
+
internationalization: {
|
|
142
|
+
locales: [
|
|
143
|
+
Locales.ENGLISH,
|
|
144
|
+
Locales.FRENCH,
|
|
145
|
+
Locales.SPANISH,
|
|
146
|
+
// Tus otros idiomas
|
|
147
|
+
],
|
|
148
|
+
defaultLocale: Locales.ENGLISH,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
module.exports = config;
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
> 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).
|
|
156
|
+
|
|
157
|
+
### Paso 3: Integrar Intlayer en tu configuración de Vite
|
|
158
|
+
|
|
159
|
+
Para integrar Intlayer con Analog, necesitas usar el complemento `vite-intlayer`.
|
|
160
|
+
|
|
161
|
+
Modifica tu archivo `vite.config.ts`:
|
|
162
|
+
|
|
163
|
+
```typescript fileName="vite.config.ts"
|
|
164
|
+
import { defineConfig } from "vite";
|
|
165
|
+
import { intlayer } from "vite-intlayer";
|
|
166
|
+
import analog from "@analogjs/platform";
|
|
167
|
+
|
|
168
|
+
// https://vitejs.dev/config/
|
|
169
|
+
export default defineConfig(() => ({
|
|
170
|
+
plugins: [
|
|
171
|
+
analog(),
|
|
172
|
+
intlayer(), // Añadir el complemento Intlayer
|
|
173
|
+
],
|
|
174
|
+
}));
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
> El complemento `intlayer()` configura Vite con Intlayer. Maneja los archivos de declaración de contenido y establece alias para un rendimiento óptimo.
|
|
178
|
+
|
|
179
|
+
### Paso 4: Declarar tu contenido
|
|
180
|
+
|
|
181
|
+
Crea y gestiona tus declaraciones de contenido para almacenar traducciones:
|
|
182
|
+
|
|
183
|
+
```tsx fileName="src/app/app.content.ts" contentDeclarationFormat="typescript"
|
|
184
|
+
import { t, type Dictionary } from "intlayer";
|
|
185
|
+
|
|
186
|
+
const appContent = {
|
|
187
|
+
key: "app",
|
|
188
|
+
content: {
|
|
189
|
+
title: t({
|
|
190
|
+
en: "Hello",
|
|
191
|
+
fr: "Bonjour",
|
|
192
|
+
es: "Hola",
|
|
193
|
+
}),
|
|
194
|
+
congratulations: t({
|
|
195
|
+
en: "Congratulations! Your app is running. 🎉",
|
|
196
|
+
fr: "Félicitations! Votre application est en cours d'exécution. 🎉",
|
|
197
|
+
es: "¡Felicidades! Tu aplicación está en ejecución. 🎉",
|
|
198
|
+
}),
|
|
199
|
+
},
|
|
200
|
+
} satisfies Dictionary;
|
|
201
|
+
|
|
202
|
+
export default appContent;
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
> Tus declaraciones de contenido se pueden definir en cualquier lugar de tu aplicación, siempre que se incluyan en el directorio `contentDir` (por defecto, `./src`). Y coincidan con la extensión del archivo de declaración de contenido (por defecto, `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
|
|
206
|
+
|
|
207
|
+
> Para más detalles, consulta la [documentación de declaración de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/content_file.md).
|
|
208
|
+
|
|
209
|
+
### Paso 5: Utilizar Intlayer en tu código
|
|
210
|
+
|
|
211
|
+
Para utilizar las funciones de internacionalización de Intlayer en toda tu aplicación Analog, debes proporcionar Intlayer en la configuración de tu aplicación.
|
|
212
|
+
|
|
213
|
+
```typescript fileName="src/app/app.config.ts"
|
|
214
|
+
import { ApplicationConfig } from "@angular/core";
|
|
215
|
+
import { provideIntlayer } from "angular-intlayer";
|
|
216
|
+
|
|
217
|
+
export const appConfig: ApplicationConfig = {
|
|
218
|
+
providers: [
|
|
219
|
+
provideIntlayer(), // Añade el proveedor de Intlayer aquí
|
|
220
|
+
],
|
|
221
|
+
};
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Luego, puedes usar la función `useIntlayer` dentro de cualquier componente.
|
|
225
|
+
|
|
226
|
+
```typescript fileName="src/app/pages/index.page.ts"
|
|
227
|
+
import { Component } from "@angular/core";
|
|
228
|
+
import { useIntlayer } from "angular-intlayer";
|
|
229
|
+
|
|
230
|
+
@Component({
|
|
231
|
+
selector: "app-home",
|
|
232
|
+
standalone: true,
|
|
233
|
+
template: `
|
|
234
|
+
<div class="content">
|
|
235
|
+
<h1>{{ content().title }}</h1>
|
|
236
|
+
<p>{{ content().congratulations }}</p>
|
|
237
|
+
</div>
|
|
238
|
+
`,
|
|
239
|
+
})
|
|
240
|
+
export default class HomeComponent {
|
|
241
|
+
content = useIntlayer("app");
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
El contenido de Intlayer se devuelve como un `Signal`, por lo que accedes a los valores llamando al signal: `content().title`.
|
|
246
|
+
|
|
247
|
+
### (Opcional) Paso 6: Cambiar el idioma de tu contenido
|
|
248
|
+
|
|
249
|
+
Para cambiar el idioma de tu contenido, puedes usar la función `setLocale` proporcionada por la función `useLocale`. Esto te permite establecer la locale de la aplicación y actualizar el contenido en consecuencia.
|
|
250
|
+
|
|
251
|
+
Crea un componente para cambiar entre idiomas:
|
|
252
|
+
|
|
253
|
+
```typescript fileName="src/app/locale-switcher.component.ts"
|
|
254
|
+
import { Component } from "@angular/core";
|
|
255
|
+
import { CommonModule } from "@angular/common";
|
|
256
|
+
import { useLocale } from "angular-intlayer";
|
|
257
|
+
|
|
258
|
+
@Component({
|
|
259
|
+
selector: "app-locale-switcher",
|
|
260
|
+
standalone: true,
|
|
261
|
+
imports: [CommonModule],
|
|
262
|
+
template: `
|
|
263
|
+
<div class="locale-switcher">
|
|
264
|
+
<select
|
|
265
|
+
[value]="locale()"
|
|
266
|
+
(change)="setLocale($any($event.target).value)"
|
|
267
|
+
>
|
|
268
|
+
@for (loc of availableLocales; track loc) {
|
|
269
|
+
<option [value]="loc">{{ loc }}</option>
|
|
270
|
+
}
|
|
271
|
+
</select>
|
|
272
|
+
</div>
|
|
273
|
+
`,
|
|
274
|
+
styles: [
|
|
275
|
+
`
|
|
276
|
+
.locale-switcher {
|
|
277
|
+
margin: 1rem;
|
|
278
|
+
padding: 0.5rem;
|
|
279
|
+
border: 1px solid #ccc;
|
|
280
|
+
border-radius: 4px;
|
|
281
|
+
width: fit-content;
|
|
282
|
+
}
|
|
283
|
+
`,
|
|
284
|
+
],
|
|
285
|
+
})
|
|
286
|
+
export class LocaleSwitcherComponent {
|
|
287
|
+
localeCtx = useLocale();
|
|
288
|
+
|
|
289
|
+
locale = this.localeCtx.locale;
|
|
290
|
+
availableLocales = this.localeCtx.availableLocales;
|
|
291
|
+
setLocale = this.localeCtx.setLocale;
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Luego, usa este componente en tus páginas:
|
|
296
|
+
|
|
297
|
+
```typescript fileName="src/app/pages/index.page.ts"
|
|
298
|
+
import { Component } from "@angular/core";
|
|
299
|
+
import { useIntlayer } from "angular-intlayer";
|
|
300
|
+
import { LocaleSwitcherComponent } from "../locale-switcher.component";
|
|
301
|
+
|
|
302
|
+
@Component({
|
|
303
|
+
selector: "app-home",
|
|
304
|
+
standalone: true,
|
|
305
|
+
imports: [LocaleSwitcherComponent],
|
|
306
|
+
template: `
|
|
307
|
+
<app-locale-switcher></app-locale-switcher>
|
|
308
|
+
<div class="content">
|
|
309
|
+
<h1>{{ content().title }}</h1>
|
|
310
|
+
<p>{{ content().congratulations }}</p>
|
|
311
|
+
</div>
|
|
312
|
+
`,
|
|
313
|
+
})
|
|
314
|
+
export default class HomeComponent {
|
|
315
|
+
content = useIntlayer("app");
|
|
316
|
+
}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Configurar TypeScript
|
|
320
|
+
|
|
321
|
+
Intlayer utiliza la aumentación de módulos para obtener los beneficios de TypeScript y fortalecer tu base de código.
|
|
322
|
+
|
|
323
|
+

|
|
324
|
+
|
|
325
|
+

|
|
326
|
+
|
|
327
|
+
Asegúrate de que tu configuración de TypeScript incluya los tipos autogenerados.
|
|
328
|
+
|
|
329
|
+
```json5 fileName="tsconfig.json"
|
|
330
|
+
{
|
|
331
|
+
// ... Tus configuraciones de TypeScript existentes
|
|
332
|
+
"include": [
|
|
333
|
+
// ... Tus configuraciones de TypeScript existentes
|
|
334
|
+
".intlayer/**/*.ts", // Incluir los tipos autogenerados
|
|
335
|
+
],
|
|
336
|
+
}
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Configuración de Git
|
|
340
|
+
|
|
341
|
+
Se recomienda ignorar los archivos generados por Intlayer. Esto te permite evitar subirlos a tu repositorio de Git.
|
|
342
|
+
|
|
343
|
+
Para hacer esto, puedes añadir las siguientes instrucciones a tu archivo `.gitignore`:
|
|
344
|
+
|
|
345
|
+
```plaintext
|
|
346
|
+
# Ignorar los archivos generados por Intlayer
|
|
347
|
+
.intlayer
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Extensión de VS Code
|
|
351
|
+
|
|
352
|
+
Para mejorar tu experiencia de desarrollo con Intlayer, puedes instalar la **Extensión oficial de Intlayer para VS Code**.
|
|
353
|
+
|
|
354
|
+
[Instalar desde el Marketplace de VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
355
|
+
|
|
356
|
+
Esta extensión proporciona:
|
|
357
|
+
|
|
358
|
+
- **Autocompletado** para las claves de traducción.
|
|
359
|
+
- **Detección de errores en tiempo real** para traductions faltantes.
|
|
360
|
+
- **Vistas previas en línea** del contenido traducido.
|
|
361
|
+
- **Acciones rápidas** para crear y actualizar traducciones fácilmente.
|
|
362
|
+
|
|
363
|
+
Para más detalles sobre cómo usar la extensión, consulta la [documentación de la extensión de Intlayer para VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
364
|
+
|
|
365
|
+
---
|
|
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).
|
|
@@ -166,30 +166,25 @@ Para integrar Intlayer con Angular CLI, necesitas usar un constructor (builder)
|
|
|
166
166
|
|
|
167
167
|
Primero, modifica tu `angular.json` para usar el constructor de Webpack personalizado. Actualiza las configuraciones de `build` y `serve`:
|
|
168
168
|
|
|
169
|
-
```
|
|
169
|
+
```json5 fileName="angular.json"
|
|
170
170
|
{
|
|
171
171
|
"projects": {
|
|
172
172
|
"nombre-de-tu-app": {
|
|
173
173
|
"architect": {
|
|
174
174
|
"build": {
|
|
175
|
-
"builder": "@angular-builders/custom-webpack:browser",
|
|
175
|
+
"builder": "@angular-builders/custom-webpack:browser", // replace "@angular-devkit/build-angular:application",
|
|
176
176
|
"options": {
|
|
177
177
|
"customWebpackConfig": {
|
|
178
|
-
"path": "./webpack.config.ts"
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
"path": "./webpack.config.ts",
|
|
179
|
+
"mergeStrategies": { "module.rules": "prepend" },
|
|
180
|
+
},
|
|
181
|
+
"main": "src/main.ts", // replace "browser": "src/main.ts",
|
|
182
|
+
// ...
|
|
183
|
+
},
|
|
181
184
|
},
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
"customWebpackConfig": {
|
|
186
|
-
"path": "./webpack.config.ts"
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
},
|
|
193
188
|
}
|
|
194
189
|
```
|
|
195
190
|
|
|
@@ -33,7 +33,7 @@ El hook `useIntlayer` permite recuperar contenido localizado de un diccionario u
|
|
|
33
33
|
import { useIntlayer } from "solid-intlayer";
|
|
34
34
|
|
|
35
35
|
const MyComponent = () => {
|
|
36
|
-
const content = useIntlayer("
|
|
36
|
+
const content = useIntlayer("my-dictionary-key");
|
|
37
37
|
|
|
38
38
|
return (
|
|
39
39
|
<div>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-09
|
|
3
|
+
updatedAt: 2026-02-09
|
|
4
|
+
title: Compétences de l'agent
|
|
5
|
+
description: Apprenez à utiliser les compétences de l'agent Intlayer pour améliorer la compréhension de votre projet par votre agent IA.
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- Compétences de l'agent
|
|
9
|
+
- Agent IA
|
|
10
|
+
- Internationalisation
|
|
11
|
+
- Documentation
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- agent_skills
|
|
15
|
+
history:
|
|
16
|
+
- version: 8.0.4
|
|
17
|
+
date: 2026-02-09
|
|
18
|
+
changes: Initialiser l'historique
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## La commande `intlayer init skills`
|
|
22
|
+
|
|
23
|
+
La commande `intlayer init skills` est le moyen le plus simple de configurer les compétences de l'agent dans votre projet. Elle détecte votre environnement et installe les fichiers de configuration nécessaires pour vos plateformes préférées.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx intlayer init skills
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Lorsque vous exécutez cette commande, elle :
|
|
30
|
+
|
|
31
|
+
1. Détecte le framework que vous utilisez (ex: Next.js, React, Vite).
|
|
32
|
+
2. Vous demande pour quelles plateformes vous souhaitez installer des compétences (Cursor, VS Code, OpenCode, Claude Code, etc.).
|
|
33
|
+
3. Génère les fichiers de configuration requis (tels que `.cursor/mcp.json`, `.vscode/mcp.json` ou `.intlayer/skills/*.md`).
|
|
34
|
+
|
|
35
|
+
## Plateformes supportées
|
|
36
|
+
|
|
37
|
+
Intlayer supporte l'intégration avec les plateformes suivantes :
|
|
38
|
+
|
|
39
|
+
### 1. Cursor
|
|
40
|
+
|
|
41
|
+
Cursor supporte les serveurs MCP (Model Context Protocol). L'exécution de `intlayer init skills` créera un fichier `.cursor/mcp.json` qui permet à Cursor de communiquer avec le serveur MCP d'Intlayer.
|
|
42
|
+
|
|
43
|
+
### 2. VS Code
|
|
44
|
+
|
|
45
|
+
Pour les utilisateurs de VS Code, en particulier ceux utilisant GitHub Copilot ou d'autres extensions compatibles MCP, la commande crée une configuration `.vscode/mcp.json`.
|
|
46
|
+
|
|
47
|
+
### 3. OpenCode
|
|
48
|
+
|
|
49
|
+
OpenCode est un agent CLI interactif conçu pour les tâches d'ingénierie logicielle. Intlayer fournit des compétences spécifiques pour aider OpenCode à vous assister dans vos tâches d'internationalisation.
|
|
50
|
+
|
|
51
|
+
### 4. Claude Code
|
|
52
|
+
|
|
53
|
+
Claude Code peut être configuré pour utiliser les compétences d'Intlayer en ajoutant les configurations générées à ses paramètres de bureau ou CLI.
|
|
@@ -86,6 +86,7 @@ npx intlayer doc translate
|
|
|
86
86
|
- **`--temperature [temperature]`** : Paramètre de température pour le modèle d'IA.
|
|
87
87
|
- **`--api-key [apiKey]`** : Fournir votre propre clé API pour le service d'IA.
|
|
88
88
|
- **`--application-context [applicationContext]`** : Fournir un contexte supplémentaire pour la traduction par IA.
|
|
89
|
+
- **`--data-serialization [dataSerialization]`** : Le format de sérialisation des données à utiliser pour les fonctionnalités d'IA d'Intlayer. Options : `json` (standard, fiable), `toon` (moins de tokens, moins cohérent).
|
|
89
90
|
- **`--custom-prompt [prompt]`** : Personnalisez le prompt de base utilisé pour la traduction. (Remarque : Pour la plupart des cas d'utilisation, l'option `--custom-instructions` est recommandée car elle offre un meilleur contrôle sur le comportement de la traduction.)
|
|
90
91
|
|
|
91
92
|
> Exemple : `npx intlayer doc translate --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "Mon application est une boutique de chats"`
|
package/docs/fr/cli/fill.md
CHANGED
|
@@ -126,6 +126,7 @@ Affected dictionary keys for processing: app, comp-test, hello-world, lang-switc
|
|
|
126
126
|
- **`--api-key [apiKey]`** : Fournir votre propre clé API pour le service d’IA.
|
|
127
127
|
- **`--custom-prompt [prompt]`** : Fournir une invite personnalisée pour vos instructions de traduction.
|
|
128
128
|
- **`--application-context [applicationContext]`** : Fournir un contexte supplémentaire pour la traduction par IA.
|
|
129
|
+
- **`--data-serialization [dataSerialization]`** : Le format de sérialisation des données à utiliser pour les fonctionnalités d'IA d'Intlayer. Options : `json` (standard, fiable), `toon` (moins de tokens, moins cohérent).
|
|
129
130
|
|
|
130
131
|
> Exemple : `npx intlayer fill --model gpt-3.5-turbo --provider openai --temperature 0.5 --api-key sk-1234567890 --application-context "Mon application est une boutique de chats"`
|
|
131
132
|
|
package/docs/fr/configuration.md
CHANGED
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.0.5
|
|
18
|
+
date: 2026-02-06
|
|
19
|
+
changes: Ajout de `dataSerialization` à la configuration de l'IA
|
|
17
20
|
- version: 8.0.0
|
|
18
21
|
date: 2026-01-22
|
|
19
22
|
changes: Move `importMode` build configuration to `dictionary` configuration.
|
|
@@ -901,6 +904,13 @@ Intlayer prend en charge plusieurs fournisseurs d'IA pour une flexibilité et un
|
|
|
901
904
|
- _Exemple_ : `'https://api.openai.com/v1'`
|
|
902
905
|
- _Note_ : Peut être utilisé pour pointer vers un point de terminaison d'API d'IA local ou personnalisé.
|
|
903
906
|
|
|
907
|
+
- **dataSerialization**:
|
|
908
|
+
- _Type_: `'json' | 'toon'`
|
|
909
|
+
- _Par défaut_: `'json'`
|
|
910
|
+
- _Description_: Le format de sérialisation des données à utiliser pour les fonctionnalités d'IA d'Intlayer.
|
|
911
|
+
- _Exemple_: `'toon'`
|
|
912
|
+
- _Note_: `json`: Standard, fiable ; utilise plus de tokens. `toon`: Moins de tokens, moins cohérent que le JSON.
|
|
913
|
+
|
|
904
914
|
### Configuration de la compilation
|
|
905
915
|
|
|
906
916
|
Paramètres qui contrôlent la manière dont Intlayer optimise et construit l'internationalisation de votre application.
|