Multilingual

Your site in several languages, without losing your addresses.

One option to tick, one language to add: each page gets its translated version, under /en/, /es/, /de/ or /it/. Your current addresses don't move, and neither does your search ranking.

Turning on a language

The option is off by default: a site that updates changes neither its addresses, nor its tags, nor its cookies. It is switched on in Settings › Site languages, where you add one or more languages among English, Spanish, German and Italian.

  1. The original language keeps its addresses, with no prefix: /nos-tarifs/ stays /nos-tarifs/. The others live under their code: /en/pricing/.
  2. The visitor chooses. A « Languages » link in the footer leads to a selection screen; the chosen language is kept in a cookie. Never a redirect based on the browser's language: whoever lands on an address reads that address.
  3. Removing a language deletes nothing. Its pages and records go back to draft and stay there; the screen tells you how many before you confirm.

Through the API, or by asking Claude

GET /api/agent/v1/langues/
{ "multilingue": false, "langue_d_origine": "fr",
"langues": [], "langues_proposees": ["en", "es", "de", "it"] }

PATCH /api/agent/v1/langues/
{ "multilingue": true, "langues": ["en"] }

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.

  1. One row per page in the admin. You switch language inside it; a language without a version offers « Duplicate ».
  2. The editor opens the version you are looking at. From an English page, « Edit this page » opens the English one.
  3. 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.
  4. 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.

Everything follows the reader's language

Translating pages isn't enough: a link back to French in the middle of an English page breaks the reading. In JEIKO, every link to a page leads to the version the visitor is reading.

  1. A single menu, each entry carrying its title per language; categories are translated the same way, in place.
  2. Links typed in a text, buttons, page grids and footers follow the reader.
  3. Records and products also have one version per language, created by a button on their screen. The product stays unique: price, stock, reference and images apply to every language. Record models and product types are translated in place, address included.
  4. Search engines: <html lang>, hreflang tags, sitemap and llms.txt announce every version.
  5. Fixed screens — sign-in, sign-up, account, cart, checkout, appointments, courses, questionnaires, error pages, cookie banner — are already translated into English, Spanish, German and Italian.

The admin, in your language

Independently of the public site, the admin and the page editor display in French, English, Spanish, German or Italian. The admin bar keeps its language even while you browse an English page.

What stays in the original language

  1. Emails go out in the site's language, even when triggered by an English-speaking visitor.
  2. Legal pages (legal notice, terms of use, terms of sale) have no language versions.
  3. The content of questionnaires and courses has no per-language version yet; their screens, however, are translated.

Translation is done by hand, or by Claude through the API: no AI is wired into the site, no key to provide, no text sent to a third-party service.

Connect ClaudeAI-driven management