Receba notificações sobre os próximos lançamentos de Intlayer
    Criação:2024-08-14Última atualização:2025-08-20

    Por que você deve considerar o Intlayer?

    O que é o Intlayer?

    Intlayer é uma biblioteca de internacionalização projetada especificamente para desenvolvedores JavaScript. Ela permite a declaração do seu conteúdo em qualquer lugar do seu código. Converte declarações de conteúdo multilíngue em dicionários estruturados para integrar facilmente no seu código. Usando TypeScript, o Intlayer torna seu desenvolvimento mais robusto e eficiente.

    Por que o Intlayer foi criado?

    O Intlayer foi criado para resolver um problema comum que afeta todas as bibliotecas i18n comuns, como next-intl, react-i18next, react-intl, next-i18next, react-intl e vue-i18n.

    Todas essas soluções adotam uma abordagem centralizada para listar e gerenciar seu conteúdo. Por exemplo:

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

    Ou aqui usando namespaces:

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

    Esse tipo de arquitetura desacelera o processo de desenvolvimento e torna a base de código mais complexa de manter por várias razões:

    1. Para qualquer novo componente criado, você deve:

      • Criar o novo recurso/namespace na pasta locales
      • Lembrar de importar o novo namespace na sua página
      • Traduzir seu conteúdo (frequentemente feito manualmente por copiar/colar de provedores de IA)
    2. Para qualquer alteração feita nos seus componentes, você deve:

      • Procurar o recurso/namespace relacionado (longe do componente)
      • Traduzir seu conteúdo
      • Garantir que seu conteúdo esteja atualizado para qualquer localidade
      • Verificar se seu namespace não inclui chaves/valores não usados
      • Garantir que a estrutura dos seus arquivos JSON seja a mesma para todas as localidades

    Em projetos profissionais que utilizam essas soluções, plataformas de localização são frequentemente usadas para ajudar a gerenciar a tradução do seu conteúdo. No entanto, isso pode rapidamente se tornar caro para projetos grandes.

    Para resolver esse problema, o Intlayer adota uma abordagem que delimita seu conteúdo por componente e mantém seu conteúdo próximo ao seu componente, assim como frequentemente fazemos com CSS (styled-components), tipos, documentação (storybook) ou testes unitários (jest).

    .└── 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>;};

    Esta abordagem permite que você:

    1. Aumente a velocidade de desenvolvimento

      • Arquivos .content.{{ts|mjs|cjs|json}} podem ser criados usando uma extensão do VSCode
      • Ferramentas de autocompletar com IA no seu IDE (como o GitHub Copilot) podem ajudar a declarar seu conteúdo, reduzindo copiar/colar
    2. Reduzir a complexidade da sua base de código

    3. Aumentar a manutenibilidade da sua base de código

    4. Duplicar seus componentes e seus conteúdos relacionados com mais facilidade (Exemplo: componentes de login/registro, etc.)

      • Limitando o risco de impactar o conteúdo de outros componentes
      • Copiando/colando seu conteúdo de uma aplicação para outra sem dependências externas
    5. Evitar poluir sua base de código com chaves/valores não usados para componentes não utilizados

      • Se você não usa um componente, não precisa importar seu conteúdo
      • Se você excluir um componente, será mais fácil lembrar de remover seu conteúdo relacionado, pois estará presente na mesma pasta
    6. Reduzir o custo de raciocínio para agentes de IA declararem seu conteúdo multilíngue

      • O agente de IA não precisará escanear toda a sua base de código para saber onde implementar seu conteúdo
      • As traduções podem ser facilmente feitas por ferramentas de autocompletar com IA no seu IDE (como o GitHub Copilot)
    7. Otimizar o desempenho de carregamento

      • Se um componente for carregado de forma preguiçosa (lazy-loaded), seu conteúdo relacionado será carregado ao mesmo tempo

    Recursos adicionais do Intlayer

    Recurso Descrição
    Feature Suporte Multiplataformas

    O Intlayer é compatível com todos os principais frameworks e bibliotecas, incluindo Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, e mais.
    Feature Gestão de Conteúdo com JavaScript

    Aproveite a flexibilidade do JavaScript para definir e gerir o seu conteúdo de forma eficiente.

    - Declaração de conteúdo
    Feature Ficheiro de Declaração de Conteúdo por Localidade

    Acelere o seu desenvolvimento declarando o seu conteúdo uma vez, antes da geração automática.

    - Ficheiro de Declaração de Conteúdo por Localidade
    Feature Ambiente com Tipagem Segura

    Aproveite o TypeScript para garantir que suas definições de conteúdo e código estejam livres de erros, além de beneficiar-se do autocompletar do IDE.

    - Configuração do TypeScript
    Feature Configuração Simplificada

    Comece rapidamente com configuração mínima. Ajuste facilmente as configurações para internacionalização, roteamento, IA, build e gerenciamento de conteúdo.

    - Explore a integração com Next.js
    Feature Recuperação de Conteúdo Simplificada

    Não é necessário chamar sua função t para cada pedaço de conteúdo. Recupere todo o seu conteúdo diretamente usando um único hook.

    - Integração com React
    Feature Implementação Consistente de Componentes no Servidor

    Perfeitamente adequado para componentes de servidor Next.js, use a mesma implementação para componentes cliente e servidor, sem necessidade de passar sua função t por cada componente de servidor.

    - Componentes de Servidor
    Feature Base de Código Organizada

    Mantenha sua base de código mais organizada: 1 componente = 1 dicionário na mesma pasta. Traduções próximas aos seus respectivos componentes aumentam a manutenibilidade e clareza.

    - Como o Intlayer funciona
    Feature Roteamento Aprimorado

    Suporte completo ao roteamento de aplicativos, adaptando-se perfeitamente a estruturas complexas de aplicações, para Next.js, React, Vite, Vue.js, etc.

    - Explore a integração com Next.js
    Feature Suporte a Markdown

    Importe e interprete arquivos de localidade e Markdown remoto para conteúdo multilíngue, como políticas de privacidade, documentação, etc. Interprete e torne os metadados do Markdown acessíveis no seu código.

    - Arquivos de conteúdo
    Feature Editor Visual e CMS Gratuitos

    Um editor visual gratuito e CMS estão disponíveis para escritores de conteúdo, eliminando a necessidade de uma plataforma de localização. Mantenha seu conteúdo sincronizado usando Git, ou externalize-o total ou parcialmente com o CMS.

    - Editor Intlayer
    - CMS Intlayer
    Feature Conteúdo Tree-shakable

    Conteúdo tree-shakable, reduzindo o tamanho do pacote final. Carrega o conteúdo por componente, excluindo qualquer conteúdo não utilizado do seu pacote. Suporta carregamento preguiçoso para melhorar a eficiência do carregamento do aplicativo.

    - Otimização da construção do aplicativo
    Feature Renderização Estática

    Não bloqueia a Renderização Estática.

    - Integração Next.js
    Feature Tradução com IA

    Transforme seu site em 231 idiomas com apenas um clique usando as avançadas ferramentas de tradução com IA da Intlayer, utilizando seu próprio provedor de IA/chave API.

    - Integração CI/CD
    - CLI Intlayer
    - Preenchimento automático
    Feature Integração do Servidor MCP

    Fornece um servidor MCP (Model Context Protocol) para automação de IDE, permitindo um gerenciamento de conteúdo e fluxos de trabalho i18n contínuos diretamente no seu ambiente de desenvolvimento.

    - Servidor MCP
    Feature Extensão VSCode

    O Intlayer fornece uma extensão para VSCode para ajudar você a gerenciar seu conteúdo e traduções, construir seus dicionários, traduzir seu conteúdo e muito mais.

    - Extensão VSCode
    Feature Interoperabilidade

    Permite interoperabilidade com react-i18next, next-i18next, next-intl e react-intl.

    - Intlayer e react-intl
    - Intlayer e next-intl
    - Intlayer e next-i18next

    Comparação do Intlayer com outras soluções

    Funcionalidade Intlayer React-i18next / i18next React-Intl (FormatJS) LinguiJS next-intl next-i18next vue-i18n
    Traduções Próximas aos Componentes Sim, conteúdo colocalizado com cada componente Não Não Não Não Não Sim - usando Componentes de Arquivo Único (SFCs)
    Integração com TypeScript Avançada, tipos estritos gerados automaticamente Básica; configuração extra para segurança Boa, mas menos estrita Tipagens, necessita configuração Boa Básica Boa (tipos disponíveis; segurança de chaves requer configuração)
    Detecção de Tradução Ausente Erro/aviso em tempo de compilação Principalmente strings de fallback em tempo de execução Strings de fallback Requer configuração extra Fallback em tempo de execução Fallback em tempo de execução Fallback/avisos em tempo de execução (configurável)
    Conteúdo Rico (JSX/Markdown/componentes) Suporte direto, até mesmo para nós React Limitado / apenas interpolação Sintaxe ICU, não JSX real Limitado Não projetado para nós ricos Limitado Limitado (componentes via <i18n-t>, Markdown via plugins)
    Tradução com IA Sim, suporta múltiplos provedores de IA. Usável com suas próprias chaves de API. Considera o contexto da sua aplicação e o escopo do conteúdo Não Não Não Não Não Não
    Editor Visual Sim, Editor Visual local + CMS opcional; pode externalizar conteúdo da base de código; incorporável Não / disponível via plataformas externas de localização Não / disponível via plataformas externas de localização Não / disponível via plataformas externas de localização Não / disponível via plataformas externas de localização Não / disponível via plataformas externas de localização Não / disponível via plataformas externas de localização
    Roteamento Localizado Integrado, suporte a middleware Plugins ou configuração manual Não integrado Plugin/configuração manual Integrado Integrado Manual via Vue Router (Nuxt i18n gerencia isso)
    Geração Dinâmica de Rotas Sim Plugin/ecossistema ou configuração manual Não fornecido Plugin/manual Sim Sim Não fornecido (Nuxt i18n fornece)
    Pluralização Padrões baseados em enumeração; veja a documentação Configurável (plugins como i18next-icu) Avançado (ICU) Avançado (ICU/messageformat) Bom Bom Avançado (regras de plural embutidas)
    Formatação (datas, números, moedas) Formatadores otimizados (Intl por baixo dos panos) Via plugins ou uso customizado do Intl Formatadores avançados ICU Helpers ICU/CLI Bom (helpers Intl) Bom (helpers Intl) Formatadores embutidos de data/número (Intl)
    Formato de Conteúdo .tsx, .ts, .js, .json, .md, .txt .json .json, .js .po, .json .json, .js, .ts .json .json, .js
    Suporte ICU Em desenvolvimento (ICU nativo) Via plugin (i18next-icu) Sim Sim Sim Via plugin (i18next-icu) Via formatador/compilador personalizado
    Ajuda para SEO (hreflang, sitemap) Ferramentas embutidas: helpers para sitemap, robots.txt, metadados Plugins da comunidade/manual Não é núcleo Não é núcleo Bom Bom Não é núcleo (Nuxt i18n fornece helpers)
    Ecossistema / Comunidade Menor, mas crescendo rápido e reativa Maior e mais madura Grande, empresarial Em crescimento, menor Médio porte, focado em Next.js Médio porte, focado em Next.js Grande no ecossistema Vue
    Renderização do lado do servidor & Componentes de Servidor Sim, otimizado para SSR / Componentes de Servidor React Suportado, alguma configuração necessária Suportado no Next.js Suportado Suporte completo Suporte completo SSR via Nuxt/Vue SSR (sem RSC)
    Tree-shaking (carregar apenas o conteúdo usado) Sim, por componente em tempo de build via plugins Babel/SWC Geralmente carrega tudo (pode ser melhorado com namespaces/divisão de código) Geralmente carrega tudo Não é padrão Parcial Parcial Parcial (com divisão de código/configuração manual)
    Carregamento preguiçoso (Lazy loading) Sim, por localidade/por componente Sim (ex: backends/namespaces sob demanda) Sim (divisão de pacotes por localidade) Sim (importações dinâmicas de catálogos) Sim (por rota/por localidade) Sim (por rota/por localidade) Sim (mensagens de localidade assíncronas)
    Gestão de Grandes Projetos Incentiva modularidade, adequado para design-system Requer boa disciplina de arquivos Catálogos centrais podem ficar grandes Pode se tornar complexo Modular com configuração Modular com configuração Modular com Vue Router/Nuxt i18n setup

    Histórico do Documento

    Versão Data Alterações
    5.8.0 2025-08-19 Atualização da tabela comparativa
    5.5.10 2025-06-29 Histórico inicial
    Receba notificações sobre os próximos lançamentos de Intlayer