I’m creating my first Hugo site with an up to date version of both Hugo and the Congo theme.
All pages are translated (by adding the language code to the file name) and that works well.
The one thing that does not work: the blog posts (in the content/posts/ folder), will be in only one language each, but should show up in both languages’ posts page (/posts and /de/posts).
The News page is defined in the same way for both languages as:
[[main]]
name = 'News'
pageRef = 'posts'
weight = 40
I’ve managed to get the list of the latest post on both the en and de main pages by writing a custom layouts/_partials/recent-articles.html.
Is there any (not too cumbersome) way to use the same news in both languages?
Cascade a sites matrix to the relevant pages. Try it:
git clone --single-branch -b hugo-forum-topic-57396 https://github.com/jmooring/hugo-testing hugo-forum-topic-57396
cd hugo-forum-topic-57396
hugo server
After over-complicating this myself I found that Hugo handles this in a remarkably simple way as long as the config.files have the correct entries and the page bundles contain both index.md and index.de.md pages and also the i18n files contain the correct string translations that are also included in the templates. See an example here: Topspin Report: USA Edition - July 27, 2026 | Topspin Report
Do you have any reference where I can learn more about what the [[cascade]]command does?
I’ve read Front matter and a couple other pages in the official documentation, but it’s not clear to me what a matrix is, what the cascade exactly does, why there is languages = {'**'}and what it does (well, I guess it means: all languages; but where could I have learned about it?).