feat: add page shell, preferences and translations

Base layout with top bar, role-based menu, profile menu and phone layout; theme, language and German form of address kept in cookies; German formal, German informal and English text; Fluent avatar bundled in the image by a Node build stage; placeholder pages for the Publisher and Admin groups.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3t4WL7bd9bdHHNjEsxzqC
This commit is contained in:
2026-10-17 21:05:40 +02:00
co-authored by Claude Sonnet 5.5
parent 3c69c2a156
commit 0dc079a8ac
34 changed files with 2132 additions and 24 deletions
+109
View File
@@ -0,0 +1,109 @@
# German, formal address (Sie)
msgid ""
msgstr ""
"Project-Id-Version: self-service-portal\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "No permission"
msgstr "Keine Berechtigung"
msgid "You do not have permission to open this page."
msgstr "Dazu fehlt Ihnen die Berechtigung."
msgid "Back to the portal"
msgstr "Zurück zum Portal"
msgid "Home"
msgstr "Startseite"
#, python-format
msgid "Hello, %(name)s"
msgstr "Guten Tag, %(name)s"
msgid "You are signed in. More pages will follow here."
msgstr "Sie sind angemeldet. Weitere Seiten folgen hier."
msgid "Sign-in not possible"
msgstr "Anmeldung nicht möglich"
msgid "You cannot sign in to the portal with this account. If you think this is a mistake, contact your administrator."
msgstr "Mit diesem Konto können Sie sich nicht am Portal anmelden. Wenn Sie glauben, dass das ein Fehler ist, wenden Sie sich an die Administration."
msgid "Try again"
msgstr "Erneut versuchen"
msgid "Signed out"
msgstr "Abgemeldet"
msgid "You have been signed out"
msgstr "Sie wurden abgemeldet."
msgid "Sign in again"
msgstr "Erneut anmelden"
msgid "Not available"
msgstr "Nicht verfügbar"
msgid "This is not possible right now. Please try again later."
msgstr "Das ist gerade nicht möglich. Bitte versuchen Sie es später erneut."
msgid "Skip to content"
msgstr "Zum Inhalt springen"
msgid "Menu"
msgstr "Menü"
msgid "Profile menu"
msgstr "Profilmenü"
msgid "Main menu"
msgstr "Hauptmenü"
msgid "Theme"
msgstr "Design"
msgid "Language"
msgstr "Sprache"
msgid "Form of address"
msgstr "Anrede"
msgid "Sign out"
msgstr "Abmelden"
msgid "This page is not available yet."
msgstr "Diese Seite folgt."
msgid "Light"
msgstr "Hell"
msgid "Dark"
msgstr "Dunkel"
msgid "System"
msgstr "System"
msgid "Publishing"
msgstr "Veröffentlichen"
msgid "Manage announcements"
msgstr "Ankündigungen verwalten"
msgid "Administration"
msgstr "Administration"
msgid "Appearance"
msgstr "Darstellung"
msgid "Settings"
msgstr "Einstellungen"
msgid "Audit log"
msgstr "Protokoll"
msgid "Status"
msgstr "Status"
+28
View File
@@ -0,0 +1,28 @@
# German, informal address (du); only the differences, the rest falls back to de
msgid ""
msgstr ""
"Project-Id-Version: self-service-portal\n"
"Language: de_DU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "You do not have permission to open this page."
msgstr "Dazu fehlt dir die Berechtigung."
#, python-format
msgid "Hello, %(name)s"
msgstr "Hallo, %(name)s"
msgid "You are signed in. More pages will follow here."
msgstr "Du bist angemeldet. Weitere Seiten folgen hier."
msgid "You cannot sign in to the portal with this account. If you think this is a mistake, contact your administrator."
msgstr "Mit diesem Konto kannst du dich nicht am Portal anmelden. Wenn du glaubst, dass das ein Fehler ist, wende dich an die Administration."
msgid "You have been signed out"
msgstr "Du wurdest abgemeldet."
msgid "This is not possible right now. Please try again later."
msgstr "Das ist gerade nicht möglich. Bitte versuche es später erneut."