From b690c74ddf4e0a680f94396e15e64df9fcd34b0f Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 25 Apr 2026 13:10:56 +0200 Subject: [PATCH] fix(richtlinien): improve examples, copy, and Wikipedia link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rule cards now show before→after examples; strikethrough rule input renders with CSS line-through so the visual context is honest - Illegible-words rule shows output only — can't represent unreadable text as readable characters - Intro drops fictional family names in favour of "egal wer tippt" - Wikipedia card copy is more direct; link uses icon instead of parenthetical "(öffnet in neuem Tab)" text Co-Authored-By: Claude Sonnet 4.6 --- frontend/messages/de.json | 6 ++-- frontend/messages/en.json | 6 ++-- frontend/messages/es.json | 6 ++-- .../lib/components/RichtlinienRuleCard.svelte | 20 +++++++++++-- .../routes/hilfe/transkription/+page.svelte | 29 ++++++++++++++----- 5 files changed, 49 insertions(+), 18 deletions(-) diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 877d3791..fe3ecb42 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -827,9 +827,9 @@ "transcription_mode_help_body": "Lesen zeigt die Transkription als fließenden Text. Bearbeiten öffnet die Textfelder für jede Passage.", "richtlinien_title": "Transkriptions-Richtlinien", - "richtlinien_intro": "Damit alle Briefe einheitlich transkribiert werden — egal ob Tante Hedwig oder Cousin Paul tippt — hier unsere Regeln. Die Seite wächst mit: sobald wir eine neue Konvention beschließen, landet sie hier.", - "richtlinien_wiki_text": "Das vollständige Kurrent- und Sütterlin-Alphabet brauchen Sie für diese Seite nicht — das erledigt Wikipedia. Hier sind unsere eigenen Regeln für das, was Wikipedia nicht beantwortet.", - "richtlinien_wiki_link": "Wikipedia →", + "richtlinien_intro": "Damit alle Briefe einheitlich transkribiert werden — egal wer tippt — hier unsere Regeln. Die Seite wächst mit: sobald wir eine neue Konvention beschließen, landet sie hier.", + "richtlinien_wiki_text": "Kurrent- und Sütterlin-Alphabete sind bei Wikipedia gut erklärt. Hier stehen nur unsere eigenen Vereinbarungen für dieses Archiv.", + "richtlinien_wiki_link": "Wikipedia", "richtlinien_rules_label": "Regeln für die Transkription", "richtlinien_rule_unleserlich_title": "Nicht lesbare Wörter", "richtlinien_rule_unleserlich_body": "Wenn Sie ein Wort beim besten Willen nicht entziffern können, schreiben Sie [unleserlich]. Jemand anderes schaut später nochmal drauf.", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 0ffc9105..1699a911 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -827,9 +827,9 @@ "transcription_mode_help_body": "Read shows the transcription as flowing text. Edit opens the text fields for each passage.", "richtlinien_title": "Transcription Guidelines", - "richtlinien_intro": "So every letter is transcribed consistently — whether Tante Hedwig or Cousin Paul is typing — here are our rules. The page grows with us: as soon as we agree a new convention, it lands here.", - "richtlinien_wiki_text": "You don't need the full Kurrent and Sütterlin alphabet on this page — that's what Wikipedia is for. Here are our own rules for everything Wikipedia can't answer.", - "richtlinien_wiki_link": "Wikipedia →", + "richtlinien_intro": "So every letter is transcribed consistently — no matter who types — here are our rules. The page grows with us: as soon as we agree a new convention, it lands here.", + "richtlinien_wiki_text": "The Kurrent and Sütterlin alphabets are well explained on Wikipedia. Here you'll only find our own conventions for this archive.", + "richtlinien_wiki_link": "Wikipedia", "richtlinien_rules_label": "Transcription rules", "richtlinien_rule_unleserlich_title": "Illegible words", "richtlinien_rule_unleserlich_body": "If you can't decipher a word even after trying, write [unleserlich]. Someone else will take another look later.", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 9b5683f9..61fba34c 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -827,9 +827,9 @@ "transcription_mode_help_body": "Lectura muestra la transcripción como texto continuo. Edición abre los campos de texto para cada pasaje.", "richtlinien_title": "Normas de transcripción", - "richtlinien_intro": "Para que todas las cartas se transcriban de forma uniforme — ya sea la tía Hedwig o el primo Paul quien escriba — aquí están nuestras reglas. La página crece con nosotros.", - "richtlinien_wiki_text": "No necesitas el alfabeto Kurrent completo aquí — eso lo hace Wikipedia. Aquí están nuestras propias reglas para lo que Wikipedia no responde.", - "richtlinien_wiki_link": "Wikipedia →", + "richtlinien_intro": "Para que todas las cartas se transcriban de forma uniforme — sin importar quién transcriba — aquí están nuestras reglas. La página crece con nosotros.", + "richtlinien_wiki_text": "Los alfabetos Kurrent y Sütterlin están bien explicados en Wikipedia. Aquí solo se recogen nuestros propios acuerdos para este archivo.", + "richtlinien_wiki_link": "Wikipedia", "richtlinien_rules_label": "Reglas de transcripción", "richtlinien_rule_unleserlich_title": "Palabras ilegibles", "richtlinien_rule_unleserlich_body": "Si no puedes descifrar una palabra, escribe [unleserlich]. Otra persona lo revisará después.", diff --git a/frontend/src/lib/components/RichtlinienRuleCard.svelte b/frontend/src/lib/components/RichtlinienRuleCard.svelte index 1d9e8a7c..fc8a7a89 100644 --- a/frontend/src/lib/components/RichtlinienRuleCard.svelte +++ b/frontend/src/lib/components/RichtlinienRuleCard.svelte @@ -3,11 +3,21 @@ type Props = { icon: string; title: string; body: string; + beispielInput?: string; + beispielInputStrike?: boolean; beispielOutput?: string; beispielLabel?: string; }; -let { icon, title, body, beispielOutput, beispielLabel = 'Beispiel' }: Props = $props(); +let { + icon, + title, + body, + beispielInput, + beispielInputStrike = false, + beispielOutput, + beispielLabel = 'Beispiel' +}: Props = $props();
@@ -23,7 +33,13 @@ let { icon, title, body, beispielOutput, beispielLabel = 'Beispiel' }: Props = $ {beispielLabel}

- → {beispielOutput} + {#if beispielInput !== undefined} + {beispielInput} → + {/if} + {beispielOutput}

{/if} diff --git a/frontend/src/routes/hilfe/transkription/+page.svelte b/frontend/src/routes/hilfe/transkription/+page.svelte index 61cdecc6..967dc51a 100644 --- a/frontend/src/routes/hilfe/transkription/+page.svelte +++ b/frontend/src/routes/hilfe/transkription/+page.svelte @@ -13,18 +13,22 @@ const rules = [ icon: '✗', title: m.richtlinien_rule_durchgestrichen_title(), body: m.richtlinien_rule_durchgestrichen_body(), + beispielInput: 'der Text', + beispielInputStrike: true, beispielOutput: '[durchgestrichen: der Text]' }, { icon: 'ſ', title: m.richtlinien_rule_langes_s_title(), body: m.richtlinien_rule_langes_s_body(), - beispielOutput: 's' + beispielInput: 'ſtraße', + beispielOutput: 'straße' }, { icon: '?', title: m.richtlinien_rule_name_title(), body: m.richtlinien_rule_name_body(), + beispielInput: 'Müller', beispielOutput: '[Müller?]' }, { @@ -61,10 +65,23 @@ const klaerungChips = [ target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" - class="inline-flex items-center gap-1 font-sans text-sm font-medium text-ink underline decoration-brand-mint decoration-[1.5px] underline-offset-[3px]" + aria-label="{m.richtlinien_wiki_link()} — {m.common_opens_new_tab()}" + class="inline-flex items-center gap-1.5 font-sans text-sm font-medium text-ink underline decoration-brand-mint decoration-[1.5px] underline-offset-[3px]" > {m.richtlinien_wiki_link()} - ({m.common_opens_new_tab()}) + @@ -78,6 +95,8 @@ const klaerungChips = [ icon={rule.icon} title={rule.title} body={rule.body} + beispielInput={rule.beispielInput} + beispielInputStrike={rule.beispielInputStrike} beispielOutput={rule.beispielOutput} beispielLabel={m.richtlinien_beispiel_label()} /> @@ -113,10 +132,6 @@ const klaerungChips = [ display: none; } - .new-tab { - display: none; - } - @page { margin: 1.5cm; }