InicioEntorno de pruebasExhibiciónAppDocBlog
    • Englishinglés
      EN
    • русскийruso
      RU
    • 日本語japonés
      JA
    • françaisfrancés
      FR
    • 한국어coreano
      KO
    • 中文chino
      ZH
    • españolespañol
      ES
    • Deutschalemán
      DE
    • العربيةárabe
      AR
    • italianoitaliano
      IT
    • British Englishinglés británico
      EN-GB
    • portuguêsportugués
      PT
    • हिन्दीhindi
      HI
    • Türkçeturco
      TR
    • polskipolaco
      PL
    • Indonesiaindonesio
      ID
    • Tiếng Việtvietnamita
      VI
    • українськаucraniano
      UK
    /
    Filtrar documentación por framework
    Alt+←
    ¿Por qué Intlayer?
    Empezar
    Concepto
    • Cómo funciona Intlayer
    • Configuración
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visual
    • CMS
    • Integración CI/CD
    • TraducciónPluralEnumeraciónCondiciónGéneroInserciónArchivoAnidaciónMarkdownHTMLObtención de función
    • Archivo por locale
    • Compilador
    • Autocompletado
    • Pruebas
    • Optimización de bundle
    Entornos
    • Next.js 14 y App Router
      Next.js 15
      Next.js sin locale URL
      Next.js y Page Router
      Compiler
    • Tanstack Start Solid
    • Astro y React
      Astro y Svelte
      Astro y Vue
      Astro y Solid
      Astro y Preact
      Astro y Lit
      Astro y Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt y Vue
    • Vite y Solid
    • SvelteKit
    • Vite y Preact
    • Vite y Vanilla JS
    • Vite y Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native y Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx y React
    Plugins
    • JSON
    • gettext (.po)
    Extensión VS Code
    Agente
    • Servidor MCP
    • Habilidades del agente
    Versiones
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Preguntar una pregunta
    1. Documentation
    2. ¿Por qué Intlayer?
    Creación:2024-08-14Última actualización:2025-09-27
    Referencia esta doc a tu asistente AI favorito
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    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

    1. "Lanzamiento del Compilador"
      v7.3.127/11/2025
    2. "Actualización de la tabla comparativa"
      v5.8.019/8/2025
    3. "Inicio del historial"
      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és
    Editar esta documentación

    Si tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.

    Enlace de GitHub a la documentación
    Copiar

    Copiar el Markdown del documento a la portapapeles

    ¿Por qué deberías considerar Intlayer?

    ¿Qué es Intlayer?

    Intlayer es una biblioteca de internacionalización diseñada específicamente para desarrolladores de JavaScript. Permite la declaración de tu contenido en cualquier parte de tu código. Convierte las declaraciones de contenido multilingüe en diccionarios estructurados para integrarlos fácilmente en tu código. Usando TypeScript, Intlayer hace que tu desarrollo sea más sólido y eficiente.

    ¿Por qué se creó Intlayer?

    Intlayer fue creado para resolver un problema común que afecta a todas las bibliotecas i18n comunes como next-intl, react-i18next, react-intl, next-i18next, react-intl y vue-i18n.

    Todas estas soluciones adoptan un enfoque centralizado para listar y gestionar tu contenido. Por ejemplo:

    bash
    Copiar código

    Copiar el código al portapapeles

    .├── locales│   ├── en.json│   ├── fr.json│   └── es.json├── i18n.ts└── src    └── components        └── MyComponent            └── index.tsx

    O aquí usando espacios de nombres:

    bash
    Copiar código

    Copiar el código al portapapeles

    .├── locales│   ├── en│   │  ├── footer.json│   │  └── navbar.json│   ├── fr│   │  ├── footer.json│   │  └── navbar.json│   └── es│      ├── footer.json│      └── navbar.json├── i18n.ts└── src    └── components        └── MyComponent            └── index.tsx

    Este tipo de arquitectura ralentiza el proceso de desarrollo y hace que la base de código sea más compleja de mantener por varias razones:

    1. Para cualquier nuevo componente creado, debes:

      • Crear el nuevo recurso/espacio de nombres en la carpeta locales
      • Recordar importar el nuevo espacio de nombres en tu página
      • Traducir tu contenido (a menudo hecho manualmente copiando/pegando desde proveedores de IA)
    2. Para cualquier cambio realizado en tus componentes, debes:

      • Buscar el recurso/espacio de nombres relacionado (lejos del componente)
      • Traducir tu contenido
      • Asegurarte de que tu contenido esté actualizado para cualquier localización
      • Verificar que tu espacio de nombres no incluya claves/valores sin usar
      • Asegurarte de que la estructura de tus archivos JSON sea la misma para todas las localizaciones

    En proyectos profesionales que utilizan estas soluciones, a menudo se emplean plataformas de localización para ayudar a gestionar la traducción de tu contenido. Sin embargo, esto puede volverse rápidamente costoso para proyectos grandes.

    Para resolver este problema, Intlayer adopta un enfoque que delimita tu contenido por componente y mantiene tu contenido cerca de tu componente, como a menudo hacemos con CSS (styled-components), tipos, documentación (storybook) o pruebas unitarias (jest).

    bash
    Copiar código

    Copiar el código al portapapeles

    .└── components    └── MyComponent        ├── index.content.ts        ├── index.test.tsx        ├── index.stories.tsx        └── index.tsx
    ./components/MyComponent/index.content.ts
    Copiar código

    Copiar el código al portapapeles

    import { t, type Dictionary } from "intlayer";
    
    const componentExampleContent = {
      key: "component-example",
      content: {
        myTranslatedContent: t({
          en: "Hello World",
          es: "Hola Mundo",
          fr: "Bonjour le monde",
        }),
      },
    } satisfies Dictionary;
    
    export default componentExampleContent;
    ./components/MyComponent/index.tsx
    Copiar código

    Copiar el código al portapapeles

    import { useIntlayer } from "react-intlayer";
    
    export const ComponentExample = () => {
      const { myTranslatedContent } = useIntlayer("component-example");
    
      return <span>{myTranslatedContent}</span>;
    };

    Este enfoque te permite:

    1. Aumentar la velocidad de desarrollo

      • Los archivos .content.{{ts|mjs|cjs|json}} pueden ser creados usando una extensión de VSCode
      • Las herramientas de autocompletado con IA en tu IDE (como GitHub Copilot) pueden ayudarte a declarar tu contenido, reduciendo el copiar/pegar
    2. Limpiar tu base de código

      • Reducir la complejidad
      • Incrementar la mantenibilidad
    3. Duplicar tus componentes y su contenido relacionado más fácilmente (Ejemplo: componentes de login/registro, etc.)

      • Limitando el riesgo de impactar el contenido de otros componentes
      • Copiando/pegando tu contenido de una aplicación a otra sin dependencias externas
    4. Evitar contaminar tu base de código con claves/valores no usados para componentes no usados

      • Si no usas un componente, Intlayer no importará su contenido relacionado
      • Si eliminas un componente, te será más fácil recordar eliminar su contenido relacionado ya que estará presente en la misma carpeta
    5. Reducir el costo de razonamiento para que los agentes de IA declaren tu contenido multilingüe

      • El agente de IA no tendrá que escanear toda tu base de código para saber dónde implementar tu contenido
      • Las traducciones pueden realizarse fácilmente mediante herramientas de autocompletado con IA en tu IDE (como GitHub Copilot)
    6. Optimizar el rendimiento de carga

      • Si un componente se carga de forma diferida, su contenido relacionado se cargará al mismo tiempo

    Características adicionales de Intlayer

    Mostrar todo el contenido de la tabla

    Abrir la tabla en una ventana flotante para ver todo el contenido claramente

    Funcionalidad Descripción
    Característica Compatibilidad entre Frameworks

    Intlayer es compatible con todos los principales frameworks y bibliotecas, incluyendo Next.js, React, Vite, Vue.js, Nuxt, Preact, Express y más.
    Característica Gestión de Contenido Potenciada por JavaScript

    Aprovecha la flexibilidad de JavaScript para definir y gestionar tu contenido de manera eficiente.

    - Declaración de contenido
    Característica Compilador

    El Compilador Intlayer extrae automáticamente el contenido de los componentes y genera los archivos de diccionario.

    - Compilador
    Característica Archivo de Declaración de Contenido por Localidad

    Acelera tu desarrollo declarando tu contenido una vez, antes de la generación automática.

    - Archivo de Declaración de Contenido por Localidad
    Característica Entorno con Tipos Seguros

    Aprovecha TypeScript para asegurar que tus definiciones de contenido y código estén libres de errores, además de beneficiarte de la autocompletación en el IDE.

    - Configuración de TypeScript
    Feature Configuración Simplificada

    Pon en marcha rápidamente con una configuración mínima. Ajusta fácilmente los ajustes para internacionalización, enrutamiento, IA, compilación y manejo de contenido.

    - Explora la integración con Next.js
    Feature Recuperación de Contenido Simplificada

    No es necesario llamar a tu función t para cada contenido. Recupera todo tu contenido directamente usando un solo hook.

    - Integración con React
    Feature Implementación Consistente de Componentes del Servidor

    Perfectamente adecuado para componentes del servidor de Next.js, utiliza la misma implementación tanto para componentes cliente como servidor, sin necesidad de pasar tu función t a través de cada componente del servidor.

    - Componentes del Servidor
    Feature Base de Código Organizada

    Mantén tu base de código más organizada: 1 componente = 1 diccionario en la misma carpeta. Las traducciones cercanas a sus respectivos componentes mejoran la mantenibilidad y claridad.

    - Cómo funciona Intlayer
    Feature Enrutamiento Mejorado

    Soporte completo para el enrutamiento de aplicaciones, adaptándose perfectamente a estructuras complejas de aplicaciones, para Next.js, React, Vite, Vue.js, etc.

    - Explorar la integración con Next.js
    Funcionalidad Soporte Markdown

    Importa e interpreta archivos de localización y Markdown remoto para contenido multilingüe como políticas de privacidad, documentación, etc. Interpreta y haz accesibles los metadatos de Markdown en tu código.

    - Archivos de contenido
    Feature Editor Visual y CMS Gratuitos

    Un editor visual y CMS gratuitos están disponibles para los redactores de contenido, eliminando la necesidad de una plataforma de localización. Mantén tu contenido sincronizado usando Git, o externalízalo total o parcialmente con el CMS.

    - Editor Intlayer
    - CMS Intlayer
    Feature Contenido Tree-shakable

    Contenido tree-shakable, que reduce el tamaño del paquete final. Carga contenido por componente, excluyendo cualquier contenido no utilizado de tu paquete. Soporta carga diferida para mejorar la eficiencia de carga de la aplicación.

    - Optimización de construcción de la aplicación
    Feature Renderizado Estático

    No bloquea el Renderizado Estático.

    - Integración con Next.js
    Feature Traducción impulsada por IA

    Transforma tu sitio web a 231 idiomas con un solo clic utilizando las avanzadas herramientas de traducción impulsadas por IA de Intlayer, usando tu propio proveedor de IA/clave API.

    - Integración CI/CD
    - CLI de Intlayer
    - Relleno automático
    Feature Integración del Servidor MCP

    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 tu entorno de desarrollo.

    - Servidor MCP
    Feature Extensión para VSCode

    Intlayer proporciona una extensión para VSCode que te ayuda a gestionar tu contenido y traducciones, construir tus diccionarios, traducir tu contenido y más.

    - Extensión para VSCode
    Funcionalidad Interoperabilidad

    Permite la interoperabilidad con react-i18next, next-i18next, next-intl y react-intl.

    - Intlayer y react-intl
    - Intlayer y next-intl
    - Intlayer y next-i18next
    Prueba de Traducciones Faltantes (CLI/CI) ✅ CLI: npx intlayer content test (auditoría compatible con CI)

    Comparación de Intlayer con otras soluciones

    Mostrar todo el contenido de la tabla

    Abrir la tabla en una ventana flotante para ver todo el contenido claramente

    Característica Intlayer React-i18next / i18next React-Intl (FormatJS) LinguiJS next-intl next-i18next vue-i18n
    Traducciones Cerca de los Componentes Sí, contenido colocalizado con cada componente No No No No No Sí - usando Componentes de Archivo Único (SFCs)
    Integración con TypeScript Avanzada, tipos estrictos generados automáticamente Básica; configuración adicional para seguridad Buena, pero menos estricta Tipos, necesita configuración Buena Básica Buena (tipos disponibles; la seguridad de claves requiere configuración)
    Detección de Traducción Faltante Error/advertencia en tiempo de compilación Principalmente cadenas de reserva en tiempo de ejecución Cadenas de reserva Requiere configuración adicional Reserva en tiempo de ejecución Reserva en tiempo de ejecución Reserva/advertencias en tiempo de ejecución (configurable)
    Contenido enriquecido (JSX/Markdown/componentes) Soporte directo, incluso nodos React Limitado / solo interpolación Sintaxis ICU, no JSX real Limitado No diseñado para nodos enriquecidos Limitado Limitado (componentes vía <i18n-t>, Markdown vía plugins)
    Traducción impulsada por IA Sí, soporta múltiples proveedores de IA. Usable con tus propias claves API. Considera el contexto de tu aplicación y el alcance del contenido No No No No No No
    Editor Visual Sí, Editor Visual local + CMS opcional; puede externalizar contenido de la base de código; embebible No / disponible a través de plataformas de localización externas No / disponible a través de plataformas de localización externas No / disponible a través de plataformas de localización externas No / disponible a través de plataformas de localización externas No / disponible a través de plataformas de localización externas No / disponible a través de plataformas de localización externas
    Enrutamiento Localizado Incorporado, con soporte de middleware Plugins o configuración manual No incorporado Plugin/configuración manual Incorporado Incorporado Manual a través de Vue Router (Nuxt i18n lo maneja)
    Generación Dinámica de Rutas Sí Plugin/ecosistema o configuración manual No proporcionado Plugin/manual Sí Sí No proporcionado (Nuxt i18n lo proporciona)
    Pluralización Patrones basados en enumeración; ver documentación Configurable (plugins como i18next-icu) Avanzado (ICU) Avanzado (ICU/messageformat) Bueno Bueno Avanzado (reglas de pluralización integradas)
    Formato (fechas, números, monedas) Formateadores optimizados (Intl en el núcleo) A través de plugins o uso personalizado de Intl Formateadores avanzados ICU Ayudantes ICU/CLI Bueno (ayudantes Intl) Bueno (ayudantes Intl) Formateadores integrados de fecha/número (Intl)
    Formato de Contenido .tsx, .ts, .js, .json, .md, .txt .json .json, .js .po, .json .json, .js, .ts .json .json, .js
    Soporte ICU En desarrollo (ICU nativo) A través de plugin (i18next-icu) Sí Sí Sí A través de plugin (i18next-icu) A través de formateador/compilador personalizado
    Ayudantes SEO (hreflang, sitemap) Herramientas integradas: ayudantes para sitemap, robots.txt, metadatos Plugins comunitarios/manual No es núcleo No es núcleo Bueno Bueno No es núcleo (Nuxt i18n proporciona ayudantes)
    Ecosistema / Comunidad Más pequeño pero creciendo rápido y reactivo El más grande y maduro Grande, empresarial En crecimiento, más pequeño Mediano, enfocado en Next.js Mediano, enfocado en Next.js Grande en el ecosistema Vue
    Renderizado del lado del servidor y Componentes de Servidor Sí, optimizado para SSR / Componentes de Servidor de React Soportado, se necesita algo de configuración Soportado en Next.js Soportado Soporte completo Soporte completo SSR a través de Nuxt/Vue SSR (sin RSC)
    Eliminación de código muerto (cargar solo el contenido usado) Sí, por componente en tiempo de compilación mediante plugins de Babel/SWC Usualmente carga todo (puede mejorarse con namespaces/división de código) Usualmente carga todo No es el valor predeterminado Parcial Parcial Parcial (con división de código/configuración manual)
    Carga diferida Sí, por localización/por componente Sí (por ejemplo, backends/namespaces bajo demanda) Sí (división de paquetes por localización) Sí (importaciones dinámicas de catálogos) Sí (por ruta/por localización) Sí (por ruta/por localización) Sí (mensajes de localización asíncronos)
    Gestión de Proyectos Grandes Fomenta la modularidad, adecuado para sistemas de diseño Requiere buena disciplina de archivos Los catálogos centrales pueden volverse grandes Puede volverse complejo Modular con configuración Modular con configuración Modular con configuración de Vue Router/Nuxt i18n

    Estrellas de GitHub

    Las estrellas de GitHub son un fuerte indicador de la popularidad de un proyecto, la confianza de la comunidad y la relevancia a largo plazo. Si bien no son una medida directa de la calidad técnica, reflejan cuántos desarrolladores encuentran útil el proyecto, siguen su progreso y es probable que lo adopten. Para estimar el valor de un proyecto, las estrellas ayudan a comparar la tracción entre alternativas y brindan información sobre el crecimiento del ecosistema.

    Star History Chart


    Interoperabilidad

    intlayer también puede ayudar a gestionar tus espacios de nombres react-intl, react-i18next, next-intl, next-i18next y vue-i18n.

    Usando intlayer, puedes declarar tu contenido en el formato de tu biblioteca i18n favorita, e intlayer generará tus espacios de nombres en la ubicación de tu elección (ejemplo: /messages/{{locale}}/{{namespace}}.json).

    Empezar
    Alt+→

    En esta página

      Las conversaciones son anónimas y se revisan regularmente para abordar problemas comunes. No dudes en compartir ideas de funcionalidades, comentarios sobre la documentación o cualquier cosa relacionada con Intlayer, usamos esta información para definir nuestra hoja de ruta y mejorar el producto.

      .├── locales│   ├── en.json│   ├── fr.json│   └── es.json├── i18n.ts└── src    └── components        └── MyComponent            └── index.tsx
      .├── locales│   ├── en│   │  ├── footer.json│   │  └── navbar.json│   ├── fr│   │  ├── footer.json│   │  └── navbar.json│   └── es│      ├── footer.json│      └── navbar.json├── i18n.ts└── src    └── components        └── MyComponent            └── index.tsx
      .└── components    └── MyComponent        ├── index.content.ts        ├── index.test.tsx        ├── index.stories.tsx        └── index.tsx