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. Versiones
    3. v6
    Creación:2025-09-22Última actualización:2025-09-22
    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

    Este documento está desactualizado, la versión base se actualizó el 23 de septiembre de 2025.

    Ir a la documentación en inglés

    Historial de versiones

      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

      Nueva versión Intlayer v6 - ¿Qué hay de nuevo?

      ¡Bienvenido a Intlayer v6! Esta versión se centra en el rendimiento, la experiencia del desarrollador y la fiabilidad. A continuación, los aspectos más destacados, con notas de migración y ejemplos para copiar y pegar.

      Aspectos destacados

      • Nuevo comando: npx intlayer content test para detectar traducciones faltantes
      • Nueva opción global autoFill para autogenerar traducciones faltantes
      • El comando Fill por defecto omite las traducciones existentes: npx intlayer fill
      • Extensión de VS Code: nueva Barra de Actividad de Intlayer (Búsqueda y Diccionarios), acciones en la barra de herramientas/contexto, auto-revelado, comandos Fill/Test
      • Construcciones 10× más rápidas gracias a la paralelización de promesas
      • Caché remota de diccionarios para evitar recargas al iniciar la aplicación
      • Registro mejorado: configura log.mode: 'verbose' para inspeccionar el comportamiento
      • Validación más estricta para evitar fallos en la aplicación por problemas en los diccionarios
      • Actualizaciones en vivo con CMS usando build.importMode = 'live' y pnpm intlayer live
      • Correcciones: integración con Vue.js, adaptador Lynx, Editor Visual en Windows

      Nuevo: Prueba de traducciones faltantes

      Audita rápidamente tu proyecto para encontrar qué claves/idiomas faltan.

      bash
      Copiar código

      Copiar el código al portapapeles

      npx intlayer content test

      Salida:

      bash
      Copiar código

      Copiar el código al portapapeles

      pnpm intlayer content testTraducciones faltantes: - blog-data       - Japonés (ja), Coreano (ko), Chino (zh), Alemán (de), Italiano (it) - src/components/BlogPage/blogData.content.ts - demo-page       - Francés (fr), Italiano (it)                                         - src/components/DemoPage/demo.content.ts - locale-switcher - Italiano (it), Portugués (pt)                                       - src/components/LocaleSwitcher/localeSwitcher.content.tsLocales: Inglés (en), Ruso (ru), Japonés (ja), Francés (fr), Coreano (ko), Chino (zh), Español (es), Alemán (de), Árabe (ar), Italiano (it), Inglés Británico (en-GB), Portugués (pt), Hindi (hi)Locales requeridas: Inglés (en)Locales faltantes: Japonés (ja), Coreano (ko), Chino (zh), Alemán (de), Italiano (it), Francés (fr), Portugués (pt)Locales requeridas faltantes: -Total de locales faltantes: 7Total de locales requeridas faltantes: 0

      Consulta más opciones en la documentación de la CLI: Referencia CLI → "Test missing translations". Así como la guía de Testing.


      Nuevo: autoFill global para completar traducciones faltantes

      Ahora puedes habilitar auto‑fill globalmente para que cualquier diccionario con traducciones faltantes se complete automáticamente.

      intlayer.config.ts
      Copiar código

      Copiar el código al portapapeles

      import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,    requiredLocales: [Locales.ENGLISH, Locales.FRENCH],  },  content: {    // Auto-generar traducciones faltantes para todos los diccionarios    autoFill: "./{{fileName}}.content.ts",    //    // autoFill: "/messages/{{locale}}/{{key}}/{{fileName}}.content.json",    //    // autoFill: true, // auto-generar traducciones faltantes para todos los diccionarios como usando "./{{fileName}}.content.json"    //    // autoFill: {    //   en: "./{{fileName}}.en.content.json",    //   fr: "./{{fileName}}.fr.content.json",    //   es: "./{{fileName}}.es.content.json",    // },  },};export default config;

      Aún puedes ajustar por diccionario usando el campo autoFill en los archivos de contenido. Consulta la referencia completa en doc/autoFill y doc/dictionary/content_file.


      Comando fill: valores predeterminados más seguros

      El comando fill ahora, por defecto, solo rellena las traducciones faltantes y omite el contenido existente.

      bash
      Copiar código

      Copiar el código al portapapeles

      npx intlayer fill
      bash
      Copiar código

      Copiar el código al portapapeles

      Claves de diccionario afectadas para el procesamiento: access-key-creation-form-schema, doc-search-metadata, doc-search-page  - [access-key-creation-form-schema]      El diccionario no tiene ruta de archivo. Omitiendo.  - [access-key-creation-form-schema]      Procesando declaración de contenido: src/components/Dashboard/ProjectForm/AccessKey/useAccessKeyCreationFormSchema.content.ts  - [access-key-creation-form-schema]      No hay locales para rellenar - Omitiendo diccionario  - [doc-search-metadata]                  El diccionario no tiene ruta de archivo. Omitiendo.  - [doc-search-metadata]                  Procesando declaración de contenido: src/app/[locale]/(docs)/doc/search/metadata.content.ts  - [doc-search-metadata]                  No hay locales para rellenar - Omitiendo diccionario  - [doc-search-page]                      El diccionario no tiene ruta de archivo. Omitiendo.  - [doc-search-page]                      Procesando declaración de contenido: src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                     [Ruso (ru)]                   Preparando traducción para el diccionario de Inglés (en) a Ruso (ru)[intlayer]  Se aplicó el formato Prettier a src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                      Declaración de contenido escrita en src/app/[locale]/(docs)/doc/search/page.content.ts

      Ejemplos de CI están disponibles en CI/CD.


      Extensión actualizada de VS Code

      La extensión ahora incluye una pestaña dedicada de Intlayer en la Barra de Actividad y varias mejoras en el flujo de trabajo:

      • Barra de Actividad de Intlayer con dos vistas:
        • Vista web de búsqueda (intlayer.searchBar) para búsqueda en vivo en diccionarios/contenidos
        • Árbol de diccionarios (intlayer.dictionaries) que lista entornos, diccionarios y archivos contribuyentes
      • Barra de herramientas en la vista de Diccionarios: Construir, Extraer (Pull), Enviar (Push), Rellenar, Actualizar, Probar, Crear archivo de diccionario
      • Menús contextuales: Extraer/Enviar en diccionarios; Rellenar en archivos

      • Auto-revelación: el archivo actual del editor se resalta en el árbol de Diccionarios cuando es aplicable
      • Nuevos comandos disponibles desde la Paleta de Comandos: Rellenar Diccionarios y Probar Diccionarios

      Vea los detalles en la documentación de la Extensión Oficial de VS Code.


      Rendimiento: 10× más rápido

      • Resolución paralela de diccionarios locales y remotos
      • Los diccionarios remotos se almacenan en caché para evitar volver a obtenerlos al iniciar la aplicación
      bash
      Copiar código

      Copiar el código al portapapeles

      npx intlayer build

      Salida:

      bash
      Copiar código

      Copiar el código al portapapeles

      [intlayer]  Preparando Intlayer (v6.0.1)[intlayer]  Diccionarios:[intlayer]  ✓ Contenido local: 163/163[intlayer]  ✓ Contenido remoto: 100/100[intlayer]   - access-key-creation-form             [local: ✔ construido] [distant: ✔ importado][intlayer]   - access-key-creation-form-schema      [local: ✔ construido] [distant: ✔ importado][intlayer]   - access-key-form                      [local: ✔ construido] [distant: ✔ importado][intlayer]   - ai-ab-testing-section                                 [distant: ✔ importado][intlayer]   - application-not-running-view         [local: ✔ construido] [distant: ✔ importado][intlayer]   - application-template-message         [local: ✔ construido] [distant: ✔ obtenido][intlayer]   - aside-navigation                     [local: ✔ construido] [distant: ✔ importado][intlayer]   - ask-reset-password                   [local: ✔ construido] [distant: ✔ importado][intlayer]   - ask-reset-password-schema            [local: ✔ construido] [distant: ✔ importado][intlayer]   - sección-autocompletado               [local: ✔ construido] [distant: ✔ obtenido][intlayer]   - sección-tecnología-disponible        [local: ✔ construido] [distant: ✔ importado][intlayer]   - datos-blog                           [local: ✔ construido][intlayer]   - metadatos-blog                       [local: ✔ construido][intlayer]   - lista-navegación-blog                [local: ✔ construido] [distant: ✔ importado][intlayer]   - página-blog                                             [distant: ✔ obtenido][intlayer]   - metadatos-búsqueda-blog              [local: ✔ construido] [distant: ✔ importado][intlayer]   - página-búsqueda-blog                 [local: ✔ construido] [distant: ✔ importado]...[intlayer]  Contenido cargado  (Total: 8401ms - Local: 4050ms - Remoto: 4222ms)

      Mejoras en el registro de eventos (Logging)

      El sistema de registro se ha mejorado para proporcionar información más detallada sobre lo que sucede durante las transformaciones en tiempo de compilación y ejecución.

      Habilite los registros detallados para comprender mejor lo que sucede durante las transformaciones en tiempo de compilación y ejecución.
      intlayer.config.ts
      Copiar código

      Copiar el código al portapapeles

      export default {  log: {    mode: "verbose", // opciones: "default" | "verbose" | "disabled"  },};

      Consulte Configuración para todas las opciones de registro.


      Validación más estricta

      El procesamiento del diccionario ahora realiza una validación más robusta. Cuando un diccionario no se puede procesar, Intlayer evita que su aplicación se rompa y muestra errores accionables.


      Actualizaciones en vivo con CMS (Seguro para producción)

      Sirve actualizaciones de contenido en vivo (por ejemplo, actualizaciones editoriales) en producción sin necesidad de reconstruir tu aplicación.

      1. Habilita el modo de importación en vivo:
      intlayer.config.ts
      Copiar código

      Copiar el código al portapapeles

      import { type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  build: {    importMode: "live", // "static" | "dynamic" | "live"  },  editor: {    liveSync: true, // habilitar sincronización en vivo del lado del servidor  },};export default config;
      1. Ejecuta tu aplicación y el proceso en vivo simultáneamente:
      bash
      Copiar código

      Copiar el código al portapapeles

      npx intlayer live --with 'vite preview'

      Notas:

      • Solo los diccionarios marcados para usar el modo en vivo serán obtenidos en vivo. Los demás están optimizados para rendimiento.
      • Se recurre a la importación dinámica si la API en vivo no está disponible.

      Consulta CMS y sincronización en vivo y Configuración para obtener una guía completa.


      Notas de migración

      • Eliminado: dictionaryOutput (anteriormente i18next o next-intl). Esto volverá como adaptadores enchufables en versiones futuras. Elimina este campo de tu configuración.
      • Eliminación relacionada: i18nextResourcesDir (consulta el registro de cambios en doc/configuration).
      • Prefiere la nueva opción global content.autoFill para generar traducciones faltantes a gran escala.
      • Usa npx intlayer content test para controlar los PRs con traducciones faltantes.
      • Para diagnósticos detallados, configura log.mode = 'verbose'.

      Correcciones

      • Estabilidad en la integración con Vue.js
      • Mejoras en el adaptador Lynx
      • Editor visual en Windows

      Enlaces útiles

      • Referencia CLI
      • Auto‑relleno
      • Configuración
      • Referencia de archivo de contenido
      • Extensión oficial para VS Code
      • CMS y sincronización en vivo
      v7
      Benchmark
      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.

        npx intlayer content test
        pnpm intlayer content testTraducciones faltantes: - blog-data       - Japonés (ja), Coreano (ko), Chino (zh), Alemán (de), Italiano (it) - src/components/BlogPage/blogData.content.ts - demo-page       - Francés (fr), Italiano (it)                                         - src/components/DemoPage/demo.content.ts - locale-switcher - Italiano (it), Portugués (pt)                                       - src/components/LocaleSwitcher/localeSwitcher.content.tsLocales: Inglés (en), Ruso (ru), Japonés (ja), Francés (fr), Coreano (ko), Chino (zh), Español (es), Alemán (de), Árabe (ar), Italiano (it), Inglés Británico (en-GB), Portugués (pt), Hindi (hi)Locales requeridas: Inglés (en)Locales faltantes: Japonés (ja), Coreano (ko), Chino (zh), Alemán (de), Italiano (it), Francés (fr), Portugués (pt)Locales requeridas faltantes: -Total de locales faltantes: 7Total de locales requeridas faltantes: 0
        import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,    requiredLocales: [Locales.ENGLISH, Locales.FRENCH],  },  content: {    // Auto-generar traducciones faltantes para todos los diccionarios    autoFill: "./{{fileName}}.content.ts",    //    // autoFill: "/messages/{{locale}}/{{key}}/{{fileName}}.content.json",    //    // autoFill: true, // auto-generar traducciones faltantes para todos los diccionarios como usando "./{{fileName}}.content.json"    //    // autoFill: {    //   en: "./{{fileName}}.en.content.json",    //   fr: "./{{fileName}}.fr.content.json",    //   es: "./{{fileName}}.es.content.json",    // },  },};export default config;
        npx intlayer fill
        Claves de diccionario afectadas para el procesamiento: access-key-creation-form-schema, doc-search-metadata, doc-search-page  - [access-key-creation-form-schema]      El diccionario no tiene ruta de archivo. Omitiendo.  - [access-key-creation-form-schema]      Procesando declaración de contenido: src/components/Dashboard/ProjectForm/AccessKey/useAccessKeyCreationFormSchema.content.ts  - [access-key-creation-form-schema]      No hay locales para rellenar - Omitiendo diccionario  - [doc-search-metadata]                  El diccionario no tiene ruta de archivo. Omitiendo.  - [doc-search-metadata]                  Procesando declaración de contenido: src/app/[locale]/(docs)/doc/search/metadata.content.ts  - [doc-search-metadata]                  No hay locales para rellenar - Omitiendo diccionario  - [doc-search-page]                      El diccionario no tiene ruta de archivo. Omitiendo.  - [doc-search-page]                      Procesando declaración de contenido: src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                     [Ruso (ru)]                   Preparando traducción para el diccionario de Inglés (en) a Ruso (ru)[intlayer]  Se aplicó el formato Prettier a src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                      Declaración de contenido escrita en src/app/[locale]/(docs)/doc/search/page.content.ts
        npx intlayer build
        [intlayer]  Preparando Intlayer (v6.0.1)[intlayer]  Diccionarios:[intlayer]  ✓ Contenido local: 163/163[intlayer]  ✓ Contenido remoto: 100/100[intlayer]   - access-key-creation-form             [local: ✔ construido] [distant: ✔ importado][intlayer]   - access-key-creation-form-schema      [local: ✔ construido] [distant: ✔ importado][intlayer]   - access-key-form                      [local: ✔ construido] [distant: ✔ importado][intlayer]   - ai-ab-testing-section                                 [distant: ✔ importado][intlayer]   - application-not-running-view         [local: ✔ construido] [distant: ✔ importado][intlayer]   - application-template-message         [local: ✔ construido] [distant: ✔ obtenido][intlayer]   - aside-navigation                     [local: ✔ construido] [distant: ✔ importado][intlayer]   - ask-reset-password                   [local: ✔ construido] [distant: ✔ importado][intlayer]   - ask-reset-password-schema            [local: ✔ construido] [distant: ✔ importado][intlayer]   - sección-autocompletado               [local: ✔ construido] [distant: ✔ obtenido][intlayer]   - sección-tecnología-disponible        [local: ✔ construido] [distant: ✔ importado][intlayer]   - datos-blog                           [local: ✔ construido][intlayer]   - metadatos-blog                       [local: ✔ construido][intlayer]   - lista-navegación-blog                [local: ✔ construido] [distant: ✔ importado][intlayer]   - página-blog                                             [distant: ✔ obtenido][intlayer]   - metadatos-búsqueda-blog              [local: ✔ construido] [distant: ✔ importado][intlayer]   - página-búsqueda-blog                 [local: ✔ construido] [distant: ✔ importado]...[intlayer]  Contenido cargado  (Total: 8401ms - Local: 4050ms - Remoto: 4222ms)
        export default {  log: {    mode: "verbose", // opciones: "default" | "verbose" | "disabled"  },};
        import { type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  build: {    importMode: "live", // "static" | "dynamic" | "live"  },  editor: {    liveSync: true, // habilitar sincronización en vivo del lado del servidor  },};export default config;
        npx intlayer live --with 'vite preview'