SPA_TemperProductionOverview/src/i18n/de.ts
Erik 360b049af9 fix(spa): reconnect spinner on connection loss, no demo data in prod
On a failed fetch the store now keeps the last real payload (stale > fake)
and flags `disconnected` instead of overwriting live data with bundled demo
data. Sample fallback is gated behind import.meta.env.DEV, so `vite build`
tree-shakes it out entirely (verified: no sample strings in dist).

- cold start / no data: centered reconnect spinner that keeps retrying
- data present + drop: stale data stays, header shows amber "reconnecting"
- polling retries faster (4s) while disconnected, recovers automatically
- sample.ts data moved into sampleOverview() so the module fully tree-shakes

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 09:20:20 +02:00

82 lines
2.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export default {
app: {
brand: 'PressV',
plant: 'Werk',
line: 'Temperprozess',
subtitle: 'Live-Übersicht',
live: 'Live',
demo: 'Demo-Daten',
},
conn: {
connecting: 'Verbinde mit Server …',
lost: 'Verbindung verloren neuer Versuch …',
reconnecting: 'Verbinde neu …',
},
flow: {
presses: 'Pressen',
pressesSub: 'inkl. nicht verladen',
loaded: 'Auf Wagen verladen',
onWay: 'Auf dem Weg',
oven: 'Ofen',
finished: 'Fertig',
orders: 'Aufträge',
ordersMax: 'bis 4 / Wagen',
},
kpi: {
notVerladen: 'Nicht verladen · auf Linie',
notVerladenSub: 'Teile noch an der Presse',
onWay: 'Auf dem Weg',
onWaySub: '{n} Wagen unterwegs',
oven: 'Im Ofen',
ovenSub: '{n} Batches',
finished: 'Fertig',
finishedSub: '{n} Wagen getempert',
scrapRate: 'Ausschussquote',
scrapRateSub: 'Ausschuss / Gesamt',
},
line: {
header: 'Maschinenhalle',
active: '{running}/{total} aktiv · Wagen hängen unter ihrer Presse',
toStorage: 'Aus dem Ofen',
toStorageTail: 'Fertig / Lager',
},
press: {
good: 'Gut',
notVerladen: 'nicht verladen',
free: 'frei',
statusRun: 'Läuft',
statusStop: 'Störung',
statusIdle: 'Leerlauf',
orderCount: '{n} aktive Aufträge',
},
lane: {
wagen: '{n} Wagen ↓',
none: '—',
parts: '{n} Teile',
ovenIn: 'Ofen in {n} min',
},
oven: {
title: 'Temper-Ofen',
meta: '{parts} Teile · {batches} Batches · Ø {avg} min',
nextOut: 'nächster raus',
progress: '{done}/{total} min getempert',
unit: 'min',
},
finished: {
title: 'Fertig · getempert',
range: 'Zeitraum · {label}',
goodParts: 'Gutteile',
carts: 'Wagen',
scrap: 'Ausschuss',
avgOven: 'Ø Ofenzeit',
},
range: {
label: 'Fertig · Zeitraum',
'12h': 'letzte 12 h',
'1d': 'letzter Tag',
'7d': 'letzte 7 Tage',
'14d': 'letzte 14 Tage',
'30d': 'letzte 30 Tage',
},
}