feat: use proper German umlauts in UI and score reasons
This commit is contained in:
parent
2f5a97aa62
commit
a0b1c76d14
3 changed files with 15 additions and 15 deletions
|
|
@ -196,7 +196,7 @@ def collect_local_event_factors(lat: float, lon: float, night_end: dt.datetime)
|
|||
|
||||
event_type = row["event_type"]
|
||||
label = {
|
||||
"waste": "Muellabfuhr am Morgen",
|
||||
"waste": "Müllabfuhr am Morgen",
|
||||
"market": "Marktbetrieb am Morgen",
|
||||
"event": "Lokale Veranstaltung",
|
||||
"construction": "Baustelle",
|
||||
|
|
@ -239,7 +239,7 @@ def collect_community_factors(spot_id: str, at_time: dt.datetime) -> list[dict]:
|
|||
|
||||
buckets = {
|
||||
"knock": {"base": -25.0, "half_life": 10.0, "window": 30, "label": "Klopfen gemeldet"},
|
||||
"noise": {"base": -15.0, "half_life": 7.0, "window": 14, "label": "Laerm gemeldet"},
|
||||
"noise": {"base": -15.0, "half_life": 7.0, "window": 14, "label": "Lärm gemeldet"},
|
||||
"calm": {"base": 10.0, "half_life": 7.0, "window": 14, "label": "Ruhig gemeldet"},
|
||||
"police": {"base": -18.0, "half_life": 10.0, "window": 30, "label": "Polizei-Einsatz gemeldet"},
|
||||
}
|
||||
|
|
|
|||
16
src/app.js
16
src/app.js
|
|
@ -71,7 +71,7 @@ function initialize() {
|
|||
legalOutputEl.textContent = "MVP-Hinweis: Impressum im Produktionsbetrieb verpflichtend mit Anbieterkennzeichnung.";
|
||||
});
|
||||
|
||||
// Pilotwert fuer Mettmann, falls noch keine Eingabe.
|
||||
// Pilotwert für Mettmann, falls noch keine Eingabe.
|
||||
if (!latEl.value && !lonEl.value) {
|
||||
latEl.value = "51.2500";
|
||||
lonEl.value = "6.9730";
|
||||
|
|
@ -136,12 +136,12 @@ async function checkApiHealth() {
|
|||
}
|
||||
|
||||
function renderQueueStatus() {
|
||||
queueStatusEl.textContent = `Queue: ${signalQueue.length} ausstehend`;
|
||||
queueStatusEl.textContent = `Warteschlange: ${signalQueue.length} ausstehend`;
|
||||
}
|
||||
|
||||
async function fillLocationFromDevice() {
|
||||
if (!navigator.geolocation) {
|
||||
alert("Geolocation wird auf diesem Geraet nicht unterstuetzt.");
|
||||
alert("Geolocation wird auf diesem Gerät nicht unterstützt.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -177,7 +177,7 @@ async function loadScore() {
|
|||
const lat = Number(latEl.value);
|
||||
const lon = Number(lonEl.value);
|
||||
if (!Number.isFinite(lat) || !Number.isFinite(lon)) {
|
||||
alert("Bitte gueltige Koordinaten eingeben.");
|
||||
alert("Bitte gültige Koordinaten eingeben.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ async function loadScore() {
|
|||
currentSpot = cached.payload;
|
||||
renderScore(cached.payload, true, cached.fetchedAt);
|
||||
} else {
|
||||
signalStatusEl.textContent = "Kein Live-Score und kein Cache fuer diesen Spot vorhanden.";
|
||||
signalStatusEl.textContent = "Kein Live-Score und kein Cache für diesen Spot vorhanden.";
|
||||
}
|
||||
} finally {
|
||||
loadScoreEl.disabled = false;
|
||||
|
|
@ -217,7 +217,7 @@ function renderScore(data, fromCache, cacheTime = "") {
|
|||
|
||||
ampelEl.classList.remove("green", "yellow", "red");
|
||||
ampelEl.classList.add(data.ampel);
|
||||
ampelEl.textContent = data.ampel === "green" ? "Gruen" : data.ampel === "yellow" ? "Gelb" : "Rot";
|
||||
ampelEl.textContent = data.ampel === "green" ? "Grün" : data.ampel === "yellow" ? "Gelb" : "Rot";
|
||||
|
||||
nightWindowEl.textContent = `Bezug: ${toLocal(data.night_window.start)} bis ${toLocal(data.night_window.end)}`;
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ async function sendSignal(signalType) {
|
|||
}
|
||||
signalQueue.push(signal);
|
||||
saveJSON(SIGNAL_QUEUE_KEY, signalQueue);
|
||||
signalStatusEl.textContent = `Offline/Fehler: Signal '${signalType}' gequeued.`;
|
||||
signalStatusEl.textContent = `Offline/Fehler: Signal '${signalType}' zwischengespeichert.`;
|
||||
renderQueueStatus();
|
||||
}
|
||||
}
|
||||
|
|
@ -323,7 +323,7 @@ async function flushSignalQueue() {
|
|||
renderQueueStatus();
|
||||
|
||||
if (!keep.length && pending.length) {
|
||||
signalStatusEl.textContent = "Alle gequeueten Signale wurden synchronisiert.";
|
||||
signalStatusEl.textContent = "Alle zwischengespeicherten Signale wurden synchronisiert.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<header class="top">
|
||||
<h1>StaySense</h1>
|
||||
<p>Kreis Mettmann Pilot: ruhige Nacht in weniger als 10 Sekunden bewerten.</p>
|
||||
<small id="network-status">Netzwerkstatus wird geprueft ...</small>
|
||||
<small id="network-status">Netzwerkstatus wird geprüft ...</small>
|
||||
<small id="data-status">Datenstand: -</small>
|
||||
</header>
|
||||
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
<div class="button-row">
|
||||
<button id="use-location" class="btn secondary">Aktuellen Standort nutzen</button>
|
||||
<button id="load-score" class="btn">Score fuer heute Nacht (22-06)</button>
|
||||
<button id="load-score" class="btn">Score für heute Nacht (22-06)</button>
|
||||
</div>
|
||||
|
||||
<p class="hint">Night Hours im MVP fix: 22:00 bis 06:00.</p>
|
||||
|
|
@ -55,12 +55,12 @@
|
|||
<h3>Community Signal</h3>
|
||||
<div class="signal-grid">
|
||||
<button class="btn signal" data-signal="calm">Ruhige Nacht</button>
|
||||
<button class="btn signal" data-signal="noise">Laerm</button>
|
||||
<button class="btn signal" data-signal="noise">Lärm</button>
|
||||
<button class="btn signal" data-signal="knock">Klopfen</button>
|
||||
<button class="btn signal" data-signal="police">Polizei</button>
|
||||
</div>
|
||||
<small id="signal-status">Noch kein Signal gesendet.</small>
|
||||
<small id="queue-status">Queue: 0 ausstehend</small>
|
||||
<small id="queue-status">Warteschlange: 0 ausstehend</small>
|
||||
</section>
|
||||
|
||||
<section class="panel settings-panel">
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
<input id="signals-enabled" type="checkbox" checked />
|
||||
Community Signals aktivieren
|
||||
</label>
|
||||
<p class="small">Offline werden Signale gequeued und spaeter gesendet.</p>
|
||||
<p class="small">Offline werden Signale zwischengespeichert und später gesendet.</p>
|
||||
|
||||
<h3>Rechtliches</h3>
|
||||
<ul class="legal">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue