Files
Wegwichtel/docs/technische-speicherung.md
Florian Zumpe 31768ae907
Sonarqube Scanner / Prepare environment (push) Successful in 6s
Sonarqube Scanner / Build and test (push) Successful in 27s
Sonarqube Scanner / Deploy to Server (push) Failing after 7s
Sonarqube Scanner / SonarQube analysis (push) Failing after 1m14s
group editor implemented
2026-10-18 16:33:12 +02:00

3.5 KiB

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.

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.