feat(i18n): extract hardcoded strings in DocumentEditLayout to i18n keys

Adds label_required_fields to all three locales. Fixes "Datei ersetzen"
toolbar colors to use semantic ink tokens (readable in both light and dark
pdf-bg themes).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-18 16:12:01 +02:00
parent 9daf43834b
commit ddbd6ef92f
4 changed files with 10 additions and 5 deletions

View File

@@ -53,6 +53,7 @@
"form_placeholder_archive_location": "z.B. Schrank 3, Mappe B",
"form_helper_archive_location": "Wo befindet sich das Originaldokument?",
"label_optional": "Optional",
"label_required_fields": "Pflichtfelder",
"login_heading": "Anmelden",
"login_label_username": "Benutzername",
"login_label_password": "Passwort",

View File

@@ -53,6 +53,7 @@
"form_placeholder_archive_location": "e.g. Cabinet 3, Folder B",
"form_helper_archive_location": "Where is the original document stored?",
"label_optional": "Optional",
"label_required_fields": "Required fields",
"login_heading": "Sign in",
"login_label_username": "Username",
"login_label_password": "Password",

View File

@@ -53,6 +53,7 @@
"form_placeholder_archive_location": "p.ej. Armario 3, Carpeta B",
"form_helper_archive_location": "¿Dónde se encuentra el documento original?",
"label_optional": "Opcional",
"label_required_fields": "Campos obligatorios",
"login_heading": "Iniciar sesión",
"login_label_username": "Usuario",
"login_label_password": "Contraseña",

View File

@@ -125,14 +125,16 @@ async function handleReplaceFile(e: Event) {
<!-- Required-fields progress bar -->
<div class="flex items-center gap-3 border-b border-line bg-surface px-6 py-1.5">
<span class="text-xs font-bold tracking-widest text-ink-3 uppercase">Pflichtfelder</span>
<span class="text-xs font-bold tracking-widest text-ink-3 uppercase"
>{m.label_required_fields()}</span
>
<div
class="h-0.5 flex-1 rounded-full bg-line"
role="progressbar"
aria-valuenow={requiredFilled}
aria-valuemin={0}
aria-valuemax={3}
aria-label="Pflichtfelder"
aria-label={m.label_required_fields()}
>
<div
class="h-full rounded-full bg-brand-navy transition-all duration-300"
@@ -157,11 +159,11 @@ async function handleReplaceFile(e: Event) {
/>
{:else}
<!-- Datei ersetzen toolbar -->
<div class="flex shrink-0 items-center border-b border-white/10 bg-pdf-bg px-4 py-1.5">
<div class="flex shrink-0 items-center border-b border-line bg-surface px-4 py-1.5">
<label
class="ml-auto flex min-h-[44px] cursor-pointer items-center text-xs font-bold tracking-widest text-white/40 uppercase transition-colors hover:text-white/70"
class="ml-auto flex min-h-[44px] cursor-pointer items-center text-xs font-bold tracking-widest text-ink-3 uppercase transition-colors hover:text-ink"
>
Datei ersetzen
{m.doc_file_replace_label()}
<input type="file" class="sr-only" onchange={handleReplaceFile} />
</label>
</div>