Core Features
gcms Multilingual Sites: Language Paths, Translation Groups and hreflang
Every language gets its own paths, content and hreflang, so each one works as an entry point you can run on its own.
Translating the UI is the easy part of going multilingual. The harder part is giving each language clean URLs and telling search engines how the language versions relate. gcms is built around that, from routing to SEO markup.

One language, one path
/zh/…, /en/… — each language gets its own URL prefix, and can even use its own slugs. Clean to share, clean to index.
Content maintained per language
Versions of the same article are linked by a translation group, so you edit and publish each independently. Not translated yet? That page simply doesn't appear in that language — no half-finished stubs.
hreflang, automatically
Every page emits hreflang alternates (including x-default), telling search engines which language versions exist so they can match readers with the right one. For canonical, sitemap and the other tags generated alongside it, see the SEO markup gcms outputs by default.
Custom locales too
A set of locales ships built in, and you can add any locale from the admin — a new language without a line of code.
Default language is a fallback
The default language is a fallback rule, not a forced redirect. If the visitor's browser language is outside your enabled locales, gcms falls back to the default; if the URL already says /zh/ or /en/, the path wins. That is calmer for users and clearer for search engines.
The page you're reading has a Chinese version. Try the language switcher, top right.