Skip to content

Wizard: per-option ⓘ help markers, everywhere, in 26 languages - #13

Merged
Le-Syl21 merged 5 commits into
mainfrom
wizard-help-icons
Jul 10, 2026
Merged

Le-Syl21 merged 5 commits into
mainfrom
wizard-help-icons

Conversation

@Le-Syl21

@Le-Syl21 Le-Syl21 commented Jul 9, 2026

Copy link
Copy Markdown
Owner

What

Every configuration option in the wizard now carries a small ⓘ marker next to its label:

  • Hover → the help shows as a quick tooltip.
  • Click → it pins in a popup that stays open until you click elsewhere (easier on a pincab than holding a hover).

New shared helper app::help::help_marker — 47 markers across screens / rendering / inputs / audio / tilt / tables / system / outputs.

Why

Help used to be discoverable only by hovering the widget itself (nothing signalled it existed), and some options had no help at all. Now there's one consistent, visible affordance on every setting.

Content

  • Reuses the existing per-option hint keys (already translated) wherever they existed — most options needed no new text.
  • Permanent "weak" hint blocks and the sync-mode note are folded into the ⓘ instead of always cluttering the page (autostart, desktop integration, mirror URL, VPX install dir, external DMD, VBS patch, catalog, VSync).
  • New help written for options that had none: tilt sensitivity / deadzone / threshold, FPS limit, Show FPS, Sound3D mode, display mode, merge strategy.
  • Touch-screen option: dropped the (rustdesk, VNC...) label suffix; the rationale (a remote pointer registering as touch input) moved into the help.
  • Written for a general audience, not just cabinet experts — the desktop-mode newcomer path matters too. Jargon is spelled out (backglass, DMD), everyday words preferred ("shake the cabinet" over "nudge").

i18n

  • The six Sound3D mode radio labels were hardcoded English in audio.rs; they're now i18n keys (translated at the call site), so the buttons read in the user's language and match the mode help (Legacy/New → localized).
  • The 16 new/changed strings are translated into all 26 locales. Validated: every locale is valid TOML with 16/16 keys and no leftover label suffix.

Checks

cargo fmt --check, cargo build, cargo clippy --all-targets -- -D warnings, and the Sound3DMode unit tests all pass.

🤖 Generated with Claude Code

Le-Syl21 and others added 5 commits July 9, 2026 11:53
Every wizard setting now carries a small ⓘ marker next to its label:
hovering shows the help as a tooltip, clicking pins it in a popup that
stays open until you click elsewhere (easier on a pincab than holding a
hover). New shared helper `app::help::help_marker`.

- 47 markers across screens/rendering/inputs/audio/tilt/tables/system/outputs.
- Reuses the existing per-option hint/desc/help i18n keys (already translated),
  so most options need no new strings.
- Permanent "weak" hint blocks and the sync-mode note are folded into the ⓘ
  instead of always cluttering the page (autostart, desktop integration,
  mirror URL, VPX install dir, external DMD, VBS patch, catalog, vsync).
- New help written for options that had none: tilt sensitivity/deadzone/
  threshold, FPS limit, Show FPS, Sound3D mode, display mode, merge strategy.
- Touch-screen option: dropped the "(rustdesk, VNC...)" label suffix and moved
  the rationale into its help (a remote pointer registering as touch input).

Only en.toml is updated here; the 25 other locales fall back to English
(fallback = "en") until the translation pass lands.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0138mtPxwfXPetBypyjp6KwU
- Translate the 16 new/changed help strings into French, written for a
  general audience (desktop-mode newcomers, not just cabinet enthusiasts):
  "flipper/caisse" not "meuble", "secouer" not "nudger", backglass/DMD spelled
  out, "Historique/Nouveau" for the SSF Legacy/New variants.
- The six Sound3D mode radio labels were hardcoded English in audio.rs; move
  them behind i18n keys (label() now returns the key, translated at the call
  site) so the buttons read in the user's language and match the mode help.

en + fr done; the other 24 locales follow in the next commit (fallback = "en"
keeps everything working meanwhile).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0138mtPxwfXPetBypyjp6KwU
Completes the per-option ⓘ help across every supported language. Each locale
gets the 14 new keys (tilt/rendering/audio/display/merge help + the six Sound3D
mode labels) and the two updated screens_disable_touch strings, translated in
the same plain, general-audience register as the French reference (jargon spelled
out, Legacy/New localized, VPX/SSF/DMD/RustDesk/VNC/TeamViewer kept as-is).

All 26 locales validated: valid TOML, 16/16 keys present, no leftover
"(rustdesk, VNC...)" label suffix.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0138mtPxwfXPetBypyjp6KwU
…dable

Two copy corrections across all 26 locales, from user review:

1. screens_vpx_auto_hint said it downloads "the latest Visual Pinball X".
   It actually installs a recent build of the PinReady-validated VPX fork
   (Le-Syl21/vpinball), not the official VPX — corrected everywhere.

2. Help texts that enumerate choices/cases are now bullet lists with line
   breaks instead of dense paragraphs, and all semicolons are gone (split
   into sentences). Applies to: screen count, display mode, nudge sensor
   type, TILT threshold, supersampling, Sound3D mode, merge strategy (bulleted),
   plus MSAA/FXAA/sharpen/reflections/texture-size/physical-size (de-semicoloned).
   The display-mode and nudge-sensor helps use each locale's own button labels
   (e.g. FR "Bureau", not "Desktop").

All 26 locales validated: valid TOML, bullets present, zero semicolons.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0138mtPxwfXPetBypyjp6KwU
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0138mtPxwfXPetBypyjp6KwU
@Le-Syl21
Le-Syl21 merged commit ea106aa into main Jul 10, 2026
6 checks passed
@Le-Syl21
Le-Syl21 deleted the wizard-help-icons branch July 10, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant