Some checks failed
CI / Lint, typecheck, test (pull_request) Successful in 4m41s
CI / Build container images (pull_request) Successful in 4m4s
CI / Auth e2e pack (pull_request) Successful in 11m40s
CI / Import/export fidelity gate (pull_request) Successful in 52s
CD / Deploy to Test (push) Blocked by required conditions
CD / Smoke tests against Test (push) Blocked by required conditions
CD / Promote to Int (push) Blocked by required conditions
CI / Auth e2e pack (push) Blocked by required conditions
CI / Import/export fidelity gate (push) Blocked by required conditions
CI / Build container images (push) Blocked by required conditions
CD / Build and push images (push) Has been cancelled
CI / Lint, typecheck, test (push) Has been cancelled
apply-theme.ts derives BOTH modes' accent tokens from the stored choice
(ui.theme.accent: preset id or {custom:'#hex'}) and writes them as
<style id="user-theme"> with :root:root + :root:root[data-theme='dark']
blocks — the doubled :root beats tokens.css regardless of document
order, since theme-init.js injects the ui.theme.css cache during <head>
parsing, before the bundle styles. The default preset means NO override
(hand-tuned tokens.css values stay). main.tsx re-derives from the
choice at startup, healing stale caches after app updates.
Settings: accent radiogroup inside the Appearance section (visible
names, color never the only cue) with per-mode preview swatches on
each mode's canonical background, plus a custom color input; i18n
de+en. The second fieldset made bare .settings-fieldset locators
ambiguous — theme specs now scope via input[name] (fence stays).
Tests: apply-theme unit pack, BASE_PALETTE<->tokens.css drift fence in
theme-contrast.test.ts, e2e theme-accent.spec (instant apply, pre-paint
persistence, default removes override, axe smoke with garish yellow in
both modes). ADR 0018 amendment documents the stage-B details.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRtCnB3uLdQtFmvp9HXcRX
86 lines
3.1 KiB
JSON
86 lines
3.1 KiB
JSON
{
|
|
"title": "Einstellungen",
|
|
"profile": {
|
|
"title": "Profil",
|
|
"displayName": "Anzeigename",
|
|
"locale": "Sprache",
|
|
"locales": {
|
|
"de": "Deutsch",
|
|
"en": "English"
|
|
},
|
|
"save": "Speichern",
|
|
"saved": "Gespeichert."
|
|
},
|
|
"password": {
|
|
"title": "Passwort ändern",
|
|
"current": "Aktuelles Passwort",
|
|
"new": "Neues Passwort",
|
|
"submit": "Passwort ändern",
|
|
"changed": "Passwort geändert. Andere Geräte wurden abgemeldet."
|
|
},
|
|
"sessions": {
|
|
"title": "Aktive Sitzungen",
|
|
"current": "Diese Sitzung",
|
|
"created": "Angemeldet",
|
|
"lastSeen": "Zuletzt aktiv",
|
|
"device": "Gerät",
|
|
"revoke": "Abmelden",
|
|
"revokeAll": "Alle anderen Sitzungen abmelden",
|
|
"empty": "Keine weiteren aktiven Sitzungen."
|
|
},
|
|
"dataExport": {
|
|
"title": "Meine Daten exportieren",
|
|
"description": "Lade ein ZIP mit deinem Profil, einer Liste deiner Mitgliedschaften und dem Markdown-Export deines persönlichen Teichs sowie der Teiche, die dir gehören.",
|
|
"request": "Export vorbereiten",
|
|
"preparing": "Dein Export wird vorbereitet…",
|
|
"download": "Export herunterladen",
|
|
"ready": "Dein Export ist bereit.",
|
|
"expiresHint": "Der Download-Link läuft am {{when}} ab.",
|
|
"failed": "Der Export konnte nicht erstellt werden. Bitte versuche es erneut.",
|
|
"rateLimited": "Du hast kürzlich einen Export angefordert. Bitte versuche es später erneut."
|
|
},
|
|
"admin": {
|
|
"title": "Administration",
|
|
"general": "Allgemein",
|
|
"instanceName": "Name der Instanz",
|
|
"defaultLocale": "Standardsprache",
|
|
"registrationMode": "Selbst-Registrierung",
|
|
"registrationOpen": "Offen — alle können sich registrieren",
|
|
"registrationClosed": "Geschlossen — keine neuen Registrierungen",
|
|
"save": "Speichern",
|
|
"saved": "Gespeichert."
|
|
},
|
|
"landing": {
|
|
"title": "Startseite",
|
|
"hint": "Inhalt der öffentlichen Startseite (/) als Markdown. Leer lassen zeigt den eingebauten Willkommenstext.",
|
|
"label": "Startseiten-Inhalt (Markdown)",
|
|
"save": "Startseite speichern",
|
|
"saved": "Gespeichert."
|
|
},
|
|
"appearance": {
|
|
"title": "Erscheinungsbild",
|
|
"legend": "Farbschema",
|
|
"light": "Hell",
|
|
"dark": "Dunkel",
|
|
"system": "Systemeinstellung",
|
|
"hint": "„Systemeinstellung“ folgt dem Hell-/Dunkel-Modus des Geräts. Gilt für dieses Gerät.",
|
|
"cycle": "Farbschema wechseln (aktuell: {{mode}})",
|
|
"accentLegend": "Akzentfarbe",
|
|
"presets": {
|
|
"pond-green": "Teichgrün (Standard)",
|
|
"lake-blue": "Seeblau",
|
|
"iris-violet": "Irisviolett",
|
|
"reed-teal": "Schilftürkis",
|
|
"stone-slate": "Steingrau"
|
|
},
|
|
"custom": "Eigene Farbe",
|
|
"customPick": "Eigene Akzentfarbe wählen",
|
|
"accentHint": "Die gewählte Farbe wird je Modus automatisch heller oder dunkler angepasst, damit Texte lesbar bleiben. Gilt für dieses Gerät."
|
|
},
|
|
"interaction": {
|
|
"title": "Bedienung",
|
|
"disableSingleKey": "Einzeltasten-Kürzel deaktivieren",
|
|
"disableSingleKeyHint": "Schaltet die Kürzel „e“ (Bearbeiten) und „/“ (Suche) ab — hilfreich bei Spracheingabe. Gilt für dieses Gerät."
|
|
}
|
|
}
|