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
- "Movido da documentação do CMS Intlayer para sua própria página"v9.0.008/07/2026
- "Adiciona documentação sobre live sync"v6.0.122/09/2025
- "Substitui o campo `hotReload` por `liveSync`"v6.0.004/09/2025
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Sincronização ao vivo
A Sincronização ao Vivo permite que a sua aplicação reflita as alterações de conteúdo do CMS em tempo de execução. Não é necessário reconstruir ou reimplantar. Quando ativada, as atualizações são transmitidas para um servidor de Sincronização ao Vivo que atualiza os dicionários que a sua aplicação lê.
Tabela de conteúdos
Ativar a sincronização ao vivo
A Sincronização ao Vivo requer uma conexão contínua com o servidor e está disponível no plano enterprise.
Ative a Sincronização ao Vivo atualizando a sua configuração Intlayer:
Copiar o código para a área de transferência
import type { IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
// ... outras configurações
editor: {
/**
* Ativa o recarregamento a quente das configurações de localidade quando são detetadas alterações.
* Por exemplo, quando um dicionário é adicionado ou atualizado, a aplicação atualiza
* o conteúdo exibido na página.
*
* Como o recarregamento a quente requer uma conexão contínua com o servidor, está
* disponível apenas para clientes do plano `enterprise`.
*
* Padrão: false
*/
liveSync: true,
},
dictionary: {
/**
* Controla como os dicionários são importados:
*
* - "live": Os dicionários são buscados dinamicamente usando a API de Sincronização ao Vivo.
* Substitui useIntlayer por useDictionaryDynamic.
*
* Nota: O modo live usa a API de Sincronização ao Vivo para buscar os dicionários. Se a chamada da API
* falhar, os dicionários são importados dinamicamente.
* Nota: Apenas dicionários com conteúdo remoto e sinalizadores "live" usam o modo live.
* Outros usam o modo dinâmico para melhor desempenho.
*/
importMode: "fetch",
},
};
export default config;Inicie o servidor Live Sync para envolver sua aplicação:
Exemplo usando Next.js:
Copiar o código para a área de transferência
{ "scripts": { // ... outros scripts "build": "next build", "dev": "next dev", "start": "npx intlayer live --with 'next start'", },}Exemplo usando Vite:
Copiar o código para a área de transferência
{ "scripts": { // ... outros scripts "build": "vite build", "dev": "vite dev", "start": "npx intlayer live --with 'vite start'", },}O servidor Live Sync envolve sua aplicação e aplica automaticamente o conteúdo atualizado assim que ele chega.
Para receber notificações de alterações do CMS, o servidor Live Sync mantém uma conexão SSE com o backend. Quando o conteúdo muda no CMS, o backend encaminha a atualização para o servidor Live Sync, que grava os novos dicionários. Sua aplicação refletirá a atualização na próxima navegação ou recarregamento do navegador, sem necessidade de reconstrução.
Fluxograma (CMS/Backend -> Servidor Live Sync -> Servidor de Aplicação -> Frontend):
Como funciona:
Fluxo de trabalho de desenvolvimento (local)
- Em desenvolvimento, todos os dicionários remotos são buscados quando a aplicação inicia, para que você possa testar atualizações rapidamente.
- Para testar o Live Sync localmente com Next.js, envolva seu servidor de desenvolvimento:
Copiar o código para a área de transferência
{ "scripts": { // ... outros scripts "dev": "npx intlayer live --with 'next dev'", // "dev": "npx intlayer live --with 'vite dev'", // Para Vite },}Habilite a otimização para que o Intlayer aplique as transformações de importação Live durante o desenvolvimento:
Copiar o código para a área de transferência
import type { IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
editor: {
applicationURL: "http://localhost:5173",
liveSyncURL: "http://localhost:4000",
liveSync: true,
},
dictionary: {
importMode: "fetch",
},
build: {
optimize: true,
},
};
export default config;Esta configuração envolve seu servidor de desenvolvimento com o servidor Live Sync, busca dicionários remotos na inicialização e transmite atualizações do CMS via SSE. Atualize a página para ver as mudanças.
Notas e restrições
- Adicione a origem do live sync à política de segurança do seu site (CSP). Certifique-se de que a URL do live sync esteja permitida em
connect-src(eframe-ancestors, se relevante). - O Live Sync não funciona com saída estática. Para Next.js, a página deve ser dinâmica para receber atualizações em tempo de execução (por exemplo, use
generateStaticParams,generateMetadata,getServerSidePropsougetStaticPropsadequadamente para evitar restrições de somente estático). - No CMS, cada dicionário possui uma flag
live. Apenas dicionários comlive=truesão buscados via API de sincronização ao vivo; os demais são importados dinamicamente e permanecem inalterados em tempo de execução. - A flag
liveé avaliada para cada dicionário no momento da compilação. Se o conteúdo remoto não foi marcado comolive=truedurante a compilação, você deve recompilar para habilitar a Sincronização ao Vivo para esse dicionário. - O servidor de sincronização ao vivo deve ter permissão para escrever em
.intlayer. Em contêineres, assegure o acesso de escrita a/.intlayer.