65 lines
3.5 KiB
Markdown
65 lines
3.5 KiB
Markdown
# 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.
|