About this starter
This repository expands on the base Canopy template by adding the minimum files needed for a multilingual deployment. You still configure collections, manifests, and theming the same way—this starter simply layers on i18n conventions so you can copy/paste the working pieces into your own project.
✅ English content lives at content/…, Spanish lives at content/es/…, and both share the same navigation + layout shell.
Files to review
canopy.ymlsets up thelocalesarray and keeps English as the default.content/_app.mdxdisables the header's built-in language toggle so you can see the<LanguageToggle />rendered in the footer.content/es/index.mdx+content/es/sobre.mdxmirror their English counterparts and demonstrate how frontmatter inherits when omitted.content/es/locale.ymloverridesroutes.search/routes.worksto expose/es/buscarand/es/obrasin the URLs.content/es/navigation.ymllocalizes menu labels and links to the translated slugs.
Next steps
- Add more languages by creating additional
content/<lang>/directories and appending entries tocanopy.yml → locales. - Override per-directory layouts using
_layout.mdxif a section needs different typography or components per language. - When fanning out beyond English and Spanish, consider using
langfrontmatter plus<Html lang="…" dir="…">wrappers in_app.mdx.
Need a deeper reference? The source of truth for internationalization is documented at content/docs/i18n.