From aba6280f21493d5f72db76a914a1b8c1ed8cc259 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Mon, 24 Aug 2026 01:15:37 +0200 Subject: [PATCH] docs: complete German structured documentation --- pyproject.toml | 2 +- src/govoplan_postbox/__init__.py | 2 +- .../german_structured_documentation.py | 137 ++++++++++++++++++ src/govoplan_postbox/backend/manifest.py | 10 +- webui/package.json | 2 +- 5 files changed, 149 insertions(+), 4 deletions(-) create mode 100644 src/govoplan_postbox/backend/german_structured_documentation.py diff --git a/pyproject.toml b/pyproject.toml index 065dec7..69bf1b7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-postbox" -version = "0.1.19" +version = "0.1.20" description = "Function-bound institutional postboxes for GovOPlaN." readme = "README.md" requires-python = ">=3.12" diff --git a/src/govoplan_postbox/__init__.py b/src/govoplan_postbox/__init__.py index 6b6c84b..b39acf7 100644 --- a/src/govoplan_postbox/__init__.py +++ b/src/govoplan_postbox/__init__.py @@ -1,3 +1,3 @@ """GovOPlaN Postbox module.""" -__version__ = "0.1.19" +__version__ = "0.1.20" diff --git a/src/govoplan_postbox/backend/german_structured_documentation.py b/src/govoplan_postbox/backend/german_structured_documentation.py new file mode 100644 index 0000000..1c25a23 --- /dev/null +++ b/src/govoplan_postbox/backend/german_structured_documentation.py @@ -0,0 +1,137 @@ +"""German translations for public structured documentation metadata.""" + +from __future__ import annotations + +from typing import Any + + +GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'postbox.content-protection-policy': {'privacy_notes': ['E2EE schützt Inhalte, nicht operative ' + 'Metadaten.', + 'Verwaltete Umschläge sind von ' + 'autorisierten institutionellen ' + 'Schlüsselinhabern entschlüsselbar.', + 'Profilübergänge bewahren ' + 'Autoritätsnachweise und inhaltliche ' + 'Kontinuität.']}, + 'postbox.function-bound-containers': {'privacy_notes': ['Der Verzeichniszugriff wird aus ' + 'aktuellen effektiven ' + 'Funktionszuweisungen abgeleitet.', + 'Nicht verfügbare Nachrichtenzustände ' + 'zeigen nur gespeicherte Audit-Metadaten ' + 'an, die der aktuell handelnden Person ' + 'erlaubt sind.', + 'Themen, Teilnehmer, Routing-Fakten und ' + 'Anhangreferenzen bleiben beobachtbare ' + 'Metadaten.']}, + 'postbox.lifecycle-notifications': {'privacy_notes': ['Lifecycle-Benachrichtigungen enthalten ' + 'niemals Nachrichten- oder Anhanginhalte.', + 'Der aktuelle Zugriff wird erneut ' + 'überprüft, wenn ein Benachrichtigungslink ' + 'geöffnet wird.', + 'Benachrichtigungen besitzen Präferenz und ' + 'Durchsetzung externer Kanäle.']}, + 'postbox.privacy.data-subject-requests': {'limitations': ['Verschlüsselte Inhalte werden vom ' + 'Schutzstaat gemeldet, aber nicht vom ' + 'Anbieter entschlüsselt oder ' + 'exportiert.', + 'Attachment-Nutzlasten, ' + 'Produzentendatensätze, ' + 'Identitätsdatensätze und ' + 'Zuweisungsdatensätze verbleiben bei ' + 'ihren eigenen Modulen.'], + 'steps': ['Führen Sie den Postbox-Anbieter aus und ' + 'überprüfen Sie Nachricht, Teilnehmer, ' + 'Empfang, Gruppierung, Zugriff und ' + 'Governance-Dispositionen.', + 'Bewahren Sie die institutionelle Lieferung, ' + 'das Routing, die Bestätigung, den Zugang und ' + 'die Schutznachweise mit dem Grund auf.', + 'Überprüfen Sie Klartextinhalte auf Daten von ' + 'Drittanbietern und entsprechende Datensätze ' + 'oder halten Sie Richtlinien vor einer ' + 'separaten Lifecycle-Aktion.', + 'Führen Sie das Löschen von ' + 'Personengruppierungen nur aus einem neuen ' + 'Plan aus; überprüfen Sie, ob die ' + 'Quellpostfächer und Nachrichten unverändert ' + 'bleiben.']}, + 'postbox.reference.fields-and-consequences': {'consequence_classes': {'archive_postbox': 'Stoppt ' + 'neue ' + 'Lieferung, ' + 'während ' + 'Nachrichten, ' + 'Quittungen ' + 'und ' + 'Nachweise ' + 'beibehalten ' + 'werden.', + 'delete_grouping': 'Löscht ' + 'nur die ' + 'persönliche ' + 'Projektion; ' + 'Quellpostfächer ' + 'und ' + 'Nachrichten ' + 'bleiben ' + 'unverändert.', + 'preview_template': 'Lies ' + 'die ' + 'aktuelle ' + 'Organisation, ' + 'Hierarchie ' + 'und ' + 'den ' + 'Status ' + 'der ' + 'Amtsinhaber, ' + 'ohne ' + 'eine ' + 'Adresse ' + 'oder ' + 'Postbox ' + 'zu ' + 'materialisieren.', + 'publish_template': 'Friert ' + 'eine ' + 'unveränderliche ' + 'Adress- ' + 'und ' + 'Routing-Revision ' + 'für ' + 'zukünftige ' + 'Materialisierung ' + 'ein.', + 'retire_template': 'Stoppt ' + 'neue ' + 'Revisionen ' + 'und ' + 'Materialisierungen, ' + 'während ' + 'bestehende ' + 'Adressen ' + 'beibehalten ' + 'werden.', + 'route_copy': 'Erstellt ' + 'einen ' + 'separat ' + 'aufbewahrten ' + 'Liefer- und ' + 'Beweisdatensatz ' + 'bei jedem ' + 'begrenzten ' + 'Ziel.', + 'withdraw_or_expire': 'Blockiert ' + 'den ' + 'Zugriff ' + 'auf ' + 'zukünftige ' + 'Inhalte, ' + 'während ' + 'erlaubte ' + 'Audit-Metadaten ' + 'beibehalten ' + 'werden.'}}, + 'postbox.unified-inbox-policy': {'privacy_notes': ['Versteckte Gruppierungsquellen zeigen keine ' + 'Metadaten oder Zählungen.', + 'Ein View wählt eine Projektion aus, gewährt ' + 'jedoch niemals Postbox-Zugriff.']}} diff --git a/src/govoplan_postbox/backend/manifest.py b/src/govoplan_postbox/backend/manifest.py index ad223e4..c4f6c7c 100644 --- a/src/govoplan_postbox/backend/manifest.py +++ b/src/govoplan_postbox/backend/manifest.py @@ -1,5 +1,8 @@ from __future__ import annotations +from govoplan_core.core.modules import with_documentation_structured_translations +from govoplan_postbox.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS + from pathlib import Path from govoplan_core.core.access import ( @@ -72,7 +75,7 @@ from govoplan_postbox.backend.permissions import ( MODULE_ID = "postbox" MODULE_NAME = "Postbox" -MODULE_VERSION = "0.1.19" +MODULE_VERSION = "0.1.20" def _permission(scope: str, label: str, description: str) -> PermissionDefinition: @@ -1048,5 +1051,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 82f3bf6..57e1726 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/postbox-webui", - "version": "0.1.19", + "version": "0.1.20", "private": true, "type": "module", "main": "src/index.ts",