feat(18-03): Task 2 — Einstellungsseite Desktop-App mit Knoepfen, Groesse und Erklaerung

- Neue Route /settings/general/desktop (DesktopSettingsPage)
- DesktopAppSettings: Version, zwei Primaerknoepfe mit Plattform-Symbol,
  Dateiname/Groesse je Knopf, Beta-Kanal-Hinweis, vier erklaerende Saetze,
  Hinweistext wenn keine Pakete hinterlegt sind
- Seitenleiste: Eintrag "Desktop-App" unter "Allgemein"
- de/en: settings.categoryDesktopApp, settings.desktop.*
- umlaut-dictionary.ts: "neuere" zur Allowlist ergaenzt (Rule 1 —
  Waechter-Test brach an einer bereits korrekten Umlautschreibung, die
  zufaellig die Buchstabenfolge "ue" enthaelt)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-16 16:30:34 +02:00
parent 026d9c39af
commit e96d460b8e
7 changed files with 290 additions and 0 deletions
+14
View File
@@ -132,6 +132,7 @@
"categoryCalendar": "Calendar",
"categoryGeneral": "General",
"categoryAccount": "Account",
"categoryDesktopApp": "Desktop App",
"categorySmtp": "SMTP",
"account": {
"title": "Account",
@@ -152,6 +153,19 @@
"deleteAvatarSuccess": "Profile picture deleted successfully.",
"deleteAvatarError": "Failed to delete picture."
},
"desktop": {
"title": "Desktop App",
"intro": "The desktop app opens Tessera in its own window – no browser, with an icon in the notification area of the taskbar.",
"firstStart": "On first start the app asks for the address of your Tessera server; it is the address you also use to open Tessera in the browser.",
"tray": "If you close the window, Tessera keeps running in the notification area; use the icon there to reopen the window, enable automatic start, or quit the app.",
"update": "When a newer version is available the app notifies you and brings you to this page.",
"versionLabel": "Current version: {version}",
"channelBeta": "Beta build, commit {commit}",
"downloadWindows": "Download for Windows",
"downloadLinux": "Download for Linux",
"fileInfo": "{name} · {size}",
"unavailable": "No desktop packages are available on this server yet."
},
"sourceDeleteConfirm": "Are you sure you want to delete this calendar source?",
"sourceDeleteCta": "Delete source",
"providerDeleteConfirm": "Are you sure you want to delete this search provider?",