Commit 25d2656
committed
Resolves FR-2645
## Summary
This PR addresses the two findings from the FR-2645 audit of `packages/backend.ai-webui-docs/`:
1. **Policy fix** — Resolves the contradiction in `SCREENSHOT-GUIDELINES.md` (one section said "language-specific captures", another said "always capture in English"). The authoritative rule is now: **screenshots must be captured in the locale that matches the destination directory.**
2. **Dark-mode fix** — Replaces 6 dark-mode WebUI screenshots with light-mode recaptures, captured in the matching UI locale for each language (`en/`, `ko/`, `ja/`, `th/`).
## Changes
### `SCREENSHOT-GUIDELINES.md`
- Removed the contradictory line *"Always capture in English regardless of which language directory the screenshot will be saved to"* (added in PR #6631 / commit `a7033c9430`).
- Renamed *File Location* section → *File Location and Localization*.
- Made the language-specific capture rule a MUST, with explicit per-directory mapping (ko → 한국어, ja → 日本語, th → ภาษาไทย, en → English).
- Defined explicit "single-language exception" criteria (no UI text — diagrams, terminal output, third-party tools).
- *Capture Standards › Content* now forward-references the localization rules instead of duplicating them.
### Image replacements (6 × 4 languages = 24 PNGs)
| Filename | Original framing | New capture | Locale-specific labels |
|---|---:|---:|---|
| `sessions_page.png` | 2880×1800 (full page) | 1440×900 (full page) | sidebar/breadcrumb/filter/columns |
| `data_page.png` | 2880×1800 (full page) | 1440×900 (full page) | sidebar/Active/Trash tabs/filter/columns |
| `rename_vfolder.png` | 2592×1590 (folder explorer) | 1296×795 (folder explorer, rename mode) | toolbar buttons/property table headers |
| `vfolder_create_modal.png` | 1300×1060 (modal only) | 650×530 (modal only) | field labels/radio options/buttons |
| `vfolder_delete_dialog.png` | 1040×692 (modal only) | 520×346 (modal only) | warning text/instructions/buttons |
| `move_to_trash.png` | 832×276 (modal only) | 416×138 (modal only) | title/buttons |
All new captures match the original framing scope (full page vs. modal-only) per the SCREENSHOT-GUIDELINES preflight checklist. Captures are 1× (non-retina) per guideline preference; total disk footprint reduced by ~70% per file.
## Capture process
For each language:
1. Navigate to `/usersettings`, switch UI language to the target locale.
2. Capture each of the 6 screens at 1440×900 viewport (light mode, React Grab toolbar hidden).
3. For modal-only captures, crop the viewport screenshot to the dialog's exact bbox using `sips`.
4. Save to `src/{lang}/images/{filename}.png`.
5. After all 4 languages, reset UI back to English.
## Verification
- Re-ran the dark-mode detector after applying changes — 0 Backend.AI WebUI screenshots flagged. Remaining dark candidates (`vscode_connect_finish.png`, `mlflow_first_execution.png`, `bad_permissions.png`) are intentionally dark third-party UIs.
- Visually confirmed each of the 24 PNGs renders the correct locale UI text (sidebar menus, button labels, dialog titles).
## Follow-up work (out of scope for this PR)
This PR only re-captures the 6 dark-mode files. The broader audit found ~280 additional images per language directory that are still byte-identical to `en/` (English UI). Those should be re-captured in the matching locale per the new guideline; recommend creating section-by-section sub-tasks under FR-2645 (e.g., per documentation chapter: vfolder, sessions, admin_menu, rbac_management, etc.) since the volume (~840 captures) is too large for a single PR.
## Notes for reviewers
- **Folder data**: `data_page` shows 1–2 active folders depending on quota state at capture time (5-folder quota was at the limit because trash items count); original showed 3. Framing identical.
- **Folder names in dialogs**: dialogs show `e2e-mod-{83xbfn,dt2hqj,rjc9pl}` instead of the original `doc-capture-delete-test`. Dialog UI is identical.
- **Empty file list**: Korean `rename_vfolder.png` shows the empty-folder state (newly created folder). Japanese and Thai versions show the populated `e2e-mod-rjc9pl` folder (same data as original: `config 2.toml`, `model-definition.yaml`, `service-definition.toml`, `mock_openai_server.py`).
- 5 trash items remain in DELETE-PENDING in the dev environment (3 pre-existing + 2 created during capture). Auto-purges, but can be manually purged if desired.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
1 parent 17f951c commit 25d2656
25 files changed
Lines changed: 41 additions & 5 deletions
File tree
- packages/backend.ai-webui-docs
- src
- en/images
- ja/images
- ko/images
- th/images
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
36 | | - | |
37 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
38 | 74 | | |
39 | 75 | | |
40 | 76 | | |
| |||
51 | 87 | | |
52 | 88 | | |
53 | 89 | | |
54 | | - | |
| 90 | + | |
55 | 91 | | |
56 | 92 | | |
57 | 93 | | |
| |||
0 commit comments