feat(admin): separate language package lifecycle

This commit is contained in:
2026-08-20 05:48:47 +02:00
parent a1d7b649aa
commit 89ba59fcea
10 changed files with 523 additions and 138 deletions
+6 -3
View File
@@ -129,16 +129,18 @@ manifest = ModuleManifest(
title="Manage reference language and language packages",
summary="German is the reference and new-installation default while configured tenant and user language choices remain effective.",
body=(
"German is the first-class product acceptance language and the default for a new system or tenant. English remains installed as the source-code fallback. System administrators control available and enabled language packages and the system default; tenant and user choices can select only languages allowed above them. Existing explicit preferences are preserved when this baseline is introduced. Disabling a language must not discard translated content or silently rewrite a stored preference."
"German is the first-class product acceptance language and the default for a new system or tenant. English remains installed as the source-code fallback. The dedicated Language packages administration surface separates package installation, activation, deactivation, uninstall eligibility, and the default for newly created tenants from general system settings. Its compatibility matrix derives each package state from the installed module ID, exact module version, and available runtime translation catalog; a missing catalog is shown as incompatible rather than treated as translated. German, English, and the active default cannot be uninstalled. System administrators control available and enabled language packages and the system default; tenant and user choices can select only languages allowed above them. Existing explicit preferences are preserved when this baseline is introduced. Disabling a language must not discard translated content or silently rewrite a stored preference."
),
documentation_types=("admin",),
audience=("system_admin", "tenant_admin"),
related_modules=("tenancy", "access", "docs"),
metadata={
"kind": "reference",
"route": "/admin?section=system-language-packages",
"screen": "Language packages",
"help_contexts": [
"admin.system-settings.locale",
"admin.system-settings.languages",
"admin.system-language-packages",
"admin.system-language-packages.compatibility",
],
},
),
@@ -229,6 +231,7 @@ manifest = ModuleManifest(
view_surfaces=(
ViewSurface(id="admin.section.overview", module_id="admin", kind="section", label="Administration overview", order=0),
ViewSurface(id="admin.section.system-settings", module_id="admin", kind="section", label="System settings", order=10),
ViewSurface(id="admin.section.system-language-packages", module_id="admin", kind="section", label="Language packages", order=15),
ViewSurface(id="admin.section.system-configuration-changes", module_id="admin", kind="section", label="Configuration changes", order=20),
ViewSurface(id="admin.section.system-configuration-packages", module_id="admin", kind="section", label="Configuration packages", order=30),
ViewSurface(id="admin.section.system-role-templates", module_id="admin", kind="section", label="Role templates", order=40),