Recibe notificaciones sobre los próximos lanzamientos de Intlayer
    Creación:2024-08-14Última actualización:2025-08-20

    ¿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
    .├── locales│   ├── en.json│   ├── fr.json│   └── es.json├── i18n.ts└── src    └── components        └── MyComponent            └── index.tsx

    O aquí usando espacios de nombres:

    bash
    .├── 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
    .└── components    └── MyComponent        ├── index.content.ts        ├── index.test.tsx        ├── index.stories.tsx        └── index.tsx
    ./components/MyComponent/index.content.ts
    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
    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)

    Características adicionales de Intlayer

    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 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

    Comparación de Intlayer con otras soluciones

    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 Plugin/ecosistema o configuración manual No proporcionado Plugin/manual 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) 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

    Historial del Documento

    Versión Fecha Cambios
    5.8.0 2025-08-19 Actualización de la tabla comparativa
    5.5.10 2025-06-29 Inicio del historial
    Recibe notificaciones sobre los próximos lanzamientos de Intlayer