L5 Berichte & Unterschrift: Backoffice- und Mobil-Oberflächen

/reports mit Filtern (zur Prüfung zuerst), /reports/[id] mit Aktionen, Versionen und PDF-Link;
mobile Komponenten für Bericht, Prüfung und Unterschrift inkl. Signature-Pad; Texte de/en.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 12:22:40 +02:00
co-authored by Claude Opus 5
parent 8f53df6208
commit 94092ade3f
20 changed files with 1805 additions and 3 deletions
+236
View File
@@ -0,0 +1,236 @@
{
"title": "Reports",
"crumb": "Field work & records",
"sub": "Review daily and completion reports, approve them and file them as PDF.",
"type": {
"daily": "Daily report",
"completion": "Completion report"
},
"status": {
"draft": "Draft",
"submitted": "In review",
"team_approved": "Checked by team lead",
"approved": "Approved",
"rejected": "Rejected",
"superseded": "Superseded"
},
"outcome": {
"signed": "Signed",
"customer_absent": "Customer not present",
"refused": "Customer refused to sign",
"later": "Signature to be obtained later",
"not_required": "Signature not required"
},
"timeType": {
"travel": "Travel",
"work": "Work",
"break": "Break",
"material_procurement": "Material procurement",
"return_travel": "Return travel",
"interruption": "Interruption"
},
"phase": {
"before": "Before",
"during": "During work",
"after": "After"
},
"materialStatus": {
"fully_used": "Fully used",
"partially_used": "Partially used",
"not_used": "Not used",
"additional": "Additional"
},
"field": {
"customer": "Customer",
"customerNumber": "Customer number",
"site": "Site",
"contact": "Contact person",
"workOrder": "Work order",
"orderNumber": "Order number",
"externalOrderNumber": "External order number",
"orderType": "Order type",
"description": "Order description",
"scope": "Scope of work",
"reportDate": "Report date",
"workDates": "Date of work",
"staff": "Staff on site",
"technician": "Technician",
"version": "Version",
"reportNumber": "Report number",
"status": "Status",
"team": "Team",
"type": "Type",
"period": "Period",
"updated": "Last changed"
},
"texts": {
"workPerformed": "Work performed",
"deviations": "Deviations",
"additionalWork": "Additional work",
"problems": "Problems",
"openItems": "Open items and remaining work",
"nextSteps": "Next steps",
"hints": "Notes"
},
"section": {
"header": "Work order and customer",
"time": "Working hours",
"texts": "Activities and notes",
"materials": "Material",
"photos": "Photos",
"checklist": "Checklist",
"signature": "Customer signature",
"versions": "Versions",
"blockers": "Still missing before completion"
},
"time": {
"person": "Staff member",
"type": "Type",
"duration": "Duration",
"total": "Total excluding breaks",
"totalByType": "Totals by type",
"hoursMinutes": "{hours} h {minutes} min",
"running": "Includes running time, as of {time}",
"empty": "No time recorded."
},
"materials": {
"used": "Used",
"notUsed": "Not used",
"additional": "Additionally used",
"name": "Material",
"planned": "Planned",
"actual": "Actual",
"reason": "Reason for deviation",
"deviation": "Deviation",
"undocumented": "Not documented",
"empty": "No material recorded."
},
"photos": {
"empty": "No photos selected for the report.",
"requirement": "Required photo: {label}",
"alt": "Photo {index}"
},
"checklist": {
"done": "Done",
"open": "Open",
"required": "Required",
"empty": "No checklist."
},
"signature": {
"signer": "Signed by",
"role": "Role",
"signedAt": "Date and time",
"reason": "Reason",
"capturedBy": "Captured by",
"confirmation": "Confirmation text",
"none": "No signature captured yet.",
"image": "Signature of {name}"
},
"list": {
"empty": "No reports for this selection.",
"filter": "Filter",
"reset": "Reset",
"all": "All",
"allWithSuperseded": "All incl. superseded",
"from": "From",
"to": "To",
"count": "{count, plural, one {# report} other {# reports}}",
"truncated": "Showing the latest {count} reports. Please use the filters.",
"open": "Open"
},
"detail": {
"back": "Back to reports",
"pdf": "Open PDF",
"pdfPending": "PDF is being generated. Reload the page later.",
"aiDrafted": "Lotse draft",
"aiDraftedHint": "Texts were prepared with Lotse and checked by the technician.",
"rejectionReason": "Reason for rejection",
"submittedAt": "Submitted on",
"teamApprovedAt": "Checked by team lead on",
"approvedAt": "Approved on",
"current": "This version",
"checksum": "Checksum (PDF)",
"generatedAt": "Data as of"
},
"actions": {
"approve": "Approve",
"approveTeam": "Check as team lead",
"reject": "Reject",
"rejectTitle": "Reject report",
"rejectSub": "The technician sees the reason and corrects the report.",
"rejectReason": "Reason",
"rejectPlaceholder": "What needs to be corrected?",
"newVersion": "Create new version",
"newVersionHint": "The approved version stays unchanged until the new version is approved.",
"regeneratePdf": "Generate PDF",
"cancel": "Cancel",
"close": "Close",
"done": "Done."
},
"errors": {
"generic": "Action not possible.",
"not_found": "Report not found.",
"forbidden": "You are not allowed to do this.",
"conflict": "The report has changed in the meantime. Please reload the page.",
"invalid": "Please check your input.",
"blocked": "Some information is still missing.",
"reasonRequired": "Please enter a reason.",
"signerRequired": "Please enter the name of the signer.",
"imageRequired": "Please have the customer sign first.",
"notRequiredForbidden": "A signature is required for this work order."
},
"blocker": {
"checklist_item": "Checklist open: {label}",
"photo_requirement": "Required photo missing: {label}",
"running_session": "Time tracking is still running",
"missing_field": "Required information missing: {field}"
},
"mobile": {
"title": "Report",
"backToOrder": "Back to work order",
"createDaily": "Create daily report",
"createCompletion": "Create completion report",
"dailyHint": "Finish the working day. The work order stays open.",
"completionHint": "Finish the job: check the report, get it signed, submit.",
"blockersHint": "Complete these items first, then create the completion report.",
"stepReview": "Check",
"stepEdit": "Complete",
"stepSign": "Signature",
"stepSubmit": "Submit",
"stepOf": "Step {current} of {total}",
"edit": "Complete report",
"review": "Check report",
"save": "Save draft",
"saved": "Draft saved.",
"toSign": "Continue to signature",
"submit": "Submit report",
"submitted": "The office is reviewing the report.",
"readOnly": "The report has been submitted and can no longer be changed.",
"rejected": "Rejected: {reason}",
"signatureMissing": "Signature or reason still missing.",
"noCompletion": "No completion report yet."
},
"sign": {
"title": "Signature",
"outcomeLabel": "Signature",
"signerName": "Name of signer",
"signerRole": "Role (optional)",
"reason": "Reason",
"clear": "Clear",
"padLabel": "Signature field. Sign with finger or stylus.",
"padEmpty": "Sign here",
"confirmation": "I confirm that the work documented in report {reportNumber} for work order {orderNumber} has been carried out. Date: {date}.",
"save": "Save",
"saved": "Saved.",
"alreadySigned": "Signature captured.",
"noReport": "Create the completion report first."
},
"pdf": {
"page": "Page {page} of {pages}",
"reportId": "Report ID",
"checksum": "Checksum",
"approvalStatus": "Approval status",
"createdAt": "Created on",
"notApproved": "Not approved"
}
}