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
    /
    Alt+←
    O que é internacionalização (i18n)?
    SEO e i18n
    Guia
    • i18n com next-i18next
    • i18n com next-intl
    Use Intlayer na sua solução
    • Automatizar next-i18next
    • Automatizar react-i18next
    • Automatizar next-intl
    • Automatizar react-intl
    • Automatizar vue-i18n
    Comparações
    • next-i18next vs next-intl vs Intlayer
    • react-i18next vs react-intl vs Intlayer
    Documentação
    1. Blog
    2. Intlayer with react i18next
    Criação:2025-01-02Última atualização:2025-10-29
    Assistir ao vídeo tutorial

    Esta página tem um vídeo tutorial disponível.

    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

    Histórico de versões

    1. Adicionado plugin loadJSON
      v7.0.601/11/2025
    2. Alterado para plugin syncJSON
      v7.0.029/10/2025

    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

    Como automatizar suas traduções JSON do react-i18next usando Intlayer

    www.youtube.com

    O que é o Intlayer?

    Intlayer é uma biblioteca inovadora e de código aberto para internacionalização, projetada para resolver as limitações das soluções tradicionais de i18n. Ela oferece uma abordagem moderna para o gerenciamento de conteúdo em aplicações React.

    Veja uma comparação concreta com react-i18next em nosso post no blog react-i18next vs. react-intl vs. Intlayer.

    Por que combinar Intlayer com react-i18next?

    Embora o Intlayer forneça uma excelente solução de i18n independente (veja nosso guia de integração com React), você pode querer combiná-lo com react-i18next por várias razões:

    1. Base de código existente: Você possui uma implementação estabelecida do react-i18next e deseja migrar gradualmente para a melhor experiência de desenvolvedor do Intlayer.
    2. Requisitos legados: Seu projeto requer compatibilidade com plugins ou fluxos de trabalho existentes do react-i18next.
    3. Familiaridade da equipe: Sua equipe está confortável com o react-i18next, mas deseja um melhor gerenciamento de conteúdo.
    4. Uso dos recursos do Intlayer: Você quer usar recursos do Intlayer como declaração de conteúdo, automação de traduções, testes de traduções e mais.

    Para isso, o Intlayer pode ser implementado como um adaptador para o react-i18next para ajudar na automação das suas traduções JSON em CLI ou pipelines CI/CD, testar suas traduções e muito mais.

    Este guia mostra como aproveitar o sistema superior de declaração de conteúdo do Intlayer enquanto mantém a compatibilidade com o react-i18next.

    Índice

    Guia passo a passo para configurar o Intlayer com react-i18next

    Passo 1: Instalar dependências

    Instale os pacotes necessários:

    bash
    Copiar código

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

    npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init

    Descrição dos pacotes:

    • intlayer: Biblioteca principal para gerenciamento de internacionalização, declaração de conteúdo e construção
    • @intlayer/sync-json-plugin: Plugin para exportar declarações de conteúdo do Intlayer para o formato JSON compatível com react-i18next

    Passo 2: Implemente o plugin Intlayer para envolver o JSON

    Crie um arquivo de configuração do Intlayer para definir os seus locais suportados:

    Se você também quiser exportar dicionários JSON para react-i18next, adicione o plugin syncJSON:

    intlayer.config.ts
    Copiar código

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

    import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,    }),  ],};export default config;

    O plugin syncJSON irá automaticamente envolver o JSON. Ele irá ler e escrever os arquivos JSON sem alterar a arquitetura do conteúdo.

    Se você quiser fazer coexistir esse JSON com arquivos de declaração de conteúdo do Intlayer (arquivos .content), o Intlayer procederá da seguinte forma:

    plaintext
    Copiar código

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

    1. carregar tanto os arquivos JSON quanto os arquivos de declaração de conteúdo e transformá-los em um dicionário do Intlayer.2. se houver conflitos entre os arquivos JSON e os arquivos de declaração de conteúdo, o Intlayer irá processar a fusão de todos esses dicionários. Dependendo da prioridade dos plugins e da do arquivo de declaração de conteúdo (tudo é configurável).

    Se alterações forem feitas usando o CLI para traduzir o JSON, ou usando o CMS, o Intlayer atualizará o arquivo JSON com as novas traduções.

    Para ver mais detalhes sobre o plugin syncJSON, por favor consulte a documentação do plugin syncJSON.

    (Opcional) Passo 3: Implementar traduções JSON por componente

    Por padrão, o Intlayer irá carregar, mesclar e sincronizar tanto os arquivos JSON quanto os arquivos de declaração de conteúdo. Veja a documentação da declaração de conteúdo para mais detalhes. Mas se preferir, usando um plugin do Intlayer, você também pode implementar o gerenciamento por componente de JSON localizado em qualquer lugar da sua base de código.

    Para isso, você pode usar o plugin loadJSON.

    intlayer.config.ts
    Copiar código

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

    import { Locales, type IntlayerConfig } from "intlayer";import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  // Mantenha seus arquivos JSON atuais sincronizados com os dicionários do Intlayer  plugins: [    /**     * Carregará todos os arquivos JSON na pasta src que correspondem ao padrão {key}.i18n.json     */    loadJSON({      source: ({ key }) => `./src/**/${key}.i18n.json`,      locale: Locales.ENGLISH,      priority: 1, // Garante que esses arquivos JSON tenham precedência sobre os arquivos em `./locales/en/${key}.json`    }),    /**     * Carregará e escreverá a saída e as traduções de volta nos arquivos JSON no diretório de locais     */    syncJSON({      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,      priority: 0,    }),  ],};export default config;

    Isso carregará todos os arquivos JSON no diretório src que correspondem ao padrão {key}.i18n.json e os carregará como dicionários do Intlayer.

    Configuração do Git

    É recomendado ignorar os arquivos gerados automaticamente pelo Intlayer:

    .gitignore
    Copiar código

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

    # Ignorar arquivos gerados pelo Intlayer.intlayer

    Esses arquivos podem ser regenerados durante seu processo de build e não precisam ser commitados no controle de versão.

    Extensão VS Code

    Para uma melhor experiência de desenvolvimento, instale a extensão oficial Intlayer VS Code Extension:

    Instalar no VS Code Marketplace

    Automatizar next-i18next
    Automatizar next-intl
    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.

      npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init
      import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,    }),  ],};export default config;
      1. carregar tanto os arquivos JSON quanto os arquivos de declaração de conteúdo e transformá-los em um dicionário do Intlayer.2. se houver conflitos entre os arquivos JSON e os arquivos de declaração de conteúdo, o Intlayer irá processar a fusão de todos esses dicionários. Dependendo da prioridade dos plugins e da do arquivo de declaração de conteúdo (tudo é configurável).
      import { Locales, type IntlayerConfig } from "intlayer";import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  // Mantenha seus arquivos JSON atuais sincronizados com os dicionários do Intlayer  plugins: [    /**     * Carregará todos os arquivos JSON na pasta src que correspondem ao padrão {key}.i18n.json     */    loadJSON({      source: ({ key }) => `./src/**/${key}.i18n.json`,      locale: Locales.ENGLISH,      priority: 1, // Garante que esses arquivos JSON tenham precedência sobre os arquivos em `./locales/en/${key}.json`    }),    /**     * Carregará e escreverá a saída e as traduções de volta nos arquivos JSON no diretório de locais     */    syncJSON({      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,      priority: 0,    }),  ],};export default config;
      # Ignorar arquivos gerados pelo Intlayer.intlayer