InícioAmbiente de testeVitrineAppDocBlog
    • Englishinglês
      EN
    • русскийrusso
      RU
    • 日本語japonês
      JA
    • françaisfrancês
      FR
    • 한국어coreano
      KO
    • 中文chinês
      ZH
    • españolespanhol
      ES
    • Deutschalemão
      DE
    • العربيةárabe
      AR
    • italianoitaliano
      IT
    • British Englishinglês (Reino Unido)
      EN-GB
    • portuguêsportuguês
      PT
    • हिन्दीhindi
      HI
    • Türkçeturco
      TR
    • polskipolonês
      PL
    • Indonesiaindonésio
      ID
    • Tiếng Việtvietnamita
      VI
    • українськаucraniano
      UK
    /
    Filtrar documentação por framework
    Alt+←
    Por que Intlayer?
    Começar
    Conceito
    • Como o Intlayer funciona
    • Configuração
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visual
    • CMS
    • Integração CI/CD
    • TraduçãoPluralEnumeraçãoCondiçãoGêneroInserçãoArquivoAninhamentoMarkdownHTMLBusca de função
    • Arquivo por locale
    • Compilador
    • Preenchimento automático
    • Testes
    • Otimização de bundle
    Ambiente
    • Next.js 14 e App Router
      Next.js 15
      Next.js sem locale URL
      Next.js e Page Router
      Compiler
    • Tanstack Start Solid
    • Astro e React
      Astro e Svelte
      Astro e Vue
      Astro e Solid
      Astro e Preact
      Astro e Lit
      Astro e Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt e Vue
    • Vite e Solid
    • SvelteKit
    • Vite e Preact
    • Vite e Vanilla JS
    • Vite e Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native e Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx e React
    Plugins
    • JSON
    • gettext (.po)
    Extensão VS Code
    Agente
    • Servidor MCP
    • Habilidades do agente
    Versões
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Faça uma pergunta
    1. Documentation
    2. Versões
    3. v6
    Criação:2025-09-22Última atualização:2025-09-22
    Referência esta documentação ao seu assistente AI favorito
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha

    Este documento está desatualizado, a versão base foi atualizada em 23 de setembro de 2025.

    Ir para a documentação em inglês

    Histórico de versões

      O conteúdo desta página foi traduzido com uma IA.

      Veja a última versão do conteúdo original em inglês
      Editar esta documentação

      Se você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.

      Link do GitHub para a documentação
      Copiar

      Copiar o Markdown do documento para a área de transferência

      Nova versão Intlayer v6 - Novidades

      Bem-vindo ao Intlayer v6! Esta versão foca em desempenho, experiência do desenvolvedor e confiabilidade. Abaixo estão os destaques, com notas de migração e exemplos prontos para copiar e colar.

      Destaques

      • Novo comando: npx intlayer content test para detectar traduções faltantes
      • Nova opção global autoFill para auto-gerar traduções ausentes
      • Comando Fill padrão pula traduções existentes: npx intlayer fill
      • Extensão VS Code: nova Barra de Atividades Intlayer (Busca & Dicionários), ações na barra de ferramentas/contexto, auto-revelação, comandos Fill/Test
      • Builds 10× mais rápidas graças à paralelização de promises
      • Cache remoto de dicionário para evitar refetch no início do app
      • Logging aprimorado: defina log.mode: 'verbose' para inspecionar o comportamento
      • Validação mais rigorosa para evitar falhas do app por problemas no dicionário
      • Atualizações ao vivo com CMS usando build.importMode = 'live' e pnpm intlayer live
      • Correções: integração Vue.js, adaptador Lynx, Editor Visual no Windows

      Novo: Testar traduções ausentes

      Audite rapidamente seu projeto para encontrar quais chaves/idiomas estão faltando.

      bash
      Copiar código

      Copiar o código para a área de transferência

      npx intlayer content test

      Output:

      bash
      Copiar código

      Copiar o código para a área de transferência

      pnpm intlayer content testTraduções ausentes: - blog-data       - Japonês (ja), Coreano (ko), Chinês (zh), Alemão (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), Russo (ru), Japonês (ja), Francês (fr), Coreano (ko), Chinês (zh), Espanhol (es), Alemão (de), Árabe (ar), Italiano (it), Inglês Britânico (en-GB), Português (pt), Hindi (hi)Locales obrigatórios: Inglês (en)Traduções ausentes: Japonês (ja), Coreano (ko), Chinês (zh), Alemão (de), Italiano (it), Francês (fr), Português (pt)Traduções obrigatórias ausentes: -Total de traduções ausentes: 7Total de traduções obrigatórias ausentes: 0

      Veja mais opções na documentação do CLI: Referência do CLI → "Testar traduções ausentes". Assim como o guia de Testes.


      Novo: autoFill global para completar traduções ausentes

      Agora você pode ativar o auto‑fill globalmente para que qualquer dicionário com traduções ausentes seja completado automaticamente.

      intlayer.config.ts
      Copiar código

      Copiar o código para a área de transferência

      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-gerar traduções ausentes para todos os dicionários    autoFill: "./{{fileName}}.content.ts",    //    // autoFill: "/messages/{{locale}}/{{key}}/{{fileName}}.content.json",    //    // autoFill: true, // auto-gerar traduções ausentes para todos os dicionários como usar "./{{fileName}}.content.json"    //    // autoFill: {    //   en: "./{{fileName}}.en.content.json",    //   fr: "./{{fileName}}.fr.content.json",    //   es: "./{{fileName}}.es.content.json",    // },  },};export default config;

      Você ainda pode ajustar por dicionário usando o campo autoFill nos arquivos de conteúdo. Veja a referência completa em doc/autoFill e doc/dictionary/content_file.


      Comando fill: padrões mais seguros

      O comando fill agora, por padrão, preenche apenas traduções ausentes e pula o conteúdo existente.

      bash
      Copiar código

      Copiar o código para a área de transferência

      npx intlayer fill
      bash
      Copiar código

      Copiar o código para a área de transferência

      Chaves de dicionário afetadas para processamento: access-key-creation-form-schema, doc-search-metadata, doc-search-page  - [access-key-creation-form-schema]      Dicionário não possui caminho de arquivo. Pulando.  - [access-key-creation-form-schema]      Processando declaração de conteúdo: src/components/Dashboard/ProjectForm/AccessKey/useAccessKeyCreationFormSchema.content.ts  - [access-key-creation-form-schema]      Nenhum local para preencher - Pulando dicionário  - [doc-search-metadata]                  Dicionário não possui caminho de arquivo. Pulando.  - [doc-search-metadata]                  Processando declaração de conteúdo: src/app/[locale]/(docs)/doc/search/metadata.content.ts  - [doc-search-metadata]                  Nenhum idioma para preencher - Pulando dicionário  - [doc-search-page]                      Dicionário não possui caminho de arquivo. Pulando.  - [doc-search-page]                      Processando declaração de conteúdo: src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                     [Russo (ru)]                   Preparando tradução para dicionário do Inglês (en) para Russo (ru)[intlayer]  Aplicado formatação Prettier em src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                      Declaração de conteúdo escrita em src/app/[locale]/(docs)/doc/search/page.content.ts

      Exemplos de CI estão disponíveis em CI/CD.


      Extensão VS Code atualizada

      A extensão agora inclui uma aba dedicada do Intlayer na Barra de Atividades e várias melhorias no fluxo de trabalho:

      • Barra de Atividades do Intlayer com duas visualizações:
        • Webview de busca (intlayer.searchBar) para busca ao vivo no dicionário/conteúdo
        • Árvore de dicionários (intlayer.dictionaries) listando ambientes, dicionários e arquivos contribuintes
      • Barra de ferramentas na visualização de Dicionários: Construir, Puxar, Enviar, Preencher, Atualizar, Testar, Criar Arquivo de Dicionário
      • Menus de contexto: Puxar/Enviar nos dicionários; Preencher nos arquivos
      • Auto-revelação: o arquivo atual do editor é destacado na árvore de Dicionários quando aplicável
      • Novos comandos disponíveis no Command Palette: Preencher Dicionários e Testar Dicionários

      Veja detalhes na documentação da Extensão Oficial do VS Code.


      Performance: 10× mais rápido

      • Resolução paralela de dicionários locais e remotos
      • Dicionários remotos são armazenados em cache para evitar reobtenção na inicialização do app
      bash
      Copiar código

      Copiar o código para a área de transferência

      npx intlayer build

      Saída:

      bash
      Copiar código

      Copiar o código para a área de transferência

      [intlayer]  Preparando Intlayer (v6.0.1)[intlayer]  Dicionários:[intlayer]  ✓ Conteúdo local: 163/163[intlayer]  ✓ Conteúdo remoto: 100/100[intlayer]   - access-key-creation-form             [local: ✔ construído] [distant: ✔ importado][intlayer]   - access-key-creation-form-schema      [local: ✔ construído] [distant: ✔ importado][intlayer]   - access-key-form                      [local: ✔ construído] [distant: ✔ importado][intlayer]   - ai-ab-testing-section                                 [distant: ✔ importado][intlayer]   - application-not-running-view         [local: ✔ construído] [distant: ✔ importado][intlayer]   - application-template-message         [local: ✔ construído] [distant: ✔ buscado][intlayer]   - aside-navigation                     [local: ✔ construído] [distant: ✔ importado][intlayer]   - ask-reset-password                   [local: ✔ construído] [distant: ✔ importado][intlayer]   - ask-reset-password-schema            [local: ✔ construído] [distant: ✔ importado][intlayer]   - autocompletion-section               [local: ✔ construído] [distant: ✔ buscado][intlayer]   - available-techno-section             [local: ✔ construído] [distant: ✔ importado][intlayer]   - blog-data                            [local: ✔ construído][intlayer]   - blog-metadata                        [local: ✔ construído][intlayer]   - blog-nav-list                        [local: ✔ construído] [distant: ✔ importado][intlayer]   - blog-page                                             [distant: ✔ buscado][intlayer]   - blog-search-metadata                 [local: ✔ construído] [distant: ✔ importado][intlayer]   - blog-search-page                     [local: ✔ construído] [distant: ✔ importado]...[intlayer]  Conteúdo carregado  (Total: 8401ms - Local: 4050ms - Remoto: 4222ms)

      Melhorias no registro de logs

      O sistema de logs foi aprimorado para fornecer informações mais detalhadas sobre o que acontece durante as transformações de build e em tempo de execução.

      Ative logs detalhados para entender melhor o que acontece durante as transformações de build e em tempo de execução.
      intlayer.config.ts
      Copiar código

      Copiar o código para a área de transferência

      export default {  log: {    mode: "verbose", // opções: "default" | "verbose" | "disabled"  },};

      Veja Configuração para todas as opções de logging.


      Validação mais robusta

      O processamento de dicionários agora realiza uma validação mais robusta. Quando um dicionário falha ao ser processado, o Intlayer evita quebrar sua aplicação e exibe erros acionáveis.


      Atualizações ao vivo com CMS (Seguro para produção)

      Sirva atualizações de conteúdo ao vivo (por exemplo, atualizações editoriais) em produção sem precisar reconstruir sua aplicação.

      1. Ative o modo de importação ao vivo:
      intlayer.config.ts
      Copiar código

      Copiar o código para a área de transferência

      import { type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  build: {    importMode: "live", // "static" | "dynamic" | "live"  },  editor: {    liveSync: true, // habilitar sincronização ao vivo no lado do servidor  },};export default config;
      1. Execute seu aplicativo e o processo ao vivo lado a lado:
      bash
      Copiar código

      Copiar o código para a área de transferência

      npx intlayer live --with 'vite preview'

      Notas:

      • Apenas dicionários marcados para usar o modo ao vivo serão buscados ao vivo. Outros são otimizados para desempenho.
      • Retorna para importação dinâmica se a API ao vivo não estiver acessível.

      Consulte CMS e Sincronização ao Vivo e Configuração para orientações completas.


      Notas de migração

      • Removido: dictionaryOutput (anteriormente i18next ou next-intl). Isso voltará como adaptadores plugáveis em versões futuras. Remova o campo da sua configuração.
      • Remoção relacionada: i18nextResourcesDir (veja o changelog em doc/configuration).
      • Prefira a nova opção global content.autoFill para gerar traduções ausentes em escala.
      • Use npx intlayer content test para bloquear PRs com traduções ausentes.
      • Para diagnósticos detalhados, defina log.mode = 'verbose'.

      Correções

      • Estabilidade da integração com Vue.js
      • Melhorias no adaptador Lynx
      • Editor Visual no Windows

      Links úteis

      • Referência CLI
      • Preenchimento automático
      • Configuração
      • Referência do arquivo de conteúdo
      • Extensão oficial para VS Code
      • CMS e Sincronização ao Vivo
      v7
      Benchmark
      Alt+→

      Nesta página

        As discussões são anônimas e regularmente revisadas para resolver problemas comuns. Sinta-se à vontade para compartilhar ideias de funcionalidades, feedback sobre a documentação ou qualquer coisa relacionada ao Intlayer, usamos essas informações para moldar nosso roadmap e melhorar o produto.

        npx intlayer content test
        pnpm intlayer content testTraduções ausentes: - blog-data       - Japonês (ja), Coreano (ko), Chinês (zh), Alemão (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), Russo (ru), Japonês (ja), Francês (fr), Coreano (ko), Chinês (zh), Espanhol (es), Alemão (de), Árabe (ar), Italiano (it), Inglês Britânico (en-GB), Português (pt), Hindi (hi)Locales obrigatórios: Inglês (en)Traduções ausentes: Japonês (ja), Coreano (ko), Chinês (zh), Alemão (de), Italiano (it), Francês (fr), Português (pt)Traduções obrigatórias ausentes: -Total de traduções ausentes: 7Total de traduções obrigatórias ausentes: 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-gerar traduções ausentes para todos os dicionários    autoFill: "./{{fileName}}.content.ts",    //    // autoFill: "/messages/{{locale}}/{{key}}/{{fileName}}.content.json",    //    // autoFill: true, // auto-gerar traduções ausentes para todos os dicionários como usar "./{{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
        Chaves de dicionário afetadas para processamento: access-key-creation-form-schema, doc-search-metadata, doc-search-page  - [access-key-creation-form-schema]      Dicionário não possui caminho de arquivo. Pulando.  - [access-key-creation-form-schema]      Processando declaração de conteúdo: src/components/Dashboard/ProjectForm/AccessKey/useAccessKeyCreationFormSchema.content.ts  - [access-key-creation-form-schema]      Nenhum local para preencher - Pulando dicionário  - [doc-search-metadata]                  Dicionário não possui caminho de arquivo. Pulando.  - [doc-search-metadata]                  Processando declaração de conteúdo: src/app/[locale]/(docs)/doc/search/metadata.content.ts  - [doc-search-metadata]                  Nenhum idioma para preencher - Pulando dicionário  - [doc-search-page]                      Dicionário não possui caminho de arquivo. Pulando.  - [doc-search-page]                      Processando declaração de conteúdo: src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                     [Russo (ru)]                   Preparando tradução para dicionário do Inglês (en) para Russo (ru)[intlayer]  Aplicado formatação Prettier em src/app/[locale]/(docs)/doc/search/page.content.ts  - [doc-search-page]                      Declaração de conteúdo escrita em src/app/[locale]/(docs)/doc/search/page.content.ts
        npx intlayer build
        [intlayer]  Preparando Intlayer (v6.0.1)[intlayer]  Dicionários:[intlayer]  ✓ Conteúdo local: 163/163[intlayer]  ✓ Conteúdo remoto: 100/100[intlayer]   - access-key-creation-form             [local: ✔ construído] [distant: ✔ importado][intlayer]   - access-key-creation-form-schema      [local: ✔ construído] [distant: ✔ importado][intlayer]   - access-key-form                      [local: ✔ construído] [distant: ✔ importado][intlayer]   - ai-ab-testing-section                                 [distant: ✔ importado][intlayer]   - application-not-running-view         [local: ✔ construído] [distant: ✔ importado][intlayer]   - application-template-message         [local: ✔ construído] [distant: ✔ buscado][intlayer]   - aside-navigation                     [local: ✔ construído] [distant: ✔ importado][intlayer]   - ask-reset-password                   [local: ✔ construído] [distant: ✔ importado][intlayer]   - ask-reset-password-schema            [local: ✔ construído] [distant: ✔ importado][intlayer]   - autocompletion-section               [local: ✔ construído] [distant: ✔ buscado][intlayer]   - available-techno-section             [local: ✔ construído] [distant: ✔ importado][intlayer]   - blog-data                            [local: ✔ construído][intlayer]   - blog-metadata                        [local: ✔ construído][intlayer]   - blog-nav-list                        [local: ✔ construído] [distant: ✔ importado][intlayer]   - blog-page                                             [distant: ✔ buscado][intlayer]   - blog-search-metadata                 [local: ✔ construído] [distant: ✔ importado][intlayer]   - blog-search-page                     [local: ✔ construído] [distant: ✔ importado]...[intlayer]  Conteúdo carregado  (Total: 8401ms - Local: 4050ms - Remoto: 4222ms)
        export default {  log: {    mode: "verbose", // opções: "default" | "verbose" | "disabled"  },};
        import { type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  build: {    importMode: "live", // "static" | "dynamic" | "live"  },  editor: {    liveSync: true, // habilitar sincronização ao vivo no lado do servidor  },};export default config;
        npx intlayer live --with 'vite preview'