From ae0f3990f1c86d883760c04571bd1dcac03ebb2a Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Mon, 24 Aug 2026 01:15:31 +0200 Subject: [PATCH] docs: complete German structured documentation --- package.json | 2 +- pyproject.toml | 2 +- src/govoplan_calendar/__init__.py | 2 +- .../german_structured_documentation.py | 112 ++++++++++++++++++ src/govoplan_calendar/backend/manifest.py | 10 +- webui/package.json | 2 +- 6 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 src/govoplan_calendar/backend/german_structured_documentation.py diff --git a/package.json b/package.json index 72f4218..803f17b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/calendar-webui", - "version": "0.1.20", + "version": "0.1.21", "private": true, "type": "module", "main": "webui/src/index.ts", diff --git a/pyproject.toml b/pyproject.toml index 89e8dd6..2053182 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-calendar" -version = "0.1.20" +version = "0.1.21" description = "GovOPlaN calendar module with VEVENT storage and WebUI integration." readme = "README.md" requires-python = ">=3.12" diff --git a/src/govoplan_calendar/__init__.py b/src/govoplan_calendar/__init__.py index d6aaa8d..67cd43d 100644 --- a/src/govoplan_calendar/__init__.py +++ b/src/govoplan_calendar/__init__.py @@ -2,4 +2,4 @@ __all__ = ["__version__"] -__version__ = "0.1.20" +__version__ = "0.1.21" diff --git a/src/govoplan_calendar/backend/german_structured_documentation.py b/src/govoplan_calendar/backend/german_structured_documentation.py new file mode 100644 index 0000000..5fd5491 --- /dev/null +++ b/src/govoplan_calendar/backend/german_structured_documentation.py @@ -0,0 +1,112 @@ +"""German translations for public structured documentation metadata.""" + +from __future__ import annotations + +from typing import Any + + +GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'calendar.external-sources-and-sync': {'consequence_classes': {'change_collection': 'Änderung der ' + 'Kalenderidentität, ' + 'Quellkonfiguration, ' + 'Anmeldeinformationen ' + 'und ' + 'Synchronisierungsrichtlinie', + 'delete_or_remove_collection': 'Löschen ' + 'eines ' + 'lokalen ' + 'Kalenders ' + 'oder ' + 'Entfernen ' + 'einer ' + 'externen ' + 'Quelle ' + 'nach ' + 'expliziter ' + 'Ereignisbehandlung', + 'execute_remote_move': 'Kopieren ' + 'aller ' + 'Zielressourcen ' + 'vor dem ' + 'bedingten ' + 'Löschen ' + 'von ' + 'Quellressourcen', + 'force_full_sync': 'Lesen Sie die ' + 'vollständige ' + 'Remote-Quelle ' + 'erneut und ' + 'versöhnen Sie ' + 'sie mit dem ' + 'lokalen Staat', + 'synchronize_source': 'Lesen und, ' + 'wo ' + 'konfiguriert, ' + 'Schreiben ' + 'des ' + 'Remote-Zustands ' + 'unter ' + 'Verwendung ' + 'von ' + 'Begrenzten ' + 'Synchronisationsnachweisen'}}, + 'calendar.manage-calendars-and-events': {'consequence_classes': {'delete_event': 'Löschen des ' + 'ausgewählten ' + 'Ereignisses ' + 'oder der ' + 'ausgewählten ' + 'Serie und ' + 'Synchronisieren ' + 'der ' + 'Warteschlange ' + 'bei Bedarf', + 'save_event': 'Erstellen oder ' + 'Aktualisieren des ' + 'maßgeblichen ' + 'Ereignisses und ' + 'Synchronisieren ' + 'der Warteschlange ' + 'bei Bedarf'}}, + 'calendar.outbound-change-recovery': {'consequence_classes': {'reconcile_outbox': 'Vergleichen ' + 'Sie die ' + 'neueste ' + 'gewünschte ' + 'Generation mit ' + 'dem ' + 'Remote-Zustand, ' + 'bevor Sie ' + 'erneut ' + 'versuchen oder ' + 'verwerfen'}}, + 'calendar.privacy.data-subject-requests': {'limitations': ['Rohe ICS und Steckverbinder-Locatoren ' + 'sind nicht in den JSON-Export ' + 'eingebettet; autorisierte ' + 'Kalenderüberprüfung bleibt ' + 'verbindlich.', + 'Event- und Teilnehmerlöschung ist ' + 'manuell, da sich Wiederholung, ' + 'gemeinsame Teilnahme, externe ' + 'Synchronisierung und institutionelle ' + 'Bindung überschneiden können.'], + 'prerequisites': ['Die Datenschutzanfrage und die ' + 'Kalenderauswahl wurden unabhängig ' + 'autorisiert und bestätigt.', + 'Der Rezensent versteht die ' + 'effektiven Kalenderspeicherungs- ' + 'und ' + 'Synchronisationsnachweispflichten.'], + 'steps': ['Führen Sie die Kalenderanbietersuche aus ' + 'und überprüfen Sie die isolierten ' + 'Ereignis-, Teilnahme-, Präferenz-, ' + 'Synchronisierungs-, Outbox- und ' + 'Migrationsdatensätze.', + 'Bewahren Sie alle Gründe für die ' + 'Aufbewahrung von Nachweisen mit der ' + 'Fallentscheidung auf und koordinieren Sie ' + 'jede Inhaltsänderung durch ' + 'Kalender-Lebenszykluskontrollen.', + 'Führen Sie nur eine genehmigte Löschung der ' + 'persönlichen Ansichtspräferenz aus.', + 'Überprüfen Sie die zugehörigen ' + 'Terminplanungs- oder E-Mail-Datensätze über ' + 'ihre eigenen DSAR-Anbieter, wenn diese ' + 'Module installiert sind.']}} diff --git a/src/govoplan_calendar/backend/manifest.py b/src/govoplan_calendar/backend/manifest.py index d8c7250..d1f2590 100644 --- a/src/govoplan_calendar/backend/manifest.py +++ b/src/govoplan_calendar/backend/manifest.py @@ -1,5 +1,8 @@ from __future__ import annotations +from govoplan_core.core.modules import with_documentation_structured_translations +from govoplan_calendar.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS + from dataclasses import replace from pathlib import Path @@ -615,7 +618,7 @@ def _open_xchange_provider_states(context): manifest = ModuleManifest( id="calendar", name="Calendar", - version="0.1.20", + version="0.1.21", required_capabilities=( CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR, @@ -1208,5 +1211,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 f826e80..16b551a 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/calendar-webui", - "version": "0.1.20", + "version": "0.1.21", "private": true, "type": "module", "main": "src/index.ts",