Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die README; an keiner Stelle Bedeutung, nur Zeichensetzung.
80 lines
3.5 KiB
TypeScript
80 lines
3.5 KiB
TypeScript
/**
|
|
* Was fast jede Ansicht braucht: Knöpfe, Fehlermeldungen, Freigabestufen.
|
|
*
|
|
* Nach Bereichen getrennt, weil eine **Client-Komponente die ganze Datei ins
|
|
* Bündel zieht**, in der ihr Text steht. Lägen alle Texte in einer, trüge jede
|
|
* Ansicht die der ganzen Anwendung mit sich herum - das Budget aus
|
|
* docs/09-performance-und-ux.md wäre nach wenigen Phasen aufgebraucht.
|
|
*
|
|
* Serverkomponenten nehmen weiter `de` aus `lib/i18n/de.ts`: was dorthin
|
|
* gezogen wird, verlässt den Server nicht.
|
|
*/
|
|
|
|
export const commonText = {
|
|
save: 'Speichern',
|
|
cancel: 'Abbrechen',
|
|
undo: 'Rückgängig',
|
|
retry: 'Erneut versuchen',
|
|
loading: 'Wird geladen',
|
|
offline: 'Keine Verbindung, wird nachgesendet',
|
|
unknown: 'Unbekannt',
|
|
} as const
|
|
|
|
/**
|
|
* Meldungen zu abgelehnten Aktionen. Der Schlüssel ist der `code` eines
|
|
* `AccessError`, siehe lib/errors.ts. Gilt für Fallakten, Personalakten und
|
|
* Dokumente gleichermaßen - die Regeln sind dieselben.
|
|
*/
|
|
export const actionErrorsText = {
|
|
'not-found': 'Die Akte gibt es nicht, oder du darfst sie nicht sehen.',
|
|
'department-key-invalid':
|
|
'Kürzel: Grossbuchstaben, Ziffern und Bindestrich, höchstens 21 Zeichen.',
|
|
'department-key-taken': 'Dieses Kürzel gibt es schon.',
|
|
'department-name-missing': 'Die Abteilung braucht einen Namen.',
|
|
'clearance-too-low': 'Deine Freigabestufe reicht dafür nicht.',
|
|
'no-permission': 'Dir fehlt das nötige Recht.',
|
|
'read-only': 'Der Datensatz ist schreibgeschützt.',
|
|
closed: 'Der Vorgang ist abgeschlossen. Änderungen brauchen ein eigenes Recht.',
|
|
'reason-required': 'Begründung nötig, mindestens 10 Zeichen.',
|
|
'transition-invalid': 'Dieser Statuswechsel ist nicht vorgesehen.',
|
|
'sections-incomplete': 'Es fehlen Pflichtangaben für den Abschluss.',
|
|
'template-missing': 'Dafür gibt es keine Vorlage.',
|
|
'field-unknown': 'Dieses Feld gehört nicht zur Vorlage.',
|
|
'name-required': 'Ein Name mit mindestens zwei Zeichen ist nötig.',
|
|
'participant-target': 'Entweder ein Discord-Konto oder eine Personalakte, nicht beides.',
|
|
'link-self': 'Eine Akte lässt sich nicht mit sich selbst verknüpfen.',
|
|
'message-empty': 'Die Nachricht ist leer.',
|
|
'entry-empty': 'Der Vermerk ist leer.',
|
|
'date-invalid': 'Das ist kein gültiges Datum.',
|
|
'message-too-long': 'Die Nachricht ist länger als 4000 Zeichen.',
|
|
'message-withdrawn': 'Die Nachricht wurde zurückgezogen.',
|
|
'adopt-needs-case': 'Nur eine Nachricht aus einem Aktenchat wird zum Vermerk.',
|
|
'too-many-views': 'Mehr als dreissig Ansichten werden unübersichtlich. Lösche eine.',
|
|
default: 'Nicht gespeichert. Erneut versuchen.',
|
|
} as Record<string, string>
|
|
|
|
export const errorsText = {
|
|
notFound: {
|
|
title: 'Nicht gefunden',
|
|
body: 'Die Seite gibt es nicht, oder du darfst sie nicht sehen.',
|
|
},
|
|
unexpected: {
|
|
title: 'Nicht geladen',
|
|
body: 'Der Abruf ist fehlgeschlagen. Erneut versuchen.',
|
|
},
|
|
conflict: 'Nicht gespeichert, die Akte wurde zwischenzeitlich geändert. Fassungen vergleichen.',
|
|
} as const
|
|
|
|
export const clearanceText = {
|
|
label: 'Freigabestufe',
|
|
classification: 'Klassifizierung',
|
|
level: (n: number) => `Stufe ${n}`,
|
|
// Die Bezeichnungen der Stufen stehen nicht hier, sondern in
|
|
// ClearanceLevelConfig: sie sind im Adminbereich änderbar und folgen den
|
|
// Zugangsrollen des Discord-Servers. Siehe docs/13-entscheidungen.md.
|
|
locked: 'Inhalt gesperrt',
|
|
lockedHint: (n: number) => `Sichtbar ab Stufe ${n}`,
|
|
redacted: 'Geschwärzt',
|
|
redactedHint: (n: number) => `Geschwärzt, ab Stufe ${n} sichtbar`,
|
|
} as const
|