Localize the admin and authoring workflow
Configure interface catalogs, translated labels, RTL, timezones, and a separate content-locale workflow.
Ridu separates two choices: the content locale selects stored/fallback values, while the interface language translates admin controls and application labels. An editor can author Arabic content with the French interface and a Europe/Paris display timezone.
Configure interface choices
Declare languages/timezones in Admin.Localization and pass matching static catalogs to
mountAdmin. Ridu publishes complete English, French, and Arabic catalogs in
@riducms/translations:
import { ar, en, fr } from '@riducms/translations';
mountAdmin<RiduConfig>({
target,
clientFactory: () => createClient({ baseURL: window.location.origin }),
plugins: adminPlugins,
languages: [en, fr, ar]
});The matching Go config declares canonical language codes, labels, RTL state, IANA timezone IDs, and defaults. A configured language without a matching static catalog—or conflicting RTL metadata— fails closed. Authors persist interface language and timezone in their account preferences.
Application name, collections/globals, fields, choices, blocks, tabs, row labels, groups, and
timezones support typed translated labels. Plugin messages use namespaced build-validated catalogs.
Dates, numbers, plurals, and relative time use the active language/timezone through Intl.
Author localized content
The global content-locale switcher controls exact/fallback values, list filters, relationships, versions, and copy-locale operations. The admin shows the fallback source, protects dirty changes during a locale switch, and uses RTL editing direction where configured. Interface language never changes stored content, and content locale never changes interface copy automatically.
Verify the workflow
- switch English/French/Arabic interface catalogs and confirm direction/labels;
- switch timezones and confirm one stored timestamp formats differently without mutating it;
- edit one localized field in two content locales and verify the fallback source;
- reload/sign in again and confirm account preferences; and
- read exact and
locale: 'all'shapes through the generated SDK.
The complete Go configuration, catalog installation, fallback rules, APIs, and limitations are in Content localization.