From 90e2b4d6c2253adc06f95b54185f5181447efacc Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 14 Jun 2026 15:08:21 +0200 Subject: [PATCH] feat(i18n): add the timeline tag-chip theme label timeline_tag_chip_label (de "Thema" / en "Topic" / es "Tema") is the sr-only prefix the /zeitstrahl letter tag chip reads out so color is never the only cue. Pinned per locale in messages.spec.ts; the tag name itself is rendered as data, never translated. Refs #835 Co-Authored-By: Claude Opus 4.8 --- frontend/messages/de.json | 1 + frontend/messages/en.json | 1 + frontend/messages/es.json | 1 + frontend/src/lib/messages.spec.ts | 8 ++++++++ 4 files changed, 11 insertions(+) diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 91bc789d..001e4bab 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -1050,6 +1050,7 @@ "timeline_provenance_derived": "abgeleitet", "timeline_provenance_curated": "kuratiert", "timeline_letter_glyph_label": "Brief", + "timeline_tag_chip_label": "Thema", "timeline_layer_historical_suffix": "historisch", "timeline_strip_density_caption": "Monats-Dichte", "timeline_events_count": "{count} Ereignisse", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index b9add670..e34a27fb 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -1050,6 +1050,7 @@ "timeline_provenance_derived": "derived", "timeline_provenance_curated": "curated", "timeline_letter_glyph_label": "Letter", + "timeline_tag_chip_label": "Topic", "timeline_layer_historical_suffix": "historical", "timeline_strip_density_caption": "Monthly density", "timeline_events_count": "{count} events", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index f015c6d5..dfb5fc52 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -1050,6 +1050,7 @@ "timeline_provenance_derived": "derivado", "timeline_provenance_curated": "curado", "timeline_letter_glyph_label": "Carta", + "timeline_tag_chip_label": "Tema", "timeline_layer_historical_suffix": "histórico", "timeline_strip_density_caption": "Densidad mensual", "timeline_events_count": "{count} eventos", diff --git a/frontend/src/lib/messages.spec.ts b/frontend/src/lib/messages.spec.ts index eadd4030..542a0d50 100644 --- a/frontend/src/lib/messages.spec.ts +++ b/frontend/src/lib/messages.spec.ts @@ -90,4 +90,12 @@ describe('message key parity', () => { expect(es, `missing key in es: ${key}`).toHaveProperty(key); } }); + + // #835 REQ-013: the letter chip's sr-only theme label is a Paraglide key in every + // locale so color is never the only cue; the tag NAME is rendered as data, not translated. + it('zeitstrahl tag-chip label key is present in all locales (#835 REQ-013)', () => { + expect(de).toMatchObject({ timeline_tag_chip_label: 'Thema' }); + expect(en).toMatchObject({ timeline_tag_chip_label: 'Topic' }); + expect(es).toMatchObject({ timeline_tag_chip_label: 'Tema' }); + }); });