One page per language
The English version of a page is a page in its own right, linked to the original. It is born by duplication — same sections, same images, same settings —, as a draft. All that is left is to translate the text, then publish.
- One row per page in the admin. You switch language inside it; a language without a version offers « Duplicate ».
- The editor opens the version you are looking at. From an English page, « Edit this page » opens the English one.
- A page not yet translated stays reachable under /en/: its original content, framed by the English menu, with a canonical reference to the original so no duplicate content is created.
- Deleting the original deletes its versions; you can also delete a single version.
Translating a page through the API
POST /pages/12/versions/ { "langue": "en" } → page 57, draft
PATCH /pages/57/ { "titre": "Pricing", "url_tag": "pricing",
"metadonnees": { "titre": "…", "description": "…" } }
PUT /blocs/<id>/contenu/ for each text block of page 57
PATCH /pages/57/ { "publiee": true }
This site is built exactly that way: every French page has its English version, translated block by block.