Internationalization
Serve your documentation in multiple languages from per-locale content folders.
lily-pad is multilingual out of the box, powered by paraglide.
Locale folders
Each locale gets its own root under content/:
The base locale is served unprefixed (/docs/getting-started); other locales get a URL prefix (/ko/docs/getting-started).
Adding a locale
- Add the locale code to
localesinproject.inlang/settings.json. - Create
content/<locale>/and translate pages into it. - Add the locale's UI strings to
messages/<locale>.jsonand its labels tolily-pad.config.ts(nav,rootSection).
The language dropdown, URL prefix, and search index pick the new locale up automatically.
Fallback
A page that has not been translated yet falls back to the base locale — the sidebar always shows the full tree, and nothing 404s just because a translation is missing.
Localized navigation
- Section titles come from the
sectionfrontmatter field, so each locale names its own sidebar groups. - Internal links written in markdown (
/docs/...) are localized automatically — readers stay in their language. - The language dropdown in the header switches locales while staying on the current page.
- Full-text search indexes each language separately, so results always match the reader's locale.