Content languages

Rigel CMS 1.2.0 adds optional content languages, independent of the editor’s interface languages.

Opt-in localized content

Configure contentLocales with a default locale and labeled choices. Annotate schema document types, article collections and existing defineCopy pages with locale. Each type can use different fields, sections, initial content and host layouts; language does not dictate a document structure.

The Content language dropdown sits directly below Search in the sidebar and shows a compact code such as EN when collapsed. It filters navigation, page lists, collections and search. Without contentLocales, or with only one configured locale, no selector appears. Unannotated content stays visible across languages, including shared records; language-specific shared types can also declare a locale.

Safe switching

Switching away from unsaved edits offers Save, Discard and Keep editing. A failed save keeps your language and edits; cancelling restores the selector and its focus. A completed switch closes content hidden by the new filter and returns focus to the language control.

Route-aware document slugs

Different document types can use the same slug when their explicitly configured public routes differ, such as /en/welcome/ and /fr/welcome/. Actual route collisions, including fixed copy-page mappings, remain errors. Same-type storage IDs remain unique. This also works without content-language filtering: preview document mappings, not locale labels, define route namespaces.

Host-owned localization

Astro still owns public routes, HTML lang, layouts, language-switch links and fallback behavior. Rigel does not infer localized routes, pair translations or translate content automatically. Filtering is an editing convenience, not authorization: the complete manifest and shared publishing batch remain available.

The public starter includes an optional English/French example enabled with RIGEL_CONTENT_MULTILANG=true. Existing single-language sites need no configuration changes.

Upgrade

pnpm add @rigel-cms/rigel@1.2.0

Restart the development server or rebuild your site after upgrading. Follow the content-language guide for complete schema, collection, copy-page and preview configuration. Interface language selection and Svelte extensions remain available since 1.1.0. GitHub media writes remain unimplemented in 1.2.0; add media through the repository workflow and rebuild its snapshot.