Nexus CMS

Localization (i18n)

Edit locales your site already declares — with RTL overlay support.

Nexus is locale-source-agnostic. A region's stable id is its identity across every language, so a translation is just another value under the same id.

Declare locales in config

Locales must come from your project — Nexus does not invent languages in the editor UI.

nexus.config.ts
export default defineConfig({
  defaultLocale: "en",
  locales: ["en", "ar"],
});

The editor language menu only lists these codes. To add French, update nexus.config.ts (and your app's i18n routing), regenerate if needed, then switch in the overlay.

Editing a translation

  1. Open the language menu in the bottom toolbar (Pro+ when locales are enabled).
  2. Switch to a declared locale (RTL locales show an RTL badge).
  3. Edit regions inline; the overlay chrome mirrors for RTL (dir="rtl").
  4. Prefer this locale only when saving translations; use all locales for shared brand strings.

How identity works

{
  "hero.section0-h11": {
    "value": {
      "en": "A CMS that adapts to your frontend",
      "ar": "نظام إدارة محتوى يتكيّف مع واجهتك الأمامية"
    }
  }
}

When a locale has no value, Nexus falls back to the default locale only.

RTL

isRtlLocale / localeDirection from @nexus-cms/core drive:

  • dir / lang on the host document (runtime)
  • Overlay shadow-root direction so toolbars and panels mirror correctly

You still need your site styles to support RTL for content layout — Nexus does not rewrite your CSS.

On this page