Content · 8 / 23
Languages
Each record has one row per language, every field is marked shared or translated, and coverage shows from the editor.
The fields marked “All locales” were copied from the en version and are still written in that language. Translate them here and they change in every locale.
How far each language has been taken
Across 248 localized records in 2 content types.
How it works
- 01
Mark a content type as localized, and each field as shared or translated.
- 02
Add a language from the entry’s locale switcher. Shared fields come with it.
- 03
See coverage per record here, and per language on Insights.
- Rows
- One per language
- Shared fields
- Written once for every locale
- Publishing
- Per locale, or all locales at once
In depth · For teams selling in more than one market
Each language is a full record
Every language of an entry is its own row with its own status and history, sharing one identity with its siblings.
One row per language
Each language row is a complete entry with its own status, published date and version history, so the German page can be live while the English one is still being written.
Under the hood
A shared field has one value across the whole record, so a price or a product code is identical everywhere. A localized field is written per language.
| Content type | English | German | French | Japanese |
|---|---|---|---|---|
| Article | Yes | Yes | Yes | draft |
| Product | Yes | Yes | Yes | Yes |
| Landing page | Yes | Yes | No | No |
| Author | Yes | No | No | No |
Editing a shared field
The new value reaches every sibling in one transaction. Published siblings drop to Modified and are re-validated, and the editor first shows exactly what would change in each other language.
Under the hood
Links belong to the record. Where the target is translated, each sibling gets the target in its own language, or the link stays unset until that translation exists.
The rules in one place
Show the table
| Behaviour | What it means |
|---|---|
| Shared field | The default. One value for the whole record. |
| Localized field | Written per language, marked with a globe. |
| Public API | Strict: a missing language is simply absent. |
| Strict listing | A French list shows French rows only. |
| Widened listing | Falls back to the default-language row on request. |
| Publishing | Each language row is published on its own. |
Starting a new language
- It inherits the record
- A new translation starts with the links of an existing sibling, such as the author and tags.
- Unchanged siblings are left alone
- A sync that changes nothing writes nothing, so timelines stay free of noise.
- The assistant drafts translations
- It proposes into the sibling row, one entry or a batch; a person reviews and publishes.
- Coverage is on the dashboard
- See the gap by language or by content type.
Questions
Can I add a language later?
Yes. Locales are configuration, so adding one migrates nothing.
What does the API return for a missing language?
Nothing. A site that wants a fallback asks for ?translations=preview and picks the language it wants to show.
Do translations need their own review?
Yes. Each language is published on its own, and a protection rule is met language by language.