Official module

Translation

Per-field localisation with language fallbacks and a translation workflow. One content model, every locale, resolved through the same API your themes and apps already use.

Availablev1.0API-firstOfficial · by Atypisch
What it does

Built to one standard, wired into the core.

Every capability integrates with permissions, validation, migrations and the headless API. Nothing bolted on the side.

Per-field localisation

Mark any field translatable and the editor shows a clean tab per locale. Structure stays identical across languages.

Fallback chains

Untranslated fields fall back to a default locale automatically, so a page is never half-empty.

Translation workflow

See at a glance what is translated, what is stale and what is missing, per locale.

Locale-aware API

Request any locale over the public REST API with a single parameter. The shape never changes.

Roles per language

Grant translators access to the locales they own, and nothing else.

Cached per locale

Locale is part of the cache key, so every language stays as fast as the default.

In your model

Translatable is one checkbox.

Mark a field translatable in the Post Types builder and Modular handles the rest: per-locale storage, a tabbed editor, fallbacks and a locale-aware API.

No schema fork

One post type, many locales. You do not duplicate models per language.

Fallbacks built in

Default-locale values fill any gap automatically.

Workflow aware

Track translation status alongside your publishing workflow.

field schema (component_definitions)json
{
  "fields": [
    { "name": "title", "type": "text",    "translatable": true },
    { "name": "body",  "type": "wysiwyg", "translatable": true }
  ]
}

// locales are configured in the admin Modules screen

Request a locale

REST
GET /api/v1/public/posts/field-notes-7?type=articles&locale=dejson
{
  "id": 142,
  "locale": "de",
  "title": "Feldnotizen, Nr. 7",
  "slug": "feldnotizen-7",
  "_fallback": [ "excerpt" ]   // fields served from default locale
}
What is included

Everything in one install.

Tabbed editor

A locale switcher on every translatable field, with status badges.

Fallback engine

Per-field and per-locale fallback chains you control.

Translation dashboard

Coverage per collection and locale, with missing-string reports.

Locale routing

Theme routes and the API both resolve by locale.

All modules

Full documentation. Installation, configuration, every option and the API reference live in the Translation module docs. Building your own instead? Read building a module.

Add Translation to your install.

Drop it in public/modules, activate it in the admin Modules screen, and its migrations run on activation. Reviewed, supported, and free to self-host.