2026-07-31 W7: localization, cache, and microcopy

Superseded β€” 2026-07-31

The 1,489-entry catalog count and the User β†’ User translation are superseded by the 2026-07-31 W8 SSOT capability pass, which retracts its own intermediate 1,563 figure and closes at 1,644/1,644; the catalog has since closed at 1,650 total entries / 1,648 real msgids (the changelog, 2026-08-19). Preserved as observed.

Scope and release boundary

This is a bench-local runtime pass. The QuizWizz archive does not include the canonical source repository, pinned toolchain, lockfiles, or release pipeline. Nothing below is a release artifact or release authorization.

Delivered bench changes

  • Microcopy:
    • condensed repeated control labels across settings, builder, player payload, embeds, list tables, and meta boxes
    • primary progression actions retain visible text
    • secondary icon-only actions use the existing inline icon renderer plus both aria-label and native title
    • accessibility check at desktop and 390 px found zero empty-name icon-only buttons and no horizontal document overflow on the checked settings/builder routes
  • German:
    • regenerated the POT and reconciled quizwizz-de_DE.po
    • catalog integrity after the update: 1489 active PO entries, 1489 active POT entries, zero fuzzy entries, zero missing POT msgids, zero untranslated singular/plural translations, and zero remaining formal-address regex hits
    • converted 68 formal-address translations to informal Du tone; translated 49 newly introduced msgids; shortened 20 surviving German controls
    • required examples now include Clean β†’ Keine, Any mix β†’ Mix, Always β†’ Immer, and User β†’ User
    • rebuilt the German MO and JSON catalogs using wp i18n make-json --no-purge; all required PHP MO plus nine named script JSON handles remain present, and available_interface_langs() returns auto, en, de
  • Cache invalidation:
    • corrected six direct Dashboard/MetaBoxes asset enqueues to use Plugin::asset_version() rather than static QUIZWIZZ_VERSION
    • browser control, cache enabled: after re-installing identical assets to advance their mtimes, normal reload still used ?ver=1.10.0 and reported transferSize: 0 for all six direct paths
    • after the source correction, normal reload emitted fresh 1.10.0.<mtime> URLs and nonzero transfer sizes for all six paths
    • the player’s inherited version was inspected and left unchanged because its registration already derives an mtime version
  • A70 title density:
    • the runtime metadata filter now supplies Quiz for the generated quiz block and source-defined block titles are Builder, Library, and Subjects; build/ was not edited
    • desktop inserter measurement observed Quiz and Builder as equal-height 90 px tiles. This is limited evidence; the canonical-source block surface remains owner-owned below.

Verification

  • plugin status: Active, QuizWizz 1.10.0
  • PHP lint: every changed PHP file passed in the WordPress container
  • standing probe harness: ./scripts/quizwizz-probe.sh --wave all β†’ assertions=30 failures=0
  • Debug-log inspection: no debug log exists because the running WordPress configuration reports WP_DEBUG=false and WP_DEBUG_LOG=false; therefore no new PHP fatals were emitted to a disabled log sink.
  • cache-disabled hard reload: live Settings and Questions routes loaded cleanly with no document horizontal overflow and zero unnamed icon-only buttons; the separate W4 control/fix reloads used cache enabled.
  • forced plugin German, desktop:
    • Settings rendered Immer and User
    • builder rendered Mix
    • settings and builder had no document horizontal overflow and no unnamed icon-only buttons
  • forced plugin German, 390 px:
    • builder rendered Mix, with no overflow and no unnamed icon-only buttons
    • settings page title rendered in German; the top-window extraction did not contain the deferred exposure controls, so this is not an exhaustive forced-German proof
  • temporary block verification post 927 was deleted; iface_lang was restored to auto.

Explicitly deferred / not bench-fixable

  • W3 exhaustive forced-German catalog/render proof remains open. This pass verifies selected rendered surfaces and complete local catalog files; it does not substitute for release-owner catalog regeneration and exhaustive owner-approved rendering proof.
  • W4 beyond-browser cache behavior remains open. The browser proof covers the six direct admin assets; response caches, CDN/edge behavior, and release-owner authorization remain unmeasured.
  • A71, A72, A73, and A77 remain release-owner work in compiled build/quiz/index.js / editor CSS. The bench has no uncompiled block source or locked builder. The empty combobox theory is not resolved by show_in_rest: qw_subject is REST-visible and the bench has 89 subject terms and 8 published quizzes. No shadow editor script was added.
  • Fixture-dependent W6 branches remain open: library/subjects empty states, unavailable embed, player network failure/retry, editor invalid-save error, and auto-advance Γ— reduced motion. No data/settings were manufactured to force them.
  • PL-06 onward and PL-17/PL-18 remain separate product, authorization, privacy, identity, contact, service-policy, and operations decisions.

Owner handoff

The canonical release owner must apply the source changes to the source repository, regenerate artifacts through the locked pipeline, review all German copy, perform the exhaustive forced-German matrix, and fix A71–A73/A77 in canonical block source. The bench patch remains releaseEligible: false.