diff --git a/package.json b/package.json index 16688bc..f31ee59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/campaign-webui", - "version": "0.1.25", + "version": "0.1.26", "private": true, "type": "module", "main": "webui/src/index.ts", diff --git a/pyproject.toml b/pyproject.toml index 82eafa8..053f248 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-campaign" -version = "0.1.25" +version = "0.1.26" description = "GovOPlaN campaigns module with backend and WebUI integration." readme = "README.md" requires-python = ">=3.12" diff --git a/src/govoplan_campaign/backend/documentation.py b/src/govoplan_campaign/backend/documentation.py index 89acd21..38c55cd 100644 --- a/src/govoplan_campaign/backend/documentation.py +++ b/src/govoplan_campaign/backend/documentation.py @@ -697,7 +697,9 @@ CAMPAIGN_USER_DOCUMENTATION = localize_documentation_topics(( verification="The Campaign job shows accepted delivery, a mirrored Calendar event ID, and the current attendee status; repeated mailbox ingestion does not duplicate the response effect.", related_topic_ids=("campaigns.workflow.prepare-validate-and-build", "campaigns.workflow.view-delivery-report"), related_modules=("mail", "calendar"), - limitations=("Recurring Campaign invitation series require a separate series workflow; this slice creates individual VEVENT requests."), + limitations=( + "Recurring Campaign invitation series require a separate series workflow; this slice creates individual VEVENT requests.", + ), ), _workflow_topic( topic_id="campaigns.workflow.queue-delivery", diff --git a/src/govoplan_campaign/backend/german_structured_documentation.py b/src/govoplan_campaign/backend/german_structured_documentation.py new file mode 100644 index 0000000..f9aa3ee --- /dev/null +++ b/src/govoplan_campaign/backend/german_structured_documentation.py @@ -0,0 +1,1148 @@ +"""German translations for public structured documentation metadata.""" + +from __future__ import annotations + +from typing import Any + + +GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'campaigns.admin.collaboration-governance': {'verification': 'Testen Sie einen schreibgeschützten ' + 'Mitarbeiter, ein Poster ohne ' + 'Kampagnenbearbeitung und einen ' + 'Moderator; bestätigen Sie die ' + 'Sichtbarkeit des Moderators, ' + 'erwähnen Sie Zugriffsfilter, ' + 'Grabsteine und ' + 'Audit-Aufzeichnungen.'}, + 'campaigns.admin.portable-transfer-governance': {'verification': 'Exportieren Sie die ' + 'Standardbereiche als ' + 'Kampagnenmanager, überprüfen ' + 'Sie, ob ein Empfängerbereich ' + 'ohne Empfängerexport verweigert ' + 'wird, manipulieren Sie den JSON ' + 'und überprüfen Sie, ob die ' + 'Vorschau ihn ablehnt, ' + 'importieren Sie dann ein ' + 'gültiges Paket und bestätigen ' + 'Sie einen neuen Entwurf sowie ' + 'übereinstimmende Audit-Hashes ' + 'ohne Jobs oder ' + 'Genehmigungsstatus.'}, + 'campaigns.mail-profile-user-journey': {'outcome': 'Die editierbare Kampagnenversion verweist auf ' + 'ein autorisiertes Mail-eigenes Zustellprofil, ' + 'ohne Transporteinstellungen oder ' + 'Anmeldeinformationen zu kopieren.', + 'prerequisites': ['Campaign und Mail sind installiert.', + 'Sie können die aktuelle ' + 'Kampagnenversion bearbeiten und ' + 'mindestens ein autorisiertes ' + 'Mail-Profil verwenden.'], + 'steps': ['Öffnen Sie die Kampagne und gehen Sie zu ' + 'Mail-Einstellungen.', + 'Wählen Sie ein verfügbares Mail-Profil aus; ' + 'Campaign speichert nur seine stabile Kennung.', + 'Testen Sie SMTP und, wenn konfiguriert, IMAP ' + 'über das Mail-Modul.', + 'Speichern, validieren und erstellen Sie die ' + 'Kampagne, bevor Sie die Lieferung in die ' + 'Warteschlange stellen.'], + 'verification': 'Öffnen Sie die Mail-Einstellungen ' + 'erneut, bestätigen Sie das ausgewählte ' + 'Profil, führen Sie dann die Validierung ' + 'aus und überprüfen Sie, ob der Build ' + 'ohne Profil-Drift-Fehler abgeschlossen ' + 'ist.'}, + 'campaigns.postbox-delivery': {'outcome': 'Jede aktive Zeile löst einen überprüfbaren Satz von ' + 'Postbox-Zielen auf, ohne eine harte ' + 'Kampagnenabhängigkeit von Postbox einzuführen.', + 'prerequisites': ['Campaign und Postbox sind installiert und ' + 'aktiv.', + 'Mindestens eine genaue Postbox oder ' + 'veröffentlichte Postbox-Vorlage ist verfügbar.'], + 'steps': ['Wählen Sie Postbox, Mail und Postbox oder eine ' + 'bestellte Fallback-Richtlinie.', + 'Konfigurieren Sie ein oder mehrere kampagnenweite ' + 'Ziele.', + 'Optional Ziele für einzelne Empfängerzeilen hinzufügen ' + 'oder ersetzen.', + 'Validieren und bauen, um die aufgelösten ' + 'Postbox-Adressen vor der Überprüfung einzufrieren.', + 'Überprüfen, Warteschlangen und prüfen Sie ' + 'kanalspezifische Liefernachweise im Bericht.'], + 'verification': 'Bestätigen Sie die eingefrorene Zielliste im ' + 'erstellten Job und überprüfen Sie akzeptierte, ' + 'abgelehnte oder ergebnisunbekannte Versuche in ' + 'der Kampagnenberichterstattung.'}, + 'campaigns.privacy.data-subject-requests': {'limitations': ['Generierte EML-Bytes und ' + 'Anhanginhalte sind nicht in den ' + 'JSON-Export eingebettet; ' + 'autorisierte Kampagnen- oder ' + 'Dateiüberprüfungspfade bleiben ' + 'maßgebend.', + 'Der Entwurf der Empfängerlöschung ' + 'ist manuell, bis ein koordinierter ' + 'Versions- / Job- / ' + 'Artefakt-Umschreibungsvertrag ' + 'nachweisen kann, dass keine ' + 'Teilkopie verbleibt.'], + 'outcome': 'Kampagnen-personenbezogene Daten erhalten ' + 'eine explizite Aufbewahrung, Überprüfung, ' + 'Widerruf oder Löschung der Disposition, ' + 'ohne den Liefernachweis zu schwächen.', + 'prerequisites': ['Die datenschutzanfrage und die ' + 'empfängerauswahl wurden unabhängig ' + 'autorisiert und bestätigt.', + 'Der Reviewer versteht die ' + 'effektiven Richtlinien zur ' + 'Kampagnenaufbewahrung und ' + 'Liefernachweispflichten.'], + 'steps': ['Führen Sie die Suche und Überprüfung des ' + 'Kampagnenanbieters Empfänger, Version, ' + 'Job, Versuch, Bericht-Projektion und ' + 'Artefaktdispositionen aus.', + 'Überprüfen Sie den Abgleich des ' + 'Entwurfsinhalts manuell und bewahren Sie ' + 'jeden Beweisaufbewahrungsgrund mit der ' + 'Fallentscheidung auf.', + 'Führen Sie nur eine genehmigte ' + 'nutzereigene Mapping-Löschung oder einen ' + 'themenspezifischen Freigabeentzug aus.', + 'Verwenden Sie Kampagnenaufbewahrung und ' + 'Artefaktabgleich für genehmigte ' + 'Inhaltsredaktion oder Ablauf; mutieren Sie ' + 'die gelieferten Nachweise nicht ad hoc.'], + 'verification': 'Bestätigen Sie, dass ' + 'übereinstimmende Empfänger isoliert ' + 'sind, kein Locator- oder ' + 'Anmeldematerial erscheint, die ' + 'Berichtszählungen stammen aus den ' + 'gleichen übereinstimmenden Jobs und ' + 'wiederholte reversible Aktionen sind ' + 'unverändert.'}, + 'campaigns.reference.composition-assurance': {'verification': 'Führen Sie die gepflegten ' + 'Beispiele, Modulpermutationstests, ' + 'Migrations- und ' + 'Wiederherstellungsübungen, ' + 'Ziel-Mail / Postbox / ' + 'IMAP-Prüfungen, ' + 'Versionsausrichtungstor, WebUI / ' + 'i18n-Prüfungen und vollständige ' + 'Sicherheitsüberprüfung für die ' + 'gepinnte Zusammensetzung aus.'}, + 'campaigns.reference.shared-build-artifacts': {'limitations': ['Artefakt-Inventar und ' + '-Bereinigung sind derzeit eine ' + 'Operator-API / Runbook-Aktion und ' + 'keine Ops WebUI-Steuerung.', + 'Datenbank, Objektspeicher und ' + 'Verschlüsselungsschlüssel ' + 'erfordern ein koordiniertes ' + 'Backup- und ' + 'Wiederherstellungsverfahren für ' + 'die Bereitstellung.'], + 'verification': 'Bauen Sie auf einer Replik auf, ' + 'überprüfen Sie die ' + 'Wiederherstellungs-Checkpoint-Kette ' + 'und die ' + 'Datenbank/Objekt-Manifeste, ' + 'liefern Sie von einer anderen, ' + 'dann trainieren Prozessverlust, ' + 'Dry-Run / Anwendung Waisen ' + 'Versöhnung, veraltetes Fechten, ' + 'Speicherfehler und ' + 'Retentionsbereinigung.'}, + 'campaigns.workflow.archive-campaign': {'limitations': ['Die Campaign-local Audit-Seite ist noch ' + 'nicht integriert; die ' + 'Audit-Verifizierung verwendet die ' + 'Plattform-Audit-Oberfläche oder die ' + 'API.'], + 'outcome': 'Eine archivierte Kampagne, deren Versionen, ' + 'Berichte und Prüfungsnachweise erhalten ' + 'bleiben.', + 'prerequisites': ['Sie haben Schreibzugriff auf die ' + 'ausgewählte Kampagne.', + 'Kein Lieferauftrag wird in die ' + 'Warteschlange gestellt, gesendet oder ' + 'auf eine Abstimmung mit unsicherem ' + 'Ergebnis gewartet.'], + 'steps': ['Öffnen Sie den Bericht und lösen Sie jeden ' + 'aktiven oder ergebnisunbekannten ' + 'Lieferzustand.', + 'Bestätigen Sie, dass die Kampagne die aktive ' + 'Arbeit verlassen sollte, während ihre ' + 'Nachweise beibehalten werden.', + 'Öffnen Sie die Kampagnenübersicht, wählen Sie ' + 'Archiv-Kampagne und bestätigen Sie die ' + 'Retained-Evidence-Konsequenz.', + 'Öffnen oder Abfragen der Kampagne und ' + 'bestätigen, dass ihr Status archiviert ist.'], + 'verification': 'Der Kampagnenzustand ist archiviert und ' + 'sein Bericht bleibt verfügbar. Bitten ' + 'Sie einen autorisierten Audit-Leser, das ' + 'Plattform-Audit-Ereignis zu überprüfen.'}, + 'campaigns.workflow.archive-historical-version': {'outcome': 'Die historische Version ist vor der ' + 'Standardhistorie verborgen, bleibt ' + 'aber intakt und zurechenbar.', + 'prerequisites': ['Die ausgewählte Version ist ' + 'historisch und nicht die ' + 'aktuelle Arbeitsversion.', + 'Sie haben Schreibzugriff und ' + 'Kampagnenarchivberechtigung.'], + 'steps': ['Öffnen Sie Versionen und wählen Sie ' + 'Archiv historische Version für die ' + 'beabsichtigte Zeile.', + 'Überprüfen Sie die ' + 'Retained-Evidence-Konsequenz und ' + 'bestätigen Sie, während das ' + 'Lifecycle-Token aktuell bleibt.', + 'Verwenden Sie Show archiviert, um ' + 'die Version beim Überprüfen von ' + 'Berichten oder Nachweisen erneut in ' + 'die Historie aufzunehmen.'], + 'verification': 'Archiviert anzeigen zeigt die ' + 'gleiche Versionsnummer und den ' + 'gleichen Workflow-Status mit ' + 'dem Archivierungs-Zeitstempel ' + 'an.'}, + 'campaigns.workflow.assign-accountable-work': {'limitations': ['Organisationen und IDM sind ' + 'optional; ' + 'Organisationsfunktionszuweisung ' + 'ist nicht verfügbar, bis sowohl ' + 'Verzeichnis- als auch ' + 'Incumbency-Funktionen aktiv sind.', + 'Tasks Mirroring ist eine ' + 'Convenience Projection. Kampagne ' + 'bleibt der autoritative Zuweisung ' + 'und Geschichte Eigentümer.', + 'Die Eigentumsübertragung ' + 'verwendet weiterhin das separate ' + 'Zwei-Parteien-Governance-Protokoll.'], + 'outcome': 'Eine dauerhafte Rechenschaftspflicht, ' + 'deren Lebenszyklus vom Besitz, der ' + 'Autorisierung und dem Lieferzustand ' + 'der Kampagne unabhängig ist.', + 'prerequisites': ['Sie können die Kampagne und ' + 'ihre Arbeitsaufträge lesen.', + 'Erstellen, Neuzuweisen, ' + 'Abbrechen oder Abgleichen ' + 'erfordert die ' + 'Zuweisungsverwaltungsberechtigung.', + 'Das Zielkonto, die Gruppe oder ' + 'alle aktuellen Funktionsinhaber ' + 'haben bereits ' + 'Kampagnenzugriff.'], + 'steps': ['Öffnen Sie Arbeiten im ausgewählten ' + 'Kampagnen-Arbeitsbereich und wählen Sie ' + 'Zuweisung hinzufügen.', + 'Geben Sie einen begrenzten Zweck, ein ' + 'optionales Fälligkeitsdatum, ein ' + 'typisiertes Ziel und eine optionale ' + 'stabile Kampagnenbeweisreferenz ein.', + 'Beheben Sie eine autorisierungsneutrale ' + 'Ablehnung, indem Sie Zugriff über den ' + 'separaten Kampagnenfreigabe-Workflow ' + 'gewähren oder einen anderen ' + 'Beauftragten auswählen; das Erstellen ' + 'der Zuweisung selbst gewährt niemals ' + 'Zugriff.', + 'Akzeptieren und vervollständigen Sie ' + 'Ihren eigenen Auftrag, lehnen Sie ihn ' + 'ausdrücklich ab, wenn er nicht ' + 'übernommen werden kann, oder verwenden ' + 'Sie Manageraktionen, um offene Arbeiten ' + 'neu zuzuweisen oder abzubrechen.', + 'Laden und Abgleichen von Aufgaben nach ' + 'Konto-, Gruppen-, ' + 'Organisationsfunktions- oder ' + 'Amtsänderungen; Überprüfen Sie die ' + 'gespeicherte Geschichte, bevor Sie auf ' + 'nicht verfügbare Arbeiten reagieren.'], + 'verification': 'Laden Sie die Arbeit nach, prüfen ' + 'Sie die getippte Zielvorgabe, die ' + 'Auflösungsherkunft, die ' + 'Überarbeitung und den Verlauf und ' + 'bestätigen Sie, dass sich die ' + 'Kampagnenanteile und das Eigentum ' + 'nicht geändert haben. Folgen Sie ' + 'bei Workflow-geöffneter Arbeit ' + 'dem fokussierten Zuweisungslink ' + 'und überprüfen Sie das genaue ' + 'Terminalereignis, und die ' + 'Überarbeitung setzt nur den ' + 'angehefteten Workflow-Schritt ' + 'fort. Wenn Aufgaben installiert ' + 'sind, bestätigen Sie die ' + 'optionalen Spiegellinks zu dieser ' + 'Kampagnenzuweisung.'}, + 'campaigns.workflow.collaborate-on-campaign': {'limitations': ['Benachrichtigungen sind optional; ' + 'die Diskussion bleibt verfügbar, ' + 'wenn die Zustellung nicht ' + 'konfiguriert ist.', + 'Kommentare genehmigen, ' + 'validieren, erstellen, warten, ' + 'senden oder verändern eine ' + 'Kampagne nicht.'], + 'outcome': 'Ein zurechenbarer menschlicher ' + 'Diskussionseintrag, der ' + 'Kampagnenversionen nicht mutiert oder ' + 'Audit-Nachweise imitiert.', + 'prerequisites': ['Sie können die Kampagne und ' + 'ihre Diskussion lesen.', + 'Das Posten erfordert die ' + 'separate ' + 'Kampagnendiskussions-Post-Erlaubnis.'], + 'steps': ['Open Collaboration im ausgewählten ' + 'Campaign Workspace.', + 'Wählen Sie optional eine stabile ' + 'Version aus oder geben Sie die stabile ' + 'ID einer anderen unterstützten ' + 'Kampagnenbeweisreferenz ein.', + 'Erwähnen Sie nur Mitarbeiter, die ' + 'bereits Zugriff haben, und posten Sie ' + 'dann den begrenzten Kommentar.', + 'Ziehen Sie Ihren eigenen falschen ' + 'Eintrag zurück oder bitten Sie einen ' + 'autorisierten Moderator, Inhalte zu ' + 'bearbeiten, die nicht mehr angezeigt ' + 'werden dürfen.', + 'Verwenden Sie Tenant-Audit für ' + 'Systemereignisse und dauerhafte ' + 'Aktionsnachweise; behandeln Sie ' + 'Diskussion nicht als Workflow-Status.'], + 'verification': 'Collaboration neu laden, der ' + 'getippten Referenz folgen und ' + 'bestätigen, dass eine Rücknahme ' + 'oder Redaktion als Grabstein ' + 'angezeigt wird, während die ' + 'referenzierte Version unverändert ' + 'bleibt.'}, + 'campaigns.workflow.complete-review': {'outcome': 'Überprüfen Sie den Nachweis für den genauen ' + 'aktuellen Build, ohne ungelöste Blocker- oder ' + 'Überprüfungsentscheidung.', + 'prerequisites': ['Die ausgewählte Kampagnenversion wird ' + 'validiert und erstellt.', + 'Sie können die Kampagne lesen und ihre ' + 'Überprüfung abschließen.'], + 'steps': ['Öffnen Sie die Überprüfung und senden und ' + 'prüfen Sie die Zusammenfassungen der kritischen ' + 'Blocker, der Einzelüberprüfung und der ' + 'Gruppenüberprüfung.', + 'Korrigieren Sie jeden kritischen Blocker im ' + 'benannten Kampagnenarbeitsbereich, validieren ' + 'und erstellen Sie ihn erneut.', + 'Öffnen Sie jede verbleibende individuelle ' + 'Überprüfungsnachricht und notieren Sie ihre ' + 'Entscheidung.', + 'Wenn nur nicht kritische Gruppenelemente ' + 'verbleiben, überprüfen Sie ihre Bedingungen und ' + 'schließen Sie die Überprüfung explizit ab.', + 'Bestätigen Sie, dass Reviewed der gesamten ' + 'erforderlichen Review entspricht und Remaining ' + 'vor der Lieferung Null ist.'], + 'verification': 'Überprüfen und senden Sie erneut, ' + 'bestätigen Sie keinen kritischen Blocker ' + 'oder eine verbleibende Entscheidung und ' + 'überprüfen Sie, ob der zulässige ' + 'Liefermodus für dieselbe Version und ' + 'denselben Build freigeschaltet ist.'}, + 'campaigns.workflow.control-attachment-reuse': {'outcome': 'Ein Kampagnen-Build, dessen ' + 'wiederholte Verwendung von Anhängen ' + 'unter einer expliziten Richtlinie ' + 'geregelt und überprüfbar ist.', + 'prerequisites': ['Entscheiden Sie, welche ' + 'wiederholte Nutzung für den ' + 'Zweck und die Empfänger der ' + 'Kampagne akzeptabel ist.', + 'Die aktuelle Kampagnenversion ' + 'ist editierbar, wenn die ' + 'Richtlinie geändert wird.'], + 'steps': ['Öffnen Sie Anhänge und wählen Sie ' + 'Zulassen, Warnen, Erfordern einer ' + 'expliziten Überprüfung oder Blockieren ' + 'der Lieferung.', + 'Optional erlauben Wiederverwendung nur ' + 'innerhalb des gleichen Empfängers oder ' + 'der gleichen gebauten Nachricht.', + 'Speichern, validieren und erstellen ' + 'Sie die Kampagne und prüfen Sie dann ' + 'die Zusammenfassung der wiederholten ' + 'Dateien und die betroffenen ' + 'Nachrichten.', + 'Öffnen Sie für Überprüfungsergebnisse ' + 'jede betroffene Nachricht und notieren ' + 'Sie einen expliziten Grund; für ' + 'Blockierungsergebnisse korrigieren Sie ' + 'die Regeln oder Richtlinien und ' + 'erstellen Sie sie neu.'], + 'verification': 'Prüfen und senden zeigt die ' + 'konfigurierte Aktion und ' + 'Begrenzung, wiederholte ' + 'Dateizählungen und Dispositionen ' + 'an; betroffene Nachrichten ' + 'zeigen Warnung, Überprüfung oder ' + 'blockierten Zustand wie ' + 'konfiguriert.'}, + 'campaigns.workflow.copy-campaign': {'outcome': 'Ein neuer editierbarer Kampagnenentwurf, der nur ' + 'die explizit ausgewählte Konfiguration und keine ' + 'kopierten operativen Nachweise enthält.', + 'prerequisites': ['Sie können die ausgewählte Kampagne ' + 'lesen. Das Kopieren von Empfängerdaten ' + 'erfordert zusätzlich die Berechtigung zum ' + 'Lesen des Empfängers.', + 'Sie können Kampagnenkopien im aktiven ' + 'Mandant erstellen.'], + 'steps': ['Öffnen Sie die Kampagnenübersicht und wählen Sie ' + 'die aktuelle oder eine historische Quellversion.', + 'Wählen Sie Kampagne kopieren oder als neue ' + 'Kampagne kopieren, geben Sie die neue Identität ' + 'ein und wählen Sie unabhängig voneinander ' + 'Empfänger, Dateien, Freigaben, Richtlinien und ' + 'E-Mail-Profil aus.', + 'Wenn eine Auswahl nicht verfügbar ist, holen Sie ' + 'sich die entsprechende Empfänger-Lese- oder ' + 'Kampagnenfreigabeberechtigung oder lassen Sie ' + 'diesen Inhalt ausgeschlossen.', + 'Bestätigen Sie, während das ' + 'Lifecycle-Status-Token aktuell ist; Laden Sie ' + 'erneut, wenn ein anderer handelnde Person den ' + 'Quellzustand geändert hat.', + 'Öffnen Sie die neu erstellte Kampagne, überprüfen ' + 'Sie die generierte Kennung und den Eigentümer und ' + 'validieren Sie alle geerbten Konfigurationen vor ' + 'der Verwendung.'], + 'verification': 'Das Ziel hat eine eindeutige Kampagnen-ID ' + 'und einen eindeutigen Eigentümer, eine ' + 'editierbare Version, die ausgewählten ' + 'Konfigurationsdomänen und keine ' + 'Quellaufträge, Ergebnisse, Sperren, ' + 'Berichte oder Überwachungsnachweise.'}, + 'campaigns.workflow.create-campaign': {'outcome': 'Ein eigener Kampagnenentwurf mit einer ' + 'editierbaren Arbeitsversion.', + 'prerequisites': ['Sie können Kampagnen im aktiven Mandant ' + 'erstellen.'], + 'steps': ['Öffnen Sie Kampagnen und wählen Sie Neue ' + 'Kampagne.', + 'Verwenden Sie den Erstellungsassistenten, um ' + 'einen eindeutigen Namen, eine eindeutige ' + 'Kennung und einen eindeutigen Zweck einzugeben.', + 'Öffnen Sie die neue Kampagne und bestätigen Sie ' + 'ihren Besitzer, bevor Sie Empfänger- oder ' + 'Lieferdaten hinzufügen.', + 'Fahren Sie durch die Vorbereitungsabschnitte ' + 'fort; Verwenden Sie die stabilen Aktionen ' + 'Discard und Save, während die Leiste den ' + 'Entwurfszustand meldet.'], + 'verification': 'Die Kampagnenübersicht zeigt die neue ' + 'Kampagne als Entwurf und identifiziert ' + 'ihre aktuelle Arbeitsversion.'}, + 'campaigns.workflow.create-editable-successor': {'outcome': 'Eine neue editierbare ' + 'Arbeitsversion, während die ' + 'Quellversion und ihre Nachweise ' + 'unverändert bleiben.', + 'prerequisites': ['Sie haben Schreibzugriff auf ' + 'die ausgewählte Kampagne.', + 'Die aktuelle Version ist ' + 'permanent benutzergesperrt ' + 'oder lieferend.'], + 'steps': ['Öffnen Sie die gesperrte aktuelle ' + 'Version und überprüfen Sie den Grund, ' + 'warum sie nur gelesen wird.', + 'Wählen Sie editierbare Kopie in der ' + 'Sperrversion aus.', + 'Wenn die Benachrichtigung stattdessen ' + 'eine Entsperraktion bietet, ' + 'entsperren Sie diese Validierung oder ' + 'temporäre Benutzersperre, anstatt ' + 'einen Nachfolger zu erstellen.', + 'Überprüfen Sie die neue ' + 'Arbeitsversion, wählen Sie bei Bedarf ' + 'ein Mail-Profil erneut aus und ' + 'validieren und erstellen Sie es vor ' + 'der Lieferung erneut.'], + 'verification': 'Die Kampagnenübersicht ' + 'identifiziert eine neue ' + 'aktuelle Versionsnummer und die ' + 'frühere Version bleibt in der ' + 'Geschichte.'}, + 'campaigns.workflow.delete-untouched-draft': {'limitations': ['Die Campaign-local Audit-Seite ist ' + 'noch nicht integriert; die ' + 'Audit-Verifizierung verwendet die ' + 'Plattform-Audit-Oberfläche oder ' + 'die API.'], + 'outcome': 'Ein berechtigter unberührter Entwurf, ' + 'der aus aktiven Kampagnen mit ' + 'zurechenbaren Löschungsnachweisen ' + 'entfernt wurde.', + 'prerequisites': ['Sie haben Schreibzugriff auf die ' + 'ausgewählte Kampagne.', + 'Die Kampagne ist immer noch ein ' + 'Entwurf und hat keine Jobs, ' + 'Sperren, veröffentlichte Version ' + 'oder Ausführung Snapshot.'], + 'steps': ['Bestätigen Sie, dass der Entwurf nicht ' + 'benötigt wird und keine Nachweise ' + 'enthält, die beibehalten werden sollten.', + 'Wählen Sie den Entwurf in der ' + 'Kampagnenübersicht löschen und ' + 'bestätigen Sie die destruktive Aktion.', + 'Wenn die Löschung abgelehnt wird, weil ' + 'geschützte Nachweise vorhanden sind, ' + 'archivieren Sie die Kampagne, nachdem ' + 'Sie einen aktiven Lieferzustand behoben ' + 'haben.', + 'Stellen Sie sicher, dass der gelöschte ' + 'Entwurf nicht mehr in aktiven Kampagnen ' + 'erscheint und dass das Audit-Event ' + 'existiert.'], + 'verification': 'Der Entwurf wird nicht mehr als ' + 'aktive Kampagne zurückgegeben. ' + 'Bitten Sie einen autorisierten ' + 'Audit-Leser, zu überprüfen, wer ' + 'ihn gelöscht hat und wann er die ' + 'Plattform-Auditoberfläche ' + 'durchläuft.'}, + 'campaigns.workflow.export-delivery-report': {'outcome': 'Ein CSV-Export von autorisierten ' + 'Kampagnenergebnissen.', + 'prerequisites': ['Sie können sowohl ' + 'Kampagnenberichte als auch ' + 'Empfängerdaten exportieren.', + 'Die Ausfuhr hat einen ' + 'genehmigten Zweck und ' + 'Bestimmungsort.'], + 'steps': ['Öffnen Sie den Kampagnenbericht und ' + 'wählen Sie die beabsichtigte Version ' + 'aus.', + 'Bestätigen Sie, dass der Export auf ' + 'Empfängerebene für die Aufgabe ' + 'erforderlich ist.', + 'Wählen Sie CSV herunterladen und ' + 'speichern Sie das Ergebnis nur am ' + 'genehmigten Speicherort.', + 'Überprüfen Sie die ausgewählte Version ' + 'und die Anzahl der Zeilen und wenden Sie ' + 'dann die erforderliche Aufbewahrungs- ' + 'oder Löschregel auf die heruntergeladene ' + 'Kopie an.'], + 'verification': 'Die heruntergeladene Datei ' + 'identifiziert die beabsichtigte ' + 'Kampagne/Version und enthält ' + 'Geschäftsnachweise ohne ' + 'Anmeldeinformationen oder ' + 'Infrastrukturdetails für ' + 'gewöhnliche Leser.'}, + 'campaigns.workflow.import-address-source': {'outcome': 'Ein kampagnenlokaler Empfänger-Snapshot, ' + 'dessen Adressenquelle und -revision ' + 'verfolgt werden können.', + 'prerequisites': ['Adressen bieten mindestens eine ' + 'für Sie sichtbare Quelle.', + 'Die aktuelle Kampagnenversion ist ' + 'editierbar und Sie haben ' + 'Schreibzugriff darauf.'], + 'steps': ['Öffnen Sie Empfängerdaten und wählen Sie ' + 'Adressbuch/Liste importieren.', + 'Wählen Sie die zulässige Quelle und ' + 'überprüfen Sie den zurückgegebenen ' + 'Snapshot und seine Überarbeitung.', + 'Wählen Sie Append oder Ersetzen, ' + 'importieren Sie den Snapshot, inspizieren ' + 'Sie die Empfängerzeilen und speichern ' + 'Sie.', + 'Wenn später eine Warnmeldung für ' + 'veraltete Quellen erscheint, vergleichen ' + 'Sie die Quelle und importieren Sie sie ' + 'absichtlich neu, wenn die Kampagne die ' + 'neue Revision verwenden soll.'], + 'verification': 'Empfängerdaten zeichnen die ' + 'Herkunft der Quelle auf, und eine ' + 'spätere Überarbeitung der Quelle ' + 'ändert die gespeicherten Zeilen ' + 'erst, wenn Sie sie erneut ' + 'importieren.'}, + 'campaigns.workflow.import-distribution-list': {'outcome': 'Ein Kampagnen-lokaler ' + 'Empfänger-Snapshot mit ' + 'unveränderlichem Publikum, Anbieter, ' + 'Richtlinien und ' + 'Channel-Entscheidungsbeweisen.', + 'prerequisites': ['Eine sichtbare Verteilerliste ' + 'kann für die ' + 'Kampagnenbereitstellung ' + 'erweitert werden.', + 'Die aktuelle Campaign-Version ' + 'ist editierbar.'], + 'steps': ['Öffnen Sie Empfängerdaten und wählen ' + 'Sie Import Distribution List.', + 'Wählen Sie die Liste, die ' + 'angeforderten Kanäle und alle ' + 'deklarierten Parameter aus und sehen ' + 'Sie sich dann die Erweiterung an.', + 'Die Überprüfung umfasste und ' + 'ausgeschlossene Empfänger, veraltete ' + 'Anbieternachweise, Diagnosen und jede ' + 'sichtbare primäre und optionale ' + 'Fallback-Route.', + 'Wählen Sie Anfügen oder Ersetzen, ' + 'frieren und importieren Sie die ' + 'Erweiterung, prüfen Sie die kopierten ' + 'Zeilen und speichern Sie die ' + 'Kampagnenversion.', + 'Verwenden Sie die Drift-Warnung für ' + 'eine absichtliche Aktualisierung, wenn ' + 'sich die wiederverwendbare Liste ' + 'später ändert.'], + 'verification': 'Die gespeicherten ' + 'Empfängerzeilen behalten die ' + 'Listenrevision und die ' + 'Snapshot-Referenz bei, und ' + 'spätere Listenänderungen ändern ' + 'sie nicht automatisch.'}, + 'campaigns.workflow.import-recipients': {'outcome': 'Ein kampagnenlokaler Empfänger-Snapshot mit ' + 'Mapping und Quellennachweisen.', + 'prerequisites': ['Die aktuelle Kampagnenversion ist ' + 'editierbar und Sie haben ' + 'Schreibzugriff darauf.', + 'Die Quelle ist tabellarisch und ' + 'enthält nur Daten, die für diese ' + 'Kampagne benötigt werden.'], + 'steps': ['Öffnen Sie Empfängerdaten und wählen Sie ' + 'Import.', + 'Laden Sie die Tabelle hoch oder fügen Sie sie ' + 'ein, bestätigen Sie dann gegebenenfalls deren ' + 'Kodierung, Blatt, Kopfzeilen und ' + 'Trennzeichen.', + 'Karten Sie Adressen- und Kampagnenfelder, ' + 'wählen Sie Anfügen oder Ersetzen und ' + 'überprüfen Sie jede ungültige oder ' + 'ausgeschlossene Zeile.', + 'Wählen Sie gültige Zeilen importieren, prüfen ' + 'Sie die resultierende Empfängertabelle und ' + 'speichern Sie die Kampagnenseite.'], + 'verification': 'Öffnen Sie die Empfängerdaten, ' + 'bestätigen Sie die erwartete ' + 'Zeilenanzahl und Adressierung und ' + 'validieren Sie dann, bevor Sie ' + 'Nachrichten erstellen.'}, + 'campaigns.workflow.prepare-printable-delivery': {'outcome': 'Ein überprüftes druckbares Artefakt ' + 'und idempotenter ' + 'Verteilungsnachweis pro Empfänger.', + 'prerequisites': ['Mindestens ein ' + 'eingeschlossener Empfänger ' + 'hat eine explizite Post- ' + 'oder interne Postroute.', + 'Eine kompatible ' + 'Templates-Definition wird ' + 'veröffentlicht und für Sie ' + 'sichtbar.'], + 'steps': ['Öffnen Sie Template und wählen Sie ' + 'die veröffentlichte druckbare ' + 'Vorlage, das Ausgabeformat und die ' + 'Speicherauswahl aus.', + 'Speichern, validieren und beheben ' + 'Sie alle fehlenden Felder oder ' + 'Kompatibilitätsfehler.', + 'Erstellen Sie die Kampagne, um ein ' + 'deterministisches Artefakt für die ' + 'eingefrorenen druckbaren Empfänger ' + 'zu generieren.', + 'In Überprüfen und Senden, ' + 'Herunterladen und Inspizieren des ' + 'Artefakts und Vergleichen der ' + 'Vorlage, Eingabe und Ausgabe-Hashes.', + 'Vollständige Überprüfung und ' + 'Ausführung der Lieferung; Verwenden ' + 'Sie Berichte, um die Akzeptanz und ' + 'die Herkunft des Drucks pro ' + 'Empfänger zu überprüfen.'], + 'verification': 'Die Build-Zusammenfassung ' + 'zeigt das Artefakt und die ' + 'Hashes, und der ' + 'Kampagnenbericht zeichnet den ' + 'Druckstatus und einen ' + 'Akzeptanzversuch pro ' + 'geroutetem Empfänger auf.'}, + 'campaigns.workflow.prepare-validate-and-build': {'outcome': 'Die ausgewählte Version hat exakt ' + 'aufgebaute Nachrichten und ' + 'eingefrorene Quellenbeweise, die ' + 'für eine unabhängige Überprüfung ' + 'bereitstehen.', + 'prerequisites': ['Die Kampagne hat einen ' + 'Eigentümer und einen klaren ' + 'Kommunikationszweck.', + 'Sie können die ausgewählte ' + 'Kampagnenversion bearbeiten, ' + 'validieren und erstellen.', + 'Optionale Quellmodule, die ' + 'für diese Kampagne benötigt ' + 'werden, werden installiert ' + 'und autorisiert.'], + 'steps': ['Legen Sie kampagnenweite Felder und ' + 'Zwecke fest und definieren Sie dann ' + 'die Empfängerfelder und Vorlagen.', + 'Importieren oder wählen Sie ' + 'Empfänger aus, bestätigen Sie ' + 'optional einen gezählten Active-All- ' + 'oder Deaktivierungs-All-Entwurf und ' + 'prüfen Sie Herkunft, Ausschlüsse und ' + 'rezensionspflichtige Zeilen.', + 'Wählen Sie verwaltete ' + 'Anhängeversionen und ein ' + 'autorisiertes E-Mail-Profil aus, ' + 'wenn diese Funktionen verwendet ' + 'werden; Generieren Sie ein neues ' + 'Passwort nur, wenn Sie ein Feld mit ' + 'Kampagnenanmeldeinformationen oder ' + 'einem Passwort-Wert erstellen, und ' + 'bestätigen Sie dann den Kandidaten ' + 'ausdrücklich.', + 'Validieren Sie die relevanten ' + 'Abschnitte und lösen Sie jeden ' + 'Blocker, ohne Warnungen zu ' + 'verbergen.', + 'Erstellen Sie die ausgewählte ' + 'Version und prüfen Sie ' + 'repräsentative und außergewöhnliche ' + 'gerenderte Nachrichten.'], + 'verification': 'Öffnen Sie die Überprüfung, ' + 'bestätigen Sie, dass der Build ' + 'zur beabsichtigten Version ' + 'gehört, und prüfen Sie ' + 'Zählungen, Warnungen, ' + 'Empfänger, Adressierung, ' + 'gerenderte Inhalte und ' + 'Anhangnachweise.'}, + 'campaigns.workflow.queue-delivery': {'outcome': 'Berechtigte Jobs standen in der Warteschlange ' + 'mit einem überprüfbaren Ausführungs-Snapshot ' + 'und einem geschützten Lieferzustand.', + 'prerequisites': ['Die ausgewählte Version wird validiert, ' + 'gesperrt, gebaut und überprüft.', + 'Sein Mail-Profil bleibt für den ' + 'aktuellen Kampagnenkontext verfügbar und ' + 'autorisiert.', + 'Sie haben Schreibzugriff auf die ' + 'ausgewählte Kampagne.'], + 'steps': ['Öffnen Sie die Überprüfung und senden und ' + 'bestätigen Sie die ausgewählte Version, den ' + 'Build, die Empfänger, die Warnungen und den ' + 'Abschluss der Überprüfung.', + 'Wählen Sie Warteschlange für Mitarbeiter und ' + 'bestätigen Sie die genaue dauerhafte Ausführung, ' + 'die begangen wird.', + 'Bleiben Sie bei der Überprüfung und senden oder ' + 'gehen und später zurückkehren; beide Ansichten ' + 'lesen die gleichen dauerhaften Jobzustände.', + 'Verwenden Sie die Zustellungskontrollen, um ' + 'nicht gesendete Arbeiten anzuhalten, wieder ' + 'aufzunehmen, zu stornieren oder berechtigte ' + 'Fehler zu wiederholen, ohne akzeptierte oder ' + 'unsichere Ergebnisse erneut in die Warteschlange ' + 'zu stellen.'], + 'verification': 'Der Bericht zeigt die Jobs der ' + 'ausgewählten Version als in die ' + 'Warteschlange gestellt oder fortschreitend ' + 'an, ohne dass ein angenommener Job wieder ' + 'auf reproduzierbar geändert wird.'}, + 'campaigns.workflow.retry-and-reconcile': {'outcome': 'Jeder untersuchte Job ist entweder als ' + 'erledigt geschützt, explizit wiederholbar ' + 'oder noch sichtbar ungelöst.', + 'prerequisites': ['Sie können die ausgewählte ' + 'Wiederholungs- oder Abgleichaktion ' + 'durchführen.', + 'Provider, Mailbox, Arbeiter und ' + 'Kampagnenbeweise wurden bewahrt.'], + 'steps': ['Klassifizieren Sie den Job und die letzten ' + 'SMTP- und IMAP-Versuche unabhängig ' + 'voneinander.', + 'Wiederholen Sie nur einen ausdrücklich ' + 'vorübergehenden, permanenten oder ' + 'unversuchten berechtigten Staat.', + 'Überprüfen Sie für einen unbekannten Effekt ' + 'den Anbieter- oder Mailbox-Beweis und ' + 'notieren Sie den sachlichen Abgleich mit ' + 'einer Notiz.', + 'Überprüfen Sie den resultierenden ' + 'geschützten Zustand, bevor Sie mehr Arbeit ' + 'für diesen Job zulassen.'], + 'verification': 'Bestätigen Sie, dass der vorherige ' + 'Versuch in der Geschichte verbleibt, ' + 'ein Wiederholungsversuch hat eine ' + 'neue Versuchsnummer, und es wurde ' + 'kein akzeptierter SMTP-Effekt ' + 'wiederholt, um den IMAP-Zustand zu ' + 'reparieren.'}, + 'campaigns.workflow.reuse-content-library': {'outcome': 'Wiederverwendbare Inhalte bleiben ' + 'zentral versioniert, während jede ' + 'Kampagne ihre eigenen absichtlichen ' + 'Änderungen aufzeichnet.', + 'prerequisites': ['Die Campaign-Version ist ' + 'editierbar.', + 'Templates ist aktiv und Sie ' + 'können seine Bibliothek lesen; ' + 'Speichern erfordert zusätzlich ' + 'Template Schreibautorität.'], + 'steps': ['Öffnen Sie Template und wählen Sie Aus ' + 'der Bibliothek laden, um Inhalte zu ' + 'suchen, die im aktiven Templates-Bereich ' + 'sichtbar sind.', + 'Überprüfen Sie alle fehlenden oder ' + 'inkompatiblen erforderlichen Felder und ' + 'fügen Sie dann ein Fragment in das ' + 'deklarierte Betreff-, Text- oder ' + 'HTML-Ziel ein oder bestätigen Sie ' + 'ausdrücklich den Ersatz durch einen ' + 'vollständigen Kampagnenteil.', + 'Überprüfen Sie Platzhalter und speichern ' + 'Sie den Kampagnenentwurf normal.', + 'Um neue Inhalte beizubehalten, wählen Sie ' + 'Speichern in der Bibliothek, wählen Sie ' + 'Fragment oder kompletten Teil plus ' + 'persönliche oder Mandantensichtbarkeit ' + 'und erstellen Sie den unveröffentlichten ' + 'Entwurf.', + 'Öffnen Sie Vorlagen, um freigegebene ' + 'Inhalte zu überprüfen, zu überarbeiten ' + 'und zu veröffentlichen.'], + 'verification': 'Der Kampagnenentwurf zeigt den ' + 'eingefügten Inhalt an, und ' + 'gespeicherte Bibliotheksinhalte ' + 'werden in Vorlagen als ' + 'unveröffentlichte Überarbeitung mit ' + 'Kampagnenherkunft angezeigt.'}, + 'campaigns.workflow.route-unassigned-files': {'outcome': 'Jede angesehene Datei wird entweder ' + 'zugewiesen, absichtlich gemeldet oder ' + 'durch eine sichtbare ' + 'Richtlinienfeststellung dargestellt.', + 'prerequisites': ['Aktivieren Sie Unsent auf jeder ' + 'Attachment-Quelle, die überprüft ' + 'werden muss.', + 'Konfigurieren Sie die normale ' + 'Warn- oder Sperrrichtlinie, auch ' + 'wenn keine geroutete Nachricht ' + 'gewünscht wird.', + 'Geben Sie für das Routing einen ' + 'überprüften Empfänger, Betreff ' + 'und Berichtskörper an.'], + 'steps': ['Öffnen Sie Attachments und setzen Sie ' + 'die Aktion "nicht zugewiesene Dateien" ' + 'auf "Nur Warnung", "Bericht" oder ' + '"Bericht mit Anhängen".', + 'Speichern und Erstellen der Kampagne; ' + 'Campaign vergleicht aufgelöste ' + 'Empfängerdateien mit jeder Datei in den ' + 'angesehenen Quellen.', + 'Öffnen Sie die Restdateizeile in Review ' + 'und senden Sie, überprüfen Sie die ' + 'genaue Liste und alle beigefügten ' + 'Dateien und notieren Sie die ' + 'Überprüfungsentscheidung.', + 'Warteschlangen oder senden Sie es durch ' + 'den gleichen kontrollierten ' + 'Kampagnen-Lebenszyklus, oder korrigieren ' + 'Sie die Anhängeregeln und bauen Sie ' + 'stattdessen neu auf.'], + 'verification': 'Der Build enthält keinen ' + 'versteckten Restsatz: Es zeigt ' + 'entweder das konfigurierte Warn- / ' + 'Blockierungsproblem oder eine ' + 'Needs-Review-Zeile mit Herkunft ' + 'der Restdatei und dem ' + 'konfigurierten Empfänger an.'}, + 'campaigns.workflow.schedule-drafts': {'outcome': 'Eine begrenzte Abfolge von manuellen Entwürfen ' + 'oder höchstens einmal autonome Mail-Befehle ' + 'mit dauerhaften Vorkommens- und ' + 'Wiederherstellungsnachweisen.', + 'prerequisites': ['Wählen Sie die genaue Kampagnenversion, ' + 'deren Konfiguration zukünftige Entwürfe ' + 'aussenden soll.', + 'Empfängerdaten und aktive Aktien ' + 'erfordern ihre entsprechende Lese- oder ' + 'Aktienautorität.', + 'Ein Worker- und Scheduler-Prozess muss ' + 'für die automatische rechtzeitige ' + 'Vorbereitung laufen.', + 'Der autonome Modus erfordert zusätzlich ' + 'Campaigns:campaign:queue, ' + 'Campaigns:campaign:send, ' + 'mail:profile:use, Mails langlebigen ' + 'Posteingang und eine explizit ' + 'genehmigte Builded Source Version.'], + 'steps': ['Öffnen Sie die Kampagnenübersicht und wählen ' + 'Sie Zeitplan.', + 'Setzen Sie das erste Ereignis, die Zeitzone, ' + 'das Wiederauftreten und die begrenzte maximale ' + 'Ereigniszahl.', + 'Wählen Sie manuelle Entwurfsvorbereitung oder ' + 'autonome genehmigte Lieferung; Modus kann nicht ' + 'an Ort und Stelle geändert werden.', + 'Wählen Sie im manuellen Modus aus, welche ' + 'Konfigurationsdomänen kopiert werden können, ' + 'und überprüfen Sie jeden generierten Entwurf ' + 'unabhängig voneinander.', + 'Bestätigen Sie im autonomen Modus, dass die ' + 'ausgewählte Version nur für Mail erstellt und ' + 'ausdrücklich genehmigt wurde; die API weist ' + 'fehlende oder veraltete Nachweise zurück.', + 'Überprüfen Sie das nächste Ereignis, das letzte ' + 'Ergebnis und den Wiederherstellungszustand. ' + 'Beheben Sie unsichere oder fehlgeschlagene ' + 'Mail-Befehle explizit, bevor Sie einen ' + 'Ersatzplan erstellen oder wieder aufnehmen.'], + 'verification': 'Der Abschnitt Zeitpläne zeigt den Modus, ' + 'das nächste Ereignis, das letzte ' + 'Ergebnis, den Wiederherstellungszustand ' + 'und jede automatische Pause; manuelle ' + 'Ereignisse verknüpfen sich mit ' + 'unterschiedlichen Entwürfen, während ' + 'autonome Ereignisse Mail-Befehlskennungen ' + 'und nicht geheime Ergebnissummen ' + 'beibehalten.'}, + 'campaigns.workflow.send-calendar-invitations': {'limitations': ['Wiederkehrende ' + 'Kampagneneinladungsserien ' + 'erfordern einen separaten ' + 'Serienworkflow; dieser ' + 'Abschnitt erstellt individuelle ' + 'VEVENT-Anfragen.'], + 'outcome': 'Individuelle Einladungen mit ' + 'korrelierten Kalenderereignissen und ' + 'RSVP-Berichten auf Empfängerebene.', + 'prerequisites': ['Mail und Kalender sind aktiv ' + 'und Sie können einen ' + 'beschreibbaren Kalender ' + 'auswählen.', + 'Jeder Schlangenempfänger hat ' + 'eine Mail-An-Adresse und die ' + 'Einladungsstartvorlage wird ' + 'nach ISO 8601 aufgelöst.'], + 'steps': ['Öffnen Sie Kampagneneinstellungen, ' + 'aktivieren Sie individualisierte ' + 'Kalendereinladungen und wählen Sie ' + 'den Tracking-Kalender aus.', + 'Geben Sie Zusammenfassung, Anfang, ' + 'optionales Ende, Zeitzone, Ort, ' + 'Beschreibung und Kategorievorlagen ' + 'ein.', + 'Validieren und bauen; prüfen Sie die ' + 'eingefrorene METHODE: ANTRAG Anlage ' + 'für jeden Empfänger vor der ' + 'Lieferung.', + 'Liefern Sie den überprüften Build und ' + 'verwenden Sie den Bericht, um die ' + 'Postzustellung mit dem ' + 'Live-RSVP-Zustand zu vergleichen.', + 'Konfigurieren Sie eine Mail ' + 'IMAP-Lieferungsstatusquelle, wenn ein ' + 'eingehender METHOD:REPLY-Abgleich ' + 'erforderlich ist.'], + 'verification': 'Der Kampagnen-Job zeigt die ' + 'akzeptierte Lieferung, eine ' + 'gespiegelte ' + 'Kalender-Ereignis-ID und den ' + 'aktuellen Teilnehmerstatus an; ' + 'die wiederholte Aufnahme von ' + 'Postfächern dupliziert den ' + 'Antworteffekt nicht.'}, + 'campaigns.workflow.send-small-controlled-run': {'outcome': 'Ein synchroner realer Lieferlauf mit ' + 'Versuchs- und Ergebnisnachweisen auf ' + 'Empfängerebene.', + 'prerequisites': ['Die ausgewählte Version wird ' + 'validiert, gesperrt, gebaut ' + 'und überprüft.', + 'Die genaue Anzahl der ' + 'berechtigten Empfänger-Jobs ' + 'liegt innerhalb des ' + 'effektiven Limits, das bei ' + 'Review und Send angezeigt ' + 'wird.', + 'Sein Mail-Profil bleibt für ' + 'den aktuellen ' + 'Kampagnenkontext verfügbar ' + 'und autorisiert.'], + 'steps': ['Öffnen Sie die Überprüfung und senden ' + 'und prüfen Sie die genauen Prüfungen ' + 'der Bau- und Lieferbereitschaft.', + 'Überprüfen Sie das effektive ' + 'Synchronlimit und die genaue ' + 'zulässige Anzahl; Verwenden Sie die ' + 'Warteschlange für Arbeiter, wenn Send ' + 'now nicht verfügbar ist, oder für ' + 'einen normalen Batch.', + 'Wählen Sie jetzt senden und ' + 'bestätigen Sie die geschützte ' + 'Zustellaktion.', + 'Öffnen Sie den Bericht und prüfen Sie ' + 'jeden resultierenden Lieferzustand, ' + 'bevor Sie eine ' + 'Wiederherstellungsaktion versuchen.'], + 'verification': 'Der Bericht unterscheidet ' + 'akzeptierte, gescheiterte, ' + 'unversuchte, abgesagte und ' + 'ergebnisunbekannte Jobs und ' + 'behält ihre Versuchsgeschichte ' + 'bei.'}, + 'campaigns.workflow.share-campaign': {'outcome': 'Expliziter Kampagnenzugriff für das ausgewählte ' + 'Subjekt, begrenzt durch die vorhandenen ' + 'Berechtigungen dieses Subjekts.', + 'prerequisites': ['Sie haben Schreibzugriff auf die ' + 'ausgewählte Kampagne.', + 'Der Zielbenutzer oder die Zielgruppe hat ' + 'bereits eine geeignete Kampagnenrolle ' + 'für die beabsichtigten Aktionen.'], + 'steps': ['Öffne globale Einstellungen und finde Eigentum ' + 'und Teilen.', + 'Wählen Sie Freigeben, einen Benutzer oder eine ' + 'Gruppe und wählen Sie Kann anzeigen oder Kann ' + 'bearbeiten und bedienen.', + 'Speichern Sie die Freigabe und überprüfen Sie, ' + 'ob das Ziel in der Freigabetabelle mit dem ' + 'beabsichtigten Level angezeigt wird.', + 'Verwenden Sie die Zeilenaktion, um die explizite ' + 'Freigabe zu widerrufen, wenn sie nicht mehr ' + 'benötigt wird.'], + 'verification': 'Die Freigabetabelle zeigt das aktive Ziel ' + 'und die Ebene an; der Widerruf entfernt ' + 'den expliziten Zugriff, während der ' + 'Audit-Datensatz beibehalten wird.'}, + 'campaigns.workflow.transfer-campaign-package': {'outcome': 'Ein Kampagnenentwurf, der nur die ' + 'ausgewählte portable Konfiguration ' + 'enthält, mit Herkunft der Quelle/des ' + 'Pakets und ohne wiedergegebenen ' + 'Betriebszustand.', + 'prerequisites': ['Sie können die Quellkampagne ' + 'exportieren; der Import ' + 'erfordert zusätzlich die ' + 'Berechtigung zum Erstellen ' + 'von Kampagnen und zum ' + 'Portable-Import.', + 'Empfänger- und Lieferbereiche ' + 'haben einen genehmigten Zweck ' + 'und Bestimmungsort sowie die ' + 'entsprechenden ' + 'Exportgenehmigungen für ' + 'Empfänger/Berichte.'], + 'steps': ['Öffnen Sie die ' + 'Quellkampagnenübersicht, wählen Sie ' + 'Paket exportieren und behalten Sie ' + 'die datenschutzsicheren Metadaten ' + 'plus Vorlage/Konfiguration ' + 'standardmäßig bei, es sei denn, es ' + 'sind weitere Daten erforderlich.', + 'Wählen Sie alle zusätzlichen ' + 'Empfänger-, Anlage-, Überprüfungs- ' + 'oder Lieferbereiche explizit aus und ' + 'laden Sie das integritätsgeschützte ' + 'JSON-Paket an einen zugelassenen ' + 'Standort herunter.', + 'Auf der Zielkampagnenliste wählen Sie ' + 'Paket importieren, die Datei ' + 'auswählen und Kompatibilität, ' + 'Redaktionen, Zielidentität, erstellte ' + 'Berechtigungsbereiche und ' + 'übersprungene Nachweise überprüfen.', + 'Ändern Sie die Zielidentität oder ' + 'ausgewählte Berechtigungsbereiche ' + 'nach Bedarf, aktualisieren Sie die ' + 'Vorschau und erstellen Sie den ' + 'Entwurf nur, wenn die Vorschau ' + 'aktuell und kompatibel ist.', + 'Öffnen Sie den Entwurf, verbinden Sie ' + 'die lokalen Post- und Dateiressourcen ' + 'wieder, validieren Sie Empfänger und ' + 'Anhänge und schließen Sie die normale ' + 'Überprüfung vor jeder Lieferung ab.'], + 'verification': 'Das Ziel ist ein neuer Entwurf ' + 'mit einer eindeutigen ID; seine ' + 'Einstellungen behalten die ' + 'Paket-ID, SHA-256, Quelle und ' + 'erstellte / übersprungene ' + 'Quittung bei, während Audit die ' + 'übereinstimmenden Export- / ' + 'Import-Hashes aufzeichnet, ohne ' + 'den Paketinhalt zu speichern.'}, + 'campaigns.workflow.use-managed-attachments': {'outcome': 'Regierte Dateiversionen, die mit der ' + 'Kampagne verknüpft sind und in den ' + 'genauen Build-Beweis eingefroren ' + 'wurden.', + 'prerequisites': ['Die aktuelle Kampagnenversion ' + 'ist editierbar und Sie haben ' + 'Schreibzugriff darauf.', + 'Die erforderlichen ' + 'Dateiversionen sind in Dateien ' + 'vorhanden und können mit dieser ' + 'Kampagne geteilt werden.'], + 'steps': ['Öffnen Sie Anhänge und wählen Sie ' + 'verwaltete Dateien oder Muster aus ' + 'Dateien.', + 'Definieren Sie kampagnenweite und ' + 'empfängerspezifische Regeln, ' + 'einschließlich des unübertroffenen ' + 'Datei- und Archivverhaltens.', + 'Zeigen Sie die Übereinstimmungen an und ' + 'verknüpfen Sie die genauen verwalteten ' + 'Versionen mit der Kampagne.', + 'Speichern, validieren und bauen, dann ' + 'prüfen Sie die gelösten Anhang ' + 'Nachweise in Review und senden.'], + 'verification': 'Bestätigen Sie die erwarteten ' + 'Dateinamen, Pfade, ' + 'Übereinstimmungen und den ' + 'Linkstatus in der ' + 'Kampagnen-Benutzeroberfläche. ' + 'Genaue verwaltete Versionen und ' + 'Prüfsummen bleiben in den ' + 'Build-Nachweisen für autorisierte ' + 'Support-Tools gespeichert.'}, + 'campaigns.workflow.view-aggregate-delivery-report': {'outcome': 'Eine Kampagnen-Ergebnisansicht ' + 'auf Geschäftsebene mit ' + 'geschützter Privatsphäre für ' + 'kleine Gruppen und Empfänger.', + 'prerequisites': ['Die Kampagne gehört ' + 'Ihnen oder wird ' + 'ausdrücklich mit Ihnen ' + 'geteilt oder Sie haben ' + 'eine mieterweite ' + 'Autorität.'], + 'steps': ['Öffnen Sie Berichte und wählen ' + 'Sie eine Kampagne aus, die Ihnen ' + 'zur Verfügung steht.', + 'Lesen Sie den angegebenen ' + 'Nenner, bevor Sie akzeptierte, ' + 'fehlgeschlagene, unbekannte, ' + 'aktive, ausgeschlossene, ' + 'abgesagte und unversuchte ' + 'Ergebnisse vergleichen.', + 'Behandeln Sie Suppressed als ' + 'absichtliche Datenschutzgrenze ' + 'und nicht als Null oder fehlende ' + 'Daten.', + 'Fordern Sie nur dann einen ' + 'separat autorisierten Zugriff ' + 'auf Empfängerebene an, wenn die ' + 'Aufgabe tatsächlich individuelle ' + 'Nachweise erfordert.'], + 'verification': 'Keine Zeile, Adresse, ' + 'Nachricht, Anlage, ' + 'Diagnose, Filter, ' + 'Drilldown oder ' + 'Exportaktion ist in der ' + 'Gesamtansicht verfügbar.'}, + 'campaigns.workflow.view-delivery-report': {'outcome': 'Eine empfängerbewusste Ansicht des ' + 'Lieferfortschritts und der Ergebnisse mit ' + 'noch separat geschützter Diagnose.', + 'prerequisites': ['Sie können die ausgewählte ' + 'Kampagne und ihren Bericht lesen.'], + 'steps': ['Öffnen Sie die Kampagne und wählen Sie ' + 'Bericht.', + 'Überprüfen Sie die Gesamtsummen für in die ' + 'Warteschlange gestellte, akzeptierte, ' + 'fehlgeschlagene, abgesagte, ' + 'ausgeschlossene / übersprungene, ' + 'unversuchte und ergebnisunbekannte Jobs.', + 'Überprüfen Sie die autorisierten Zeilen ' + 'auf Empfängerebene und den ' + 'Versuchsverlauf.', + 'Behandeln Sie Outcome-unbekannte Jobs als ' + 'ungelöst und übergeben Sie sie an einen ' + 'autorisierten Betreiber für einen ' + 'evidenzgestützten Abgleich.'], + 'verification': 'Die Berichtssummen und ' + 'Auftragszeilen stimmen mit der ' + 'ausgewählten Kampagnenversion ' + 'überein, und die ' + 'Infrastrukturdiagnose fehlt, sofern ' + 'nicht gesondert genehmigt.'}} diff --git a/src/govoplan_campaign/backend/manifest.py b/src/govoplan_campaign/backend/manifest.py index 9893cdc..e035eb2 100644 --- a/src/govoplan_campaign/backend/manifest.py +++ b/src/govoplan_campaign/backend/manifest.py @@ -1,5 +1,8 @@ from __future__ import annotations +from govoplan_core.core.modules import with_documentation_structured_translations +from govoplan_campaign.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS + from pathlib import Path from govoplan_core.core.access import ( @@ -460,8 +463,8 @@ def _campaigns_router(context: ModuleContext): manifest = ModuleManifest( id="campaigns", name="Campaigns", - version="0.1.25", - workflow_definitions=campaign_workflow_definitions(module_version="0.1.25"), + version="0.1.26", + workflow_definitions=campaign_workflow_definitions(module_version="0.1.26"), required_capabilities=( CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR, @@ -1778,5 +1781,10 @@ manifest = ModuleManifest( ) +manifest = with_documentation_structured_translations( + manifest, locale="de", translations=GERMAN_STRUCTURED_TRANSLATIONS +) + + def get_manifest() -> ModuleManifest: return manifest diff --git a/webui/package.json b/webui/package.json index 1269d67..8bccd6d 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/campaign-webui", - "version": "0.1.25", + "version": "0.1.26", "private": true, "type": "module", "main": "src/index.ts",