1.4 KiB
1.4 KiB
created, title, area, severity, files
| created | title | area | severity | files | |||||
|---|---|---|---|---|---|---|---|---|---|
| 2026-10-07T16:31:50.525Z | Translate Messages as a Nuxt i18n JSON editor | sm-translate-plugin | minor |
|
Problem
WinterCMS translate registers two settings entries: Locales and Messages. Messages
manages CMS theme Twig strings such as {{ 'x.y.z'|_ }}, stored in a messages table.
SummerCMS apps are headless and have no server-rendered theme strings, so the Go port
(quick 261007-p4y) registers only Locales. The frontend strings live in the Nuxt app's
i18n locale JSON files, which admins currently cannot edit.
Solution
Integrate Nuxt i18n with the translate plugin as an i18n JSON editor, not a WinterCMS-style messages table:
- admin screen edits per-locale message keys (nested JSON, one column per enabled Locale), with missing-key highlighting against the default locale;
- the backend serves the merged messages to the Nuxt app (e.g. a lazy-load endpoint per locale that @nuxtjs/i18n can fetch), with the bundled JSON as fallback;
- register as a second controller-link settings entry (
pact.SettingsItem.Controller) under the Translate category, next to Locales. Open questions: storage (DB rows vs. versioned JSON), how keys are discovered/synced from the Nuxt repo, caching and invalidation on edit.