Content Collections para sitios trilingües en Astro
Cómo estructurar Content Collections en Astro para publicar posts en portugués, inglés y español sin perder control editorial.
Content Collections es una de las partes más fuertes de Astro para tratar contenido como datos estructurados. En un sitio trilingüe, ayudan a mantener disciplina: cada post necesita título, descripción, idioma, categoría, URL canónica, tiempo de lectura y metadatos consistentes.
Sin ese contrato, el blog crece rápido, pero se convierte en una carpeta de archivos difíciles de auditar y confiar.
La estructura de carpetas
Una estructura simple ya resuelve mucho:
src/content/blog/ptsrc/content/blog/ensrc/content/blog/es
Cada idioma queda aislado, pero todos comparten la misma collection. Eso permite filtrar por prefijo, ordenar por fecha y reutilizar los mismos componentes de card, artículo y posts relacionados.
La clave es no mezclar la decisión editorial con la ruta pública. La carpeta indica el idioma. El slug indica la URL. El canonicalId conecta las traducciones.
El schema como contrato
El schema de la collection es la barrera de calidad. Fuerza campos obligatorios e impide que un post incompleto rompa el sitio después.
Campos importantes para un blog trilingüe:
languagecanonicalcanonicalIddisplayDatebackLabeltocLabelsourcesHeadingtocsources
Cuando esos campos se validan, el layout puede confiar en los datos. Eso reduce condicionales repartidas por los componentes y vuelve más predecible la automatización.
Rutas separadas por idioma
Las páginas pueden ser simples:
/blog/[slug]para portugués./en/blog/[slug]para inglés./es/blog/[slug]para español.
Cada ruta filtra solo los posts de su propio idioma y usa la misma función para generar URL, posts relacionados y alternates.
Este diseño evita un router internacional complejo antes de tiempo. Para un sitio estático personal o editorial, la claridad vale más que la sofisticación prematura.
Cómo escala esto
Cuando el volumen aumenta, la estructura sigue funcionando. Nuevos posts entran como archivos. Nuevos idiomas pueden ganar nuevas carpetas. Las automatizaciones pueden generar frontmatter respetando el schema.
El punto más importante es que el contenido deja de ser improvisado. Se convierte en una base legible, versionada y lista para ser alimentada por una cadena con n8n, Baserow o cualquier otro backend editorial.