Multilingual from day one

Retrofitting a second language is the kind of task that looks like an afternoon and turns into a weekend. Every content file needs a counterpart, every menu entry needs a translation, every data file needs a variant, and every hardcoded date format turns out to be English.

Configuring it up front costs almost nothing, even if you only ever ship one language.

toml
defaultContentLanguage = "en"
defaultContentLanguageInSubdir = true

[languages]
  [languages.en]
    label = "English"
    weight = 1

Content files then carry their language in the filename: about.md and about.de.md sit side by side and Hugo pairs them automatically.

The theme’s own strings live in i18n/, and your site can override any of them by shipping a file with the same name. Nothing forces you to add the second language today. It just stops being expensive.