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.
61 lines
2.3 KiB
TypeScript
61 lines
2.3 KiB
TypeScript
/**
|
|
* Personalakten und die Zuständigen der Abteilung.
|
|
*
|
|
* 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 personnelText = {
|
|
one: 'Personalakte',
|
|
many: 'Personalakten',
|
|
listHeading: 'Personalakten',
|
|
name: 'Name',
|
|
rank: 'Dienstgrad',
|
|
department: 'Abteilung',
|
|
noDepartment: 'Keine Abteilung',
|
|
status: 'Status',
|
|
statusHint: 'Mehrere möglich. „Gekündigt" und „Verhaftet" schließen einander nicht aus.',
|
|
statusNone: 'Kein Status gesetzt',
|
|
filterStatus: 'Status',
|
|
filterAll: 'Alle',
|
|
note: 'Anmerkung',
|
|
noteHelp: 'Steht im Kopf der Akte, etwa "kein Discord-Konto, Aktenlage aus 2025".',
|
|
linkedAccount: 'Discord-Konto',
|
|
noAccount: 'Ohne Discord-Konto',
|
|
empty: 'Noch keine Personalakte. Erste Personalakte anlegen.',
|
|
emptySearch: 'Kein Treffer. Anderen Begriff versuchen.',
|
|
create: 'Personalakte anlegen',
|
|
createTitle: 'Neue Personalakte',
|
|
createHint:
|
|
'Meist für Externe ohne Discord-Konto: Sicherheitsdienst, Zeugen, Vertragspartner. Zusammen mit der Akte entsteht das Aktenblatt als erster Eintrag.',
|
|
search: 'Name, Dienstgrad oder Abteilung',
|
|
countLabel: (n: number) => (n === 1 ? '1 Personalakte' : `${n} Personalakten`),
|
|
edit: 'Kopfdaten ändern',
|
|
reclassify: 'Klassifizierung ändern',
|
|
headData: 'Kopfdaten',
|
|
backlinks: 'Fälle mit dieser Person',
|
|
backlinksEmpty: 'Diese Person kommt in keinem Fall vor, den du sehen darfst.',
|
|
backlinksCount: (n: number) => (n === 1 ? '1 Fall' : `${n} Fälle`),
|
|
linkCase: 'Fall verknüpfen',
|
|
linkCaseHint: 'Aktenzeichen eintragen und die Rolle wählen, in der die Person darin vorkommt.',
|
|
} as const
|
|
|
|
export const assignmentText = {
|
|
heading: 'Zuständige der Abteilung',
|
|
empty: 'Niemand zugeordnet.',
|
|
add: 'Mitglied zuordnen',
|
|
remove: 'Entfernen',
|
|
hint:
|
|
'Wer hier steht, liest die Personalakte unabhängig von seiner Freigabestufe.',
|
|
roles: {
|
|
HANDLER: 'Aktenführung',
|
|
INVESTIGATOR: 'Ermittler',
|
|
CONTACT: 'Ansprechpartner',
|
|
} as Record<string, string>,
|
|
} as const
|