From 64e0c30a88396a38cb4c9348071b3ba077de61c9 Mon Sep 17 00:00:00 2001 From: malpou Date: Mon, 6 Jul 2026 19:19:20 +0000 Subject: [PATCH] Relabel question-poll choices as yes/no MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Question polls labeled the fixed Available/Unavailable pair in works-for-me / doesn't-work terms. For a yes/no question that scans as awkward, so relabel both choices to plain yes/no in every language (en Yes/No, da Ja/Nej, de Ja/Nein, es Sí/No, fr Oui/Non). Update the question-options spec's wording requirement and result-tally scenario to yes/no terms, and refresh the now-stale comments in the segmented control and result bars. Choice-label tests assert the message values, so they follow the new copy. --- messages/da.json | 4 ++-- messages/de.json | 4 ++-- messages/en.json | 4 ++-- messages/es.json | 4 ++-- messages/fr.json | 4 ++-- openspec/specs/question-options/question-options.spec.ts | 2 +- openspec/specs/question-options/spec.md | 6 +++--- src/lib/components/atoms/SegmentedControl.svelte | 2 +- src/lib/components/molecules/ResultBars.svelte | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/messages/da.json b/messages/da.json index 2f7aaf1..2353c9d 100644 --- a/messages/da.json +++ b/messages/da.json @@ -128,8 +128,8 @@ "responseIntroQuestion": "Vælg de muligheder, der passer dig bedst", "optionsQuestion": "Hvad fungerer for dig?", "chooseEachQuestion": "Vælg et svar for hver mulighed", - "prefAvailableQuestion": "Fungerer for mig", - "prefUnavailableQuestion": "Fungerer ikke", + "prefAvailableQuestion": "Ja", + "prefUnavailableQuestion": "Nej", "newOptionsBanner": "Der er tilføjet nye svarmuligheder, siden du svarede. Opdater dit svar.", "partialAnsweredQuestion": "Mangler nye svarmuligheder", "needsUpdateTitleQuestion": "Nogle inviterede mangler at svare på de nye svarmuligheder", diff --git a/messages/de.json b/messages/de.json index f9d6936..3df3efa 100644 --- a/messages/de.json +++ b/messages/de.json @@ -128,8 +128,8 @@ "responseIntroQuestion": "Wähle die Optionen, die dir am besten passen", "optionsQuestion": "Was passt für dich?", "chooseEachQuestion": "Wähle für jede Option eine Antwort", - "prefAvailableQuestion": "Passt für mich", - "prefUnavailableQuestion": "Passt nicht", + "prefAvailableQuestion": "Ja", + "prefUnavailableQuestion": "Nein", "newOptionsBanner": "Seit deiner Antwort wurden neue Optionen hinzugefügt. Bitte aktualisiere deine Antwort.", "partialAnsweredQuestion": "Neue Optionen fehlen", "needsUpdateTitleQuestion": "Einige Eingeladene haben die neuen Optionen noch nicht beantwortet", diff --git a/messages/en.json b/messages/en.json index 64f6dba..7861237 100644 --- a/messages/en.json +++ b/messages/en.json @@ -128,8 +128,8 @@ "responseIntroQuestion": "Choose the options that suit you best", "optionsQuestion": "What works for you?", "chooseEachQuestion": "Choose an answer for each option", - "prefAvailableQuestion": "Works for me", - "prefUnavailableQuestion": "Doesn't work", + "prefAvailableQuestion": "Yes", + "prefUnavailableQuestion": "No", "newOptionsBanner": "New options have been added since you answered. Please update your answer.", "partialAnsweredQuestion": "Missing new options", "needsUpdateTitleQuestion": "Some invitees haven't answered the new options", diff --git a/messages/es.json b/messages/es.json index 11ff782..d621748 100644 --- a/messages/es.json +++ b/messages/es.json @@ -128,8 +128,8 @@ "responseIntroQuestion": "Elige las opciones que mejor te vengan", "optionsQuestion": "¿Qué te viene bien?", "chooseEachQuestion": "Elige una respuesta para cada opción", - "prefAvailableQuestion": "Me viene bien", - "prefUnavailableQuestion": "No me viene bien", + "prefAvailableQuestion": "Sí", + "prefUnavailableQuestion": "No", "newOptionsBanner": "Se han añadido nuevas opciones desde que respondiste. Actualiza tu respuesta.", "partialAnsweredQuestion": "Faltan opciones nuevas", "needsUpdateTitleQuestion": "Algunos invitados no han respondido a las opciones nuevas", diff --git a/messages/fr.json b/messages/fr.json index 6472d1c..b7739f8 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -128,8 +128,8 @@ "responseIntroQuestion": "Choisissez les options qui vous conviennent le mieux", "optionsQuestion": "Qu'est-ce qui vous convient ?", "chooseEachQuestion": "Choisissez une réponse pour chaque option", - "prefAvailableQuestion": "Ça me convient", - "prefUnavailableQuestion": "Ça ne convient pas", + "prefAvailableQuestion": "Oui", + "prefUnavailableQuestion": "Non", "newOptionsBanner": "De nouvelles options ont été ajoutées depuis votre réponse. Mettez à jour votre réponse.", "partialAnsweredQuestion": "Options manquantes", "needsUpdateTitleQuestion": "Certains invités n'ont pas répondu aux nouvelles options", diff --git a/openspec/specs/question-options/question-options.spec.ts b/openspec/specs/question-options/question-options.spec.ts index ff49b7c..98c9f2e 100644 --- a/openspec/specs/question-options/question-options.spec.ts +++ b/openspec/specs/question-options/question-options.spec.ts @@ -405,7 +405,7 @@ test("the choice controls read in the poll's language in question wording", asyn test('result tallies read in question wording on the dashboard', async ({ page }) => { seed(); await page.goto(`/e/${OTOK}`); - // Pizza: Anna alone can make it - the count row reads works-for-me, not date terms. + // Pizza: Anna alone can make it - the count row reads yes/no, not date terms. await expect(page.getByText(`1 ${m.prefAvailableQuestion()}`).first()).toBeVisible(); await expect(page.getByText(`1 ${m.prefUnavailableQuestion()}`).first()).toBeVisible(); await expect(page.getByText(m.prefAvailable())).toHaveCount(0); diff --git a/openspec/specs/question-options/spec.md b/openspec/specs/question-options/spec.md index 290e05f..5219242 100644 --- a/openspec/specs/question-options/spec.md +++ b/openspec/specs/question-options/spec.md @@ -171,7 +171,7 @@ The system SHALL render question polls with question wording wherever a dates poll's copy names dates: the response scale's choice labels, result tally labels, section headings, the response prompt, chosen-outcome headings, and new-option notices. The Available and Unavailable choices SHALL be -labeled in works-for-me / doesn't-work terms. All such copy SHALL render in +labeled in yes / no terms. All such copy SHALL render in the poll's language, and dates polls SHALL keep their current wording. #### Scenario: Choice labels read in question wording @@ -185,8 +185,8 @@ the poll's language, and dates polls SHALL keep their current wording. - GIVEN a question poll with responses - WHEN the organizer opens the dashboard -- THEN each option's count row is labeled in works-for-me / doesn't-work - terms, not the date wording +- THEN each option's count row is labeled in yes / no terms, not the date + wording #### Scenario: Dates polls keep date wording diff --git a/src/lib/components/atoms/SegmentedControl.svelte b/src/lib/components/atoms/SegmentedControl.svelte index e528dc5..6be2576 100644 --- a/src/lib/components/atoms/SegmentedControl.svelte +++ b/src/lib/components/atoms/SegmentedControl.svelte @@ -14,7 +14,7 @@ // The event's enabled choices, in display order (see $lib/logic/choices). choices?: Preference[]; readOnly?: boolean; - // Question polls label the fixed pair in works-for-me/doesn't-work terms. + // Question polls label the fixed pair in yes/no terms. pollType?: PollType; } = $props(); diff --git a/src/lib/components/molecules/ResultBars.svelte b/src/lib/components/molecules/ResultBars.svelte index c8c5f60..5f95bfe 100644 --- a/src/lib/components/molecules/ResultBars.svelte +++ b/src/lib/components/molecules/ResultBars.svelte @@ -19,7 +19,7 @@ showPreferred?: boolean; unsure?: number; // Wording for the count row follows the poll type everywhere (RSVP - // yes/no, question works-for-me, dates preference labels). + // yes/no, question yes/no, dates preference labels). pollType?: PollType; names?: { preferred: string[];