Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Ao integrar o servidor MCP Intlayer ao seu assistente de IA, você pode recuperar todos os documentos diretamente de ChatGPT, DeepSeek, Cursor, VSCode, etc.
Ver a documentação do servidor MCPO conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsSe 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çãoCopiar o Markdown do documento para a área de transferência
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:
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)
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
Copiar o código para a área de transferência
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;
Copiar o código para a área de transferência
import { useIntlayer } from "react-intlayer";export const ComponentExample = () => { const { myTranslatedContent } = useIntlayer("component-example"); return <span>{myTranslatedContent}</span>;};
Esta abordagem permite que você:
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
Reduzir a complexidade da sua base de código
Aumentar a manutenibilidade da sua base de código
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
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
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)
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 |
---|---|
![]() | 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. |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | Renderização Estática Não bloqueia a Renderização Estática. - Integração Next.js |
![]() | 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 |
![]() | 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 |
![]() | 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 |
![]() | 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 |