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": "Kalender",
"categoryGeneral": "Allgemein",
"categoryAccount": "Konto",
"categoryDesktopApp": "Desktop-App",
"categorySmtp": "SMTP",
"account": {
"title": "Konto",
@@ -152,6 +153,19 @@
"deleteAvatarSuccess": "Profilbild erfolgreich gelöscht.",
"deleteAvatarError": "Löschen fehlgeschlagen."
},
"desktop": {
"title": "Desktop-App",
"intro": "Die Desktop-App öffnet Tessera in einem eigenen Fenster – ohne Browser, mit Symbol im Infobereich der Taskleiste.",
"firstStart": "Beim ersten Start fragt die App nach der Adresse Ihres Tessera-Servers; das ist die Adresse, unter der Sie Tessera auch im Browser öffnen.",
"tray": "Schließen Sie das Fenster, läuft Tessera im Infobereich weiter; über das Symbol dort öffnen Sie das Fenster wieder, schalten den automatischen Start ein oder beenden die App.",
"update": "Erscheint eine neuere Version, weist die App Sie darauf hin und führt Sie auf diese Seite.",
"versionLabel": "Aktuelle Version: {version}",
"channelBeta": "Beta-Ausgabe, Stand {commit}",
"downloadWindows": "Für Windows herunterladen",
"downloadLinux": "Für Linux herunterladen",
"fileInfo": "{name} · {size}",
"unavailable": "Auf diesem Server sind derzeit keine Desktop-Pakete hinterlegt."
},
"sourceDeleteConfirm": "Möchten Sie diese Kalenderquelle wirklich löschen?",
"sourceDeleteCta": "Quelle löschen",
"providerDeleteConfirm": "Möchten Sie diesen Suchanbieter wirklich löschen?",
+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?",
@@ -114,6 +114,7 @@ export const UMLAUT_ALLOWLIST: readonly string[] = [
'Energiequellen',
'neue',
'neuen',
'neuere',
'Neue',
'Neues',
'aktuelle',