# Technische Details zur Oberfläche und Speicherung Die Bedienungstexte richten sich an Kinder und Menschen ohne technische Vorkenntnisse. Die verbindliche Sprachregel steht in `AGENTS.md`. Technische Details bleiben in der Entwicklungsdokumentation. - App: statisches HTML/CSS und JavaScript; jQuery 4.0.0 für DOM-Zugriff, Ereignisse und API-Anfragen; jQuery UI 1.14.2 für Bedienelemente. - Die Bibliotheken werden lokal vom Wegwichtel-Server ausgeliefert. - Fortschritt: Local Storage unter `wegwichtel.privacy.v1` (Opt-in) und `wegwichtel.route-progress.v1` (Fortschritt). Bereinigung nach 24 Stunden ohne Aktualisierung; Ausschalten löscht den Fortschritt sofort. - Lokale Entwürfe: GPX und JSON unter `wegwichtel.local-routes.v1.*`; Medien über Dateireferenzen oder IndexedDB. Keine 24-Stunden-Bereinigung. - App-Offline-Dateien und ausdrücklich ausgewählte Strecken: OPFS mit CacheStorage als Fallback, bereitgestellt über den Service Worker. - GPX-Export: unverändertes GPX-Format, in der Oberfläche „Weg als Datei herunterladen“. - Speicheranzeige: geschätzte Website-Quote über StorageManager sowie eine separate Näherung für Local Storage. Letztere ist keine ermittelte Maximalquote. Größen werden in dezimalen MB angezeigt; der Referenzbalken für Local Storage bleibt bei 5 MiB (ungefähr 5 MB). - Geräteschnittstellen: Geolocation, Device Orientation, Vibration, HTML-Audio, File System Access, IndexedDB, FileReader und History. - Technische Fehler werden vor der Anzeige durch `public/js/user-messages.js` in verständliche Hinweise übersetzt. HTTP-Status und Fehlerobjekte bleiben für die interne Verarbeitung erhalten. Kontaktdaten und rechtliche Inhalte der Informationsseiten wurden sprachlich vereinfacht. Die Hinweise auf noch fehlende Betreiberangaben bleiben enthalten. ## Übersetzungen `WegwichtelTextsDe` in `public/js/texts-de.js` enthält die deutschen Texte. `WegwichtelI18n` in `public/js/i18n.js` stellt die Übersetzungsfunktion bereit. Beide Dateien werden vor den übrigen App-Skripten geladen und gehören auch zum App-Offline-Paket. ```js Wegwichtel.I18n.t('app.strecke.wahlen'); Wegwichtel.I18n.t('media.image.count', { count: 2 }); Wegwichtel.I18n.register('en', { 'app.strecke.wahlen': 'Choose a trail', 'media.image.count': { one: '{count} picture', other: '{count} pictures' } }); Wegwichtel.I18n.setLanguage('en'); ``` Platzhalter werden als Text ersetzt. HTML-Texte und vorgelesene Beschriftungen werden über `data-i18n`-Attribute zugeordnet; der Renderer verwendet `textContent` und `setAttribute`, kein übersetztes HTML. In HTML-Templates erzeugte Texte sind wie andere Textinhalte zu maskieren. Nutzerinhalte werden nicht übersetzt. Die App startet weiterhin auf Deutsch. Weitere Sprachen und ein sichtbarer Sprachschalter sind noch nicht enthalten. `setLanguage` lokalisiert die festen HTML-Beschriftungen; dynamische Texte werden bei ihrem nächsten Aufbau übersetzt. Bei einem Sprachschalter müssen die aktuellen Ansichten zusätzlich neu gerendert werden. Fehlende einzelne Übersetzungen und unbekannte Sprachen fallen auf Deutsch zurück. Ein fehlender deutscher Textschlüssel wirft einen internen Fehler, damit fehlerhafte Zuordnungen nicht unbemerkt bleiben. Gruppen verwenden nach dem Öffnen oder Beitritt ein HttpOnly-/SameSite-Strict- Sitzungscookie, bei HTTPS mit Secure, Laufzeit höchstens 30 Tage. Die Datenbank hält nur den Hash sowie creator_id und Mitgliedschaften. Die deaktivierte Option für optionale Cookies betrifft keine notwendigen Gruppensitzungen.