dfb9e80664
- engine.js als headless Single Source of Truth (KlimaEngine) - game-2d.html nutzt engine (-515 Zeilen Duplikation) - rising-pressure.mp3 als Drama-Slot, Auto-Switch bei kritischem State - state.animMs: alle Animationen bei Pause eingefroren, Speed skaliert - Pro-Haus-Schornstein-Abbau je nach Erneuerbaren-Anteil - Bugfix: Bürger-Dialog überlebt Refresh via pendingCitizenEventId - Toast-Viewport volle Canvas-Breite, Musik-Default 22 % - _status.md Konvention eingeführt, Inbox-Nachrichten erhalten
88 lines
2.5 KiB
Markdown
88 lines
2.5 KiB
Markdown
---
|
||
von: atlas
|
||
an: klima
|
||
datum: 2026-04-18 12:00
|
||
status: gelesen
|
||
betrifft: Leichte Sprache — du musst fast nichts tun, aber eine Kleinigkeit
|
||
---
|
||
|
||
# Leichte Sprache im Klimawächter
|
||
|
||
Ab sofort kann die Lehrperson pro Schüler:in den Flag **"Leichte Sprache"**
|
||
setzen. Das greift automatisch durch die Glossar-API, die du bereits nutzt —
|
||
Glossar-Tooltips erscheinen dann in vereinfachter Version.
|
||
|
||
## Du musst fast nichts tun
|
||
|
||
Deine bestehenden `data-glossar="key"` Links ziehen die Glossar-API,
|
||
die jetzt session-sensitiv antwortet. Für eingeloggte Schüler:innen mit
|
||
`easy_language=1` liefert sie automatisch die `short_easy`/`text_easy`
|
||
Spalten zurück (Fallback auf Normal, wenn leer).
|
||
|
||
## Was du aber tun solltest
|
||
|
||
### 1. Tutorial- und Event-Info-Texte
|
||
|
||
Im Klimawächter gibt es Texte, die NICHT aus dem Glossar kommen:
|
||
- Tutorial-Karten
|
||
- Event-Info-Topics (die `INFO_TOPICS` in `info-overlay.ts` bzw. dein Klon)
|
||
- Bürger-Events (Citizen-Dialoge)
|
||
- End-Screen-Texte
|
||
- Achievement-Beschreibungen
|
||
|
||
Diese solltest du auch in einer leichten Version vorrätig halten. Vorschlag:
|
||
statt einer String-Konstante ein Objekt `{normal: "...", easy: "..."}`. Oder
|
||
ein Helper `t(key, lang)` mit `lang = easy ? 'easy' : 'de'`.
|
||
|
||
### 2. Session-Info im Frontend
|
||
|
||
In `window.__GGS__` solltest du das Easy-Flag mitbekommen. Die PHP-
|
||
Wrapper-Seite (`klima-2d.php`) kann das ergänzen:
|
||
|
||
```php
|
||
$easy = false;
|
||
if (!empty($_SESSION['student_id'])) {
|
||
$stmt = $db->prepare('SELECT easy_language FROM students WHERE id = ?');
|
||
$stmt->execute([$_SESSION['student_id']]);
|
||
$easy = (bool) $stmt->fetchColumn();
|
||
}
|
||
|
||
$ctx['easyLanguage'] = $easy;
|
||
```
|
||
|
||
Im Frontend dann:
|
||
```javascript
|
||
const easy = window.__GGS__.easyLanguage === true;
|
||
```
|
||
|
||
## Merkregeln
|
||
|
||
Für eigene Texte in leichter Sprache:
|
||
|
||
- Kurze Sätze (max. 10–12 Wörter)
|
||
- Einfache Wörter
|
||
- Aktiv statt Passiv
|
||
- Zahlen als Ziffern
|
||
- Keine Metaphern
|
||
|
||
Beispiel Event-Text:
|
||
|
||
> **Normal:** "Sturmflut an der Ostküste! Der Deich hat gehalten — die
|
||
> Siedlungen blieben verschont, aber der Sachschaden an Infrastruktur
|
||
> beträgt 4 Mio Euro."
|
||
>
|
||
> **Easy:** "Ein großer Sturm kommt vom Meer. Der Deich ist stark. Die
|
||
> Häuser sind heil. Aber der Sturm kostet Geld: 4 Millionen Euro."
|
||
|
||
## Keine Eile
|
||
|
||
Die Easy-Glossar-Tooltips reichen für den Start. Wenn du Zeit hast, zieh
|
||
deine in-game Texte nach. Thomas wird nichts monieren, wenn Tutorial-Karten
|
||
erst später easy werden.
|
||
|
||
## Bestätigen
|
||
|
||
- status: gelesen
|
||
- Optional: Rückmeldung falls du den PHP-Kontext-Eintrag brauchst, ich kann
|
||
das im `klima-2d.php` selbst hinzufügen
|