Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Actualizar el uso de la API useIntlayer de Solid al acceso directo a propiedades"v8.9.04/5/2026
- "Lanzamiento de versión estable"v8.0.026/1/2026
- "Añadir comando init"v8.0.030/12/2025
- "Historial inicial"v5.5.1029/6/2025
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésSi tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.
Enlace de GitHub a la documentaciónCopiar el Markdown del documento a la portapapeles
Traduce tu sitio Angular 21 (Vite) usando Intlayer | Internacionalización (i18n)
Tabla de Contenidos
¿Qué es Intlayer?
Intlayer es una biblioteca innovadora de internacionalización (i18n) de código abierto diseñada para simplificar el soporte multilingüe en aplicaciones web modernas.
Con Intlayer, puedes:
- Gestionar fácilmente las traducciones usando diccionarios declarativos a nivel de componente.
- Localizar dinámicamente metadatos, rutas y contenido.
- Garantizar el soporte de TypeScript con tipos autogenerados, mejorando el autocompletado y la detección de errores.
- Beneficiarte de características avanzadas, como la detección y cambio dinámico de idioma.
Guía Paso a Paso para Configurar Intlayer en una Aplicación Angular
Ver la Plantilla de Aplicación en GitHub.
Paso 1: Instalar Dependencias
Instala los paquetes necesarios usando npm:
Copiar el código al portapapeles
npm install intlayer angular-intlayernpm install @angular-builders/custom-esbuild --save-devnpx intlayer initintlayer
El paquete central que proporciona herramientas de internacionalización para la gestión de configuraciones, traducción, declaración de contenido, transpilación y comandos CLI.
angular-intlayer El paquete que integra Intlayer con la aplicación Angular. Proporciona proveedores de contexto y hooks para la internacionalización en Angular.
@angular-builders/custom-esbuild Requerido para personalizar la configuración esbuild de Angular CLI.
Paso 2: Configuración de tu proyecto
Crea un archivo de configuración para establecer los idiomas de tu aplicación:
Copiar el código al portapapeles
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [
Locales.ENGLISH,
Locales.FRENCH,
Locales.SPANISH,
// Tus otros idiomas
],
defaultLocale: Locales.ENGLISH,
},
};
export default config;A través de este archivo de configuración, puedes establecer URLs localizadas, redirección de middleware, nombres de cookies, la ubicación y extensión de tus declaraciones de contenido, desactivar los logs 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.
Paso 3: Integrar Intlayer en tu Configuración Angular
Para integrar Intlayer con la CLI de Angular, necesitas usar un constructor (builder) personalizado. Esta guía asume que estás usando Vite/esbuild (por defecto para proyectos Angular 21).
Primero, modifica tu angular.json para usar el constructor esbuild personalizado. Actualiza las configuraciones build y serve:
Copiar el código al portapapeles
{ "projects": { "your-app-name": { "architect": { "build": { "builder": "@angular-builders/custom-esbuild:application", // replace "@angular/build:application" "options": { "define": { "process.env": "{}", }, "plugins": ["./esbuild.plugins.ts"], "browser": "src/main.ts", // ... }, }, "serve": { "builder": "@angular-builders/custom-esbuild:dev-server", // replace "@angular/build:dev-server" "options": { "prebundle": { "exclude": [ "intlayer", "angular-intlayer", "@intlayer/config/built", "@intlayer/core" ] }, }, }, }, },}Asegúrate de reemplazaryour-app-namecon el nombre real de tu proyecto enangular.json.
Luego, crea un archivo esbuild.plugins.ts en la raíz de tu proyecto:
Copiar el código al portapapeles
import { intlayerEsbuildPlugin } from "angular-intlayer/esbuild";export default [intlayerEsbuildPlugin()];La función intlayerEsbuildPlugin configura esbuild con Intlayer. Inyecta el plugin para manejar los archivos de declaración de contenido y establece las configuraciones para un rendimiento óptimo.
Usuarios de NX: Los constructores de Angular de NX cargan archivos de complementos a través de la resolución ESM nativa de Node y no compilan archivos de complementos de TypeScript sobre la marcha. Use un archivo
.mjsen su lugar y actualice la referencia depluginsenangular.jsonen consecuencia:esbuild.plugins.mjsCopiar códigoCopiar el código al portapapeles
import { intlayerEsbuildPlugin } from "angular-intlayer/esbuild";export default [intlayerEsbuildPlugin()];Luego, en
angular.json, apunte a"./esbuild.plugins.mjs"en lugar de"./esbuild.plugins.ts".
Paso 4: Declara tu Contenido
Crea y gestiona tus declaraciones de contenido para almacenar las traducciones:
Tus declaraciones de contenido pueden definirse en cualquier lugar de tu aplicación siempre que estén incluidas en el directoriocontentDir(por defecto,./src). Y que coincidan con la extensión del archivo de declaración de contenido (por defecto,.content.{json,ts,tsx,js,jsx,mjs,cjs}).
Para más detalles, consulta la documentación de declaración de contenido.
Paso 5: Utiliza Intlayer en tu Código
Para utilizar las características de internacionalización de Intlayer en toda tu aplicación Angular, necesitas proveer Intlayer en la configuración de tu aplicación.
Copiar el código al portapapeles
import { ApplicationConfig } from "@angular/core";import { provideRouter } from "@angular/router";import { provideIntlayer } from "angular-intlayer";import { routes } from "./app.routes";export const appConfig: ApplicationConfig = { providers: [ provideRouter(routes), provideIntlayer(), // Añade el proveedor de Intlayer aquí ],};Luego, puedes usar la función useIntlayer dentro de cualquier componente.
Copiar el código al portapapeles
import { Component } from "@angular/core";import { RouterOutlet } from "@angular/router";import { useIntlayer } from "angular-intlayer";@Component({ selector: "app-root", standalone: true, imports: [RouterOutlet], templateUrl: "./app.component.html", styleUrl: "./app.component.css",})export class AppComponent { content = useIntlayer("app");}Y en tu plantilla:
Copiar el código al portapapeles
<div class="content"> <h1>{{ content().title }}</h1> <p>{{ content().congratulations }}</p></div>El contenido de Intlayer se devuelve como una Señal (Signal), por lo que accedes a los valores llamando a la señal: content().title.
(Opcional) Paso 6: Cambia el idioma de tu contenido
Para cambiar el idioma de tu contenido, puedes usar la función setLocale proporcionada por la función useLocale. Esto te permite establecer el idioma de la aplicación y actualizar el contenido en consecuencia.
Crea un componente para cambiar entre idiomas:
Copiar el código al portapapeles
import { Component } from "@angular/core";import { CommonModule } from "@angular/common";import { useLocale } from "angular-intlayer";@Component({ selector: "app-locale-switcher", standalone: true, imports: [CommonModule], template: ` <div class="locale-switcher"> <select [value]="locale()" (change)="setLocale($any($event.target).value)" > @for (loc of availableLocales; track loc) { <option [value]="loc">{{ loc }}</option> } </select> </div> `,})export class LocaleSwitcherComponent { localeCtx = useLocale(); locale = this.localeCtx.locale; availableLocales = this.localeCtx.availableLocales; setLocale = this.localeCtx.setLocale;}Luego, usa este componente en tu app.component.ts:
Copiar el código al portapapeles
import { Component } from "@angular/core";import { RouterOutlet } from "@angular/router";import { useIntlayer } from "angular-intlayer";import { LocaleSwitcherComponent } from "./locale-switcher.component";@Component({ selector: "app-root", standalone: true, imports: [RouterOutlet, LocaleSwitcherComponent], templateUrl: "./app.component.html", styleUrl: "./app.component.css",})export class AppComponent { content = useIntlayer("app");}Configurar TypeScript
Intlayer utiliza el aumento de módulos para aprovechar los beneficios de TypeScript y hacer que tu base de código sea más sólida.


Asegúrate de que tu configuración de TypeScript incluya los tipos autogenerados.
Copiar el código al portapapeles
{ // ... Tus configuraciones existentes de TypeScript "include": [ // ... Tus configuraciones existentes de TypeScript ".intlayer/**/*.ts", // Incluir los tipos autogenerados ],}Configuración Git
Se recomienda ignorar los archivos generados por Intlayer. Esto te permite evitar subirlos a tu repositorio de Git.
Para hacer esto, puedes añadir las siguientes instrucciones a tu archivo .gitignore:
Copiar el código al portapapeles
# Ignorar los archivos generados por Intlayer.intlayerExtensión de VS Code
Para mejorar tu experiencia de desarrollo con Intlayer, puedes instalar la Extensión oficial de Intlayer para VS Code.
Instalar desde el Marketplace de VS Code
Esta extensión proporciona:
- Autocompletado para las claves de traducción.
- Detección de errores en tiempo real para traducciones faltantes.
- Vistas previas en línea del contenido traducido.
- Acciones rápidas para crear y actualizar fácilmente las traducciones.
Para más detalles sobre cómo usar la extensión, consulta la documentación de la Extensión de VS Code de Intlayer.
Ir más allá
Para ir más allá, puedes implementar el editor visual o externalizar tu contenido usando el CMS.