Litigation Builder slice B6 (m/paliad#153 PRD §7.1 + §7.4 + §10) — last slice of the train; the Builder is now complete. Mobile basic-read (<640px, PRD §10): - builder.ts wireMobileGuard — a capture-phase document click listener that, only when matchMedia("(max-width:640px)") matches, intercepts taps on mutating affordances (rename/share/promote/new-scenario/add-proceeding + every in-triplet button/input/select), preventDefault+stopPropagation, and surfaces a "Auf größerem Bildschirm öffnen" toast. Desktop code paths are untouched (guard early-returns off-mobile). Column-triplets already collapse to a single column via the reused .fr-columns-view @640px rule; reading (open/switch scenarios, search, mode tabs) stays fully functional. - global.css — .builder-mobile-toast + full-bleed modal on phones. Dead U0-U4 catalog cleanup (PRD §7.4) — deleted, no remaining references (grep "from.*fristenrechner-|from.*verfahrensablauf" shows only the kept verfahrensablauf-core + verfahrensablauf-detail-mode the builder reuses): - client/fristenrechner-mode-a.ts, fristenrechner-result.ts(+test), fristenrechner-wizard.ts(+test) - client/verfahrensablauf.ts, client/views/event-card-choices.ts, client/views/verfahrensablauf-state.ts(+test) - components/VerfahrensablaufBody.tsx (/tools/fristenrechner + /tools/verfahrensablauf stay as 301 redirects to /tools/procedures — handlers already redirectToProcedures.) i18n finalised (DE+EN): removed 4 duplicate deadlines.party.* keys per block (behaviour-preserving — the later, winning copy is kept) and added the missing DE "cal.today". Codegen clean, no dupes, full DE/EN parity. go build/vet clean; bun build + 227 frontend tests pass. Playwright- verified: at 375px the triplet collapses to one column + the scenario list reads, while "+ Verfahren hinzufügen" and "Teilen" are blocked (toast shown, no action); at 1280px the same actions work normally.
6892 lines
391 KiB
TypeScript
6892 lines
391 KiB
TypeScript
// i18n — Client-side internationalization for paliad
|
||
// Supports DE (German) and EN (English)
|
||
|
||
import { FIRM } from "../branding";
|
||
import type { I18nKey } from "../i18n-keys";
|
||
|
||
export type { I18nKey };
|
||
|
||
export type Lang = "de" | "en";
|
||
|
||
|
||
const STORAGE_KEY = "paliad-lang";
|
||
const LEGACY_STORAGE_KEY = "patholo-lang";
|
||
|
||
let currentLang: Lang = "de";
|
||
const changeCallbacks: Array<() => void> = [];
|
||
|
||
const translations: Record<Lang, Record<string, string>> = {
|
||
de: {
|
||
// Navigation
|
||
"nav.home": "Home",
|
||
"nav.kostenrechner": "Kostenrechner",
|
||
"nav.downloads": "Downloads",
|
||
"nav.links": "Links",
|
||
"nav.glossar": "Glossar",
|
||
"nav.gebuehrentabellen": "Geb\u00fchrentabellen",
|
||
"nav.checklisten": "Checklisten",
|
||
"nav.submissions": "Schriftsätze",
|
||
"nav.gerichte": "Gerichte",
|
||
"nav.logout": "Abmelden",
|
||
"nav.akten": "Akten",
|
||
"nav.projekte": "Projekte",
|
||
"nav.fristen": "Fristen",
|
||
"nav.termine": "Termine",
|
||
"nav.dashboard": "Dashboard",
|
||
"nav.agenda": "Agenda",
|
||
"nav.inbox": "Genehmigungen",
|
||
"nav.paliadin": "Paliadin",
|
||
"nav.team": "Team",
|
||
"nav.group.uebersicht": "\u00dcbersicht",
|
||
"nav.group.ansichten": "Ansichten",
|
||
"nav.group.werkzeuge": "Werkzeuge",
|
||
"nav.neuigkeiten": "Neuigkeiten",
|
||
"nav.soon.tooltip": "Bald verf\u00fcgbar",
|
||
|
||
// Theme toggle (m/paliad#2). The button cycles auto \u2192 light \u2192 dark
|
||
// \u2192 auto. The "toggle.<pref>" keys show the *current* pref next to
|
||
// the icon; the "cycle.<pref>" keys describe WHAT the next click will
|
||
// do (read by aria-label / tooltip).
|
||
"theme.toggle.auto": "Auto",
|
||
"theme.toggle.light": "Hell",
|
||
"theme.toggle.dark": "Dunkel",
|
||
"theme.toggle.cycle.auto": "Auf Hell-Modus wechseln",
|
||
"theme.toggle.cycle.light": "Auf Dunkel-Modus wechseln",
|
||
"theme.toggle.cycle.dark": "Auf Auto wechseln (System)",
|
||
|
||
// BottomNav (mobile)
|
||
"bottomnav.add": "Anlegen",
|
||
"bottomnav.menu": "Menü",
|
||
"bottomnav.add.title": "Schnell anlegen",
|
||
"bottomnav.add.deadline": "Frist anlegen",
|
||
"bottomnav.add.deadline.sub": "Neue Frist mit Datum & Projekt",
|
||
"bottomnav.add.appointment": "Termin anlegen",
|
||
"bottomnav.add.appointment.sub": "Neuer Termin mit Uhrzeit & Ort",
|
||
"bottomnav.add.project": "Projekt anlegen",
|
||
"bottomnav.add.project.sub": "Neues Mandat / Verfahren / Patent",
|
||
"bottomnav.add.cancel": "Abbrechen",
|
||
"bottomnav.badge.deadlines": "{overdue} überfällig + {today} heute fällig",
|
||
|
||
// Changelog (What's New) — t-paliad-027
|
||
"changelog.title": "Neuigkeiten — Paliad",
|
||
"changelog.heading": "Neuigkeiten",
|
||
"changelog.subtitle": "Was sich in Paliad in letzter Zeit getan hat.",
|
||
"changelog.empty": "Noch keine Eintr\u00e4ge.",
|
||
"changelog.tag.feature": "Neu",
|
||
"changelog.tag.content": "Inhalt",
|
||
"changelog.tag.fix": "Fix",
|
||
|
||
// Footer
|
||
"footer.text": "\u00a9 2026 Paliad \u2014 by",
|
||
|
||
// Landing page
|
||
"index.title": `Paliad \u2014 Patent Litigation f\u00fcr ${FIRM}`,
|
||
"index.hero.accent": `f\u00fcr ${FIRM}`,
|
||
"index.hero.sub": `Administration, Knowledge und Tools f\u00fcr das ${FIRM} Patent-Team.`,
|
||
"index.guides.title": "Leitf\u00e4den",
|
||
"index.guides.desc": "Praxisleitf\u00e4den zu Verfahren vor dem EPA, BPatG und UPC. Schritt-f\u00fcr-Schritt-Anleitungen f\u00fcr typische Workflows.",
|
||
"index.templates.title": "Vorlagen",
|
||
"index.templates.desc": `Standardisierte Vorlagen f\u00fcr Schrifts\u00e4tze, Korrespondenz und interne Dokumente. ${FIRM} Patents Style Guide.`,
|
||
"index.documents.title": "Dokumente",
|
||
"index.documents.desc": "Referenzmaterialien, Checklisten und Arbeitshilfen f\u00fcr den Praxisalltag im Patentrecht.",
|
||
"index.tools": "Werkzeuge",
|
||
"index.cost.title": "Kostenrechner",
|
||
"index.cost.desc": "Sch\u00e4tzung der Verfahrenskosten f\u00fcr DE-Gerichte, UPC und EPA-Verfahren. Gerichts- und Anwaltskosten auf einen Blick.",
|
||
"index.deadline.title": "Fristenrechner",
|
||
"index.deadline.desc": "Berechnung von Verfahrensfristen f\u00fcr UPC-, deutsche und EPA-Verfahren mit Feiertags-Anpassung.",
|
||
"index.glossar.title": "Patentglossar",
|
||
"index.glossar.desc": "Zweisprachiges DE/EN-Glossar der wichtigsten Begriffe im Patentrecht. Durchsuchbar nach Kategorien.",
|
||
"index.downloads": "Downloads",
|
||
"index.style.title": `${FIRM} Patents Style`,
|
||
"index.style.desc": `Word-Vorlage im ${FIRM} Patents Style. Formatierung, Schriftarten und Makros f\u00fcr standardisierte Schrifts\u00e4tze.`,
|
||
"index.offices": "Standorte",
|
||
"index.office.munich": "M\u00fcnchen",
|
||
"index.office.duesseldorf": "D\u00fcsseldorf",
|
||
"index.office.hamburg": "Hamburg",
|
||
"index.office.amsterdam": "Amsterdam",
|
||
"index.office.london": "London",
|
||
"index.office.paris": "Paris",
|
||
"index.office.milan": "Mailand",
|
||
|
||
// Login
|
||
"login.title": "Anmelden \u2014 Paliad",
|
||
"login.tab.login": "Anmelden",
|
||
"login.tab.register": "Registrieren",
|
||
"login.email": "E-Mail",
|
||
"login.password": "Passwort",
|
||
"login.password.placeholder": "Passwort",
|
||
"login.submit": "Anmelden",
|
||
"login.confirm": "Passwort best\u00e4tigen",
|
||
"login.confirm.placeholder": "Passwort wiederholen",
|
||
"login.minchars": "Mind. 8 Zeichen",
|
||
"login.register.submit": "Registrieren",
|
||
"login.hint": `Nur f\u00fcr autorisierte ${FIRM}-E-Mail-Adressen.`,
|
||
"login.error.connection": "Verbindungsfehler. Bitte versuchen Sie es erneut.",
|
||
"login.error.mismatch": "Passw\u00f6rter stimmen nicht \u00fcberein.",
|
||
"login.error.minlength": "Passwort muss mindestens 8 Zeichen lang sein.",
|
||
"login.success.created": "Account erstellt. Bitte melden Sie sich an.",
|
||
|
||
// Kostenrechner
|
||
"kosten.title": "Prozesskostenrechner \u2014 Paliad",
|
||
"kosten.heading": "Prozesskostenrechner",
|
||
"kosten.subtitle": "Sch\u00e4tzung der Verfahrenskosten f\u00fcr Patentverletzungs-, Nichtigkeits- und EPA-Verfahren.",
|
||
"kosten.streitwert": "Streitwert",
|
||
"kosten.vat": "MwSt",
|
||
"kosten.vat.foreign": "0% (Ausland)",
|
||
"kosten.de.infringement": "DE Verletzungsverfahren",
|
||
"kosten.de.nullity": "DE Nichtigkeitsverfahren",
|
||
"kosten.upc": "UPC",
|
||
"kosten.epa": "EPA",
|
||
"kosten.inst.lg": "LG (Verletzung 1. Instanz)",
|
||
"kosten.inst.olg": "OLG (Berufung)",
|
||
"kosten.inst.bgh_nzb": "BGH (Nichtzulassungsbeschwerde)",
|
||
"kosten.inst.bgh_rev": "BGH (Revision)",
|
||
"kosten.inst.bpatg": "BPatG (Nichtigkeitsverfahren)",
|
||
"kosten.inst.bgh_nullity": "BGH (Nichtigkeitsberufung)",
|
||
"kosten.inst.upc_first": "UPC (1. Instanz)",
|
||
"kosten.inst.upc_appeal": "UPC (Berufung)",
|
||
"kosten.inst.epa_opposition": "Einspruch",
|
||
"kosten.inst.epa_appeal": "Einspruchsbeschwerde",
|
||
"kosten.fee.version": "Geb\u00fchrenversion:",
|
||
"kosten.fee.schedule": "Geb\u00fchrenordnung:",
|
||
"kosten.fee.from2026": "Ab 2026",
|
||
"kosten.fee.pre2026": "Vor 2026",
|
||
"kosten.fee.current": "Aktuell (2025)",
|
||
"kosten.attorneys": "Rechtsanw\u00e4lte:",
|
||
"kosten.patent.attorneys": "Patentanw\u00e4lte:",
|
||
"kosten.clients": "Mandanten:",
|
||
"kosten.oral.hearing": "M\u00fcndl. Verhandlung",
|
||
"kosten.revocation": "Widerklage auf Nichtigkeit",
|
||
"kosten.total": "Gesamtkosten",
|
||
"kosten.empty": "W\u00e4hlen Sie mindestens eine Instanz.",
|
||
"kosten.print": "Drucken",
|
||
"kosten.court.fees": "Gerichtskosten",
|
||
"kosten.attorney.fees": "Anwaltskosten (RA)",
|
||
"kosten.patent.attorney.fees": "Patentanwaltskosten (PA)",
|
||
"kosten.epa.fees": "EPA-Geb\u00fchren",
|
||
"kosten.attorney.label": "Rechtsanwalt",
|
||
"kosten.patent.attorney.label": "Patentanwalt",
|
||
"kosten.detail.procedure": "Verfahrensgeb.",
|
||
"kosten.detail.increase": "Erh\u00f6hung",
|
||
"kosten.detail.hearing": "Terminsgeb.",
|
||
"kosten.detail.lump": "Pauschale",
|
||
"kosten.detail.vat": "MwSt",
|
||
"kosten.detail.total": "Gesamt",
|
||
"kosten.upc.fixed": "Festgeb\u00fchr",
|
||
"kosten.upc.value": "Streitwertabh. Geb\u00fchr",
|
||
"kosten.upc.court.total": "Gerichtskosten gesamt",
|
||
"kosten.upc.sme": "KMU-Reduzierung",
|
||
"kosten.upc.recoverable": "Erstattungsf\u00e4hige Kosten (Obergrenze)",
|
||
"kosten.epa.official": "Amtsgeb\u00fchr",
|
||
"kosten.epa.note": "Anwaltskosten nach Zeitaufwand (nicht RVG-basiert).",
|
||
"kosten.share": "Link kopieren",
|
||
"kosten.share.copied": "Link kopiert!",
|
||
"kosten.compare": "Vergleichen",
|
||
"kosten.compare.exit": "Vergleich beenden",
|
||
"kosten.scenario.a": "Szenario A",
|
||
"kosten.scenario.b": "Szenario B",
|
||
"kosten.scenario.diff": "Differenz",
|
||
"kosten.print.title": "Kostenberechnung",
|
||
"kosten.print.date": "Datum",
|
||
"kosten.print.streitwert": "Streitwert",
|
||
"kosten.print.vat": "MwSt-Satz",
|
||
"kosten.print.instances": "Instanzen",
|
||
"kosten.print.disclaimer": "Dieses Dokument dient ausschlie\u00dflich der internen Verwendung und stellt keine Rechtsberatung dar. Alle Angaben ohne Gew\u00e4hr.",
|
||
|
||
// Fristenrechner
|
||
"deadlines.title": "Fristenrechner \u2014 Paliad",
|
||
"deadlines.heading": "Fristenrechner",
|
||
"deadlines.subtitle": "Berechnung von Verfahrensfristen f\u00fcr UPC-, deutsche und EPA-Verfahren.",
|
||
|
||
// Unified procedural-events tool (m/paliad#151)
|
||
"procedures.title": "Verfahren & Fristen \u2014 Paliad",
|
||
"procedures.heading": "Verfahren & Fristen",
|
||
"procedures.subtitle": "Verfahrensablauf, Fristenrechner und gef\u00fchrte Suche in einem Tool.",
|
||
"procedures.filter.search.placeholder": "Klageerhebung, Hinweisbeschluss, oral hearing\u2026",
|
||
"procedures.filter.axis.forum": "Forum:",
|
||
"procedures.filter.axis.proc": "Verfahren:",
|
||
"procedures.filter.axis.kind": "Ereignisart:",
|
||
"procedures.filter.axis.party": "Partei:",
|
||
"procedures.tab.proceeding": "Verfahren w\u00e4hlen",
|
||
"procedures.tab.search": "Direkt suchen",
|
||
"procedures.tab.wizard": "Gef\u00fchrt",
|
||
"procedures.tab.akte": "Aus Akte",
|
||
"procedures.panel.akte.placeholder": "Akten-Einstieg folgt in einem sp\u00e4teren Slice.",
|
||
"nav.procedures": "Verfahren & Fristen",
|
||
|
||
// Litigation Builder (m/paliad#153 B1+B2)
|
||
"builder.subtitle": "Litigation Builder \u2014 Szenarien bauen, Verfahren stapeln, Fristen behalten.",
|
||
"builder.header.scenario": "Szenario:",
|
||
"builder.header.akte": "Akte:",
|
||
"builder.header.stichtag": "Stichtag:",
|
||
"builder.header.search": "Suche:",
|
||
"builder.akte.none": "\u2014 ohne \u2014",
|
||
"builder.akte.banner.prefix": "Aus Akte:",
|
||
"builder.search.placeholder": "Ereignis, Szenario, Akte \u2026",
|
||
"builder.action.rename": "Benennen",
|
||
"builder.action.rename.prompt": "Name f\u00fcr dieses Szenario:",
|
||
"builder.action.share": "Teilen",
|
||
"builder.action.promote": "Als Projekt anlegen",
|
||
"builder.mode.cold": "\u00dcbersicht",
|
||
"builder.mode.event": "Ereignis",
|
||
"builder.mode.akte": "Aus Akte",
|
||
"builder.panel.title": "Meine Szenarien",
|
||
"builder.panel.new": "+ Neues Szenario",
|
||
"builder.panel.empty": "Noch keine Szenarien.",
|
||
"builder.bucket.active": "Aktiv",
|
||
"builder.empty.headline": "Noch kein Szenario ge\u00f6ffnet.",
|
||
"builder.empty.hint": "Starte ein neues Szenario, w\u00e4hle aus deiner Liste oder \u00fcbernimm eine Akte (B4).",
|
||
"builder.empty.cta": "Neues Szenario starten",
|
||
"builder.empty.recent": "Zuletzt bearbeitet",
|
||
"builder.picker.placeholder": "\u2014 Szenario w\u00e4hlen \u2014",
|
||
"builder.picker.title": "Verfahren hinzuf\u00fcgen",
|
||
"builder.picker.close": "Schlie\u00dfen",
|
||
"builder.picker.aria": "Verfahren ausw\u00e4hlen",
|
||
"builder.picker.axis.forum": "Forum:",
|
||
"builder.picker.axis.proc": "Verfahren:",
|
||
"builder.picker.empty": "Keine Verfahren verf\u00fcgbar.",
|
||
"builder.picker.future_jurisdiction": "Andere Foren folgen sp\u00e4ter.",
|
||
"builder.canvas.add_proceeding": "+ Verfahren hinzuf\u00fcgen",
|
||
"builder.triplet.loading": "Berechne Fristen \u2026",
|
||
"builder.triplet.unknown_proceeding": "Unbekannter Verfahrenstyp.",
|
||
"builder.triplet.side.claimant": "Kl\u00e4ger-Sicht",
|
||
"builder.triplet.side.defendant": "Beklagten-Sicht",
|
||
"builder.triplet.flags.label": "Optionen:",
|
||
"builder.triplet.perspective.label": "Perspektive:",
|
||
"builder.triplet.perspective.none": "keine",
|
||
"builder.triplet.perspective.claimant": "Kl\u00e4ger",
|
||
"builder.triplet.perspective.defendant": "Beklagter",
|
||
"builder.triplet.detailgrad.label": "Detailgrad:",
|
||
"builder.triplet.detailgrad.selected": "Gew\u00e4hlt",
|
||
"builder.triplet.detailgrad.all_options": "Alle Optionen",
|
||
"builder.triplet.remove": "Entfernen",
|
||
"builder.triplet.collapse": "Einklappen",
|
||
"builder.triplet.expand": "Ausklappen",
|
||
"builder.triplet.no_flags": "(keine Flags f\u00fcr diesen Verfahrenstyp)",
|
||
"builder.event.state.planned": "geplant",
|
||
"builder.event.state.filed": "eingereicht",
|
||
"builder.event.state.skipped": "ausgelassen",
|
||
"builder.event.action.file": "Einreichen",
|
||
"builder.event.action.skip": "Auslassen",
|
||
"builder.event.action.reset": "Zur\u00fcck zu geplant",
|
||
"builder.event.actual_date.prompt": "Datum der Einreichung:",
|
||
"builder.event.skip_reason.prompt": "Grund (optional):",
|
||
"builder.event.horizon.label": "+{n} Optionen \u25be",
|
||
"builder.event.horizon.hide": "Optionen ausblenden",
|
||
"builder.save.idle": "\u00a0",
|
||
"builder.save.saving": "Speichert \u2026",
|
||
"builder.save.saved": "Gespeichert \u2713",
|
||
"builder.save.error": "Speichern fehlgeschlagen",
|
||
"builder.search.hint.start": "Tippe \u2026 z.\u202fB. \u201eKlageerwiderung\u201c, \u201eHinweis\u201c, \u201eHL-2024\u201c",
|
||
"builder.search.hint.short": "Mindestens 2 Zeichen.",
|
||
"builder.search.hint.loading": "Suche \u2026",
|
||
"builder.search.hint.empty": "Keine Treffer.",
|
||
"builder.search.hint.error": "Suche fehlgeschlagen. Erneut versuchen.",
|
||
"builder.search.hint.akte_b4": "Akten-Modus folgt in B4.",
|
||
"builder.search.group.events": "Ereignisse",
|
||
"builder.search.group.scenarios": "Szenarien",
|
||
"builder.search.group.projects": "Akten",
|
||
"builder.search.summary.events.one": "{n} Ereignis",
|
||
"builder.search.summary.events.other": "{n} Ereignisse",
|
||
"builder.search.summary.scenarios.one": "{n} Szenario",
|
||
"builder.search.summary.scenarios.other": "{n} Szenarien",
|
||
"builder.search.summary.projects.one": "{n} Akte",
|
||
"builder.search.summary.projects.other": "{n} Akten",
|
||
"builder.search.anchor.divider": "\u2501\u2501\u2501\u2501 DU BIST HIER \u2501\u2501\u2501\u2501",
|
||
|
||
// B5 \u2014 side-panel buckets, sharing, promote-to-project wizard.
|
||
"builder.bucket.shared": "Geteilt mit mir",
|
||
"builder.bucket.promoted": "Als Projekt angelegt",
|
||
"builder.bucket.archived": "Archiviert",
|
||
"builder.bucket.empty": "\u2014",
|
||
"builder.readonly.watermark": "Geteilt von {owner} \u00b7 schreibgesch\u00fctzt",
|
||
"builder.readonly.blocked": "Schreibgesch\u00fctzt \u2014 Bearbeiten ist nur f\u00fcr die Eigent\u00fcmer:in m\u00f6glich.",
|
||
"builder.share.title": "Szenario teilen",
|
||
"builder.share.subtitle": "Schreibgesch\u00fctzt mit HLC-Kolleg:innen teilen. Du bleibst alleinige Bearbeiter:in.",
|
||
"builder.share.search.placeholder": "Name oder E-Mail suchen \u2026",
|
||
"builder.share.button": "Schreibgesch\u00fctzt teilen",
|
||
"builder.share.current.title": "Bereits geteilt mit:",
|
||
"builder.share.current.empty": "Noch mit niemandem geteilt.",
|
||
"builder.share.revoke": "Entfernen",
|
||
"builder.share.close": "Schlie\u00dfen",
|
||
"builder.share.no_results": "Keine Nutzer:innen gefunden.",
|
||
"builder.share.error": "Teilen fehlgeschlagen. Erneut versuchen.",
|
||
"builder.promote.title": "Als Projekt anlegen",
|
||
"builder.promote.step1": "Best\u00e4tigen",
|
||
"builder.promote.step2": "Parteien erg\u00e4nzen",
|
||
"builder.promote.step3": "Akte-Metadaten",
|
||
"builder.promote.next": "Weiter",
|
||
"builder.promote.back": "Zur\u00fcck",
|
||
"builder.promote.commit": "Anlegen",
|
||
"builder.promote.cancel": "Abbrechen",
|
||
"builder.promote.summary.heading": "Das wird angelegt:",
|
||
"builder.promote.summary.proceeding": "Hauptverfahren",
|
||
"builder.promote.summary.events_filed": "eingereichte Ereignisse",
|
||
"builder.promote.summary.events_planned": "geplante Ereignisse",
|
||
"builder.promote.summary.flags": "aktive Optionen",
|
||
"builder.promote.summary.note_extra": "{n} weitere(s) eigenst\u00e4ndige(s) Verfahren bleibt im Szenario und wird nicht automatisch \u00fcbernommen.",
|
||
"builder.promote.parties.hint": "Trage die echten Parteinamen ein \u2014 oder erg\u00e4nze sie sp\u00e4ter in der Akte.",
|
||
"builder.promote.parties.add": "+ Partei hinzuf\u00fcgen",
|
||
"builder.promote.parties.name": "Name",
|
||
"builder.promote.parties.role": "Rolle (z. B. Kl\u00e4ger)",
|
||
"builder.promote.parties.representative": "Vertreter:in",
|
||
"builder.promote.parties.remove": "Entfernen",
|
||
"builder.promote.parties.empty": "Noch keine Parteien.",
|
||
"builder.promote.meta.title": "Aktentitel / Mandat",
|
||
"builder.promote.meta.title.placeholder": "z. B. Becker ./. X \u2014 UPC Verletzung",
|
||
"builder.promote.meta.reference": "Referenz (optional)",
|
||
"builder.promote.meta.case_number": "Aktenzeichen (optional)",
|
||
"builder.promote.meta.client_number": "Mandantennummer (optional)",
|
||
"builder.promote.meta.our_side": "Unsere Seite",
|
||
"builder.promote.meta.our_side.claimant": "Kl\u00e4ger",
|
||
"builder.promote.meta.our_side.defendant": "Beklagter",
|
||
"builder.promote.meta.our_side.none": "\u2014 offen \u2014",
|
||
"builder.promote.meta.parent": "\u00dcbergeordnetes Verfahren (optional)",
|
||
"builder.promote.meta.parent.none": "\u2014 keines \u2014",
|
||
"builder.promote.meta.team": "Team (optional)",
|
||
"builder.promote.meta.team.hint": "Du wirst automatisch als Lead hinzugef\u00fcgt.",
|
||
"builder.promote.error.title_required": "Bitte einen Aktentitel eingeben.",
|
||
"builder.promote.error.generic": "Anlegen fehlgeschlagen. Erneut versuchen.",
|
||
"builder.promote.success": "Akte angelegt \u2014 Weiterleitung \u2026",
|
||
"builder.mobile.blocked": "Auf gr\u00f6\u00dferem Bildschirm \u00f6ffnen, um zu bearbeiten.",
|
||
|
||
"deadlines.step1": "Verfahrensart w\u00e4hlen",
|
||
"deadlines.step2": "Ausgangsdatum eingeben",
|
||
"deadlines.step2.perspective": "Perspektive und Datum",
|
||
"deadlines.step3": "Ergebnis",
|
||
"deadlines.upc": "UPC",
|
||
"deadlines.de": "Deutsche Gerichte",
|
||
"deadlines.epa": "EPA",
|
||
"deadlines.dpma": "DPMA",
|
||
"deadlines.dpma.opp.dpma": "Einspruch DPMA",
|
||
"deadlines.dpma.appeal.bpatg": "Beschwerde BPatG (DPMA)",
|
||
"deadlines.dpma.appeal.bgh": "Rechtsbeschwerde BGH",
|
||
"deadlines.trigger.event": "Ausl\u00f6sendes Ereignis:",
|
||
"deadlines.trigger.date": "Datum:",
|
||
"deadlines.trigger.label": "Ausgangsdatum",
|
||
"deadlines.priority.date": "Priorit\u00e4tstag (optional):",
|
||
"deadlines.court.label": "Gericht:",
|
||
"deadlines.flag.ccr": "Mit Widerklage auf Nichtigkeit",
|
||
"deadlines.flag.inf_amend": "Mit Antrag auf Patentänderung (R.30)",
|
||
"deadlines.flag.rev_amend": "Mit Antrag auf Patentänderung (R.49.2.a)",
|
||
"deadlines.flag.rev_cci": "Mit Verletzungswiderklage (R.49.2.b)",
|
||
"deadlines.calculate": "Fristen berechnen",
|
||
"deadlines.print": "Drucken",
|
||
"deadlines.reset": "\u2190 Neu berechnen",
|
||
"deadlines.upc.inf.cfi": "Verletzungsverfahren",
|
||
"deadlines.upc.rev.cfi": "Nichtigkeitsklage",
|
||
"deadlines.upc.ccr.cfi": "Widerklage auf Nichtigkeit",
|
||
"deadlines.upc.pi.cfi": "Einstw. Ma\u00dfnahmen",
|
||
"deadlines.upc.apl.merits": "Berufung",
|
||
"deadlines.upc.dmgs.cfi": "Schadensbemessung",
|
||
"deadlines.upc.disc.cfi": "Bucheinsicht",
|
||
"deadlines.upc.apl.cost": "Berufung Kosten",
|
||
"deadlines.upc.apl.order": "Berufung Anordnungen",
|
||
"deadlines.upc.apl.unified": "Berufung",
|
||
"deadlines.appeal_target.label": "Worauf richtet sich die Berufung?",
|
||
"deadlines.appeal_target.endentscheidung": "Endentscheidung",
|
||
"deadlines.appeal_target.kostenentscheidung": "Kostenentscheidung",
|
||
"deadlines.appeal_target.anordnung": "Anordnung",
|
||
"deadlines.appeal_target.schadensbemessung": "Schadensbemessung",
|
||
"deadlines.appeal_target.bucheinsicht": "Bucheinsicht",
|
||
"deadlines.de.group.inf": "Verletzungsverfahren",
|
||
"deadlines.de.group.null": "Nichtigkeitsverfahren",
|
||
"deadlines.de.inf.lg": "LG (1. Instanz)",
|
||
"deadlines.de.inf.olg": "OLG (Berufung)",
|
||
"deadlines.de.inf.bgh": "BGH (Revision / NZB)",
|
||
"deadlines.de.null.bpatg": "BPatG (1. Instanz)",
|
||
"deadlines.de.null.bgh": "BGH (Berufung)",
|
||
"deadlines.epa.opp.opd": "Einspruchsverfahren",
|
||
"deadlines.epa.opp.boa": "Beschwerdeverfahren",
|
||
"deadlines.epa.grant.exa": "EP-Erteilungsverfahren",
|
||
"deadlines.party.both.label": "beide Seiten",
|
||
"deadlines.court.set": "vom Gericht bestimmt",
|
||
"deadlines.court.indirect": "unbestimmt",
|
||
"deadlines.conditional.depends_on": "abhängig von {parent}",
|
||
"deadlines.conditional.unset": "abhängig von vorgelagertem Ereignis",
|
||
"deadlines.optional.badge": "auf Antrag",
|
||
"deadlines.priority.mandatory": "Pflicht",
|
||
"deadlines.priority.recommended": "empfohlen",
|
||
"deadlines.priority.optional": "Kann (auf Antrag)",
|
||
"deadlines.priority.informational": "Zur Kenntnis",
|
||
"deadlines.priority.informational.notice_label": "Hinweis",
|
||
"project.instance_level.first": "Erste Instanz",
|
||
"project.instance_level.appeal": "Berufung",
|
||
"project.instance_level.cassation": "Revision",
|
||
"project.instance_level.unset": "(nicht gesetzt)",
|
||
"verlauf.spawn.chip": "Spawnt:",
|
||
"verlauf.spawn.cycle_warning": "Einige proceeding-übergreifende Spawn-Regeln wurden wegen eines Zyklus übersprungen.",
|
||
"deadlines.proceeding.selected": "Verfahren:",
|
||
"deadlines.proceeding.reselect": "Anderes Verfahren wählen",
|
||
"deadlines.step1.heading": "Schritt 1 — Welche Akte?",
|
||
"deadlines.step1.search.placeholder": "Akte suchen…",
|
||
"deadlines.step1.search.empty": "Keine passende Akte gefunden.",
|
||
"deadlines.step1.divider.new": "oder eine neue Akte",
|
||
"deadlines.step1.divider.adhoc": "oder ad-hoc, ohne Akte",
|
||
"deadlines.step1.new.cta": "+ Neue Akte anlegen",
|
||
"deadlines.step1.adhoc.upc": "UPC-Verfahren",
|
||
"deadlines.step1.adhoc.de": "DE-Verfahren",
|
||
"deadlines.step1.adhoc.epa": "EPA-Verfahren",
|
||
"deadlines.step1.adhoc.dpma": "DPMA-Verfahren",
|
||
"deadlines.step1.selected": "Akte:",
|
||
"deadlines.step1.reselect": "Andere Akte",
|
||
"deadlines.step1.summary.adhoc.suffix": "ohne Akte (Erkundung)",
|
||
"deadlines.step2.heading": "Schritt 2 — Was möchten Sie tun?",
|
||
"deadlines.step2.file.title": "Etwas einreichen",
|
||
"deadlines.step2.file.desc": "Outgoing — eine Frist tritt aus eigener Handlung ein.",
|
||
"deadlines.step2.happened.title": "Etwas ist passiert",
|
||
"deadlines.step2.happened.desc": "Incoming — ein Ereignis hat eine Frist ausgelöst.",
|
||
"deadlines.step2.browse.title": "Verfahrensablauf einsehen",
|
||
"deadlines.step2.browse.desc": "Browse / Learn — sehen, was wann passiert. Keine Frist eintragen.",
|
||
"deadlines.save.cta.adhoc.hint": "Ad-hoc — kein Projekt, kein Speichern",
|
||
"deadlines.step3a.heading": "Was möchten Sie einreichen?",
|
||
"deadlines.step3a.back": "zurück zur Auswahl",
|
||
"deadlines.step3a.file.title": "Schriftsatz einreichen",
|
||
"deadlines.step3a.file.desc": "Verfahrensablauf laden — Frist berechnen und zur Akte hinzufügen.",
|
||
"deadlines.step3a.draft.title": "Schriftsatz entwerfen",
|
||
"deadlines.step3a.draft.desc": "Vorbereitung — später mit Drafting-Surface verknüpft.",
|
||
"deadlines.step3a.enter.title": "Frist manuell erfassen",
|
||
"deadlines.step3a.enter.desc": "Direkt eintragen — bereits bekanntes Datum / bekannter Typ.",
|
||
"deadlines.step3a.soon": "kommt bald",
|
||
"deadlines.date.edit.hint": "Datum bearbeiten — Folgefristen werden neu berechnet",
|
||
"deadlines.view.label": "Ansicht:",
|
||
"deadlines.view.timeline": "Zeitstrahl",
|
||
"deadlines.view.columns": "Spalten",
|
||
"deadlines.notes.show": "Hinweise anzeigen",
|
||
"deadlines.durations.show": "Dauern anzeigen",
|
||
"deadlines.col.ours": "Unsere Seite",
|
||
"deadlines.col.court": "Gericht",
|
||
"deadlines.col.opponent": "Gegnerseite",
|
||
"deadlines.col.both": "Beide Parteien",
|
||
"deadlines.col.proactive": "Proaktiv",
|
||
"deadlines.col.reactive": "Reaktiv",
|
||
// t-paliad-265 — per-event-card choice popover (Verfahrensablauf timeline)
|
||
"choices.caret.title": "Optionen für dieses Ereignis",
|
||
"choices.appellant.title": "Berufung durch …",
|
||
"choices.appellant.claimant": "Klägerseite",
|
||
"choices.appellant.defendant": "Beklagtenseite",
|
||
"choices.appellant.both": "beide Parteien",
|
||
"choices.appellant.none": "keine Berufung",
|
||
"choices.include_ccr.title": "Nichtigkeitswiderklage einbeziehen",
|
||
"choices.include_ccr.true": "Ja",
|
||
"choices.include_ccr.false": "Nein",
|
||
"choices.skip.title": "Für diese Akte überspringen",
|
||
"choices.skip.true": "Überspringen",
|
||
"choices.skip.false": "Einbeziehen",
|
||
"choices.skipped.chip": "übersprungen",
|
||
"choices.appellant.chip": "Berufung:",
|
||
"choices.include_ccr.chip": "mit Nichtigkeitswiderklage",
|
||
"choices.reset": "Auswahl zurücksetzen",
|
||
"choices.commit.error": "Konnte Auswahl nicht speichern",
|
||
// t-paliad-290 (m/paliad#122) — re-surface hidden optional cards.
|
||
"choices.show_hidden.label": "Ausgeblendete anzeigen",
|
||
"choices.show_hidden.count": "Ausgeblendete ({n})",
|
||
"choices.unhide.chip": "Wieder einblenden",
|
||
// t-paliad-293 \u2014 iconified state markers on the Verfahrensablauf
|
||
// event cards. Tooltip-only text; the glyph is the primary signal.
|
||
"state.optional.tooltip": "Optionales Ereignis",
|
||
"state.hidden.tooltip": "Ausgeblendet \u2014 \u00fcber Optionen-Men\u00fc wieder einblenden",
|
||
// Trigger-event mode (PR-2 \u2014 youpc-parity)
|
||
"deadlines.mode.procedure": "Verfahrensablauf",
|
||
"deadlines.mode.event": "Was kommt nach\u2026",
|
||
"deadlines.event.step1": "Trigger-Ereignis w\u00e4hlen",
|
||
"deadlines.event.step1.hint": "Welches Ereignis ist eingetreten? (z.B. Klageerhebung, Entscheidung des EPA, Zustellung einer Verf\u00fcgung)",
|
||
"deadlines.event.step2": "Datum des Ereignisses",
|
||
"deadlines.event.step3": "Folgefristen",
|
||
"deadlines.event.search.label": "Trigger-Ereignis suchen",
|
||
"deadlines.event.search.placeholder": "Tippe, um zu suchen\u2026",
|
||
"deadlines.event.empty": "Keine passenden Ereignisse",
|
||
"deadlines.event.loading": "L\u00e4dt\u2026",
|
||
"deadlines.event.error": "Konnte Ereignisse nicht laden",
|
||
"deadlines.event.selected": "Gew\u00e4hltes Ereignis:",
|
||
"deadlines.event.date": "Eintrittsdatum:",
|
||
"deadlines.event.calculate": "Folgefristen berechnen",
|
||
"deadlines.event.noresults": "Keine Folgefristen f\u00fcr dieses Ereignis hinterlegt.",
|
||
"deadlines.event.results.trigger": "Trigger:",
|
||
"deadlines.event.results.date": "Datum:",
|
||
"deadlines.event.adjusted": "Verschoben von",
|
||
"deadlines.search.label": "Frist suchen",
|
||
"deadlines.search.placeholder": "Klageerwiderung, RoP 23, § 82, Wiedereinsetzung…",
|
||
"deadlines.search.chips.label": "Schnellzugriff:",
|
||
"deadlines.search.empty": "Tippe einen Begriff oder wähle einen Schnellzugriff.",
|
||
"deadlines.search.loading": "Sucht…",
|
||
"deadlines.search.no_hits": "Keine passenden Fristen gefunden.",
|
||
"deadlines.search.aliases": "Auch bekannt als:",
|
||
"deadlines.search.pills.heading": "In folgenden Verfahren:",
|
||
"deadlines.search.pills.cross_cutting": "Verfahrensübergreifend:",
|
||
"deadlines.search.pill.duration": "Dauer:",
|
||
"deadlines.search.party.claimant": "Kläger",
|
||
"deadlines.search.party.defendant": "Beklagte",
|
||
"deadlines.search.party.both": "beide Seiten",
|
||
"deadlines.search.party.court": "Gericht",
|
||
"deadlines.search.results.count": "{n} Treffer",
|
||
"deadlines.search.results.count_one": "1 Treffer",
|
||
"deadlines.search.clear": "Suche leeren",
|
||
// Fristenrechner — card-click → calc panel → add-to-project (t-paliad-136 Phase B)
|
||
"deadlines.card.calc.expand_hint": "Frist berechnen oder zu Akte hinzufügen",
|
||
"deadlines.card.calc.close": "schließen",
|
||
"deadlines.card.calc.pill_picker.label": "Welcher Kontext?",
|
||
"deadlines.card.calc.pill_picker.locked_label": "Kontext:",
|
||
"deadlines.card.calc.pill_picker.change": "ändern",
|
||
"deadlines.card.calc.trigger.label": "Datum des auslösenden Ereignisses",
|
||
"deadlines.card.calc.flags.label": "Bedingungen:",
|
||
"deadlines.card.calc.flag.with_ccr": "Mit Nichtigkeitswiderklage",
|
||
"deadlines.card.calc.flag.with_amend": "Mit Antrag auf Patentänderung",
|
||
"deadlines.card.calc.flag.with_cci": "Mit Verletzungswiderklage",
|
||
"deadlines.card.calc.result.due": "Frist:",
|
||
"deadlines.card.calc.result.original_from": "ab",
|
||
"deadlines.card.calc.result.from_trigger": "ab",
|
||
"deadlines.card.calc.result.shifted_from": "Verschoben vom",
|
||
"deadlines.card.calc.result.shifted_because": "wegen",
|
||
"deadlines.card.calc.result.court_set": "Gericht-bestimmt — kein berechenbares Datum.",
|
||
"deadlines.card.calc.result.calculating": "Berechne…",
|
||
"deadlines.card.calc.result.error": "Berechnung fehlgeschlagen.",
|
||
"deadlines.card.calc.add_to_project": "Zu Akte hinzufügen",
|
||
"deadlines.card.calc.add_to_project.disabled": "Gerichtsbestimmt — manuell anlegen",
|
||
"deadlines.pathway.fork.heading": "Was möchten Sie tun?",
|
||
"deadlines.pathway.a.title": "Verfahrensablauf",
|
||
"deadlines.pathway.a.desc": "Verfahrenstyp wählen und alle dazugehörigen Fristen auf einer Zeitleiste sehen.",
|
||
"deadlines.pathway.b.title": "Frist eintragen aufgrund Ereignis",
|
||
"deadlines.pathway.b.desc": "Ein Ereignis ist eingetreten — ich brauche die richtige Frist für meine Akte.",
|
||
"deadlines.pathway.shortcut.label": "oder direkt zu einer Frist springen:",
|
||
"deadlines.pathway.back": "zurück zur Auswahl",
|
||
"deadlines.pathway.b.mode.tree": "Schritt-für-Schritt (Entscheidungsbaum)",
|
||
"deadlines.pathway.b.mode.filter": "Filter / Suche",
|
||
"deadlines.pathway.b.tree.coming_soon": "Der Entscheidungsbaum ist in Vorbereitung. Wechseln Sie zu „Filter / Suche\" oder kehren Sie zur Auswahl zurück.",
|
||
"deadlines.pathway.b.tree.step.back": "Schritt zurück",
|
||
"deadlines.pathway.b.tree.empty": "Keine Treffer für diesen Pfad.",
|
||
"deadlines.pathway.b.tree.reset": "Neu starten",
|
||
"deadlines.pathway.b.tree.start_question": "Was ist passiert?",
|
||
"deadlines.row.mode.question": "Wie suchen?",
|
||
"deadlines.row.edit": "ändern",
|
||
"deadlines.row.prefilled.from_akte": "aus Akte",
|
||
"deadlines.row.reset": "Pfad zurücksetzen",
|
||
"deadlines.row.reset.title": "Pfad zurücksetzen — alle Cascade-Antworten verwerfen",
|
||
"deadlines.row.search.link": "Direkt suchen",
|
||
"deadlines.row.search.link.title": "Direkt nach einer Frist suchen — überspringt den Entscheidungsbaum",
|
||
"deadlines.row.autowalk.tooltip": "Diese Schritte ergeben sich aus Ihrer Akte. Klicken Sie „ändern\", um eine Antwort manuell anzupassen.",
|
||
"deadlines.row.autowalk.dismiss": "Hinweis schließen",
|
||
"deadlines.row.search.panel.back": "Zurück zum Entscheidungsbaum",
|
||
"deadlines.row.search.panel.back.title": "Inline-Suche schließen und zum Entscheidungsbaum zurückkehren",
|
||
"deadlines.row.search.panel.placeholder": "Frist suchen — z. B. „Klageschrift\", „Posteingang Hinweisbeschluss\"…",
|
||
"deadlines.row.search.panel.clear": "Eingabe leeren",
|
||
"deadlines.inbox.label": "Wo kam es an?",
|
||
"deadlines.inbox.cms.title": "UPC — über CMS",
|
||
"deadlines.inbox.bea.title": "Nationale Verfahren — über beA",
|
||
"deadlines.inbox.posteingang.title": "Nationale Verfahren — Postzustellung",
|
||
"deadlines.inbox.posteingang": "Posteingang",
|
||
"deadlines.inbox.all": "Alle",
|
||
"deadlines.filter.forum.label": "Gericht / System:",
|
||
"deadlines.filter.forum.upc_cfi": "UPC CFI",
|
||
"deadlines.filter.forum.upc_coa": "UPC CoA",
|
||
"deadlines.filter.forum.de_lg": "DE LG",
|
||
"deadlines.filter.forum.de_olg": "DE OLG",
|
||
"deadlines.filter.forum.de_bgh": "DE BGH",
|
||
"deadlines.filter.forum.de_bpatg": "DE BPatG",
|
||
"deadlines.filter.forum.epa_grant": "EPA Erteilung",
|
||
"deadlines.filter.forum.epa_opp": "EPA Einspruchsabt.",
|
||
"deadlines.filter.forum.epa_appeal": "EPA Beschwerdek.",
|
||
"deadlines.filter.forum.dpma": "DPMA",
|
||
"deadlines.perspective.label": "Ich vertrete:",
|
||
"deadlines.perspective.claimant": "Klägerseite (Proactive)",
|
||
"deadlines.perspective.defendant": "Beklagtenseite (Reactive)",
|
||
"deadlines.perspective.claimant.short": "Kläger",
|
||
"deadlines.perspective.defendant.short": "Beklagter",
|
||
"deadlines.perspective.both.short": "Beide",
|
||
"deadlines.perspective.claimant.title": "Klägerseite — versteckt typische Beklagten-Schriftsätze",
|
||
"deadlines.perspective.defendant.title": "Beklagtenseite — versteckt typische Kläger-Schriftsätze",
|
||
"deadlines.perspective.appeal_filed_by.label": "Berufung eingelegt durch:",
|
||
"deadlines.perspective.predefined_hint": "vorgegeben durch Akte",
|
||
"deadlines.side.label": "Seite:",
|
||
"deadlines.side.claimant": "Klägerseite",
|
||
"deadlines.side.defendant": "Beklagtenseite",
|
||
"deadlines.side.undefined": "Nicht festgelegt",
|
||
"deadlines.side.from_project": "Aus Akte:",
|
||
"deadlines.side.override": "Andere Seite wählen",
|
||
"deadlines.side.hint": "Wählen Sie eine Seite, um die Spalten zu fokussieren.",
|
||
"deadlines.event.composite.label": "Zusammengesetzt:",
|
||
"deadlines.event.unit.days.one": "Tag",
|
||
"deadlines.event.unit.days.many": "Tage",
|
||
"deadlines.event.unit.weeks.one": "Woche",
|
||
"deadlines.event.unit.weeks.many": "Wochen",
|
||
"deadlines.event.unit.months.one": "Monat",
|
||
"deadlines.event.unit.months.many": "Monate",
|
||
"deadlines.event.unit.working_days.one": "Arbeitstag",
|
||
"deadlines.event.unit.working_days.many": "Arbeitstage",
|
||
"deadlines.event.timing.before": "vor",
|
||
"deadlines.event.timing.after": "nach",
|
||
"deadlines.adjusted": "Verschoben",
|
||
"deadlines.adjusted.reason": "Wochenende/Feiertag",
|
||
"deadlines.adjusted.weekend": "Wochenende",
|
||
"deadlines.adjusted.weekend.saturday": "Samstag",
|
||
"deadlines.adjusted.weekend.sunday": "Sonntag",
|
||
"deadlines.adjusted.holiday": "Feiertag ({name})",
|
||
"deadlines.adjusted.vacation": "{name} ({span})",
|
||
|
||
// Downloads
|
||
"downloads.title": "Downloads \u2014 Paliad",
|
||
"downloads.heading": "Downloads",
|
||
"downloads.subtitle": `Dateien und Vorlagen f\u00fcr das ${FIRM} Patent-Team.`,
|
||
"downloads.style.title": `${FIRM} Patents Style`,
|
||
"downloads.style.desc": `Word-Vorlage im ${FIRM} Patents Style. Formatierung, Schriftarten und Makros f\u00fcr standardisierte Schrifts\u00e4tze.`,
|
||
"downloads.btn": "Herunterladen",
|
||
|
||
// Links
|
||
"links.title": "Links \u2014 Paliad",
|
||
"links.heading": "Links",
|
||
"links.subtitle": "N\u00fctzliche externe Links f\u00fcr die t\u00e4gliche Patentpraxis.",
|
||
"links.filter.all": "Alle",
|
||
"links.search.placeholder": "Suchen nach Titel, Beschreibung...",
|
||
"links.empty": "Keine Links in dieser Kategorie.",
|
||
"links.suggest.btn": "Link vorschlagen",
|
||
"links.suggest.title": "Link vorschlagen",
|
||
"links.suggest.name": "Titel",
|
||
"links.suggest.category": "Kategorie",
|
||
"links.suggest.desc": "Beschreibung",
|
||
"links.suggest.submit": "Absenden",
|
||
"links.suggest.cancel": "Abbrechen",
|
||
"links.suggest.success": "Danke! Ihr Vorschlag wird gepr\u00fcft.",
|
||
"links.suggest.error": "Fehler beim Speichern. Bitte versuchen Sie es erneut.",
|
||
"links.pending": "Vorschl\u00e4ge zur Pr\u00fcfung",
|
||
"links.feedback.title": "Feedback",
|
||
"links.feedback.type": "Art",
|
||
"links.feedback.broken": "Link defekt",
|
||
"links.feedback.outdated": "Veraltet",
|
||
"links.feedback.update": "Aktualisierung n\u00f6tig",
|
||
"links.feedback.other": "Sonstiges",
|
||
"links.feedback.message": "Nachricht",
|
||
"links.feedback.placeholder": "Was stimmt nicht? (z.B. Link defekt, veraltet...)",
|
||
"links.feedback.submit": "Absenden",
|
||
"links.feedback.success": "Danke f\u00fcr Ihr Feedback!",
|
||
|
||
// Glossar
|
||
"glossar.title": "Patentglossar \u2014 Paliad",
|
||
"glossar.heading": "Patentglossar",
|
||
"glossar.subtitle": "Zweisprachiges Glossar der wichtigsten Begriffe im Patentrecht.",
|
||
"glossar.search.placeholder": "Suchen...",
|
||
"glossar.filter.all": "Alle",
|
||
"glossar.filter.litigation": "Streitsachen",
|
||
"glossar.filter.prosecution": "Erteilungsverfahren",
|
||
"glossar.filter.general": "Allgemein",
|
||
"glossar.col.de": "Deutsch",
|
||
"glossar.col.en": "English",
|
||
"glossar.col.definition": "Definition",
|
||
"glossar.empty": "Keine Treffer.",
|
||
"glossar.suggest": "Begriff vorschlagen",
|
||
"glossar.suggest.title": "Neuen Begriff vorschlagen",
|
||
"glossar.suggest.de": "Deutscher Begriff",
|
||
"glossar.suggest.en": "Englischer Begriff",
|
||
"glossar.suggest.definition": "Definition (optional)",
|
||
"glossar.suggest.category": "Kategorie",
|
||
"glossar.suggest.cancel": "Abbrechen",
|
||
"glossar.suggest.submit": "Absenden",
|
||
"glossar.suggest.success": "Vorschlag eingereicht. Vielen Dank!",
|
||
"glossar.suggest.error.required": "Bitte DE und EN Begriff eingeben.",
|
||
"glossar.suggest.error.generic": "Fehler beim Senden. Bitte versuchen Sie es erneut.",
|
||
"glossar.feedback.title": "Korrektur vorschlagen",
|
||
"glossar.feedback.tooltip": "Korrektur vorschlagen",
|
||
|
||
// Geb\u00fchrentabellen
|
||
"gebuehren.title": "Geb\u00fchrentabellen \u2014 Paliad",
|
||
"gebuehren.heading": "Geb\u00fchrentabellen",
|
||
"gebuehren.subtitle": "Interaktive Geb\u00fchrentabellen f\u00fcr GKG, RVG, UPC, EPA und PatKostG.",
|
||
"gebuehren.streitwert": "Streitwert (EUR)",
|
||
"gebuehren.streitwert.placeholder": "z.B. 1.000.000",
|
||
"gebuehren.lookup": "Nachschlagen",
|
||
"gebuehren.current": "Aktuell",
|
||
"gebuehren.col.streitwert": "Streitwert (EUR)",
|
||
"gebuehren.col.fee": "1,0 Geb\u00fchr (EUR)",
|
||
"gebuehren.col.maxvalue": "bis Streitwert (EUR)",
|
||
"gebuehren.col.courtfee": "Gerichtsgeb\u00fchr (EUR)",
|
||
"gebuehren.upc.valuebased": "Streitwertabh\u00e4ngige Geb\u00fchren",
|
||
"gebuehren.upc.recoverable": "Erstattungsf\u00e4hige Kosten (Obergrenze)",
|
||
"gebuehren.upc.ceiling": "Obergrenze (EUR)",
|
||
"gebuehren.epa.proceeding": "Verfahren",
|
||
"gebuehren.epa.fee": "Geb\u00fchr (EUR)",
|
||
"gebuehren.epa.smefee": "KMU-Geb\u00fchr (EUR)",
|
||
"gebuehren.multipliers.title": "Geb\u00fchren-Multiplikatoren",
|
||
"gebuehren.multipliers.desc": "Faktoren f\u00fcr die Berechnung von Gerichts- und Anwaltskosten je Instanz.",
|
||
"gebuehren.multipliers.instance": "Instanz",
|
||
"gebuehren.multipliers.courtfee": "Gericht",
|
||
"gebuehren.multipliers.factor": "Faktor",
|
||
"gebuehren.multipliers.basis": "Grundlage",
|
||
"gebuehren.patkostg.court": "Gerichtskosten (BPatG / BGH)",
|
||
"gebuehren.patkostg.dpma": "DPMA-Geb\u00fchren",
|
||
"gebuehren.patkostg.annual": "Jahresgeb\u00fchren (Patent)",
|
||
"gebuehren.patkostg.year": "Patentjahr",
|
||
"gebuehren.patkostg.note": "Hinweis",
|
||
"gebuehren.patkostg.item": "Geb\u00fchrentatbestand",
|
||
"gebuehren.feedback.btn": "Feedback",
|
||
"gebuehren.feedback.title": "Feedback zur Geb\u00fchrentabelle",
|
||
"gebuehren.feedback.type": "Art",
|
||
"gebuehren.feedback.error": "Fehler gefunden",
|
||
"gebuehren.feedback.missing": "Fehlende Daten",
|
||
"gebuehren.feedback.suggestion": "Verbesserungsvorschlag",
|
||
"gebuehren.feedback.other": "Sonstiges",
|
||
"gebuehren.feedback.schedule": "Betrifft",
|
||
"gebuehren.feedback.general": "Allgemein",
|
||
"gebuehren.feedback.message": "Nachricht",
|
||
"gebuehren.feedback.submit": "Absenden",
|
||
"gebuehren.feedback.cancel": "Abbrechen",
|
||
"gebuehren.feedback.success": "Danke f\u00fcr Ihr Feedback!",
|
||
"gebuehren.feedback.error.required": "Bitte geben Sie eine Nachricht ein.",
|
||
"gebuehren.feedback.error.generic": "Fehler beim Senden. Bitte versuchen Sie es erneut.",
|
||
|
||
// Index — Geb\u00fchrentabellen card
|
||
"index.gebuehren.title": "Geb\u00fchrentabellen",
|
||
"index.gebuehren.desc": "Interaktive Geb\u00fchrentabellen f\u00fcr GKG, RVG, UPC, EPA und PatKostG. Streitwert eingeben, Geb\u00fchr ablesen.",
|
||
|
||
// Checklisten
|
||
"index.checklisten.title": "Checklisten",
|
||
"index.checklisten.desc": "Interaktive Checklisten f\u00fcr UPC-, DE- und EPA-Verfahren. Pro Mandat beliebig viele Instanzen.",
|
||
"checklisten.title": "Checklisten \u2014 Paliad",
|
||
"checklisten.heading": "Checklisten",
|
||
"checklisten.subtitle": "Interaktive Checklisten f\u00fcr typische Verfahrensschritte vor UPC, BPatG und EPA. Abhaken, ausdrucken, kein Punkt vergessen.",
|
||
"checklisten.tab.templates": "Vorlagen",
|
||
"checklisten.tab.mine": "Meine Vorlagen",
|
||
"checklisten.tab.instances": "Vorhandene Instanzen",
|
||
"checklisten.mine.empty": "Sie haben noch keine eigene Vorlage angelegt.",
|
||
"checklisten.tab.gallery": "Geteilte Vorlagen",
|
||
"checklisten.gallery.empty": "Noch keine geteilten Vorlagen sichtbar.",
|
||
"checklisten.filter.other": "Sonstige",
|
||
"checklisten.instance.outdated.badge": "Vorlage aktualisiert",
|
||
"checklisten.instance.outdated.note": "Die zugrundeliegende Vorlage wurde seit dem Anlegen dieser Instanz aktualisiert (v{from} → v{to}).",
|
||
"checklisten.instance.outdated.diff": "Änderungen anzeigen",
|
||
"checklisten.instance.diff.title": "Geänderte Punkte",
|
||
"checklisten.instance.diff.close": "Schließen",
|
||
"checklisten.instance.diff.added": "Neu",
|
||
"checklisten.instance.diff.removed": "Entfernt",
|
||
"checklisten.instance.diff.changed": "Geändert",
|
||
"checklisten.instance.diff.empty": "Keine inhaltlichen Unterschiede in den Punkten.",
|
||
"checklisten.instance.diff.error": "Vergleich fehlgeschlagen.",
|
||
"checklisten.mine.new": "Neue Vorlage",
|
||
"checklisten.mine.loading": "Lädt…",
|
||
"checklisten.mine.visibility.private": "Privat",
|
||
"checklisten.mine.visibility.firm": "Firmenweit",
|
||
"checklisten.mine.visibility.shared": "Geteilt",
|
||
"checklisten.mine.visibility.global": "Im Katalog",
|
||
"checklisten.mine.edit": "Bearbeiten",
|
||
"checklisten.mine.delete": "Löschen",
|
||
"checklisten.mine.delete.confirm": "Vorlage „{title}“ wirklich löschen? Bestehende Instanzen bleiben erhalten.",
|
||
"checklisten.mine.delete.error": "Löschen fehlgeschlagen.",
|
||
"checklisten.mine.origin.authored": "Eigene Vorlage",
|
||
"checklisten.author.title": "Vorlage erstellen — Paliad",
|
||
"checklisten.author.title.edit": "Vorlage bearbeiten — Paliad",
|
||
"checklisten.author.heading.new": "Neue Checklisten-Vorlage",
|
||
"checklisten.author.heading.edit": "Vorlage bearbeiten",
|
||
"checklisten.author.subtitle": "Erstellen Sie eine eigene Checkliste mit Sektionen und Punkten. Sie können sie privat halten oder firmenweit verfügbar machen.",
|
||
"checklisten.author.field.title": "Titel",
|
||
"checklisten.author.field.title.hint": "z.B. „UPC SoC — interne Checkliste“.",
|
||
"checklisten.author.field.description": "Kurzbeschreibung",
|
||
"checklisten.author.field.regime": "Regime",
|
||
"checklisten.author.field.court": "Gericht / Behörde",
|
||
"checklisten.author.field.reference": "Rechtsgrundlage",
|
||
"checklisten.author.field.deadline": "Deadline (optional)",
|
||
"checklisten.author.field.lang": "Sprache",
|
||
"checklisten.author.field.visibility": "Sichtbarkeit",
|
||
"checklisten.author.visibility.private.hint": "Nur für Sie sichtbar.",
|
||
"checklisten.author.visibility.firm.hint": "Für alle angemeldeten Kolleginnen und Kollegen sichtbar.",
|
||
"checklisten.author.groups.heading": "Sektionen und Punkte",
|
||
"checklisten.author.groups.add": "+ Sektion hinzufügen",
|
||
"checklisten.author.group.title": "Sektionsname",
|
||
"checklisten.author.group.remove": "Sektion löschen",
|
||
"checklisten.author.item.add": "+ Punkt hinzufügen",
|
||
"checklisten.author.item.label": "Punkt",
|
||
"checklisten.author.item.note": "Notiz (optional)",
|
||
"checklisten.author.item.rule": "Vorschrift (optional)",
|
||
"checklisten.author.item.remove": "Punkt löschen",
|
||
"checklisten.author.save": "Speichern",
|
||
"checklisten.author.cancel": "Abbrechen",
|
||
"checklisten.author.saving": "Speichert…",
|
||
"checklisten.author.error.title": "Bitte geben Sie einen Titel ein.",
|
||
"checklisten.author.error.no_groups": "Bitte mindestens eine Sektion mit einem Punkt anlegen.",
|
||
"checklisten.author.error.generic": "Speichern fehlgeschlagen. Bitte erneut versuchen.",
|
||
"checklisten.author.error.notfound": "Diese Vorlage existiert nicht oder Sie haben keine Berechtigung sie zu bearbeiten.",
|
||
"checklisten.detail.edit": "Bearbeiten",
|
||
"checklisten.detail.delete": "Löschen",
|
||
"checklisten.detail.share": "Teilen",
|
||
"checklisten.detail.promote": "Als Firmen-Vorlage hinterlegen",
|
||
"checklisten.detail.demote": "Aus Katalog entfernen",
|
||
"checklisten.detail.promote.confirm": "Diese Vorlage in den Firmen-Katalog übernehmen? Alle Kolleg:innen sehen sie dann unter Vorlagen.",
|
||
"checklisten.detail.demote.confirm": "Vorlage aus dem Firmen-Katalog entfernen? Sie bleibt firmenweit sichtbar.",
|
||
"checklisten.detail.promote.error": "Übernahme fehlgeschlagen.",
|
||
"checklisten.detail.delete.confirm": "Vorlage „{title}\" wirklich löschen? Bestehende Instanzen bleiben erhalten.",
|
||
"checklisten.detail.delete.error": "Löschen fehlgeschlagen.",
|
||
"checklisten.detail.authored.by": "Erstellt von {author}",
|
||
"checklisten.detail.visibility": "Sichtbarkeit: {state}",
|
||
"checklisten.detail.visibility.set.firm": "Für Firma freigeben",
|
||
"checklisten.detail.visibility.set.private": "Privat schalten",
|
||
"checklisten.detail.visibility.error": "Sichtbarkeit konnte nicht geändert werden.",
|
||
"checklisten.share.title": "Vorlage teilen",
|
||
"checklisten.share.kind": "Empfängertyp",
|
||
"checklisten.share.kind.user": "Kollege",
|
||
"checklisten.share.kind.office": "Office",
|
||
"checklisten.share.kind.partner_unit": "Dezernat",
|
||
"checklisten.share.kind.project": "Projekt",
|
||
"checklisten.share.pick": "— auswählen —",
|
||
"checklisten.share.submit": "Freigeben",
|
||
"checklisten.share.cancel": "Abbrechen",
|
||
"checklisten.share.error.pick": "Bitte einen Empfänger auswählen.",
|
||
"checklisten.share.error.generic": "Freigeben fehlgeschlagen.",
|
||
"checklisten.share.success": "Freigegeben.",
|
||
"checklisten.share.grants.heading": "Bestehende Freigaben",
|
||
"checklisten.share.grants.empty": "Keine Freigaben.",
|
||
"checklisten.share.grants.revoke": "Entfernen",
|
||
"checklisten.share.grants.revoke.confirm": "Freigabe entfernen?",
|
||
"checklisten.share.grants.revoke.error": "Entfernen fehlgeschlagen.",
|
||
"checklisten.share.grants.recipient.user": "Kollege",
|
||
"checklisten.share.grants.recipient.office": "Office",
|
||
"checklisten.share.grants.recipient.partner_unit": "Dezernat",
|
||
"checklisten.share.grants.recipient.project": "Projekt",
|
||
"checklisten.instances.all.loading": "L\u00e4dt\u2026",
|
||
"checklisten.instances.all.empty": "Noch keine Checklisten-Instanzen erfasst. Legen Sie eine \u00fcber den Vorlagen-Tab an.",
|
||
"checklisten.instances.all.col.template": "Vorlage",
|
||
"checklisten.instances.all.col.name": "Name",
|
||
"checklisten.instances.all.col.project": "Projekt",
|
||
"checklisten.instances.all.col.progress": "Fortschritt",
|
||
"checklisten.instances.all.col.created": "Angelegt",
|
||
"checklisten.instances.all.personal": "Pers\u00f6nlich",
|
||
"checklisten.filter.all": "Alle",
|
||
"checklisten.filter.de": "DE",
|
||
"checklisten.empty": "Keine Checklisten in dieser Kategorie.",
|
||
"checklisten.back": "Zur\u00fcck zur \u00dcbersicht",
|
||
"checklisten.print": "Drucken",
|
||
"checklisten.reset": "Zur\u00fccksetzen",
|
||
"checklisten.reset.confirm": "Alle H\u00e4kchen dieser Instanz wirklich zur\u00fccksetzen?",
|
||
"checklisten.reset.error": "Zur\u00fccksetzen fehlgeschlagen. Bitte erneut versuchen.",
|
||
"checklisten.notfound": "Checkliste nicht gefunden.",
|
||
"checklisten.newInstance": "Neue Instanz",
|
||
"checklisten.newInstance.title": "Neue Checklisten-Instanz",
|
||
"checklisten.newInstance.name": "Name",
|
||
"checklisten.newInstance.name.hint": "z.B. \u201EM\u00fcller v. Schmidt \u2014 SoC\u201C.",
|
||
"checklisten.newInstance.akte": "Akte (optional)",
|
||
"checklisten.newInstance.akte.none": "\u2014 keine Akte \u2014",
|
||
"checklisten.newInstance.akte.hint": "Wenn verkn\u00fcpft, sehen B\u00fcrokollegen die Instanz.",
|
||
"checklisten.newInstance.cancel": "Abbrechen",
|
||
"checklisten.newInstance.submit": "Anlegen",
|
||
"checklisten.newInstance.error.name": "Bitte geben Sie einen Namen ein.",
|
||
"checklisten.newInstance.error.generic": "Fehler beim Anlegen. Bitte erneut versuchen.",
|
||
"checklisten.instances.heading": "Instanzen",
|
||
"checklisten.instances.sub": "Jede Instanz hat ihren eigenen Fortschritt und kann optional an eine Akte geh\u00e4ngt werden.",
|
||
"checklisten.instances.loading": "L\u00e4dt\u2026",
|
||
"checklisten.instances.empty": "Noch keine Instanzen. Klicken Sie auf \u201eNeue Instanz\u201c, um zu beginnen.",
|
||
"checklisten.instances.col.name": "Name",
|
||
"checklisten.instances.col.progress": "Fortschritt",
|
||
"checklisten.instances.col.akte": "Akte",
|
||
"checklisten.instances.col.created": "Angelegt",
|
||
"checklisten.instances.delete.confirm": "Instanz \u201E{name}\u201C wirklich l\u00f6schen?",
|
||
"checklisten.instances.delete.error": "L\u00f6schen fehlgeschlagen.",
|
||
"checklisten.instance.title": "Checklisten-Instanz \u2014 Paliad",
|
||
"checklisten.instance.back": "Zur\u00fcck zur Vorlage",
|
||
"checklisten.instance.loading": "L\u00e4dt\u2026",
|
||
"checklisten.instance.notfound": "Instanz nicht gefunden oder keine Berechtigung.",
|
||
"checklisten.instance.rename": "Umbenennen",
|
||
"checklisten.instance.rename.save": "Speichern",
|
||
"checklisten.instance.rename.error": "Umbenennen fehlgeschlagen.",
|
||
"checklisten.instance.akte.open": "\u00d6ffnen",
|
||
"checklisten.disclaimer": "Hinweis: Diese Checklisten dienen als Ged\u00e4chtnisst\u00fctze und ersetzen keine Pr\u00fcfung im Einzelfall. Ma\u00dfgeblich sind die jeweils geltenden Verfahrensregeln.",
|
||
"checklisten.feedback.btn": "Feedback",
|
||
"checklisten.feedback.title": "Feedback zur Checkliste",
|
||
"checklisten.feedback.type": "Art",
|
||
"checklisten.feedback.error": "Fehler gefunden",
|
||
"checklisten.feedback.missing": "Fehlender Punkt",
|
||
"checklisten.feedback.suggestion": "Verbesserungsvorschlag",
|
||
"checklisten.feedback.other": "Sonstiges",
|
||
"checklisten.feedback.message": "Nachricht",
|
||
"checklisten.feedback.submit": "Absenden",
|
||
"checklisten.feedback.cancel": "Abbrechen",
|
||
"checklisten.feedback.success": "Danke f\u00fcr Ihr Feedback!",
|
||
"checklisten.feedback.error.required": "Bitte geben Sie eine Nachricht ein.",
|
||
"checklisten.feedback.error.generic": "Fehler beim Senden. Bitte versuchen Sie es erneut.",
|
||
|
||
// Gerichte
|
||
"gerichte.title": "Gerichtsverzeichnis \u2014 Paliad",
|
||
"gerichte.heading": "Gerichtsverzeichnis",
|
||
"gerichte.subtitle": "Kontaktdaten, Adressen und Einreichungshinweise f\u00fcr Gerichte, Kammern und \u00c4mter im Patentbereich.",
|
||
"gerichte.search.placeholder": "Suchen nach Name, Stadt, Typ...",
|
||
"gerichte.filter.type": "Typ:",
|
||
"gerichte.filter.country": "Land:",
|
||
"gerichte.filter.all": "Alle",
|
||
"gerichte.filter.de": "Deutschland",
|
||
"gerichte.filter.epa": "EPA",
|
||
"gerichte.filter.national": "National",
|
||
"gerichte.empty": "Keine Treffer.",
|
||
"gerichte.field.address": "Adresse",
|
||
"gerichte.field.contact": "Kontakt",
|
||
"gerichte.field.fax": "Fax",
|
||
"gerichte.field.filing": "Einreichung",
|
||
"gerichte.field.notes": "Praktische Hinweise",
|
||
"gerichte.field.hlContact": `${FIRM}-Ansprechpartner`,
|
||
"gerichte.feedback.btn": "Korrektur vorschlagen",
|
||
"gerichte.feedback.title": "Korrektur vorschlagen",
|
||
"gerichte.feedback.court": "Gericht",
|
||
"gerichte.feedback.type": "Art der Anmerkung",
|
||
"gerichte.feedback.type.address": "Adresse / Kontaktdaten",
|
||
"gerichte.feedback.type.filing": "Einreichungshinweise",
|
||
"gerichte.feedback.type.notes": "Praktische Hinweise",
|
||
"gerichte.feedback.type.missing": "Fehlendes Gericht",
|
||
"gerichte.feedback.type.other": "Sonstiges",
|
||
"gerichte.feedback.message": "Nachricht",
|
||
"gerichte.feedback.cancel": "Abbrechen",
|
||
"gerichte.feedback.submit": "Absenden",
|
||
"gerichte.feedback.success": "Vielen Dank \u2014 Ihre R\u00fcckmeldung wurde gespeichert.",
|
||
"gerichte.feedback.error.required": "Bitte geben Sie eine Nachricht ein.",
|
||
"gerichte.feedback.error.generic": "Fehler beim Senden. Bitte versuchen Sie es erneut.",
|
||
|
||
// Index \u2014 Gerichte card
|
||
"index.gerichte.title": "Gerichtsverzeichnis",
|
||
"index.gerichte.desc": "Gerichte, UPC-Kammern und Patent\u00e4mter auf einen Blick \u2014 mit Adressen, Einreichungshinweisen und Sprachen.",
|
||
|
||
// Akten (matters) \u2014 list
|
||
"projects.filter.office": "B\u00fcro",
|
||
"projects.filter.office.all": "Alle B\u00fcros",
|
||
"projects.filter.status.completed": "Abgeschlossen",
|
||
"projects.status.active": "Aktiv",
|
||
"projects.status.completed": "Abgeschlossen",
|
||
"projects.status.archived": "Archiviert",
|
||
"projects.col.ref": "Aktenzeichen",
|
||
"projects.col.office": "B\u00fcro",
|
||
"projects.onboarding.required": "Bitte schlie\u00dfen Sie das Onboarding ab, bevor Sie Akten anlegen.",
|
||
|
||
// Akten \u2014 create form
|
||
"projects.field.ref": "Aktenzeichen",
|
||
"projects.field.ref.placeholder": `z.\u202fB. ${FIRM}-2026-0042`,
|
||
"projects.field.office": "Federf\u00fchrendes B\u00fcro",
|
||
"projects.field.courtRef": "Gerichtsaktenzeichen (optional)",
|
||
"projects.field.akteType": "Verfahrensart (optional)",
|
||
"projects.field.firmWide": "Firmenweit sichtbar",
|
||
"projects.field.firmWide.hint": "Wenn aktiviert, sehen alle Lawyer diese Akte. Nur f\u00fcr Partner/Admin.",
|
||
"projects.field.collaborators": "Weitere Bearbeiter (optional)",
|
||
"projects.field.collaborators.placeholder": "Name oder E-Mail tippen\u2026",
|
||
"projects.field.collaborators.hint": "Personen, die auch Zugriff erhalten sollen (auch b\u00fcro\u00fcbergreifend).",
|
||
"projects.error.required": "Titel und Aktenzeichen sind Pflichtfelder.",
|
||
"projects.error.generic": "Fehler beim Anlegen. Bitte erneut versuchen.",
|
||
"projects.error.forbidden": "Nicht erlaubt. Pr\u00fcfen Sie Rolle und B\u00fcro.",
|
||
|
||
// Akten \u2014 detail
|
||
"projects.detail.firmwide.on": "Firmenweit sichtbar",
|
||
"projects.detail.firmwide.off": "B\u00fcro-intern",
|
||
"projects.detail.checklisten.hint": "Instanzen werden auf der Vorlagen-Seite unter \"Checklisten\" angelegt.",
|
||
"projects.detail.verlauf.loadingMore": "L\u00e4dt \u2026",
|
||
"projects.detail.parteien.remove": "Entfernen",
|
||
"projects.detail.parteien.remove.confirm": "Diese Partei wirklich entfernen?",
|
||
|
||
// Phase E — Fristen (persistent deadlines)
|
||
"deadlines.list.title": "Fristen \u2014 Paliad",
|
||
"deadlines.list.heading": "Fristen",
|
||
"deadlines.list.subtitle": "Persistente Fristen f\u00fcr Ihre Akten. \u00dcberf\u00e4llig, heute, diese Woche, n\u00e4chste Woche \u2014 auf einen Blick.",
|
||
"deadlines.list.new": "Neue Frist",
|
||
"deadlines.summary.overdue": "\u00dcberf\u00e4llig",
|
||
"deadlines.summary.today": "Heute",
|
||
"deadlines.summary.thisweek": "Diese Woche",
|
||
"deadlines.summary.nextweek": "N\u00e4chste Woche",
|
||
"deadlines.summary.completed": "Erledigt",
|
||
"deadlines.summary.later": "Später",
|
||
"deadlines.filter.status": "Status",
|
||
"deadlines.filter.akte": "Projekt",
|
||
"deadlines.filter.all": "Alle (offen & erledigt)",
|
||
"deadlines.filter.pending": "Alle offenen",
|
||
"deadlines.filter.overdue": "\u00dcberf\u00e4llig",
|
||
"deadlines.filter.today": "Heute",
|
||
"deadlines.filter.thisweek": "Diese Woche",
|
||
"deadlines.filter.nextweek": "N\u00e4chste Woche",
|
||
"deadlines.filter.completed": "Erledigt",
|
||
"deadlines.filter.later": "Später",
|
||
"deadlines.filter.akte.all": "Alle Projekte",
|
||
"deadlines.col.due": "F\u00e4llig",
|
||
"deadlines.col.title": "Titel",
|
||
"deadlines.col.akte": "Projekt",
|
||
"deadlines.col.rule": "Regel",
|
||
"deadlines.col.status": "Status",
|
||
"deadlines.empty.title": "Keine Fristen vorhanden",
|
||
"deadlines.empty.hint": "Sobald Fristen angelegt oder aus dem Fristenrechner \u00fcbernommen werden, erscheinen sie hier.",
|
||
"deadlines.empty.filtered": "Keine Fristen mit diesen Filtern.",
|
||
"deadlines.unavailable": "Fristenverwaltung zurzeit nicht verf\u00fcgbar \u2014 bitte Administrator kontaktieren.",
|
||
"deadlines.status.pending": "Offen",
|
||
"deadlines.status.completed": "Erledigt",
|
||
"deadlines.status.cancelled": "Abgebrochen",
|
||
"deadlines.status.waived": "Verzichtet",
|
||
"deadlines.urgency.overdue": "\u00dcberf\u00e4llig",
|
||
"deadlines.urgency.today": "Heute",
|
||
"deadlines.urgency.soon": "In K\u00fcrze",
|
||
"deadlines.urgency.later": "Sp\u00e4ter",
|
||
"deadlines.complete.action": "Erledigen",
|
||
"deadlines.complete.confirm": "Frist \u201e{title}\u201c wirklich als erledigt markieren?",
|
||
|
||
// t-paliad-139 \u2014 subtree aggregation toggle and attribution chip
|
||
"aggregation.toggle.subtree": "Inkl. Unterprojekte",
|
||
"aggregation.toggle.direct_only": "Nur direkt",
|
||
"aggregation.attribution.on": "auf",
|
||
|
||
// t-paliad-139 Phase 2 \u2014 Team-tab subsections + Partner Units management
|
||
"projects.team.section.from_descendants": "Aus Unterprojekten",
|
||
"projects.team.section.from_descendants.hint": "Personen, die direkt auf einem Unterprojekt eingetragen sind und nicht auf diesem oder einem \u00dcbergeordneten.",
|
||
"projects.team.section.derived": "Abgeleitet (Partner Unit)",
|
||
"projects.team.section.derived.hint": "Mitglieder, die \u00fcber eine zugeordnete Partner Unit auf diesem Projekt aktiv sind.",
|
||
"projects.team.section.units": "Partner Units",
|
||
"projects.team.section.units.hint": "Partner Units, die auf diesem Projekt eingebunden sind. Mitglieder mit passenden Unit-Rollen werden automatisch abgeleitet.",
|
||
"projects.team.derived.from": "\u00fcber",
|
||
"projects.team.derived.visibility": "Sicht",
|
||
"projects.team.derived.authority": "Sicht & 4-Augen",
|
||
"projects.team.derived.authority.hint": "Stimmrecht: Abgeleitete Mitglieder z\u00e4hlen als Approver.",
|
||
"projects.team.units.attach": "Partner Unit zuordnen",
|
||
"projects.team.units.detach": "Entfernen",
|
||
"projects.team.units.choose": "Bitte Unit w\u00e4hlen\u2026",
|
||
"projects.team.units.select": "Unit",
|
||
"projects.team.units.derive_roles": "Welche Unit-Rollen ableiten?",
|
||
"projects.team.units.grants_authority": "Stimmrecht abgeben (4-Augen)",
|
||
"projects.team.units.col.name": "Unit",
|
||
"projects.team.units.col.derive_roles": "Abgeleitete Rollen",
|
||
"projects.team.units.col.authority": "Authority",
|
||
"projects.team.units.members": "Mitglieder",
|
||
"projects.team.units.empty": "Keine Partner Units zugeordnet.",
|
||
"projects.team.units.confirm_detach": "Partner Unit entfernen?",
|
||
"unit_role.lead": "Lead",
|
||
"unit_role.attorney": "Attorney",
|
||
"unit_role.senior_pa": "Senior PA",
|
||
"unit_role.pa": "PA",
|
||
"unit_role.paralegal": "Paralegal",
|
||
|
||
"deadlines.neu.title": "Neue Frist \u2014 Paliad",
|
||
"deadlines.neu.heading": "Neue Frist anlegen",
|
||
"deadlines.neu.subtitle": "Eine persistente Frist an einer Akte. Sichtbar f\u00fcr alle Personen, die die Akte sehen k\u00f6nnen.",
|
||
"deadlines.neu.back": "\u2190 Zur\u00fcck zur \u00dcbersicht",
|
||
"deadlines.neu.cancel": "Abbrechen",
|
||
"deadlines.neu.submit": "Frist anlegen",
|
||
"deadlines.field.akte": "Akte",
|
||
"deadlines.field.akte.choose": "Bitte w\u00e4hlen\u2026",
|
||
"deadlines.field.akte.empty": "Sie haben noch keine Akte. Bitte zuerst eine Akte anlegen.",
|
||
"deadlines.field.akte.empty.link": "Akte anlegen",
|
||
"deadlines.field.title": "Titel",
|
||
"deadlines.field.title.placeholder": "z.\u202fB. Klageerwiderung einreichen",
|
||
"deadlines.field.due": "F\u00e4lligkeitsdatum",
|
||
"deadlines.field.rule": "Regel (optional)",
|
||
"deadlines.field.rule.auto_badge": "Auto",
|
||
"deadlines.field.rule.auto_no_match": "Keine Regel zur gewählten Verfahrenshandlung",
|
||
"deadlines.field.rule.auto_pick_type": "Wählen Sie zuerst eine Verfahrenshandlung",
|
||
"deadlines.field.rule.custom_badge": "Eigen",
|
||
"deadlines.field.rule.custom_placeholder": "z.B. interner Review-Termin, Mandantengespräch",
|
||
"deadlines.field.rule.mode.toggle_to_auto": "Zurück zu Auto",
|
||
"deadlines.field.rule.mode.toggle_to_custom": "Eigene Regel eingeben",
|
||
"deadlines.field.title.default_btn": "Standardtitel",
|
||
"deadlines.field.title.default_fallback": "Neue Frist",
|
||
"deadlines.field.notes": "Notizen (optional)",
|
||
"deadlines.field.notes.placeholder": "Hinweise, Verweise, n\u00e4chste Schritte\u2026",
|
||
"deadlines.error.required": "Akte, Titel und F\u00e4lligkeitsdatum sind Pflichtfelder.",
|
||
"deadlines.error.generic": "Fehler beim Anlegen. Bitte erneut versuchen.",
|
||
|
||
"deadlines.detail.title": "Frist \u2014 Paliad",
|
||
"deadlines.detail.back": "\u2190 Zur\u00fcck zur Fristen\u00fcbersicht",
|
||
"deadlines.detail.loading": "L\u00e4dt\u2026",
|
||
"deadlines.detail.notfound": "Frist nicht gefunden oder keine Berechtigung.",
|
||
"deadlines.detail.complete": "Als erledigt markieren",
|
||
"deadlines.detail.completed.already": "Bereits erledigt",
|
||
"deadlines.detail.reopen": "Wieder öffnen",
|
||
"deadlines.action.reopen": "Wieder öffnen",
|
||
"deadlines.detail.edit": "Bearbeiten",
|
||
"deadlines.detail.save": "Speichern",
|
||
"deadlines.detail.cancel": "Abbrechen",
|
||
"deadlines.detail.delete": "Frist l\u00f6schen",
|
||
"deadlines.detail.delete.confirm.title": "Frist wirklich l\u00f6schen?",
|
||
"deadlines.detail.delete.confirm.body": "Die Frist wird endg\u00fcltig entfernt. Der Eintrag im Verlauf der Akte bleibt erhalten.",
|
||
"deadlines.detail.delete.confirm.cancel": "Abbrechen",
|
||
"deadlines.detail.delete.confirm.ok": "L\u00f6schen",
|
||
"deadlines.detail.due": "F\u00e4lligkeitsdatum",
|
||
"deadlines.detail.rule": "Regel",
|
||
"deadlines.detail.source": "Quelle",
|
||
"deadlines.detail.notes": "Notizen",
|
||
"deadlines.detail.created": "Angelegt",
|
||
"deadlines.detail.completed": "Erledigt am",
|
||
"deadlines.source.manual": "Manuell",
|
||
"deadlines.source.fristenrechner": "Fristenrechner",
|
||
"deadlines.source.caldav": "CalDAV",
|
||
"deadlines.source.imported": "Import",
|
||
|
||
"cal.day.mon": "Mo",
|
||
"cal.day.tue": "Di",
|
||
"cal.day.wed": "Mi",
|
||
"cal.day.thu": "Do",
|
||
"cal.day.fri": "Fr",
|
||
"cal.day.sat": "Sa",
|
||
"cal.day.sun": "So",
|
||
"cal.month.0": "Januar",
|
||
"cal.month.1": "Februar",
|
||
"cal.month.2": "M\u00e4rz",
|
||
"cal.month.3": "April",
|
||
"cal.month.4": "Mai",
|
||
"cal.month.5": "Juni",
|
||
"cal.month.6": "Juli",
|
||
"cal.month.7": "August",
|
||
"cal.month.8": "September",
|
||
"cal.month.9": "Oktober",
|
||
"cal.month.10": "November",
|
||
"cal.month.11": "Dezember",
|
||
"cal.view.month": "Monat",
|
||
"cal.view.week": "Woche",
|
||
"cal.view.day": "Tag",
|
||
"cal.today": "Heute",
|
||
"cal.month.prev": "Vorheriger Monat",
|
||
"cal.month.next": "Nächster Monat",
|
||
"cal.week.prev": "Vorherige Woche",
|
||
"cal.week.next": "Nächste Woche",
|
||
"cal.day.prev": "Vorheriger Tag",
|
||
"cal.day.next": "Nächster Tag",
|
||
"cal.day.back_to_month": "Zurück zum Monat",
|
||
"cal.day.open_day": "Tagesansicht öffnen",
|
||
"cal.day.no_entries": "Keine Einträge an diesem Tag.",
|
||
|
||
// Akten detail — Fristen tab (Phase E)
|
||
|
||
// Fristenrechner — save to Akte (Phase E)
|
||
"deadlines.save.cta": "Als Frist(en) speichern",
|
||
"deadlines.save.modal.title": "Fristen \u00fcbernehmen",
|
||
"deadlines.save.modal.akte": "Akte",
|
||
"deadlines.save.modal.akte.choose": "Bitte w\u00e4hlen\u2026",
|
||
"deadlines.save.modal.choose": "Welche Fristen \u00fcbernommen werden sollen:",
|
||
"deadlines.save.modal.cancel": "Abbrechen",
|
||
"deadlines.save.modal.submit": "\u00dcbernehmen",
|
||
"deadlines.save.modal.no_akten": "Sie haben noch keine Akte. Bitte zuerst eine Akte anlegen.",
|
||
"deadlines.save.modal.no_akten.link": "Akte anlegen",
|
||
"deadlines.save.success": "Fristen \u00fcbernommen.",
|
||
"deadlines.save.success.link": "Zu den Fristen",
|
||
"deadlines.save.error": "\u00dcbernahme fehlgeschlagen.",
|
||
"deadlines.save.skip_court_set": "Gerichtsbestimmte Termine ohne Datum werden \u00fcbersprungen.",
|
||
|
||
// Fristenrechner overhaul \u2014 shared result view (S2, design \u00a74).
|
||
"deadlines.overhaul.loading": "Folge-Fristen werden geladen\u2026",
|
||
"deadlines.overhaul.load_error": "Folge-Fristen konnten nicht geladen werden.",
|
||
"deadlines.overhaul.empty": "Keine Folge-Fristen f\u00fcr dieses Ereignis hinterlegt.",
|
||
"deadlines.overhaul.trigger.label": "Trigger-Ereignis",
|
||
"deadlines.overhaul.trigger.date": "Trigger-Datum:",
|
||
"deadlines.overhaul.followups.label": "Folge-Fristen",
|
||
"deadlines.overhaul.group.mandatory": "Pflicht",
|
||
"deadlines.overhaul.group.recommended": "Empfohlen",
|
||
"deadlines.overhaul.group.optional": "Kann (auf Antrag)",
|
||
"deadlines.overhaul.group.conditional": "Bedingt",
|
||
"deadlines.overhaul.spawn.badge": "\u21f2 neues Verfahren",
|
||
"deadlines.overhaul.spawn.tooltip": "Diese Regel leitet ein neues Verfahren ein.",
|
||
"deadlines.detail.label": "Anzeige:",
|
||
"deadlines.detail.mandatory_only": "Nur Pflicht",
|
||
"deadlines.detail.selected": "Gewählt",
|
||
"deadlines.detail.all_options": "Alle Optionen",
|
||
"deadlines.detail.optional_unselected_hint": "Diese Regel ist optional und gehört nicht zum aktuellen Szenario.",
|
||
"deadlines.detail.aufnehmen": "Aufnehmen",
|
||
"deadlines.detail.entfernen": "Entfernen",
|
||
"deadlines.overhaul.condition.badge": "Nur unter Bedingung",
|
||
"deadlines.overhaul.crossparty.badge": "Gegenseitig",
|
||
"deadlines.overhaul.crossparty.tooltip": "Diese Frist wird von der Gegenseite eingereicht. Sie erscheint nur zur Information und wird nicht in die Akte übernommen.",
|
||
"deadlines.overhaul.notes.summary": "Hinweis",
|
||
"deadlines.overhaul.edit_date.label": "\u270f Datum",
|
||
"deadlines.overhaul.edit_date.title": "Datum manuell anpassen",
|
||
"deadlines.overhaul.select_rule": "Frist ausw\u00e4hlen",
|
||
"deadlines.overhaul.footer.count": "{n} Fristen ausgew\u00e4hlt",
|
||
"deadlines.overhaul.footer.cta": "In Akte eintragen",
|
||
"deadlines.overhaul.nudge.no_project": "Tipp: W\u00e4hle oben eine Akte, um diese Fristen einzutragen.",
|
||
"deadlines.party.claimant": "Kl\u00e4gerseite",
|
||
"deadlines.party.defendant": "Beklagtenseite",
|
||
"deadlines.party.both": "Beide Seiten",
|
||
"deadlines.party.court": "Gericht",
|
||
|
||
// Fristenrechner overhaul Mode A \u2014 Direkt suchen (S3, design \u00a73.1).
|
||
"deadlines.overhaul.modes.label": "Modus",
|
||
"deadlines.overhaul.modes.search": "Direkt suchen",
|
||
"deadlines.overhaul.modes.wizard": "Gef\u00fchrt",
|
||
"deadlines.overhaul.wizard.coming_soon": "Gef\u00fchrter Modus kommt im n\u00e4chsten Slice.",
|
||
"deadlines.overhaul.modea.filters.label": "Filter",
|
||
"deadlines.overhaul.modea.filters.heading": "Filter (eingrenzen)",
|
||
"deadlines.overhaul.modea.axis.forum": "Forum:",
|
||
"deadlines.overhaul.modea.axis.proc": "Verfahren:",
|
||
"deadlines.overhaul.modea.axis.kind": "Was passierte:",
|
||
"deadlines.overhaul.modea.axis.party": "Partei:",
|
||
"deadlines.overhaul.modea.axis.inbox": "Eingangsweg:",
|
||
"deadlines.overhaul.modea.chip.all": "Alle",
|
||
"deadlines.overhaul.modea.inbox.summary": "Erweitert: Eingangsweg",
|
||
"deadlines.overhaul.modea.inbox.postal": "Postal",
|
||
"deadlines.overhaul.modea.search.label": "Suche",
|
||
"deadlines.overhaul.modea.search.placeholder": "Klageerhebung, Hinweisbeschluss, m\u00fcndliche Verhandlung\u2026",
|
||
"deadlines.overhaul.modea.results.label": "Ergebnisse",
|
||
"deadlines.overhaul.modea.results.heading": "Ergebnisse (klicken zum Einrasten als Trigger)",
|
||
"deadlines.overhaul.modea.results.count": "{n} Treffer",
|
||
"deadlines.overhaul.modea.row.followups": "{n} Folge-Fristen",
|
||
"deadlines.overhaul.modea.loading": "Wird geladen\u2026",
|
||
"deadlines.overhaul.modea.no_results": "Keine Treffer f\u00fcr diese Filter.",
|
||
"deadlines.overhaul.modea.no_proceedings": "Keine Verfahren in diesem Forum.",
|
||
"deadlines.overhaul.modea.search_error": "Suche fehlgeschlagen.",
|
||
"deadlines.overhaul.kind.filing": "Eingereicht",
|
||
"deadlines.overhaul.kind.hearing": "Termin",
|
||
"deadlines.overhaul.kind.decision": "Entscheidung",
|
||
"deadlines.overhaul.kind.order": "Verf\u00fcgung",
|
||
"deadlines.overhaul.kind.missed": "Frist vers\u00e4umt",
|
||
|
||
// Fristenrechner overhaul Mode B \u2014 gef\u00fchrter Wizard (S4, design \u00a73.2).
|
||
"deadlines.overhaul.wizard.heading": "Gef\u00fchrter Modus",
|
||
"deadlines.overhaul.wizard.hint": "Beantworte die Fragen oben nach unten \u2014 der Wizard landet auf einem Trigger-Ereignis und zeigt die Folge-Fristen.",
|
||
"deadlines.overhaul.wizard.r1.label": "Was ist passiert?",
|
||
"deadlines.overhaul.wizard.r2.label": "Vor welchem Gericht?",
|
||
"deadlines.overhaul.wizard.r3.label": "In welchem Verfahren?",
|
||
"deadlines.overhaul.wizard.r3.empty": "Kein Verfahren mit diesem Ereignistyp im gew\u00e4hlten Forum.",
|
||
"deadlines.overhaul.wizard.r4.label": "Welches Schriftst\u00fcck / welcher Termin?",
|
||
"deadlines.overhaul.wizard.r4.empty": "Keine Ereignisse zu dieser Auswahl.",
|
||
"deadlines.overhaul.wizard.r5.label": "Welche Seite vertreten Sie?",
|
||
"deadlines.overhaul.wizard.r5.probing": "Pr\u00fcfe, ob die Folge-Fristen seitenabh\u00e4ngig sind\u2026",
|
||
"deadlines.overhaul.wizard.badge.filter": "Filter",
|
||
"deadlines.overhaul.wizard.badge.qualifier": "Qualifier",
|
||
"deadlines.overhaul.wizard.edit": "\u00e4ndern",
|
||
"deadlines.overhaul.wizard.anno.from_project": "aus Akte",
|
||
"deadlines.overhaul.wizard.anno.implicit": "implizit",
|
||
|
||
// Office labels (shared)
|
||
"office.munich": "M\u00fcnchen",
|
||
"office.duesseldorf": "D\u00fcsseldorf",
|
||
"office.hamburg": "Hamburg",
|
||
"office.amsterdam": "Amsterdam",
|
||
"office.london": "London",
|
||
"office.paris": "Paris",
|
||
"office.milan": "Mailand",
|
||
|
||
// Dashboard (logged-in landing)
|
||
"dashboard.title": "Dashboard \u2014 Paliad",
|
||
"dashboard.greeting.prefix": "Guten Tag",
|
||
"dashboard.unavailable": "Dashboard ben\u00f6tigt die Datenbank \u2014 bitte Administrator kontaktieren.",
|
||
"dashboard.onboarding": "Bitte schlie\u00dfen Sie das Onboarding ab, damit Ihnen Fristen und Akten angezeigt werden k\u00f6nnen.",
|
||
"dashboard.summary.heading": "Fristen auf einen Blick",
|
||
"dashboard.summary.overdue": "\u00dcberf\u00e4llig",
|
||
"dashboard.summary.today": "Heute",
|
||
"dashboard.summary.this_week": "Diese Woche",
|
||
"dashboard.summary.next_week": "N\u00e4chste Woche",
|
||
"dashboard.summary.completed": "Erledigt",
|
||
"dashboard.summary.later": "Später",
|
||
"dashboard.appointment_summary.heading": "Termine auf einen Blick",
|
||
"dashboard.matters.heading": "Meine Akten",
|
||
"dashboard.matters.active": "Aktiv",
|
||
"dashboard.matters.archived": "Archiviert",
|
||
"dashboard.matters.total": "Gesamt",
|
||
"dashboard.deadlines.heading": "Kommende Fristen",
|
||
"dashboard.deadlines.empty": "Keine Fristen in den n\u00e4chsten 7 Tagen.",
|
||
"dashboard.appointments.heading": "Kommende Termine",
|
||
"dashboard.appointments.empty": "Keine Termine in den n\u00e4chsten 7 Tagen.",
|
||
"dashboard.activity.heading": "Letzte Aktivit\u00e4t",
|
||
"dashboard.activity.empty": "Noch keine Aktivit\u00e4t erfasst.",
|
||
"dashboard.activity.system": "System",
|
||
"dashboard.activity.event": "Ereignis",
|
||
// Inline Agenda section on the dashboard (t-paliad-162). The
|
||
// standalone /agenda page keeps its own copy under the agenda.* keys;
|
||
// these are dashboard-scoped so the headline reads as a section
|
||
// title rather than a page title.
|
||
"dashboard.agenda.heading": "Agenda",
|
||
"dashboard.agenda.empty": "Keine F\u00e4lligkeiten in den n\u00e4chsten 30 Tagen.",
|
||
"dashboard.agenda.full_link": "Vollst\u00e4ndige Agenda \u00f6ffnen \u2192",
|
||
// Inbox-approvals widget (t-paliad-219).
|
||
"dashboard.inbox.heading": "Offene Freigaben",
|
||
"dashboard.inbox.empty": "Keine offenen Freigaben.",
|
||
"dashboard.inbox.full_link": "Vollst\u00e4ndigen Posteingang \u00f6ffnen \u2192",
|
||
"dashboard.inbox.entity.deadline": "Frist",
|
||
"dashboard.inbox.entity.appointment": "Termin",
|
||
// Edit-mode chrome (t-paliad-219 Slice B). The toggle in the
|
||
// dashboard header flips body.dashboard-editing; the keys below
|
||
// power the in-page chrome (drag handle, \u2191/\u2193, hide, gear, picker,
|
||
// reset) plus the autosave toast.
|
||
"dashboard.edit.toggle": "Anpassen",
|
||
"dashboard.edit.exit": "Fertig",
|
||
"dashboard.edit.add_widget": "Widget hinzuf\u00fcgen",
|
||
"dashboard.edit.reset": "Auf Standard zur\u00fccksetzen",
|
||
"dashboard.edit.reset_confirm": "Layout auf Standard zur\u00fccksetzen? Diese Aktion kann nicht r\u00fcckg\u00e4ngig gemacht werden.",
|
||
// Slice C: admin promote \u2014 visible only when global_role==global_admin.
|
||
"dashboard.edit.promote": "Als Firmen-Standard speichern",
|
||
"dashboard.edit.promote_confirm": "Dein aktuelles Layout als Firmen-Standard speichern? Neue Nutzer:innen und 'Auf Standard zur\u00fccksetzen' verwenden danach diese Vorlage.",
|
||
"dashboard.edit.promoted": "Als Firmen-Standard gespeichert",
|
||
// Slice C: pinned-projects widget (reuses PinService).
|
||
"dashboard.pinned.heading": "Angepinnte Akten",
|
||
"dashboard.pinned.empty": "Noch keine Akten angepinnt.",
|
||
"dashboard.pinned.full_link": "Alle Akten \u00f6ffnen \u2192",
|
||
// Slice C: quick-actions widget \u2014 pure UI affordances.
|
||
"dashboard.quick.heading": "Schnellzugriff",
|
||
"dashboard.quick.new_project": "+ Akte",
|
||
"dashboard.quick.new_deadline": "+ Frist",
|
||
"dashboard.quick.new_appointment": "+ Termin",
|
||
"dashboard.edit.move_up": "Nach oben bewegen",
|
||
"dashboard.edit.move_down": "Nach unten bewegen",
|
||
"dashboard.edit.hide": "Ausblenden",
|
||
"dashboard.edit.settings": "Einstellungen",
|
||
"dashboard.edit.drag": "Ziehen, um neu zu ordnen",
|
||
"dashboard.edit.saved": "Gespeichert",
|
||
"dashboard.edit.save_failed": "Speichern fehlgeschlagen",
|
||
"dashboard.edit.setting.count": "Anzahl",
|
||
"dashboard.edit.setting.count.custom": "Eigener Wert (max. {n})",
|
||
"dashboard.edit.setting.horizon": "Zeitraum",
|
||
"dashboard.edit.setting.horizon.days": "{n} Tage",
|
||
"dashboard.edit.setting.horizon.custom": "Eigener Wert in Tagen (max. {n})",
|
||
"dashboard.edit.setting.view": "Ansicht",
|
||
"dashboard.edit.setting.size": "Größe",
|
||
"dashboard.edit.setting.position": "Position",
|
||
"dashboard.edit.resize": "Größe ändern",
|
||
"dashboard.picker.title": "Widget hinzuf\u00fcgen",
|
||
"dashboard.picker.status.active": "Aktiv",
|
||
"dashboard.picker.status.hidden": "Versteckt",
|
||
"dashboard.picker.status.absent": "Nicht hinzugef\u00fcgt",
|
||
"dashboard.picker.close": "Schlie\u00dfen",
|
||
"dashboard.picker.empty": "Alle Widgets sind hinzugef\u00fcgt.",
|
||
// Collapsible-section toggle a11y labels (t-paliad-162). Both states
|
||
// are needed because the aria-label flips with the expanded state.
|
||
"dashboard.section.collapse": "Abschnitt einklappen",
|
||
"dashboard.section.expand": "Abschnitt ausklappen",
|
||
"dashboard.urgency.overdue": "\u00dcberf\u00e4llig",
|
||
"dashboard.urgency.today": "Heute",
|
||
"dashboard.urgency.urgent": "Dringend",
|
||
"dashboard.urgency.soon": "Bald",
|
||
"dashboard.when.today": "heute",
|
||
"dashboard.when.tomorrow": "morgen",
|
||
// Short verb phrases for the dashboard activity feed. Rendered as the
|
||
// bold summary line ("Matthias änderte Frist"); the full German
|
||
// sentence ("Deadline „ok“ geändert") lives on a second
|
||
// muted line via the project_events.description column.
|
||
"dashboard.action.short.project_created": "legte Projekt an",
|
||
"dashboard.action.short.project_archived": "archivierte Projekt",
|
||
"dashboard.action.short.project_reparented": "ordnete Projekt neu zu",
|
||
"dashboard.action.short.project_type_changed": "\u00e4nderte Projekt-Typ",
|
||
"dashboard.action.short.status_changed": "\u00e4nderte Status",
|
||
"dashboard.action.short.our_side_changed": "\u00e4nderte vertretene Seite",
|
||
"dashboard.action.short.visibility_changed": "\u00e4nderte Sichtbarkeit",
|
||
"dashboard.action.short.collaborators_updated": "aktualisierte Bearbeiter",
|
||
"dashboard.action.short.note_created": "f\u00fcgte Notiz hinzu",
|
||
"dashboard.action.short.deadline_created": "legte Frist an",
|
||
"dashboard.action.short.deadline_updated": "\u00e4nderte Frist",
|
||
"dashboard.action.short.deadline_completed": "erledigte Frist",
|
||
"dashboard.action.short.deadline_reopened": "öffnete Frist wieder",
|
||
"dashboard.action.short.deadline_deleted": "l\u00f6schte Frist",
|
||
"dashboard.action.short.deadline_project_changed": "verschob Frist",
|
||
"dashboard.action.short.deadlines_imported": "importierte Fristen",
|
||
"dashboard.action.short.appointment_created": "legte Termin an",
|
||
"dashboard.action.short.appointment_updated": "\u00e4nderte Termin",
|
||
"dashboard.action.short.appointment_deleted": "l\u00f6schte Termin",
|
||
"dashboard.action.short.appointment_project_changed": "verschob Termin",
|
||
// Localized event-row title for the project Verlauf tab \u2014 full noun
|
||
// phrase ("Frist ge\u00e4ndert") complementing the dashboard's verb form.
|
||
"event.title.project_created": "Projekt angelegt",
|
||
"event.title.project_archived": "Projekt archiviert",
|
||
"event.title.project_reparented": "Projekt umstrukturiert",
|
||
"event.title.project_type_changed": "Projekt-Typ ge\u00e4ndert",
|
||
"event.title.status_changed": "Status ge\u00e4ndert",
|
||
"event.title.our_side_changed": "Vertretene Seite ge\u00e4ndert",
|
||
"event.title.note_created": "Notiz hinzugef\u00fcgt",
|
||
"event.title.deadline_created": "Frist angelegt",
|
||
"event.title.deadline_updated": "Frist ge\u00e4ndert",
|
||
"event.title.deadline_completed": "Frist erledigt",
|
||
"event.title.deadline_reopened": "Frist wiederer\u00f6ffnet",
|
||
"event.title.deadline_deleted": "Frist gel\u00f6scht",
|
||
"event.title.deadline_project_changed": "Frist verschoben",
|
||
"event.title.deadlines_imported": "Fristen importiert",
|
||
"event.title.appointment_created": "Termin angelegt",
|
||
"event.title.appointment_updated": "Termin ge\u00e4ndert",
|
||
"event.title.appointment_deleted": "Termin gel\u00f6scht",
|
||
"event.title.appointment_project_changed": "Termin verschoben",
|
||
// Umbrella audit kind + admin churn surfaced by the FilterBar
|
||
// project_event_kind chip cluster (KnownProjectEventKinds).
|
||
"event.title.approval_decided": "Genehmigung entschieden",
|
||
"event.title.member_role_changed": "Teamrolle ge\u00e4ndert",
|
||
// 4-eye approval lifecycle (t-paliad-138). Verlauf renders these as
|
||
// a paired card with the original lifecycle event (e.g.
|
||
// "Frist angelegt" + "Genehmigung erteilt von Bert").
|
||
"event.title.deadline_approval_requested": "Genehmigung beantragt",
|
||
"event.title.deadline_approval_approved": "Genehmigung erteilt",
|
||
"event.title.deadline_approval_rejected": "Genehmigung abgelehnt",
|
||
"event.title.deadline_approval_revoked": "Anfrage zurückgezogen",
|
||
"event.title.deadline_approval_changes_suggested": "Änderungen vorgeschlagen",
|
||
"event.title.appointment_approval_requested": "Genehmigung beantragt",
|
||
"event.title.appointment_approval_approved": "Genehmigung erteilt",
|
||
"event.title.appointment_approval_rejected": "Genehmigung abgelehnt",
|
||
"event.title.appointment_approval_revoked": "Anfrage zurückgezogen",
|
||
"event.title.appointment_approval_changes_suggested": "Änderungen vorgeschlagen",
|
||
"event.description.deadline_approval_requested": "4-Augen-Genehmigung für Frist beantragt",
|
||
"event.description.deadline_approval_approved": "Genehmigung für Frist erteilt",
|
||
"event.description.deadline_approval_rejected": "Genehmigung für Frist abgelehnt",
|
||
"event.description.deadline_approval_revoked": "Genehmigungsanfrage für Frist zurückgezogen",
|
||
"event.description.deadline_approval_changes_suggested": "Frist abgelehnt mit Gegenvorschlag",
|
||
"event.description.appointment_approval_requested": "4-Augen-Genehmigung für Termin beantragt",
|
||
"event.description.appointment_approval_approved": "Genehmigung für Termin erteilt",
|
||
"event.description.appointment_approval_rejected": "Genehmigung für Termin abgelehnt",
|
||
"event.description.appointment_approval_revoked": "Genehmigungsanfrage für Termin zurückgezogen",
|
||
"event.description.appointment_approval_changes_suggested": "Termin abgelehnt mit Gegenvorschlag",
|
||
"dashboard.action.short.deadline_approval_requested": "beantragte Genehmigung",
|
||
"dashboard.action.short.deadline_approval_approved": "genehmigte Frist",
|
||
"dashboard.action.short.deadline_approval_rejected": "lehnte Frist ab",
|
||
"dashboard.action.short.deadline_approval_revoked": "zog Anfrage zurück",
|
||
"dashboard.action.short.appointment_approval_requested": "beantragte Genehmigung",
|
||
"dashboard.action.short.appointment_approval_approved": "genehmigte Termin",
|
||
"dashboard.action.short.appointment_approval_rejected": "lehnte Termin ab",
|
||
"dashboard.action.short.appointment_approval_revoked": "zog Anfrage zurück",
|
||
"event.title.checklist_created": "Checkliste angelegt",
|
||
"event.title.checklist_renamed": "Checkliste umbenannt",
|
||
"event.title.checklist_linked": "Checkliste verkn\u00fcpft",
|
||
"event.title.checklist_unlinked": "Checkliste getrennt",
|
||
"event.title.checklist_reset": "Checkliste zur\u00fcckgesetzt",
|
||
"event.title.checklist_deleted": "Checkliste gel\u00f6scht",
|
||
// Note-parent slugs for note_created descriptions
|
||
// ("Notiz zu Frist hinzugef\u00fcgt"). Used by translateEventDescription().
|
||
"event.note.parent.project": "Projekt",
|
||
"event.note.parent.deadline": "Frist",
|
||
"event.note.parent.appointment": "Termin",
|
||
"event.note.added_to": "Notiz zu {parent} hinzugef\u00fcgt",
|
||
// Localized full-sentence descriptions for the project Verlauf and the
|
||
// dashboard activity feed. Stored descriptions carry just the variable
|
||
// payload (title/count/slugs); the renderer interpolates here.
|
||
"event.description.deadline_created": "Frist \u201e{title}\u201c angelegt",
|
||
"event.description.deadline_updated": "Frist \u201e{title}\u201c ge\u00e4ndert",
|
||
"event.description.deadline_completed": "Frist \u201e{title}\u201c als erledigt markiert",
|
||
"event.description.deadline_reopened": "Frist \u201e{title}\u201c wieder ge\u00f6ffnet",
|
||
"event.description.deadline_deleted": "Frist \u201e{title}\u201c gel\u00f6scht",
|
||
"event.description.deadline_project_changed": "Frist \u201e{title}\u201c einer anderen Akte zugeordnet",
|
||
"event.description.deadlines_imported": "{count} Fristen aus Fristenrechner \u00fcbernommen",
|
||
"event.description.appointment_created": "Termin \u201e{title}\u201c angelegt",
|
||
"event.description.appointment_updated": "Termin \u201e{title}\u201c ge\u00e4ndert",
|
||
"event.description.appointment_deleted": "Termin \u201e{title}\u201c gel\u00f6scht",
|
||
"event.description.appointment_project_changed": "Termin \u201e{title}\u201c einer anderen Akte zugeordnet",
|
||
"dashboard.action.short.checklist_created": "legte Checkliste an",
|
||
"dashboard.action.short.checklist_renamed": "benannte Checkliste um",
|
||
"dashboard.action.short.checklist_unlinked": "trennte Checkliste",
|
||
"dashboard.action.short.checklist_linked": "verkn\u00fcpfte Checkliste",
|
||
"dashboard.action.short.checklist_reset": "setzte Checkliste zur\u00fcck",
|
||
"dashboard.action.short.checklist_deleted": "l\u00f6schte Checkliste",
|
||
"dashboard.action.short.partei_added": "f\u00fcgte Partei hinzu",
|
||
"dashboard.action.short.partei_removed": "entfernte Partei",
|
||
// Legacy event types kept so historical project_events rows render cleanly
|
||
// (writes switched to English in t-paliad-037).
|
||
"dashboard.action.short.akte_created": "legte Akte an",
|
||
"dashboard.action.short.akte_archived": "archivierte Akte",
|
||
"dashboard.action.short.projekt_created": "legte Akte an",
|
||
"dashboard.action.short.projekt_archived": "archivierte Akte",
|
||
"dashboard.action.short.projekt_reparented": "ordnete Akte neu zu",
|
||
"dashboard.action.short.notiz_created": "f\u00fcgte Notiz hinzu",
|
||
"dashboard.action.short.frist_created": "legte Frist an",
|
||
"dashboard.action.short.frist_updated": "\u00e4nderte Frist",
|
||
"dashboard.action.short.frist_completed": "erledigte Frist",
|
||
"dashboard.action.short.frist_deleted": "l\u00f6schte Frist",
|
||
"dashboard.action.short.fristen_imported": "importierte Fristen",
|
||
"dashboard.action.short.termin_created": "legte Termin an",
|
||
"dashboard.action.short.termin_updated": "\u00e4nderte Termin",
|
||
"dashboard.action.short.termin_deleted": "l\u00f6schte Termin",
|
||
"dashboard.action.short.checkliste_created": "legte Checkliste an",
|
||
"dashboard.action.short.checkliste_renamed": "benannte Checkliste um",
|
||
"dashboard.action.short.checkliste_unlinked": "trennte Checkliste",
|
||
"dashboard.action.short.checkliste_linked": "verkn\u00fcpfte Checkliste",
|
||
"dashboard.action.short.checkliste_reset": "setzte Checkliste zur\u00fcck",
|
||
"dashboard.action.short.checkliste_deleted": "l\u00f6schte Checkliste",
|
||
|
||
// Onboarding (first-login profile capture)
|
||
"onboarding.title": "Willkommen \u2014 Paliad",
|
||
"onboarding.heading": "Willkommen bei Paliad",
|
||
"onboarding.lede": "Bitte vervollst\u00e4ndigen Sie Ihr Profil, damit Ihnen Akten, Fristen und Termine angezeigt werden k\u00f6nnen.",
|
||
"onboarding.display_name": "Anzeigename",
|
||
"onboarding.display_name.placeholder": "Vor- und Nachname",
|
||
"onboarding.office": "B\u00fcro",
|
||
"onboarding.office.placeholder": "Bitte ausw\u00e4hlen",
|
||
"onboarding.job_title": "Berufsbezeichnung",
|
||
"onboarding.job_title.placeholder": "z.B. Associate, Partner, Patentanwalt",
|
||
"onboarding.profession": "Profession",
|
||
"onboarding.profession.hint": "Strukturiertes Tier — steuert die 4-Augen-Genehmigung. Distinkt von der Berufsbezeichnung.",
|
||
"onboarding.partner_unit": "Partner Unit",
|
||
"onboarding.partner_unit.unassigned": "(noch keine Zuordnung)",
|
||
"onboarding.optional": "(optional)",
|
||
"onboarding.submit": "Profil anlegen",
|
||
"onboarding.error.display_name": "Bitte Anzeigename eingeben.",
|
||
"onboarding.error.office": "Bitte B\u00fcro ausw\u00e4hlen.",
|
||
"onboarding.error.job_title": "Bitte Berufsbezeichnung eingeben.",
|
||
"onboarding.error.generic": "Profil konnte nicht angelegt werden.",
|
||
"onboarding.error.connection": "Verbindungsfehler. Bitte versuchen Sie es erneut.",
|
||
|
||
// Termine + CalDAV (Phase F)
|
||
"nav.group.einstellungen": "Einstellungen",
|
||
"nav.einstellungen": "Einstellungen",
|
||
"nav.caldav": "CalDAV",
|
||
|
||
// Global search (t-paliad-026)
|
||
"search.placeholder": "Suchen...",
|
||
"search.no_results": "Keine Ergebnisse",
|
||
"search.group.projects": "Projekte",
|
||
"search.group.deadlines": "Fristen",
|
||
"search.group.appointments": "Termine",
|
||
"search.group.glossary": "Glossar",
|
||
"search.group.courts": "Gerichte",
|
||
"search.group.checklists": "Checklisten",
|
||
"search.group.links": "Links",
|
||
"search.group.users": "Kolleg:innen",
|
||
|
||
// Command palette (t-paliad-044)
|
||
"palette.section.actions": "Aktionen",
|
||
"palette.action.nav.dashboard": "Gehe zu Dashboard",
|
||
"palette.action.nav.projects": "Gehe zu Projekte",
|
||
"palette.action.nav.deadlines": "Gehe zu Fristen",
|
||
"palette.action.nav.appointments": "Gehe zu Termine",
|
||
"palette.action.nav.agenda": "Gehe zu Agenda",
|
||
"palette.action.nav.team": "Gehe zu Team",
|
||
"palette.action.nav.glossary": "Gehe zu Glossar",
|
||
"palette.action.nav.courts": "Gehe zu Gerichte",
|
||
"palette.action.nav.links": "Gehe zu Links",
|
||
"palette.action.nav.checklists": "Gehe zu Checklisten",
|
||
"palette.action.nav.downloads": "Gehe zu Downloads",
|
||
"palette.action.nav.settings": "Gehe zu Einstellungen",
|
||
"palette.action.create.deadline": "Neue Frist anlegen",
|
||
"palette.action.create.appointment": "Neuer Termin anlegen",
|
||
"palette.action.create.project": "Neues Projekt anlegen",
|
||
"palette.action.toggle.lang": "Sprache umschalten",
|
||
"palette.action.toggle.pin": "Sidebar an-/abheften",
|
||
"palette.action.app.invite": "Kolleg:in einladen",
|
||
"palette.action.app.logout": "Abmelden",
|
||
"palette.footer.navigate": "Navigieren",
|
||
"palette.footer.open": "Öffnen",
|
||
"palette.footer.close": "Schließen",
|
||
|
||
"sidebar.resize.title": "Breite anpassen — ziehen, Doppelklick setzt zurück",
|
||
|
||
// Settings page (t-paliad-022)
|
||
"einstellungen.title": "Einstellungen \u2014 Paliad",
|
||
"einstellungen.heading": "Einstellungen",
|
||
"einstellungen.subtitle": "Profil, Benachrichtigungen und Kalendersynchronisation.",
|
||
"einstellungen.loading": "L\u00e4dt\u2026",
|
||
"einstellungen.optional": "(optional)",
|
||
"einstellungen.save": "Speichern",
|
||
"einstellungen.saved": "Gespeichert.",
|
||
"einstellungen.error.generic": "Speichern fehlgeschlagen. Bitte sp\u00e4ter erneut versuchen.",
|
||
"einstellungen.tab.profil": "Profil",
|
||
"einstellungen.tab.benachrichtigungen": "Benachrichtigungen",
|
||
"einstellungen.tab.caldav": "CalDAV",
|
||
"einstellungen.tab.export": "Datenexport",
|
||
"einstellungen.export.subtitle": "Laden Sie Ihre pers\u00f6nlichen Paliad-Daten als Excel- + JSON- + CSV-Paket herunter. Enthalten ist alles, was Sie aktuell sehen k\u00f6nnen \u2014 Ihre Projekte, Fristen, Termine, Notizen, Genehmigungen und Einstellungen.",
|
||
"einstellungen.export.heading": "Pers\u00f6nlicher Datenexport",
|
||
"einstellungen.export.what": "Das Paket enth\u00e4lt Ihre sichtbaren Daten in drei Formaten in einem .zip:",
|
||
"einstellungen.export.bullet.xlsx": "paliad-export.xlsx \u2014 eine Excel-Mappe pro Entit\u00e4t.",
|
||
"einstellungen.export.bullet.json": "paliad-export.json \u2014 maschinenlesbare Kopie f\u00fcr Skripte und Tools.",
|
||
"einstellungen.export.bullet.csv": "csv/<sheet>.csv \u2014 Tabellen einzeln als CSV (UTF-8 mit BOM).",
|
||
"einstellungen.export.scope": "Umfang: alles, was Sie aktuell in Paliad sehen k\u00f6nnen (Sichtbarkeit zum Zeitpunkt des Exports). Passw\u00f6rter, CalDAV-Zugangsdaten und andere Geheimnisse werden nie exportiert.",
|
||
"einstellungen.export.audit": "Jeder Export wird im Audit-Log protokolliert.",
|
||
"einstellungen.export.button": "Daten exportieren",
|
||
"einstellungen.export.started": "Download gestartet. Falls nichts passiert, pr\u00fcfen Sie Ihren Browser-Downloadordner.",
|
||
"projects.title": "Projekte \u2014 Paliad",
|
||
"projects.heading": "Projekte",
|
||
"projects.subtitle": "Mandanten, Streitsachen, Patente und Verfahren \u2014 hierarchisch organisiert.",
|
||
"projects.new": "Neues Projekt",
|
||
"projects.search.placeholder": "Titel, Referenz oder ClientMatter...",
|
||
"projects.filter.type": "Typ",
|
||
"projects.filter.type.all": "Alle Typen",
|
||
"projects.filter.status": "Status",
|
||
"projects.filter.status.all": "Alle Status",
|
||
"projects.filter.status.active": "Aktiv",
|
||
"projects.filter.status.archived": "Archiviert",
|
||
"projects.filter.status.closed": "Abgeschlossen",
|
||
"projects.filter.view": "Ansicht",
|
||
"projects.view.flat": "Flache Liste",
|
||
"projects.view.roots": "Nur Wurzeln",
|
||
"projects.unavailable": "Projektverwaltung zurzeit nicht verf\u00fcgbar \u2014 bitte Administrator kontaktieren.",
|
||
"projects.col.title": "Titel",
|
||
"projects.col.type": "Typ",
|
||
"projects.col.reference": "Referenz",
|
||
"projects.col.clientmatter": "ClientMatter",
|
||
"projects.col.status": "Status",
|
||
"projects.col.updated": "Zuletzt ge\u00e4ndert",
|
||
"projects.empty.title": "Noch kein Projekt angelegt",
|
||
"projects.empty.hint": "Starten Sie \u00fcber \u201eNeues Projekt\u201c \u2014 legen Sie zuerst einen Mandanten an, darunter Streitsachen, Patente und Verfahren.",
|
||
"projects.empty.filtered": "Keine Treffer f\u00fcr diese Filter.",
|
||
"projects.cancel": "Abbrechen",
|
||
"projects.submit": "Projekt anlegen",
|
||
"projects.neu.title": "Neues Projekt \u2014 Paliad",
|
||
"projects.neu.heading": "Neues Projekt anlegen",
|
||
"projects.neu.subtitle": "Mandant, Streitsache, Patent, Verfahren oder generisches Projekt \u2014 hierarchisch einordnen. Sichtbarkeit folgt dem Team (Sie werden als \u201eLeitung\u201c automatisch hinzugef\u00fcgt).",
|
||
"projects.field.type": "Typ",
|
||
"projects.field.type.choose": "Bitte w\u00e4hlen\u2026",
|
||
"projects.field.parent": "\u00dcbergeordnetes Projekt",
|
||
"projects.field.parent.placeholder": "Titel eingeben, um ein \u00dcberprojekt zu suchen...",
|
||
"projects.field.parent.hint": "Leer lassen f\u00fcr ein Wurzel-Projekt (typisch: Mandant).",
|
||
"projects.field.title": "Titel",
|
||
"projects.field.title.placeholder": "z.B. Siemens AG | Siemens v. Huawei | EP 1 234 567",
|
||
"projects.field.reference": "Interne Referenz (optional)",
|
||
"projects.field.reference.placeholder": `z.B. ${FIRM}-2026-0042`,
|
||
"projects.field.client_number": "Client-Nr. (6 Ziffern)",
|
||
"projects.field.matter_number": "Matter-Nr. (6 Ziffern)",
|
||
"projects.field.clientmatter.hint": `${FIRM}-Billing-Nummern. Format CCCCCC.MMMMMM. Client-Nr. wird an Unterprojekte vererbt (\u00fcberschreibbar).`,
|
||
"projects.field.billing_reference": "Billing-Referenz (optional)",
|
||
"projects.field.netdocuments_url": "netDocuments-URL (optional)",
|
||
"projects.field.industry": "Branche",
|
||
"projects.field.country": "Land (ISO-2)",
|
||
"projects.field.description": "Notizen",
|
||
"projects.field.description.placeholder": "Kurznotizen zum Projekt (optional)...",
|
||
"projects.detail.description.heading": "Notizen",
|
||
"projects.field.patent_number": "Patentnummer",
|
||
"projects.field.filing_date": "Anmeldetag",
|
||
"projects.field.grant_date": "Erteilungstag",
|
||
"projects.field.court": "Gericht",
|
||
"projects.field.case_number": "Aktenzeichen (Gericht)",
|
||
"projects.field.proceeding_type_id": "Verfahrenstyp",
|
||
"projects.field.proceeding_type": "Verfahrenstyp",
|
||
"projects.field.proceeding_type.unset": "(nicht gesetzt)",
|
||
"projects.field.proceeding_type.hint": "Bestimmt, welche Schriftsätze-Vorlagen für dieses Verfahren angezeigt werden.",
|
||
"projects.field.our_side": "Wir vertreten",
|
||
"projects.field.our_side.hint": "Bestimmt die Voreinstellung der Perspektive im Fristenrechner-Determinator. Lässt sich dort jederzeit überschreiben.",
|
||
"projects.field.our_side.unset": "Unbekannt / nicht gesetzt",
|
||
"projects.field.our_side.claimant": "Klägerseite",
|
||
"projects.field.our_side.defendant": "Beklagtenseite",
|
||
"projects.field.our_side.applicant": "Antragsteller",
|
||
"projects.field.our_side.appellant": "Berufungsführer",
|
||
"projects.field.our_side.respondent": "Antragsgegner",
|
||
"projects.field.our_side.third_party": "Streithelfer / Dritter",
|
||
"projects.field.our_side.other": "Sonstige Beteiligte",
|
||
"projects.field.our_side.court": "Gericht / Tribunal",
|
||
"projects.field.our_side.both": "Beide Seiten",
|
||
"projects.field.our_side.none": "—",
|
||
"projects.field.client_role": "Mandantenrolle",
|
||
"projects.field.client_role.hint": "Bestimmt die Voreinstellung der Perspektive im Fristenrechner-Determinator: Aktiv → Klägerseite, Reaktiv → Beklagtenseite. Lässt sich dort jederzeit überschreiben.",
|
||
"projects.field.client_role.unset": "Unbekannt",
|
||
"projects.field.client_role.group.active": "Aktiv (wir greifen an)",
|
||
"projects.field.client_role.group.reactive": "Reaktiv (wir verteidigen)",
|
||
"projects.field.client_role.group.other": "Dritte / Sonstige",
|
||
"projects.field.client_role.claimant": "Klägerseite",
|
||
"projects.field.client_role.applicant": "Antragsteller",
|
||
"projects.field.client_role.appellant": "Berufungsführer",
|
||
"projects.field.client_role.defendant": "Beklagtenseite",
|
||
"projects.field.client_role.respondent": "Antragsgegner",
|
||
"projects.field.client_role.third_party": "Streithelfer / Dritter",
|
||
"projects.field.client_role.other": "Sonstige Beteiligte",
|
||
"projects.field.opponent_code": "Gegner-Kürzel",
|
||
"projects.field.opponent_code.placeholder": "z.B. OPNT",
|
||
"projects.field.opponent_code.hint": "Kurzes Kürzel der Gegenseite (Großbuchstaben, Ziffern, Bindestriche, max. 16 Zeichen). Wird als mittleres Segment in automatisch abgeleiteten Projekt-Codes verwendet (z.B. EXMPL.OPNT.567.INF.CFI).",
|
||
"projects.field.status": "Status",
|
||
"projects.error.title_required": "Titel erforderlich",
|
||
"projects.detail.edit.type_change_warning.title": "Diese Felder werden geleert:",
|
||
"projects.detail.title": "Projekt \u2014 Paliad",
|
||
"projects.detail.back": "\u2190 Zur\u00fcck zur \u00dcbersicht",
|
||
"projects.detail.loading": "L\u00e4dt\u2026",
|
||
"projects.detail.notfound": "Projekt nicht gefunden oder keine Berechtigung.",
|
||
"projects.detail.smarttimeline.open_chart": "Als Chart anzeigen \u2197",
|
||
"projects.chart.title": "Projekt-Chart \u2014 Paliad",
|
||
"projects.chart.back": "\u2190 Zur\u00fcck zum Verlauf",
|
||
"projects.chart.loading": "L\u00e4dt\u2026",
|
||
"projects.chart.notfound": "Projekt nicht gefunden oder keine Berechtigung.",
|
||
"projects.chart.error.mount": "Chart konnte nicht initialisiert werden.",
|
||
"projects.chart.control.layout.horizontal": "Layout: Horizontal",
|
||
"projects.chart.control.columns.auto": "Spalten: Auto",
|
||
"projects.chart.control.density.standard": "Dichte: Standard",
|
||
"projects.chart.control.palette.default": "Palette: Standard",
|
||
"projects.chart.control.export.soon": "Export \u2193 (Slice 2)",
|
||
"projects.chart.control.palette.label": "Palette:",
|
||
"projects.chart.palette.default": "Standard",
|
||
"projects.chart.palette.kind_coded": "Nach Ereignistyp",
|
||
"projects.chart.palette.track_coded": "Nach Spur",
|
||
"projects.chart.palette.high_contrast": "Hoher Kontrast",
|
||
"projects.chart.palette.print": "Druck (S/W)",
|
||
"projects.chart.control.density.label": "Dichte:",
|
||
"projects.chart.density.compact": "Kompakt",
|
||
"projects.chart.density.standard": "Standard",
|
||
"projects.chart.density.spacious": "Großzügig",
|
||
"projects.chart.control.range.label": "Zeitraum:",
|
||
"projects.chart.range.1y": "1 Jahr",
|
||
"projects.chart.range.2y": "2 Jahre",
|
||
"projects.chart.range.all": "Alles anzeigen",
|
||
"projects.chart.range.custom": "Eigener Bereich…",
|
||
"projects.chart.range.from": "Von:",
|
||
"projects.chart.range.to": "Bis:",
|
||
"projects.chart.permalink.copy": "🔗 Link kopieren",
|
||
"projects.chart.permalink.title": "URL mit allen Filtern in die Zwischenablage kopieren",
|
||
"nav.context.project_chart": "Als Chart anzeigen",
|
||
"projects.chart.export.menu": "⇓ Export",
|
||
"projects.chart.export.svg": "SVG (Vektorgrafik)",
|
||
"projects.chart.export.png": "PNG (Bild, 2× HiDPI)",
|
||
"projects.chart.export.print": "PDF (Drucken)",
|
||
"projects.chart.export.csv": "CSV (Excel-Tabelle)",
|
||
"projects.chart.export.json": "JSON (Rohdaten)",
|
||
"projects.chart.export.ics": "iCal (.ics — Outlook / Apple)",
|
||
"projects.detail.edit": "Bearbeiten",
|
||
"projects.detail.edit.modal.title": "Projekt bearbeiten",
|
||
"projects.detail.save": "Speichern",
|
||
"projects.detail.tab.verlauf": "Verlauf",
|
||
"projects.detail.tab.team": "Team",
|
||
"projects.detail.tab.kinder": "Projektbaum",
|
||
"projects.detail.tab.parteien": "Parteien",
|
||
"projects.detail.tab.fristen": "Fristen",
|
||
"projects.detail.tab.termine": "Termine",
|
||
"projects.detail.tab.notizen": "Notizen",
|
||
"projects.detail.tab.checklisten": "Checklisten",
|
||
"projects.detail.tab.submissions": "Schriftsätze",
|
||
"projects.detail.tab.settings": "Verwaltung",
|
||
"projects.detail.export.button": "Daten exportieren",
|
||
"projects.detail.export.tooltip": "Daten dieses Projekts (mit Unter-Projekten) als Excel + JSON + CSV herunterladen.",
|
||
"projects.detail.settings.export.heading": "Daten exportieren",
|
||
"projects.detail.settings.export.description": "Lade alle Daten dieses Projekts (inkl. Unter-Projekten) als Excel + JSON + CSV-Archiv herunter.",
|
||
"projects.detail.settings.archive.heading": "Projekt archivieren",
|
||
"projects.detail.settings.archive.description": "Archivieren erfolgt aus dem Bearbeiten-Dialog (Gefahrenbereich).",
|
||
"projects.detail.settings.archive.cta": "Bearbeiten öffnen",
|
||
"projects.detail.submissions.empty": "Es sind aktuell keine Schriftsatzvorlagen hinterlegt.",
|
||
"projects.detail.submissions.empty.no_proceeding": "Für dieses Projekt ist noch kein Verfahrenstyp gesetzt — der Katalog unten zeigt trotzdem alle Vorlagen.",
|
||
"projects.detail.submissions.empty.no_proceeding.cta": "Projekt bearbeiten",
|
||
"projects.detail.submissions.col.name": "Schriftsatz",
|
||
"projects.detail.submissions.col.party": "Partei",
|
||
"projects.detail.submissions.col.source": "Rechtsgrundlage",
|
||
"projects.detail.submissions.col.action": "",
|
||
"projects.detail.submissions.action.generate": "Generieren",
|
||
"projects.detail.submissions.action.no_template": "Keine Vorlage",
|
||
"projects.detail.submissions.action.edit": "Bearbeiten",
|
||
"projects.detail.submissions.hint": "Schriftsätze werden direkt aus dem Projekt heraus als .docx generiert. Anpassen, drucken, einreichen.",
|
||
// t-paliad-238 — dedicated draft editor page.
|
||
"submissions.draft.title": "Schriftsatz bearbeiten — Paliad",
|
||
"submissions.draft.back": "← Zurück zum Projekt",
|
||
"submissions.draft.loading": "Lädt…",
|
||
"submissions.draft.notfound": "Schriftsatz nicht gefunden oder keine Berechtigung.",
|
||
"submissions.draft.action.export": "Als .docx exportieren",
|
||
"submissions.draft.action.new": "+ Neuer Entwurf",
|
||
"submissions.draft.action.delete": "Löschen",
|
||
"submissions.draft.switcher.label": "Entwurf",
|
||
"submissions.draft.name.placeholder": "Name dieses Entwurfs",
|
||
"submissions.draft.preview.title": "Vorschau",
|
||
"submissions.draft.preview.hint": "Read-only Vorschau — finale Bearbeitung in Word.",
|
||
// t-paliad-277 — import-from-project + party-picker.
|
||
"submissions.draft.import.button": "Aus Projekt importieren",
|
||
"submissions.draft.parties.title": "Parteien",
|
||
"submissions.draft.parties.hint": "Wählen Sie die im Schriftsatz genannten Parteien oder fügen Sie pro Seite weitere hinzu.",
|
||
// t-paliad-276 — DE/EN language toggle on the draft editor.
|
||
"submissions.draft.language": "Sprache",
|
||
"submissions.draft.language.de": "DE",
|
||
"submissions.draft.language.en": "EN",
|
||
"submissions.draft.language.fallback_notice": "Fallback: universelles Skelett (keine sprachspezifische Vorlage).",
|
||
// t-paliad-313 (m/paliad#141) Composer Slice A — base picker + section list.
|
||
"submissions.draft.base.label": "Vorlagenbasis",
|
||
"submissions.draft.base.hint": "Steuert Schriftarten, Briefkopf und Abschnitts-Defaults.",
|
||
"submissions.draft.sections.title": "Abschnitte",
|
||
"submissions.draft.sections.hint": "Inhalt pro Abschnitt — Autosave nach 500 ms. Letztes Layout in Word.",
|
||
// t-paliad-349 (m/paliad#157) docforge slice 6 — template authoring page.
|
||
"templates.authoring.title": "Vorlagen — Paliad",
|
||
"templates.authoring.heading": "Vorlagen",
|
||
"templates.authoring.intro": "Lade eine Word-Vorlage hoch, markiere Stellen und setze Variablen ein.",
|
||
"templates.authoring.upload.title": "Neue Vorlage hochladen",
|
||
"templates.authoring.upload.file": "Word-Datei (.docx)",
|
||
"templates.authoring.upload.name_de": "Name (DE)",
|
||
"templates.authoring.upload.name_en": "Name (EN)",
|
||
"templates.authoring.upload.firm": "Kanzlei (optional)",
|
||
"templates.authoring.upload.submit": "Hochladen",
|
||
"templates.authoring.list.title": "Vorhandene Vorlagen",
|
||
"templates.authoring.workspace.hint": "Text markieren, dann eine Variable wählen, um einen Platzhalter zu setzen.",
|
||
"templates.authoring.slots.title": "Platzhalter",
|
||
// t-paliad-315 (m/paliad#141) Composer Slice C — building blocks admin.
|
||
"admin.building_blocks.title": "Bausteine — Paliad",
|
||
"admin.building_blocks.heading": "Bausteine",
|
||
"admin.building_blocks.subtitle": "Wiederverwendbare Textbausteine für Composer-Abschnitte.",
|
||
"admin.building_blocks.loading": "Lädt…",
|
||
"admin.building_blocks.action.new": "+ Neuer Baustein",
|
||
"admin.building_blocks.editor.empty": "Wählen Sie einen Baustein aus der Liste — oder erstellen Sie einen neuen.",
|
||
// t-paliad-240 — global Schriftsätze drafts index page.
|
||
"submissions.index.title": "Schriftsätze — Paliad",
|
||
"submissions.index.heading": "Schriftsätze",
|
||
"submissions.index.subtitle": "Ihre Schriftsatz-Entwürfe über alle sichtbaren Projekte.",
|
||
"submissions.index.loading": "Lädt…",
|
||
"submissions.index.empty": "Noch keine Entwürfe. Beginnen Sie mit einem neuen Entwurf — mit oder ohne Projekt.",
|
||
"submissions.index.empty.cta": "+ Neuer Entwurf",
|
||
"submissions.index.error": "Schriftsätze konnten nicht geladen werden.",
|
||
"submissions.index.col.project": "Projekt",
|
||
"submissions.index.col.submission": "Schriftsatz",
|
||
"submissions.index.col.draft": "Entwurf",
|
||
"submissions.index.col.updated": "Zuletzt geändert",
|
||
"submissions.index.action.new": "+ Neuer Entwurf",
|
||
// t-paliad-243 — global Schriftsatz picker (/submissions/new).
|
||
"submissions.new.title": "Neuer Schriftsatz — Paliad",
|
||
"submissions.new.back": "← Zurück zur Übersicht",
|
||
"submissions.new.heading": "Neuer Schriftsatz",
|
||
"submissions.new.subtitle": "Wählen Sie eine Vorlage. Optional verknüpfen Sie den Entwurf mit einem Projekt — sonst füllen Sie alle Variablen manuell.",
|
||
"submissions.new.search.placeholder": "Suche nach Schriftsatz, Code oder Norm…",
|
||
"submissions.new.loading": "Lädt…",
|
||
"submissions.new.error": "Katalog konnte nicht geladen werden.",
|
||
"submissions.new.col.name": "Schriftsatz",
|
||
"submissions.new.col.party": "Partei",
|
||
"submissions.new.col.source": "Rechtsgrundlage",
|
||
"submissions.new.col.actions": "Entwurf starten",
|
||
"submissions.new.empty.filtered": "Keine passenden Schriftsätze. Filter zurücksetzen.",
|
||
"submissions.new.picker.title": "Projekt wählen",
|
||
"submissions.new.picker.placeholder": "Projekt suchen (Titel oder Aktenzeichen)…",
|
||
"submissions.new.picker.loading": "Lädt Projekte…",
|
||
"submissions.new.picker.empty": "Keine sichtbaren Projekte.",
|
||
"projects.detail.verlauf.empty": "Noch keine Ereignisse aufgezeichnet.",
|
||
"projects.detail.verlauf.loadMore": "Mehr laden",
|
||
// SmartTimeline (t-paliad-171, Slice 1).
|
||
"projects.detail.smarttimeline.empty": "Noch keine Ereignisse erfasst.",
|
||
"projects.detail.smarttimeline.today": "Heute",
|
||
"projects.detail.smarttimeline.section.past": "Vergangenheit",
|
||
"projects.detail.smarttimeline.section.future": "Zukunft",
|
||
"projects.detail.smarttimeline.section.undated": "Ohne Datum",
|
||
"projects.detail.smarttimeline.kind.deadline": "Frist",
|
||
"projects.detail.smarttimeline.kind.appointment": "Termin",
|
||
"projects.detail.smarttimeline.kind.milestone": "Meilenstein",
|
||
"projects.detail.smarttimeline.kind.projected": "Vorhersage",
|
||
"projects.detail.smarttimeline.status.done": "Erledigt",
|
||
"projects.detail.smarttimeline.status.open": "Offen",
|
||
"projects.detail.smarttimeline.status.overdue": "Überfällig",
|
||
"projects.detail.smarttimeline.status.court_set": "Datum vom Gericht",
|
||
"projects.detail.smarttimeline.status.predicted": "Voraussichtlich",
|
||
"projects.detail.smarttimeline.status.off_script": "Eigener Eintrag",
|
||
"projects.detail.smarttimeline.audit.toggle.show": "Audit-Log anzeigen",
|
||
"projects.detail.smarttimeline.audit.toggle.hide": "Nur Timeline-Einträge",
|
||
"projects.detail.smarttimeline.add.cta": "+ Eintrag",
|
||
"projects.detail.smarttimeline.add.modal.title": "Neuer Eintrag im SmartTimeline",
|
||
"projects.detail.smarttimeline.add.choice.deadline": "Frist anlegen",
|
||
"projects.detail.smarttimeline.add.choice.appointment": "Termin anlegen",
|
||
"projects.detail.smarttimeline.add.choice.counterclaim": "Widerklage (CCR)",
|
||
"projects.detail.smarttimeline.add.choice.amend": "Antrag auf Änderung (R.30)",
|
||
"projects.detail.smarttimeline.add.choice.milestone": "Eigener Meilenstein",
|
||
"projects.detail.smarttimeline.add.choice.disabled": "Kommt mit Slice 3",
|
||
"projects.detail.smarttimeline.add.cancel": "Abbrechen",
|
||
"projects.detail.smarttimeline.add.submit": "Speichern",
|
||
"projects.detail.smarttimeline.milestone.title": "Titel",
|
||
"projects.detail.smarttimeline.milestone.date": "Datum (optional)",
|
||
"projects.detail.smarttimeline.milestone.description": "Beschreibung (optional)",
|
||
"projects.detail.smarttimeline.error.title_required": "Bitte einen Titel angeben.",
|
||
"projects.detail.smarttimeline.error.generic": "Konnte den Eintrag nicht speichern.",
|
||
"projects.detail.smarttimeline.status.predicted_overdue": "Überfällig (vorhergesagt)",
|
||
"projects.detail.smarttimeline.lookahead.more": "+ Mehr anzeigen",
|
||
"projects.detail.smarttimeline.lookahead.less": "− Weniger",
|
||
"projects.detail.smarttimeline.depends_on.prefix": "Folgt aus",
|
||
"projects.detail.smarttimeline.depends_on.date_open": "Datum offen",
|
||
"projects.detail.smarttimeline.depends_on.show_path": "Pfad anzeigen",
|
||
"projects.detail.smarttimeline.depends_on.hide_path": "Pfad verbergen",
|
||
"projects.detail.smarttimeline.depends_on.path_hint": "Klicke die übergeordnete Zeile, um deren Abhängigkeit zu sehen.",
|
||
"projects.detail.smarttimeline.anchor.set": "Datum setzen",
|
||
"projects.detail.smarttimeline.anchor.save": "Speichern",
|
||
"projects.detail.smarttimeline.anchor.cancel": "Abbrechen",
|
||
"projects.detail.smarttimeline.anchor.saving": "Speichere …",
|
||
"projects.detail.smarttimeline.anchor.saved": "Gespeichert.",
|
||
"projects.detail.smarttimeline.anchor.error": "Konnte das Datum nicht setzen.",
|
||
"projects.detail.smarttimeline.anchor.invalid_date": "Ungültiges Datum (YYYY-MM-DD).",
|
||
"projects.detail.smarttimeline.track.label": "Track",
|
||
"projects.detail.smarttimeline.track.both": "Beide",
|
||
"projects.detail.smarttimeline.track.only.parent": "Nur Hauptverfahren",
|
||
"projects.detail.smarttimeline.track.only.counterclaim": "Nur Widerklage",
|
||
"projects.detail.smarttimeline.track.only.parent_context": "Nur Hauptverfahren (Kontext)",
|
||
"projects.detail.smarttimeline.track.header.parent": "Hauptverfahren",
|
||
"projects.detail.smarttimeline.track.header.counterclaim": "Widerklage (CCR)",
|
||
"projects.detail.smarttimeline.track.header.parent_context": "Hauptverfahren (Kontext)",
|
||
"projects.detail.smarttimeline.counterclaim.procedure": "Verfahrenstyp",
|
||
"projects.detail.smarttimeline.counterclaim.title": "Titel (optional)",
|
||
"projects.detail.smarttimeline.counterclaim.case_number": "CCR-Aktenzeichen (optional)",
|
||
"projects.detail.smarttimeline.counterclaim.flip_override": "Unsere Seite NICHT umkehren (Stimmt nicht?)",
|
||
"projects.detail.smarttimeline.counterclaim.flip_hint": "Im Standardfall (CCR-Nichtigkeit) kehrt sich unsere Seite um (Kläger ↔ Beklagter). Aktivieren bei R.49.2.b CCI.",
|
||
"projects.detail.smarttimeline.counterclaim.submit": "Widerklage anlegen",
|
||
"projects.detail.smarttimeline.counterclaim.saving": "Lege Widerklage an …",
|
||
"projects.detail.smarttimeline.lane.empty": "Keine Einträge in dieser Spur.",
|
||
"projects.detail.smarttimeline.lane.filter.label": "Spuren",
|
||
"projects.detail.smarttimeline.lane.filter.all": "Alle",
|
||
"projects.detail.smarttimeline.client.toggle.lanes": "Timeline-Ansicht",
|
||
"projects.detail.smarttimeline.client.toggle.matter_list": "Mandatsliste",
|
||
"projects.detail.smarttimeline.client.matter_list.heading": "Verfahren des Mandanten",
|
||
"projects.detail.smarttimeline.client.matter_list.hint": "Klicke ein Verfahren an, um die Detail-Timeline zu öffnen, oder schalte oben auf „Timeline-Ansicht“.",
|
||
"projects.detail.smarttimeline.client.matter_list.empty": "Noch keine Verfahren angelegt.",
|
||
"projects.detail.smarttimeline.milestone.bubble_up": "In übergeordneten Akten anzeigen",
|
||
"projects.detail.smarttimeline.milestone.bubble_up_hint": "Beim Aktivieren erscheint dieser Meilenstein auf Patent-, Verfahrens- und Mandantsicht.",
|
||
"projects.detail.team.form.user": "Benutzer",
|
||
"projects.detail.team.form.role": "Rolle",
|
||
"projects.detail.team.form.responsibility": "Rolle im Projekt",
|
||
"projects.detail.team.form.profession.label": "Profession",
|
||
"projects.detail.team.form.profession.none": "Keine Profession gesetzt \u2014 kann keine 4-Augen-Genehmigungen erteilen.",
|
||
"projects.detail.team.form.cancel": "Abbrechen",
|
||
"projects.detail.team.form.submit": "Hinzuf\u00fcgen",
|
||
"projects.detail.team.col.name": "Name",
|
||
"projects.detail.team.col.role": "Rolle",
|
||
"projects.detail.team.col.profession": "Profession",
|
||
"projects.detail.team.col.responsibility": "Rolle im Projekt",
|
||
"projects.detail.team.col.source": "Herkunft",
|
||
"projects.detail.kinder.add": "Untervorhaben anlegen",
|
||
"projects.detail.kinder.empty": "Keine untergeordneten Projekte.",
|
||
"projects.detail.parteien.add": "Partei hinzuf\u00fcgen",
|
||
"projects.detail.parteien.form.name": "Name",
|
||
"projects.detail.parteien.form.role": "Rolle",
|
||
"projects.detail.parteien.form.rep": "Vertreter (optional)",
|
||
"projects.detail.parteien.form.cancel": "Abbrechen",
|
||
"projects.detail.parteien.form.submit": "Hinzuf\u00fcgen",
|
||
"projects.detail.parteien.role.claimant": "Kl\u00e4ger",
|
||
"projects.detail.parteien.role.defendant": "Beklagter",
|
||
"projects.detail.parteien.role.thirdparty": "Streitverk\u00fcndeter / Drittpartei",
|
||
"projects.detail.parteien.col.name": "Name",
|
||
"projects.detail.parteien.col.role": "Rolle",
|
||
"projects.detail.parteien.col.rep": "Vertreter",
|
||
"projects.detail.parteien.empty": "Noch keine Parteien eingetragen.",
|
||
"projects.detail.deadlines.add": "Frist hinzuf\u00fcgen",
|
||
"projects.detail.deadlines.empty": "F\u00fcr dieses Projekt sind noch keine Fristen erfasst.",
|
||
"projects.detail.appointments.add": "Termin hinzuf\u00fcgen",
|
||
"projects.detail.appointments.form.cancel": "Abbrechen",
|
||
"projects.detail.appointments.form.submit": "Hinzuf\u00fcgen",
|
||
"projects.detail.appointments.empty": "F\u00fcr dieses Projekt sind noch keine Termine erfasst.",
|
||
"projects.detail.checklisten.empty": "F\u00fcr dieses Projekt sind noch keine Checklisten-Instanzen erfasst.",
|
||
"projects.detail.checklisten.col.template": "Vorlage",
|
||
"projects.detail.checklisten.col.name": "Name",
|
||
"projects.detail.checklisten.col.progress": "Fortschritt",
|
||
"projects.detail.checklisten.col.created": "Angelegt",
|
||
"projects.detail.checklisten.hint.prefix": "Vorlagen werden auf der ",
|
||
"projects.detail.checklisten.hint.link": "Checklisten",
|
||
"projects.detail.checklisten.hint.suffix": "-Seite angelegt und bearbeitet.",
|
||
"projects.detail.checklisten.add": "Checkliste hinzuf\u00fcgen",
|
||
"projects.detail.checklisten.add.search": "Vorlage suchen\u2026",
|
||
"projects.detail.checklisten.add.empty_pick": "Keine passenden Vorlagen gefunden.",
|
||
"projects.detail.checklisten.add.created": "Checkliste hinzugef\u00fcgt.",
|
||
"projects.detail.checklisten.add.error": "Checkliste konnte nicht angelegt werden.",
|
||
"projects.detail.delete": "Projekt archivieren",
|
||
"projects.detail.delete.confirm.title": "Projekt wirklich archivieren?",
|
||
"projects.detail.delete.confirm.body": "Das Projekt wird archiviert. Es kann nicht direkt wiederhergestellt werden.",
|
||
"projects.detail.delete.confirm.cancel": "Abbrechen",
|
||
"projects.detail.delete.confirm.ok": "Archivieren",
|
||
"projects.type.client": "Mandant",
|
||
"projects.type.litigation": "Streitsache",
|
||
"projects.type.patent": "Patent",
|
||
"projects.type.case": "Verfahren",
|
||
"projects.type.project": "Projekt",
|
||
"projects.type.other": "Sonstiges",
|
||
"projects.team.role.lead": "Leitung",
|
||
"projects.team.role.associate": "Associate",
|
||
"projects.team.role.pa": "PA",
|
||
"projects.team.role.of_counsel": "Of Counsel",
|
||
"projects.team.role.local_counsel": "Local Counsel",
|
||
"projects.team.role.expert": "Experte",
|
||
"projects.team.role.observer": "Beobachter",
|
||
"projects.team.responsibility.admin": "Admin",
|
||
"projects.team.responsibility.admin.hint": "Kann Team und Rollen auf diesem Projekt und Unterprojekten verwalten",
|
||
"projects.team.responsibility.lead": "Leitung",
|
||
"projects.team.responsibility.member": "Mitglied",
|
||
"projects.team.responsibility.observer": "Beobachter",
|
||
"projects.team.responsibility.external": "Extern",
|
||
"projects.team.error.last_admin": "Mindestens ein Admin muss auf diesem Projekt oder einem übergeordneten verbleiben.",
|
||
"projects.team.error.forbidden": "Diese Aktion ist nicht erlaubt.",
|
||
"projects.team.error.generic": "Aktion fehlgeschlagen.",
|
||
"projects.team.profession.partner": "Partner",
|
||
"projects.team.profession.of_counsel": "Of Counsel",
|
||
"projects.team.profession.associate": "Associate",
|
||
"projects.team.profession.senior_pa": "Senior PA",
|
||
"projects.team.profession.pa": "PA",
|
||
"projects.team.profession.paralegal": "Paralegal",
|
||
"projects.team.profession.none": "(extern)",
|
||
"projects.team.profession.hint": "Profession \u2014 gesetzt im Firmenprofil",
|
||
"projects.team.profession.none.hint": "Keine Profession gesetzt \u2014 keine 4-Augen-Befugnis",
|
||
"projects.team.direct": "direkt",
|
||
"projects.team.inherited.hint": "Vererbt vom \u00dcberprojekt",
|
||
"projects.detail.team.add": "Mitglied hinzuf\u00fcgen",
|
||
"projects.detail.team.remove": "Entfernen",
|
||
"projects.detail.team.confirm_remove": "Mitglied entfernen?",
|
||
"projects.detail.team.empty": "Noch keine Teammitglieder.",
|
||
"projects.detail.team.error.user_required": "Benutzer ausw\u00e4hlen",
|
||
"projects.detail.team.invite.hint": "Benutzer nicht gefunden?",
|
||
"projects.detail.team.invite.hint_email": "Niemand mit dieser E-Mail.",
|
||
"projects.detail.team.invite.cta": "Einladen",
|
||
// t-paliad-231 — pure-client mailto: button on the Team tab. No
|
||
// server call; opens the local mail client with every selected
|
||
// member queued in the To: line.
|
||
"projects.team.mailto.label": "Mail an Auswahl",
|
||
"projects.team.mailto.empty": "Mindestens ein Mitglied auswählen",
|
||
"projects.team.mailto.count": "{n} ausgewählt",
|
||
"projects.team.mailto.select_all": "Alle sichtbaren auswählen",
|
||
"projects.team.mailto.select_row": "Mitglied auswählen",
|
||
"projects.view.tree": "Baumansicht",
|
||
"projects.tree.toggle": "Aufklappen / Zuklappen",
|
||
"projects.tree.loading": "Baum wird geladen\u2026",
|
||
"projects.tree.error": "Baumansicht konnte nicht geladen werden.",
|
||
"projects.tree.deadlines.overdue": "\u00dcberf\u00e4llige Fristen",
|
||
"projects.tree.deadlines.open": "Offene Fristen",
|
||
"projects.tree.deadlines.subtree.tooltip": "Inkl. Unterprojekte",
|
||
"projects.tree.deadlines.direct.tooltip": "Nur direkt auf diesem Projekt",
|
||
"projects.tree.pin": "Anpinnen",
|
||
"projects.tree.unpin": "Pin entfernen",
|
||
"projects.tree.inherited.context": "Sichtbar wegen Unterprojekt",
|
||
"projects.toolbar.search.placeholder": "Suchen \u2014 Titel, Referenz, ClientMatter\u2026",
|
||
"projects.toolbar.view.tree": "Baum",
|
||
"projects.toolbar.view.cards": "Karten",
|
||
"projects.toolbar.view.flat": "Liste",
|
||
"projects.toolbar.subtree_counts": "Inkl. Unterprojekte z\u00e4hlen",
|
||
"projects.chip.all": "Alle",
|
||
"projects.chip.mine": "Nur meine",
|
||
"projects.chip.pinned": "Angepinnt",
|
||
"projects.chip.status": "Status",
|
||
"projects.chip.type": "Typ",
|
||
"projects.chip.has_open_deadlines": "Mit aktiven Fristen",
|
||
"projects.chip.status.active": "Aktiv",
|
||
"projects.chip.status.archived": "Archiviert",
|
||
"projects.chip.status.closed": "Abgeschlossen",
|
||
"projects.chip.type.client": "Mandant",
|
||
"projects.chip.type.litigation": "Streitsache",
|
||
"projects.chip.type.patent": "Patent",
|
||
"projects.chip.type.case": "Verfahren",
|
||
"projects.chip.type.project": "Projekt",
|
||
"projects.chip.type.other": "Sonstiges",
|
||
"projects.chip.multi.none": "Keine Auswahl",
|
||
"projects.chip.multi.count": "{n} ausgew\u00e4hlt",
|
||
"projects.empty.filtered.action": "Filter zur\u00fccksetzen",
|
||
"projects.search.match.self": "Treffer",
|
||
"projects.search.match.ancestor": "\u00dcber-Projekt eines Treffers",
|
||
"projects.search.match.descendant": "Unterprojekt eines Treffers",
|
||
"projects.cards.next_events": "N\u00e4chste Termine",
|
||
"projects.cards.recent_verlauf": "Zuletzt",
|
||
"projects.cards.no_next_events": "\u2014 keine bevorstehenden Termine",
|
||
"projects.cards.no_recent": "\u2014 noch nichts passiert",
|
||
"projects.cards.team": "Team",
|
||
"projects.cards.deadline_open": "offen",
|
||
"projects.cards.deadline_overdue": "\u00fcberf\u00e4llig",
|
||
"projects.cards.show_all_levels": "Alle Ebenen anzeigen",
|
||
"projects.cards.show_all_levels.hint": "Mandanten + Streitsachen als eigene Karten zeigen",
|
||
"projects.cards.layout.label": "Ansicht",
|
||
"projects.cards.layout.new": "Neue Ansicht",
|
||
"projects.cards.layout.edit": "Bearbeiten",
|
||
"projects.cards.layout.save": "Speichern",
|
||
"projects.cards.layout.discard": "Verwerfen",
|
||
"projects.cards.layout.set_default": "Als Standard festlegen",
|
||
"projects.cards.layout.delete": "L\u00f6schen",
|
||
"projects.cards.layout.rename": "Umbenennen",
|
||
"projects.cards.layout.is_default": "Standard",
|
||
"projects.cards.layout.new.prompt": "Name der neuen Ansicht",
|
||
"projects.cards.layout.delete.confirm": "Diese Ansicht wirklich l\u00f6schen?",
|
||
"projects.cards.layout.delete.default_blocked": "Die aktive Standardansicht kann nicht gel\u00f6scht werden \u2014 bitte zuerst eine andere Standardansicht w\u00e4hlen.",
|
||
"projects.cards.layout.fact.title-row": "Titelzeile",
|
||
"projects.cards.layout.fact.type-chip": "Typ-Badge",
|
||
"projects.cards.layout.fact.status-chip": "Status-Badge",
|
||
"projects.cards.layout.fact.client-matter": "ClientMatter",
|
||
"projects.cards.layout.fact.parent-path": "Pfad zum \u00dcberprojekt",
|
||
"projects.cards.layout.fact.deadline-counts": "Frist-Z\u00e4hler",
|
||
"projects.cards.layout.fact.next-events": "N\u00e4chste Termine",
|
||
"projects.cards.layout.fact.recent-verlauf": "Verlauf-Eintr\u00e4ge",
|
||
"projects.cards.layout.fact.team-chips": "Team-Chips",
|
||
"projects.cards.layout.fact.reference": "Referenz",
|
||
"projects.cards.layout.fact.last-activity-at": "Letzte Aktivit\u00e4t",
|
||
"projects.cards.layout.density": "Dichte",
|
||
"projects.cards.layout.density.compact": "Kompakt",
|
||
"projects.cards.layout.density.roomy": "Ger\u00e4umig",
|
||
"projects.cards.layout.grid": "Spalten",
|
||
"projects.cards.layout.grid.auto": "Auto",
|
||
"projects.cards.layout.grid.2": "2",
|
||
"projects.cards.layout.grid.3": "3",
|
||
"projects.cards.layout.grid.4": "4",
|
||
"projects.cards.layout.fact.toggle.hide": "Ausblenden",
|
||
"projects.cards.layout.fact.toggle.show": "Anzeigen",
|
||
"projects.cards.layout.fact.move_up": "Nach oben",
|
||
"projects.cards.layout.fact.move_down": "Nach unten",
|
||
"projects.cards.layout.fact.count": "Anzahl",
|
||
"projects.cards.event.kind.deadline": "Frist",
|
||
"projects.cards.event.kind.appointment": "Termin",
|
||
"projects.cards.event.kind.project_event": "Verlauf",
|
||
"projects.cards.empty": "Keine Projekte zum Anzeigen.",
|
||
"projects.detail.clientmatter.inherited": "Vom \u00dcberprojekt vererbt",
|
||
"einstellungen.profil.email": "E-Mail",
|
||
"einstellungen.profil.email.hint": "E-Mail kann nicht ge\u00e4ndert werden.",
|
||
"einstellungen.profil.display_name": "Anzeigename",
|
||
"einstellungen.profil.display_name.placeholder": "Vor- und Nachname",
|
||
"einstellungen.profil.office": "B\u00fcro",
|
||
"einstellungen.profil.job_title": "Berufsbezeichnung",
|
||
"einstellungen.profil.job_title.placeholder": "z.B. Associate, Partner, Patentanwalt",
|
||
"einstellungen.profil.lang": "Sprache",
|
||
"einstellungen.profil.lang.de": "Deutsch",
|
||
"einstellungen.profil.lang.en": "English",
|
||
"einstellungen.profil.lang.hint": "Wird f\u00fcr Oberfl\u00e4che und Benachrichtigungs-E-Mails verwendet.",
|
||
"einstellungen.profil.error.display_name": "Bitte Anzeigename eingeben.",
|
||
"einstellungen.profil.error.office": "Bitte B\u00fcro ausw\u00e4hlen.",
|
||
"einstellungen.profil.error.job_title": "Bitte Berufsbezeichnung eingeben.",
|
||
"einstellungen.prefs.reminders.heading": "Frist-Erinnerungen",
|
||
"einstellungen.prefs.reminders.hint": "Paliad sendet Erinnerungen an Ihre E-Mail, wenn Fristen f\u00e4llig werden.",
|
||
"einstellungen.prefs.reminders.master": "Frist-Erinnerungen aktiv",
|
||
"einstellungen.prefs.reminders.overdue": "\u00dcberf\u00e4llige Fristen",
|
||
"einstellungen.prefs.reminders.due_today": "Heute f\u00e4llig",
|
||
"einstellungen.prefs.reminders.due_warning": "Vorwarnung (X Tage vorher)",
|
||
"einstellungen.prefs.times.heading": "Zeitpunkte",
|
||
"einstellungen.prefs.times.hint": "Erinnerungen werden zur gew\u00e4hlten Uhrzeit in Ihrer Zeitzone versendet.",
|
||
"einstellungen.prefs.times.morning": "Morgen-Slot",
|
||
"einstellungen.prefs.times.morning.hint": "Sammel-E-Mail mit \u00fcberf\u00e4lligen, heute f\u00e4lligen und kommenden Fristen.",
|
||
"einstellungen.prefs.times.evening": "Abend-Slot (Eskalation)",
|
||
"einstellungen.prefs.times.evening.hint": "Dringende Erinnerung an heute noch offene Fristen.",
|
||
"einstellungen.prefs.times.timezone": "Zeitzone",
|
||
"einstellungen.prefs.times.timezone.hint": "IANA-Zeitzonen-Name (z.B. Europe/Berlin, Europe/London).",
|
||
"einstellungen.prefs.times.error.required": "Bitte beide Uhrzeiten ausw\u00e4hlen.",
|
||
"einstellungen.prefs.warning_offset.label": "Vorwarnung (Tage vorher)",
|
||
"einstellungen.prefs.warning_offset.hint": "Wir erinnern Sie diese viele Tage vor jeder Frist.",
|
||
"einstellungen.prefs.warning_offset.error": "Vorwarnung muss zwischen 1 und 30 Tagen liegen.",
|
||
"einstellungen.prefs.escalation.heading": "Eskalations-Kontakt",
|
||
"einstellungen.prefs.escalation.hint": "Wer soll bei DRINGEND-Eskalation am Abend zusätzlich benachrichtigt werden? Standard: globale Admins.",
|
||
"einstellungen.prefs.escalation.default_option": "— Standard (globale Admins) —",
|
||
|
||
// Invitation modal (sidebar)
|
||
"invite.button": "Kolleg:in einladen",
|
||
"invite.modal.title": "Kolleg:in zu Paliad einladen",
|
||
"invite.modal.body": `Senden Sie eine Einladung an eine ${FIRM}-E-Mail-Adresse. Die Empf\u00e4nger:in erh\u00e4lt einen Registrierungslink.`,
|
||
"invite.modal.email": "E-Mail-Adresse",
|
||
"invite.modal.message": "Pers\u00f6nliche Nachricht (optional)",
|
||
"invite.modal.message.placeholder": "Hi, ich nutze Paliad f\u00fcr die Aktenverwaltung \u2014 schau es dir mal an.",
|
||
"invite.modal.cancel": "Abbrechen",
|
||
"invite.modal.send": "Einladung senden",
|
||
|
||
"appointments.list.title": "Termine \u2014 Paliad",
|
||
"appointments.list.heading": "Termine",
|
||
"appointments.list.subtitle": "Verhandlungen, Besprechungen, Beratungen \u2014 pers\u00f6nlich oder aktenbezogen.",
|
||
"appointments.list.new": "Neuer Termin",
|
||
"appointments.summary.today": "Heute",
|
||
"appointments.summary.thisweek": "Diese Woche",
|
||
"appointments.summary.later": "Sp\u00e4ter",
|
||
"appointments.filter.type": "Typ",
|
||
"appointments.filter.type.all": "Alle Typen",
|
||
"appointments.filter.akte": "Projekt",
|
||
"appointments.filter.akte.all": "Alle Projekte & pers\u00f6nlich",
|
||
"appointments.filter.akte.personal": "Nur pers\u00f6nliche",
|
||
"appointments.filter.from": "Von",
|
||
"appointments.filter.to": "Bis",
|
||
"appointments.col.start": "Beginn",
|
||
"appointments.col.title": "Titel",
|
||
"appointments.col.akte": "Projekt",
|
||
"appointments.col.location": "Ort",
|
||
"appointments.col.type": "Typ",
|
||
"appointments.empty.title": "Keine Termine vorhanden",
|
||
"appointments.empty.hint": "Sobald Termine angelegt werden, erscheinen sie hier.",
|
||
"appointments.empty.filtered": "Keine Termine mit diesen Filtern.",
|
||
"appointments.unavailable": "Terminverwaltung zurzeit nicht verf\u00fcgbar \u2014 bitte Administrator kontaktieren.",
|
||
"appointments.personal": "Pers\u00f6nlich",
|
||
"appointments.type.hearing": "Verhandlung",
|
||
"appointments.type.meeting": "Besprechung",
|
||
"appointments.type.consultation": "Beratung",
|
||
"appointments.type.deadline_hearing": "Fristverhandlung",
|
||
"appointments.neu.title": "Neuer Termin \u2014 Paliad",
|
||
"appointments.neu.heading": "Neuer Termin",
|
||
"appointments.neu.subtitle": "Pers\u00f6nlich oder einer Akte zugeordnet. Bei aktiver CalDAV-Synchronisation erscheint der Termin auch im externen Kalender.",
|
||
"appointments.neu.back": "\u2190 Zur\u00fcck zur \u00dcbersicht",
|
||
"appointments.neu.cancel": "Abbrechen",
|
||
"appointments.neu.submit": "Termin anlegen",
|
||
"appointments.field.title": "Titel",
|
||
"appointments.field.title.placeholder": "z.B. M\u00fcndliche Verhandlung",
|
||
"appointments.field.start": "Beginn",
|
||
"appointments.field.end": "Ende (optional)",
|
||
"appointments.field.type": "Typ",
|
||
"appointments.field.type.none": "Kein Typ",
|
||
"appointments.field.akte": "Akte (optional)",
|
||
"appointments.field.akte.none": "Pers\u00f6nlicher Termin",
|
||
"appointments.field.location": "Ort (optional)",
|
||
"appointments.field.location.placeholder": "z.B. UPC LD M\u00fcnchen",
|
||
"appointments.field.description": "Beschreibung (optional)",
|
||
"appointments.field.description.placeholder": "Hinweise, Tagesordnung, n\u00e4chste Schritte\u2026",
|
||
"appointments.error.required": "Bitte Titel und Beginn ausf\u00fcllen.",
|
||
"appointments.error.generic": "Speichern fehlgeschlagen. Bitte sp\u00e4ter erneut versuchen.",
|
||
"appointments.detail.title": "Termin \u2014 Paliad",
|
||
"appointments.detail.back": "\u2190 Zur\u00fcck zur \u00dcbersicht",
|
||
"appointments.detail.loading": "L\u00e4dt\u2026",
|
||
"appointments.detail.notfound": "Termin nicht gefunden",
|
||
"appointments.detail.notfound.hint": "Der Termin existiert nicht oder Sie haben keine Berechtigung.",
|
||
"appointments.detail.akte": "Akte:",
|
||
"appointments.detail.save": "\u00c4nderungen speichern",
|
||
"appointments.detail.saved": "Gespeichert.",
|
||
"appointments.detail.delete": "Termin l\u00f6schen",
|
||
"appointments.detail.delete.confirm": "Diesen Termin wirklich l\u00f6schen?",
|
||
|
||
// t-paliad-110 \u2014 unified Events page (rendered on both /deadlines and
|
||
// /appointments). The user-facing "Fristen" / "Termine" branding stays;
|
||
// these keys cover the shared chrome (chip toggle, type chip per row,
|
||
// generic Datum column header, etc).
|
||
"events.toggle.deadline": "Fristen",
|
||
"events.toggle.appointment": "Termine",
|
||
"events.toggle.all": "Beides",
|
||
"events.filter.status.all": "Alle (auch vergangene)",
|
||
"events.filter.status.upcoming": "Ab heute",
|
||
"events.summary.later": "Sp\u00e4ter",
|
||
"events.col.date": "Datum",
|
||
"events.col.location": "Ort",
|
||
"events.col.appointment_type": "Termin-Typ",
|
||
"events.row.type.deadline": "Frist",
|
||
"events.row.type.appointment": "Termin",
|
||
"events.empty.title": "Keine Eintr\u00e4ge vorhanden",
|
||
"events.empty.hint": "Sobald Fristen oder Termine angelegt werden, erscheinen sie hier.",
|
||
"events.empty.filtered": "Keine Eintr\u00e4ge mit diesen Filtern.",
|
||
"events.unavailable": "Termin- und Fristenverwaltung zurzeit nicht verf\u00fcgbar \u2014 bitte Administrator kontaktieren.",
|
||
"events.view.cards": "Karten",
|
||
"events.view.list": "Liste",
|
||
"events.view.calendar": "Kalender",
|
||
"caldav.title": "CalDAV-Synchronisation \u2014 Paliad",
|
||
"caldav.heading": "CalDAV-Synchronisation",
|
||
"caldav.subtitle": "Synchronisieren Sie Ihre Paliad-Termine mit Ihrem externen Kalender (Nextcloud, iCloud, Outlook, mailcow\u2026). Das Passwort wird verschl\u00fcsselt gespeichert und nie zur\u00fcckgegeben.",
|
||
"caldav.disabled": "CalDAV-Synchronisation derzeit nicht verf\u00fcgbar \u2014 bitte Administrator kontaktieren.",
|
||
"caldav.never": "Noch nie",
|
||
"caldav.field.url": "CalDAV-Server-URL",
|
||
"caldav.field.url.placeholder": "https://cloud.example.com/remote.php/dav/calendars/user/personal/",
|
||
"caldav.field.url.hint": "Vollst\u00e4ndige URL zu Ihrem Kalender (inkl. Pfad).",
|
||
"caldav.field.username": "Benutzername",
|
||
"caldav.field.password": "Passwort / App-Token",
|
||
"caldav.field.password.hint": "Bei vorhandener Konfiguration leer lassen, um das gespeicherte Passwort zu behalten.",
|
||
"caldav.field.calendar_path": "Kalenderpfad (optional)",
|
||
"caldav.field.calendar_path.placeholder": "/calendars/user/personal/",
|
||
"caldav.field.calendar_path.hint": "Falls die URL nur den Server zeigt, ist hier der Pfad zum konkreten Kalender einzutragen.",
|
||
"caldav.field.enabled": "Synchronisation aktiv",
|
||
"caldav.test": "Verbindung testen",
|
||
"caldav.test.ok": "Verbindung erfolgreich.",
|
||
"caldav.test.fail": "Verbindung fehlgeschlagen",
|
||
"caldav.save": "Speichern",
|
||
"caldav.saved": "Konfiguration gespeichert.",
|
||
"caldav.delete": "Konfiguration l\u00f6schen",
|
||
"caldav.delete.confirm": "Wirklich l\u00f6schen? Das gespeicherte Passwort wird unwiderruflich entfernt.",
|
||
"caldav.delete.done": "Konfiguration gel\u00f6scht.",
|
||
"caldav.error.required": "URL und Benutzername sind erforderlich.",
|
||
"caldav.error.password_required": "Passwort ist beim ersten Speichern erforderlich.",
|
||
"caldav.error.generic": "Speichern fehlgeschlagen.",
|
||
"caldav.status.last_sync": "Letzte Synchronisation:",
|
||
"caldav.status.last_error": "Letzter Fehler:",
|
||
"caldav.log.heading": "Letzte Synchronisationen",
|
||
"caldav.log.col.time": "Zeitpunkt",
|
||
"caldav.log.col.pushed": "Gesendet",
|
||
"caldav.log.col.pulled": "Empfangen",
|
||
"caldav.log.col.duration": "Dauer",
|
||
"caldav.log.col.error": "Fehler",
|
||
"caldav.log.empty": "Noch keine Synchronisationen aufgezeichnet.",
|
||
|
||
// CalDAV multi-calendar bindings (t-paliad-212 Slice 2b)
|
||
"caldav.bindings.heading": "Kalender",
|
||
"caldav.bindings.hint": "Verbinde mehrere Kalender mit Paliad — einen Master für alles oder eigene Kalender pro Projekt.",
|
||
"caldav.bindings.add": "+ Kalender hinzufügen",
|
||
"caldav.bindings.empty": "Noch keine Kalender konfiguriert.",
|
||
"caldav.bindings.scope.all_visible": "Alles",
|
||
"caldav.bindings.scope.personal_only": "Nur persönlich",
|
||
"caldav.bindings.scope.project": "Projekt",
|
||
"caldav.bindings.card.enabled": "Aktiv",
|
||
"caldav.bindings.card.edit": "Bearbeiten",
|
||
"caldav.bindings.card.remove": "Entfernen",
|
||
"caldav.bindings.modal.add_title": "Kalender hinzufügen",
|
||
"caldav.bindings.modal.edit_title": "Kalender bearbeiten",
|
||
"caldav.bindings.modal.source": "Kalender",
|
||
"caldav.bindings.modal.source.loading": "Lädt …",
|
||
"caldav.bindings.modal.source.existing": "Vorhandenen Kalender wählen",
|
||
"caldav.bindings.modal.source.create": "Neuen Kalender erstellen",
|
||
"caldav.bindings.modal.source.custom": "Eigene URL eingeben",
|
||
"caldav.bindings.modal.source.degrade": "Dieser Anbieter erlaubt das Erstellen neuer Kalender nicht via CalDAV. Erstelle den Kalender direkt in der Anbieter-Oberfläche und füge ihn hier per URL hinzu.",
|
||
"caldav.bindings.modal.source.discover_failed": "Kalender konnten nicht ermittelt werden — eigene URL eingeben.",
|
||
"caldav.bindings.modal.source.discover_empty": "Keine Kalender gefunden — eigene URL eingeben.",
|
||
"caldav.bindings.modal.display_name": "Anzeigename (optional)",
|
||
"caldav.bindings.modal.display_name.placeholder": "z.B. Projekt Acme v Bosch",
|
||
"caldav.bindings.modal.scope": "Inhalt",
|
||
"caldav.bindings.modal.scope.all_visible": "Alles, was ich sehe",
|
||
"caldav.bindings.modal.scope.personal_only": "Nur persönliche Termine",
|
||
"caldav.bindings.modal.scope.project": "Ein Projekt:",
|
||
"caldav.bindings.modal.scope.project.loading": "Lädt …",
|
||
"caldav.bindings.modal.submit_add": "Hinzufügen",
|
||
"caldav.bindings.modal.submit_edit": "Speichern",
|
||
"caldav.bindings.delete.confirm": "Diesen Kalender wirklich entfernen? Die zugehörigen Termine werden im externen Kalender gelöscht.",
|
||
"caldav.bindings.delete.failed": "Entfernen fehlgeschlagen — bitte später erneut versuchen.",
|
||
"caldav.bindings.error.scope": "Bitte einen Inhaltsbereich wählen.",
|
||
"caldav.bindings.error.scope_project": "Bitte ein Projekt auswählen.",
|
||
"caldav.bindings.error.path": "Bitte einen Kalender wählen oder eine URL eingeben.",
|
||
"caldav.bindings.error.create_name_required": "Bitte einen Anzeigenamen eingeben.",
|
||
"caldav.bindings.error.create_name_taken": "Name bereits vergeben — bitte einen anderen Anzeigenamen wählen.",
|
||
"caldav.bindings.error.create_unsupported": "Dein Anbieter unterstützt das Erstellen neuer Kalender nicht. Bitte 'Eigene URL eingeben' verwenden.",
|
||
|
||
// Notizen (polymorphic notes — Phase I)
|
||
"notes.section.title": "Notizen",
|
||
"notes.placeholder": "Notiz hinzuf\u00fcgen\u2026",
|
||
"notes.shortcut.hint": "Strg+Enter (oder \u2318+Enter) zum Speichern",
|
||
"notes.submit": "Hinzuf\u00fcgen",
|
||
"notes.save": "Speichern",
|
||
"notes.cancel": "Abbrechen",
|
||
"notes.edit": "Bearbeiten",
|
||
"notes.delete": "L\u00f6schen",
|
||
"notes.delete.confirm": "Diese Notiz wirklich l\u00f6schen?",
|
||
"notes.empty": "Noch keine Notizen.",
|
||
"notes.edited": "bearbeitet",
|
||
"notes.unknown_author": "Unbekannt",
|
||
"notes.time.just_now": "gerade eben",
|
||
"notes.error.empty": "Notiz darf nicht leer sein.",
|
||
"notes.error.generic": "Aktion fehlgeschlagen. Bitte erneut versuchen.",
|
||
|
||
// Agenda (t-paliad-030) — unified timeline across projects
|
||
"agenda.title": "Agenda — Paliad",
|
||
"agenda.heading": "Agenda",
|
||
"agenda.subtitle": "Kommende Fristen und Termine über alle sichtbaren Akten, nach Tag gruppiert.",
|
||
"agenda.unavailable": "Agenda zurzeit nicht verfügbar — bitte Administrator kontaktieren.",
|
||
"agenda.loading": "Lädt …",
|
||
"agenda.filter.type": "Ansicht",
|
||
"agenda.filter.both": "Beides",
|
||
"agenda.filter.deadlines": "Nur Fristen",
|
||
"agenda.filter.appointments": "Nur Termine",
|
||
"agenda.filter.range": "Zeitraum",
|
||
"agenda.range.7": "7 Tage",
|
||
"agenda.range.14": "14 Tage",
|
||
"agenda.range.30": "30 Tage",
|
||
"agenda.range.90": "90 Tage",
|
||
"agenda.empty.title": "Keine Einträge im Zeitraum",
|
||
"agenda.empty.hint": "Nichts Fälliges — erweitern Sie den Zeitraum oder legen Sie neue Fristen oder Termine an.",
|
||
"agenda.label.deadline": "Frist",
|
||
"agenda.label.appointment": "Termin",
|
||
"agenda.appointment_type.hearing": "Verhandlung",
|
||
"agenda.appointment_type.meeting": "Besprechung",
|
||
"agenda.appointment_type.consultation": "Mandantentermin",
|
||
"agenda.appointment_type.deadline_hearing": "Fristentermin",
|
||
"agenda.day.today": "Heute",
|
||
"agenda.day.tomorrow": "Morgen",
|
||
"agenda.day.mo": "Mo",
|
||
"agenda.day.di": "Di",
|
||
"agenda.day.mi": "Mi",
|
||
"agenda.day.do": "Do",
|
||
"agenda.day.fr": "Fr",
|
||
"agenda.day.sa": "Sa",
|
||
"agenda.day.so": "So",
|
||
"agenda.urgency.overdue": "Überfällig",
|
||
"agenda.urgency.today": "Heute",
|
||
"agenda.urgency.tomorrow": "Morgen",
|
||
"agenda.urgency.this_week": "Diese Woche",
|
||
"agenda.urgency.later": "Später",
|
||
|
||
// Team directory (t-paliad-029)
|
||
"team.title": "Team — Paliad",
|
||
"team.heading": "Team",
|
||
"team.subtitle": "Alle Paliad-Kolleg:innen, gruppiert nach Standort oder Partner Unit.",
|
||
"team.search.placeholder": "Nach Name, Rolle, Büro suchen…",
|
||
"team.group.office": "Nach Standort",
|
||
"team.group.department": "Nach Partner Unit",
|
||
"team.group.other": "Sonstige",
|
||
"team.filter.all": "Alle",
|
||
"team.filter.role": "Rolle",
|
||
"team.role.partner": "Partner",
|
||
"team.role.counsel": "Counsel",
|
||
"team.role.counsel_knowledge_lawyer": "Counsel Knowledge Lawyer",
|
||
"team.role.senior_associate": "Senior Associate",
|
||
"team.role.associate": "Associate",
|
||
"team.role.junior_associate": "Junior Associate",
|
||
"team.role.trainee": "Trainee",
|
||
"team.role.pa": "PA",
|
||
"team.role.paralegal": "Paralegal",
|
||
"team.role.secretary": "Sekretär:in",
|
||
"team.empty": "Keine Treffer.",
|
||
"team.dept.lead": "Lead",
|
||
"team.dept.unassigned": "Ohne Partner Unit",
|
||
"team.partner_unit.unassigned": "Ohne Partner Unit",
|
||
// Project filter (t-paliad-147)
|
||
"team.filter.project": "Projekt",
|
||
"team.filter.project.all": "Alle Projekte",
|
||
"team.filter.project.selected": "ausgewählt",
|
||
"team.filter.project.clear": "Alle abwählen",
|
||
// Click-to-select (t-paliad-223 #53). Layered ON TOP of the existing
|
||
// filter pills — selection is an explicit subset of the visible set,
|
||
// pruned on filter change, wiped on page navigation.
|
||
"team.selection.count": "{n} ausgewählt",
|
||
"team.selection.clear": "Auswahl aufheben",
|
||
"team.selection.send": "E-Mail an Auswahl",
|
||
"team.selection.select_all": "Alle sichtbaren auswählen",
|
||
"team.selection.toggle_card": "Kontakt auswählen",
|
||
// Broadcast modal (t-paliad-147)
|
||
"team.broadcast.button": "E-Mail an Auswahl",
|
||
"team.broadcast.title": "E-Mail an Auswahl",
|
||
"team.broadcast.recipients": "Empfänger",
|
||
"team.broadcast.show_all": "Alle anzeigen",
|
||
"team.broadcast.mailto.label": "Im Mail-Client öffnen",
|
||
"team.broadcast.mailto.tooltip": "Öffnet den lokalen Mail-Client mit allen Empfängern in der To-Zeile",
|
||
"team.broadcast.template": "Vorlage",
|
||
"team.broadcast.template_optional": "optional",
|
||
"team.broadcast.template_freeform": "Freitext",
|
||
"team.broadcast.template.invitation": "Einladung",
|
||
"team.broadcast.template.deadline_digest": "Frist-Digest",
|
||
"team.broadcast.subject": "Betreff",
|
||
"team.broadcast.body": "Nachricht",
|
||
"team.broadcast.body_placeholder": "Hallo {{first_name}}, …",
|
||
"team.broadcast.placeholders_hint": "Platzhalter: {{name}}, {{first_name}}, {{role_on_project}}",
|
||
"team.broadcast.markdown_hint": "Markdown unterstützt: **fett**, *kursiv*, [Link](https://...), - Aufzählung.",
|
||
"team.broadcast.send": "Senden",
|
||
"team.broadcast.sending": "Sende…",
|
||
"team.broadcast.sent": "Versandt",
|
||
"team.broadcast.success": "{sent} von {total} Mails versandt ({failed} fehlgeschlagen).",
|
||
"team.broadcast.error.no_recipients": "Keine Empfänger ausgewählt.",
|
||
"team.broadcast.error.too_many": "Empfängerlimit ({cap}) überschritten.",
|
||
"team.broadcast.error.subject_required": "Betreff ist erforderlich.",
|
||
"team.broadcast.error.body_required": "Nachricht ist erforderlich.",
|
||
"common.close": "Schließen",
|
||
// Admin broadcasts viewer (t-paliad-147)
|
||
"admin.broadcasts.title": "Broadcasts — Paliad",
|
||
"admin.broadcasts.heading": "Broadcasts",
|
||
"admin.broadcasts.subtitle": "Versendete Massen-E-Mails an Teamauswahlen.",
|
||
"admin.broadcasts.col.sent_at": "Gesendet",
|
||
"admin.broadcasts.col.subject": "Betreff",
|
||
"admin.broadcasts.col.sender": "Absender:in",
|
||
"admin.broadcasts.col.count": "Empfänger",
|
||
"admin.broadcasts.loading": "Lade…",
|
||
"admin.broadcasts.empty": "Noch keine Broadcasts versandt.",
|
||
"admin.broadcasts.detail.sent_by": "Gesendet von",
|
||
"admin.broadcasts.detail.delivered": "versandt",
|
||
"admin.broadcasts.detail.failed": "fehlgeschlagen",
|
||
"admin.broadcasts.detail.recipients": "Empfänger",
|
||
|
||
// t-paliad-146: Paliadin in-app AI buddy (PoC)
|
||
"paliadin.title": "Paliadin — Paliad",
|
||
"paliadin.heading": "✨ Paliadin",
|
||
"paliadin.tagline": "Ich kenne deine Akten und Paliads Wissensbasis.",
|
||
"paliadin.empty": "Was kann ich für dich tun?",
|
||
"paliadin.starter.today": "Was steht heute an?",
|
||
"paliadin.starter.week": "Welche Fristen sind diese Woche fällig?",
|
||
"paliadin.starter.concept": "Erkläre mir Klageerwiderung.",
|
||
"paliadin.input.placeholder": "Frag den Paliadin…",
|
||
"paliadin.send": "Senden",
|
||
"paliadin.stop": "Stop",
|
||
"paliadin.reset": "Neue Unterhaltung",
|
||
"paliadin.error.local_only": "Paliadin läuft nur lokal. Diese Instanz hat kein tmux/claude installiert — lokal mit ./paliad starten.",
|
||
"paliadin.error.mriver_unreachable": "mRiver ist offline — Paliadin nicht erreichbar. Mach mRiver an, oder nutze Paliadin lokal mit ./paliad.",
|
||
"paliadin.error.shim_auth_failed": "Paliadin-Authentifizierung fehlgeschlagen. SSH-Schlüssel oder Berechtigung auf mRiver prüfen.",
|
||
"paliadin.error.shim_error": "Paliadin-Fehler auf mRiver. tmux/claude-Pane prüfen.",
|
||
"paliadin.error.timeout": "Paliadin antwortet nicht (Timeout 60s). Nochmal versuchen.",
|
||
"paliadin.error.connection_lost": "Verbindung verloren.",
|
||
"paliadin.error.upstream": "Fehler beim Senden.",
|
||
"paliadin.error.upstream_silence": "Paliadin meldet sich nicht mehr — Verbindung wird beendet.",
|
||
"paliadin.late.waiting": "Antwort wird nachgereicht, sobald sie eintrifft …",
|
||
"paliadin.late.checking": "Verbindung verloren — Paliadin denkt vielleicht noch. Lade frische Antwort …",
|
||
"paliadin.late.lost": "Antwort konnte nicht zugestellt werden — bitte Frage erneut stellen.",
|
||
"paliadin.late.marker": "verspätet",
|
||
"paliadin.thinking": "Paliadin denkt nach",
|
||
"paliadin.thinking.seconds": "{seconds}s",
|
||
"paliadin.widget.title": "Paliadin",
|
||
"paliadin.widget.trigger": "Paliadin (Cmd+J)",
|
||
"paliadin.widget.empty": "Was kann ich für dich tun?",
|
||
"paliadin.widget.input.placeholder": "Frage an Paliadin...",
|
||
"paliadin.widget.input.label": "Nachricht an Paliadin",
|
||
"paliadin.widget.send": "Senden",
|
||
"paliadin.widget.reset": "Konversation zurücksetzen",
|
||
"paliadin.widget.reset.confirm": "Konversation hier und auf dem Server zurücksetzen?",
|
||
"paliadin.widget.fullscreen": "Vollbild-Modus",
|
||
"paliadin.widget.close": "Schließen",
|
||
"paliadin.widget.context.on_page": "Auf dieser Seite",
|
||
"approvals.agent.label": "Paliadin hat das vorgeschlagen",
|
||
"approvals.agent.byline": "Paliadin",
|
||
"approvals.agent.suggestion_pending": "Vorschlag wartet auf deine Genehmigung",
|
||
"nav.admin.paliadin": "Paliadin Monitor",
|
||
"admin.paliadin.title": "Paliadin Monitor — Paliad",
|
||
"admin.paliadin.heading": "Paliadin Monitor",
|
||
"admin.paliadin.subtitle": "Wie wird Paliadin tatsächlich verwendet?",
|
||
"admin.paliadin.total": "Gesamt",
|
||
"admin.paliadin.last7": "Letzte 7 Tage",
|
||
"admin.paliadin.median_dur": "Median Dauer",
|
||
"admin.paliadin.tool_rate": "Tool-Use Rate",
|
||
"admin.paliadin.abandon_rate": "Abbruchrate",
|
||
"admin.paliadin.classifier_heading": "Anfragearten",
|
||
"admin.paliadin.daily_heading": "Tägliche Nutzung",
|
||
"admin.paliadin.top_heading": "Top Anfragen",
|
||
"admin.paliadin.recent_heading": "Letzte Anfragen",
|
||
"admin.paliadin.col.prompt": "Anfrage",
|
||
"admin.paliadin.col.count": "Anzahl",
|
||
"admin.paliadin.col.started": "Zeit",
|
||
"admin.paliadin.col.user": "Nutzer",
|
||
"admin.paliadin.col.classifier": "Art",
|
||
"admin.paliadin.col.response": "Antwort",
|
||
"admin.paliadin.col.tools": "Tools",
|
||
"admin.paliadin.col.origin": "Seite",
|
||
"admin.paliadin.col.duration": "Dauer",
|
||
"admin.paliadin.loading": "Lade…",
|
||
|
||
"common.forbidden": "Zugriff verweigert.",
|
||
"common.load_error": "Fehler beim Laden.",
|
||
"common.loading": "Lade…",
|
||
"partner_unit.heading": "Meine Partner Units",
|
||
"partner_unit.subtitle": "Partner Units sind strukturelle Einheiten — getrennt von Projektteams. Mitgliedschaft wird vom Admin verwaltet.",
|
||
"partner_unit.none": "Sie sind noch keiner Partner Unit zugeordnet.",
|
||
"partner_unit.members_label": "Mitglieder",
|
||
|
||
// Admin team management (t-paliad-050)
|
||
"nav.group.admin": "Admin",
|
||
"nav.admin.bereich": "Admin-Bereich",
|
||
"nav.admin.team": "Team-Verwaltung",
|
||
"admin.title": "Admin-Bereich — Paliad",
|
||
"admin.heading": "Admin-Bereich",
|
||
"admin.subtitle": "Werkzeuge zur Verwaltung von Paliad. Nur für Administrator:innen sichtbar.",
|
||
"admin.section.available": "Verfügbar",
|
||
"admin.section.planned": "Geplant",
|
||
"admin.coming_soon": "Kommt bald",
|
||
"admin.card.team.title": "Team-Verwaltung",
|
||
"admin.card.team.desc": "Benutzer:innen anlegen, bearbeiten, löschen.",
|
||
"admin.card.partner_units.title": "Partner Units",
|
||
"admin.card.partner_units.desc": "Strukturelle Partnereinheiten anlegen und Mitglieder zuordnen.",
|
||
"admin.card.audit.title": "Audit-Log",
|
||
"admin.card.audit.desc": "Wer hat wann was geändert? Nachvollziehbarkeit für sicherheitsrelevante Aktionen.",
|
||
"admin.card.email_templates.title": "Email-Templates",
|
||
"admin.card.email_templates.desc": "Vorlagen für Einladungen, Erinnerungen und Layout anpassen.",
|
||
"admin.card.feature_flags.title": "Feature-Flags",
|
||
"admin.card.feature_flags.desc": "Funktionen pro Standort, Partner Unit oder Rolle aktivieren.",
|
||
"admin.card.broadcasts.title": "Broadcasts",
|
||
"admin.card.broadcasts.desc": "Versendete Massen-E-Mails an Teamauswahlen einsehen.",
|
||
"admin.card.approval_policies.title": "Genehmigungspflichten",
|
||
"admin.card.approval_policies.desc": "4-Augen-Prüfung pro Projekt und Partner Unit konfigurieren.",
|
||
"admin.approval_policies.title": "Genehmigungspflichten — Paliad",
|
||
"admin.approval_policies.heading": "Genehmigungspflichten",
|
||
"admin.approval_policies.subtitle": "4-Augen-Prüfung pro Projekt und Partner Unit konfigurieren.",
|
||
"admin.approval_policies.loading": "Lädt …",
|
||
"admin.approval_policies.section.units": "Partner-Unit-Standards",
|
||
"admin.approval_policies.section.units.hint": "Standardregeln, die jedes Projekt erbt, das einer Partner Unit zugeordnet ist. Bei mehreren Partner Units gewinnt die strengste Regel.",
|
||
"admin.approval_policies.section.projects": "Projekt-spezifisch",
|
||
"admin.approval_policies.section.projects.hint": "Eigene Regeln für ein Projekt. Überschreiben Standards aus Partner Units und geerbte Projektregeln.",
|
||
"admin.approval_policies.units.empty": "Keine Partner Units vorhanden.",
|
||
"admin.approval_policies.picker.label": "Projekt wählen",
|
||
"admin.approval_policies.picker.placeholder": "Suchen…",
|
||
"admin.approval_policies.picker.no_results": "Keine Treffer.",
|
||
"admin.approval_policies.entity.deadline": "Fristen",
|
||
"admin.approval_policies.entity.appointment": "Termine",
|
||
"admin.approval_policies.lifecycle.create": "Erstellen",
|
||
"admin.approval_policies.lifecycle.update": "Ändern",
|
||
"admin.approval_policies.lifecycle.complete": "Erledigen",
|
||
"admin.approval_policies.lifecycle.delete": "Löschen",
|
||
"admin.approval_policies.role.partner": "Partner",
|
||
"admin.approval_policies.role.of_counsel": "Of Counsel",
|
||
"admin.approval_policies.role.associate": "Associate",
|
||
"admin.approval_policies.role.senior_pa": "Senior PA",
|
||
"admin.approval_policies.role.pa": "PA",
|
||
"admin.approval_policies.role.none": "Keine Genehmigung",
|
||
"admin.approval_policies.role.no_rule": "— keine Regel —",
|
||
"admin.approval_policies.source.project": "Projekt",
|
||
"admin.approval_policies.source.ancestor": "Geerbt",
|
||
"admin.approval_policies.source.unit_default": "Standard",
|
||
"admin.approval_policies.source.no_approval": "keine Genehmigung",
|
||
"admin.approval_policies.cell.requires": "Genehmigung erforderlich",
|
||
"admin.approval_policies.cell.clear": "—",
|
||
"admin.approval_policies.cell.clear.title": "Regel zurücksetzen (erben)",
|
||
"admin.approval_policies.cell.saved_msg": "Gespeichert.",
|
||
"admin.approval_policies.cell.error_msg": "Fehler",
|
||
"admin.approval_policies.bulk.cta": "Auf Unterprojekte anwenden",
|
||
"admin.approval_policies.bulk.no_descendants": "Keine Unterprojekte vorhanden.",
|
||
"admin.approval_policies.bulk.modal.title": "Auf Unterprojekte anwenden",
|
||
"admin.approval_policies.bulk.modal.body": "Die folgenden Unterprojekte erhalten die effektive Matrix dieses Projekts als projektspezifische Regeln. Bestehende projektspezifische Regeln werden überschrieben. Standards aus Partner Units bleiben unberührt.",
|
||
"admin.approval_policies.bulk.modal.cancel": "Abbrechen",
|
||
"admin.approval_policies.bulk.modal.confirm": "Übernehmen",
|
||
"admin.approval_policies.bulk.modal.applying": "Übernehme …",
|
||
"admin.approval_policies.bulk.modal.done": "Übernommen",
|
||
"admin.approval_policies.bulk.modal.writes_label": "Schreibvorgänge",
|
||
"admin.approval_policies.bulk.modal.targets_label": "Projekte",
|
||
"inbox.empty.admin_nudge.title": "Noch keine Genehmigungspflichten konfiguriert?",
|
||
"inbox.empty.admin_nudge.body": "Lege fest, welche Lifecycle-Events 4-Augen-Prüfung erfordern.",
|
||
"inbox.empty.admin_nudge.cta": "Genehmigungspflichten konfigurieren",
|
||
"inbox.title.feed": "Inbox — Paliad",
|
||
"inbox.heading.feed": "Inbox",
|
||
"inbox.subtitle.feed": "Neuigkeiten zu Ihren Projekten und offene Genehmigungen.",
|
||
"inbox.action.mark_all_seen": "Alles als gelesen markieren",
|
||
"inbox.action.open": "Öffnen",
|
||
"inbox.empty.feed": "Keine Neuigkeiten in den letzten 30 Tagen.",
|
||
"views.bar.label.unread_only": "Lesestatus",
|
||
"views.bar.unread_only.on": "Nur ungelesen",
|
||
"views.bar.unread_only.off": "Alle",
|
||
"views.bar.label.inbox_focus": "Anzeigen",
|
||
"views.bar.inbox_focus.alles": "Alles",
|
||
"views.bar.inbox_focus.genehmigungen": "Nur Genehmigungen",
|
||
"views.bar.inbox_focus.plus_termine": "+ Termine",
|
||
"views.bar.inbox_focus.plus_fristen": "+ Fristen",
|
||
"deadlines.form.approval_hint": "4-Augen-Prüfung erforderlich",
|
||
"appointments.form.approval_hint": "4-Augen-Prüfung erforderlich",
|
||
"admin.email_templates.title": "Email-Templates — Paliad",
|
||
"admin.email_templates.heading": "Email-Templates",
|
||
"admin.email_templates.subtitle": "Vorlagen für Einladungen, Erinnerungen und das Layout-Wrapper anpassen.",
|
||
"admin.email_templates.loading": "Lade…",
|
||
"admin.email_templates.load_error": "Templates konnten nicht geladen werden.",
|
||
"admin.email_templates.back": "← Zurück zur Liste",
|
||
"admin.email_templates.lang.de": "Deutsch",
|
||
"admin.email_templates.lang.en": "Englisch",
|
||
"admin.email_templates.status.default": "Standard",
|
||
"admin.email_templates.status.last_modified": "Zuletzt geändert: {date}",
|
||
"admin.email_templates.card.invitation.title": "Einladung",
|
||
"admin.email_templates.card.invitation.desc": "E-Mail an neue Kolleg:innen, ausgelöst über die Sidebar.",
|
||
"admin.email_templates.card.deadline_digest.title": "Fristen-Sammelmail",
|
||
"admin.email_templates.card.deadline_digest.desc": "Tägliche Morgen- und Abend-Mail mit überfälligen, heute fälligen und kommenden Fristen.",
|
||
"admin.email_templates.card.base.title": "Layout-Wrapper",
|
||
"admin.email_templates.card.base.desc": "Geteilter HTML-Rahmen mit Header und Footer, der alle E-Mails umschliesst.",
|
||
"admin.email_templates.editor.title": "Email-Template bearbeiten — Paliad",
|
||
"admin.email_templates.editor.heading": "Email-Template bearbeiten",
|
||
"admin.email_templates.editor.heading_for": "{title} — {lang}",
|
||
"admin.email_templates.editor.is_default": "Aktuell wird der Standard verwendet.",
|
||
"admin.email_templates.editor.last_modified": "Zuletzt geändert: {date}",
|
||
"admin.email_templates.editor.subject": "Betreff",
|
||
"admin.email_templates.editor.body": "HTML-Body",
|
||
"admin.email_templates.editor.note_optional": "Notiz (optional)",
|
||
"admin.email_templates.editor.note_placeholder": "z.B. Korrektur nach Anwalts-Feedback",
|
||
"admin.email_templates.editor.variables": "Verfügbare Variablen",
|
||
"admin.email_templates.editor.preview": "Vorschau",
|
||
"admin.email_templates.editor.preview_refresh": "Vorschau aktualisieren",
|
||
"admin.email_templates.editor.preview_error": "Vorschau fehlgeschlagen.",
|
||
"admin.email_templates.editor.parse_error": "Template-Fehler:",
|
||
"admin.email_templates.editor.save": "Speichern",
|
||
"admin.email_templates.editor.save_ok": "Gespeichert.",
|
||
"admin.email_templates.editor.save_error": "Speichern fehlgeschlagen.",
|
||
"admin.email_templates.editor.reset": "Auf Standard zurücksetzen",
|
||
"admin.email_templates.editor.reset_confirm": "Wirklich auf den Standard zurücksetzen?",
|
||
"admin.email_templates.editor.reset_ok": "Auf Standard zurückgesetzt.",
|
||
"admin.email_templates.editor.reset_error": "Zurücksetzen fehlgeschlagen.",
|
||
"admin.email_templates.editor.versions": "Versionen",
|
||
"admin.email_templates.editor.versions_empty": "Keine Versionen.",
|
||
"admin.email_templates.editor.restore": "Wiederherstellen",
|
||
"admin.email_templates.editor.restore_confirm": "Diese Version wiederherstellen?",
|
||
"admin.email_templates.editor.restore_ok": "Version wiederhergestellt.",
|
||
"admin.email_templates.editor.restore_error": "Wiederherstellen fehlgeschlagen.",
|
||
"admin.email_templates.editor.dirty_warn": "Ungespeicherte Änderungen verwerfen?",
|
||
"admin.email_templates.editor.unknown_key": "Unbekannter Template-Schlüssel.",
|
||
"admin.email_templates.editor.slot.morning": "Morgen-Slot",
|
||
"admin.email_templates.editor.slot.evening": "Abend-Slot",
|
||
"admin.team.title": "Team-Verwaltung — Paliad",
|
||
"admin.team.heading": "Team-Verwaltung",
|
||
"admin.team.subtitle": "Alle Paliad-Konten anzeigen, bearbeiten oder hinzufügen.",
|
||
"admin.team.search.placeholder": "Nach Name oder E-Mail suchen…",
|
||
"admin.team.add.full": "Konto direkt anlegen",
|
||
"admin.team.add.direct": "Bestehendes Konto onboarden",
|
||
"admin.team.add.invite": "Neue:n Kolleg:in einladen",
|
||
"admin.team.add_full.title": "Konto direkt anlegen",
|
||
"admin.team.add_full.body": "Legt sowohl das Login-Konto als auch das Paliad-Profil an. Die neue Person erhält eine E-Mail mit einem Link, über den sie ein Passwort setzt.",
|
||
"admin.team.add_full.email": "E-Mail",
|
||
"admin.team.add_full.name": "Anzeigename",
|
||
"admin.team.add_full.office": "Standort",
|
||
"admin.team.add_full.profession": "Profession",
|
||
"admin.team.add_full.job_title": "Berufsbezeichnung",
|
||
"admin.team.add_full.lang": "Sprache",
|
||
"admin.team.add_full.send_welcome": "Willkommens-E-Mail mit Login-Link senden",
|
||
"admin.team.add_full.cancel": "Abbrechen",
|
||
"admin.team.add_full.submit": "Anlegen",
|
||
"admin.team.add_full.feedback.added": "Konto angelegt.",
|
||
"admin.team.add_full.error.unavailable": "Add-User-Pfad ist nicht konfiguriert (SUPABASE_SERVICE_ROLE_KEY fehlt am Server).",
|
||
"admin.team.add_full.error.email_exists": "Es existiert bereits ein Konto für diese E-Mail — bitte 'Bestehendes Konto onboarden' verwenden.",
|
||
"admin.team.add_full.error.generic": "Konto konnte nicht angelegt werden.",
|
||
"admin.team.loading": "Lade…",
|
||
"admin.team.empty": "Keine Treffer.",
|
||
"admin.team.error.forbidden": "Zugriff nur für Admins.",
|
||
"admin.team.col.name": "Name",
|
||
"admin.team.col.email": "E-Mail",
|
||
"admin.team.col.office": "Standort",
|
||
"admin.team.col.job_title": "Berufsbezeichnung",
|
||
"admin.team.col.profession": "Profession",
|
||
"admin.team.col.profession.none": "(extern)",
|
||
"admin.team.col.profession.none.hint": "Keine Profession gesetzt — keine 4-Augen-Befugnis.",
|
||
"admin.team.col.permission": "Berechtigung",
|
||
"admin.team.col.additional": "Weitere Standorte",
|
||
"admin.team.col.lang": "Sprache",
|
||
"admin.team.col.created": "Angelegt",
|
||
"admin.team.col.actions": "Aktionen",
|
||
"admin.team.row.edit": "Bearbeiten",
|
||
"admin.team.row.delete": "Löschen",
|
||
"admin.team.row.save": "Speichern",
|
||
"admin.team.row.cancel": "Abbrechen",
|
||
"admin.team.confirm.delete": "{name} wirklich löschen? Diese Aktion ist endgültig.",
|
||
"admin.team.feedback.saved": "Gespeichert.",
|
||
"admin.team.feedback.deleted": "Gelöscht.",
|
||
"admin.team.feedback.added": "Konto onboardet.",
|
||
"admin.team.direct_add.title": "Bestehendes Konto onboarden",
|
||
"admin.team.direct_add.body": "Diese Auswahl zeigt Konten, die sich angemeldet haben, aber noch kein Profil ausgefüllt haben.",
|
||
"admin.team.direct_add.email": "E-Mail",
|
||
"admin.team.direct_add.email.placeholder": "Bitte auswählen…",
|
||
"admin.team.direct_add.empty": "Keine offenen Konten.",
|
||
"admin.team.direct_add.name": "Anzeigename",
|
||
"admin.team.direct_add.office": "Standort",
|
||
"admin.team.direct_add.job_title": "Berufsbezeichnung",
|
||
"admin.team.permission.standard": "Standard",
|
||
"admin.team.permission.global_admin": "Globaler Admin",
|
||
"admin.team.permission.last_admin": "Der letzte globale Admin kann nicht degradiert werden.",
|
||
"admin.team.direct_add.cancel": "Abbrechen",
|
||
"admin.team.direct_add.submit": "Anlegen",
|
||
|
||
// Admin audit log (t-paliad-071)
|
||
"nav.admin.audit": "Audit-Log",
|
||
"nav.admin.partner_units": "Partner Units",
|
||
|
||
// Admin Backup Mode (t-paliad-246 / m/paliad#77)
|
||
"nav.admin.backups": "Backups",
|
||
"admin.backups.title": "Backups — Paliad",
|
||
"admin.backups.heading": "Backups",
|
||
"admin.backups.subtitle": "Vollständige Snapshots aller Daten — manuell oder zeitgesteuert.",
|
||
"admin.backups.run_now": "Backup jetzt erstellen",
|
||
"admin.backups.running": "Läuft …",
|
||
"admin.backups.success": "Backup erfolgreich erstellt.",
|
||
"admin.backups.empty": "Noch keine Backups vorhanden.",
|
||
"admin.backups.loading": "Lade …",
|
||
"admin.backups.col.started": "Erstellt",
|
||
"admin.backups.col.kind": "Auslöser",
|
||
"admin.backups.col.status": "Status",
|
||
"admin.backups.col.requested_by": "Angefordert von",
|
||
"admin.backups.col.size": "Größe",
|
||
"admin.backups.col.rows": "Sheets",
|
||
"admin.backups.col.actions": "Aktion",
|
||
"admin.backups.kind.scheduled": "Geplant",
|
||
"admin.backups.kind.on_demand": "Manuell",
|
||
"admin.backups.status.running": "Läuft …",
|
||
"admin.backups.status.done": "✓ Fertig",
|
||
"admin.backups.status.failed": "✗ Fehlgeschlagen",
|
||
"admin.backups.download": "Download",
|
||
"admin.backups.footer.note": "Geplante Backups werden in einer späteren Slice aktiviert. Manuelle Backups stehen jetzt zur Verfügung.",
|
||
"admin.audit.title": "Audit-Log — Paliad",
|
||
"admin.audit.heading": "Audit-Log",
|
||
"admin.audit.subtitle": "Globale Zeitleiste über Projekt-, CalDAV-, Reminder- und Partner-Unit-Ereignisse.",
|
||
"admin.audit.source.partner_unit_events": "Partner Units",
|
||
"admin.partner_units.title": "Partner Units — Paliad",
|
||
"admin.partner_units.heading": "Partner Units",
|
||
"admin.partner_units.subtitle": "Strukturelle Partnereinheiten verwalten und Mitglieder zuordnen.",
|
||
"admin.partner_units.loading": "Lade…",
|
||
"admin.partner_units.empty": "Noch keine Partner Units angelegt.",
|
||
"admin.partner_units.new": "Neue Partner Unit",
|
||
"admin.partner_units.new.heading": "Partner Unit anlegen",
|
||
"admin.partner_units.edit.heading": "Partner Unit bearbeiten",
|
||
"admin.partner_units.create": "Speichern",
|
||
"admin.partner_units.cancel": "Abbrechen",
|
||
"admin.partner_units.col.name": "Name",
|
||
"admin.partner_units.col.office": "Büro",
|
||
"admin.partner_units.col.lead": "Lead",
|
||
"admin.partner_units.col.members": "Mitglieder",
|
||
"admin.partner_units.col.actions": "Aktionen",
|
||
"admin.partner_units.action.members": "Mitglieder",
|
||
"admin.partner_units.action.edit": "Bearbeiten",
|
||
"admin.partner_units.action.delete": "Löschen",
|
||
"admin.partner_units.confirm_delete": "Partner Unit \"{name}\" wirklich löschen?",
|
||
"admin.partner_units.error.name_required": "Name erforderlich",
|
||
"admin.partner_units.error.user_required": "Benutzer auswählen",
|
||
"admin.partner_units.feedback.created": "Angelegt.",
|
||
"admin.partner_units.feedback.updated": "Aktualisiert.",
|
||
"admin.partner_units.feedback.deleted": "Gelöscht.",
|
||
"admin.partner_units.feedback.role_updated": "Rolle aktualisiert.",
|
||
"admin.partner_units.member.heading": "Mitglieder verwalten",
|
||
"admin.partner_units.member.empty": "Noch keine Mitglieder.",
|
||
"admin.partner_units.member.add": "Mitglied hinzufügen",
|
||
"admin.partner_units.member.add_btn": "Hinzufügen",
|
||
"admin.partner_units.member.remove": "Entfernen",
|
||
"admin.partner_units.member.confirm_remove": "Mitglied entfernen?",
|
||
"admin.partner_units.member.placeholder": "Name oder E-Mail",
|
||
"admin.partner_units.member.role": "Rolle",
|
||
"admin.audit.loading": "Lade…",
|
||
"admin.audit.empty": "Keine Ereignisse für die gewählten Filter.",
|
||
"admin.audit.loadmore": "Weitere laden",
|
||
"admin.audit.error.forbidden": "Zugriff nur für Admins.",
|
||
"admin.audit.error.unavailable": "Audit-Service nicht verfügbar.",
|
||
"admin.audit.search.placeholder": "Subjekt, Beschreibung, Ereignistyp …",
|
||
"admin.audit.filter.source": "Quelle",
|
||
"admin.audit.filter.range": "Zeitraum",
|
||
"admin.audit.filter.from": "Von",
|
||
"admin.audit.filter.to": "Bis",
|
||
"admin.audit.filter.search": "Suche",
|
||
"admin.audit.range.24h": "Letzte 24h",
|
||
"admin.audit.range.7d": "Letzte 7 Tage",
|
||
"admin.audit.range.30d": "Letzte 30 Tage",
|
||
"admin.audit.range.custom": "Benutzerdefiniert",
|
||
"admin.audit.range.all": "Alles",
|
||
"admin.audit.source.all": "Alle Quellen",
|
||
"admin.audit.source.project_events": "Projekt-Ereignisse",
|
||
"admin.audit.source.caldav_sync_log": "CalDAV-Sync",
|
||
"admin.audit.source.reminder_log": "Reminder",
|
||
"admin.audit.col.time": "Zeit",
|
||
"admin.audit.col.source": "Quelle",
|
||
"admin.audit.col.event": "Ereignis",
|
||
"admin.audit.col.actor": "Akteur",
|
||
"admin.audit.col.subject": "Subjekt",
|
||
"admin.audit.col.description": "Beschreibung",
|
||
"admin.audit.event.caldav_synced": "CalDAV-Sync erfolgreich",
|
||
"admin.audit.event.caldav_sync_error": "CalDAV-Sync-Fehler",
|
||
"admin.audit.event.morning_digest": "Morgen-Digest gesendet",
|
||
"admin.audit.event.evening_digest": "Abend-Digest gesendet",
|
||
"admin.audit.event.deadline_reminder": "Fristerinnerung gesendet",
|
||
"admin.audit.event.due_today": "Fälligkeits-Erinnerung gesendet",
|
||
"admin.audit.event.weekly": "Wochen-Digest gesendet",
|
||
|
||
// Not-found (404) page
|
||
"notfound.title": "Seite nicht gefunden — Paliad",
|
||
"notfound.heading": "Seite nicht gefunden",
|
||
"notfound.lede": "Diese Seite existiert nicht oder wurde verschoben.",
|
||
"notfound.cta": "Zurück zum Dashboard",
|
||
|
||
// t-paliad-088: Event Types — picker, multi-select filter, add modal.
|
||
"common.cancel": "Abbrechen",
|
||
"modal.close.label": "Schließen",
|
||
"event_types.cat.submission": "Eingaben",
|
||
"event_types.cat.decision": "Entscheidungen",
|
||
"event_types.cat.order": "Anordnungen",
|
||
"event_types.cat.service": "Zustellungen",
|
||
"event_types.cat.fee": "Gebühren",
|
||
"event_types.cat.hearing": "Verhandlungen",
|
||
"event_types.cat.other": "Sonstiges",
|
||
"event_types.picker.search": "Suchen oder tippen…",
|
||
"event_types.picker.add": "+ Neuen Typ hinzufügen…",
|
||
"event_types.picker.remove": "Entfernen",
|
||
"event_types.picker.no_match": "Keine Treffer.",
|
||
"event_types.picker.browse_all": "Alle anzeigen",
|
||
"event_types.browse.title": "Event-Typen wählen",
|
||
"event_types.browse.search": "In allen Typen suchen…",
|
||
"event_types.browse.empty": "Keine Treffer.",
|
||
"event_types.browse.apply": "Übernehmen",
|
||
"event_types.browse.cancel": "Abbrechen",
|
||
"event_types.browse.selected_count": "{n} ausgewählt",
|
||
"event_types.browse.jurisdiction.none": "Allgemein",
|
||
"event_types.browse.jurisdiction.all": "Alle Gerichte",
|
||
"event_types.browse.jurisdiction.filter_label": "Nach Gerichtsart filtern",
|
||
"event_types.filter.all": "Alle Typen",
|
||
"event_types.filter.untyped": "— Ohne Typ —",
|
||
"event_types.filter.search": "Typ suchen…",
|
||
"event_types.filter.reset": "Zurücksetzen",
|
||
"event_types.filter.apply": "Anwenden",
|
||
"event_types.filter.n_selected": "{n} Typen",
|
||
"event_types.add.title": "Neuen Event-Typ anlegen",
|
||
"event_types.add.label_de": "Bezeichnung (DE) *",
|
||
"event_types.add.label_en": "Bezeichnung (EN, optional)",
|
||
"event_types.add.category": "Kategorie *",
|
||
"event_types.add.jurisdiction": "Jurisdiktion (optional)",
|
||
"event_types.add.jurisdiction.none": "—",
|
||
"event_types.add.jurisdiction.any": "Allgemein",
|
||
"event_types.add.firm_wide": "Firmenweit verfügbar machen",
|
||
"event_types.add.firm_wide.hint": "Firmenweite Typen sind für alle Kolleg:innen sichtbar. Admins können sie archivieren.",
|
||
"event_types.add.submit": "Anlegen",
|
||
"event_types.add.duplicate_warn": "Existiert vermutlich schon:",
|
||
"event_types.add.error.required": "Bezeichnung (DE) ist Pflichtfeld.",
|
||
"event_types.add.error.slug_taken": "Ein Typ mit diesem Namen existiert bereits.",
|
||
"event_types.add.error.generic": "Fehler beim Anlegen. Bitte erneut versuchen.",
|
||
"deadlines.field.event_type": "Typ (optional)",
|
||
"deadlines.col.event_type": "Typ",
|
||
"deadlines.filter.event_type": "Typ",
|
||
"agenda.filter.event_type": "Typ",
|
||
|
||
// t-paliad-089: Admin Event-Type moderation panel.
|
||
"nav.admin.event_types": "Event-Typen",
|
||
"admin.card.event_types.title": "Event-Typen",
|
||
"admin.card.event_types.desc": "Firmenweite Event-Typen moderieren: archivieren, zusammenführen, befördern.",
|
||
"admin.event_types.title": "Event-Typen — Paliad",
|
||
"admin.event_types.heading": "Event-Typen",
|
||
"admin.event_types.subtitle": "Firmenweite Event-Typen moderieren: archivieren, zusammenführen, private Typen befördern.",
|
||
"admin.event_types.section.firm_wide": "Firmenweite Typen",
|
||
"admin.event_types.section.private_pending": "Private Typen (zur Beförderung)",
|
||
"admin.event_types.section.private_pending.hint": "Private Typen anderer Kolleg:innen, sortiert nach Häufigkeit. Befördern macht den Typ firmenweit sichtbar.",
|
||
"admin.event_types.search.placeholder": "Bezeichnung, Slug oder Author suchen…",
|
||
"admin.event_types.show_archived": "Archivierte anzeigen",
|
||
"admin.event_types.loading": "Lade…",
|
||
"admin.event_types.empty": "Keine Treffer.",
|
||
"admin.event_types.private.empty": "Keine privaten Typen.",
|
||
"admin.event_types.col.label": "Bezeichnung",
|
||
"admin.event_types.col.category": "Kategorie",
|
||
"admin.event_types.col.jurisdiction": "Jurisdiktion",
|
||
"admin.event_types.col.author": "Author",
|
||
"admin.event_types.col.created": "Erstellt",
|
||
"admin.event_types.col.usage": "Verwendung",
|
||
"admin.event_types.col.actions": "Aktionen",
|
||
"admin.event_types.row.archived": "Archiviert",
|
||
"admin.event_types.author.system": "System",
|
||
"admin.event_types.author.unknown": "Unbekannt",
|
||
"admin.event_types.action.archive": "Archivieren",
|
||
"admin.event_types.action.archive_selected": "Ausgewählte archivieren",
|
||
"admin.event_types.action.merge_selected": "Zusammenführen…",
|
||
"admin.event_types.action.restore": "Wiederherstellen",
|
||
"admin.event_types.action.promote": "Befördern",
|
||
"admin.event_types.bulk.count": "{n} ausgewählt",
|
||
"admin.event_types.confirm.archive": "„{label}\" wirklich archivieren?",
|
||
"admin.event_types.confirm.bulk_archive": "{n} Typen wirklich archivieren?",
|
||
"admin.event_types.confirm.promote": "„{label}\" firmenweit verfügbar machen?",
|
||
"admin.event_types.confirm.merge": "„{winner}\" als Gewinner: {n} Verlierer-Typ(en) werden archiviert, {usage} Junction-Eintrag/-träge umgeleitet. Fortfahren?",
|
||
"admin.event_types.feedback.archived": "{n} archiviert.",
|
||
"admin.event_types.feedback.archive_error": "Archivierung fehlgeschlagen.",
|
||
"admin.event_types.feedback.restored": "Wiederhergestellt.",
|
||
"admin.event_types.feedback.restore_error": "Wiederherstellung fehlgeschlagen.",
|
||
"admin.event_types.feedback.promoted": "Befördert.",
|
||
"admin.event_types.feedback.promote_error": "Beförderung fehlgeschlagen.",
|
||
"admin.event_types.feedback.merged": "Zusammengeführt.",
|
||
"admin.event_types.feedback.merge_error": "Zusammenführung fehlgeschlagen.",
|
||
"admin.event_types.error.forbidden": "Zugriff nur für Admins.",
|
||
"admin.event_types.merge.title": "Typen zusammenführen",
|
||
"admin.event_types.merge.body": "Wählen Sie den Gewinner-Typ. Die Junction-Einträge der Verlierer werden auf den Gewinner umgeleitet, anschließend werden die Verlierer archiviert.",
|
||
"admin.event_types.merge.submit": "Zusammenführen",
|
||
|
||
// Approval workflow (t-paliad-138).
|
||
"approvals.title": "Genehmigungen",
|
||
"approvals.heading": "Genehmigungen",
|
||
"approvals.subtitle": "4-Augen-Prüfung für Fristen und Termine.",
|
||
"approvals.tab.pending_mine": "Zur Genehmigung",
|
||
"approvals.tab.mine": "Meine Anfragen",
|
||
"approvals.empty.pending_mine": "Aktuell nichts zu genehmigen.",
|
||
"approvals.empty.mine": "Sie haben keine offenen Anfragen.",
|
||
"approvals.lifecycle.create": "Erstellung",
|
||
"approvals.lifecycle.update": "Änderung",
|
||
"approvals.lifecycle.complete": "Erledigung",
|
||
"approvals.lifecycle.delete": "Löschung",
|
||
"approvals.entity.deadline": "Frist",
|
||
"approvals.entity.appointment": "Termin",
|
||
"approvals.required_role.lead": "Lead",
|
||
"approvals.required_role.of_counsel": "Of Counsel",
|
||
"approvals.required_role.associate": "Associate",
|
||
"approvals.required_role.senior_pa": "Senior PA",
|
||
"approvals.required_role.pa": "PA",
|
||
"approvals.status.pending": "Offen",
|
||
"approvals.status.approved": "Genehmigt",
|
||
"approvals.status.rejected": "Abgelehnt",
|
||
"approvals.status.revoked": "Zurückgezogen",
|
||
"approvals.status.superseded": "Ersetzt",
|
||
"approvals.status.changes_requested": "Abgelehnt mit Vorschlag",
|
||
"approvals.action.approve": "Genehmigen",
|
||
"approvals.action.reject": "Ablehnen",
|
||
"approvals.action.revoke": "Zurückziehen",
|
||
"approvals.action.suggest_changes": "Änderungen vorschlagen",
|
||
"approvals.note.placeholder": "Optionale Begründung...",
|
||
"approvals.suggest.modal_title": "Änderungen vorschlagen",
|
||
"approvals.suggest.intro": "Bearbeite die vorgeschlagenen Werte und/oder hinterlasse einen Kommentar. Dein Vorschlag wird als neue Genehmigungsanfrage eingestellt und kann vom ursprünglichen Antragsteller (oder einer anderen berechtigten Person) genehmigt werden.",
|
||
"approvals.suggest.note_label": "Kommentar zum Vorschlag",
|
||
"approvals.suggest.note_placeholder": "Warum sollen die Werte angepasst werden?",
|
||
"approvals.suggest.submit": "Vorschlag einreichen",
|
||
"approvals.suggest.cancel": "Abbrechen",
|
||
"approvals.suggest.submit_disabled_hint": "Bitte mindestens ein Feld ändern oder einen Kommentar hinterlassen.",
|
||
"approvals.suggest.next_request_link": "→ Neuer Vorschlag von {name}",
|
||
"approvals.suggest.unsupported_lifecycle": "Änderungen vorschlagen ist nur für Update-Anfragen möglich.",
|
||
"approvals.suggest.section.editable": "Felder",
|
||
"approvals.suggest.section.event_type_rule": "Verfahrenshandlung (Typ + Regel)",
|
||
"approvals.suggest.section.context": "Kontext",
|
||
"approvals.suggest.context.project": "Projekt",
|
||
"approvals.suggest.context.requester": "Eingereicht von",
|
||
"approvals.suggest.context.requested_at": "Eingereicht am",
|
||
"approvals.suggest.context.approval_status": "Genehmigungsstatus",
|
||
"approvals.suggest.event_type_picker_unavailable": "Ereignistypen konnten nicht geladen werden.",
|
||
"approvals.suggest.field.original_due_date": "Ursprüngliches Fälligkeitsdatum",
|
||
"approvals.suggest.field.warning_date": "Warndatum",
|
||
"approvals.suggest.field.rule_code": "Regel-Zitat",
|
||
"approvals.suggest.field.description": "Beschreibung",
|
||
"approvals.requested_by": "Eingereicht von",
|
||
"approvals.decided_by": "Entschieden von",
|
||
"approvals.decision_kind.peer": "Genehmigt durch Teammitglied",
|
||
"approvals.decision_kind.admin_override": "Admin-Sign-off",
|
||
"approvals.decision_kind.derived_peer": "Genehmigt durch abgeleitetes Mitglied (Partner Unit)",
|
||
"approvals.error.self_approval": "Eigengenehmigung nicht zulässig.",
|
||
"approvals.error.not_authorized": "Sie haben nicht die erforderliche Rolle.",
|
||
"approvals.error.no_qualified_approver": "Kein qualifizierter Approver verfügbar — bitte einen Approver ins Projekt-Team aufnehmen oder Admin kontaktieren.",
|
||
"approvals.error.concurrent_pending": "Es liegt bereits eine Genehmigungsanfrage auf diesem Eintrag vor.",
|
||
"approvals.error.awaiting_approval": "Diese Anforderung wartet auf Genehmigung.",
|
||
"approvals.error.request_not_pending": "Diese Anfrage ist nicht mehr offen.",
|
||
"approvals.error.suggestion_requires_change": "Ein Vorschlag braucht entweder geänderte Werte oder einen Kommentar.",
|
||
"approvals.error.suggestion_lifecycle_invalid": "Änderungen vorschlagen ist nur für Update-Anfragen möglich.",
|
||
"approvals.disabled.self_approval": "Du kannst eigene Anträge nicht genehmigen",
|
||
"approvals.disabled.not_authorized": "Du hast keine Genehmigungsberechtigung für diesen Antrag",
|
||
"approvals.disabled.revoke_not_requester": "Nur der Antragsteller kann zurückziehen",
|
||
"approvals.disabled.suggest_lifecycle": "Änderungen vorschlagen ist nur für Update-Anfragen möglich",
|
||
"approvals.pending.badge": "Wartet auf Genehmigung",
|
||
"approvals.withdraw.cta": "Genehmigungsanfrage zurückziehen",
|
||
"approvals.withdraw.confirm": "Genehmigungsanfrage wirklich zurückziehen?",
|
||
"approvals.withdraw.error": "Fehler beim Zurückziehen",
|
||
"approvals.withdraw.cancel": "Abbrechen",
|
||
"approvals.withdraw.modal.title": "Genehmigungsanfrage zurückziehen?",
|
||
"approvals.withdraw.primary.label": "Termin bearbeiten",
|
||
"approvals.withdraw.destructive.label": "Endgültig zurückziehen und löschen",
|
||
"approvals.withdraw.lead.create.deadline": "Wenn Sie die Anfrage zurückziehen, wird die Frist gelöscht.",
|
||
"approvals.withdraw.lead.create.appointment": "Wenn Sie die Anfrage zurückziehen, wird der Termin gelöscht.",
|
||
"approvals.withdraw.lead.update": "Wenn Sie die Anfrage zurückziehen, werden die vorgeschlagenen Änderungen verworfen — der Eintrag kehrt in den Zustand vor Ihrer Bearbeitung zurück.",
|
||
"approvals.withdraw.lead.delete": "Wenn Sie die Löschanfrage zurückziehen, bleibt der Eintrag bestehen.",
|
||
"approvals.withdraw.sub.create": "Alternativ können Sie den Eintrag stattdessen bearbeiten. Die Anfrage bleibt offen und der Genehmiger sieht Ihre neuen Werte.",
|
||
"approvals.withdraw.sub.update": "Alternativ können Sie Ihre Änderungen bearbeiten und neu absenden. Die Anfrage bleibt offen.",
|
||
"approvals.withdraw.sub.delete": "Sind Sie sicher, dass Sie die Löschanfrage zurückziehen möchten?",
|
||
"approvals.pending_create.label": "Erstellung wartet auf Genehmigung",
|
||
"approvals.pending_update.label": "Änderung wartet auf Genehmigung",
|
||
"approvals.pending_complete.label": "Erledigung wartet auf Genehmigung",
|
||
"approvals.pending_delete.label": "Zur Löschung beantragt",
|
||
"approvals.diff.before": "Vorher",
|
||
"approvals.diff.after": "Nachher",
|
||
"approvals.policies.title": "Genehmigungsrichtlinien",
|
||
"approvals.policies.subtitle": "Welche Lebenszyklus-Schritte benötigen 4-Augen-Prüfung in diesem Projekt?",
|
||
"approvals.policies.column.event": "Ereignis",
|
||
"approvals.policies.column.deadline": "Frist",
|
||
"approvals.policies.column.appointment": "Termin",
|
||
"approvals.policies.no_approval": "Keine Genehmigung erforderlich",
|
||
"approvals.policies.copy_parent": "Aus Eltern-Projekt übernehmen",
|
||
"approvals.policies.set_all_associate": "Alle auf Associate setzen",
|
||
|
||
// t-paliad-144 — Custom Views
|
||
"nav.group.user_views": "Meine Ansichten",
|
||
"nav.user_views.new": "Neue Ansicht",
|
||
"views.title": "Ansichten — Paliad",
|
||
"views.heading": "Ansichten",
|
||
"views.subtitle": "Eigene Ansichten über Ihre Daten — Filter und Darstellung speicherbar.",
|
||
"views.loading": "Lädt …",
|
||
"views.shape.list": "Liste",
|
||
"views.shape.cards": "Karten",
|
||
"views.shape.calendar": "Kalender",
|
||
"views.shape.timeline": "Timeline",
|
||
"views.timeline.caveat.body": "Custom Views zeigen nur eingetretene Ereignisse. Für prognostizierte Fristen das Projekt-Chart öffnen.",
|
||
"views.timeline.zoom.label": "Zoom",
|
||
"views.timeline.zoom.in": "Heranzoomen",
|
||
"views.timeline.zoom.out": "Herauszoomen",
|
||
"views.timeline.zoom.1y": "±1 J.",
|
||
"views.timeline.zoom.2y": "±2 J.",
|
||
"views.timeline.zoom.all": "Alles",
|
||
"views.save_as": "Als Ansicht speichern",
|
||
"views.action.edit": "Bearbeiten",
|
||
"views.empty.title": "Keine Einträge gefunden.",
|
||
"views.error.back": "Zurück zur Ansichten-Übersicht",
|
||
"views.error.not_found": "Ansicht nicht gefunden.",
|
||
"views.error.network": "Netzwerkfehler — bitte erneut versuchen.",
|
||
"views.toast.inaccessible_one": "1 Projekt in dieser Ansicht ist nicht mehr sichtbar.",
|
||
"views.toast.inaccessible_n": "{n} Projekte in dieser Ansicht sind nicht mehr sichtbar.",
|
||
"views.calendar.mobile_fallback": "Kalender-Ansicht ist auf grossen Bildschirmen am besten.",
|
||
"views.onboarding.title": "Eigene Ansichten — was ist das?",
|
||
"views.onboarding.body": "Eine Ansicht ist eine gespeicherte Filterkombination — z.B. „Fristen meiner Projekte in den nächsten 14 Tagen“. Ansichten erscheinen als eigene Buttons in der Sidebar.",
|
||
"views.onboarding.create": "Beispiel-Ansicht erstellen",
|
||
"views.source.deadline": "Fristen",
|
||
"views.source.appointment": "Termine",
|
||
"views.source.project_event": "Projekt-Verlauf",
|
||
"views.source.approval_request": "Genehmigungen",
|
||
"views.kind.deadline": "Frist",
|
||
"views.kind.appointment": "Termin",
|
||
"views.kind.project_event": "Verlauf",
|
||
"views.kind.approval_request": "Genehmigung",
|
||
"views.scope.all_visible": "Alle sichtbaren",
|
||
"views.scope.my_subtree": "Mein Teilbaum",
|
||
"views.scope.explicit": "Bestimmte Projekte",
|
||
"views.scope.personal_only": "Nur persönliche",
|
||
"views.horizon.next_1d": "Morgen",
|
||
"views.horizon.next_7d": "Nächste 7 Tage",
|
||
"views.horizon.next_14d": "Nächste 14 Tage",
|
||
"views.horizon.next_30d": "Nächste 30 Tage",
|
||
"views.horizon.next_90d": "Nächste 90 Tage",
|
||
"views.horizon.next_all": "Ganze Zukunft",
|
||
"views.horizon.past_1d": "Letzter Tag",
|
||
"views.horizon.past_7d": "Letzte 7 Tage",
|
||
"views.horizon.past_14d": "Letzte 14 Tage",
|
||
"views.horizon.past_30d": "Letzte 30 Tage",
|
||
"views.horizon.past_90d": "Letzte 90 Tage",
|
||
"views.horizon.past_all": "Ganze Vergangenheit",
|
||
"views.horizon.any": "Beliebig",
|
||
"views.horizon.all": "Komplett (alle Daten)",
|
||
"views.horizon.custom": "Benutzerdefiniert",
|
||
"views.density.comfortable": "Bequem",
|
||
"views.density.compact": "Kompakt",
|
||
"views.col.date": "Datum",
|
||
"views.col.time": "Wann",
|
||
"views.col.title": "Titel",
|
||
"views.col.project": "Projekt",
|
||
"views.col.actor": "Akteur",
|
||
"views.col.status": "Status",
|
||
"views.col.rule": "Regel",
|
||
"views.col.event_type": "Typ",
|
||
"views.col.location": "Ort",
|
||
"views.col.appointment_type": "Termin-Typ",
|
||
"views.col.approval_status": "Genehmigung",
|
||
"views.col.decided_by": "Entschieden von",
|
||
"views.col.kind": "Art",
|
||
"views.editor.title": "Ansicht bearbeiten — Paliad",
|
||
"views.editor.heading.new": "Neue Ansicht",
|
||
"views.editor.heading.edit": "Ansicht bearbeiten",
|
||
"views.editor.subtitle": "Wählen Sie Quellen, Filter und Darstellung. Änderungen speichern Sie unten.",
|
||
"views.editor.section.identity": "Bezeichnung",
|
||
"views.editor.section.sources": "Quellen",
|
||
"views.editor.section.scope": "Geltungsbereich",
|
||
"views.editor.section.time": "Zeitraum",
|
||
"views.editor.section.render": "Darstellung",
|
||
"views.editor.field.name": "Name",
|
||
"views.editor.field.slug": "Slug (URL)",
|
||
"views.editor.field.icon": "Icon",
|
||
"views.editor.field.show_count": "Treffer-Anzahl in der Sidebar anzeigen",
|
||
"views.editor.field.scope_mode": "Projekte",
|
||
"views.editor.field.personal_only": "Nur persönliche",
|
||
"views.editor.field.horizon": "Horizont",
|
||
"views.editor.field.shape": "Form",
|
||
"views.editor.field.density": "Dichte",
|
||
"views.editor.hint.slug": "Kleinbuchstaben, Ziffern und Bindestriche — nicht reservierte Wörter.",
|
||
"views.editor.hint.sources": "Welche Datenarten zeigt diese Ansicht?",
|
||
"views.editor.icon.default": "Standard (Ordner)",
|
||
"views.editor.icon.clock": "Uhr",
|
||
"views.editor.icon.calendar": "Kalender",
|
||
"views.editor.icon.bell": "Glocke",
|
||
"views.editor.icon.folder": "Ordner",
|
||
"views.editor.icon.users": "Personen",
|
||
"views.editor.icon.building": "Gebäude",
|
||
"views.editor.save": "Speichern",
|
||
"views.editor.cancel": "Abbrechen",
|
||
"views.editor.delete": "Löschen",
|
||
"views.editor.confirm_delete": "Diese Ansicht wirklich löschen?",
|
||
"views.editor.error.name_required": "Name ist erforderlich.",
|
||
"views.editor.error.slug_format": "Slug darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten und muss mit einem Buchstaben oder einer Ziffer beginnen.",
|
||
"views.editor.error.sources_required": "Mindestens eine Quelle wählen.",
|
||
"views.editor.error.load_failed": "Ansicht konnte nicht geladen werden.",
|
||
"views.editor.error.delete_failed": "Ansicht konnte nicht gelöscht werden.",
|
||
|
||
// Universal FilterBar — t-paliad-163. Mounted on every list-shaped
|
||
// surface (starts with /inbox in Phase 1; /agenda + /events follow).
|
||
"views.bar.label.time": "Zeitraum",
|
||
"views.bar.label.personal": "Eigene",
|
||
"views.bar.label.approval_role": "Sicht",
|
||
"views.bar.label.approval_status": "Status",
|
||
"views.bar.label.approval_entity": "Art",
|
||
"views.bar.label.deadline_status": "Frist-Status",
|
||
"views.bar.label.appointment_type": "Termin-Typ",
|
||
"views.bar.label.project_event_kind": "Ereignis",
|
||
"views.bar.label.timeline_status": "Timeline-Status",
|
||
"views.bar.label.timeline_track": "Track",
|
||
"views.bar.timeline_status.done": "Erledigt",
|
||
"views.bar.timeline_status.open": "Offen",
|
||
"views.bar.timeline_status.overdue": "Überfällig",
|
||
"views.bar.timeline_status.predicted": "Voraussichtlich",
|
||
"views.bar.timeline_status.predicted_overdue": "Überfällig (vorhergesagt)",
|
||
"views.bar.timeline_status.court_set": "Gerichtsdatum",
|
||
"views.bar.timeline_status.off_script": "Eigener Eintrag",
|
||
"views.bar.timeline_status.macro.future": "Zukunft anzeigen",
|
||
"views.bar.timeline_status.macro.past": "Nur vergangenes",
|
||
"views.bar.timeline_track.parent": "Hauptverfahren",
|
||
"views.bar.timeline_track.counterclaim": "Widerklage",
|
||
"views.bar.timeline_track.off_script": "Off-Script",
|
||
"views.bar.label.shape": "Darstellung",
|
||
"views.bar.label.density": "Dichte",
|
||
"views.bar.label.sort": "Sortierung",
|
||
"views.bar.common.all": "Alle",
|
||
// views.bar.time.* keys retired in t-paliad-248 — the filter-bar time
|
||
// axis now mounts the symmetric date-range picker, whose labels live
|
||
// under date_range.horizon.* (see end of this dict). The picker reuses
|
||
// views.bar.label.time as the closed-button prefix.
|
||
"views.bar.personal.on": "Nur eigene",
|
||
"views.bar.approval_role.approver_eligible": "Zur Genehmigung",
|
||
"views.bar.approval_role.self_requested": "Eigene Anfragen",
|
||
"views.bar.approval_role.any_visible": "Alle sichtbaren",
|
||
"views.bar.approval_status.pending": "Wartend",
|
||
"views.bar.approval_status.approved": "Genehmigt",
|
||
"views.bar.approval_status.rejected": "Abgelehnt",
|
||
"views.bar.approval_status.revoked": "Zurückgezogen",
|
||
"views.bar.approval_status.changes_requested": "Mit Vorschlag",
|
||
"views.bar.approval_entity.deadline": "Frist",
|
||
"views.bar.approval_entity.appointment": "Termin",
|
||
"views.bar.deadline_status.pending": "Offen",
|
||
"views.bar.deadline_status.completed": "Erledigt",
|
||
"views.bar.appointment_type.hearing": "Verhandlung",
|
||
"views.bar.appointment_type.meeting": "Besprechung",
|
||
"views.bar.appointment_type.consultation": "Beratung",
|
||
"views.bar.appointment_type.deadline_hearing": "Mündliche Verhandlung",
|
||
"views.bar.shape.list": "Liste",
|
||
"views.bar.shape.cards": "Karten",
|
||
"views.bar.shape.calendar": "Kalender",
|
||
"views.bar.density.comfortable": "Bequem",
|
||
"views.bar.density.compact": "Kompakt",
|
||
"views.bar.sort.date_asc": "Datum aufsteigend",
|
||
"views.bar.sort.date_desc": "Datum absteigend",
|
||
"views.bar.action.reset": "Zurücksetzen",
|
||
"views.bar.action.save_as_view": "Als Sicht speichern",
|
||
"views.bar.save.heading": "Sicht speichern",
|
||
"views.bar.save.field.name": "Name",
|
||
"views.bar.save.field.slug": "Slug",
|
||
"views.bar.save.field.slug_hint": "Wird Teil der URL: /views/<slug>",
|
||
"views.bar.save.field.show_count": "Anzahl in der Sidebar zeigen",
|
||
"views.bar.save.cancel": "Abbrechen",
|
||
"views.bar.save.confirm": "Speichern",
|
||
"views.bar.save.error.name_required": "Bitte Namen vergeben.",
|
||
"views.bar.save.error.slug_format": "Slug muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.",
|
||
"views.bar.save.error.slug_taken": "Dieser Slug ist bereits vergeben.",
|
||
"views.bar.save.error.network": "Netzwerkfehler — bitte erneut versuchen.",
|
||
|
||
// t-paliad-192 Slice 11b — Admin rule-editor UI.
|
||
// t-paliad-262 Slice A — "Regel" relabelled as "Verfahrensschritt".
|
||
// t-paliad-305 Slice B.6 (2026-05-26) — canonical URL moved to
|
||
// `/admin/procedural-events` (301 redirects from /admin/rules*).
|
||
// The i18n keys `admin.rules.*` are kept as the corpus until a
|
||
// follow-up slice migrates each reference; canonical
|
||
// `admin.procedural_events.*` aliases live after the EN block.
|
||
"nav.admin.rules": "Verfahrensschritte verwalten",
|
||
"admin.card.rules.title": "Verfahrensschritte verwalten",
|
||
"admin.card.rules.desc": "Verfahrensschritte anlegen, bearbeiten, publishen. Audit-Log, Preview, Migration-Export.",
|
||
|
||
"admin.rules.list.title": "Verfahrensschritte verwalten — Paliad",
|
||
"admin.rules.list.heading": "Verfahrensschritte verwalten",
|
||
"admin.rules.list.subtitle": "Verfahrensschritte (Schriftsätze, Anhörungen, Entscheidungen, …) anlegen, bearbeiten und freigeben. Lifecycle: draft → published → archived.",
|
||
"admin.rules.list.new": "+ Neuer Verfahrensschritt",
|
||
"admin.rules.tab.rules": "Regeln",
|
||
"admin.rules.tab.orphans": "Orphans",
|
||
"admin.rules.loading": "Lade…",
|
||
"admin.rules.empty": "Keine Verfahrensschritte für die gewählten Filter.",
|
||
"admin.rules.error.load": "Konnte Verfahrensschritte nicht laden.",
|
||
|
||
"admin.rules.filter.proceeding": "Verfahrenstyp",
|
||
"admin.rules.filter.proceeding.any": "Alle",
|
||
"admin.rules.filter.trigger": "Trigger-Ereignis",
|
||
"admin.rules.filter.trigger.any": "Alle",
|
||
"admin.rules.filter.lifecycle": "Lifecycle",
|
||
"admin.rules.filter.lifecycle.any": "Alle",
|
||
"admin.rules.filter.search": "Suche",
|
||
"admin.rules.filter.search.placeholder": "Name, Submission Code, Rechtsgrundlage…",
|
||
|
||
"admin.rules.col.submission_code": "Code (Verfahrensschritt)",
|
||
"admin.rules.col.legal_citation": "Rechtsgrundlage",
|
||
"admin.rules.col.name": "Name",
|
||
"admin.rules.col.proceeding": "Verfahrenstyp",
|
||
"admin.rules.col.priority": "Priorität",
|
||
"admin.rules.col.lifecycle": "Lifecycle",
|
||
"admin.rules.col.modified": "Zuletzt geändert",
|
||
|
||
"admin.rules.lifecycle.draft": "Draft",
|
||
"admin.rules.lifecycle.published": "Published",
|
||
"admin.rules.lifecycle.archived": "Archived",
|
||
|
||
"admin.rules.priority.mandatory": "Pflicht",
|
||
"admin.rules.priority.recommended": "Empfohlen",
|
||
"admin.rules.priority.optional": "Optional",
|
||
"admin.rules.priority.informational": "Information",
|
||
|
||
"admin.rules.orphans.subtitle": "Legacy-Deadlines aus dem fuzzy-match Backfill (Slice 10), die nicht eindeutig einer Regel zugeordnet werden konnten. Bitte die richtige Kandidaten-Regel auswählen.",
|
||
"admin.rules.orphans.loading": "Lade…",
|
||
"admin.rules.orphans.empty": "Keine offenen Orphans. ✔",
|
||
"admin.rules.orphans.no_candidates": "Keine Kandidaten gefunden. Bitte Regel manuell anlegen.",
|
||
"admin.rules.orphans.field.project": "Projekt",
|
||
"admin.rules.orphans.field.proceeding": "Verfahren",
|
||
"admin.rules.orphans.field.reason": "Grund",
|
||
"admin.rules.orphans.reason.no_match": "Kein Treffer",
|
||
"admin.rules.orphans.reason.ambiguous": "Mehrdeutig",
|
||
"admin.rules.orphans.reason.no_project": "Ohne Projekt",
|
||
"admin.rules.orphans.reason.manual_unbound": "Manuell entkoppelt",
|
||
"admin.rules.orphans.resolved": "Orphan zugeordnet.",
|
||
|
||
"admin.rules.modal.new.title": "Neuen Verfahrensschritt anlegen",
|
||
"admin.rules.modal.new.body": "Ein neuer Verfahrensschritt wird als Draft angelegt. Bitte einen Grund (mind. 10 Zeichen) angeben — dieser wandert ins Audit-Log und beim Export in die Migration.",
|
||
"admin.rules.modal.resolve.title": "Orphan zuordnen",
|
||
"admin.rules.modal.resolve.body": "Bitte einen Grund (mind. 10 Zeichen) angeben. Die Regel-Verknüpfung wird sofort auf der Deadline gespeichert.",
|
||
"admin.rules.modal.reason": "Grund",
|
||
"admin.rules.modal.reason.placeholder": "z. B. „Neue Regel für RoP.198 nach UPC-Reform 2026...",
|
||
"admin.rules.modal.reason.hint": "Mindestens 10 Zeichen.",
|
||
"admin.rules.modal.reason.too_short": "Grund muss mindestens 10 Zeichen enthalten.",
|
||
"admin.rules.modal.confirm": "Bestätigen",
|
||
"admin.rules.modal.field.name": "Name (DE)",
|
||
"admin.rules.modal.field.name_en": "Name (EN)",
|
||
"admin.rules.modal.field.duration": "Dauer",
|
||
"admin.rules.modal.error.name_required": "Bitte Name und Name (EN) angeben.",
|
||
"admin.rules.modal.error.create": "Anlegen fehlgeschlagen.",
|
||
"admin.rules.modal.error.resolve": "Zuordnung fehlgeschlagen.",
|
||
|
||
"admin.rules.edit.title": "Verfahrensschritt bearbeiten — Paliad",
|
||
"admin.rules.edit.heading.loading": "Verfahrensschritt laden…",
|
||
"admin.rules.edit.breadcrumb": "← Verfahrensschritte verwalten",
|
||
"admin.rules.edit.error.bad_id": "Ungültige Verfahrensschritt-ID in der URL.",
|
||
"admin.rules.edit.error.not_found": "Verfahrensschritt nicht gefunden.",
|
||
"admin.rules.edit.error.load": "Konnte Verfahrensschritt nicht laden.",
|
||
|
||
"admin.rules.edit.section.identity": "Identität",
|
||
"admin.rules.edit.section.proceeding": "Verfahren & Trigger",
|
||
"admin.rules.edit.section.timing": "Berechnung",
|
||
"admin.rules.edit.section.party": "Partei & Ereignis",
|
||
"admin.rules.edit.section.display": "Anzeige & Notizen",
|
||
"admin.rules.edit.section.lifecycle": "Priorität & Flags",
|
||
"admin.rules.edit.section.condition": "Bedingung (condition_expr)",
|
||
|
||
"admin.rules.edit.field.name": "Name (DE)",
|
||
"admin.rules.edit.field.name_en": "Name (EN)",
|
||
"admin.rules.edit.field.description": "Beschreibung",
|
||
"admin.rules.edit.field.submission_code": "Code (Verfahrensschritt-Identifikator)",
|
||
"admin.rules.edit.field.rule_code": "Rechtsgrundlage (Kurzform)",
|
||
"admin.rules.edit.field.legal_source": "Rechtsgrundlage (Langform)",
|
||
"admin.rules.edit.field.proceeding": "Verfahrenstyp",
|
||
"admin.rules.edit.field.proceeding.none": "—",
|
||
"admin.rules.edit.field.trigger": "Trigger-Ereignis",
|
||
"admin.rules.edit.field.trigger.none": "—",
|
||
"admin.rules.edit.field.parent": "Übergeordneter Verfahrensschritt (UUID)",
|
||
"admin.rules.edit.field.concept": "Konzept (UUID)",
|
||
"admin.rules.edit.field.sequence_order": "Reihenfolge",
|
||
"admin.rules.edit.field.duration_value": "Dauer",
|
||
"admin.rules.edit.field.duration_unit": "Einheit",
|
||
"admin.rules.edit.field.timing": "Timing",
|
||
"admin.rules.edit.field.combine_op": "Combine-Op",
|
||
"admin.rules.edit.field.alt_duration_value": "Alt-Dauer",
|
||
"admin.rules.edit.field.alt_duration_unit": "Alt-Einheit",
|
||
"admin.rules.edit.field.alt_rule_code": "Alt-Rule-Code",
|
||
"admin.rules.edit.field.anchor_alt": "Alt-Anchor",
|
||
"admin.rules.edit.field.primary_party": "Primäre Partei",
|
||
"admin.rules.edit.field.event_type": "Art des Verfahrensschritts (filing / hearing / decision / order)",
|
||
"admin.rules.edit.field.deadline_notes": "Hinweise (DE)",
|
||
"admin.rules.edit.field.deadline_notes_en": "Hinweise (EN)",
|
||
"admin.rules.edit.field.priority": "Priorität",
|
||
"admin.rules.edit.field.is_court_set": "Gerichtlich gesetzt",
|
||
"admin.rules.edit.field.is_spawn": "Spawn",
|
||
"admin.rules.edit.field.spawn_label": "Spawn-Label",
|
||
"admin.rules.edit.field.spawn_proceeding": "Spawn-Verfahren",
|
||
"admin.rules.edit.field.spawn_proceeding.none": "—",
|
||
"admin.rules.edit.field.condition_hint": "JSON-Grammatik: {\"flag\":\"name\"} · {\"op\":\"and|or\",\"args\":[...]} · {\"op\":\"not\",\"args\":[...]}",
|
||
"admin.rules.edit.field.condition.valid": "JSON gültig.",
|
||
|
||
"admin.rules.edit.preview.heading": "Preview",
|
||
"admin.rules.edit.preview.hint": "Nur für Drafts. Berechnet die Fristenkette mit dieser Draft-Regel anstelle der publizierten Variante.",
|
||
"admin.rules.edit.preview.trigger_date": "Trigger-Datum",
|
||
"admin.rules.edit.preview.flags": "Flags (komma-separiert)",
|
||
"admin.rules.edit.preview.run": "Preview berechnen",
|
||
"admin.rules.edit.preview.running": "Berechne…",
|
||
"admin.rules.edit.preview.empty": "Keine Deadlines.",
|
||
"admin.rules.edit.preview.error": "Preview fehlgeschlagen.",
|
||
"admin.rules.edit.preview.only_drafts": "Preview ist nur für Drafts verfügbar.",
|
||
"admin.rules.edit.preview.trigger_required": "Bitte Trigger-Datum angeben.",
|
||
|
||
"admin.rules.edit.audit.heading": "Audit-Log",
|
||
"admin.rules.edit.audit.loading": "Lade…",
|
||
"admin.rules.edit.audit.empty": "Keine Audit-Einträge.",
|
||
"admin.rules.edit.audit.loadmore": "Weitere laden",
|
||
"admin.rules.edit.audit.exported": "exported",
|
||
"admin.rules.edit.audit.actor.system": "System",
|
||
"admin.rules.edit.audit.action.create": "create",
|
||
"admin.rules.edit.audit.action.update": "update",
|
||
"admin.rules.edit.audit.action.publish": "publish",
|
||
"admin.rules.edit.audit.action.archive": "archive",
|
||
"admin.rules.edit.audit.action.restore": "restore",
|
||
"admin.rules.edit.audit.action.delete": "delete",
|
||
|
||
"admin.rules.edit.action.save_draft": "Draft speichern",
|
||
"admin.rules.edit.action.publish": "Publish",
|
||
"admin.rules.edit.action.clone": "Als Draft klonen",
|
||
"admin.rules.edit.action.archive": "Archivieren",
|
||
"admin.rules.edit.action.restore": "Wiederherstellen",
|
||
"admin.rules.edit.action.ok": "Erledigt.",
|
||
"admin.rules.edit.action.save_draft.ok": "Draft gespeichert.",
|
||
"admin.rules.edit.action.save_draft.error": "Speichern fehlgeschlagen.",
|
||
"admin.rules.edit.action.publish.ok": "Regel publiziert.",
|
||
"admin.rules.edit.action.publish.error": "Publish fehlgeschlagen.",
|
||
"admin.rules.edit.action.archive.ok": "Regel archiviert.",
|
||
"admin.rules.edit.action.archive.error": "Archivieren fehlgeschlagen.",
|
||
"admin.rules.edit.action.restore.ok": "Regel wiederhergestellt.",
|
||
"admin.rules.edit.action.restore.error": "Wiederherstellen fehlgeschlagen.",
|
||
"admin.rules.edit.action.clone.error": "Klonen fehlgeschlagen.",
|
||
|
||
"admin.rules.edit.modal.save_draft.title": "Draft speichern",
|
||
"admin.rules.edit.modal.save_draft.body": "Bitte einen Grund für die Änderung angeben (mind. 10 Zeichen). Wird ins Audit-Log geschrieben.",
|
||
"admin.rules.edit.modal.publish.title": "Publish",
|
||
"admin.rules.edit.modal.publish.body": "Diese Draft-Regel wird live geschaltet. Bestehende publizierte Variante wird archiviert.",
|
||
"admin.rules.edit.modal.clone.title": "Als Draft klonen",
|
||
"admin.rules.edit.modal.clone.body": "Eine neue Draft-Kopie dieser Regel wird angelegt. Sie werden auf die neue Draft-Seite weitergeleitet.",
|
||
"admin.rules.edit.modal.archive.title": "Archivieren",
|
||
"admin.rules.edit.modal.archive.body": "Regel wird archiviert. Calculator nutzt sie nicht mehr.",
|
||
"admin.rules.edit.modal.restore.title": "Wiederherstellen",
|
||
"admin.rules.edit.modal.restore.body": "Regel wird wiederhergestellt (archived → published).",
|
||
|
||
// Date-range picker (t-paliad-248). Symmetric past/future chip fan
|
||
// around an ALLES centre. Used by the filter-bar 'time' axis from
|
||
// Slice A onwards; future slices will migrate /agenda and
|
||
// /admin/audit-log to the same component.
|
||
"date_range.button.label": "Zeitraum",
|
||
"date_range.button.label.custom_range": "Von {from} bis {to}",
|
||
"date_range.horizon.next_1d": "Heute",
|
||
"date_range.horizon.next_7d": "Nächste 7 Tage",
|
||
"date_range.horizon.next_14d": "Nächste 14 Tage",
|
||
"date_range.horizon.next_30d": "Nächste 30 Tage",
|
||
"date_range.horizon.next_90d": "Nächste 90 Tage",
|
||
"date_range.horizon.next_all": "Ganze Zukunft",
|
||
"date_range.horizon.past_1d": "Letzter Tag",
|
||
"date_range.horizon.past_7d": "Letzte 7 Tage",
|
||
"date_range.horizon.past_14d": "Letzte 14 Tage",
|
||
"date_range.horizon.past_30d": "Letzte 30 Tage",
|
||
"date_range.horizon.past_90d": "Letzte 90 Tage",
|
||
"date_range.horizon.past_all": "Ganze Vergangenheit",
|
||
"date_range.horizon.any": "Alles",
|
||
"date_range.horizon.custom": "Anpassen",
|
||
"date_range.dialog.label": "Zeitraum wählen",
|
||
"date_range.fan.past.label": "Vergangenheit",
|
||
"date_range.fan.future.label": "Zukunft",
|
||
"date_range.center.label": "Alles",
|
||
"date_range.custom.from": "Von",
|
||
"date_range.custom.to": "Bis",
|
||
"date_range.custom.apply": "Anwenden",
|
||
"date_range.custom.cancel": "Abbrechen",
|
||
"date_range.custom.invalid": "Bis-Datum muss nach Von-Datum liegen.",
|
||
"date_range.custom.invalid_format": "Datum nicht erkannt (Format JJJJ-MM-TT).",
|
||
"date_range.custom.invalid_missing": "Bitte beide Datumsfelder ausfüllen.",
|
||
|
||
// t-paliad-262 Slice A — canonical `procedural_event` i18n contract.
|
||
// The values are identical to the legacy `admin.rules.*` keys above —
|
||
// these aliases let .tsx files rebind in Slice B (B.5) without
|
||
// touching DE/EN strings then. Adding/changing values? Update BOTH
|
||
// sides.
|
||
"admin.procedural_events.list.title": "Verfahrensschritte verwalten — Paliad",
|
||
"admin.procedural_events.list.heading": "Verfahrensschritte verwalten",
|
||
"admin.procedural_events.list.new": "+ Neuer Verfahrensschritt",
|
||
"admin.procedural_events.col.code": "Code (Verfahrensschritt)",
|
||
// t-paliad-321: 3-segment proceeding-type code column (joined
|
||
// server-side); disambiguates same-named rules across proceedings.
|
||
"admin.procedural_events.col.proceeding": "Verfahren",
|
||
"admin.procedural_events.edit.title": "Verfahrensschritt bearbeiten — Paliad",
|
||
"admin.procedural_events.edit.breadcrumb":"← Verfahrensschritte verwalten",
|
||
"admin.procedural_events.edit.field.code": "Code (Verfahrensschritt-Identifikator)",
|
||
"admin.procedural_events.edit.field.event_kind": "Art des Verfahrensschritts (filing / hearing / decision / order)",
|
||
"admin.procedural_events.edit.field.parent": "Übergeordneter Verfahrensschritt (UUID)",
|
||
},
|
||
|
||
en: {
|
||
// Navigation
|
||
"nav.home": "Home",
|
||
"nav.kostenrechner": "Cost Calculator",
|
||
"nav.downloads": "Downloads",
|
||
"nav.links": "Links",
|
||
"nav.glossar": "Glossary",
|
||
"nav.gebuehrentabellen": "Fee Schedules",
|
||
"nav.checklisten": "Checklists",
|
||
"nav.submissions": "Submissions",
|
||
"nav.gerichte": "Courts",
|
||
"nav.logout": "Sign Out",
|
||
"nav.akten": "Matters",
|
||
"nav.projekte": "Projects",
|
||
"nav.fristen": "Deadlines",
|
||
"nav.termine": "Appointments",
|
||
"nav.dashboard": "Dashboard",
|
||
"nav.agenda": "Agenda",
|
||
"nav.inbox": "Approvals",
|
||
"nav.paliadin": "Paliadin",
|
||
"nav.team": "Team",
|
||
"nav.group.uebersicht": "Overview",
|
||
"nav.group.ansichten": "Views",
|
||
"nav.group.werkzeuge": "Tools",
|
||
"nav.neuigkeiten": "What's New",
|
||
"nav.soon.tooltip": "Coming soon",
|
||
|
||
// Theme toggle (m/paliad#2)
|
||
"theme.toggle.auto": "Auto",
|
||
"theme.toggle.light": "Light",
|
||
"theme.toggle.dark": "Dark",
|
||
"theme.toggle.cycle.auto": "Switch to light theme",
|
||
"theme.toggle.cycle.light": "Switch to dark theme",
|
||
"theme.toggle.cycle.dark": "Switch to auto (system)",
|
||
|
||
// BottomNav (mobile)
|
||
"bottomnav.add": "New",
|
||
"bottomnav.menu": "Menu",
|
||
"bottomnav.add.title": "Quick add",
|
||
"bottomnav.add.deadline": "New deadline",
|
||
"bottomnav.add.deadline.sub": "Deadline with date & project",
|
||
"bottomnav.add.appointment": "New appointment",
|
||
"bottomnav.add.appointment.sub": "Appointment with time & place",
|
||
"bottomnav.add.project": "New project",
|
||
"bottomnav.add.project.sub": "New matter / case / patent",
|
||
"bottomnav.add.cancel": "Cancel",
|
||
"bottomnav.badge.deadlines": "{overdue} overdue + {today} due today",
|
||
|
||
// Changelog (What's New) — t-paliad-027
|
||
"changelog.title": "What's New — Paliad",
|
||
"changelog.heading": "What's New",
|
||
"changelog.subtitle": "Recent changes and additions in Paliad.",
|
||
"changelog.empty": "Nothing here yet.",
|
||
"changelog.tag.feature": "New",
|
||
"changelog.tag.content": "Content",
|
||
"changelog.tag.fix": "Fix",
|
||
|
||
// Footer
|
||
"footer.text": "\u00a9 2026 Paliad \u2014 by",
|
||
|
||
// Landing page
|
||
"index.title": `Paliad \u2014 Patent Litigation for ${FIRM}`,
|
||
"index.hero.accent": `for ${FIRM}`,
|
||
"index.hero.sub": `Administration, knowledge, and tools for the ${FIRM} patent team.`,
|
||
"index.guides.title": "Guides",
|
||
"index.guides.desc": "Practical guides for proceedings before the EPO, Federal Patent Court, and UPC. Step-by-step instructions for typical workflows.",
|
||
"index.templates.title": "Templates",
|
||
"index.templates.desc": `Standardised templates for briefs, correspondence, and internal documents. ${FIRM} Patents Style Guide.`,
|
||
"index.documents.title": "Documents",
|
||
"index.documents.desc": "Reference materials, checklists, and practical aids for day-to-day patent practice.",
|
||
"index.tools": "Tools",
|
||
"index.cost.title": "Cost Calculator",
|
||
"index.cost.desc": "Estimate litigation costs for DE courts, UPC, and EPA proceedings. Court and attorney fees at a glance.",
|
||
"index.deadline.title": "Deadline Calculator",
|
||
"index.deadline.desc": "Calculate procedural deadlines for UPC, German, and EPA proceedings with holiday adjustment.",
|
||
"index.glossar.title": "Patent Glossary",
|
||
"index.glossar.desc": "Bilingual DE/EN glossary of key patent law terminology. Searchable by category.",
|
||
"index.downloads": "Downloads",
|
||
"index.style.title": `${FIRM} Patents Style`,
|
||
"index.style.desc": `Word template in ${FIRM} Patents style. Formatting, fonts, and macros for standardised briefs.`,
|
||
"index.offices": "Offices",
|
||
"index.office.munich": "Munich",
|
||
"index.office.duesseldorf": "D\u00fcsseldorf",
|
||
"index.office.hamburg": "Hamburg",
|
||
"index.office.amsterdam": "Amsterdam",
|
||
"index.office.london": "London",
|
||
"index.office.paris": "Paris",
|
||
"index.office.milan": "Milan",
|
||
|
||
// Login
|
||
"login.title": "Sign In \u2014 Paliad",
|
||
"login.tab.login": "Sign In",
|
||
"login.tab.register": "Register",
|
||
"login.email": "Email",
|
||
"login.password": "Password",
|
||
"login.password.placeholder": "Password",
|
||
"login.submit": "Sign In",
|
||
"login.confirm": "Confirm Password",
|
||
"login.confirm.placeholder": "Repeat password",
|
||
"login.minchars": "Min. 8 characters",
|
||
"login.register.submit": "Register",
|
||
"login.hint": `Only for authorised ${FIRM} email addresses.`,
|
||
"login.error.connection": "Connection error. Please try again.",
|
||
"login.error.mismatch": "Passwords do not match.",
|
||
"login.error.minlength": "Password must be at least 8 characters.",
|
||
"login.success.created": "Account created. Please sign in.",
|
||
|
||
// Kostenrechner
|
||
"kosten.title": "Cost Calculator \u2014 Paliad",
|
||
"kosten.heading": "Patent Litigation Cost Calculator",
|
||
"kosten.subtitle": "Estimate litigation costs for patent infringement, nullity, and EPA proceedings.",
|
||
"kosten.streitwert": "Dispute Value",
|
||
"kosten.vat": "VAT",
|
||
"kosten.vat.foreign": "0% (Foreign)",
|
||
"kosten.de.infringement": "DE Infringement Proceedings",
|
||
"kosten.de.nullity": "DE Nullity Proceedings",
|
||
"kosten.upc": "UPC",
|
||
"kosten.epa": "EPO",
|
||
"kosten.inst.lg": "Regional Court (Infringement 1st Instance)",
|
||
"kosten.inst.olg": "Higher Regional Court (Appeal)",
|
||
"kosten.inst.bgh_nzb": "Federal Court (Leave to Appeal)",
|
||
"kosten.inst.bgh_rev": "Federal Court (Revision)",
|
||
"kosten.inst.bpatg": "Federal Patent Court (Nullity)",
|
||
"kosten.inst.bgh_nullity": "Federal Court (Nullity Appeal)",
|
||
"kosten.inst.upc_first": "UPC (First Instance)",
|
||
"kosten.inst.upc_appeal": "UPC (Appeal)",
|
||
"kosten.inst.epa_opposition": "Opposition",
|
||
"kosten.inst.epa_appeal": "Appeal from Opposition",
|
||
"kosten.fee.version": "Fee version:",
|
||
"kosten.fee.schedule": "Fee schedule:",
|
||
"kosten.fee.from2026": "From 2026",
|
||
"kosten.fee.pre2026": "Before 2026",
|
||
"kosten.fee.current": "Current (2025)",
|
||
"kosten.attorneys": "Attorneys:",
|
||
"kosten.patent.attorneys": "Patent Attorneys:",
|
||
"kosten.clients": "Clients:",
|
||
"kosten.oral.hearing": "Oral hearing",
|
||
"kosten.revocation": "Revocation counterclaim",
|
||
"kosten.total": "Total Cost",
|
||
"kosten.empty": "Select at least one instance.",
|
||
"kosten.print": "Print",
|
||
"kosten.court.fees": "Court Fees",
|
||
"kosten.attorney.fees": "Attorney Fees",
|
||
"kosten.patent.attorney.fees": "Patent Attorney Fees",
|
||
"kosten.epa.fees": "EPO Fees",
|
||
"kosten.attorney.label": "Attorney",
|
||
"kosten.patent.attorney.label": "Patent Attorney",
|
||
"kosten.detail.procedure": "Procedure fee",
|
||
"kosten.detail.increase": "Increase",
|
||
"kosten.detail.hearing": "Hearing fee",
|
||
"kosten.detail.lump": "Lump sum",
|
||
"kosten.detail.vat": "VAT",
|
||
"kosten.detail.total": "Total",
|
||
"kosten.upc.fixed": "Fixed fee",
|
||
"kosten.upc.value": "Value-based fee",
|
||
"kosten.upc.court.total": "Court fees total",
|
||
"kosten.upc.sme": "SME reduction",
|
||
"kosten.upc.recoverable": "Recoverable costs (ceiling)",
|
||
"kosten.epa.official": "Official fee",
|
||
"kosten.epa.note": "Attorney costs based on time spent (not RVG-based).",
|
||
"kosten.share": "Copy Link",
|
||
"kosten.share.copied": "Link copied!",
|
||
"kosten.compare": "Compare",
|
||
"kosten.compare.exit": "Exit Comparison",
|
||
"kosten.scenario.a": "Scenario A",
|
||
"kosten.scenario.b": "Scenario B",
|
||
"kosten.scenario.diff": "Difference",
|
||
"kosten.print.title": "Cost Calculation",
|
||
"kosten.print.date": "Date",
|
||
"kosten.print.streitwert": "Dispute Value",
|
||
"kosten.print.vat": "VAT Rate",
|
||
"kosten.print.instances": "Instances",
|
||
"kosten.print.disclaimer": "This document is for internal use only and does not constitute legal advice. All figures are estimates.",
|
||
|
||
// Fristenrechner
|
||
"deadlines.title": "Deadline Calculator \u2014 Paliad",
|
||
"deadlines.heading": "Patent Deadline Calculator",
|
||
"deadlines.subtitle": "Calculate procedural deadlines for UPC, German, and EPA proceedings.",
|
||
|
||
// Verfahrensablauf (t-paliad-179 Slice 1)
|
||
// Unified procedural-events tool (m/paliad#151)
|
||
"procedures.title": "Procedures & Deadlines \u2014 Paliad",
|
||
"procedures.heading": "Procedures & Deadlines",
|
||
"procedures.subtitle": "Procedure roadmap, deadline calculator, and guided search in one tool.",
|
||
"procedures.filter.search.placeholder": "Statement of claim, hearing notice, m\u00fcndliche Verhandlung\u2026",
|
||
"procedures.filter.axis.forum": "Forum:",
|
||
"procedures.filter.axis.proc": "Proceeding:",
|
||
"procedures.filter.axis.kind": "Event kind:",
|
||
"procedures.filter.axis.party": "Party:",
|
||
"procedures.tab.proceeding": "Pick proceeding",
|
||
"procedures.tab.search": "Direct search",
|
||
"procedures.tab.wizard": "Guided",
|
||
"procedures.tab.akte": "From matter",
|
||
"procedures.panel.akte.placeholder": "Matter entry ships in a later slice.",
|
||
"nav.procedures": "Procedures & Deadlines",
|
||
|
||
// Litigation Builder (m/paliad#153 B1+B2)
|
||
"builder.subtitle": "Litigation Builder — build scenarios, stack proceedings, track deadlines.",
|
||
"builder.header.scenario": "Scenario:",
|
||
"builder.header.akte": "Matter:",
|
||
"builder.header.stichtag": "Anchor:",
|
||
"builder.header.search": "Search:",
|
||
"builder.akte.none": "— none —",
|
||
"builder.akte.banner.prefix": "From matter:",
|
||
"builder.search.placeholder": "Event, scenario, matter …",
|
||
"builder.action.rename": "Name it",
|
||
"builder.action.rename.prompt": "Name for this scenario:",
|
||
"builder.action.share": "Share",
|
||
"builder.action.promote": "Create as project",
|
||
"builder.mode.cold": "Overview",
|
||
"builder.mode.event": "Event",
|
||
"builder.mode.akte": "From matter",
|
||
"builder.panel.title": "My scenarios",
|
||
"builder.panel.new": "+ New scenario",
|
||
"builder.panel.empty": "No scenarios yet.",
|
||
"builder.bucket.active": "Active",
|
||
"builder.empty.headline": "No scenario open.",
|
||
"builder.empty.hint": "Start a new scenario, pick one from your list, or load a matter (B4).",
|
||
"builder.empty.cta": "Start a new scenario",
|
||
"builder.empty.recent": "Recent",
|
||
"builder.picker.placeholder": "— pick a scenario —",
|
||
"builder.picker.title": "Add proceeding",
|
||
"builder.picker.close": "Close",
|
||
"builder.picker.aria": "Pick a proceeding",
|
||
"builder.picker.axis.forum": "Forum:",
|
||
"builder.picker.axis.proc": "Proceeding:",
|
||
"builder.picker.empty": "No proceedings available.",
|
||
"builder.picker.future_jurisdiction": "Other forums coming later.",
|
||
"builder.canvas.add_proceeding": "+ Add proceeding",
|
||
"builder.triplet.loading": "Calculating deadlines …",
|
||
"builder.triplet.unknown_proceeding": "Unknown proceeding type.",
|
||
"builder.triplet.side.claimant": "Claimant view",
|
||
"builder.triplet.side.defendant": "Defendant view",
|
||
"builder.triplet.flags.label": "Options:",
|
||
"builder.triplet.perspective.label": "Perspective:",
|
||
"builder.triplet.perspective.none": "none",
|
||
"builder.triplet.perspective.claimant": "Claimant",
|
||
"builder.triplet.perspective.defendant": "Defendant",
|
||
"builder.triplet.detailgrad.label": "Detail:",
|
||
"builder.triplet.detailgrad.selected": "Selected",
|
||
"builder.triplet.detailgrad.all_options": "All options",
|
||
"builder.triplet.remove": "Remove",
|
||
"builder.triplet.collapse": "Collapse",
|
||
"builder.triplet.expand": "Expand",
|
||
"builder.triplet.no_flags": "(no flags for this proceeding type)",
|
||
"builder.event.state.planned": "planned",
|
||
"builder.event.state.filed": "filed",
|
||
"builder.event.state.skipped": "skipped",
|
||
"builder.event.action.file": "File",
|
||
"builder.event.action.skip": "Skip",
|
||
"builder.event.action.reset": "Reset to planned",
|
||
"builder.event.actual_date.prompt": "Date of filing:",
|
||
"builder.event.skip_reason.prompt": "Reason (optional):",
|
||
"builder.event.horizon.label": "+{n} optional ▾",
|
||
"builder.event.horizon.hide": "Hide optional",
|
||
"builder.save.idle": " ",
|
||
"builder.save.saving": "Saving …",
|
||
"builder.save.saved": "Saved ✓",
|
||
"builder.save.error": "Save failed",
|
||
"builder.search.hint.start": "Type … e.g. \"defence\", \"hearing\", \"HL-2024\"",
|
||
"builder.search.hint.short": "At least 2 characters.",
|
||
"builder.search.hint.loading": "Searching …",
|
||
"builder.search.hint.empty": "No matches.",
|
||
"builder.search.hint.error": "Search failed. Try again.",
|
||
"builder.search.hint.akte_b4": "Matter mode coming in B4.",
|
||
"builder.search.group.events": "Events",
|
||
"builder.search.group.scenarios": "Scenarios",
|
||
"builder.search.group.projects": "Matters",
|
||
"builder.search.summary.events.one": "{n} event",
|
||
"builder.search.summary.events.other": "{n} events",
|
||
"builder.search.summary.scenarios.one": "{n} scenario",
|
||
"builder.search.summary.scenarios.other": "{n} scenarios",
|
||
"builder.search.summary.projects.one": "{n} matter",
|
||
"builder.search.summary.projects.other": "{n} matters",
|
||
"builder.search.anchor.divider": "━━━━ YOU ARE HERE ━━━━",
|
||
|
||
// B5 — side-panel buckets, sharing, promote-to-project wizard.
|
||
"builder.bucket.shared": "Shared with me",
|
||
"builder.bucket.promoted": "Promoted to project",
|
||
"builder.bucket.archived": "Archived",
|
||
"builder.bucket.empty": "—",
|
||
"builder.readonly.watermark": "Shared by {owner} · read-only",
|
||
"builder.readonly.blocked": "Read-only — only the owner can edit.",
|
||
"builder.share.title": "Share scenario",
|
||
"builder.share.subtitle": "Share read-only with HLC colleagues. You remain the sole editor.",
|
||
"builder.share.search.placeholder": "Search name or email …",
|
||
"builder.share.button": "Share read-only",
|
||
"builder.share.current.title": "Already shared with:",
|
||
"builder.share.current.empty": "Not shared with anyone yet.",
|
||
"builder.share.revoke": "Remove",
|
||
"builder.share.close": "Close",
|
||
"builder.share.no_results": "No users found.",
|
||
"builder.share.error": "Sharing failed. Please try again.",
|
||
"builder.promote.title": "Create as project",
|
||
"builder.promote.step1": "Confirm",
|
||
"builder.promote.step2": "Add parties",
|
||
"builder.promote.step3": "Case metadata",
|
||
"builder.promote.next": "Next",
|
||
"builder.promote.back": "Back",
|
||
"builder.promote.commit": "Create",
|
||
"builder.promote.cancel": "Cancel",
|
||
"builder.promote.summary.heading": "What will be created:",
|
||
"builder.promote.summary.proceeding": "Primary proceeding",
|
||
"builder.promote.summary.events_filed": "filed events",
|
||
"builder.promote.summary.events_planned": "planned events",
|
||
"builder.promote.summary.flags": "active options",
|
||
"builder.promote.summary.note_extra": "{n} further standalone proceeding(s) stay in the scenario and are not carried over automatically.",
|
||
"builder.promote.parties.hint": "Enter the real party names — or add them later in the case file.",
|
||
"builder.promote.parties.add": "+ Add party",
|
||
"builder.promote.parties.name": "Name",
|
||
"builder.promote.parties.role": "Role (e.g. claimant)",
|
||
"builder.promote.parties.representative": "Representative",
|
||
"builder.promote.parties.remove": "Remove",
|
||
"builder.promote.parties.empty": "No parties yet.",
|
||
"builder.promote.meta.title": "Case title / matter",
|
||
"builder.promote.meta.title.placeholder": "e.g. Becker v. X — UPC infringement",
|
||
"builder.promote.meta.reference": "Reference (optional)",
|
||
"builder.promote.meta.case_number": "Case number (optional)",
|
||
"builder.promote.meta.client_number": "Client number (optional)",
|
||
"builder.promote.meta.our_side": "Our side",
|
||
"builder.promote.meta.our_side.claimant": "Claimant",
|
||
"builder.promote.meta.our_side.defendant": "Defendant",
|
||
"builder.promote.meta.our_side.none": "— open —",
|
||
"builder.promote.meta.parent": "Parent litigation (optional)",
|
||
"builder.promote.meta.parent.none": "— none —",
|
||
"builder.promote.meta.team": "Team (optional)",
|
||
"builder.promote.meta.team.hint": "You are added as lead automatically.",
|
||
"builder.promote.error.title_required": "Please enter a case title.",
|
||
"builder.promote.error.generic": "Creation failed. Please try again.",
|
||
"builder.promote.success": "Case created — redirecting …",
|
||
"builder.mobile.blocked": "Open on a larger screen to edit.",
|
||
|
||
"deadlines.step1": "Select Proceeding Type",
|
||
"deadlines.step2": "Enter Trigger Date",
|
||
"deadlines.step2.perspective": "Perspective and Date",
|
||
"deadlines.step3": "Result",
|
||
"deadlines.upc": "UPC",
|
||
"deadlines.de": "German Courts",
|
||
"deadlines.epa": "EPO",
|
||
"deadlines.dpma": "DPMA",
|
||
"deadlines.dpma.opp.dpma": "Opposition DPMA",
|
||
"deadlines.dpma.appeal.bpatg": "Appeal BPatG (DPMA)",
|
||
"deadlines.dpma.appeal.bgh": "Legal Appeal BGH",
|
||
"deadlines.trigger.event": "Trigger event:",
|
||
"deadlines.trigger.date": "Date:",
|
||
"deadlines.trigger.label": "Trigger date",
|
||
"deadlines.priority.date": "Priority date (optional):",
|
||
"deadlines.court.label": "Court:",
|
||
"deadlines.flag.ccr": "Counterclaim for revocation filed",
|
||
"deadlines.flag.inf_amend": "Application to amend the patent filed (R.30)",
|
||
"deadlines.flag.rev_amend": "Application to amend the patent filed (R.49.2.a)",
|
||
"deadlines.flag.rev_cci": "Counterclaim for infringement filed (R.49.2.b)",
|
||
"deadlines.calculate": "Calculate Deadlines",
|
||
"deadlines.print": "Print",
|
||
"deadlines.reset": "\u2190 Start Over",
|
||
"deadlines.upc.inf.cfi": "Infringement",
|
||
"deadlines.upc.rev.cfi": "Revocation",
|
||
"deadlines.upc.ccr.cfi": "Counterclaim for Revocation",
|
||
"deadlines.upc.pi.cfi": "Provisional Measures",
|
||
"deadlines.upc.apl.merits": "Appeal",
|
||
"deadlines.upc.dmgs.cfi": "Damages Determination",
|
||
"deadlines.upc.disc.cfi": "Lay-open Books",
|
||
"deadlines.upc.apl.cost": "Cost-Decision Appeal",
|
||
"deadlines.upc.apl.unified": "Appeal",
|
||
"deadlines.appeal_target.label": "Appeal against:",
|
||
"deadlines.appeal_target.endentscheidung": "Final Decision",
|
||
"deadlines.appeal_target.kostenentscheidung": "Cost Decision",
|
||
"deadlines.appeal_target.anordnung": "Order",
|
||
"deadlines.appeal_target.schadensbemessung": "Damages Determination",
|
||
"deadlines.appeal_target.bucheinsicht": "Lay-open Books",
|
||
"deadlines.upc.apl.order": "Order Appeal (15-day)",
|
||
"deadlines.de.group.inf": "Infringement proceedings",
|
||
"deadlines.de.group.null": "Nullity proceedings",
|
||
"deadlines.de.inf.lg": "LG (1st instance)",
|
||
"deadlines.de.inf.olg": "OLG (Appeal)",
|
||
"deadlines.de.inf.bgh": "BGH (Revision / NZB)",
|
||
"deadlines.de.null.bpatg": "BPatG (1st instance)",
|
||
"deadlines.de.null.bgh": "BGH (Appeal)",
|
||
"deadlines.epa.opp.opd": "Opposition",
|
||
"deadlines.epa.opp.boa": "Appeal",
|
||
"deadlines.epa.grant.exa": "Grant Procedure",
|
||
"deadlines.party.both.label": "both parties",
|
||
"deadlines.court.set": "set by court",
|
||
"deadlines.court.indirect": "tbd",
|
||
"deadlines.conditional.depends_on": "depends on {parent}",
|
||
"deadlines.conditional.unset": "depends on an upstream event",
|
||
"deadlines.optional.badge": "on request",
|
||
"deadlines.priority.mandatory": "Mandatory",
|
||
"deadlines.priority.recommended": "Recommended",
|
||
"deadlines.priority.optional": "Optional (on request)",
|
||
"deadlines.priority.informational": "For information only",
|
||
"deadlines.priority.informational.notice_label": "Note",
|
||
"project.instance_level.first": "First instance",
|
||
"project.instance_level.appeal": "Appeal",
|
||
"project.instance_level.cassation": "Cassation",
|
||
"project.instance_level.unset": "(unset)",
|
||
"verlauf.spawn.chip": "Spawns into:",
|
||
"verlauf.spawn.cycle_warning": "Some cross-proceeding spawn rules were skipped due to a cycle.",
|
||
"deadlines.proceeding.selected": "Proceeding:",
|
||
"deadlines.proceeding.reselect": "Choose another proceeding",
|
||
"deadlines.step1.heading": "Step 1 — Which matter?",
|
||
"deadlines.step1.search.placeholder": "Search matters…",
|
||
"deadlines.step1.search.empty": "No matching matter.",
|
||
"deadlines.step1.divider.new": "or a new matter",
|
||
"deadlines.step1.divider.adhoc": "or ad-hoc, without a matter",
|
||
"deadlines.step1.new.cta": "+ Create new matter",
|
||
"deadlines.step1.adhoc.upc": "UPC proceeding",
|
||
"deadlines.step1.adhoc.de": "DE proceeding",
|
||
"deadlines.step1.adhoc.epa": "EPA proceeding",
|
||
"deadlines.step1.adhoc.dpma": "DPMA proceeding",
|
||
"deadlines.step1.selected": "Matter:",
|
||
"deadlines.step1.reselect": "Other matter",
|
||
"deadlines.step1.summary.adhoc.suffix": "no matter (exploration)",
|
||
"deadlines.step2.heading": "Step 2 — What do you want to do?",
|
||
"deadlines.step2.file.title": "File something",
|
||
"deadlines.step2.file.desc": "Outgoing — your action triggers a deadline.",
|
||
"deadlines.step2.happened.title": "Something happened",
|
||
"deadlines.step2.happened.desc": "Incoming — an event triggered a deadline.",
|
||
"deadlines.step2.browse.title": "Browse procedure roadmap",
|
||
"deadlines.step2.browse.desc": "Browse / Learn — see what happens when. No deadline entered.",
|
||
"deadlines.save.cta.adhoc.hint": "Ad-hoc — no matter, no save",
|
||
"deadlines.step3a.heading": "What do you want to file?",
|
||
"deadlines.step3a.back": "back to selection",
|
||
"deadlines.step3a.file.title": "File a submission",
|
||
"deadlines.step3a.file.desc": "Open the Verfahrensablauf — compute deadline and add to the matter.",
|
||
"deadlines.step3a.draft.title": "Draft a submission",
|
||
"deadlines.step3a.draft.desc": "Preparation — later linked to the drafting surface.",
|
||
"deadlines.step3a.enter.title": "Enter deadline manually",
|
||
"deadlines.step3a.enter.desc": "Direct entry — date and type already known.",
|
||
"deadlines.step3a.soon": "coming soon",
|
||
"deadlines.date.edit.hint": "Edit date — downstream deadlines will recalculate",
|
||
"deadlines.view.label": "View:",
|
||
"deadlines.view.timeline": "Timeline",
|
||
"deadlines.view.columns": "Columns",
|
||
"deadlines.notes.show": "Show details",
|
||
"deadlines.durations.show": "Show durations",
|
||
"deadlines.col.ours": "Client Side",
|
||
"deadlines.col.court": "Court",
|
||
"deadlines.col.opponent": "Opponent Side",
|
||
"deadlines.col.both": "Both parties",
|
||
"deadlines.col.proactive": "Proactive",
|
||
"deadlines.col.reactive": "Reactive",
|
||
// t-paliad-265 — per-event-card choice popover (Verfahrensablauf timeline)
|
||
"choices.caret.title": "Options for this event",
|
||
"choices.appellant.title": "Appeal by …",
|
||
"choices.appellant.claimant": "Claimant side",
|
||
"choices.appellant.defendant": "Defendant side",
|
||
"choices.appellant.both": "both parties",
|
||
"choices.appellant.none": "no appeal",
|
||
"choices.include_ccr.title": "Include nullity counterclaim",
|
||
"choices.include_ccr.true": "Yes",
|
||
"choices.include_ccr.false": "No",
|
||
"choices.skip.title": "Skip for this case",
|
||
"choices.skip.true": "Skip",
|
||
"choices.skip.false": "Include",
|
||
"choices.skipped.chip": "skipped",
|
||
"choices.appellant.chip": "Appeal:",
|
||
"choices.include_ccr.chip": "with nullity counterclaim",
|
||
"choices.reset": "Reset choice",
|
||
"choices.commit.error": "Could not save selection",
|
||
// t-paliad-290 (m/paliad#122) — re-surface hidden optional cards.
|
||
"choices.show_hidden.label": "Show hidden",
|
||
"choices.show_hidden.count": "Hidden ({n})",
|
||
"choices.unhide.chip": "Show again",
|
||
// t-paliad-293 — iconified state markers on the Verfahrensablauf
|
||
// event cards. Tooltip-only text; the glyph is the primary signal.
|
||
"state.optional.tooltip": "Optional event",
|
||
"state.hidden.tooltip": "Hidden — restore via the options menu",
|
||
"deadlines.adjusted": "Adjusted",
|
||
"deadlines.adjusted.reason": "weekend/holiday",
|
||
"deadlines.adjusted.weekend": "weekend",
|
||
"deadlines.adjusted.weekend.saturday": "Saturday",
|
||
"deadlines.adjusted.weekend.sunday": "Sunday",
|
||
"deadlines.adjusted.holiday": "{name} holiday",
|
||
"deadlines.adjusted.vacation": "{name} ({span})",
|
||
// Trigger-event mode (PR-2 — youpc-parity)
|
||
"deadlines.mode.procedure": "Course of proceedings",
|
||
"deadlines.mode.event": "What comes after…",
|
||
"deadlines.event.step1": "Select trigger event",
|
||
"deadlines.event.step1.hint": "Which event happened? (e.g. statement of claim, EPO decision, notification of an order)",
|
||
"deadlines.event.step2": "Event date",
|
||
"deadlines.event.step3": "Follow-up deadlines",
|
||
"deadlines.event.search.label": "Search trigger event",
|
||
"deadlines.event.search.placeholder": "Type to search…",
|
||
"deadlines.event.empty": "No matching events",
|
||
"deadlines.event.loading": "Loading…",
|
||
"deadlines.event.error": "Could not load events",
|
||
"deadlines.event.selected": "Selected event:",
|
||
"deadlines.event.date": "Event date:",
|
||
"deadlines.event.calculate": "Calculate follow-up deadlines",
|
||
"deadlines.event.noresults": "No follow-up deadlines configured for this event.",
|
||
"deadlines.event.results.trigger": "Trigger:",
|
||
"deadlines.event.results.date": "Date:",
|
||
"deadlines.event.adjusted": "Adjusted from",
|
||
"deadlines.search.label": "Search a deadline",
|
||
"deadlines.search.placeholder": "Statement of Defence, RoP 23, § 82, Re-establishment…",
|
||
"deadlines.search.chips.label": "Quick picks:",
|
||
"deadlines.search.empty": "Type a phrase or pick a chip below.",
|
||
"deadlines.search.loading": "Searching…",
|
||
"deadlines.search.no_hits": "No matching deadlines found.",
|
||
"deadlines.search.aliases": "Also known as:",
|
||
"deadlines.search.pills.heading": "In these proceedings:",
|
||
"deadlines.search.pills.cross_cutting": "Cross-cutting:",
|
||
"deadlines.search.pill.duration": "Duration:",
|
||
"deadlines.search.party.claimant": "Claimant",
|
||
"deadlines.search.party.defendant": "Defendant",
|
||
"deadlines.search.party.both": "both sides",
|
||
"deadlines.search.party.court": "Court",
|
||
"deadlines.search.results.count": "{n} hits",
|
||
"deadlines.search.results.count_one": "1 hit",
|
||
"deadlines.search.clear": "Clear search",
|
||
// Fristenrechner — card-click → calc panel → add-to-project (t-paliad-136 Phase B)
|
||
"deadlines.card.calc.expand_hint": "Calculate deadline or add to project",
|
||
"deadlines.card.calc.close": "close",
|
||
"deadlines.card.calc.pill_picker.label": "Which context?",
|
||
"deadlines.card.calc.pill_picker.locked_label": "Context:",
|
||
"deadlines.card.calc.pill_picker.change": "change",
|
||
"deadlines.card.calc.trigger.label": "Date of triggering event",
|
||
"deadlines.card.calc.flags.label": "Conditions:",
|
||
"deadlines.card.calc.flag.with_ccr": "With counterclaim for revocation",
|
||
"deadlines.card.calc.flag.with_amend": "With application to amend",
|
||
"deadlines.card.calc.flag.with_cci": "With counterclaim for infringement",
|
||
"deadlines.card.calc.result.due": "Deadline:",
|
||
"deadlines.card.calc.result.original_from": "from",
|
||
"deadlines.card.calc.result.from_trigger": "from",
|
||
"deadlines.card.calc.result.shifted_from": "Shifted from",
|
||
"deadlines.card.calc.result.shifted_because": "due to",
|
||
"deadlines.card.calc.result.court_set": "Court-determined — no calculable date.",
|
||
"deadlines.card.calc.result.calculating": "Calculating…",
|
||
"deadlines.card.calc.result.error": "Calculation failed.",
|
||
"deadlines.card.calc.add_to_project": "Add to project",
|
||
"deadlines.card.calc.add_to_project.disabled": "Court-determined — add manually",
|
||
"deadlines.pathway.fork.heading": "What would you like to do?",
|
||
"deadlines.pathway.a.title": "Browse a proceeding",
|
||
"deadlines.pathway.a.desc": "Pick a proceeding type and see all its deadlines on a single timeline.",
|
||
"deadlines.pathway.b.title": "File a deadline based on an event",
|
||
"deadlines.pathway.b.desc": "Something happened — find the right deadline for the matter.",
|
||
"deadlines.pathway.shortcut.label": "or jump straight to a deadline:",
|
||
"deadlines.pathway.back": "back to selection",
|
||
"deadlines.pathway.b.mode.tree": "Step-by-step (decision tree)",
|
||
"deadlines.pathway.b.mode.filter": "Filter / Search",
|
||
"deadlines.pathway.b.tree.coming_soon": "The decision tree is coming soon. Switch to \"Filter / Search\" or return to selection.",
|
||
"deadlines.pathway.b.tree.step.back": "step back",
|
||
"deadlines.pathway.b.tree.empty": "No matches for this path.",
|
||
"deadlines.pathway.b.tree.reset": "Restart",
|
||
"deadlines.pathway.b.tree.start_question": "What happened?",
|
||
"deadlines.row.mode.question": "How to search?",
|
||
"deadlines.row.edit": "edit",
|
||
"deadlines.row.prefilled.from_akte": "from matter",
|
||
"deadlines.row.reset": "Reset path",
|
||
"deadlines.row.reset.title": "Reset path — discard all cascade answers",
|
||
"deadlines.row.search.link": "Search directly",
|
||
"deadlines.row.search.link.title": "Search directly for a deadline — skips the decision tree",
|
||
"deadlines.row.autowalk.tooltip": "These steps were derived from your matter. Click \"edit\" to override any answer manually.",
|
||
"deadlines.row.autowalk.dismiss": "Dismiss hint",
|
||
"deadlines.row.search.panel.back": "Back to decision tree",
|
||
"deadlines.row.search.panel.back.title": "Close inline search and return to the decision tree",
|
||
"deadlines.row.search.panel.placeholder": "Search for a deadline — e.g. \"statement of claim\", \"hint order\"…",
|
||
"deadlines.row.search.panel.clear": "Clear input",
|
||
"deadlines.inbox.label": "Where did it arrive?",
|
||
"deadlines.inbox.cms.title": "UPC — via CMS",
|
||
"deadlines.inbox.bea.title": "National-DE — via beA",
|
||
"deadlines.inbox.posteingang.title": "National-DE — postal mail",
|
||
"deadlines.inbox.posteingang": "Postal",
|
||
"deadlines.inbox.all": "All",
|
||
"deadlines.filter.forum.label": "Forum / System:",
|
||
"deadlines.filter.forum.upc_cfi": "UPC CFI",
|
||
"deadlines.filter.forum.upc_coa": "UPC CoA",
|
||
"deadlines.filter.forum.de_lg": "DE LG",
|
||
"deadlines.filter.forum.de_olg": "DE OLG",
|
||
"deadlines.filter.forum.de_bgh": "DE BGH",
|
||
"deadlines.filter.forum.de_bpatg": "DE BPatG",
|
||
"deadlines.filter.forum.epa_grant": "EPO Examining",
|
||
"deadlines.filter.forum.epa_opp": "EPO Opposition",
|
||
"deadlines.filter.forum.epa_appeal": "EPO Board of Appeal",
|
||
"deadlines.filter.forum.dpma": "DPMA",
|
||
"deadlines.perspective.label": "I represent:",
|
||
"deadlines.perspective.claimant": "Claimant side (Proactive)",
|
||
"deadlines.perspective.defendant": "Defendant side (Reactive)",
|
||
"deadlines.perspective.claimant.short": "Claimant",
|
||
"deadlines.perspective.defendant.short": "Defendant",
|
||
"deadlines.perspective.both.short": "Both",
|
||
"deadlines.perspective.claimant.title": "Claimant side — hides typical defendant submissions",
|
||
"deadlines.perspective.defendant.title": "Defendant side — hides typical claimant submissions",
|
||
"deadlines.perspective.appeal_filed_by.label": "Appeal filed by:",
|
||
"deadlines.perspective.predefined_hint": "predefined from project",
|
||
"deadlines.side.label": "Side:",
|
||
"deadlines.side.claimant": "Claimant",
|
||
"deadlines.side.defendant": "Defendant",
|
||
"deadlines.side.undefined": "Undefined",
|
||
"deadlines.side.from_project": "From case:",
|
||
"deadlines.side.override": "Choose other side",
|
||
"deadlines.side.hint": "Pick a side to focus the columns.",
|
||
"deadlines.event.composite.label": "Composite:",
|
||
"deadlines.event.unit.days.one": "day",
|
||
"deadlines.event.unit.days.many": "days",
|
||
"deadlines.event.unit.weeks.one": "week",
|
||
"deadlines.event.unit.weeks.many": "weeks",
|
||
"deadlines.event.unit.months.one": "month",
|
||
"deadlines.event.unit.months.many": "months",
|
||
"deadlines.event.unit.working_days.one": "working day",
|
||
"deadlines.event.unit.working_days.many": "working days",
|
||
"deadlines.event.timing.before": "before",
|
||
"deadlines.event.timing.after": "after",
|
||
|
||
// Downloads
|
||
"downloads.title": "Downloads \u2014 Paliad",
|
||
"downloads.heading": "Downloads",
|
||
"downloads.subtitle": `Files and templates for the ${FIRM} patent team.`,
|
||
"downloads.style.title": `${FIRM} Patents Style`,
|
||
"downloads.style.desc": `Word template in ${FIRM} Patents style. Formatting, fonts, and macros for standardised briefs.`,
|
||
"downloads.btn": "Download",
|
||
|
||
// Links
|
||
"links.title": "Links \u2014 Paliad",
|
||
"links.heading": "Links",
|
||
"links.subtitle": "Useful external links for daily patent practice.",
|
||
"links.filter.all": "All",
|
||
"links.search.placeholder": "Search by title, description...",
|
||
"links.empty": "No links in this category.",
|
||
"links.suggest.btn": "Suggest a Link",
|
||
"links.suggest.title": "Suggest a Link",
|
||
"links.suggest.name": "Title",
|
||
"links.suggest.category": "Category",
|
||
"links.suggest.desc": "Description",
|
||
"links.suggest.submit": "Submit",
|
||
"links.suggest.cancel": "Cancel",
|
||
"links.suggest.success": "Thank you! Your suggestion will be reviewed.",
|
||
"links.suggest.error": "Error saving. Please try again.",
|
||
"links.pending": "suggestions pending review",
|
||
"links.feedback.title": "Feedback",
|
||
"links.feedback.type": "Type",
|
||
"links.feedback.broken": "Link broken",
|
||
"links.feedback.outdated": "Outdated",
|
||
"links.feedback.update": "Needs updating",
|
||
"links.feedback.other": "Other",
|
||
"links.feedback.message": "Message",
|
||
"links.feedback.placeholder": "What's wrong? (e.g. link broken, outdated...)",
|
||
"links.feedback.submit": "Submit",
|
||
"links.feedback.success": "Thank you for your feedback!",
|
||
|
||
// Glossar
|
||
"glossar.title": "Patent Glossary \u2014 Paliad",
|
||
"glossar.heading": "Patent Glossary",
|
||
"glossar.subtitle": "Bilingual glossary of key patent law terminology.",
|
||
"glossar.search.placeholder": "Search...",
|
||
"glossar.filter.all": "All",
|
||
"glossar.filter.litigation": "Litigation",
|
||
"glossar.filter.prosecution": "Prosecution",
|
||
"glossar.filter.general": "General",
|
||
"glossar.col.de": "German",
|
||
"glossar.col.en": "English",
|
||
"glossar.col.definition": "Definition",
|
||
"glossar.empty": "No matches found.",
|
||
"glossar.suggest": "Suggest a term",
|
||
"glossar.suggest.title": "Suggest a new term",
|
||
"glossar.suggest.de": "German term",
|
||
"glossar.suggest.en": "English term",
|
||
"glossar.suggest.definition": "Definition (optional)",
|
||
"glossar.suggest.category": "Category",
|
||
"glossar.suggest.cancel": "Cancel",
|
||
"glossar.suggest.submit": "Submit",
|
||
"glossar.suggest.success": "Suggestion submitted. Thank you!",
|
||
"glossar.suggest.error.required": "Please enter both DE and EN terms.",
|
||
"glossar.suggest.error.generic": "Error submitting. Please try again.",
|
||
"glossar.feedback.title": "Suggest a correction",
|
||
"glossar.feedback.tooltip": "Suggest a correction",
|
||
|
||
// Geb\u00fchrentabellen
|
||
"gebuehren.title": "Fee Schedules \u2014 Paliad",
|
||
"gebuehren.heading": "Fee Schedules",
|
||
"gebuehren.subtitle": "Interactive fee schedules for GKG, RVG, UPC, EPO, and PatKostG.",
|
||
"gebuehren.streitwert": "Dispute Value (EUR)",
|
||
"gebuehren.streitwert.placeholder": "e.g. 1,000,000",
|
||
"gebuehren.lookup": "Look up",
|
||
"gebuehren.current": "Current",
|
||
"gebuehren.col.streitwert": "Dispute Value (EUR)",
|
||
"gebuehren.col.fee": "1.0 Fee (EUR)",
|
||
"gebuehren.col.maxvalue": "up to value (EUR)",
|
||
"gebuehren.col.courtfee": "Court Fee (EUR)",
|
||
"gebuehren.upc.valuebased": "Value-based Fees",
|
||
"gebuehren.upc.recoverable": "Recoverable Costs (Ceiling)",
|
||
"gebuehren.upc.ceiling": "Ceiling (EUR)",
|
||
"gebuehren.epa.proceeding": "Proceeding",
|
||
"gebuehren.epa.fee": "Fee (EUR)",
|
||
"gebuehren.epa.smefee": "SME Fee (EUR)",
|
||
"gebuehren.multipliers.title": "Fee Multipliers",
|
||
"gebuehren.multipliers.desc": "Factors for calculating court and attorney fees per instance.",
|
||
"gebuehren.multipliers.instance": "Instance",
|
||
"gebuehren.multipliers.courtfee": "Court",
|
||
"gebuehren.multipliers.factor": "Factor",
|
||
"gebuehren.multipliers.basis": "Basis",
|
||
"gebuehren.patkostg.court": "Court Fees (BPatG / BGH)",
|
||
"gebuehren.patkostg.dpma": "DPMA Fees",
|
||
"gebuehren.patkostg.annual": "Annual Renewal Fees (Patent)",
|
||
"gebuehren.patkostg.year": "Patent Year",
|
||
"gebuehren.patkostg.note": "Note",
|
||
"gebuehren.patkostg.item": "Fee Item",
|
||
"gebuehren.feedback.btn": "Feedback",
|
||
"gebuehren.feedback.title": "Fee Schedule Feedback",
|
||
"gebuehren.feedback.type": "Type",
|
||
"gebuehren.feedback.error": "Error found",
|
||
"gebuehren.feedback.missing": "Missing data",
|
||
"gebuehren.feedback.suggestion": "Improvement suggestion",
|
||
"gebuehren.feedback.other": "Other",
|
||
"gebuehren.feedback.schedule": "Regarding",
|
||
"gebuehren.feedback.general": "General",
|
||
"gebuehren.feedback.message": "Message",
|
||
"gebuehren.feedback.submit": "Submit",
|
||
"gebuehren.feedback.cancel": "Cancel",
|
||
"gebuehren.feedback.success": "Thank you for your feedback!",
|
||
"gebuehren.feedback.error.required": "Please enter a message.",
|
||
"gebuehren.feedback.error.generic": "Error submitting. Please try again.",
|
||
|
||
// Index \u2014 Geb\u00fchrentabellen card
|
||
"index.gebuehren.title": "Fee Schedules",
|
||
"index.gebuehren.desc": "Interactive fee schedules for GKG, RVG, UPC, EPO, and PatKostG. Enter a dispute value, read the fee.",
|
||
|
||
// Checklisten
|
||
"index.checklisten.title": "Checklists",
|
||
"index.checklisten.desc": "Interactive filing checklists for UPC, German, and EPO proceedings. Multiple instances per template, linkable to an Akte.",
|
||
"checklisten.title": "Checklists \u2014 Paliad",
|
||
"checklisten.heading": "Checklists",
|
||
"checklisten.subtitle": "Interactive checklists for typical procedural steps before the UPC, German Patent Court, and EPO. Tick off, print, miss nothing.",
|
||
"checklisten.tab.templates": "Templates",
|
||
"checklisten.tab.mine": "My templates",
|
||
"checklisten.tab.instances": "Existing instances",
|
||
"checklisten.mine.empty": "You haven't authored a template yet.",
|
||
"checklisten.tab.gallery": "Shared templates",
|
||
"checklisten.gallery.empty": "No shared templates visible yet.",
|
||
"checklisten.filter.other": "Other",
|
||
"checklisten.instance.outdated.badge": "Template updated",
|
||
"checklisten.instance.outdated.note": "The underlying template has been updated since this instance was created (v{from} → v{to}).",
|
||
"checklisten.instance.outdated.diff": "Show changes",
|
||
"checklisten.instance.diff.title": "Changed items",
|
||
"checklisten.instance.diff.close": "Close",
|
||
"checklisten.instance.diff.added": "Added",
|
||
"checklisten.instance.diff.removed": "Removed",
|
||
"checklisten.instance.diff.changed": "Changed",
|
||
"checklisten.instance.diff.empty": "No content differences in items.",
|
||
"checklisten.instance.diff.error": "Diff failed.",
|
||
"checklisten.mine.new": "New template",
|
||
"checklisten.mine.loading": "Loading…",
|
||
"checklisten.mine.visibility.private": "Private",
|
||
"checklisten.mine.visibility.firm": "Firm-wide",
|
||
"checklisten.mine.visibility.shared": "Shared",
|
||
"checklisten.mine.visibility.global": "In catalog",
|
||
"checklisten.mine.edit": "Edit",
|
||
"checklisten.mine.delete": "Delete",
|
||
"checklisten.mine.delete.confirm": "Delete template \"{title}\"? Existing instances remain.",
|
||
"checklisten.mine.delete.error": "Delete failed.",
|
||
"checklisten.mine.origin.authored": "Your template",
|
||
"checklisten.author.title": "Author template — Paliad",
|
||
"checklisten.author.title.edit": "Edit template — Paliad",
|
||
"checklisten.author.heading.new": "New checklist template",
|
||
"checklisten.author.heading.edit": "Edit template",
|
||
"checklisten.author.subtitle": "Author your own checklist with sections and items. Keep it private or open it firm-wide.",
|
||
"checklisten.author.field.title": "Title",
|
||
"checklisten.author.field.title.hint": "e.g. \"UPC SoC — internal checklist\".",
|
||
"checklisten.author.field.description": "Short description",
|
||
"checklisten.author.field.regime": "Regime",
|
||
"checklisten.author.field.court": "Court / authority",
|
||
"checklisten.author.field.reference": "Legal source",
|
||
"checklisten.author.field.deadline": "Deadline (optional)",
|
||
"checklisten.author.field.lang": "Language",
|
||
"checklisten.author.field.visibility": "Visibility",
|
||
"checklisten.author.visibility.private.hint": "Visible only to you.",
|
||
"checklisten.author.visibility.firm.hint": "Visible to every authenticated colleague.",
|
||
"checklisten.author.groups.heading": "Sections and items",
|
||
"checklisten.author.groups.add": "+ Add section",
|
||
"checklisten.author.group.title": "Section title",
|
||
"checklisten.author.group.remove": "Remove section",
|
||
"checklisten.author.item.add": "+ Add item",
|
||
"checklisten.author.item.label": "Item",
|
||
"checklisten.author.item.note": "Note (optional)",
|
||
"checklisten.author.item.rule": "Rule (optional)",
|
||
"checklisten.author.item.remove": "Remove item",
|
||
"checklisten.author.save": "Save",
|
||
"checklisten.author.cancel": "Cancel",
|
||
"checklisten.author.saving": "Saving…",
|
||
"checklisten.author.error.title": "Please enter a title.",
|
||
"checklisten.author.error.no_groups": "Please add at least one section with one item.",
|
||
"checklisten.author.error.generic": "Save failed. Please try again.",
|
||
"checklisten.author.error.notfound": "Template not found or you don't have permission to edit it.",
|
||
"checklisten.detail.edit": "Edit",
|
||
"checklisten.detail.delete": "Delete",
|
||
"checklisten.detail.share": "Share",
|
||
"checklisten.detail.promote": "Add to firm catalog",
|
||
"checklisten.detail.demote": "Remove from catalog",
|
||
"checklisten.detail.promote.confirm": "Add this template to the firm catalog? Every colleague will see it under Templates.",
|
||
"checklisten.detail.demote.confirm": "Remove this template from the firm catalog? It stays firm-visible.",
|
||
"checklisten.detail.promote.error": "Promotion failed.",
|
||
"checklisten.detail.delete.confirm": "Delete template \"{title}\"? Existing instances remain.",
|
||
"checklisten.detail.delete.error": "Delete failed.",
|
||
"checklisten.detail.authored.by": "Authored by {author}",
|
||
"checklisten.detail.visibility": "Visibility: {state}",
|
||
"checklisten.detail.visibility.set.firm": "Share with firm",
|
||
"checklisten.detail.visibility.set.private": "Make private",
|
||
"checklisten.detail.visibility.error": "Couldn't change visibility.",
|
||
"checklisten.share.title": "Share template",
|
||
"checklisten.share.kind": "Recipient type",
|
||
"checklisten.share.kind.user": "Colleague",
|
||
"checklisten.share.kind.office": "Office",
|
||
"checklisten.share.kind.partner_unit": "Practice unit",
|
||
"checklisten.share.kind.project": "Project",
|
||
"checklisten.share.pick": "— pick —",
|
||
"checklisten.share.submit": "Share",
|
||
"checklisten.share.cancel": "Cancel",
|
||
"checklisten.share.error.pick": "Please pick a recipient.",
|
||
"checklisten.share.error.generic": "Share failed.",
|
||
"checklisten.share.success": "Shared.",
|
||
"checklisten.share.grants.heading": "Existing grants",
|
||
"checklisten.share.grants.empty": "No grants.",
|
||
"checklisten.share.grants.revoke": "Remove",
|
||
"checklisten.share.grants.revoke.confirm": "Remove this grant?",
|
||
"checklisten.share.grants.revoke.error": "Revoke failed.",
|
||
"checklisten.share.grants.recipient.user": "Colleague",
|
||
"checklisten.share.grants.recipient.office": "Office",
|
||
"checklisten.share.grants.recipient.partner_unit": "Practice unit",
|
||
"checklisten.share.grants.recipient.project": "Project",
|
||
"checklisten.instances.all.loading": "Loading…",
|
||
"checklisten.instances.all.empty": "No checklist instances yet. Create one from the Templates tab.",
|
||
"checklisten.instances.all.col.template": "Template",
|
||
"checklisten.instances.all.col.name": "Name",
|
||
"checklisten.instances.all.col.project": "Project",
|
||
"checklisten.instances.all.col.progress": "Progress",
|
||
"checklisten.instances.all.col.created": "Created",
|
||
"checklisten.instances.all.personal": "Personal",
|
||
"checklisten.filter.all": "All",
|
||
"checklisten.filter.de": "DE",
|
||
"checklisten.empty": "No checklists in this category.",
|
||
"checklisten.back": "Back to overview",
|
||
"checklisten.print": "Print",
|
||
"checklisten.reset": "Reset",
|
||
"checklisten.reset.confirm": "Really reset all checkboxes for this instance?",
|
||
"checklisten.reset.error": "Reset failed. Please try again.",
|
||
"checklisten.notfound": "Checklist not found.",
|
||
"checklisten.newInstance": "New instance",
|
||
"checklisten.newInstance.title": "New checklist instance",
|
||
"checklisten.newInstance.name": "Name",
|
||
"checklisten.newInstance.name.hint": "e.g. \u201CMueller v. Schmidt \u2014 SoC\u201D.",
|
||
"checklisten.newInstance.akte": "Akte (optional)",
|
||
"checklisten.newInstance.akte.none": "\u2014 no Akte \u2014",
|
||
"checklisten.newInstance.akte.hint": "When linked, office colleagues can see the instance.",
|
||
"checklisten.newInstance.cancel": "Cancel",
|
||
"checklisten.newInstance.submit": "Create",
|
||
"checklisten.newInstance.error.name": "Please enter a name.",
|
||
"checklisten.newInstance.error.generic": "Failed to create instance. Please try again.",
|
||
"checklisten.instances.heading": "Instances",
|
||
"checklisten.instances.sub": "Each instance tracks its own progress and can optionally be linked to an Akte.",
|
||
"checklisten.instances.loading": "Loading\u2026",
|
||
"checklisten.instances.empty": "No instances yet. Click \u201CNew instance\u201D to start.",
|
||
"checklisten.instances.col.name": "Name",
|
||
"checklisten.instances.col.progress": "Progress",
|
||
"checklisten.instances.col.akte": "Akte",
|
||
"checklisten.instances.col.created": "Created",
|
||
"checklisten.instances.delete.confirm": "Really delete instance \u201C{name}\u201D?",
|
||
"checklisten.instances.delete.error": "Failed to delete.",
|
||
"checklisten.instance.title": "Checklist instance \u2014 Paliad",
|
||
"checklisten.instance.back": "Back to template",
|
||
"checklisten.instance.loading": "Loading\u2026",
|
||
"checklisten.instance.notfound": "Instance not found or not authorised.",
|
||
"checklisten.instance.rename": "Rename",
|
||
"checklisten.instance.rename.save": "Save",
|
||
"checklisten.instance.rename.error": "Rename failed.",
|
||
"checklisten.instance.akte.open": "Open",
|
||
"checklisten.disclaimer": "Note: These checklists are aides-memoire only and do not replace case-by-case review. The applicable procedural rules are controlling.",
|
||
"checklisten.feedback.btn": "Feedback",
|
||
"checklisten.feedback.title": "Checklist feedback",
|
||
"checklisten.feedback.type": "Type",
|
||
"checklisten.feedback.error": "Error found",
|
||
"checklisten.feedback.missing": "Missing item",
|
||
"checklisten.feedback.suggestion": "Improvement suggestion",
|
||
"checklisten.feedback.other": "Other",
|
||
"checklisten.feedback.message": "Message",
|
||
"checklisten.feedback.submit": "Submit",
|
||
"checklisten.feedback.cancel": "Cancel",
|
||
"checklisten.feedback.success": "Thank you for your feedback!",
|
||
"checklisten.feedback.error.required": "Please enter a message.",
|
||
"checklisten.feedback.error.generic": "Error submitting. Please try again.",
|
||
|
||
// Gerichte
|
||
"gerichte.title": "Court Directory \u2014 Paliad",
|
||
"gerichte.heading": "Court Directory",
|
||
"gerichte.subtitle": "Contacts, addresses, and filing details for courts, divisions, and offices relevant to patent practice.",
|
||
"gerichte.search.placeholder": "Search by name, city, type...",
|
||
"gerichte.filter.type": "Type:",
|
||
"gerichte.filter.country": "Country:",
|
||
"gerichte.filter.all": "All",
|
||
"gerichte.filter.de": "Germany",
|
||
"gerichte.filter.epa": "EPO",
|
||
"gerichte.filter.national": "National",
|
||
"gerichte.empty": "No matches found.",
|
||
"gerichte.field.address": "Address",
|
||
"gerichte.field.contact": "Contact",
|
||
"gerichte.field.fax": "Fax",
|
||
"gerichte.field.filing": "Filing",
|
||
"gerichte.field.notes": "Practical notes",
|
||
"gerichte.field.hlContact": `${FIRM} contact`,
|
||
"gerichte.feedback.btn": "Suggest a correction",
|
||
"gerichte.feedback.title": "Suggest a correction",
|
||
"gerichte.feedback.court": "Court",
|
||
"gerichte.feedback.type": "Type of feedback",
|
||
"gerichte.feedback.type.address": "Address / contact details",
|
||
"gerichte.feedback.type.filing": "Filing details",
|
||
"gerichte.feedback.type.notes": "Practical notes",
|
||
"gerichte.feedback.type.missing": "Missing court",
|
||
"gerichte.feedback.type.other": "Other",
|
||
"gerichte.feedback.message": "Message",
|
||
"gerichte.feedback.cancel": "Cancel",
|
||
"gerichte.feedback.submit": "Submit",
|
||
"gerichte.feedback.success": "Thank you \u2014 your feedback has been recorded.",
|
||
"gerichte.feedback.error.required": "Please enter a message.",
|
||
"gerichte.feedback.error.generic": "Error submitting. Please try again.",
|
||
|
||
// Index \u2014 Gerichte card
|
||
"index.gerichte.title": "Court Directory",
|
||
"index.gerichte.desc": "Courts, UPC divisions and patent offices at a glance \u2014 addresses, filing details, and languages.",
|
||
|
||
// Akten (matters) \u2014 list
|
||
"projects.filter.office": "Office",
|
||
"projects.filter.office.all": "All offices",
|
||
"projects.filter.status.completed": "Completed",
|
||
"projects.status.active": "Active",
|
||
"projects.status.completed": "Completed",
|
||
"projects.status.archived": "Archived",
|
||
"projects.col.ref": "Reference",
|
||
"projects.col.office": "Office",
|
||
"projects.onboarding.required": "Please complete onboarding before creating matters.",
|
||
|
||
// Akten \u2014 create form
|
||
"projects.field.ref": "Reference number",
|
||
"projects.field.ref.placeholder": `e.g. ${FIRM}-2026-0042`,
|
||
"projects.field.office": "Owning office",
|
||
"projects.field.courtRef": "Court reference (optional)",
|
||
"projects.field.akteType": "Proceeding type (optional)",
|
||
"projects.field.firmWide": "Firm-wide visible",
|
||
"projects.field.firmWide.hint": "When enabled, all lawyers can see this matter. Partners/admins only.",
|
||
"projects.field.collaborators": "Additional collaborators (optional)",
|
||
"projects.field.collaborators.placeholder": "Type a name or email\u2026",
|
||
"projects.field.collaborators.hint": "Users who should also have access (including cross-office).",
|
||
"projects.error.required": "Title and reference are required.",
|
||
"projects.error.generic": "Error creating matter. Please try again.",
|
||
"projects.error.forbidden": "Not allowed. Check your role and office.",
|
||
|
||
// Akten \u2014 detail
|
||
"projects.detail.firmwide.on": "Firm-wide visible",
|
||
"projects.detail.firmwide.off": "Office-only",
|
||
"projects.detail.checklisten.hint": "Instances are created on the template page under \"Checklists\".",
|
||
"projects.detail.verlauf.loadingMore": "Loading \u2026",
|
||
"projects.detail.parteien.remove": "Remove",
|
||
"projects.detail.parteien.remove.confirm": "Really remove this party?",
|
||
|
||
// Phase E — Fristen (persistent deadlines)
|
||
"deadlines.list.title": "Deadlines \u2014 Paliad",
|
||
"deadlines.list.heading": "Deadlines",
|
||
"deadlines.list.subtitle": "Persistent deadlines for your matters. Overdue, today, this week, next week \u2014 at a glance.",
|
||
"deadlines.list.new": "New deadline",
|
||
"deadlines.summary.overdue": "Overdue",
|
||
"deadlines.summary.today": "Today",
|
||
"deadlines.summary.thisweek": "This week",
|
||
"deadlines.summary.nextweek": "Next week",
|
||
"deadlines.summary.completed": "Done",
|
||
"deadlines.summary.later": "Later",
|
||
"deadlines.filter.status": "Status",
|
||
"deadlines.filter.akte": "Matter",
|
||
"deadlines.filter.all": "All (open & completed)",
|
||
"deadlines.filter.pending": "All open",
|
||
"deadlines.filter.overdue": "Overdue",
|
||
"deadlines.filter.today": "Today",
|
||
"deadlines.filter.thisweek": "This week",
|
||
"deadlines.filter.nextweek": "Next week",
|
||
"deadlines.filter.completed": "Done",
|
||
"deadlines.filter.later": "Later",
|
||
"deadlines.filter.akte.all": "All matters",
|
||
"deadlines.col.due": "Due",
|
||
"deadlines.col.title": "Title",
|
||
"deadlines.col.akte": "Matter",
|
||
"deadlines.col.rule": "Rule",
|
||
"deadlines.col.status": "Status",
|
||
"deadlines.empty.title": "No deadlines yet",
|
||
"deadlines.empty.hint": "Once deadlines are added or imported from the calculator, they appear here.",
|
||
"deadlines.empty.filtered": "No deadlines match these filters.",
|
||
"deadlines.unavailable": "Deadline management currently unavailable \u2014 please contact your administrator.",
|
||
"deadlines.status.pending": "Open",
|
||
"deadlines.status.completed": "Completed",
|
||
"deadlines.status.cancelled": "Cancelled",
|
||
"deadlines.status.waived": "Waived",
|
||
"deadlines.urgency.overdue": "Overdue",
|
||
"deadlines.urgency.today": "Today",
|
||
"deadlines.urgency.soon": "Soon",
|
||
"deadlines.urgency.later": "Later",
|
||
"deadlines.complete.action": "Complete",
|
||
"deadlines.complete.confirm": "Mark deadline \u201c{title}\u201d as completed?",
|
||
|
||
// t-paliad-139 \u2014 subtree aggregation toggle and attribution chip
|
||
"aggregation.toggle.subtree": "Incl. sub-projects",
|
||
"aggregation.toggle.direct_only": "Direct only",
|
||
"aggregation.attribution.on": "on",
|
||
|
||
// t-paliad-139 Phase 2 \u2014 Team-tab subsections + Partner Units management
|
||
"projects.team.section.from_descendants": "From sub-projects",
|
||
"projects.team.section.from_descendants.hint": "People directly staffed on a sub-project who are not on this project or an ancestor.",
|
||
"projects.team.section.derived": "Derived (Partner Unit)",
|
||
"projects.team.section.derived.hint": "Members active on this project via an attached partner unit.",
|
||
"projects.team.section.units": "Partner Units",
|
||
"projects.team.section.units.hint": "Partner units attached to this project. Members in the listed unit roles auto-derive.",
|
||
"projects.team.derived.from": "via",
|
||
"projects.team.derived.visibility": "View",
|
||
"projects.team.derived.authority": "View & 4-eye",
|
||
"projects.team.derived.authority.hint": "Authority: derived members count as approvers.",
|
||
"projects.team.units.attach": "Attach partner unit",
|
||
"projects.team.units.detach": "Remove",
|
||
"projects.team.units.choose": "Select a unit\u2026",
|
||
"projects.team.units.select": "Unit",
|
||
"projects.team.units.derive_roles": "Which unit roles should derive?",
|
||
"projects.team.units.grants_authority": "Grant authority (4-eye)",
|
||
"projects.team.units.col.name": "Unit",
|
||
"projects.team.units.col.derive_roles": "Derived roles",
|
||
"projects.team.units.col.authority": "Authority",
|
||
"projects.team.units.members": "members",
|
||
"projects.team.units.empty": "No partner units attached.",
|
||
"projects.team.units.confirm_detach": "Remove partner unit?",
|
||
"unit_role.lead": "Lead",
|
||
"unit_role.attorney": "Attorney",
|
||
"unit_role.senior_pa": "Senior PA",
|
||
"unit_role.pa": "PA",
|
||
"unit_role.paralegal": "Paralegal",
|
||
|
||
"deadlines.neu.title": "New deadline \u2014 Paliad",
|
||
"deadlines.neu.heading": "Create new deadline",
|
||
"deadlines.neu.subtitle": "A persistent deadline attached to a matter. Visible to anyone who can see that matter.",
|
||
"deadlines.neu.back": "\u2190 Back to list",
|
||
"deadlines.neu.cancel": "Cancel",
|
||
"deadlines.neu.submit": "Create deadline",
|
||
"deadlines.field.akte": "Matter",
|
||
"deadlines.field.akte.choose": "Please choose\u2026",
|
||
"deadlines.field.akte.empty": "You don't have any matters yet. Please create one first.",
|
||
"deadlines.field.akte.empty.link": "Create matter",
|
||
"deadlines.field.title": "Title",
|
||
"deadlines.field.title.placeholder": "e.g. File statement of defence",
|
||
"deadlines.field.due": "Due date",
|
||
"deadlines.field.rule": "Rule (optional)",
|
||
"deadlines.field.rule.auto_badge": "Auto",
|
||
"deadlines.field.rule.auto_no_match": "No rule maps to the chosen Type",
|
||
"deadlines.field.rule.auto_pick_type": "Pick a Type first",
|
||
"deadlines.field.rule.custom_badge": "Custom",
|
||
"deadlines.field.rule.custom_placeholder": "e.g. internal review meeting, client call",
|
||
"deadlines.field.rule.mode.toggle_to_auto": "Back to Auto",
|
||
"deadlines.field.rule.mode.toggle_to_custom": "Enter custom rule",
|
||
"deadlines.field.title.default_btn": "Default title",
|
||
"deadlines.field.title.default_fallback": "New deadline",
|
||
"deadlines.field.notes": "Notes (optional)",
|
||
"deadlines.field.notes.placeholder": "References, hints, next steps\u2026",
|
||
"deadlines.error.required": "Matter, title and due date are required.",
|
||
"deadlines.error.generic": "Error creating deadline. Please try again.",
|
||
|
||
"deadlines.detail.title": "Deadline \u2014 Paliad",
|
||
"deadlines.detail.back": "\u2190 Back to deadlines",
|
||
"deadlines.detail.loading": "Loading\u2026",
|
||
"deadlines.detail.notfound": "Deadline not found or not accessible.",
|
||
"deadlines.detail.complete": "Mark as completed",
|
||
"deadlines.detail.completed.already": "Already completed",
|
||
"deadlines.detail.reopen": "Reopen",
|
||
"deadlines.action.reopen": "Reopen",
|
||
"deadlines.detail.edit": "Edit",
|
||
"deadlines.detail.save": "Save",
|
||
"deadlines.detail.cancel": "Cancel",
|
||
"deadlines.detail.delete": "Delete deadline",
|
||
"deadlines.detail.delete.confirm.title": "Really delete this deadline?",
|
||
"deadlines.detail.delete.confirm.body": "The deadline will be permanently removed. The entry in the matter activity log is preserved.",
|
||
"deadlines.detail.delete.confirm.cancel": "Cancel",
|
||
"deadlines.detail.delete.confirm.ok": "Delete",
|
||
"deadlines.detail.due": "Due date",
|
||
"deadlines.detail.rule": "Rule",
|
||
"deadlines.detail.source": "Source",
|
||
"deadlines.detail.notes": "Notes",
|
||
"deadlines.detail.created": "Created",
|
||
"deadlines.detail.completed": "Completed on",
|
||
"deadlines.source.manual": "Manual",
|
||
"deadlines.source.fristenrechner": "Calculator",
|
||
"deadlines.source.caldav": "CalDAV",
|
||
"deadlines.source.imported": "Import",
|
||
|
||
"cal.day.mon": "Mon",
|
||
"cal.day.tue": "Tue",
|
||
"cal.day.wed": "Wed",
|
||
"cal.day.thu": "Thu",
|
||
"cal.day.fri": "Fri",
|
||
"cal.day.sat": "Sat",
|
||
"cal.day.sun": "Sun",
|
||
"cal.month.0": "January",
|
||
"cal.month.1": "February",
|
||
"cal.month.2": "March",
|
||
"cal.month.3": "April",
|
||
"cal.month.4": "May",
|
||
"cal.month.5": "June",
|
||
"cal.month.6": "July",
|
||
"cal.month.7": "August",
|
||
"cal.month.8": "September",
|
||
"cal.month.9": "October",
|
||
"cal.month.10": "November",
|
||
"cal.month.11": "December",
|
||
"cal.view.month": "Month",
|
||
"cal.view.week": "Week",
|
||
"cal.view.day": "Day",
|
||
"cal.month.prev": "Previous month",
|
||
"cal.month.next": "Next month",
|
||
"cal.week.prev": "Previous week",
|
||
"cal.week.next": "Next week",
|
||
"cal.day.prev": "Previous day",
|
||
"cal.day.next": "Next day",
|
||
"cal.day.back_to_month": "Back to month",
|
||
"cal.today": "Today",
|
||
"cal.day.open_day": "Open day view",
|
||
"cal.day.no_entries": "Nothing scheduled this day.",
|
||
|
||
// Akten detail — Fristen tab (Phase E)
|
||
|
||
// Fristenrechner — save to Akte (Phase E)
|
||
"deadlines.save.cta": "Save as deadline(s)",
|
||
"deadlines.save.modal.title": "Import deadlines",
|
||
"deadlines.save.modal.akte": "Matter",
|
||
"deadlines.save.modal.akte.choose": "Please choose\u2026",
|
||
"deadlines.save.modal.choose": "Select which deadlines to import:",
|
||
"deadlines.save.modal.cancel": "Cancel",
|
||
"deadlines.save.modal.submit": "Import",
|
||
"deadlines.save.modal.no_akten": "You don't have any matters yet. Please create one first.",
|
||
"deadlines.save.modal.no_akten.link": "Create matter",
|
||
"deadlines.save.success": "Deadlines imported.",
|
||
"deadlines.save.success.link": "Open deadlines",
|
||
"deadlines.save.error": "Import failed.",
|
||
"deadlines.save.skip_court_set": "Court-set entries with no date will be skipped.",
|
||
|
||
// Fristenrechner overhaul — shared result view (S2, design §4).
|
||
"deadlines.overhaul.loading": "Loading follow-up deadlines…",
|
||
"deadlines.overhaul.load_error": "Could not load follow-up deadlines.",
|
||
"deadlines.overhaul.empty": "No follow-up deadlines configured for this event.",
|
||
"deadlines.overhaul.trigger.label": "Trigger event",
|
||
"deadlines.overhaul.trigger.date": "Trigger date:",
|
||
"deadlines.overhaul.followups.label": "Follow-up deadlines",
|
||
"deadlines.overhaul.group.mandatory": "Mandatory",
|
||
"deadlines.overhaul.group.recommended": "Recommended",
|
||
"deadlines.overhaul.group.optional": "Optional",
|
||
"deadlines.overhaul.group.conditional": "Conditional",
|
||
"deadlines.overhaul.spawn.badge": "⇲ new proceeding",
|
||
"deadlines.overhaul.spawn.tooltip": "This rule initiates a new proceeding.",
|
||
"deadlines.detail.label": "Detail:",
|
||
"deadlines.detail.mandatory_only": "Mandatory only",
|
||
"deadlines.detail.selected": "Selected",
|
||
"deadlines.detail.all_options": "All options",
|
||
"deadlines.detail.optional_unselected_hint": "This rule is optional and not part of the current scenario.",
|
||
"deadlines.detail.aufnehmen": "Add",
|
||
"deadlines.detail.entfernen": "Remove",
|
||
"deadlines.overhaul.condition.badge": "Conditional",
|
||
"deadlines.overhaul.crossparty.badge": "Other side",
|
||
"deadlines.overhaul.crossparty.tooltip": "This deadline is filed by the opposing party. Shown for information only — not added to the Akte.",
|
||
"deadlines.overhaul.notes.summary": "Note",
|
||
"deadlines.overhaul.edit_date.label": "✏ Date",
|
||
"deadlines.overhaul.edit_date.title": "Edit date manually",
|
||
"deadlines.overhaul.select_rule": "Select deadline",
|
||
"deadlines.overhaul.footer.count": "{n} deadlines selected",
|
||
"deadlines.overhaul.footer.cta": "Add to project",
|
||
"deadlines.overhaul.nudge.no_project": "Tip: pick a project above to import these deadlines.",
|
||
"deadlines.party.claimant": "Claimant",
|
||
"deadlines.party.defendant": "Defendant",
|
||
"deadlines.party.both": "Both parties",
|
||
"deadlines.party.court": "Court",
|
||
|
||
// Fristenrechner overhaul Mode A — Direct search (S3, design §3.1).
|
||
"deadlines.overhaul.modes.label": "Mode",
|
||
"deadlines.overhaul.modes.search": "Direct search",
|
||
"deadlines.overhaul.modes.wizard": "Guided",
|
||
"deadlines.overhaul.wizard.coming_soon": "Guided mode coming in the next slice.",
|
||
"deadlines.overhaul.modea.filters.label": "Filters",
|
||
"deadlines.overhaul.modea.filters.heading": "Filters (narrow)",
|
||
"deadlines.overhaul.modea.axis.forum": "Forum:",
|
||
"deadlines.overhaul.modea.axis.proc": "Proceeding:",
|
||
"deadlines.overhaul.modea.axis.kind": "What happened:",
|
||
"deadlines.overhaul.modea.axis.party": "Party:",
|
||
"deadlines.overhaul.modea.axis.inbox": "Inbox channel:",
|
||
"deadlines.overhaul.modea.chip.all": "All",
|
||
"deadlines.overhaul.modea.inbox.summary": "Advanced: Inbox channel",
|
||
"deadlines.overhaul.modea.inbox.postal": "Postal",
|
||
"deadlines.overhaul.modea.search.label": "Search",
|
||
"deadlines.overhaul.modea.search.placeholder": "Statement of Claim, decision notice, oral hearing…",
|
||
"deadlines.overhaul.modea.results.label": "Results",
|
||
"deadlines.overhaul.modea.results.heading": "Results (click to lock as trigger)",
|
||
"deadlines.overhaul.modea.results.count": "{n} hits",
|
||
"deadlines.overhaul.modea.row.followups": "{n} follow-ups",
|
||
"deadlines.overhaul.modea.loading": "Loading…",
|
||
"deadlines.overhaul.modea.no_results": "No hits for these filters.",
|
||
"deadlines.overhaul.modea.no_proceedings": "No proceedings in this forum.",
|
||
"deadlines.overhaul.modea.search_error": "Search failed.",
|
||
"deadlines.overhaul.kind.filing": "Filed",
|
||
"deadlines.overhaul.kind.hearing": "Hearing",
|
||
"deadlines.overhaul.kind.decision": "Decision",
|
||
"deadlines.overhaul.kind.order": "Order",
|
||
"deadlines.overhaul.kind.missed": "Missed deadline",
|
||
|
||
// Fristenrechner overhaul Mode B — guided wizard (S4, design §3.2).
|
||
"deadlines.overhaul.wizard.heading": "Guided mode",
|
||
"deadlines.overhaul.wizard.hint": "Answer top-down — the wizard lands on a trigger event and shows the follow-up deadlines.",
|
||
"deadlines.overhaul.wizard.r1.label": "What happened?",
|
||
"deadlines.overhaul.wizard.r2.label": "Before which forum?",
|
||
"deadlines.overhaul.wizard.r3.label": "In which proceeding?",
|
||
"deadlines.overhaul.wizard.r3.empty": "No proceeding with this event kind in the chosen forum.",
|
||
"deadlines.overhaul.wizard.r4.label": "Which document / which hearing?",
|
||
"deadlines.overhaul.wizard.r4.empty": "No events for this selection.",
|
||
"deadlines.overhaul.wizard.r5.label": "Which party do you represent?",
|
||
"deadlines.overhaul.wizard.r5.probing": "Checking whether follow-ups depend on the side…",
|
||
"deadlines.overhaul.wizard.badge.filter": "Filter",
|
||
"deadlines.overhaul.wizard.badge.qualifier": "Qualifier",
|
||
"deadlines.overhaul.wizard.edit": "edit",
|
||
"deadlines.overhaul.wizard.anno.from_project": "from project",
|
||
"deadlines.overhaul.wizard.anno.implicit": "implicit",
|
||
|
||
// Office labels (shared)
|
||
"office.munich": "Munich",
|
||
"office.duesseldorf": "D\u00fcsseldorf",
|
||
"office.hamburg": "Hamburg",
|
||
"office.amsterdam": "Amsterdam",
|
||
"office.london": "London",
|
||
"office.paris": "Paris",
|
||
"office.milan": "Milan",
|
||
|
||
// Dashboard (logged-in landing)
|
||
"dashboard.title": "Dashboard \u2014 Paliad",
|
||
"dashboard.greeting.prefix": "Hello",
|
||
"dashboard.unavailable": "Dashboard requires the database \u2014 contact an administrator.",
|
||
"dashboard.onboarding": "Please complete onboarding before deadlines and matters are shown.",
|
||
"dashboard.summary.heading": "Deadlines at a glance",
|
||
"dashboard.summary.overdue": "Overdue",
|
||
"dashboard.summary.today": "Today",
|
||
"dashboard.summary.this_week": "This week",
|
||
"dashboard.summary.next_week": "Next week",
|
||
"dashboard.summary.completed": "Done",
|
||
"dashboard.summary.later": "Later",
|
||
"dashboard.appointment_summary.heading": "Appointments at a glance",
|
||
"dashboard.matters.heading": "My matters",
|
||
"dashboard.matters.active": "Active",
|
||
"dashboard.matters.archived": "Archived",
|
||
"dashboard.matters.total": "Total",
|
||
"dashboard.deadlines.heading": "Upcoming deadlines",
|
||
"dashboard.deadlines.empty": "No deadlines in the next 7 days.",
|
||
"dashboard.appointments.heading": "Upcoming appointments",
|
||
"dashboard.appointments.empty": "No appointments in the next 7 days.",
|
||
"dashboard.activity.heading": "Recent activity",
|
||
"dashboard.activity.empty": "No activity recorded yet.",
|
||
"dashboard.activity.system": "System",
|
||
"dashboard.activity.event": "event",
|
||
"dashboard.agenda.heading": "Agenda",
|
||
"dashboard.agenda.empty": "Nothing due in the next 30 days.",
|
||
"dashboard.agenda.full_link": "Open full agenda →",
|
||
"dashboard.inbox.heading": "Open approvals",
|
||
"dashboard.inbox.empty": "No open approvals.",
|
||
"dashboard.inbox.full_link": "Open full inbox →",
|
||
"dashboard.inbox.entity.deadline": "Deadline",
|
||
"dashboard.inbox.entity.appointment": "Appointment",
|
||
"dashboard.edit.toggle": "Customize",
|
||
"dashboard.edit.exit": "Done",
|
||
"dashboard.edit.add_widget": "Add widget",
|
||
"dashboard.edit.reset": "Reset to default",
|
||
"dashboard.edit.reset_confirm": "Reset layout to default? This cannot be undone.",
|
||
"dashboard.edit.promote": "Save as firm default",
|
||
"dashboard.edit.promote_confirm": "Save your current layout as the firm default? New users and 'Reset to default' will use this layout afterwards.",
|
||
"dashboard.edit.promoted": "Saved as firm default",
|
||
"dashboard.pinned.heading": "Pinned matters",
|
||
"dashboard.pinned.empty": "No pinned matters yet.",
|
||
"dashboard.pinned.full_link": "Open all matters →",
|
||
"dashboard.quick.heading": "Quick actions",
|
||
"dashboard.quick.new_project": "+ Matter",
|
||
"dashboard.quick.new_deadline": "+ Deadline",
|
||
"dashboard.quick.new_appointment": "+ Appointment",
|
||
"dashboard.edit.move_up": "Move up",
|
||
"dashboard.edit.move_down": "Move down",
|
||
"dashboard.edit.hide": "Hide",
|
||
"dashboard.edit.settings": "Settings",
|
||
"dashboard.edit.drag": "Drag to reorder",
|
||
"dashboard.edit.saved": "Saved",
|
||
"dashboard.edit.save_failed": "Save failed",
|
||
"dashboard.edit.setting.count": "Count",
|
||
"dashboard.edit.setting.count.custom": "Custom value (max {n})",
|
||
"dashboard.edit.setting.horizon": "Horizon",
|
||
"dashboard.edit.setting.horizon.days": "{n} days",
|
||
"dashboard.edit.setting.horizon.custom": "Custom horizon in days (max {n})",
|
||
"dashboard.edit.setting.view": "View",
|
||
"dashboard.edit.setting.size": "Size",
|
||
"dashboard.edit.setting.position": "Position",
|
||
"dashboard.edit.resize": "Resize",
|
||
"dashboard.picker.title": "Add widget",
|
||
"dashboard.picker.status.active": "Active",
|
||
"dashboard.picker.status.hidden": "Hidden",
|
||
"dashboard.picker.status.absent": "Not added",
|
||
"dashboard.picker.close": "Done",
|
||
"dashboard.picker.empty": "All widgets are already added.",
|
||
"dashboard.section.collapse": "Collapse section",
|
||
"dashboard.section.expand": "Expand section",
|
||
"dashboard.urgency.overdue": "Overdue",
|
||
"dashboard.urgency.today": "Today",
|
||
"dashboard.urgency.urgent": "Urgent",
|
||
"dashboard.urgency.soon": "Soon",
|
||
"dashboard.when.today": "today",
|
||
"dashboard.when.tomorrow": "tomorrow",
|
||
"dashboard.action.short.project_created": "created project",
|
||
"dashboard.action.short.project_archived": "archived project",
|
||
"dashboard.action.short.project_reparented": "re-parented project",
|
||
"dashboard.action.short.project_type_changed": "changed project type",
|
||
"dashboard.action.short.status_changed": "changed status",
|
||
"dashboard.action.short.our_side_changed": "changed represented side",
|
||
"dashboard.action.short.visibility_changed": "changed visibility",
|
||
"dashboard.action.short.collaborators_updated": "updated collaborators",
|
||
"dashboard.action.short.note_created": "added note",
|
||
"dashboard.action.short.deadline_created": "added deadline",
|
||
"dashboard.action.short.deadline_updated": "updated deadline",
|
||
"dashboard.action.short.deadline_completed": "completed deadline",
|
||
"dashboard.action.short.deadline_reopened": "reopened deadline",
|
||
"dashboard.action.short.deadline_deleted": "deleted deadline",
|
||
"dashboard.action.short.deadline_project_changed": "moved deadline",
|
||
"dashboard.action.short.deadlines_imported": "imported deadlines",
|
||
"dashboard.action.short.appointment_created": "added appointment",
|
||
"dashboard.action.short.appointment_updated": "updated appointment",
|
||
"dashboard.action.short.appointment_deleted": "deleted appointment",
|
||
"dashboard.action.short.appointment_project_changed": "moved appointment",
|
||
// Localized event-row title for the project Verlauf tab — full noun
|
||
// phrase ("Deadline updated") complementing the dashboard's verb form.
|
||
"event.title.project_created": "Project created",
|
||
"event.title.project_archived": "Project archived",
|
||
"event.title.project_reparented": "Project re-parented",
|
||
"event.title.project_type_changed": "Project type changed",
|
||
"event.title.status_changed": "Status changed",
|
||
"event.title.our_side_changed": "Represented side changed",
|
||
"event.title.note_created": "Note added",
|
||
"event.title.deadline_created": "Deadline created",
|
||
"event.title.deadline_updated": "Deadline updated",
|
||
"event.title.deadline_completed": "Deadline completed",
|
||
"event.title.deadline_reopened": "Deadline reopened",
|
||
"event.title.deadline_deleted": "Deadline deleted",
|
||
"event.title.deadline_project_changed": "Deadline moved",
|
||
"event.title.deadlines_imported": "Deadlines imported",
|
||
"event.title.appointment_created": "Appointment created",
|
||
"event.title.appointment_updated": "Appointment updated",
|
||
"event.title.appointment_deleted": "Appointment deleted",
|
||
"event.title.appointment_project_changed": "Appointment moved",
|
||
// Umbrella audit kind + admin churn surfaced by the FilterBar
|
||
// project_event_kind chip cluster (KnownProjectEventKinds).
|
||
"event.title.approval_decided": "Approval decided",
|
||
"event.title.member_role_changed": "Team role changed",
|
||
// 4-eye approval lifecycle (t-paliad-138).
|
||
"event.title.deadline_approval_requested": "Approval requested",
|
||
"event.title.deadline_approval_approved": "Approval granted",
|
||
"event.title.deadline_approval_rejected": "Approval rejected",
|
||
"event.title.deadline_approval_revoked": "Request revoked",
|
||
"event.title.deadline_approval_changes_suggested": "Changes suggested",
|
||
"event.title.appointment_approval_requested": "Approval requested",
|
||
"event.title.appointment_approval_approved": "Approval granted",
|
||
"event.title.appointment_approval_rejected": "Approval rejected",
|
||
"event.title.appointment_approval_revoked": "Request revoked",
|
||
"event.title.appointment_approval_changes_suggested": "Changes suggested",
|
||
"event.description.deadline_approval_requested": "Four-eyes approval requested for deadline",
|
||
"event.description.deadline_approval_approved": "Deadline approval granted",
|
||
"event.description.deadline_approval_rejected": "Deadline approval rejected",
|
||
"event.description.deadline_approval_revoked": "Deadline approval request revoked",
|
||
"event.description.deadline_approval_changes_suggested": "Deadline declined with a counter-proposal",
|
||
"event.description.appointment_approval_requested": "Four-eyes approval requested for appointment",
|
||
"event.description.appointment_approval_approved": "Appointment approval granted",
|
||
"event.description.appointment_approval_rejected": "Appointment approval rejected",
|
||
"event.description.appointment_approval_revoked": "Appointment approval request revoked",
|
||
"event.description.appointment_approval_changes_suggested": "Appointment declined with a counter-proposal",
|
||
"dashboard.action.short.deadline_approval_requested": "requested approval",
|
||
"dashboard.action.short.deadline_approval_approved": "approved deadline",
|
||
"dashboard.action.short.deadline_approval_rejected": "rejected deadline",
|
||
"dashboard.action.short.deadline_approval_revoked": "revoked request",
|
||
"dashboard.action.short.appointment_approval_requested": "requested approval",
|
||
"dashboard.action.short.appointment_approval_approved": "approved appointment",
|
||
"dashboard.action.short.appointment_approval_rejected": "rejected appointment",
|
||
"dashboard.action.short.appointment_approval_revoked": "revoked request",
|
||
"event.title.checklist_created": "Checklist created",
|
||
"event.title.checklist_renamed": "Checklist renamed",
|
||
"event.title.checklist_linked": "Checklist linked",
|
||
"event.title.checklist_unlinked": "Checklist unlinked",
|
||
"event.title.checklist_reset": "Checklist reset",
|
||
"event.title.checklist_deleted": "Checklist deleted",
|
||
// Note-parent slugs for note_created descriptions
|
||
// ("Note added to deadline"). Used by translateEventDescription().
|
||
"event.note.parent.project": "project",
|
||
"event.note.parent.deadline": "deadline",
|
||
"event.note.parent.appointment": "appointment",
|
||
"event.note.added_to": "Note added to {parent}",
|
||
// Localized full-sentence descriptions for the project Verlauf and the
|
||
// dashboard activity feed. Stored descriptions carry just the variable
|
||
// payload (title/count/slugs); the renderer interpolates here.
|
||
"event.description.deadline_created": "Deadline “{title}” added",
|
||
"event.description.deadline_updated": "Deadline “{title}” updated",
|
||
"event.description.deadline_completed": "Deadline “{title}” completed",
|
||
"event.description.deadline_reopened": "Deadline “{title}” reopened",
|
||
"event.description.deadline_deleted": "Deadline “{title}” deleted",
|
||
"event.description.deadline_project_changed": "Deadline “{title}” moved to another matter",
|
||
"event.description.deadlines_imported": "{count} deadlines imported from Fristenrechner",
|
||
"event.description.appointment_created": "Appointment “{title}” added",
|
||
"event.description.appointment_updated": "Appointment “{title}” updated",
|
||
"event.description.appointment_deleted": "Appointment “{title}” deleted",
|
||
"event.description.appointment_project_changed": "Appointment “{title}” moved to another matter",
|
||
"dashboard.action.short.checklist_created": "added checklist",
|
||
"dashboard.action.short.checklist_renamed": "renamed checklist",
|
||
"dashboard.action.short.checklist_unlinked": "unlinked checklist",
|
||
"dashboard.action.short.checklist_linked": "linked checklist",
|
||
"dashboard.action.short.checklist_reset": "reset checklist",
|
||
"dashboard.action.short.checklist_deleted": "deleted checklist",
|
||
"dashboard.action.short.partei_added": "added party",
|
||
"dashboard.action.short.partei_removed": "removed party",
|
||
// Legacy event types kept so historical project_events rows render cleanly
|
||
// (writes switched to English in t-paliad-037).
|
||
"dashboard.action.short.akte_created": "created matter",
|
||
"dashboard.action.short.akte_archived": "archived matter",
|
||
"dashboard.action.short.projekt_created": "created matter",
|
||
"dashboard.action.short.projekt_archived": "archived matter",
|
||
"dashboard.action.short.projekt_reparented": "re-parented matter",
|
||
"dashboard.action.short.notiz_created": "added note",
|
||
"dashboard.action.short.frist_created": "added deadline",
|
||
"dashboard.action.short.frist_updated": "updated deadline",
|
||
"dashboard.action.short.frist_completed": "completed deadline",
|
||
"dashboard.action.short.frist_deleted": "deleted deadline",
|
||
"dashboard.action.short.fristen_imported": "imported deadlines",
|
||
"dashboard.action.short.termin_created": "added appointment",
|
||
"dashboard.action.short.termin_updated": "updated appointment",
|
||
"dashboard.action.short.termin_deleted": "deleted appointment",
|
||
"dashboard.action.short.checkliste_created": "added checklist",
|
||
"dashboard.action.short.checkliste_renamed": "renamed checklist",
|
||
"dashboard.action.short.checkliste_unlinked": "unlinked checklist",
|
||
"dashboard.action.short.checkliste_linked": "linked checklist",
|
||
"dashboard.action.short.checkliste_reset": "reset checklist",
|
||
"dashboard.action.short.checkliste_deleted": "deleted checklist",
|
||
|
||
// Onboarding (first-login profile capture)
|
||
"onboarding.title": "Welcome \u2014 Paliad",
|
||
"onboarding.heading": "Welcome to Paliad",
|
||
"onboarding.lede": "Please complete your profile so that matters, deadlines, and appointments can be shown.",
|
||
"onboarding.display_name": "Display name",
|
||
"onboarding.display_name.placeholder": "First and last name",
|
||
"onboarding.office": "Office",
|
||
"onboarding.office.placeholder": "Please select",
|
||
"onboarding.job_title": "Job title",
|
||
"onboarding.job_title.placeholder": "e.g. Associate, Partner, Patent Attorney",
|
||
"onboarding.profession": "Profession",
|
||
"onboarding.profession.hint": "Structured tier — drives the 4-eye approval ladder. Distinct from job title.",
|
||
"onboarding.partner_unit": "Partner Unit",
|
||
"onboarding.partner_unit.unassigned": "(not assigned yet)",
|
||
"onboarding.optional": "(optional)",
|
||
"onboarding.submit": "Create profile",
|
||
"onboarding.error.display_name": "Please enter a display name.",
|
||
"onboarding.error.office": "Please select an office.",
|
||
"onboarding.error.job_title": "Please enter a job title.",
|
||
"onboarding.error.generic": "Could not create profile.",
|
||
"onboarding.error.connection": "Connection error. Please try again.",
|
||
|
||
// Termine + CalDAV (Phase F)
|
||
"nav.group.einstellungen": "Settings",
|
||
"nav.einstellungen": "Settings",
|
||
"nav.caldav": "CalDAV",
|
||
|
||
// Global search (t-paliad-026)
|
||
"search.placeholder": "Search...",
|
||
"search.no_results": "No results",
|
||
"search.group.projects": "Projects",
|
||
"search.group.deadlines": "Deadlines",
|
||
"search.group.appointments": "Appointments",
|
||
"search.group.glossary": "Glossary",
|
||
"search.group.courts": "Courts",
|
||
"search.group.checklists": "Checklists",
|
||
"search.group.links": "Links",
|
||
"search.group.users": "Colleagues",
|
||
|
||
// Command palette (t-paliad-044)
|
||
"palette.section.actions": "Actions",
|
||
"palette.action.nav.dashboard": "Go to Dashboard",
|
||
"palette.action.nav.projects": "Go to Projects",
|
||
"palette.action.nav.deadlines": "Go to Deadlines",
|
||
"palette.action.nav.appointments": "Go to Appointments",
|
||
"palette.action.nav.agenda": "Go to Agenda",
|
||
"palette.action.nav.team": "Go to Team",
|
||
"palette.action.nav.glossary": "Go to Glossary",
|
||
"palette.action.nav.courts": "Go to Courts",
|
||
"palette.action.nav.links": "Go to Links",
|
||
"palette.action.nav.checklists": "Go to Checklists",
|
||
"palette.action.nav.downloads": "Go to Downloads",
|
||
"palette.action.nav.settings": "Go to Settings",
|
||
"palette.action.create.deadline": "New deadline",
|
||
"palette.action.create.appointment": "New appointment",
|
||
"palette.action.create.project": "New project",
|
||
"palette.action.toggle.lang": "Toggle language",
|
||
"palette.action.toggle.pin": "Pin / unpin sidebar",
|
||
"palette.action.app.invite": "Invite a colleague",
|
||
"palette.action.app.logout": "Logout",
|
||
"palette.footer.navigate": "Navigate",
|
||
"palette.footer.open": "Open",
|
||
"palette.footer.close": "Close",
|
||
|
||
"sidebar.resize.title": "Resize \u2014 drag, double-click to reset",
|
||
|
||
// Settings page (t-paliad-022)
|
||
"einstellungen.title": "Settings \u2014 Paliad",
|
||
"einstellungen.heading": "Settings",
|
||
"einstellungen.subtitle": "Profile, notifications, and calendar sync.",
|
||
"einstellungen.loading": "Loading\u2026",
|
||
"einstellungen.optional": "(optional)",
|
||
"einstellungen.save": "Save",
|
||
"einstellungen.saved": "Saved.",
|
||
"einstellungen.error.generic": "Save failed. Please try again.",
|
||
"einstellungen.tab.profil": "Profile",
|
||
"einstellungen.tab.benachrichtigungen": "Notifications",
|
||
"einstellungen.tab.caldav": "CalDAV",
|
||
"einstellungen.tab.export": "Data export",
|
||
"einstellungen.export.subtitle": "Download your personal Paliad data as an Excel + JSON + CSV bundle. The package contains everything you can currently see \u2014 your projects, deadlines, appointments, notes, approvals and settings.",
|
||
"einstellungen.export.heading": "Personal data export",
|
||
"einstellungen.export.what": "The package contains your visible data in three formats in one .zip:",
|
||
"einstellungen.export.bullet.xlsx": "paliad-export.xlsx \u2014 one Excel sheet per entity.",
|
||
"einstellungen.export.bullet.json": "paliad-export.json \u2014 machine-readable copy for scripts and tools.",
|
||
"einstellungen.export.bullet.csv": "csv/<sheet>.csv \u2014 individual tables as CSV (UTF-8 with BOM).",
|
||
"einstellungen.export.scope": "Scope: everything you can currently see in Paliad (visibility at the moment of export). Passwords, CalDAV credentials and other secrets are never exported.",
|
||
"einstellungen.export.audit": "Every export is logged in the audit log.",
|
||
"einstellungen.export.button": "Export data",
|
||
"einstellungen.export.started": "Download started. If nothing happens, check your browser's downloads folder.",
|
||
"projects.title": "Projects \u2014 Paliad",
|
||
"projects.heading": "Projects",
|
||
"projects.subtitle": "Clients, litigations, patents and cases \u2014 organised hierarchically.",
|
||
"projects.new": "New project",
|
||
"projects.search.placeholder": "Title, reference or ClientMatter...",
|
||
"projects.filter.type": "Type",
|
||
"projects.filter.type.all": "All types",
|
||
"projects.filter.status": "Status",
|
||
"projects.filter.status.all": "All statuses",
|
||
"projects.filter.status.active": "Active",
|
||
"projects.filter.status.archived": "Archived",
|
||
"projects.filter.status.closed": "Closed",
|
||
"projects.filter.view": "View",
|
||
"projects.view.flat": "Flat list",
|
||
"projects.view.roots": "Roots only",
|
||
"projects.unavailable": "Project management is currently unavailable \u2014 please contact an administrator.",
|
||
"projects.col.title": "Title",
|
||
"projects.col.type": "Type",
|
||
"projects.col.reference": "Reference",
|
||
"projects.col.clientmatter": "ClientMatter",
|
||
"projects.col.status": "Status",
|
||
"projects.col.updated": "Last modified",
|
||
"projects.empty.title": "No projects yet",
|
||
"projects.empty.hint": "Start via \u201cNew project\u201d \u2014 create a client first, then litigations, patents and cases underneath.",
|
||
"projects.empty.filtered": "No matches for these filters.",
|
||
"projects.cancel": "Cancel",
|
||
"projects.submit": "Create project",
|
||
"projects.neu.title": "New project \u2014 Paliad",
|
||
"projects.neu.heading": "Create a new project",
|
||
"projects.neu.subtitle": "Client, litigation, patent, case or generic project \u2014 place it in the hierarchy. Visibility follows the team (you are auto-added as \u201cLead\u201d).",
|
||
"projects.field.type": "Type",
|
||
"projects.field.type.choose": "Please choose…",
|
||
"projects.field.parent": "Parent project",
|
||
"projects.field.parent.placeholder": "Type to search for a parent project...",
|
||
"projects.field.parent.hint": "Leave blank for a root project (typically a client).",
|
||
"projects.field.title": "Title",
|
||
"projects.field.title.placeholder": "e.g. Siemens AG | Siemens v. Huawei | EP 1 234 567",
|
||
"projects.field.reference": "Internal reference (optional)",
|
||
"projects.field.reference.placeholder": `e.g. ${FIRM}-2026-0042`,
|
||
"projects.field.client_number": "Client no. (6 digits)",
|
||
"projects.field.matter_number": "Matter no. (6 digits)",
|
||
"projects.field.clientmatter.hint": `${FIRM} billing numbers. Format CCCCCC.MMMMMM. Client no. is inherited by sub-projects (overridable).`,
|
||
"projects.field.billing_reference": "Billing reference (optional)",
|
||
"projects.field.netdocuments_url": "netDocuments URL (optional)",
|
||
"projects.field.industry": "Industry",
|
||
"projects.field.country": "Country (ISO-2)",
|
||
"projects.field.description": "Notes",
|
||
"projects.field.description.placeholder": "Short notes about the project (optional)...",
|
||
"projects.detail.description.heading": "Notes",
|
||
"projects.field.patent_number": "Patent number",
|
||
"projects.field.filing_date": "Filing date",
|
||
"projects.field.grant_date": "Grant date",
|
||
"projects.field.court": "Court",
|
||
"projects.field.case_number": "Case number (court)",
|
||
"projects.field.proceeding_type_id": "Proceeding type",
|
||
"projects.field.proceeding_type": "Proceeding type",
|
||
"projects.field.proceeding_type.unset": "(unset)",
|
||
"projects.field.proceeding_type.hint": "Determines which submission templates show up on this proceeding.",
|
||
"projects.field.our_side": "We represent",
|
||
"projects.field.our_side.hint": "Pre-selects the perspective chip in the Fristenrechner Determinator. Always overridable from there.",
|
||
"projects.field.our_side.unset": "Unknown / not set",
|
||
"projects.field.our_side.claimant": "Claimant side",
|
||
"projects.field.our_side.defendant": "Defendant side",
|
||
"projects.field.our_side.applicant": "Applicant",
|
||
"projects.field.our_side.appellant": "Appellant",
|
||
"projects.field.our_side.respondent": "Respondent",
|
||
"projects.field.our_side.third_party": "Third Party",
|
||
"projects.field.our_side.other": "Other party",
|
||
"projects.field.our_side.court": "Court / tribunal",
|
||
"projects.field.our_side.both": "Both sides",
|
||
"projects.field.our_side.none": "—",
|
||
"projects.field.client_role": "Client Role",
|
||
"projects.field.client_role.hint": "Pre-selects the perspective chip in the Fristenrechner Determinator: Active → claimant side, Reactive → defendant side. Always overridable from there.",
|
||
"projects.field.client_role.unset": "Unknown",
|
||
"projects.field.client_role.group.active": "Active (we initiate)",
|
||
"projects.field.client_role.group.reactive": "Reactive (we defend)",
|
||
"projects.field.client_role.group.other": "Third Party / Other",
|
||
"projects.field.client_role.claimant": "Claimant side",
|
||
"projects.field.client_role.applicant": "Applicant",
|
||
"projects.field.client_role.appellant": "Appellant",
|
||
"projects.field.client_role.defendant": "Defendant side",
|
||
"projects.field.client_role.respondent": "Respondent",
|
||
"projects.field.client_role.third_party": "Third Party",
|
||
"projects.field.client_role.other": "Other party",
|
||
"projects.field.opponent_code": "Opponent code",
|
||
"projects.field.opponent_code.placeholder": "e.g. OPNT",
|
||
"projects.field.opponent_code.hint": "Short slug for the opposing party (uppercase letters, digits, dashes, max 16 chars). Used as the middle segment in auto-derived project codes (e.g. EXMPL.OPNT.567.INF.CFI).",
|
||
"projects.field.status": "Status",
|
||
"projects.error.title_required": "Title required",
|
||
"projects.detail.edit.type_change_warning.title": "These fields will be cleared:",
|
||
"projects.detail.title": "Project \u2014 Paliad",
|
||
"projects.detail.back": "\u2190 Back to overview",
|
||
"projects.detail.loading": "Loading\u2026",
|
||
"projects.detail.notfound": "Project not found or no access.",
|
||
"projects.detail.smarttimeline.open_chart": "View as chart \u2197",
|
||
"projects.chart.title": "Project Chart \u2014 Paliad",
|
||
"projects.chart.back": "\u2190 Back to Activity",
|
||
"projects.chart.loading": "Loading\u2026",
|
||
"projects.chart.notfound": "Project not found or no access.",
|
||
"projects.chart.error.mount": "Chart could not be initialised.",
|
||
"projects.chart.control.layout.horizontal": "Layout: horizontal",
|
||
"projects.chart.control.columns.auto": "Columns: auto",
|
||
"projects.chart.control.density.standard": "Density: standard",
|
||
"projects.chart.control.palette.default": "Palette: default",
|
||
"projects.chart.control.export.soon": "Export \u2193 (Slice 2)",
|
||
"projects.chart.control.palette.label": "Palette:",
|
||
"projects.chart.palette.default": "Default",
|
||
"projects.chart.palette.kind_coded": "By event kind",
|
||
"projects.chart.palette.track_coded": "By track",
|
||
"projects.chart.palette.high_contrast": "High contrast",
|
||
"projects.chart.palette.print": "Print (B/W)",
|
||
"projects.chart.control.density.label": "Density:",
|
||
"projects.chart.density.compact": "Compact",
|
||
"projects.chart.density.standard": "Standard",
|
||
"projects.chart.density.spacious": "Spacious",
|
||
"projects.chart.control.range.label": "Range:",
|
||
"projects.chart.range.1y": "1 year",
|
||
"projects.chart.range.2y": "2 years",
|
||
"projects.chart.range.all": "Show all",
|
||
"projects.chart.range.custom": "Custom range…",
|
||
"projects.chart.range.from": "From:",
|
||
"projects.chart.range.to": "To:",
|
||
"projects.chart.permalink.copy": "🔗 Copy link",
|
||
"projects.chart.permalink.title": "Copy the URL with all filters to clipboard",
|
||
"nav.context.project_chart": "View as chart",
|
||
"projects.chart.export.menu": "⇓ Export",
|
||
"projects.chart.export.svg": "SVG (vector graphic)",
|
||
"projects.chart.export.png": "PNG (raster, 2× HiDPI)",
|
||
"projects.chart.export.print": "PDF (print)",
|
||
"projects.chart.export.csv": "CSV (Excel table)",
|
||
"projects.chart.export.json": "JSON (raw data)",
|
||
"projects.chart.export.ics": "iCal (.ics — Outlook / Apple)",
|
||
"projects.detail.edit": "Edit",
|
||
"projects.detail.edit.modal.title": "Edit project",
|
||
"projects.detail.save": "Save",
|
||
"projects.detail.tab.verlauf": "Activity",
|
||
"projects.detail.tab.team": "Team",
|
||
"projects.detail.tab.kinder": "Project Tree",
|
||
"projects.detail.tab.parteien": "Parties",
|
||
"projects.detail.tab.fristen": "Deadlines",
|
||
"projects.detail.tab.termine": "Appointments",
|
||
"projects.detail.tab.notizen": "Notes",
|
||
"projects.detail.tab.checklisten": "Checklists",
|
||
"projects.detail.tab.submissions": "Submissions",
|
||
"projects.detail.tab.settings": "Settings",
|
||
"projects.detail.export.button": "Export data",
|
||
"projects.detail.export.tooltip": "Download this project's data (including sub-projects) as Excel + JSON + CSV.",
|
||
"projects.detail.settings.export.heading": "Export data",
|
||
"projects.detail.settings.export.description": "Download all data for this project (including sub-projects) as an Excel + JSON + CSV archive.",
|
||
"projects.detail.settings.archive.heading": "Archive project",
|
||
"projects.detail.settings.archive.description": "Archiving happens in the edit dialog (danger zone).",
|
||
"projects.detail.settings.archive.cta": "Open edit dialog",
|
||
"projects.detail.submissions.empty": "No submission templates are configured yet.",
|
||
"projects.detail.submissions.empty.no_proceeding": "No proceeding type is set for this project yet — the catalog below still lists every template.",
|
||
"projects.detail.submissions.empty.no_proceeding.cta": "Edit project",
|
||
"projects.detail.submissions.col.name": "Submission",
|
||
"projects.detail.submissions.col.party": "Party",
|
||
"projects.detail.submissions.col.source": "Legal basis",
|
||
"projects.detail.submissions.col.action": "",
|
||
"projects.detail.submissions.action.generate": "Generate",
|
||
"projects.detail.submissions.action.no_template": "No template",
|
||
"projects.detail.submissions.action.edit": "Edit",
|
||
"projects.detail.submissions.hint": "Submissions are generated as .docx directly from the project. Edit, print, file.",
|
||
// t-paliad-238 — dedicated draft editor page.
|
||
"submissions.draft.title": "Edit submission — Paliad",
|
||
"submissions.draft.back": "← Back to project",
|
||
"submissions.draft.loading": "Loading…",
|
||
"submissions.draft.notfound": "Submission not found or insufficient access.",
|
||
"submissions.draft.action.export": "Export as .docx",
|
||
"submissions.draft.action.new": "+ New draft",
|
||
"submissions.draft.action.delete": "Delete",
|
||
"submissions.draft.switcher.label": "Draft",
|
||
"submissions.draft.name.placeholder": "Name of this draft",
|
||
"submissions.draft.preview.title": "Preview",
|
||
// t-paliad-276 — DE/EN language toggle on the draft editor.
|
||
"submissions.draft.language": "Language",
|
||
"submissions.draft.language.de": "DE",
|
||
"submissions.draft.language.en": "EN",
|
||
"submissions.draft.language.fallback_notice": "Fallback: universal skeleton (no language-matched template).",
|
||
"submissions.draft.preview.hint": "Read-only preview — final formatting in Word.",
|
||
// t-paliad-277 — import-from-project + party-picker.
|
||
"submissions.draft.import.button": "Import from project",
|
||
"submissions.draft.parties.title": "Parties",
|
||
"submissions.draft.parties.hint": "Pick the parties mentioned in this submission, or add more per side.",
|
||
// t-paliad-313 (m/paliad#141) Composer Slice A — base picker + section list.
|
||
"submissions.draft.base.label": "Template base",
|
||
"submissions.draft.base.hint": "Drives fonts, letterhead, and section defaults.",
|
||
"submissions.draft.sections.title": "Sections",
|
||
"submissions.draft.sections.hint": "Edit per section — autosaves after 500ms. Final layout in Word.",
|
||
// t-paliad-349 (m/paliad#157) docforge slice 6 — template authoring page.
|
||
"templates.authoring.title": "Templates — Paliad",
|
||
"templates.authoring.heading": "Templates",
|
||
"templates.authoring.intro": "Upload a Word template, highlight spots and insert variables.",
|
||
"templates.authoring.upload.title": "Upload a new template",
|
||
"templates.authoring.upload.file": "Word file (.docx)",
|
||
"templates.authoring.upload.name_de": "Name (DE)",
|
||
"templates.authoring.upload.name_en": "Name (EN)",
|
||
"templates.authoring.upload.firm": "Firm (optional)",
|
||
"templates.authoring.upload.submit": "Upload",
|
||
"templates.authoring.list.title": "Existing templates",
|
||
"templates.authoring.workspace.hint": "Highlight text, then pick a variable to place a placeholder.",
|
||
"templates.authoring.slots.title": "Placeholders",
|
||
// t-paliad-315 (m/paliad#141) Composer Slice C — building blocks admin.
|
||
"admin.building_blocks.title": "Building blocks — Paliad",
|
||
"admin.building_blocks.heading": "Building blocks",
|
||
"admin.building_blocks.subtitle": "Reusable text snippets for Composer sections.",
|
||
"admin.building_blocks.loading": "Loading…",
|
||
"admin.building_blocks.action.new": "+ New block",
|
||
"admin.building_blocks.editor.empty": "Pick a block from the list — or create a new one.",
|
||
// t-paliad-240 — global submissions drafts index page.
|
||
"submissions.index.title": "Submissions — Paliad",
|
||
"submissions.index.heading": "Submissions",
|
||
"submissions.index.subtitle": "Your submission drafts across every visible project.",
|
||
"submissions.index.loading": "Loading…",
|
||
"submissions.index.empty": "No drafts yet. Start a new draft — with or without a project.",
|
||
"submissions.index.empty.cta": "+ New draft",
|
||
"submissions.index.error": "Could not load submissions.",
|
||
"submissions.index.col.project": "Project",
|
||
"submissions.index.col.submission": "Submission",
|
||
"submissions.index.col.draft": "Draft",
|
||
"submissions.index.col.updated": "Last updated",
|
||
"submissions.index.action.new": "+ New draft",
|
||
"submissions.new.title": "New submission — Paliad",
|
||
"submissions.new.back": "← Back to drafts",
|
||
"submissions.new.heading": "New submission",
|
||
"submissions.new.subtitle": "Pick a template. Optionally bind it to a project — otherwise all variables are filled manually.",
|
||
"submissions.new.search.placeholder": "Search by name, code or statute…",
|
||
"submissions.new.loading": "Loading…",
|
||
"submissions.new.error": "Could not load catalog.",
|
||
"submissions.new.col.name": "Submission",
|
||
"submissions.new.col.party": "Party",
|
||
"submissions.new.col.source": "Legal source",
|
||
"submissions.new.col.actions": "Start draft",
|
||
"submissions.new.empty.filtered": "No submissions match the filters. Reset them to see the full catalog.",
|
||
"submissions.new.picker.title": "Pick a project",
|
||
"submissions.new.picker.placeholder": "Search project (title or reference)…",
|
||
"submissions.new.picker.loading": "Loading projects…",
|
||
"submissions.new.picker.empty": "No visible projects.",
|
||
"projects.detail.verlauf.empty": "No events recorded yet.",
|
||
"projects.detail.verlauf.loadMore": "Load more",
|
||
"projects.detail.smarttimeline.empty": "No events captured yet.",
|
||
"projects.detail.smarttimeline.today": "Today",
|
||
"projects.detail.smarttimeline.section.past": "Past",
|
||
"projects.detail.smarttimeline.section.future": "Future",
|
||
"projects.detail.smarttimeline.section.undated": "Undated",
|
||
"projects.detail.smarttimeline.kind.deadline": "Deadline",
|
||
"projects.detail.smarttimeline.kind.appointment": "Appointment",
|
||
"projects.detail.smarttimeline.kind.milestone": "Milestone",
|
||
"projects.detail.smarttimeline.kind.projected": "Predicted",
|
||
"projects.detail.smarttimeline.status.done": "Done",
|
||
"projects.detail.smarttimeline.status.open": "Open",
|
||
"projects.detail.smarttimeline.status.overdue": "Overdue",
|
||
"projects.detail.smarttimeline.status.court_set": "Court-set date",
|
||
"projects.detail.smarttimeline.status.predicted": "Predicted",
|
||
"projects.detail.smarttimeline.status.off_script": "Custom",
|
||
"projects.detail.smarttimeline.audit.toggle.show": "Show audit log",
|
||
"projects.detail.smarttimeline.audit.toggle.hide": "Timeline only",
|
||
"projects.detail.smarttimeline.add.cta": "+ Entry",
|
||
"projects.detail.smarttimeline.add.modal.title": "New SmartTimeline entry",
|
||
"projects.detail.smarttimeline.add.choice.deadline": "Add a deadline",
|
||
"projects.detail.smarttimeline.add.choice.appointment": "Add an appointment",
|
||
"projects.detail.smarttimeline.add.choice.counterclaim": "Counterclaim (CCR)",
|
||
"projects.detail.smarttimeline.add.choice.amend": "Application to amend (R.30)",
|
||
"projects.detail.smarttimeline.add.choice.milestone": "Custom milestone",
|
||
"projects.detail.smarttimeline.add.choice.disabled": "Coming in Slice 3",
|
||
"projects.detail.smarttimeline.add.cancel": "Cancel",
|
||
"projects.detail.smarttimeline.add.submit": "Save",
|
||
"projects.detail.smarttimeline.milestone.title": "Title",
|
||
"projects.detail.smarttimeline.milestone.date": "Date (optional)",
|
||
"projects.detail.smarttimeline.milestone.description": "Description (optional)",
|
||
"projects.detail.smarttimeline.error.title_required": "Please enter a title.",
|
||
"projects.detail.smarttimeline.error.generic": "Could not save the entry.",
|
||
"projects.detail.smarttimeline.status.predicted_overdue": "Overdue (predicted)",
|
||
"projects.detail.smarttimeline.lookahead.more": "+ Show more",
|
||
"projects.detail.smarttimeline.lookahead.less": "− Show less",
|
||
"projects.detail.smarttimeline.depends_on.prefix": "Follows from",
|
||
"projects.detail.smarttimeline.depends_on.date_open": "Date open",
|
||
"projects.detail.smarttimeline.depends_on.show_path": "Show path",
|
||
"projects.detail.smarttimeline.depends_on.hide_path": "Hide path",
|
||
"projects.detail.smarttimeline.depends_on.path_hint": "Click the parent row to see its dependency.",
|
||
"projects.detail.smarttimeline.anchor.set": "Set date",
|
||
"projects.detail.smarttimeline.anchor.save": "Save",
|
||
"projects.detail.smarttimeline.anchor.cancel": "Cancel",
|
||
"projects.detail.smarttimeline.anchor.saving": "Saving…",
|
||
"projects.detail.smarttimeline.anchor.saved": "Saved.",
|
||
"projects.detail.smarttimeline.anchor.error": "Could not set the date.",
|
||
"projects.detail.smarttimeline.anchor.invalid_date": "Invalid date (YYYY-MM-DD).",
|
||
"projects.detail.smarttimeline.track.label": "Track",
|
||
"projects.detail.smarttimeline.track.both": "Both",
|
||
"projects.detail.smarttimeline.track.only.parent": "Main proceeding only",
|
||
"projects.detail.smarttimeline.track.only.counterclaim": "Counterclaim only",
|
||
"projects.detail.smarttimeline.track.only.parent_context": "Main proceeding only (context)",
|
||
"projects.detail.smarttimeline.track.header.parent": "Main proceeding",
|
||
"projects.detail.smarttimeline.track.header.counterclaim": "Counterclaim (CCR)",
|
||
"projects.detail.smarttimeline.track.header.parent_context": "Main proceeding (context)",
|
||
"projects.detail.smarttimeline.counterclaim.procedure": "Proceeding type",
|
||
"projects.detail.smarttimeline.counterclaim.title": "Title (optional)",
|
||
"projects.detail.smarttimeline.counterclaim.case_number": "CCR case number (optional)",
|
||
"projects.detail.smarttimeline.counterclaim.flip_override": "Do NOT flip our side („Stimmt nicht?”)",
|
||
"projects.detail.smarttimeline.counterclaim.flip_hint": "In the standard case (CCR on validity) our side flips (claimant ↔ defendant). Enable for the R.49.2.b CCI edge case.",
|
||
"projects.detail.smarttimeline.counterclaim.submit": "Create counterclaim",
|
||
"projects.detail.smarttimeline.counterclaim.saving": "Creating counterclaim…",
|
||
"projects.detail.smarttimeline.lane.empty": "No entries in this lane.",
|
||
"projects.detail.smarttimeline.lane.filter.label": "Lanes",
|
||
"projects.detail.smarttimeline.lane.filter.all": "All",
|
||
"projects.detail.smarttimeline.client.toggle.lanes": "Timeline view",
|
||
"projects.detail.smarttimeline.client.toggle.matter_list": "Matter list",
|
||
"projects.detail.smarttimeline.client.matter_list.heading": "Matters of this client",
|
||
"projects.detail.smarttimeline.client.matter_list.hint": "Click a matter to open its detailed timeline, or switch to „Timeline view“ above.",
|
||
"projects.detail.smarttimeline.client.matter_list.empty": "No matters yet.",
|
||
"projects.detail.smarttimeline.milestone.bubble_up": "Show on parent matters",
|
||
"projects.detail.smarttimeline.milestone.bubble_up_hint": "When checked, this milestone surfaces on patent, litigation, and client SmartTimelines.",
|
||
"projects.detail.team.form.user": "User",
|
||
"projects.detail.team.form.role": "Role",
|
||
"projects.detail.team.form.responsibility": "Project role",
|
||
"projects.detail.team.form.profession.label": "Profession",
|
||
"projects.detail.team.form.profession.none": "No profession set — cannot grant 4-eye approvals.",
|
||
"projects.detail.team.form.cancel": "Cancel",
|
||
"projects.detail.team.form.submit": "Add",
|
||
"projects.detail.team.col.name": "Name",
|
||
"projects.detail.team.col.role": "Role",
|
||
"projects.detail.team.col.profession": "Profession",
|
||
"projects.detail.team.col.responsibility": "Project role",
|
||
"projects.detail.team.col.source": "Source",
|
||
"projects.detail.kinder.add": "Create sub-project",
|
||
"projects.detail.kinder.empty": "No sub-projects.",
|
||
"projects.detail.parteien.add": "Add party",
|
||
"projects.detail.parteien.form.name": "Name",
|
||
"projects.detail.parteien.form.role": "Role",
|
||
"projects.detail.parteien.form.rep": "Representative (optional)",
|
||
"projects.detail.parteien.form.cancel": "Cancel",
|
||
"projects.detail.parteien.form.submit": "Add",
|
||
"projects.detail.parteien.role.claimant": "Claimant",
|
||
"projects.detail.parteien.role.defendant": "Defendant",
|
||
"projects.detail.parteien.role.thirdparty": "Third-party / intervenor",
|
||
"projects.detail.parteien.col.name": "Name",
|
||
"projects.detail.parteien.col.role": "Role",
|
||
"projects.detail.parteien.col.rep": "Representative",
|
||
"projects.detail.parteien.empty": "No parties recorded yet.",
|
||
"projects.detail.deadlines.add": "Add deadline",
|
||
"projects.detail.deadlines.empty": "No deadlines recorded for this project.",
|
||
"projects.detail.appointments.add": "Add appointment",
|
||
"projects.detail.appointments.form.cancel": "Cancel",
|
||
"projects.detail.appointments.form.submit": "Add",
|
||
"projects.detail.appointments.empty": "No appointments recorded for this project.",
|
||
"projects.detail.checklisten.empty": "No checklist instances recorded for this project.",
|
||
"projects.detail.checklisten.col.template": "Template",
|
||
"projects.detail.checklisten.col.name": "Name",
|
||
"projects.detail.checklisten.col.progress": "Progress",
|
||
"projects.detail.checklisten.col.created": "Created",
|
||
"projects.detail.checklisten.hint.prefix": "Templates are created and edited on the ",
|
||
"projects.detail.checklisten.hint.link": "Checklists",
|
||
"projects.detail.checklisten.hint.suffix": " page.",
|
||
"projects.detail.checklisten.add": "Add checklist",
|
||
"projects.detail.checklisten.add.search": "Search template…",
|
||
"projects.detail.checklisten.add.empty_pick": "No matching templates.",
|
||
"projects.detail.checklisten.add.created": "Checklist added.",
|
||
"projects.detail.checklisten.add.error": "Could not create checklist.",
|
||
"projects.detail.delete": "Archive project",
|
||
"projects.detail.delete.confirm.title": "Archive project?",
|
||
"projects.detail.delete.confirm.body": "The project will be archived. It cannot be directly restored.",
|
||
"projects.detail.delete.confirm.cancel": "Cancel",
|
||
"projects.detail.delete.confirm.ok": "Archive",
|
||
"projects.type.client": "Client",
|
||
"projects.type.litigation": "Litigation",
|
||
"projects.type.patent": "Patent",
|
||
"projects.type.case": "Case",
|
||
"projects.type.project": "Project",
|
||
"projects.type.other": "Other",
|
||
"projects.team.role.lead": "Lead",
|
||
"projects.team.role.associate": "Associate",
|
||
"projects.team.role.pa": "PA",
|
||
"projects.team.role.of_counsel": "Of Counsel",
|
||
"projects.team.role.local_counsel": "Local Counsel",
|
||
"projects.team.role.expert": "Expert",
|
||
"projects.team.role.observer": "Observer",
|
||
"projects.team.responsibility.admin": "Admin",
|
||
"projects.team.responsibility.admin.hint": "Can manage team and roles on this project and its sub-projects",
|
||
"projects.team.responsibility.lead": "Lead",
|
||
"projects.team.responsibility.member": "Member",
|
||
"projects.team.responsibility.observer": "Observer",
|
||
"projects.team.responsibility.external": "External",
|
||
"projects.team.error.last_admin": "At least one admin must remain on this project or an ancestor.",
|
||
"projects.team.error.forbidden": "This action is not permitted.",
|
||
"projects.team.error.generic": "Action failed.",
|
||
"projects.team.profession.partner": "Partner",
|
||
"projects.team.profession.of_counsel": "Of Counsel",
|
||
"projects.team.profession.associate": "Associate",
|
||
"projects.team.profession.senior_pa": "Senior PA",
|
||
"projects.team.profession.pa": "PA",
|
||
"projects.team.profession.paralegal": "Paralegal",
|
||
"projects.team.profession.none": "(external)",
|
||
"projects.team.profession.hint": "Profession — managed in firm profile",
|
||
"projects.team.profession.none.hint": "No profession set — no 4-eye authority",
|
||
"projects.team.direct": "direct",
|
||
"projects.team.inherited.hint": "Inherited from ancestor",
|
||
"projects.detail.team.add": "Add member",
|
||
"projects.detail.team.remove": "Remove",
|
||
"projects.detail.team.confirm_remove": "Remove member?",
|
||
"projects.detail.team.empty": "No team members yet.",
|
||
"projects.detail.team.error.user_required": "Select a user",
|
||
"projects.detail.team.invite.hint": "User not found?",
|
||
"projects.detail.team.invite.hint_email": "No one with that email.",
|
||
"projects.detail.team.invite.cta": "Invite",
|
||
// t-paliad-231 — pure-client mailto: button on the Team tab.
|
||
"projects.team.mailto.label": "Mail to selection",
|
||
"projects.team.mailto.empty": "Select at least one member",
|
||
"projects.team.mailto.count": "{n} selected",
|
||
"projects.team.mailto.select_all": "Select all visible",
|
||
"projects.team.mailto.select_row": "Select member",
|
||
"projects.view.tree": "Tree view",
|
||
"projects.tree.toggle": "Expand / collapse",
|
||
"projects.tree.loading": "Loading tree…",
|
||
"projects.tree.error": "Failed to load tree view.",
|
||
"projects.tree.deadlines.overdue": "Overdue deadlines",
|
||
"projects.tree.deadlines.open": "Open deadlines",
|
||
"projects.tree.deadlines.subtree.tooltip": "Includes sub-projects",
|
||
"projects.tree.deadlines.direct.tooltip": "This project only",
|
||
"projects.tree.pin": "Pin",
|
||
"projects.tree.unpin": "Unpin",
|
||
"projects.tree.inherited.context": "Visible because of a sub-project",
|
||
"projects.toolbar.search.placeholder": "Search — title, reference, ClientMatter…",
|
||
"projects.toolbar.view.tree": "Tree",
|
||
"projects.toolbar.view.cards": "Cards",
|
||
"projects.toolbar.view.flat": "List",
|
||
"projects.toolbar.subtree_counts": "Count sub-projects too",
|
||
"projects.chip.all": "All",
|
||
"projects.chip.mine": "Mine",
|
||
"projects.chip.pinned": "Pinned",
|
||
"projects.chip.status": "Status",
|
||
"projects.chip.type": "Type",
|
||
"projects.chip.has_open_deadlines": "With open deadlines",
|
||
"projects.chip.status.active": "Active",
|
||
"projects.chip.status.archived": "Archived",
|
||
"projects.chip.status.closed": "Closed",
|
||
"projects.chip.type.client": "Client",
|
||
"projects.chip.type.litigation": "Litigation",
|
||
"projects.chip.type.patent": "Patent",
|
||
"projects.chip.type.case": "Case",
|
||
"projects.chip.type.project": "Project",
|
||
"projects.chip.type.other": "Other",
|
||
"projects.chip.multi.none": "Nothing selected",
|
||
"projects.chip.multi.count": "{n} selected",
|
||
"projects.empty.filtered.action": "Reset filters",
|
||
"projects.search.match.self": "Match",
|
||
"projects.search.match.ancestor": "Parent of a match",
|
||
"projects.search.match.descendant": "Child of a match",
|
||
"projects.cards.next_events": "Upcoming",
|
||
"projects.cards.recent_verlauf": "Recent",
|
||
"projects.cards.no_next_events": "— nothing upcoming",
|
||
"projects.cards.no_recent": "— nothing recent",
|
||
"projects.cards.team": "Team",
|
||
"projects.cards.deadline_open": "open",
|
||
"projects.cards.deadline_overdue": "overdue",
|
||
"projects.cards.show_all_levels": "Show all levels",
|
||
"projects.cards.show_all_levels.hint": "Include Clients + Litigations as their own cards",
|
||
"projects.cards.layout.label": "View",
|
||
"projects.cards.layout.new": "New view",
|
||
"projects.cards.layout.edit": "Edit",
|
||
"projects.cards.layout.save": "Save",
|
||
"projects.cards.layout.discard": "Discard",
|
||
"projects.cards.layout.set_default": "Set as default",
|
||
"projects.cards.layout.delete": "Delete",
|
||
"projects.cards.layout.rename": "Rename",
|
||
"projects.cards.layout.is_default": "Default",
|
||
"projects.cards.layout.new.prompt": "Name of the new view",
|
||
"projects.cards.layout.delete.confirm": "Really delete this view?",
|
||
"projects.cards.layout.delete.default_blocked": "Cannot delete the active default view — switch defaults first.",
|
||
"projects.cards.layout.fact.title-row": "Title row",
|
||
"projects.cards.layout.fact.type-chip": "Type badge",
|
||
"projects.cards.layout.fact.status-chip": "Status badge",
|
||
"projects.cards.layout.fact.client-matter": "ClientMatter",
|
||
"projects.cards.layout.fact.parent-path": "Parent path",
|
||
"projects.cards.layout.fact.deadline-counts": "Deadline counts",
|
||
"projects.cards.layout.fact.next-events": "Upcoming events",
|
||
"projects.cards.layout.fact.recent-verlauf": "Recent entries",
|
||
"projects.cards.layout.fact.team-chips": "Team chips",
|
||
"projects.cards.layout.fact.reference": "Reference",
|
||
"projects.cards.layout.fact.last-activity-at": "Last activity",
|
||
"projects.cards.layout.density": "Density",
|
||
"projects.cards.layout.density.compact": "Compact",
|
||
"projects.cards.layout.density.roomy": "Roomy",
|
||
"projects.cards.layout.grid": "Columns",
|
||
"projects.cards.layout.grid.auto": "Auto",
|
||
"projects.cards.layout.grid.2": "2",
|
||
"projects.cards.layout.grid.3": "3",
|
||
"projects.cards.layout.grid.4": "4",
|
||
"projects.cards.layout.fact.toggle.hide": "Hide",
|
||
"projects.cards.layout.fact.toggle.show": "Show",
|
||
"projects.cards.layout.fact.move_up": "Move up",
|
||
"projects.cards.layout.fact.move_down": "Move down",
|
||
"projects.cards.layout.fact.count": "Count",
|
||
"projects.cards.event.kind.deadline": "Deadline",
|
||
"projects.cards.event.kind.appointment": "Appointment",
|
||
"projects.cards.event.kind.project_event": "Verlauf",
|
||
"projects.cards.empty": "No projects to show.",
|
||
"projects.detail.clientmatter.inherited": "Inherited from parent",
|
||
"einstellungen.profil.email": "Email",
|
||
"einstellungen.profil.email.hint": "Email cannot be changed.",
|
||
"einstellungen.profil.display_name": "Display name",
|
||
"einstellungen.profil.display_name.placeholder": "First and last name",
|
||
"einstellungen.profil.office": "Office",
|
||
"einstellungen.profil.job_title": "Job title",
|
||
"einstellungen.profil.job_title.placeholder": "e.g. Associate, Partner, Patent Attorney",
|
||
"einstellungen.profil.lang": "Language",
|
||
"einstellungen.profil.lang.de": "Deutsch",
|
||
"einstellungen.profil.lang.en": "English",
|
||
"einstellungen.profil.lang.hint": "Used for the UI and notification emails.",
|
||
"einstellungen.profil.error.display_name": "Please enter a display name.",
|
||
"einstellungen.profil.error.office": "Please select an office.",
|
||
"einstellungen.profil.error.job_title": "Please enter a job title.",
|
||
"einstellungen.prefs.reminders.heading": "Deadline reminders",
|
||
"einstellungen.prefs.reminders.hint": "Paliad emails you when deadlines approach.",
|
||
"einstellungen.prefs.reminders.master": "Deadline reminders enabled",
|
||
"einstellungen.prefs.reminders.overdue": "Overdue deadlines",
|
||
"einstellungen.prefs.reminders.due_today": "Due today",
|
||
"einstellungen.prefs.reminders.due_warning": "Heads-up (N days ahead)",
|
||
"einstellungen.prefs.times.heading": "Send times",
|
||
"einstellungen.prefs.times.hint": "Reminders are sent at the chosen time in your timezone.",
|
||
"einstellungen.prefs.times.morning": "Morning slot",
|
||
"einstellungen.prefs.times.morning.hint": "Bundled email with overdue, due-today and upcoming deadlines.",
|
||
"einstellungen.prefs.times.evening": "Evening slot (escalation)",
|
||
"einstellungen.prefs.times.evening.hint": "Urgent reminder for deadlines still open today.",
|
||
"einstellungen.prefs.times.timezone": "Timezone",
|
||
"einstellungen.prefs.times.timezone.hint": "IANA timezone name (e.g. Europe/Berlin, Europe/London).",
|
||
"einstellungen.prefs.times.error.required": "Please choose both reminder times.",
|
||
"einstellungen.prefs.warning_offset.label": "Heads-up (days ahead)",
|
||
"einstellungen.prefs.warning_offset.hint": "We'll remind you this many days before each deadline.",
|
||
"einstellungen.prefs.warning_offset.error": "Heads-up must be between 1 and 30 days.",
|
||
"einstellungen.prefs.escalation.heading": "Escalation contact",
|
||
"einstellungen.prefs.escalation.hint": "Who else should be notified for DRINGEND-escalations in the evening slot? Default: global admins.",
|
||
"einstellungen.prefs.escalation.default_option": "— Default (global admins) —",
|
||
|
||
// Invitation modal (sidebar)
|
||
"invite.button": "Invite a colleague",
|
||
"invite.modal.title": "Invite a colleague to Paliad",
|
||
"invite.modal.body": `Send an invitation to an ${FIRM} email address. The recipient will receive a registration link.`,
|
||
"invite.modal.email": "Email address",
|
||
"invite.modal.message": "Personal message (optional)",
|
||
"invite.modal.message.placeholder": "Hi, I'm using Paliad for matter management \u2014 take a look.",
|
||
"invite.modal.cancel": "Cancel",
|
||
"invite.modal.send": "Send invitation",
|
||
|
||
"appointments.list.title": "Appointments \u2014 Paliad",
|
||
"appointments.list.heading": "Appointments",
|
||
"appointments.list.subtitle": "Hearings, meetings, consultations \u2014 personal or matter-linked.",
|
||
"appointments.list.new": "New appointment",
|
||
"appointments.summary.today": "Today",
|
||
"appointments.summary.thisweek": "This week",
|
||
"appointments.summary.later": "Later",
|
||
"appointments.filter.type": "Type",
|
||
"appointments.filter.type.all": "All types",
|
||
"appointments.filter.akte": "Matter",
|
||
"appointments.filter.akte.all": "All matters & personal",
|
||
"appointments.filter.akte.personal": "Personal only",
|
||
"appointments.filter.from": "From",
|
||
"appointments.filter.to": "To",
|
||
"appointments.col.start": "Start",
|
||
"appointments.col.title": "Title",
|
||
"appointments.col.akte": "Matter",
|
||
"appointments.col.location": "Location",
|
||
"appointments.col.type": "Type",
|
||
"appointments.empty.title": "No appointments yet",
|
||
"appointments.empty.hint": "Once appointments are created they will show up here.",
|
||
"appointments.empty.filtered": "No appointments match these filters.",
|
||
"appointments.unavailable": "Appointments unavailable \u2014 please contact your administrator.",
|
||
"appointments.personal": "Personal",
|
||
"appointments.type.hearing": "Hearing",
|
||
"appointments.type.meeting": "Meeting",
|
||
"appointments.type.consultation": "Consultation",
|
||
"appointments.type.deadline_hearing": "Deadline hearing",
|
||
"appointments.neu.title": "New appointment \u2014 Paliad",
|
||
"appointments.neu.heading": "New appointment",
|
||
"appointments.neu.subtitle": "Personal or matter-linked. With CalDAV sync enabled, the appointment also appears in your external calendar.",
|
||
"appointments.neu.back": "\u2190 Back to overview",
|
||
"appointments.neu.cancel": "Cancel",
|
||
"appointments.neu.submit": "Create appointment",
|
||
"appointments.field.title": "Title",
|
||
"appointments.field.title.placeholder": "e.g. Oral hearing",
|
||
"appointments.field.start": "Start",
|
||
"appointments.field.end": "End (optional)",
|
||
"appointments.field.type": "Type",
|
||
"appointments.field.type.none": "No type",
|
||
"appointments.field.akte": "Matter (optional)",
|
||
"appointments.field.akte.none": "Personal appointment",
|
||
"appointments.field.location": "Location (optional)",
|
||
"appointments.field.location.placeholder": "e.g. UPC LD Munich",
|
||
"appointments.field.description": "Description (optional)",
|
||
"appointments.field.description.placeholder": "Notes, agenda, next steps\u2026",
|
||
"appointments.error.required": "Title and start are required.",
|
||
"appointments.error.generic": "Save failed. Please try again later.",
|
||
"appointments.detail.title": "Appointment \u2014 Paliad",
|
||
"appointments.detail.back": "\u2190 Back to overview",
|
||
"appointments.detail.loading": "Loading\u2026",
|
||
"appointments.detail.notfound": "Appointment not found",
|
||
"appointments.detail.notfound.hint": "The appointment doesn't exist or you don't have permission.",
|
||
"appointments.detail.akte": "Matter:",
|
||
"appointments.detail.save": "Save changes",
|
||
"appointments.detail.saved": "Saved.",
|
||
"appointments.detail.delete": "Delete appointment",
|
||
"appointments.detail.delete.confirm": "Really delete this appointment?",
|
||
|
||
// t-paliad-110 \u2014 unified Events page (rendered on /deadlines + /appointments).
|
||
"events.toggle.deadline": "Deadlines",
|
||
"events.toggle.appointment": "Appointments",
|
||
"events.toggle.all": "Both",
|
||
"events.filter.status.all": "All (incl. past)",
|
||
"events.filter.status.upcoming": "From today",
|
||
"events.summary.later": "Later",
|
||
"events.col.date": "Date",
|
||
"events.col.location": "Location",
|
||
"events.col.appointment_type": "Appointment type",
|
||
"events.row.type.deadline": "Deadline",
|
||
"events.row.type.appointment": "Appointment",
|
||
"events.empty.title": "Nothing yet",
|
||
"events.empty.hint": "Once deadlines or appointments are added, they appear here.",
|
||
"events.empty.filtered": "No entries match these filters.",
|
||
"events.unavailable": "Deadline / appointment management currently unavailable \u2014 please contact your administrator.",
|
||
"events.view.cards": "Cards",
|
||
"events.view.list": "List",
|
||
"events.view.calendar": "Calendar",
|
||
"caldav.title": "CalDAV sync \u2014 Paliad",
|
||
"caldav.heading": "CalDAV sync",
|
||
"caldav.subtitle": "Sync your Paliad appointments with your external calendar (Nextcloud, iCloud, Outlook, mailcow\u2026). The password is stored encrypted and never returned.",
|
||
"caldav.disabled": "CalDAV sync currently unavailable \u2014 please contact your administrator.",
|
||
"caldav.never": "Never",
|
||
"caldav.field.url": "CalDAV server URL",
|
||
"caldav.field.url.placeholder": "https://cloud.example.com/remote.php/dav/calendars/user/personal/",
|
||
"caldav.field.url.hint": "Full URL to your calendar (including path).",
|
||
"caldav.field.username": "Username",
|
||
"caldav.field.password": "Password / app token",
|
||
"caldav.field.password.hint": "Leave blank when a configuration exists to keep the stored password.",
|
||
"caldav.field.calendar_path": "Calendar path (optional)",
|
||
"caldav.field.calendar_path.placeholder": "/calendars/user/personal/",
|
||
"caldav.field.calendar_path.hint": "If the URL only points at the server, set the calendar path here.",
|
||
"caldav.field.enabled": "Sync enabled",
|
||
"caldav.test": "Test connection",
|
||
"caldav.test.ok": "Connection successful.",
|
||
"caldav.test.fail": "Connection failed",
|
||
"caldav.save": "Save",
|
||
"caldav.saved": "Configuration saved.",
|
||
"caldav.delete": "Delete configuration",
|
||
"caldav.delete.confirm": "Really delete? The stored password will be removed permanently.",
|
||
"caldav.delete.done": "Configuration deleted.",
|
||
"caldav.error.required": "URL and username are required.",
|
||
"caldav.error.password_required": "Password is required on first save.",
|
||
"caldav.error.generic": "Save failed.",
|
||
"caldav.status.last_sync": "Last sync:",
|
||
"caldav.status.last_error": "Last error:",
|
||
"caldav.log.heading": "Recent syncs",
|
||
"caldav.log.col.time": "When",
|
||
"caldav.log.col.pushed": "Pushed",
|
||
"caldav.log.col.pulled": "Pulled",
|
||
"caldav.log.col.duration": "Duration",
|
||
"caldav.log.col.error": "Error",
|
||
"caldav.log.empty": "No sync attempts recorded yet.",
|
||
|
||
// CalDAV multi-calendar bindings (t-paliad-212 Slice 2b)
|
||
"caldav.bindings.heading": "Calendars",
|
||
"caldav.bindings.hint": "Connect multiple calendars to Paliad — one master for everything or separate calendars per project.",
|
||
"caldav.bindings.add": "+ Add calendar",
|
||
"caldav.bindings.empty": "No calendars configured yet.",
|
||
"caldav.bindings.scope.all_visible": "Everything",
|
||
"caldav.bindings.scope.personal_only": "Personal only",
|
||
"caldav.bindings.scope.project": "Project",
|
||
"caldav.bindings.card.enabled": "Enabled",
|
||
"caldav.bindings.card.edit": "Edit",
|
||
"caldav.bindings.card.remove": "Remove",
|
||
"caldav.bindings.modal.add_title": "Add calendar",
|
||
"caldav.bindings.modal.edit_title": "Edit calendar",
|
||
"caldav.bindings.modal.source": "Calendar",
|
||
"caldav.bindings.modal.source.loading": "Loading…",
|
||
"caldav.bindings.modal.source.existing": "Pick existing calendar",
|
||
"caldav.bindings.modal.source.create": "Create new calendar",
|
||
"caldav.bindings.modal.source.custom": "Enter custom URL",
|
||
"caldav.bindings.modal.source.degrade": "This provider doesn't allow creating calendars via CalDAV. Please create the calendar in your provider's UI and add it here by URL.",
|
||
"caldav.bindings.modal.source.discover_failed": "Couldn't discover calendars — enter URL manually.",
|
||
"caldav.bindings.modal.source.discover_empty": "No calendars found — enter URL manually.",
|
||
"caldav.bindings.modal.display_name": "Display name (optional)",
|
||
"caldav.bindings.modal.display_name.placeholder": "e.g. Project Acme v Bosch",
|
||
"caldav.bindings.modal.scope": "Contents",
|
||
"caldav.bindings.modal.scope.all_visible": "Everything I can see",
|
||
"caldav.bindings.modal.scope.personal_only": "Personal appointments only",
|
||
"caldav.bindings.modal.scope.project": "One project:",
|
||
"caldav.bindings.modal.scope.project.loading": "Loading…",
|
||
"caldav.bindings.modal.submit_add": "Add",
|
||
"caldav.bindings.modal.submit_edit": "Save",
|
||
"caldav.bindings.delete.confirm": "Remove this calendar? Its events will be deleted from the external calendar.",
|
||
"caldav.bindings.delete.failed": "Removal failed — please try again later.",
|
||
"caldav.bindings.error.scope": "Please pick a content scope.",
|
||
"caldav.bindings.error.scope_project": "Please pick a project.",
|
||
"caldav.bindings.error.path": "Please pick a calendar or enter a URL.",
|
||
"caldav.bindings.error.create_name_required": "Please enter a display name.",
|
||
"caldav.bindings.error.create_name_taken": "Name already in use — please pick a different display name.",
|
||
"caldav.bindings.error.create_unsupported": "Your provider doesn't support creating calendars. Please use 'Enter custom URL' instead.",
|
||
|
||
// Notizen (polymorphic notes — Phase I)
|
||
"notes.section.title": "Notes",
|
||
"notes.placeholder": "Add a note\u2026",
|
||
"notes.shortcut.hint": "Ctrl+Enter (or \u2318+Enter) to save",
|
||
"notes.submit": "Add",
|
||
"notes.save": "Save",
|
||
"notes.cancel": "Cancel",
|
||
"notes.edit": "Edit",
|
||
"notes.delete": "Delete",
|
||
"notes.delete.confirm": "Really delete this note?",
|
||
"notes.empty": "No notes yet.",
|
||
"notes.edited": "edited",
|
||
"notes.unknown_author": "Unknown",
|
||
"notes.time.just_now": "just now",
|
||
"notes.error.empty": "Note cannot be empty.",
|
||
"notes.error.generic": "Action failed. Please try again.",
|
||
|
||
// Agenda (t-paliad-030) — unified timeline across projects
|
||
"agenda.title": "Agenda — Paliad",
|
||
"agenda.heading": "Agenda",
|
||
"agenda.subtitle": "Upcoming deadlines and appointments across all visible matters, grouped by day.",
|
||
"agenda.unavailable": "Agenda is currently unavailable — please contact an administrator.",
|
||
"agenda.loading": "Loading …",
|
||
"agenda.filter.type": "View",
|
||
"agenda.filter.both": "Both",
|
||
"agenda.filter.deadlines": "Deadlines only",
|
||
"agenda.filter.appointments": "Appointments only",
|
||
"agenda.filter.range": "Range",
|
||
"agenda.range.7": "7 days",
|
||
"agenda.range.14": "14 days",
|
||
"agenda.range.30": "30 days",
|
||
"agenda.range.90": "90 days",
|
||
"agenda.empty.title": "Nothing in this range",
|
||
"agenda.empty.hint": "Nothing due — widen the range or create new deadlines or appointments.",
|
||
"agenda.label.deadline": "Deadline",
|
||
"agenda.label.appointment": "Appointment",
|
||
"agenda.appointment_type.hearing": "Hearing",
|
||
"agenda.appointment_type.meeting": "Meeting",
|
||
"agenda.appointment_type.consultation": "Client meeting",
|
||
"agenda.appointment_type.deadline_hearing": "Deadline hearing",
|
||
"agenda.day.today": "Today",
|
||
"agenda.day.tomorrow": "Tomorrow",
|
||
"agenda.day.mo": "Mon",
|
||
"agenda.day.di": "Tue",
|
||
"agenda.day.mi": "Wed",
|
||
"agenda.day.do": "Thu",
|
||
"agenda.day.fr": "Fri",
|
||
"agenda.day.sa": "Sat",
|
||
"agenda.day.so": "Sun",
|
||
"agenda.urgency.overdue": "Overdue",
|
||
"agenda.urgency.today": "Today",
|
||
"agenda.urgency.tomorrow": "Tomorrow",
|
||
"agenda.urgency.this_week": "This week",
|
||
"agenda.urgency.later": "Later",
|
||
|
||
// Team directory (t-paliad-029)
|
||
"team.title": "Team — Paliad",
|
||
"team.heading": "Team",
|
||
"team.subtitle": "All Paliad colleagues, grouped by office or partner unit.",
|
||
"team.search.placeholder": "Search by name, role, office…",
|
||
"team.group.office": "By office",
|
||
"team.group.department": "By partner unit",
|
||
"team.group.other": "Other",
|
||
"team.filter.all": "All",
|
||
"team.filter.role": "Role",
|
||
"team.role.partner": "Partner",
|
||
"team.role.counsel": "Counsel",
|
||
"team.role.counsel_knowledge_lawyer": "Counsel Knowledge Lawyer",
|
||
"team.role.senior_associate": "Senior Associate",
|
||
"team.role.associate": "Associate",
|
||
"team.role.junior_associate": "Junior Associate",
|
||
"team.role.trainee": "Trainee",
|
||
"team.role.pa": "PA",
|
||
"team.role.paralegal": "Paralegal",
|
||
"team.role.secretary": "Secretary",
|
||
"team.empty": "No matches.",
|
||
"team.dept.lead": "Lead",
|
||
"team.dept.unassigned": "No partner unit",
|
||
"team.partner_unit.unassigned": "No partner unit",
|
||
// Project filter (t-paliad-147)
|
||
"team.filter.project": "Project",
|
||
"team.filter.project.all": "All projects",
|
||
"team.filter.project.selected": "selected",
|
||
"team.filter.project.clear": "Deselect all",
|
||
// Click-to-select (t-paliad-223 #53).
|
||
"team.selection.count": "{n} selected",
|
||
"team.selection.clear": "Clear selection",
|
||
"team.selection.send": "Email selection",
|
||
"team.selection.select_all": "Select all visible",
|
||
"team.selection.toggle_card": "Select contact",
|
||
// Broadcast modal (t-paliad-147)
|
||
"team.broadcast.button": "Email selection",
|
||
"team.broadcast.title": "Email selection",
|
||
"team.broadcast.recipients": "Recipients",
|
||
"team.broadcast.show_all": "Show all",
|
||
"team.broadcast.mailto.label": "Open in mail client",
|
||
"team.broadcast.mailto.tooltip": "Opens your local mail client with every recipient prefilled in the To: line",
|
||
"team.broadcast.template": "Template",
|
||
"team.broadcast.template_optional": "optional",
|
||
"team.broadcast.template_freeform": "Free-form",
|
||
"team.broadcast.template.invitation": "Invitation",
|
||
"team.broadcast.template.deadline_digest": "Deadline digest",
|
||
"team.broadcast.subject": "Subject",
|
||
"team.broadcast.body": "Message",
|
||
"team.broadcast.body_placeholder": "Hi {{first_name}}, …",
|
||
"team.broadcast.placeholders_hint": "Placeholders: {{name}}, {{first_name}}, {{role_on_project}}",
|
||
"team.broadcast.markdown_hint": "Markdown supported: **bold**, *italic*, [link](https://...), - bullet.",
|
||
"team.broadcast.send": "Send",
|
||
"team.broadcast.sending": "Sending…",
|
||
"team.broadcast.sent": "Sent",
|
||
"team.broadcast.success": "{sent} of {total} emails sent ({failed} failed).",
|
||
"team.broadcast.error.no_recipients": "No recipients selected.",
|
||
"team.broadcast.error.too_many": "Recipient limit ({cap}) exceeded.",
|
||
"team.broadcast.error.subject_required": "Subject is required.",
|
||
"team.broadcast.error.body_required": "Message is required.",
|
||
"common.close": "Close",
|
||
// Admin broadcasts viewer (t-paliad-147)
|
||
"admin.broadcasts.title": "Broadcasts — Paliad",
|
||
"admin.broadcasts.heading": "Broadcasts",
|
||
"admin.broadcasts.subtitle": "Sent bulk emails to team selections.",
|
||
"admin.broadcasts.col.sent_at": "Sent",
|
||
"admin.broadcasts.col.subject": "Subject",
|
||
"admin.broadcasts.col.sender": "Sender",
|
||
"admin.broadcasts.col.count": "Recipients",
|
||
"admin.broadcasts.loading": "Loading…",
|
||
"admin.broadcasts.empty": "No broadcasts sent yet.",
|
||
"admin.broadcasts.detail.sent_by": "Sent by",
|
||
"admin.broadcasts.detail.delivered": "delivered",
|
||
"admin.broadcasts.detail.failed": "failed",
|
||
"admin.broadcasts.detail.recipients": "Recipients",
|
||
|
||
// t-paliad-146: Paliadin in-app AI buddy (PoC)
|
||
"paliadin.title": "Paliadin — Paliad",
|
||
"paliadin.heading": "✨ Paliadin",
|
||
"paliadin.tagline": "I know your matters and Paliad's knowledge base.",
|
||
"paliadin.empty": "What can I help you with?",
|
||
"paliadin.starter.today": "What's on my plate today?",
|
||
"paliadin.starter.week": "Which deadlines are due this week?",
|
||
"paliadin.starter.concept": "Explain Klageerwiderung.",
|
||
"paliadin.input.placeholder": "Ask Paliadin…",
|
||
"paliadin.send": "Send",
|
||
"paliadin.stop": "Stop",
|
||
"paliadin.reset": "New conversation",
|
||
"paliadin.error.local_only": "Paliadin only runs locally. This instance has no tmux/claude installed — start it locally via ./paliad.",
|
||
"paliadin.error.mriver_unreachable": "mRiver is offline — Paliadin can't reach it. Wake mRiver, or run Paliadin locally with ./paliad.",
|
||
"paliadin.error.shim_auth_failed": "Paliadin auth failed. Check the SSH key or authorized_keys on mRiver.",
|
||
"paliadin.error.shim_error": "Paliadin error on mRiver. Check the tmux/claude pane.",
|
||
"paliadin.error.timeout": "Paliadin didn't respond in time (60s). Try again.",
|
||
"paliadin.error.connection_lost": "Connection lost.",
|
||
"paliadin.error.upstream": "Send failed.",
|
||
"paliadin.error.upstream_silence": "Paliadin went silent — closing the connection.",
|
||
"paliadin.late.waiting": "Will fill in the response when it arrives …",
|
||
"paliadin.late.checking": "Connection lost — Paliadin may still be thinking. Fetching fresh answer …",
|
||
"paliadin.late.lost": "Answer couldn't be delivered — please ask again.",
|
||
"paliadin.late.marker": "late",
|
||
"paliadin.thinking": "Paliadin is thinking",
|
||
"paliadin.thinking.seconds": "{seconds}s",
|
||
"paliadin.widget.title": "Paliadin",
|
||
"paliadin.widget.trigger": "Paliadin (Cmd+J)",
|
||
"paliadin.widget.empty": "What can I help you with?",
|
||
"paliadin.widget.input.placeholder": "Ask Paliadin...",
|
||
"paliadin.widget.input.label": "Message to Paliadin",
|
||
"paliadin.widget.send": "Send",
|
||
"paliadin.widget.reset": "Reset conversation",
|
||
"paliadin.widget.reset.confirm": "Reset the conversation here and on the server?",
|
||
"paliadin.widget.fullscreen": "Fullscreen mode",
|
||
"paliadin.widget.close": "Close",
|
||
"paliadin.widget.context.on_page": "On this page",
|
||
"approvals.agent.label": "Paliadin suggested this",
|
||
"approvals.agent.byline": "Paliadin",
|
||
"approvals.agent.suggestion_pending": "Suggestion awaiting your approval",
|
||
"nav.admin.paliadin": "Paliadin Monitor",
|
||
"admin.paliadin.title": "Paliadin Monitor — Paliad",
|
||
"admin.paliadin.heading": "Paliadin Monitor",
|
||
"admin.paliadin.subtitle": "How is Paliadin actually being used?",
|
||
"admin.paliadin.total": "Total",
|
||
"admin.paliadin.last7": "Last 7 days",
|
||
"admin.paliadin.median_dur": "Median duration",
|
||
"admin.paliadin.tool_rate": "Tool-use rate",
|
||
"admin.paliadin.abandon_rate": "Abandon rate",
|
||
"admin.paliadin.classifier_heading": "Question types",
|
||
"admin.paliadin.daily_heading": "Daily usage",
|
||
"admin.paliadin.top_heading": "Top queries",
|
||
"admin.paliadin.recent_heading": "Recent queries",
|
||
"admin.paliadin.col.prompt": "Query",
|
||
"admin.paliadin.col.count": "Count",
|
||
"admin.paliadin.col.started": "Time",
|
||
"admin.paliadin.col.user": "User",
|
||
"admin.paliadin.col.classifier": "Type",
|
||
"admin.paliadin.col.response": "Answer",
|
||
"admin.paliadin.col.tools": "Tools",
|
||
"admin.paliadin.col.origin": "Page",
|
||
"admin.paliadin.col.duration": "Duration",
|
||
"admin.paliadin.loading": "Loading…",
|
||
|
||
"common.forbidden": "Access denied.",
|
||
"common.load_error": "Load error.",
|
||
"common.loading": "Loading…",
|
||
"partner_unit.heading": "My Partner Units",
|
||
"partner_unit.subtitle": "Partner Units are structural units — separate from project teams. Membership is admin-managed.",
|
||
"partner_unit.none": "You are not a member of any Partner Unit yet.",
|
||
"partner_unit.members_label": "members",
|
||
|
||
// Admin team management (t-paliad-050)
|
||
"nav.group.admin": "Admin",
|
||
"nav.admin.bereich": "Admin Area",
|
||
"nav.admin.team": "Team Management",
|
||
"admin.title": "Admin Area — Paliad",
|
||
"admin.heading": "Admin Area",
|
||
"admin.subtitle": "Tools for managing Paliad. Visible only to administrators.",
|
||
"admin.section.available": "Available",
|
||
"admin.section.planned": "Planned",
|
||
"admin.coming_soon": "Coming soon",
|
||
"admin.card.team.title": "Team Management",
|
||
"admin.card.team.desc": "Create, edit and delete user accounts.",
|
||
"admin.card.partner_units.title": "Partner Units",
|
||
"admin.card.partner_units.desc": "Create structural partner units and assign members.",
|
||
"admin.card.audit.title": "Audit Log",
|
||
"admin.card.audit.desc": "Who changed what, and when. Traceability for security-relevant actions.",
|
||
"admin.card.email_templates.title": "Email Templates",
|
||
"admin.card.email_templates.desc": "Customise templates for invitations, reminders and the wrapper layout.",
|
||
"admin.card.feature_flags.title": "Feature Flags",
|
||
"admin.card.feature_flags.desc": "Enable features per office, partner unit or role.",
|
||
"admin.card.broadcasts.title": "Broadcasts",
|
||
"admin.card.broadcasts.desc": "Inspect bulk emails sent to team selections.",
|
||
"admin.card.approval_policies.title": "Approval Policies",
|
||
"admin.card.approval_policies.desc": "Configure 4-eye review per project and partner unit.",
|
||
"admin.approval_policies.title": "Approval Policies — Paliad",
|
||
"admin.approval_policies.heading": "Approval Policies",
|
||
"admin.approval_policies.subtitle": "Configure 4-eye review per project and partner unit.",
|
||
"admin.approval_policies.loading": "Loading …",
|
||
"admin.approval_policies.section.units": "Partner Unit Defaults",
|
||
"admin.approval_policies.section.units.hint": "Default rules that every project attached to a partner unit inherits. When multiple partner units apply, the strictest rule wins.",
|
||
"admin.approval_policies.section.projects": "Project-specific",
|
||
"admin.approval_policies.section.projects.hint": "Per-project rules. Override partner-unit defaults and inherited project rules.",
|
||
"admin.approval_policies.units.empty": "No partner units yet.",
|
||
"admin.approval_policies.picker.label": "Pick a project",
|
||
"admin.approval_policies.picker.placeholder": "Search…",
|
||
"admin.approval_policies.picker.no_results": "No matches.",
|
||
"admin.approval_policies.entity.deadline": "Deadlines",
|
||
"admin.approval_policies.entity.appointment": "Appointments",
|
||
"admin.approval_policies.lifecycle.create": "Create",
|
||
"admin.approval_policies.lifecycle.update": "Edit",
|
||
"admin.approval_policies.lifecycle.complete": "Complete",
|
||
"admin.approval_policies.lifecycle.delete": "Delete",
|
||
"admin.approval_policies.role.partner": "Partner",
|
||
"admin.approval_policies.role.of_counsel": "Of Counsel",
|
||
"admin.approval_policies.role.associate": "Associate",
|
||
"admin.approval_policies.role.senior_pa": "Senior PA",
|
||
"admin.approval_policies.role.pa": "PA",
|
||
"admin.approval_policies.role.none": "No approval",
|
||
"admin.approval_policies.role.no_rule": "— no rule —",
|
||
"admin.approval_policies.source.project": "Project",
|
||
"admin.approval_policies.source.ancestor": "Inherited",
|
||
"admin.approval_policies.source.unit_default": "Default",
|
||
"admin.approval_policies.source.no_approval": "no approval",
|
||
"admin.approval_policies.cell.requires": "Approval required",
|
||
"admin.approval_policies.cell.clear": "—",
|
||
"admin.approval_policies.cell.clear.title": "Reset to inheritance",
|
||
"admin.approval_policies.cell.saved_msg": "Saved.",
|
||
"admin.approval_policies.cell.error_msg": "Error",
|
||
"admin.approval_policies.bulk.cta": "Apply to descendants",
|
||
"admin.approval_policies.bulk.no_descendants": "No descendants.",
|
||
"admin.approval_policies.bulk.modal.title": "Apply to descendants",
|
||
"admin.approval_policies.bulk.modal.body": "The descendants below receive this project's effective matrix as project-specific rules. Existing project-specific rules will be overwritten. Partner-unit defaults remain intact.",
|
||
"admin.approval_policies.bulk.modal.cancel": "Cancel",
|
||
"admin.approval_policies.bulk.modal.confirm": "Apply",
|
||
"admin.approval_policies.bulk.modal.applying": "Applying …",
|
||
"admin.approval_policies.bulk.modal.done": "Applied",
|
||
"admin.approval_policies.bulk.modal.writes_label": "writes",
|
||
"admin.approval_policies.bulk.modal.targets_label": "projects",
|
||
"inbox.empty.admin_nudge.title": "No approval policies configured yet?",
|
||
"inbox.empty.admin_nudge.body": "Set which lifecycle events require 4-eye review.",
|
||
"inbox.empty.admin_nudge.cta": "Configure approval policies",
|
||
"inbox.title.feed": "Inbox — Paliad",
|
||
"inbox.heading.feed": "Inbox",
|
||
"inbox.subtitle.feed": "Updates on your projects and open approvals.",
|
||
"inbox.action.mark_all_seen": "Mark all as read",
|
||
"inbox.action.open": "Open",
|
||
"inbox.empty.feed": "No updates in the last 30 days.",
|
||
"views.bar.label.unread_only": "Read state",
|
||
"views.bar.unread_only.on": "Unread only",
|
||
"views.bar.unread_only.off": "All",
|
||
"views.bar.label.inbox_focus": "Show",
|
||
"views.bar.inbox_focus.alles": "Everything",
|
||
"views.bar.inbox_focus.genehmigungen": "Approvals only",
|
||
"views.bar.inbox_focus.plus_termine": "+ Appointments",
|
||
"views.bar.inbox_focus.plus_fristen": "+ Deadlines",
|
||
"deadlines.form.approval_hint": "4-eye review required",
|
||
"appointments.form.approval_hint": "4-eye review required",
|
||
"admin.email_templates.title": "Email Templates — Paliad",
|
||
"admin.email_templates.heading": "Email Templates",
|
||
"admin.email_templates.subtitle": "Customise templates for invitations, reminders, and the shared layout wrapper.",
|
||
"admin.email_templates.loading": "Loading…",
|
||
"admin.email_templates.load_error": "Failed to load templates.",
|
||
"admin.email_templates.back": "← Back to list",
|
||
"admin.email_templates.lang.de": "German",
|
||
"admin.email_templates.lang.en": "English",
|
||
"admin.email_templates.status.default": "Default",
|
||
"admin.email_templates.status.last_modified": "Last modified: {date}",
|
||
"admin.email_templates.card.invitation.title": "Invitation",
|
||
"admin.email_templates.card.invitation.desc": "Email sent to new colleagues from the sidebar invite flow.",
|
||
"admin.email_templates.card.deadline_digest.title": "Deadline digest",
|
||
"admin.email_templates.card.deadline_digest.desc": "Daily morning + evening email with overdue, due-today, and upcoming deadlines.",
|
||
"admin.email_templates.card.base.title": "Layout wrapper",
|
||
"admin.email_templates.card.base.desc": "Shared HTML frame (header + footer) that wraps every email.",
|
||
"admin.email_templates.editor.title": "Edit email template — Paliad",
|
||
"admin.email_templates.editor.heading": "Edit email template",
|
||
"admin.email_templates.editor.heading_for": "{title} — {lang}",
|
||
"admin.email_templates.editor.is_default": "Currently using the default.",
|
||
"admin.email_templates.editor.last_modified": "Last modified: {date}",
|
||
"admin.email_templates.editor.subject": "Subject",
|
||
"admin.email_templates.editor.body": "HTML body",
|
||
"admin.email_templates.editor.note_optional": "Note (optional)",
|
||
"admin.email_templates.editor.note_placeholder": "e.g. Correction following counsel feedback",
|
||
"admin.email_templates.editor.variables": "Available variables",
|
||
"admin.email_templates.editor.preview": "Preview",
|
||
"admin.email_templates.editor.preview_refresh": "Refresh preview",
|
||
"admin.email_templates.editor.preview_error": "Preview failed.",
|
||
"admin.email_templates.editor.parse_error": "Template error:",
|
||
"admin.email_templates.editor.save": "Save",
|
||
"admin.email_templates.editor.save_ok": "Saved.",
|
||
"admin.email_templates.editor.save_error": "Save failed.",
|
||
"admin.email_templates.editor.reset": "Reset to default",
|
||
"admin.email_templates.editor.reset_confirm": "Really reset to default?",
|
||
"admin.email_templates.editor.reset_ok": "Reset to default.",
|
||
"admin.email_templates.editor.reset_error": "Reset failed.",
|
||
"admin.email_templates.editor.versions": "Versions",
|
||
"admin.email_templates.editor.versions_empty": "No versions yet.",
|
||
"admin.email_templates.editor.restore": "Restore",
|
||
"admin.email_templates.editor.restore_confirm": "Restore this version?",
|
||
"admin.email_templates.editor.restore_ok": "Version restored.",
|
||
"admin.email_templates.editor.restore_error": "Restore failed.",
|
||
"admin.email_templates.editor.dirty_warn": "Discard unsaved changes?",
|
||
"admin.email_templates.editor.unknown_key": "Unknown template key.",
|
||
"admin.email_templates.editor.slot.morning": "Morning slot",
|
||
"admin.email_templates.editor.slot.evening": "Evening slot",
|
||
"admin.team.title": "Team Management — Paliad",
|
||
"admin.team.heading": "Team Management",
|
||
"admin.team.subtitle": "View, edit and add Paliad accounts.",
|
||
"admin.team.search.placeholder": "Search by name or email…",
|
||
"admin.team.add.full": "Add account directly",
|
||
"admin.team.add.direct": "Onboard existing account",
|
||
"admin.team.add.invite": "Invite Colleague",
|
||
"admin.team.add_full.title": "Add account directly",
|
||
"admin.team.add_full.body": "Creates both the login account and the Paliad profile. The new colleague receives an email with a link to set a password.",
|
||
"admin.team.add_full.email": "Email",
|
||
"admin.team.add_full.name": "Display name",
|
||
"admin.team.add_full.office": "Office",
|
||
"admin.team.add_full.profession": "Profession",
|
||
"admin.team.add_full.job_title": "Job title",
|
||
"admin.team.add_full.lang": "Language",
|
||
"admin.team.add_full.send_welcome": "Send welcome email with login link",
|
||
"admin.team.add_full.cancel": "Cancel",
|
||
"admin.team.add_full.submit": "Create",
|
||
"admin.team.add_full.feedback.added": "Account created.",
|
||
"admin.team.add_full.error.unavailable": "Add-User path is not configured (SUPABASE_SERVICE_ROLE_KEY missing on the server).",
|
||
"admin.team.add_full.error.email_exists": "An account already exists for this email — please use 'Onboard existing account' instead.",
|
||
"admin.team.add_full.error.generic": "Could not create the account.",
|
||
"admin.team.loading": "Loading…",
|
||
"admin.team.empty": "No matches.",
|
||
"admin.team.error.forbidden": "Admins only.",
|
||
"admin.team.col.name": "Name",
|
||
"admin.team.col.email": "Email",
|
||
"admin.team.col.office": "Office",
|
||
"admin.team.col.job_title": "Job title",
|
||
"admin.team.col.profession": "Profession",
|
||
"admin.team.col.profession.none": "(external)",
|
||
"admin.team.col.profession.none.hint": "No profession set — no 4-eye authority.",
|
||
"admin.team.col.permission": "Permission",
|
||
"admin.team.col.additional": "Additional offices",
|
||
"admin.team.col.lang": "Lang",
|
||
"admin.team.col.created": "Created",
|
||
"admin.team.col.actions": "Actions",
|
||
"admin.team.row.edit": "Edit",
|
||
"admin.team.row.delete": "Delete",
|
||
"admin.team.row.save": "Save",
|
||
"admin.team.row.cancel": "Cancel",
|
||
"admin.team.confirm.delete": "Really delete {name}? This action is permanent.",
|
||
"admin.team.feedback.saved": "Saved.",
|
||
"admin.team.feedback.deleted": "Deleted.",
|
||
"admin.team.feedback.added": "Account onboarded.",
|
||
"admin.team.direct_add.title": "Onboard existing account",
|
||
"admin.team.direct_add.body": "This list shows accounts that have signed in but never completed onboarding.",
|
||
"admin.team.direct_add.email": "Email",
|
||
"admin.team.direct_add.email.placeholder": "Please select…",
|
||
"admin.team.direct_add.empty": "No pending accounts.",
|
||
"admin.team.direct_add.name": "Display name",
|
||
"admin.team.direct_add.office": "Office",
|
||
"admin.team.direct_add.job_title": "Job title",
|
||
"admin.team.permission.standard": "Standard",
|
||
"admin.team.permission.global_admin": "Global Admin",
|
||
"admin.team.permission.last_admin": "The last global admin cannot be demoted.",
|
||
"admin.team.direct_add.cancel": "Cancel",
|
||
"admin.team.direct_add.submit": "Create",
|
||
|
||
// Admin audit log (t-paliad-071)
|
||
"nav.admin.audit": "Audit Log",
|
||
"nav.admin.partner_units": "Partner Units",
|
||
|
||
// Admin Backup Mode (t-paliad-246 / m/paliad#77)
|
||
"nav.admin.backups": "Backups",
|
||
"admin.backups.title": "Backups — Paliad",
|
||
"admin.backups.heading": "Backups",
|
||
"admin.backups.subtitle": "Full snapshots of all data — manual or scheduled.",
|
||
"admin.backups.run_now": "Run backup now",
|
||
"admin.backups.running": "Running …",
|
||
"admin.backups.success": "Backup created successfully.",
|
||
"admin.backups.empty": "No backups yet.",
|
||
"admin.backups.loading": "Loading …",
|
||
"admin.backups.col.started": "Started",
|
||
"admin.backups.col.kind": "Trigger",
|
||
"admin.backups.col.status": "Status",
|
||
"admin.backups.col.requested_by": "Requested by",
|
||
"admin.backups.col.size": "Size",
|
||
"admin.backups.col.rows": "Sheets",
|
||
"admin.backups.col.actions": "Action",
|
||
"admin.backups.kind.scheduled": "Scheduled",
|
||
"admin.backups.kind.on_demand": "Manual",
|
||
"admin.backups.status.running": "Running …",
|
||
"admin.backups.status.done": "✓ Done",
|
||
"admin.backups.status.failed": "✗ Failed",
|
||
"admin.backups.download": "Download",
|
||
"admin.backups.footer.note": "Scheduled backups land in a later slice. Manual backups are available now.",
|
||
"admin.audit.title": "Audit Log — Paliad",
|
||
"admin.audit.heading": "Audit Log",
|
||
"admin.audit.subtitle": "Global timeline across project, CalDAV, reminder and partner-unit events.",
|
||
"admin.audit.source.partner_unit_events": "Partner Units",
|
||
"admin.partner_units.title": "Partner Units — Paliad",
|
||
"admin.partner_units.heading": "Partner Units",
|
||
"admin.partner_units.subtitle": "Manage structural partner units and assign members.",
|
||
"admin.partner_units.loading": "Loading…",
|
||
"admin.partner_units.empty": "No partner units yet.",
|
||
"admin.partner_units.new": "New Partner Unit",
|
||
"admin.partner_units.new.heading": "Create Partner Unit",
|
||
"admin.partner_units.edit.heading": "Edit Partner Unit",
|
||
"admin.partner_units.create": "Save",
|
||
"admin.partner_units.cancel": "Cancel",
|
||
"admin.partner_units.col.name": "Name",
|
||
"admin.partner_units.col.office": "Office",
|
||
"admin.partner_units.col.lead": "Lead",
|
||
"admin.partner_units.col.members": "Members",
|
||
"admin.partner_units.col.actions": "Actions",
|
||
"admin.partner_units.action.members": "Members",
|
||
"admin.partner_units.action.edit": "Edit",
|
||
"admin.partner_units.action.delete": "Delete",
|
||
"admin.partner_units.confirm_delete": "Really delete partner unit \"{name}\"?",
|
||
"admin.partner_units.error.name_required": "Name required",
|
||
"admin.partner_units.error.user_required": "Select a user",
|
||
"admin.partner_units.feedback.created": "Created.",
|
||
"admin.partner_units.feedback.updated": "Updated.",
|
||
"admin.partner_units.feedback.deleted": "Deleted.",
|
||
"admin.partner_units.feedback.role_updated": "Role updated.",
|
||
"admin.partner_units.member.heading": "Manage members",
|
||
"admin.partner_units.member.empty": "No members yet.",
|
||
"admin.partner_units.member.add": "Add member",
|
||
"admin.partner_units.member.add_btn": "Add",
|
||
"admin.partner_units.member.remove": "Remove",
|
||
"admin.partner_units.member.confirm_remove": "Remove member?",
|
||
"admin.partner_units.member.placeholder": "Name or email",
|
||
"admin.partner_units.member.role": "Role",
|
||
"admin.audit.loading": "Loading…",
|
||
"admin.audit.empty": "No events match the selected filters.",
|
||
"admin.audit.loadmore": "Load more",
|
||
"admin.audit.error.forbidden": "Admins only.",
|
||
"admin.audit.error.unavailable": "Audit service unavailable.",
|
||
"admin.audit.search.placeholder": "Subject, description, event type…",
|
||
"admin.audit.filter.source": "Source",
|
||
"admin.audit.filter.range": "Range",
|
||
"admin.audit.filter.from": "From",
|
||
"admin.audit.filter.to": "To",
|
||
"admin.audit.filter.search": "Search",
|
||
"admin.audit.range.24h": "Last 24h",
|
||
"admin.audit.range.7d": "Last 7 days",
|
||
"admin.audit.range.30d": "Last 30 days",
|
||
"admin.audit.range.custom": "Custom",
|
||
"admin.audit.range.all": "All",
|
||
"admin.audit.source.all": "All sources",
|
||
"admin.audit.source.project_events": "Project events",
|
||
"admin.audit.source.caldav_sync_log": "CalDAV sync",
|
||
"admin.audit.source.reminder_log": "Reminder",
|
||
"admin.audit.col.time": "Time",
|
||
"admin.audit.col.source": "Source",
|
||
"admin.audit.col.event": "Event",
|
||
"admin.audit.col.actor": "Actor",
|
||
"admin.audit.col.subject": "Subject",
|
||
"admin.audit.col.description": "Description",
|
||
"admin.audit.event.caldav_synced": "CalDAV sync ok",
|
||
"admin.audit.event.caldav_sync_error": "CalDAV sync error",
|
||
"admin.audit.event.morning_digest": "Morning digest sent",
|
||
"admin.audit.event.evening_digest": "Evening digest sent",
|
||
"admin.audit.event.deadline_reminder": "Deadline reminder sent",
|
||
"admin.audit.event.due_today": "Due-today reminder sent",
|
||
"admin.audit.event.weekly": "Weekly digest sent",
|
||
|
||
// Not-found (404) page
|
||
"notfound.title": "Page not found — Paliad",
|
||
"notfound.heading": "Page not found",
|
||
"notfound.lede": "This page doesn't exist or has been moved.",
|
||
"notfound.cta": "Back to dashboard",
|
||
|
||
// t-paliad-088: Event Types — picker, multi-select filter, add modal.
|
||
"common.cancel": "Cancel",
|
||
"modal.close.label": "Close",
|
||
"event_types.cat.submission": "Submissions",
|
||
"event_types.cat.decision": "Decisions",
|
||
"event_types.cat.order": "Orders",
|
||
"event_types.cat.service": "Service",
|
||
"event_types.cat.fee": "Fees",
|
||
"event_types.cat.hearing": "Hearings",
|
||
"event_types.cat.other": "Other",
|
||
"event_types.picker.search": "Search or type…",
|
||
"event_types.picker.add": "+ Add new type…",
|
||
"event_types.picker.remove": "Remove",
|
||
"event_types.picker.no_match": "No matches.",
|
||
"event_types.picker.browse_all": "Browse all",
|
||
"event_types.browse.title": "Choose event types",
|
||
"event_types.browse.search": "Search across all types…",
|
||
"event_types.browse.empty": "No matches.",
|
||
"event_types.browse.apply": "Apply",
|
||
"event_types.browse.cancel": "Cancel",
|
||
"event_types.browse.selected_count": "{n} selected",
|
||
"event_types.browse.jurisdiction.none": "Any",
|
||
"event_types.browse.jurisdiction.all": "All courts",
|
||
"event_types.browse.jurisdiction.filter_label": "Filter by court type",
|
||
"event_types.filter.all": "All types",
|
||
"event_types.filter.untyped": "— Untyped —",
|
||
"event_types.filter.search": "Search type…",
|
||
"event_types.filter.reset": "Reset",
|
||
"event_types.filter.apply": "Apply",
|
||
"event_types.filter.n_selected": "{n} types",
|
||
"event_types.add.title": "Create new event type",
|
||
"event_types.add.label_de": "Label (DE) *",
|
||
"event_types.add.label_en": "Label (EN, optional)",
|
||
"event_types.add.category": "Category *",
|
||
"event_types.add.jurisdiction": "Jurisdiction (optional)",
|
||
"event_types.add.jurisdiction.none": "—",
|
||
"event_types.add.jurisdiction.any": "Any",
|
||
"event_types.add.firm_wide": "Make firm-wide",
|
||
"event_types.add.firm_wide.hint": "Firm-wide types are visible to all colleagues. Admins can archive them.",
|
||
"event_types.add.submit": "Create",
|
||
"event_types.add.duplicate_warn": "Probably already exists:",
|
||
"event_types.add.error.required": "Label (DE) is required.",
|
||
"event_types.add.error.slug_taken": "A type with this name already exists.",
|
||
"event_types.add.error.generic": "Could not create. Please try again.",
|
||
"deadlines.field.event_type": "Type (optional)",
|
||
"deadlines.col.event_type": "Type",
|
||
"deadlines.filter.event_type": "Type",
|
||
"agenda.filter.event_type": "Type",
|
||
|
||
// t-paliad-089: Admin Event-Type moderation panel.
|
||
"nav.admin.event_types": "Event Types",
|
||
"admin.card.event_types.title": "Event Types",
|
||
"admin.card.event_types.desc": "Moderate firm-wide event types: archive, merge, promote.",
|
||
"admin.event_types.title": "Event Types — Paliad",
|
||
"admin.event_types.heading": "Event Types",
|
||
"admin.event_types.subtitle": "Moderate firm-wide event types: archive, merge, promote private types.",
|
||
"admin.event_types.section.firm_wide": "Firm-wide types",
|
||
"admin.event_types.section.private_pending": "Private types (pending promotion)",
|
||
"admin.event_types.section.private_pending.hint": "Private types from other colleagues, sorted by usage. Promoting makes the type firm-wide.",
|
||
"admin.event_types.search.placeholder": "Search label, slug or author…",
|
||
"admin.event_types.show_archived": "Show archived",
|
||
"admin.event_types.loading": "Loading…",
|
||
"admin.event_types.empty": "No matches.",
|
||
"admin.event_types.private.empty": "No private types.",
|
||
"admin.event_types.col.label": "Label",
|
||
"admin.event_types.col.category": "Category",
|
||
"admin.event_types.col.jurisdiction": "Jurisdiction",
|
||
"admin.event_types.col.author": "Author",
|
||
"admin.event_types.col.created": "Created",
|
||
"admin.event_types.col.usage": "Usage",
|
||
"admin.event_types.col.actions": "Actions",
|
||
"admin.event_types.row.archived": "Archived",
|
||
"admin.event_types.author.system": "System",
|
||
"admin.event_types.author.unknown": "Unknown",
|
||
"admin.event_types.action.archive": "Archive",
|
||
"admin.event_types.action.archive_selected": "Archive selected",
|
||
"admin.event_types.action.merge_selected": "Merge…",
|
||
"admin.event_types.action.restore": "Restore",
|
||
"admin.event_types.action.promote": "Promote",
|
||
"admin.event_types.bulk.count": "{n} selected",
|
||
"admin.event_types.confirm.archive": "Really archive \"{label}\"?",
|
||
"admin.event_types.confirm.bulk_archive": "Really archive {n} types?",
|
||
"admin.event_types.confirm.promote": "Make \"{label}\" firm-wide?",
|
||
"admin.event_types.confirm.merge": "\"{winner}\" as winner: {n} loser type(s) will be archived, {usage} junction row(s) redirected. Proceed?",
|
||
"admin.event_types.feedback.archived": "{n} archived.",
|
||
"admin.event_types.feedback.archive_error": "Archive failed.",
|
||
"admin.event_types.feedback.restored": "Restored.",
|
||
"admin.event_types.feedback.restore_error": "Restore failed.",
|
||
"admin.event_types.feedback.promoted": "Promoted.",
|
||
"admin.event_types.feedback.promote_error": "Promotion failed.",
|
||
"admin.event_types.feedback.merged": "Merged.",
|
||
"admin.event_types.feedback.merge_error": "Merge failed.",
|
||
"admin.event_types.error.forbidden": "Admins only.",
|
||
"admin.event_types.merge.title": "Merge types",
|
||
"admin.event_types.merge.body": "Pick the winner. Loser junction rows get redirected to the winner, then the losers are archived.",
|
||
"admin.event_types.merge.submit": "Merge",
|
||
|
||
// Approval workflow (t-paliad-138).
|
||
"approvals.title": "Approvals",
|
||
"approvals.heading": "Approvals",
|
||
"approvals.subtitle": "Four-eyes review for deadlines and appointments.",
|
||
"approvals.tab.pending_mine": "Awaiting approval",
|
||
"approvals.tab.mine": "My requests",
|
||
"approvals.empty.pending_mine": "Nothing awaits your approval.",
|
||
"approvals.empty.mine": "You have no open requests.",
|
||
"approvals.lifecycle.create": "Creation",
|
||
"approvals.lifecycle.update": "Change",
|
||
"approvals.lifecycle.complete": "Completion",
|
||
"approvals.lifecycle.delete": "Deletion",
|
||
"approvals.entity.deadline": "Deadline",
|
||
"approvals.entity.appointment": "Appointment",
|
||
"approvals.required_role.lead": "Lead",
|
||
"approvals.required_role.of_counsel": "Of Counsel",
|
||
"approvals.required_role.associate": "Associate",
|
||
"approvals.required_role.senior_pa": "Senior PA",
|
||
"approvals.required_role.pa": "PA",
|
||
"approvals.status.pending": "Open",
|
||
"approvals.status.approved": "Approved",
|
||
"approvals.status.rejected": "Rejected",
|
||
"approvals.status.revoked": "Revoked",
|
||
"approvals.status.superseded": "Superseded",
|
||
"approvals.status.changes_requested": "Declined with changes",
|
||
"approvals.action.approve": "Approve",
|
||
"approvals.action.reject": "Reject",
|
||
"approvals.action.revoke": "Revoke",
|
||
"approvals.action.suggest_changes": "Suggest changes",
|
||
"approvals.note.placeholder": "Optional note...",
|
||
"approvals.suggest.modal_title": "Suggest changes",
|
||
"approvals.suggest.intro": "Edit the proposed values and/or leave a note. Your suggestion will be filed as a new approval request and may be approved by the original requester (or anyone else eligible).",
|
||
"approvals.suggest.note_label": "Note about your suggestion",
|
||
"approvals.suggest.note_placeholder": "Why should these values change?",
|
||
"approvals.suggest.submit": "Submit suggestion",
|
||
"approvals.suggest.cancel": "Cancel",
|
||
"approvals.suggest.submit_disabled_hint": "Change at least one field or leave a note.",
|
||
"approvals.suggest.next_request_link": "→ New suggestion by {name}",
|
||
"approvals.suggest.unsupported_lifecycle": "Suggest changes is only available for update requests.",
|
||
"approvals.suggest.section.editable": "Fields",
|
||
"approvals.suggest.section.event_type_rule": "Event type + rule",
|
||
"approvals.suggest.section.context": "Context",
|
||
"approvals.suggest.context.project": "Project",
|
||
"approvals.suggest.context.requester": "Submitted by",
|
||
"approvals.suggest.context.requested_at": "Submitted at",
|
||
"approvals.suggest.context.approval_status": "Approval status",
|
||
"approvals.suggest.event_type_picker_unavailable": "Event types could not be loaded.",
|
||
"approvals.suggest.field.original_due_date": "Original due date",
|
||
"approvals.suggest.field.warning_date": "Warning date",
|
||
"approvals.suggest.field.rule_code": "Rule citation",
|
||
"approvals.suggest.field.description": "Description",
|
||
"approvals.requested_by": "Submitted by",
|
||
"approvals.decided_by": "Decided by",
|
||
"approvals.decision_kind.peer": "Peer approval",
|
||
"approvals.decision_kind.admin_override": "Admin override",
|
||
"approvals.decision_kind.derived_peer": "Approved by derived member (Partner Unit)",
|
||
"approvals.error.self_approval": "You cannot approve your own request.",
|
||
"approvals.error.not_authorized": "You don't have the required role.",
|
||
"approvals.error.no_qualified_approver": "No qualified approver available — please add an approver to the project team or contact an admin.",
|
||
"approvals.error.concurrent_pending": "Another approval request is already in flight on this entity.",
|
||
"approvals.error.awaiting_approval": "This entity is awaiting approval.",
|
||
"approvals.error.request_not_pending": "This request is no longer open.",
|
||
"approvals.error.suggestion_requires_change": "A suggestion needs either changed values or a note.",
|
||
"approvals.error.suggestion_lifecycle_invalid": "Suggest changes is only available for update requests.",
|
||
"approvals.disabled.self_approval": "You cannot approve your own requests",
|
||
"approvals.disabled.not_authorized": "You are not authorized to approve this request",
|
||
"approvals.disabled.revoke_not_requester": "Only the requester can withdraw",
|
||
"approvals.disabled.suggest_lifecycle": "Suggest changes is only available for update requests",
|
||
"approvals.pending.badge": "Awaiting approval",
|
||
"approvals.withdraw.cta": "Withdraw approval request",
|
||
"approvals.withdraw.confirm": "Withdraw the approval request?",
|
||
"approvals.withdraw.error": "Failed to withdraw",
|
||
"approvals.withdraw.cancel": "Cancel",
|
||
"approvals.withdraw.modal.title": "Withdraw approval request?",
|
||
"approvals.withdraw.primary.label": "Edit event",
|
||
"approvals.withdraw.destructive.label": "Withdraw permanently and delete",
|
||
"approvals.withdraw.lead.create.deadline": "Withdrawing this request will delete the deadline.",
|
||
"approvals.withdraw.lead.create.appointment": "Withdrawing this request will delete the appointment.",
|
||
"approvals.withdraw.lead.update": "Withdrawing this request will discard your proposed changes — the entry will revert to its state before your edit.",
|
||
"approvals.withdraw.lead.delete": "Withdrawing the delete request will keep the entry alive.",
|
||
"approvals.withdraw.sub.create": "Alternatively, you can edit the entry instead. The request stays open and the approver will see your new values.",
|
||
"approvals.withdraw.sub.update": "Alternatively, you can edit your changes and resubmit. The request stays open.",
|
||
"approvals.withdraw.sub.delete": "Are you sure you want to withdraw the delete request?",
|
||
"approvals.pending_create.label": "Awaits approval (creation)",
|
||
"approvals.pending_update.label": "Awaits approval (change)",
|
||
"approvals.pending_complete.label": "Awaits approval (completion)",
|
||
"approvals.pending_delete.label": "Awaits approval (deletion)",
|
||
"approvals.diff.before": "Before",
|
||
"approvals.diff.after": "After",
|
||
"approvals.policies.title": "Approval policies",
|
||
"approvals.policies.subtitle": "Which lifecycle events need four-eyes review on this project?",
|
||
"approvals.policies.column.event": "Event",
|
||
"approvals.policies.column.deadline": "Deadline",
|
||
"approvals.policies.column.appointment": "Appointment",
|
||
"approvals.policies.no_approval": "No approval needed",
|
||
"approvals.policies.copy_parent": "Copy from parent project",
|
||
"approvals.policies.set_all_associate": "Set all to Associate",
|
||
|
||
// t-paliad-144 — Custom Views
|
||
"nav.group.user_views": "My Views",
|
||
"nav.user_views.new": "New view",
|
||
"views.title": "Views — Paliad",
|
||
"views.heading": "Views",
|
||
"views.subtitle": "Saved views over your data — filters and shape preserved.",
|
||
"views.loading": "Loading …",
|
||
"views.shape.list": "List",
|
||
"views.shape.cards": "Cards",
|
||
"views.shape.calendar": "Calendar",
|
||
"views.shape.timeline": "Timeline",
|
||
"views.timeline.caveat.body": "Custom Views show actual events only. Open the project's chart for projected rules.",
|
||
"views.timeline.zoom.label": "Zoom",
|
||
"views.timeline.zoom.in": "Zoom in",
|
||
"views.timeline.zoom.out": "Zoom out",
|
||
"views.timeline.zoom.1y": "±1 yr",
|
||
"views.timeline.zoom.2y": "±2 yr",
|
||
"views.timeline.zoom.all": "All",
|
||
"views.save_as": "Save as view",
|
||
"views.action.edit": "Edit",
|
||
"views.empty.title": "No matches found.",
|
||
"views.error.back": "Back to views",
|
||
"views.error.not_found": "View not found.",
|
||
"views.error.network": "Network error — please retry.",
|
||
"views.toast.inaccessible_one": "1 project in this view is no longer visible to you.",
|
||
"views.toast.inaccessible_n": "{n} projects in this view are no longer visible to you.",
|
||
"views.calendar.mobile_fallback": "Calendar view works best on a wide screen.",
|
||
"views.onboarding.title": "Saved views — what are they?",
|
||
"views.onboarding.body": "A view is a saved filter combination — e.g. \"Deadlines in my projects in the next 14 days\". Views appear as their own buttons in the sidebar.",
|
||
"views.onboarding.create": "Create example view",
|
||
"views.source.deadline": "Deadlines",
|
||
"views.source.appointment": "Appointments",
|
||
"views.source.project_event": "Project history",
|
||
"views.source.approval_request": "Approvals",
|
||
"views.kind.deadline": "Deadline",
|
||
"views.kind.appointment": "Appointment",
|
||
"views.kind.project_event": "History",
|
||
"views.kind.approval_request": "Approval",
|
||
"views.scope.all_visible": "All visible",
|
||
"views.scope.my_subtree": "My subtree",
|
||
"views.scope.explicit": "Specific projects",
|
||
"views.scope.personal_only": "Personal only",
|
||
"views.horizon.next_1d": "Tomorrow",
|
||
"views.horizon.next_7d": "Next 7 days",
|
||
"views.horizon.next_14d": "Next 14 days",
|
||
"views.horizon.next_30d": "Next 30 days",
|
||
"views.horizon.next_90d": "Next 90 days",
|
||
"views.horizon.next_all": "All future",
|
||
"views.horizon.past_1d": "Last day",
|
||
"views.horizon.past_7d": "Last 7 days",
|
||
"views.horizon.past_14d": "Last 14 days",
|
||
"views.horizon.past_30d": "Last 30 days",
|
||
"views.horizon.past_90d": "Last 90 days",
|
||
"views.horizon.past_all": "All past",
|
||
"views.horizon.any": "Any",
|
||
"views.horizon.all": "All-time",
|
||
"views.horizon.custom": "Custom",
|
||
"views.density.comfortable": "Comfortable",
|
||
"views.density.compact": "Compact",
|
||
"views.col.date": "Date",
|
||
"views.col.time": "When",
|
||
"views.col.title": "Title",
|
||
"views.col.project": "Project",
|
||
"views.col.actor": "Actor",
|
||
"views.col.status": "Status",
|
||
"views.col.rule": "Rule",
|
||
"views.col.event_type": "Type",
|
||
"views.col.location": "Location",
|
||
"views.col.appointment_type": "Appointment type",
|
||
"views.col.approval_status": "Approval",
|
||
"views.col.decided_by": "Decided by",
|
||
"views.col.kind": "Kind",
|
||
"views.editor.title": "Edit view — Paliad",
|
||
"views.editor.heading.new": "New view",
|
||
"views.editor.heading.edit": "Edit view",
|
||
"views.editor.subtitle": "Pick sources, filters, and shape. Save to confirm.",
|
||
"views.editor.section.identity": "Identity",
|
||
"views.editor.section.sources": "Sources",
|
||
"views.editor.section.scope": "Scope",
|
||
"views.editor.section.time": "Time",
|
||
"views.editor.section.render": "Display",
|
||
"views.editor.field.name": "Name",
|
||
"views.editor.field.slug": "Slug (URL)",
|
||
"views.editor.field.icon": "Icon",
|
||
"views.editor.field.show_count": "Show count badge in sidebar",
|
||
"views.editor.field.scope_mode": "Projects",
|
||
"views.editor.field.personal_only": "Personal only",
|
||
"views.editor.field.horizon": "Horizon",
|
||
"views.editor.field.shape": "Shape",
|
||
"views.editor.field.density": "Density",
|
||
"views.editor.hint.slug": "Lowercase letters, digits, hyphens — no reserved words.",
|
||
"views.editor.hint.sources": "Which data sources should this view include?",
|
||
"views.editor.icon.default": "Default (folder)",
|
||
"views.editor.icon.clock": "Clock",
|
||
"views.editor.icon.calendar": "Calendar",
|
||
"views.editor.icon.bell": "Bell",
|
||
"views.editor.icon.folder": "Folder",
|
||
"views.editor.icon.users": "People",
|
||
"views.editor.icon.building": "Building",
|
||
"views.editor.save": "Save",
|
||
"views.editor.cancel": "Cancel",
|
||
"views.editor.delete": "Delete",
|
||
"views.editor.confirm_delete": "Delete this view permanently?",
|
||
"views.editor.error.name_required": "Name is required.",
|
||
"views.editor.error.slug_format": "Slug must be lowercase, start with a letter or digit, contain only letters, digits, and hyphens.",
|
||
"views.editor.error.sources_required": "Pick at least one source.",
|
||
"views.editor.error.load_failed": "Could not load this view.",
|
||
"views.editor.error.delete_failed": "Could not delete this view.",
|
||
|
||
// Universal FilterBar — t-paliad-163.
|
||
"views.bar.label.time": "Time",
|
||
"views.bar.label.personal": "Mine",
|
||
"views.bar.label.approval_role": "View",
|
||
"views.bar.label.approval_status": "Status",
|
||
"views.bar.label.approval_entity": "Kind",
|
||
"views.bar.label.deadline_status": "Deadline status",
|
||
"views.bar.label.appointment_type": "Appointment type",
|
||
"views.bar.label.project_event_kind": "Event",
|
||
"views.bar.label.timeline_status": "Timeline status",
|
||
"views.bar.label.timeline_track": "Track",
|
||
"views.bar.timeline_status.done": "Done",
|
||
"views.bar.timeline_status.open": "Open",
|
||
"views.bar.timeline_status.overdue": "Overdue",
|
||
"views.bar.timeline_status.predicted": "Predicted",
|
||
"views.bar.timeline_status.predicted_overdue": "Overdue (predicted)",
|
||
"views.bar.timeline_status.court_set": "Court date",
|
||
"views.bar.timeline_status.off_script": "Custom",
|
||
"views.bar.timeline_status.macro.future": "Show future",
|
||
"views.bar.timeline_status.macro.past": "Past only",
|
||
"views.bar.timeline_track.parent": "Main proceeding",
|
||
"views.bar.timeline_track.counterclaim": "Counterclaim",
|
||
"views.bar.timeline_track.off_script": "Off-script",
|
||
"views.bar.label.shape": "Display",
|
||
"views.bar.label.density": "Density",
|
||
"views.bar.label.sort": "Sort",
|
||
"views.bar.common.all": "All",
|
||
// views.bar.time.* keys retired in t-paliad-248 — see the DE block
|
||
// for context. The filter-bar time axis now mounts the symmetric
|
||
// date-range picker whose labels live under date_range.horizon.*.
|
||
"views.bar.personal.on": "Mine only",
|
||
"views.bar.approval_role.approver_eligible": "To approve",
|
||
"views.bar.approval_role.self_requested": "My requests",
|
||
"views.bar.approval_role.any_visible": "All visible",
|
||
"views.bar.approval_status.pending": "Pending",
|
||
"views.bar.approval_status.approved": "Approved",
|
||
"views.bar.approval_status.rejected": "Rejected",
|
||
"views.bar.approval_status.revoked": "Revoked",
|
||
"views.bar.approval_status.changes_requested": "With suggestion",
|
||
"views.bar.approval_entity.deadline": "Deadline",
|
||
"views.bar.approval_entity.appointment": "Appointment",
|
||
"views.bar.deadline_status.pending": "Open",
|
||
"views.bar.deadline_status.completed": "Completed",
|
||
"views.bar.appointment_type.hearing": "Hearing",
|
||
"views.bar.appointment_type.meeting": "Meeting",
|
||
"views.bar.appointment_type.consultation": "Consultation",
|
||
"views.bar.appointment_type.deadline_hearing": "Oral hearing",
|
||
"views.bar.shape.list": "List",
|
||
"views.bar.shape.cards": "Cards",
|
||
"views.bar.shape.calendar": "Calendar",
|
||
"views.bar.density.comfortable": "Comfortable",
|
||
"views.bar.density.compact": "Compact",
|
||
"views.bar.sort.date_asc": "Date ascending",
|
||
"views.bar.sort.date_desc": "Date descending",
|
||
"views.bar.action.reset": "Reset",
|
||
"views.bar.action.save_as_view": "Save as view",
|
||
"views.bar.save.heading": "Save view",
|
||
"views.bar.save.field.name": "Name",
|
||
"views.bar.save.field.slug": "Slug",
|
||
"views.bar.save.field.slug_hint": "Becomes part of the URL: /views/<slug>",
|
||
"views.bar.save.field.show_count": "Show count in sidebar",
|
||
"views.bar.save.cancel": "Cancel",
|
||
"views.bar.save.confirm": "Save",
|
||
"views.bar.save.error.name_required": "Please supply a name.",
|
||
"views.bar.save.error.slug_format": "Slug must start with a letter or digit and contain only lowercase letters, digits, and hyphens.",
|
||
"views.bar.save.error.slug_taken": "This slug is already in use.",
|
||
"views.bar.save.error.network": "Network error — please retry.",
|
||
|
||
// t-paliad-192 Slice 11b — Admin rule-editor UI.
|
||
// t-paliad-262 Slice A — "Rule" relabelled as "Procedural event".
|
||
"nav.admin.rules": "Manage procedural events",
|
||
"admin.card.rules.title": "Manage procedural events",
|
||
"admin.card.rules.desc": "Author, edit and publish procedural-event templates. Audit log, preview, migration export.",
|
||
|
||
"admin.rules.list.title": "Manage procedural events — Paliad",
|
||
"admin.rules.list.heading": "Manage procedural events",
|
||
"admin.rules.list.subtitle": "Author, edit and publish procedural events (filings, hearings, decisions, …). Lifecycle: draft → published → archived.",
|
||
"admin.rules.list.new": "+ New procedural event",
|
||
"admin.rules.tab.rules": "Rules",
|
||
"admin.rules.tab.orphans": "Orphans",
|
||
"admin.rules.loading": "Loading…",
|
||
"admin.rules.empty": "No procedural events for the chosen filters.",
|
||
"admin.rules.error.load": "Could not load procedural events.",
|
||
|
||
"admin.rules.filter.proceeding": "Proceeding type",
|
||
"admin.rules.filter.proceeding.any": "Any",
|
||
"admin.rules.filter.trigger": "Trigger event",
|
||
"admin.rules.filter.trigger.any": "Any",
|
||
"admin.rules.filter.lifecycle": "Lifecycle",
|
||
"admin.rules.filter.lifecycle.any": "Any",
|
||
"admin.rules.filter.search": "Search",
|
||
"admin.rules.filter.search.placeholder": "Name, submission code, legal citation…",
|
||
|
||
"admin.rules.col.submission_code": "Code (procedural event)",
|
||
"admin.rules.col.legal_citation": "Legal citation",
|
||
"admin.rules.col.name": "Name",
|
||
"admin.rules.col.proceeding": "Proceeding type",
|
||
"admin.rules.col.priority": "Priority",
|
||
"admin.rules.col.lifecycle": "Lifecycle",
|
||
"admin.rules.col.modified": "Last modified",
|
||
|
||
"admin.rules.lifecycle.draft": "Draft",
|
||
"admin.rules.lifecycle.published": "Published",
|
||
"admin.rules.lifecycle.archived": "Archived",
|
||
|
||
"admin.rules.priority.mandatory": "Mandatory",
|
||
"admin.rules.priority.recommended": "Recommended",
|
||
"admin.rules.priority.optional": "Optional",
|
||
"admin.rules.priority.informational": "Informational",
|
||
|
||
"admin.rules.orphans.subtitle": "Legacy deadlines from the fuzzy-match backfill (Slice 10) that could not be bound to a unique rule. Please pick the right candidate rule.",
|
||
"admin.rules.orphans.loading": "Loading…",
|
||
"admin.rules.orphans.empty": "No open orphans. ✔",
|
||
"admin.rules.orphans.no_candidates": "No candidate rules found. Please create one manually.",
|
||
"admin.rules.orphans.field.project": "Project",
|
||
"admin.rules.orphans.field.proceeding": "Proceeding",
|
||
"admin.rules.orphans.field.reason": "Reason",
|
||
"admin.rules.orphans.reason.no_match": "No match",
|
||
"admin.rules.orphans.reason.ambiguous": "Ambiguous",
|
||
"admin.rules.orphans.reason.no_project": "No project",
|
||
"admin.rules.orphans.reason.manual_unbound": "Manually unbound",
|
||
"admin.rules.orphans.resolved": "Orphan resolved.",
|
||
|
||
"admin.rules.modal.new.title": "Create new procedural event",
|
||
"admin.rules.modal.new.body": "A new procedural event will be created as a draft. Please supply a reason (≥10 chars) — recorded in the audit log and exported into the migration file.",
|
||
"admin.rules.modal.resolve.title": "Resolve orphan",
|
||
"admin.rules.modal.resolve.body": "Please supply a reason (≥10 chars). The rule binding is persisted immediately on the deadline.",
|
||
"admin.rules.modal.reason": "Reason",
|
||
"admin.rules.modal.reason.placeholder": "e.g. \"New rule for RoP.198 after UPC reform 2026…",
|
||
"admin.rules.modal.reason.hint": "Minimum 10 characters.",
|
||
"admin.rules.modal.reason.too_short": "Reason must be at least 10 characters.",
|
||
"admin.rules.modal.confirm": "Confirm",
|
||
"admin.rules.modal.field.name": "Name (DE)",
|
||
"admin.rules.modal.field.name_en": "Name (EN)",
|
||
"admin.rules.modal.field.duration": "Duration",
|
||
"admin.rules.modal.error.name_required": "Please supply both Name and Name (EN).",
|
||
"admin.rules.modal.error.create": "Creation failed.",
|
||
"admin.rules.modal.error.resolve": "Resolution failed.",
|
||
|
||
"admin.rules.edit.title": "Edit procedural event — Paliad",
|
||
"admin.rules.edit.heading.loading": "Loading procedural event…",
|
||
"admin.rules.edit.breadcrumb": "← Manage procedural events",
|
||
"admin.rules.edit.error.bad_id": "Invalid procedural-event id in URL.",
|
||
"admin.rules.edit.error.not_found": "Procedural event not found.",
|
||
"admin.rules.edit.error.load": "Could not load procedural event.",
|
||
|
||
"admin.rules.edit.section.identity": "Identity",
|
||
"admin.rules.edit.section.proceeding": "Proceeding & Trigger",
|
||
"admin.rules.edit.section.timing": "Math",
|
||
"admin.rules.edit.section.party": "Party & Event",
|
||
"admin.rules.edit.section.display": "Display & Notes",
|
||
"admin.rules.edit.section.lifecycle": "Priority & Flags",
|
||
"admin.rules.edit.section.condition": "Condition (condition_expr)",
|
||
|
||
"admin.rules.edit.field.name": "Name (DE)",
|
||
"admin.rules.edit.field.name_en": "Name (EN)",
|
||
"admin.rules.edit.field.description": "Description",
|
||
"admin.rules.edit.field.submission_code": "Code (procedural-event identifier)",
|
||
"admin.rules.edit.field.rule_code": "Legal citation (short form)",
|
||
"admin.rules.edit.field.legal_source": "Legal citation (long form)",
|
||
"admin.rules.edit.field.proceeding": "Proceeding type",
|
||
"admin.rules.edit.field.proceeding.none": "—",
|
||
"admin.rules.edit.field.trigger": "Trigger event",
|
||
"admin.rules.edit.field.trigger.none": "—",
|
||
"admin.rules.edit.field.parent": "Parent procedural event (UUID)",
|
||
"admin.rules.edit.field.concept": "Concept (UUID)",
|
||
"admin.rules.edit.field.sequence_order": "Order",
|
||
"admin.rules.edit.field.duration_value": "Duration",
|
||
"admin.rules.edit.field.duration_unit": "Unit",
|
||
"admin.rules.edit.field.timing": "Timing",
|
||
"admin.rules.edit.field.combine_op": "Combine op",
|
||
"admin.rules.edit.field.alt_duration_value": "Alt duration",
|
||
"admin.rules.edit.field.alt_duration_unit": "Alt unit",
|
||
"admin.rules.edit.field.alt_rule_code": "Alt rule code",
|
||
"admin.rules.edit.field.anchor_alt": "Alt anchor",
|
||
"admin.rules.edit.field.primary_party": "Primary party",
|
||
"admin.rules.edit.field.event_type": "Procedural-event kind (filing / hearing / decision / order)",
|
||
"admin.rules.edit.field.deadline_notes": "Notes (DE)",
|
||
"admin.rules.edit.field.deadline_notes_en": "Notes (EN)",
|
||
"admin.rules.edit.field.priority": "Priority",
|
||
"admin.rules.edit.field.is_court_set": "Court-set",
|
||
"admin.rules.edit.field.is_spawn": "Spawn",
|
||
"admin.rules.edit.field.spawn_label": "Spawn label",
|
||
"admin.rules.edit.field.spawn_proceeding": "Spawn proceeding",
|
||
"admin.rules.edit.field.spawn_proceeding.none": "—",
|
||
"admin.rules.edit.field.condition_hint": "JSON grammar: {\"flag\":\"name\"} · {\"op\":\"and|or\",\"args\":[...]} · {\"op\":\"not\",\"args\":[...]}",
|
||
"admin.rules.edit.field.condition.valid": "JSON valid.",
|
||
|
||
"admin.rules.edit.preview.heading": "Preview",
|
||
"admin.rules.edit.preview.hint": "Drafts only. Runs the calculator with this draft substituted for the published version.",
|
||
"admin.rules.edit.preview.trigger_date": "Trigger date",
|
||
"admin.rules.edit.preview.flags": "Flags (comma-separated)",
|
||
"admin.rules.edit.preview.run": "Run preview",
|
||
"admin.rules.edit.preview.running": "Computing…",
|
||
"admin.rules.edit.preview.empty": "No deadlines.",
|
||
"admin.rules.edit.preview.error": "Preview failed.",
|
||
"admin.rules.edit.preview.only_drafts": "Preview is only available for drafts.",
|
||
"admin.rules.edit.preview.trigger_required": "Please supply a trigger date.",
|
||
|
||
"admin.rules.edit.audit.heading": "Audit log",
|
||
"admin.rules.edit.audit.loading": "Loading…",
|
||
"admin.rules.edit.audit.empty": "No audit entries.",
|
||
"admin.rules.edit.audit.loadmore": "Load more",
|
||
"admin.rules.edit.audit.exported": "exported",
|
||
"admin.rules.edit.audit.actor.system": "System",
|
||
"admin.rules.edit.audit.action.create": "create",
|
||
"admin.rules.edit.audit.action.update": "update",
|
||
"admin.rules.edit.audit.action.publish": "publish",
|
||
"admin.rules.edit.audit.action.archive": "archive",
|
||
"admin.rules.edit.audit.action.restore": "restore",
|
||
"admin.rules.edit.audit.action.delete": "delete",
|
||
|
||
"admin.rules.edit.action.save_draft": "Save draft",
|
||
"admin.rules.edit.action.publish": "Publish",
|
||
"admin.rules.edit.action.clone": "Clone as draft",
|
||
"admin.rules.edit.action.archive": "Archive",
|
||
"admin.rules.edit.action.restore": "Restore",
|
||
"admin.rules.edit.action.ok": "Done.",
|
||
"admin.rules.edit.action.save_draft.ok": "Draft saved.",
|
||
"admin.rules.edit.action.save_draft.error": "Save failed.",
|
||
"admin.rules.edit.action.publish.ok": "Rule published.",
|
||
"admin.rules.edit.action.publish.error": "Publish failed.",
|
||
"admin.rules.edit.action.archive.ok": "Rule archived.",
|
||
"admin.rules.edit.action.archive.error": "Archive failed.",
|
||
"admin.rules.edit.action.restore.ok": "Rule restored.",
|
||
"admin.rules.edit.action.restore.error": "Restore failed.",
|
||
"admin.rules.edit.action.clone.error": "Clone failed.",
|
||
|
||
"admin.rules.edit.modal.save_draft.title": "Save draft",
|
||
"admin.rules.edit.modal.save_draft.body": "Please supply a reason for the change (≥10 chars). Written to the audit log.",
|
||
"admin.rules.edit.modal.publish.title": "Publish",
|
||
"admin.rules.edit.modal.publish.body": "This draft will go live. The existing published variant is archived.",
|
||
"admin.rules.edit.modal.clone.title": "Clone as draft",
|
||
"admin.rules.edit.modal.clone.body": "A new draft copy of this rule is created. You will be redirected to the new draft.",
|
||
"admin.rules.edit.modal.archive.title": "Archive",
|
||
"admin.rules.edit.modal.archive.body": "Rule will be archived. The calculator will no longer use it.",
|
||
"admin.rules.edit.modal.restore.title": "Restore",
|
||
"admin.rules.edit.modal.restore.body": "Rule will be restored (archived → published).",
|
||
|
||
// Date-range picker (t-paliad-248). See DE block above for details.
|
||
"date_range.button.label": "Time range",
|
||
"date_range.button.label.custom_range": "From {from} to {to}",
|
||
"date_range.horizon.next_1d": "Today",
|
||
"date_range.horizon.next_7d": "Next 7 days",
|
||
"date_range.horizon.next_14d": "Next 14 days",
|
||
"date_range.horizon.next_30d": "Next 30 days",
|
||
"date_range.horizon.next_90d": "Next 90 days",
|
||
"date_range.horizon.next_all": "All future",
|
||
"date_range.horizon.past_1d": "Last day",
|
||
"date_range.horizon.past_7d": "Last 7 days",
|
||
"date_range.horizon.past_14d": "Last 14 days",
|
||
"date_range.horizon.past_30d": "Last 30 days",
|
||
"date_range.horizon.past_90d": "Last 90 days",
|
||
"date_range.horizon.past_all": "All past",
|
||
"date_range.horizon.any": "All",
|
||
"date_range.horizon.custom": "Customize",
|
||
"date_range.dialog.label": "Choose time range",
|
||
"date_range.fan.past.label": "Past",
|
||
"date_range.fan.future.label": "Future",
|
||
"date_range.center.label": "All",
|
||
"date_range.custom.from": "From",
|
||
"date_range.custom.to": "To",
|
||
"date_range.custom.apply": "Apply",
|
||
"date_range.custom.cancel": "Cancel",
|
||
"date_range.custom.invalid": "End date must be strictly after start date.",
|
||
"date_range.custom.invalid_format": "Date not recognised (format YYYY-MM-DD).",
|
||
"date_range.custom.invalid_missing": "Please fill in both date fields.",
|
||
|
||
// t-paliad-262 Slice A — canonical `procedural_event` i18n contract.
|
||
// Mirrors the DE block; values identical to the legacy
|
||
// `admin.rules.*` keys. Adding/changing values? Update BOTH sides.
|
||
"admin.procedural_events.list.title": "Manage procedural events — Paliad",
|
||
"admin.procedural_events.list.heading": "Manage procedural events",
|
||
"admin.procedural_events.list.new": "+ New procedural event",
|
||
"admin.procedural_events.col.code": "Code (procedural event)",
|
||
// t-paliad-321: 3-segment proceeding-type code column.
|
||
"admin.procedural_events.col.proceeding": "Proceeding",
|
||
"admin.procedural_events.edit.title": "Edit procedural event — Paliad",
|
||
"admin.procedural_events.edit.breadcrumb":"← Manage procedural events",
|
||
"admin.procedural_events.edit.field.code": "Code (procedural-event identifier)",
|
||
"admin.procedural_events.edit.field.event_kind": "Procedural-event kind (filing / hearing / decision / order)",
|
||
"admin.procedural_events.edit.field.parent": "Parent procedural event (UUID)",
|
||
},
|
||
};
|
||
|
||
// t — strict translation lookup. The I18nKey parameter is the generated
|
||
// union of every key in `translations`, so a literal-string typo at a call
|
||
// site fails tsc. Runtime-composed keys (`deadlines.status.${x}`) cannot
|
||
// satisfy this signature — TypeScript narrows them to template literal
|
||
// types that don't fit the union — so those call sites must use `tDyn`.
|
||
export function t(key: I18nKey): string {
|
||
return translations[currentLang][key] ?? translations.de[key] ?? key;
|
||
}
|
||
|
||
// tDyn — runtime-composed key escape hatch. Use only when the key is built
|
||
// from variables (`tDyn(\`deadlines.status.${x}\`)`); literal-string keys
|
||
// must go through `t()` so the I18nKey type catches typos. There is no
|
||
// compile-time guarantee the key exists; callers get the same fallback-to-
|
||
// raw-key behaviour as t() and are responsible for ensuring the key set
|
||
// they interpolate over is fully covered by i18n.ts.
|
||
export function tDyn(key: string): string {
|
||
return translations[currentLang][key] ?? translations.de[key] ?? key;
|
||
}
|
||
|
||
// tOrEmpty returns the translation if present, else "" — so callers that
|
||
// want to fall back to the existing default text in the DOM can do so. The
|
||
// `string` parameter is intentional: applyTranslations reads keys off the
|
||
// DOM at runtime, so static typing isn't possible here. Internal use only.
|
||
function tOrEmpty(key: string): string {
|
||
return translations[currentLang][key] ?? translations.de[key] ?? "";
|
||
}
|
||
|
||
export function getLang(): Lang {
|
||
return currentLang;
|
||
}
|
||
|
||
// translateEvent localizes a stored project_events row for display.
|
||
//
|
||
// project_events rows are written with stable English event_type slugs
|
||
// ("project_type_changed") and English fallback titles ("Project type
|
||
// changed"). The description column is freeform but for known event types
|
||
// follows a value-only pattern ("case → litigation", "active → archived",
|
||
// "deadline" for note_created). Legacy rows from before this PR carry the
|
||
// English prefix ("Type case → litigation", "Note zu deadline hinzugefügt"
|
||
// — DE/EN-mixed); both legacy and new shapes parse here.
|
||
//
|
||
// Caller provides whatever the backend returned for title + description;
|
||
// receives a localized pair ready for innerHTML/textContent.
|
||
export function translateEvent(
|
||
eventType: string | null | undefined,
|
||
storedTitle: string,
|
||
storedDescription: string | null | undefined,
|
||
): { title: string; description: string } {
|
||
// Title: prefer the per-event-type localized noun phrase.
|
||
let title = storedTitle;
|
||
if (eventType) {
|
||
const v = tOrEmpty(`event.title.${eventType}`);
|
||
if (v) title = v;
|
||
}
|
||
const description = storedDescription
|
||
? translateEventDescription(eventType ?? "", storedDescription)
|
||
: "";
|
||
return { title, description };
|
||
}
|
||
|
||
function translateEventDescription(eventType: string, description: string): string {
|
||
const body = description.trim();
|
||
if (!body) return "";
|
||
|
||
if (eventType === "project_type_changed") {
|
||
// New format: "case → litigation". Legacy: "Type case → litigation".
|
||
return translateArrowSlugs(body.replace(/^Type\s+/, ""), "projects.type.");
|
||
}
|
||
if (eventType === "status_changed") {
|
||
// New format: "active → archived". Legacy: "Status active → archived".
|
||
return translateArrowSlugs(body.replace(/^Status\s+/, ""), "projects.filter.status.");
|
||
}
|
||
if (eventType === "our_side_changed") {
|
||
// Format: "<from> → <to>", where each side is one of
|
||
// claimant / defendant / court / both / "none" (the sentinel for
|
||
// NULL the service writes when the column is unset on either end).
|
||
return translateArrowSlugs(body, "projects.field.our_side.");
|
||
}
|
||
if (eventType === "note_created") {
|
||
// New format: just the parent slug. Legacy: "Note zu <slug> hinzugefügt".
|
||
const m = body.match(/^Note zu (project|deadline|appointment) hinzugef[üu]gt$/i);
|
||
const slug = (m ? m[1] : body).toLowerCase();
|
||
const parent = tOrEmpty(`event.note.parent.${slug}`) || slug;
|
||
const phrase = tOrEmpty("event.note.added_to");
|
||
return phrase ? phrase.replace("{parent}", parent) : body;
|
||
}
|
||
if (eventType.startsWith("deadline_") || eventType.startsWith("appointment_")) {
|
||
// New format: just the entity title. Legacy: 'Deadline „Foo" geändert' /
|
||
// 'Appointment „Foo" angelegt' etc. Strip the noun + verb wrapper, keep
|
||
// the quoted title, then re-wrap in the localized template.
|
||
const title = extractQuotedTitle(body) ?? body;
|
||
return interpolateTemplate(`event.description.${eventType}`, { title }) ?? body;
|
||
}
|
||
if (eventType === "deadlines_imported") {
|
||
// New format: just the count. Legacy: "N Deadlines aus Fristenrechner übernommen".
|
||
const m = body.match(/^(\d+)\b/);
|
||
const count = m ? m[1] : body;
|
||
return interpolateTemplate("event.description.deadlines_imported", { count }) ?? body;
|
||
}
|
||
return description;
|
||
}
|
||
|
||
// extractQuotedTitle pulls the body out of a legacy DE description like
|
||
// `Deadline „Foo" geändert` — German double-low-9 (U+201E) opening quote and
|
||
// double-high-6 (U+201C) closing quote, the pair the Go services actually
|
||
// write today. Returns null if no quoted run is found, so callers can fall
|
||
// back to the raw body.
|
||
function extractQuotedTitle(body: string): string | null {
|
||
const m = body.match(/„([^“”„]+)[“”]/);
|
||
return m ? m[1] : null;
|
||
}
|
||
|
||
function interpolateTemplate(key: string, vars: Record<string, string>): string | null {
|
||
const tmpl = tOrEmpty(key);
|
||
if (!tmpl) return null;
|
||
return tmpl.replace(/\{(\w+)\}/g, (_, name) => vars[name] ?? `{${name}}`);
|
||
}
|
||
|
||
function translateArrowSlugs(body: string, prefix: string): string {
|
||
const m = body.match(/^(\S+)\s*[→→]\s*(\S+)$/);
|
||
if (!m) return body;
|
||
const a = tOrEmpty(`${prefix}${m[1]}`) || m[1];
|
||
const b = tOrEmpty(`${prefix}${m[2]}`) || m[2];
|
||
return `${a} → ${b}`;
|
||
}
|
||
|
||
export function onLangChange(cb: () => void) {
|
||
changeCallbacks.push(cb);
|
||
}
|
||
|
||
export function setLang(lang: Lang) {
|
||
if (lang === currentLang) return;
|
||
currentLang = lang;
|
||
localStorage.setItem(STORAGE_KEY, lang);
|
||
document.documentElement.lang = lang;
|
||
applyTranslations();
|
||
applyLangToInputs();
|
||
updateToggle();
|
||
for (const cb of changeCallbacks) cb();
|
||
}
|
||
|
||
// Native <input type="date|time|datetime-local"> follows the browser locale
|
||
// for display formatting unless `lang` is set on the element itself — the
|
||
// `lang` attribute on <html> is not enough in Chrome/Safari. Stamp the
|
||
// current locale on every such input so DE users see dd.mm.yyyy and 24h.
|
||
function applyLangToInputs() {
|
||
document.querySelectorAll<HTMLInputElement>(
|
||
'input[type="date"], input[type="time"], input[type="datetime-local"]',
|
||
).forEach((el) => {
|
||
el.lang = currentLang;
|
||
});
|
||
}
|
||
|
||
function applyTranslations() {
|
||
// When a key is missing from every locale, preserve whatever static text
|
||
// the HTML was authored with — never overwrite with the raw key string.
|
||
document.querySelectorAll<HTMLElement>("[data-i18n]").forEach((el) => {
|
||
const key = el.getAttribute("data-i18n")!;
|
||
const val = tOrEmpty(key);
|
||
if (val !== "") el.textContent = val;
|
||
});
|
||
document.querySelectorAll<HTMLElement>("[data-i18n-placeholder]").forEach((el) => {
|
||
const key = el.getAttribute("data-i18n-placeholder")!;
|
||
const val = tOrEmpty(key);
|
||
if (val !== "") (el as HTMLInputElement).placeholder = val;
|
||
});
|
||
document.querySelectorAll<HTMLElement>("[data-i18n-title]").forEach((el) => {
|
||
const key = el.getAttribute("data-i18n-title")!;
|
||
const val = tOrEmpty(key);
|
||
if (val !== "") el.setAttribute("title", val);
|
||
});
|
||
}
|
||
|
||
function updateToggle() {
|
||
document.querySelectorAll<HTMLElement>("[data-lang-toggle]").forEach((btn) => {
|
||
const lang = btn.getAttribute("data-lang-toggle") as Lang;
|
||
btn.classList.toggle("lang-active", lang === currentLang);
|
||
});
|
||
}
|
||
|
||
export function initI18n() {
|
||
let stored = localStorage.getItem(STORAGE_KEY) as Lang | null;
|
||
|
||
// One-shot migration from the pre-rebrand key (patholo-lang → paliad-lang).
|
||
// Drop this fallback once the grace period is over.
|
||
if (stored !== "de" && stored !== "en") {
|
||
const legacy = localStorage.getItem(LEGACY_STORAGE_KEY) as Lang | null;
|
||
if (legacy === "de" || legacy === "en") {
|
||
localStorage.setItem(STORAGE_KEY, legacy);
|
||
stored = legacy;
|
||
}
|
||
}
|
||
if (localStorage.getItem(LEGACY_STORAGE_KEY) !== null) {
|
||
localStorage.removeItem(LEGACY_STORAGE_KEY);
|
||
}
|
||
|
||
if (stored === "de" || stored === "en") {
|
||
currentLang = stored;
|
||
}
|
||
|
||
document.documentElement.lang = currentLang;
|
||
|
||
document.querySelectorAll<HTMLElement>("[data-lang-toggle]").forEach((btn) => {
|
||
btn.addEventListener("click", () => {
|
||
setLang(btn.getAttribute("data-lang-toggle") as Lang);
|
||
});
|
||
});
|
||
|
||
applyTranslations();
|
||
applyLangToInputs();
|
||
updateToggle();
|
||
}
|