L12 Zeiterfassung: Mobile Uhr-Leiste, Meine Zeiten, Freigaben und Backoffice-Liste
Laufende-Uhr-Leiste auf allen /m-Seiten, Start/Pause direkt auf den Auftragskarten, Auto-Wechsel-Dialog, Auftragsdetail mit Pause / Für heute beenden / Abschließen-Link und Segmentwechseln, /m/time (Tagesübersicht, Nachtragen, Korrektur vorschlagen), /m/approvals für Teamleiter, /work-orders/time-approvals mit Sammelfreigabe, Zeiten-Tab mit Badges und Inline-Freigabe, Dashboard-Kachel, Texte de/en. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+148
-6
@@ -5,7 +5,8 @@
|
||||
"orders": "Aufträge",
|
||||
"emergency": "Notdienst",
|
||||
"sync": "Sync",
|
||||
"profile": "Profil"
|
||||
"profile": "Profil",
|
||||
"approvalsBadge": "{count} Zeiten zur Freigabe"
|
||||
},
|
||||
"connection": {
|
||||
"online": "Online",
|
||||
@@ -35,7 +36,13 @@
|
||||
"noDate": "Ohne Termin",
|
||||
"emergency": "Notdienst",
|
||||
"urgent": "Dringend",
|
||||
"high": "Hoch"
|
||||
"high": "Hoch",
|
||||
"running": "Zeit läuft",
|
||||
"paused": "Pausiert",
|
||||
"enRoute": "In Anfahrt",
|
||||
"startWork": "Arbeit starten",
|
||||
"pause": "Pause",
|
||||
"resume": "Weiter"
|
||||
},
|
||||
"statusGroup": {
|
||||
"new": "Neu",
|
||||
@@ -78,7 +85,17 @@
|
||||
"saving": "Wird gespeichert …",
|
||||
"blocked": "Vor dem Abschluss noch offen:",
|
||||
"reportNext": "Bericht und Unterschrift folgen im nächsten Schritt.",
|
||||
"nothing": "Keine Aktion erforderlich."
|
||||
"nothing": "Keine Aktion erforderlich.",
|
||||
"stop_day": "Für heute beenden",
|
||||
"confirmStopDay": "Jetzt für heute beenden",
|
||||
"stopDayHint": "Die Zeiterfassung endet, der Auftrag bleibt offen und kann morgen fortgesetzt werden.",
|
||||
"completeLink": "Auftrag abschließen …",
|
||||
"segment": {
|
||||
"return_travel": "Rückfahrt starten",
|
||||
"material_procurement": "Material holen",
|
||||
"work": "Zurück zur Arbeit"
|
||||
},
|
||||
"currentSegment": "Aktuell: {type}"
|
||||
},
|
||||
"blocker": {
|
||||
"checklist_item": "Checkliste: {label}",
|
||||
@@ -264,7 +281,8 @@
|
||||
"en_route": "In Anfahrt",
|
||||
"running": "Läuft",
|
||||
"paused": "Pausiert",
|
||||
"ended": "Beendet"
|
||||
"ended": "Beendet",
|
||||
"manual": "Nachgetragen"
|
||||
},
|
||||
"running": "läuft",
|
||||
"offlineStarted": "offline gestartet",
|
||||
@@ -277,7 +295,10 @@
|
||||
"save": "Korrektur speichern",
|
||||
"saved": "Korrektur gespeichert.",
|
||||
"empty": "Noch keine Zeiten erfasst.",
|
||||
"totalWork": "Arbeitszeit gesamt: {duration}"
|
||||
"totalWork": "Arbeitszeit gesamt: {duration}",
|
||||
"propose": "Korrektur vorschlagen",
|
||||
"totalPending": "Zur Freigabe offen: {duration}",
|
||||
"ownEntryHint": "Eigene Zeiten korrigieren Sie über „Korrektur vorschlagen“."
|
||||
},
|
||||
"profile": {
|
||||
"title": "Profil",
|
||||
@@ -287,12 +308,133 @@
|
||||
"roles": "Rolle",
|
||||
"language": "Sprache",
|
||||
"logout": "Abmelden",
|
||||
"backoffice": "Zum Büro-Bereich"
|
||||
"backoffice": "Zum Büro-Bereich",
|
||||
"myTime": "Meine Zeiten",
|
||||
"approvals": "Zeiten freigeben"
|
||||
},
|
||||
"sync": {
|
||||
"title": "Synchronisation",
|
||||
"immediate": "Änderungen werden sofort an das Büro übertragen.",
|
||||
"offlineHint": "Ohne Verbindung können Eingaben noch nicht zwischengespeichert werden – die Offline-Warteschlange folgt.",
|
||||
"status": "Verbindung"
|
||||
},
|
||||
"clock": {
|
||||
"label": "Laufende Zeiterfassung",
|
||||
"running": "Läuft",
|
||||
"paused": "Pausiert",
|
||||
"enRoute": "Anfahrt",
|
||||
"openOrder": "Auftrag {number} öffnen",
|
||||
"pause": "Pause",
|
||||
"resume": "Weiter",
|
||||
"stopDay": "Für heute beenden",
|
||||
"stopDayConfirm": "Beenden?",
|
||||
"myTime": "Meine Zeiten",
|
||||
"offline": "offline"
|
||||
},
|
||||
"switch": {
|
||||
"title": "Andere Zeiterfassung läuft",
|
||||
"text": "{from} läuft noch. Pausieren und {to} starten?",
|
||||
"textUnknown": "Auf einem anderen Auftrag läuft noch eine Zeiterfassung. Pausieren und {to} starten?",
|
||||
"confirm": "Wechseln",
|
||||
"cancel": "Abbrechen"
|
||||
},
|
||||
"myTime": {
|
||||
"title": "Meine Zeiten",
|
||||
"sub": "Ihre Zeiten je Tag über alle Aufträge.",
|
||||
"today": "Heute",
|
||||
"yesterday": "Gestern",
|
||||
"days": "Tag wählen",
|
||||
"empty": "An diesem Tag sind keine Zeiten erfasst.",
|
||||
"approved": "Freigegeben",
|
||||
"pending": "Zur Freigabe",
|
||||
"dayTotal": "Tagessumme",
|
||||
"totalApproved": "Freigegeben: {duration}",
|
||||
"totalPending": "Offen: {duration}",
|
||||
"add": "Zeit nachtragen",
|
||||
"running": "läuft",
|
||||
"badge": {
|
||||
"manual": "Manuell",
|
||||
"pending": "Zur Freigabe",
|
||||
"rejected": "Abgelehnt: {reason}",
|
||||
"correctionRequested": "Korrektur beantragt",
|
||||
"correctionRejected": "Korrektur abgelehnt: {reason}",
|
||||
"corrected": "Korrigiert"
|
||||
},
|
||||
"proposed": "Vorschlag: {from}–{to} · {type}",
|
||||
"localPending": "Wartet auf Übertragung",
|
||||
"localTitle": "Noch nicht übertragen",
|
||||
"form": {
|
||||
"title": "Zeit nachtragen",
|
||||
"order": "Auftrag",
|
||||
"orderPlaceholder": "Auftrag wählen",
|
||||
"noOrders": "Keine Aufträge der letzten 7 Tage verfügbar.",
|
||||
"forUser": "Für",
|
||||
"me": "Mich selbst",
|
||||
"type": "Art",
|
||||
"date": "Datum",
|
||||
"mode": "Erfassung",
|
||||
"modeRange": "Von – Bis",
|
||||
"modeDuration": "Dauer",
|
||||
"from": "Von",
|
||||
"to": "Bis",
|
||||
"duration": "Dauer in Minuten",
|
||||
"quick": "{minutes} min",
|
||||
"reason": "Begründung",
|
||||
"reasonHint": "Pflichtangabe, mindestens 3 Zeichen.",
|
||||
"note": "Notiz (optional)",
|
||||
"approvalHint": "Wird nach Freigabe durch Teamleiter oder Büro gezählt.",
|
||||
"directHint": "Für Teammitglieder erfasste Zeiten gelten sofort als freigegeben.",
|
||||
"save": "Nachtrag speichern",
|
||||
"saved": "Nachtrag gespeichert – wartet auf Freigabe.",
|
||||
"savedDirect": "Zeit gespeichert.",
|
||||
"queued": "Offline gespeichert – wird übertragen, sobald Verbindung besteht.",
|
||||
"cancel": "Abbrechen"
|
||||
},
|
||||
"correction": {
|
||||
"title": "Korrektur vorschlagen",
|
||||
"hint": "Bis zur Freigabe gilt die bisherige Zeit.",
|
||||
"save": "Vorschlag senden",
|
||||
"saved": "Korrektur beantragt."
|
||||
},
|
||||
"reasons": {
|
||||
"forgotStart": "Start vergessen",
|
||||
"noNetwork": "Kein Netz",
|
||||
"recordedLater": "Nachträglich erfasst"
|
||||
},
|
||||
"errors": {
|
||||
"overlap": "Der Zeitraum überschneidet sich mit einer bereits erfassten Zeit.",
|
||||
"too_old": "Nachtragen ist nur für die letzten 7 Tage möglich.",
|
||||
"in_future": "Die Zeit darf nicht in der Zukunft liegen.",
|
||||
"too_long": "Ein Eintrag darf höchstens 16 Stunden lang sein.",
|
||||
"end_before_start": "Das Ende muss nach dem Beginn liegen.",
|
||||
"work_order_status": "Für diesen Auftrag können keine Zeiten mehr erfasst werden.",
|
||||
"not_own_entry": "Sie können nur eigene Zeiten korrigieren.",
|
||||
"own_entry": "Eigene Zeiten können Sie nicht selbst freigeben.",
|
||||
"entry_running": "Die Zeit läuft noch."
|
||||
}
|
||||
},
|
||||
"approvals": {
|
||||
"title": "Zeiten freigeben",
|
||||
"sub": "Nachträge und Korrekturen Ihres Teams.",
|
||||
"empty": "Keine offenen Nachträge oder Korrekturen.",
|
||||
"link": "Zeiten freigeben",
|
||||
"count": "{count, plural, =0 {Nichts offen} one {# offen} other {# offen}}",
|
||||
"manual": "Nachtrag",
|
||||
"correction": "Korrektur",
|
||||
"reason": "Begründung",
|
||||
"note": "Notiz",
|
||||
"old": "Bisher",
|
||||
"new": "Neu",
|
||||
"approve": "Freigeben",
|
||||
"reject": "Ablehnen",
|
||||
"rejectReason": "Grund der Ablehnung",
|
||||
"rejectConfirm": "Ablehnung senden",
|
||||
"cancel": "Abbrechen",
|
||||
"approved": "Freigegeben.",
|
||||
"rejected": "Abgelehnt."
|
||||
},
|
||||
"pendingTime": {
|
||||
"report": "Hinweis: {duration} nachgetragene Zeit ist noch nicht freigegeben und fehlt im Bericht.",
|
||||
"proposals": "Hinweis: {count, plural, one {# Zeitkorrektur wartet} other {# Zeitkorrekturen warten}} auf Freigabe."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user