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
- "Adicionado suporte para formatos ICU e i18next"v7.5.013/12/2025
- "Documentação inicial do plugin Sync JSON"v6.1.605/10/2025
O 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
Sync JSON (pontes i18n) - Sync JSON com suporte ICU / i18next
Use o Intlayer como um complemento para sua pilha i18n existente. Este plugin mantém suas mensagens JSON sincronizadas com os dicionários Intlayer para que você possa:
- Manter i18next, next-intl, react-intl, vue-i18n, next-translate, nuxt-i18n, Solid-i18next, svelte-i18n, etc.
- Gerenciar e traduzir suas mensagens com o Intlayer (CLI, CI, provedores, CMS), sem precisar refatorar seu aplicativo.
- Publicar tutoriais e conteúdo SEO direcionado a cada ecossistema, enquanto sugere o Intlayer como a camada de gerenciamento JSON.
Notas e escopo atual:
- A externalização para o CMS funciona para traduções e texto clássico.
- Ainda não há suporte para inserções, plurais/ICU ou recursos avançados de tempo de execução de outras bibliotecas.
- O editor visual ainda não é suportado para saídas i18n de terceiros.
Quando usar este plugin
- Você já usa uma biblioteca i18n e armazena mensagens em arquivos JSON.
- Você deseja preenchimento assistido por IA, testes em CI e operações de conteúdo sem alterar seu tempo de execução de renderização.
Instalação
Copiar o código para a área de transferência
Início rápido
Adicione o plugin ao seu intlayer.config.ts e aponte para sua estrutura JSON existente.
Copiar o código para a área de transferência
Alternativa: arquivo único por localidade (comum em configurações i18next/react-intl):
Copiar o código para a área de transferência
Como funciona
- Leitura: o plugin descobre arquivos JSON a partir do seu construtor
sourcee os carrega como dicionários Intlayer. - Escrita: após builds e preenchimentos, ele grava o JSON localizado de volta nos mesmos caminhos (com uma nova linha final para evitar problemas de formatação).
- Auto-preenchimento: o plugin declara um caminho
autoFillpara cada dicionário. Executarintlayer fillatualiza apenas as traduções ausentes nos seus arquivos JSON por padrão.
API:
Copiar o código para a área de transferência
format ('intlayer' | 'icu' | 'i18next')
Especifica o formatador a ser usado para o conteúdo do dicionário ao sincronizar arquivos JSON. Isso permite usar diferentes sintaxes de formatação de mensagens compatíveis com o runtime Intlayer.
undefined: Nenhum formatador será usado, o conteúdo JSON será usado como está.'intlayer': O formatador Intlayer padrão (padrão).'icu': Usa formatação de mensagens ICU (compatível com bibliotecas como react-intl, vue-i18n).'i18next': Usa formatação de mensagens i18next (compatível com i18next, next-i18next, Solid-i18next).
Note que usar um formatador transformará seu conteúdo JSON na entrada e saída. Para regras JSON complexas como plurais ICU, o parsing pode não garantir um mapeamento 1 para 1 entre entrada e saída. Se você não usar o runtime Intlayer, pode preferir não definir um formatador.
Exemplo:
Copiar o código para a área de transferência
Múltiplas fontes JSON e prioridade
Você pode adicionar múltiplos plugins syncJSON para sincronizar diferentes fontes JSON. Isso é útil quando você tem múltiplas bibliotecas i18n ou diferentes estruturas JSON no seu projeto.
Sistema de prioridade
Quando múltiplos plugins têm como alvo a mesma chave de dicionário, o parâmetro priority determina qual plugin tem precedência:
- Números de prioridade mais altos ganham sobre os mais baixos
- Prioridade padrão dos arquivos
.contenté0 - Prioridade padrão dos arquivos de conteúdo dos plugins é
-1 - Plugins com a mesma prioridade são processados na ordem em que aparecem na configuração
Copiar o código para a área de transferência
Resolução de conflitos
Quando a mesma chave de tradução existe em múltiplas fontes JSON:
- O plugin com a maior prioridade determina o valor final
- Fontes com prioridade menor são usadas como fallback para chaves ausentes
- Isso permite manter traduções legadas enquanto migra gradualmente para novas estruturas
Integrações
Abaixo estão mapeamentos comuns. Mantenha seu runtime intacto; apenas adicione o plugin.
i18next
Layout típico de arquivo: ./public/locales/{locale}/{namespace}.json ou ./locales/{locale}/{namespace}.json.
Copiar o código para a área de transferência
next-intl
Mensagens JSON por localidade (frequentemente ./messages/{locale}.json) ou por namespace.
Copiar o código para a área de transferência
Veja também: docs/pt/intlayer_with_next-intl.md.
react-intl
JSON único por localidade é comum:
Copiar o código para a área de transferência
vue-i18n
Pode ser um único arquivo por localidade ou por namespace:
Copiar o código para a área de transferência
CLI
Os arquivos JSON sincronizados serão considerados como outros arquivos .content. Isso significa que todos os comandos do intlayer estarão disponíveis para os arquivos JSON sincronizados. Incluindo:
intlayer content testpara testar se há traduções faltandointlayer content listpara listar os arquivos JSON sincronizadosintlayer content fillpara preencher as traduções faltantesintlayer content pushpara enviar os arquivos JSON sincronizadosintlayer content pullpara puxar os arquivos JSON sincronizados
Veja Intlayer CLI para mais detalhes.
Limitações (atuais)
- Sem suporte para inserções ou plurais/ICU ao direcionar bibliotecas de terceiros.
- Editor visual ainda não disponível para runtimes que não sejam Intlayer.
- Sincronização apenas de JSON; formatos de catálogo não JSON não são suportados.
Por que isso importa
- Podemos recomendar soluções i18n consolidadas e posicionar o Intlayer como um complemento.
- Aproveitamos o SEO/palavras-chave delas com tutoriais que terminam sugerindo o Intlayer para gerenciar JSON.
- Expande o público-alvo de “novos projetos” para “qualquer equipe que já usa i18n”.