i18n(transcription): add reader read-label and panel title strings (#697)

transcription_read_label ("Transkription lesen") for the read-only entry
control and transcription_panel_title ("Transkription") for the plain
header readers see instead of the Lesen/Bearbeiten toggle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-31 12:09:07 +02:00
committed by marcel
parent 44b5934fa7
commit f4f853be8b
8 changed files with 118 additions and 6 deletions

View File

@@ -9,6 +9,7 @@ const baseProps = {
documentId: 'd1',
canWrite: false,
isPdf: false,
hasTranscription: false,
transcribeMode: false,
filePath: null as string | null,
originalFilename: 'brief.pdf' as string | null,
@@ -34,6 +35,56 @@ describe('DocumentTopBarActions', () => {
await expect.element(page.getByRole('button', { name: /transkribieren/i })).toBeVisible();
});
it('shows no transcription control for a read-only user when no transcription exists', async () => {
render(DocumentTopBarActions, {
props: {
...baseProps,
canWrite: false,
isPdf: true,
hasTranscription: false,
filePath: 'docs/x.pdf'
}
});
await expect
.element(page.getByRole('button', { name: /transkribieren/i }))
.not.toBeInTheDocument();
await expect
.element(page.getByRole('button', { name: /transkription lesen/i }))
.not.toBeInTheDocument();
});
it('shows the read-transcription button for a read-only user when a transcription exists', async () => {
render(DocumentTopBarActions, {
props: {
...baseProps,
canWrite: false,
isPdf: true,
hasTranscription: true,
filePath: 'docs/x.pdf'
}
});
await expect.element(page.getByRole('button', { name: /transkription lesen/i })).toBeVisible();
await expect
.element(page.getByRole('button', { name: /^transkribieren$/i }))
.not.toBeInTheDocument();
});
it('shows the transcribe (edit) label for a writer regardless of hasTranscription', async () => {
render(DocumentTopBarActions, {
props: {
...baseProps,
canWrite: true,
isPdf: true,
hasTranscription: false,
filePath: 'docs/x.pdf'
}
});
await expect.element(page.getByRole('button', { name: /transkribieren/i })).toBeVisible();
});
it('omits the transcribe button when not a PDF', async () => {
render(DocumentTopBarActions, {
props: { ...baseProps, canWrite: true, isPdf: false, filePath: 'docs/x.jpg' }