---
title: "Content languages | Rigel CMS changelog"
url: "https://rigelcms.dev/changelog/v1.2.0"
description: "Rigel CMS 1.2.0 adds opt-in content-language filtering, explicit locale metadata and route-aware document slug validation."
---

# Content languages

October 29, 2026

Rigel CMS 1.2.0 adds optional [content languages](/docs/content-languages/), independent of the editor’s [interface languages](/docs/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](/docs/content-languages/) 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.