From 4a6fd770d789687a6d1d286376ea6a68b925346f Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 13 Jun 2026 20:34:54 +0200 Subject: [PATCH] fix(i18n): translate timeline sr-only labels in en/es locales timeline_layer_* and timeline_derived_* shipped German values in the English and Spanish catalogs, so EN/ES screen-reader users heard German for the world/family layer and birth/death/marriage cues. Translate them; de.json stays canonical. Co-Authored-By: Claude Opus 4.8 --- frontend/messages/en.json | 10 +++++----- frontend/messages/es.json | 10 +++++----- frontend/src/lib/timeline/eventCardConfig.ts | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/frontend/messages/en.json b/frontend/messages/en.json index c8255685..234437ad 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -1041,11 +1041,11 @@ "timeline_letters_count": "{count} letters", "timeline_strip_expand": "Show letters", "timeline_range_aria": "Period: {from} to {to}", - "timeline_layer_world": "Weltgeschehen", - "timeline_layer_family": "Familie", - "timeline_derived_birth": "Geburt", - "timeline_derived_death": "Tod", - "timeline_derived_marriage": "Heirat", + "timeline_layer_world": "World events", + "timeline_layer_family": "Family", + "timeline_derived_birth": "Birth", + "timeline_derived_death": "Death", + "timeline_derived_marriage": "Marriage", "error_geschichte_not_found": "The story was not found.", "error_journey_item_not_found": "The journey item was not found.", "error_journey_item_position_conflict": "The order was just changed by someone else — please reload the page.", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 746c554a..aab54c4d 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -1041,11 +1041,11 @@ "timeline_letters_count": "{count} cartas", "timeline_strip_expand": "Mostrar cartas", "timeline_range_aria": "Período: {from} a {to}", - "timeline_layer_world": "Weltgeschehen", - "timeline_layer_family": "Familie", - "timeline_derived_birth": "Geburt", - "timeline_derived_death": "Tod", - "timeline_derived_marriage": "Heirat", + "timeline_layer_world": "Acontecimientos mundiales", + "timeline_layer_family": "Familia", + "timeline_derived_birth": "Nacimiento", + "timeline_derived_death": "Fallecimiento", + "timeline_derived_marriage": "Matrimonio", "error_geschichte_not_found": "No se encontró la historia.", "error_journey_item_not_found": "No se encontró el elemento del viaje.", "error_journey_item_position_conflict": "El orden fue cambiado por otra persona — por favor recargue la página.", diff --git a/frontend/src/lib/timeline/eventCardConfig.ts b/frontend/src/lib/timeline/eventCardConfig.ts index 715249b3..cb11d7b2 100644 --- a/frontend/src/lib/timeline/eventCardConfig.ts +++ b/frontend/src/lib/timeline/eventCardConfig.ts @@ -9,7 +9,7 @@ export type TimelineAccent = 'derived' | 'curated' | 'historical'; export interface AccentConfig { /** Visible Unicode glyph — render `aria-hidden`, paired with an sr-only label. */ glyph: string; - /** German layer/life-event label — used as the sr-only text and as visible chrome. */ + /** Localized layer/life-event label — used as the sr-only / aria text only. */ label: string; accent: TimelineAccent; }