Skip to content

Say why access was refused, and keep the Dutch phase name consistent - #437

Merged
lgelauff merged 2 commits into
mainfrom
fix/i18n-access-lost-and-dutch-consistency
Sep 21, 2026
Merged

lgelauff merged 2 commits into
mainfrom
fix/i18n-access-lost-and-dutch-consistency

Conversation

@lgelauff

Copy link
Copy Markdown
Owner

Why

Since the gated-access work (#425–#427), the refusal page also serves access lost, and refusals under voucher and wiki-based policies. It still read every refusal as a missing invitation: someone whose access lapsed was told "This consultation is invite-only… You have not been added to the invite list".

What changes

Refusal page (participation-entry-page.tsx) — picks its copy from the reason and certainty the server already sends:

State Reason / certainty Heading
refused access-invite-required This consultation is invite-only (unchanged)
access lost access-invite-required Your invitation has been withdrawn
refused any other, known You cannot take part in this consultation
access lost any other, known You no longer have access
either temporary We could not confirm your access — try again in a few minutes
either inconclusive We could not confirm your access — contact the organizers

The note that sends an organizer to the invite list now shows only when an invitation is what is missing. The "access lost" bodies say only that new actions are stopped; they make no promise about earlier contributions, which #407 leaves undecided. Nine new messages, documented in qqq.json and translated into Dutch.

Dutch

  • The Explore phase is Inventarisatie everywhere, as the homepage timeline already had it after i18n: refine Dutch translations #428: 20 strings, plus the phase legend and the flow diagram title.
  • The 404 message no longer repeats its title ("Pagina niet gevonden" / "Dit adres leidt nergens naartoe.").
  • home-timeline-aria starts with a capital again.

Config and docs

  • v2/.env.example no longer sets ENABLED_LOCALES=en, which overrode the en,nl default from i18n: default ENABLED_LOCALES to en,nl #429 and hid Dutch on any deployment that copied the file.
  • v2/i18n/README.md says Dutch is offered, and carries the new counts: 948 keys, 570 offered, 378 held back; Dutch has 532.

Tests

  • 7 parametrised cases, one per refusal branch, each rendered under qqx: they assert the heading, that nothing on the page is English, and whether the moderator note shows. Mutation-checked: removing the access-lost branch, removing the inconclusive branch, ignoring the reason, or ungating the moderator note each turns 2–5 tests red.
  • The existing invite-only fixtures now carry the viewer/certainty/reason fields the server sends.
  • pytest: 862 passed, 1 skipped · vitest: 200 passed · tsc -p tsconfig.app.json clean.

🤖 Generated with Claude Code

The refusal page read every refusal as a missing invitation. Since the gated
access work it also serves "access lost", and refusals under voucher and
wiki-based policies, so someone whose access lapsed was told they had never
been on an invite list. The page now picks its copy from the reason and
certainty the server already sends: not invited, invitation withdrawn, not
meeting the access conditions, access lost, or a check that could not decide
(temporary: try again; inconclusive: contact the organizers). The note that
sends an organizer to the invite list shows only when an invitation is what
is missing. Nine new messages, in English and Dutch.

Dutch: the Explore phase is "Inventarisatie" everywhere, as the homepage
timeline already had it; the 404 message no longer repeats its title; the
timeline's aria label starts with a capital.

.env.example no longer sets ENABLED_LOCALES=en, which overrode the en,nl
default in app.py and hid Dutch on any deployment that copied it. The i18n
README says Dutch is offered and carries the new counts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lgelauff
lgelauff merged commit f4f14aa into main Sep 21, 2026
4 checks passed
@lgelauff
lgelauff deleted the fix/i18n-access-lost-and-dutch-consistency branch September 21, 2026 17:04
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