diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 7e491bec..31a922f5 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -363,6 +363,7 @@ "doc_panel_discussion_annotation_tab": "Annotation · Seite {page}", "pdf_annotations_show": "Annotierungen anzeigen", "pdf_annotations_hide": "Annotierungen verbergen", + "upload_action": "Hochladen", "upload_drop_hint": "Einzeln oder mehrere Dateien auf einmal hochladen", "upload_accepted_types": "PDF, JPEG, PNG, TIFF", "upload_filename_hint": "Tipp: 2024-03-15_Mueller_Hans.pdf → Datum und Absender werden vorausgefüllt", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 8e0ae64a..c594b6e0 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -363,6 +363,7 @@ "doc_panel_discussion_annotation_tab": "Annotation · Page {page}", "pdf_annotations_show": "Show annotations", "pdf_annotations_hide": "Hide annotations", + "upload_action": "Upload", "upload_drop_hint": "Drop one or multiple files at once", "upload_accepted_types": "PDF, JPEG, PNG, TIFF", "upload_filename_hint": "Tip: 2024-03-15_Mueller_Hans.pdf → date and sender pre-filled", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index a481bf85..3195c2a9 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -363,6 +363,7 @@ "doc_panel_discussion_annotation_tab": "Anotación · Página {page}", "pdf_annotations_show": "Mostrar anotaciones", "pdf_annotations_hide": "Ocultar anotaciones", + "upload_action": "Subir", "upload_drop_hint": "Uno o varios archivos a la vez", "upload_accepted_types": "PDF, JPEG, PNG, TIFF", "upload_filename_hint": "Consejo: 2024-03-15_Mueller_Hans.pdf → fecha y remitente prellenados", diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index 0469053e..33671854 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -2,6 +2,7 @@ import './layout.css'; import { page } from '$app/state'; import { onMount } from 'svelte'; +import * as m from '$lib/paraglide/messages.js'; import LanguageSwitcher from '$lib/components/LanguageSwitcher.svelte'; import ThemeToggle from '$lib/components/ThemeToggle.svelte'; import NotificationBell from '$lib/components/NotificationBell.svelte'; @@ -55,6 +56,7 @@ const userInitials = $derived.by(() => { {#if data?.user} { - Hochladen + {m.upload_action()} {/if} diff --git a/frontend/src/routes/layout.svelte.spec.ts b/frontend/src/routes/layout.svelte.spec.ts index 3de2e9a8..7600053a 100644 --- a/frontend/src/routes/layout.svelte.spec.ts +++ b/frontend/src/routes/layout.svelte.spec.ts @@ -48,6 +48,22 @@ describe('Layout – user avatar button', () => { }); }); +// ─── Upload link ────────────────────────────────────────────────────────────── + +describe('Layout – upload link', () => { + it('has aria-label for screen reader access', async () => { + render(Layout, { data: makeData(), children: emptySnippet }); + const link = page.getByRole('link', { name: /Hochladen|Upload|Subir/i }); + await expect.element(link).toHaveAttribute('aria-label'); + }); + + it('navigates to /documents/new', async () => { + render(Layout, { data: makeData(), children: emptySnippet }); + const link = page.getByRole('link', { name: /Hochladen|Upload|Subir/i }); + await expect.element(link).toHaveAttribute('href', '/documents/new'); + }); +}); + // ─── Dropdown ───────────────────────────────────────────────────────────────── describe('Layout – user dropdown', () => {