chore: articles localization groundwork

This commit is contained in:
Florian Sylvain committed 2026-10-31 21:22:44 +01:00
1 parent 0bdcca8a90
commit 99a74dc3a2
23 files changed
+3524

No files matched your search

@@ -0,0 +1,34 @@
# Editor: language navigation
Visual reference: `RenewCMS Screens Localization.dc.html`, group "L5 Editor: language navigation".
Read [localization.md](../localization.md) first. Its integration decisions supersede conflicting board annotations. These states describe target behavior, not shipped behavior.
Route: `/article/{id}/edit (one id per version)`
### Editor: language navigation (group "L5 Editor: language navigation", 18 states)
| # | State | Trigger | Stable ID | Frame selector |
|---|---|---|---|---|
| 1 | Default (French draft) | Editable title, language menu, badges | `loc.l5.default` | `ed:default` |
| 2 | Menu: four languages | Open menu | `loc.l5.menu` | `ed:menu` |
| 3 | Menu: two languages | Two-language site | `loc.l5.two` | `ed:two` |
| 4 | Menu: many languages | Scrolls inside the viewport, with filter | `loc.l5.many` | `ed:many` |
| 5 | Unsaved changes | Dirty badge; Save enabled | `loc.l5.dirty` | `ed:dirty` |
| 6 | Unsaved draft: Save and publish | Button reads Save and publish French; Save stays separate | `loc.l5.dirtyPublish` | `ed:dirtyPublish` |
| 7 | Unsaved online version | Save updates the live page; Unpublish stays available | `loc.l5.onlineDirty` | `ed:onlineDirty` |
| 8 | Save failed | Stays unsaved; Try saving again; nothing published | `loc.l5.saveFail` | `ed:saveFail` |
| 9 | Switch with unsaved changes | Choose English while dirty | `loc.l5.unsaved` | `ed:unsaved` |
| 10 | Saving | Save in flight | `loc.l5.saving` | `ed:saving` |
| 11 | Saved | Toast | `loc.l5.saved` | `ed:saved` |
| 12 | Loading version | Slow switch | `loc.l5.loading` | `ed:loading` |
| 13 | Switch failed | Stays on current version | `loc.l5.navFail` | `ed:navFail` |
| 14 | Version unavailable | Deleted or no access (neutral) | `loc.l5.gone` | `ed:gone` |
| 15 | Title: editing | Focus | `loc.l5.focus` | `ed:focus` |
| 16 | Title: invalid | Empty | `loc.l5.invalid` | `ed:invalid` |
| 17 | Title: saving | | `loc.l5.titleSaving` | `ed:titleSaving` |
| 18 | Title: save failed | Text kept, still unsaved, Try again | `loc.l5.failed` | `ed:failed` |
Exact rendered copy and geometry are in `source/LocaleFrame.dc.html` for the selector above. Use Nuxt UI mappings in `components.md`; the frame markup is a visual reference, not production component code.
The standard captures are 1440×900 and 390×844 in light and dark. The narrow reference state also uses 1024×768. The visual harness must support these sources and sizes before this screen can pass its gate. No visual exceptions or new clock-sensitive skips are approved.