← Diário de Construção

Content Collections para sites trilíngues no Astro

Como estruturar Content Collections no Astro para publicar posts em português, inglês e espanhol sem perder controle editorial.

Content Collections são uma das melhores partes do Astro para quem quer tratar conteúdo como dado estruturado. Em um site trilíngue, elas ajudam a manter disciplina: cada post precisa carregar título, descrição, idioma, categoria, URL canônica, tempo de leitura e metadados consistentes.

Sem esse contrato, o blog cresce rápido, mas vira uma pasta de arquivos difíceis de auditar e confiar.

A estrutura de pastas

Uma estrutura simples já resolve muito:

  • src/content/blog/pt
  • src/content/blog/en
  • src/content/blog/es

Cada idioma fica isolado, mas todos compartilham a mesma collection. Isso permite filtrar por prefixo, ordenar por data e reaproveitar os mesmos componentes de card, artigo e posts relacionados.

O segredo é não misturar a decisão editorial com a rota pública. A pasta indica o idioma. O slug indica a URL. O canonicalId conecta as traduções.

O schema como contrato

O schema da collection é a barreira de qualidade. Ele força campos obrigatórios e impede que um post incompleto quebre o site depois.

Campos importantes para um blog trilíngue:

  • language
  • canonical
  • canonicalId
  • displayDate
  • backLabel
  • tocLabel
  • sourcesHeading
  • toc
  • sources

Quando esses campos são validados, o layout pode confiar nos dados. Isso reduz condicionais espalhadas pelos componentes e torna a automação mais previsível.

Rotas separadas por idioma

As páginas podem ser simples:

  • /blog/[slug] para português.
  • /en/blog/[slug] para inglês.
  • /es/blog/[slug] para espanhol.

Cada rota filtra apenas os posts do próprio idioma e usa a mesma função para gerar URL, posts relacionados e alternates.

Esse desenho evita um roteador internacional complexo antes da hora. Para um site estático pessoal ou editorial, clareza vale mais que sofisticação prematura.

Como isso escala

Quando o volume aumenta, a estrutura continua funcionando. Novos posts entram como arquivos. Novos idiomas podem ganhar novas pastas. Automações podem gerar frontmatter respeitando o schema.

O ponto mais importante é que o conteúdo deixa de ser improviso. Ele vira uma base legível, versionada e pronta para ser alimentada por uma esteira com n8n, Baserow ou qualquer outro backend editorial.

Documentação