# 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.