/** * Der Adminbereich: Rollen, Vorlagen, Einstellungen. * * 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 roleAdminText = { heading: 'Rollenverwaltung', intro: 'Jede Rolle des Discord-Servers steht hier. Zugangsrollen bestimmen die Freigabestufe, Rangrollen die Rechte, und eine Zugehörigkeitsrolle entscheidet, wer sich überhaupt anmelden darf.', empty: 'Noch keine Rollen eingelesen. Der Worker spiegelt sie, sobald er am Discord-Gateway hängt.', role: 'Rolle', category: 'Sorte', clearance: 'Freigabestufe', grantsMembership: 'Darf sich anmelden', permissions: 'Rechte', missingFromGuild: 'Auf dem Server nicht mehr vorhanden', save: 'Zuordnung speichern', invalidInput: 'Eingabe nicht gültig', roleGone: 'Rolle nicht gefunden, sie wurde zwischenzeitlich gelöscht', saving: 'Wird gespeichert', saved: 'Zuordnung gespeichert', confirm: 'Rollen-Mapping ändern? Das wirkt sofort für alle angemeldeten Personen.', categories: { MEMBERSHIP: 'Zugehörigkeit', RANK: 'Rang', CLEARANCE: 'Zugang', UNSORTED: 'Nicht eingeordnet', } as Record, optIn: 'Dieses Recht ist im Auslieferungszustand keiner Rolle zugeordnet. Vergib es bewusst.', preview: { heading: 'Vorschau', intro: 'Was jemand mit dieser Stufe sieht, wenn er keine weiteren Rollen hat.', level: 'Stufe', sees: 'Sieht Akten bis einschliesslich', hidden: 'Höhere Akten sind unsichtbar', lockedOnly: 'Höhere Akten sind sichtbar, aber gesperrt', nobody: 'Keine Rolle führt zu dieser Stufe', viaRoles: 'Erreichbar über', }, } as const export const templateAdminText = { heading: 'Vorlagen', intro: 'Eine Vorlage bestimmt, aus welchen Bausteinen eine Fallart besteht. Speichern legt eine neue Version an; bestehende Akten behalten die Version, mit der sie angelegt wurden.', empty: 'Noch keine Vorlage.', version: (v: number) => `Version ${v}`, fieldsLabel: 'Bausteine als JSON', fieldsHelp: 'Liste von Bausteinen. Eingabefelder: shorttext, longtext, select, multiselect, date, person, number, checklist, table. Feste Bausteine: heading, paragraph, signature, pagebreak.', numberPrefix: 'Präfix des Aktenzeichens', numberPadding: 'Stellen der laufenden Nummer', save: 'Als neue Version speichern', saved: (v: number) => `Gespeichert als Version ${v}`, preview: 'Vorschau', previewIntro: 'So sieht eine neue Akte mit dieser Vorlage aus.', invalid: 'Die Bausteine sind kein gültiges JSON.', fieldsInvalid: 'Die Bausteine sind nicht gültig.', inputField: 'Eingabe', staticBlock: 'Fester Baustein', } as const export const settingsText = { heading: 'Änderungsrichtlinie', intro: 'Regelt, ob und wie lange Verlaufseinträge nachträglich geändert werden dürfen. Gilt für die ganze Abteilung.', policy: 'Richtlinie', graceMinutes: 'Karenzzeit in Minuten', markGrace: 'Auch Änderungen in der Karenzzeit sichtbar markieren', save: 'Richtlinie speichern', saved: 'Richtlinie gespeichert', confirm: 'Änderungsrichtlinie ändern? Das gilt sofort für alle Akten.', policies: { APPEND_ONLY: 'Keine Änderung möglich, nur Korrektureinträge', GRACE_WINDOW: 'Eigene Einträge in der Karenzzeit frei änderbar, danach nur mit Recht', OPEN: 'Jederzeit änderbar, sofern das Recht vorliegt', } as Record, } as const