Skip to content

Localization

Enable content languages per site. Entry text / textarea / tiptap fields and master labels can be per-locale. The Public API resolves them with ?locale=.

Done state

ItemState
Site localesON under Settings → Site, with languages + default locale
Fieldstext / textarea / tiptap are per-locale (use locale_shared when shared)
Public check?locale=ja (etc.) returns expected copy
OptionalRan AI locale translation once (Standard+)

When to use

  • Serve the same entry in ja / en (and more)
  • Localize master display labels only (value stays locale-stable)
  • Ask an agent to draft translations (Standard+)

Plan limits

ItemFreeSolo / Standard / Business+
Content locales featureYesYes
Max locales23
AI locale translationNoStandard+

Available locale keys: default (English), ja, en (en is dropped when both default and en are present).

Checklist

  • [ ] Turned on Settings → Site → Content locales
  • [ ] Locale count within plan limit
  • [ ] Filled language tabs on an entry and published
  • [ ] Filled master labels for needed locales
  • [ ] Know AI translation is unavailable on Free / Solo

Do this now

  1. Enable locales under Settings → Site (e.g. default + ja)
  2. Edit an entry per language tab and publish
  3. Verify via Public API
bash
curl "https://api.luno.rest/public/p/{projectId}/v1/form-sets/blog/entries/my-post?locale=ja"
curl "https://api.luno.rest/public/p/{projectId}/v1/master-entities/category/records?locale=ja"
ts
const BASE = 'https://api.luno.rest/public/p/{projectId}/v1'
await fetch(`${BASE}/form-sets/blog/entries/my-post?locale=ja`)
bash
# Standard+: “Translate this entry to ja” → translate_entry_locales
# Toggling site locales requires tenant_admin JWT

Next

GoalPage
Ops detailContent management
AI assistAI assist
MCP translationAI Agents guide
Pricing & plansluno.rest