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,24 @@
# Add a translation
Visual reference: `RenewCMS Screens Localization.dc.html`, group "L4 Add a translation".
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?dialog=add-translation&lang=fr`
### Add a translation (group "L4 Add a translation", 8 states)
| # | State | Trigger | Stable ID | Frame selector |
|---|---|---|---|---|
| 1 | Copy from source | Editor → language menu → Add translation | `loc.l4.form` | `at:form` |
| 2 | Start empty | Title only | `loc.l4.empty` | `at:empty` |
| 3 | Creating | Submit in flight | `loc.l4.saving` | `at:saving` |
| 4 | Exists, readable | 409 language_exists, Open offered | `loc.l4.dup` | `at:dup` |
| 5 | Exists, not readable | Neutral 409, no Open | `loc.l4.dupHidden` | `at:dupHidden` |
| 6 | Failed | 5xx, entries kept | `loc.l4.fail` | `at:fail` |
| 7 | Source unavailable | Source deleted or access lost mid-flow | `loc.l4.gone` | `at:gone` |
| 8 | Long dialog | Long title, many authors and images; body scrolls | `loc.l4.long` | `at:long` |
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.