L2 Aufträge & Backoffice: Backoffice-UI (Liste, Detail, Konflikte, Dashboard, Suche, Einstellungen) + Texte de/en

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 12:30:32 +02:00
co-authored by Claude Opus 5
parent a962fa8be9
commit b96016d593
23 changed files with 3545 additions and 34 deletions
+445
View File
@@ -0,0 +1,445 @@
{
"crumb": "Work orders",
"title": "Work orders",
"subtitle": "Plan, assign, review and release for billing",
"new": "New work order",
"conflictsLink": "Sync conflicts",
"allGroups": "All",
"empty": "No work orders for this selection.",
"resultCount": "{count, plural, =0 {No work orders} one {# work order} other {# work orders}}",
"presetActive": "Tile filter: {name}",
"removePreset": "Remove tile filter",
"view": { "cards": "Cards", "table": "Table" },
"pagination": { "prev": "Previous", "next": "Next", "page": "Page {page} of {pages}" },
"filter": {
"title": "Filter",
"q": "Number, title, customer, city",
"from": "From",
"to": "To",
"customer": "Customer",
"site": "Site",
"team": "Team",
"user": "Technician",
"status": "Status",
"orderType": "Order type",
"priority": "Priority",
"sort": "Sort",
"any": "All",
"apply": "Apply",
"reset": "Reset"
},
"sort": {
"plannedStart": "Planned start",
"createdAt": "Created",
"updatedAt": "Last changed",
"number": "Number",
"priority": "Priority",
"status": "Status",
"asc": "ascending",
"desc": "descending"
},
"columns": {
"number": "Number",
"title": "Title",
"customer": "Customer",
"site": "Site",
"planned": "Planned",
"team": "Team",
"status": "Status",
"priority": "Priority"
},
"status": {
"draft": "Draft",
"review_required": "Review required",
"planned": "Planned",
"assigned": "Assigned",
"accepted": "Accepted",
"en_route": "En route",
"in_progress": "In progress",
"paused": "Paused",
"waiting_material": "Waiting for material",
"daily_report_created": "Daily report created",
"technically_completed": "Technically completed",
"signature_pending": "Signature pending",
"in_review": "In review",
"released_for_billing": "Released for billing",
"billed": "Billed",
"cancelled": "Cancelled"
},
"statusGroup": {
"new": "New",
"planned": "Planned",
"en_route": "En route",
"in_progress": "In progress",
"documentation_incomplete": "Documentation incomplete",
"in_review": "In review",
"ready_for_billing": "Ready for billing",
"billed": "Billed",
"cancelled": "Cancelled"
},
"priority": { "low": "Low", "normal": "Normal", "high": "High", "urgent": "Urgent" },
"billingType": {
"fixed": "Fixed price",
"time_material": "Time and material",
"maintenance_contract": "Maintenance contract",
"warranty": "Warranty"
},
"emergency": "Emergency",
"unassigned": "Not assigned",
"noDate": "No date",
"create": {
"title": "New work order",
"sub": "Choose a customer, enter the order",
"stepCustomer": "1. Find customer",
"customerSearch": "Company, name, customer number or city",
"searchButton": "Search",
"noCustomers": "No customer found. Customers are created under “Customers”.",
"chooseCustomer": "Select",
"changeCustomer": "Choose another customer",
"stepDetails": "2. Enter order",
"submit": "Create work order",
"pending": "Creating…"
},
"fields": {
"title": "Title",
"customer": "Customer",
"site": "Site",
"contact": "Contact person",
"none": "— none —",
"orderType": "Order type",
"priority": "Priority",
"plannedStart": "Planned start",
"plannedEnd": "Planned end",
"description": "Description",
"scope": "Scope of work",
"internalNotes": "Internal notes (office only)",
"technicianNotes": "Notes for technicians",
"signatureRequired": "Signature required",
"signatureFromType": "As order type",
"yes": "Yes",
"no": "No",
"billingType": "Billing type",
"externalOrderNumber": "External order number",
"offerNumber": "Offer number",
"status": "Create as",
"timezoneHint": "Times in {tz}"
},
"detail": {
"back": "Back to work orders",
"version": "Version {version}",
"nextStep": "Next step",
"moreActions": "Other status changes",
"edit": "Edit",
"assign": "Assign",
"reassign": "Change assignment",
"cancel": "Cancel order",
"noActions": "No status change is available for you right now.",
"blockersTitle": "Still missing before completion:",
"tabs": {
"overview": "Overview",
"checklist": "Checklist & required photos",
"material": "Material",
"times": "Times",
"photos": "Photos",
"notes": "Notes",
"reports": "Reports",
"documents": "Documents",
"history": "History"
}
},
"overview": {
"customer": "Customer",
"site": "Site",
"contact": "Contact person",
"planning": "Planning",
"assignment": "Assignment",
"team": "Team",
"teamLead": "Team lead",
"assignees": "Technicians",
"order": "Order",
"created": "Created",
"updated": "Changed",
"accessNotes": "Access",
"safetyNotes": "Safety"
},
"checklist": {
"items": "Checklist",
"photos": "Required photos",
"empty": "No checklist items.",
"emptyPhotos": "No required photos.",
"required": "Required",
"optional": "Optional",
"requiresPhoto": "with photo",
"done": "Done",
"open": "Open",
"photoCount": "{count, plural, =0 {No photo} one {# photo} other {# photos}}",
"addItem": "Add item",
"addPhoto": "Add required photo",
"label": "Label",
"applyTemplate": "Apply template",
"template": "Template",
"applyButton": "Apply",
"remove": "Remove",
"complete": "All completion requirements met."
},
"material": {
"title": "Material – planned and actual",
"empty": "No material planned or recorded.",
"name": "Name",
"articleNumber": "Article number",
"planned": "Planned",
"actual": "Actual",
"deviation": "Deviation",
"unit": "Unit",
"notes": "Remark",
"reason": "Reason",
"additional": "Additional",
"notRecorded": "Not recorded yet",
"add": "Plan material",
"remove": "Remove",
"usage": {
"fully_used": "Fully used",
"partially_used": "Partially used",
"not_used": "Not used",
"additional": "Additionally used"
}
},
"times": {
"empty": "No times recorded yet.",
"person": "Person",
"start": "Start",
"end": "End",
"duration": "Working time",
"minutes": "{minutes} min",
"corrected": "Corrected: {reason}",
"sessionStatus": {
"en_route": "En route",
"running": "Running",
"paused": "Paused",
"ended": "Ended"
},
"entryType": {
"travel": "Travel",
"work": "Work",
"break": "Break",
"material_procurement": "Material procurement",
"return_travel": "Return travel",
"interruption": "Interruption"
}
},
"photos": {
"empty": "No photos yet.",
"phase": { "before": "Before", "during": "During", "after": "After" },
"open": "Open",
"inReport": "In report"
},
"notes": {
"empty": "No notes.",
"internal": "Internal notes",
"technician": "Notes for technicians",
"kind": {
"work_done": "Work done",
"deviation": "Deviation",
"problem": "Problem",
"additional_work": "Additional work",
"not_executable": "Not executable",
"follow_up": "Follow-up",
"recommendation": "Recommendation",
"customer_note": "Customer note",
"general": "General"
}
},
"reports": {
"empty": "No reports yet.",
"type": { "daily": "Daily report", "completion": "Completion report" },
"status": {
"draft": "Draft",
"submitted": "In review",
"team_approved": "Approved by team lead",
"approved": "Approved",
"rejected": "Rejected",
"superseded": "Superseded"
},
"open": "Open report",
"signature": "Signature: {outcome}",
"signatureOutcome": {
"signed": "signed",
"customer_absent": "customer absent",
"refused": "refused",
"later": "later",
"not_required": "not required"
},
"billingTitle": "Billing",
"billingHint": "Release requires an approved completion report.",
"release": "Release for billing",
"reject": "Send back for correction",
"markBilled": "Mark as billed",
"revoke": "Revoke release"
},
"documents": {
"empty": "No documents on this order.",
"upload": "Upload document",
"file": "File (PDF, JPG, PNG, WebP)",
"title": "Title (optional)",
"category": "Category",
"visibility": "Visibility",
"submit": "Upload",
"archive": "Remove",
"download": "Download",
"stubHint": "Until the document store is connected, files are stored directly in object storage.",
"categories": {
"order_confirmation": "Order confirmation",
"technical_drawing": "Technical drawing",
"floor_plan": "Floor plan",
"wiring_diagram": "Wiring diagram",
"assembly_instructions": "Assembly instructions",
"safety_document": "Safety document",
"product_document": "Product document",
"customer_note": "Customer note",
"work_record": "Work record",
"daily_report": "Daily report",
"completion_report": "Completion report",
"customer_approval": "Customer approval",
"photo": "Photo",
"voice_note": "Voice note",
"signature": "Signature",
"other": "Other"
},
"visibilities": {
"backoffice_only": "Office only",
"team_lead": "Team lead",
"team": "Team",
"customer_report": "Customer report"
}
},
"history": {
"statusChanges": "Status changes",
"audit": "Log",
"empty": "No entries yet.",
"created": "Created as {status}",
"change": "{from} → {to}",
"by": "by {name}",
"system": "System",
"action": { "create": "Created", "update": "Changed", "delete": "Deleted" }
},
"assign": {
"title": "Assign work order",
"sub": "Choose a team, optionally individual technicians and a team lead",
"team": "Team",
"chooseTeam": "— choose team —",
"members": "Individual technicians (optional)",
"teamLead": "Responsible team lead",
"teamLeadDefault": "Team lead of the team",
"noTeams": "No active teams. Teams are created under “Teams”.",
"submit": "Assign",
"pending": "Assigning…"
},
"transition": {
"to": {
"draft": "As draft",
"review_required": "Mark for review",
"planned": "Schedule",
"assigned": "Assign",
"accepted": "Accept",
"en_route": "Start travel",
"in_progress": "Start work",
"paused": "Pause",
"waiting_material": "Waiting for material",
"daily_report_created": "Daily report created",
"technically_completed": "Complete technically",
"signature_pending": "Signature pending",
"in_review": "Submit for review",
"released_for_billing": "Release for billing",
"billed": "Mark as billed",
"cancelled": "Cancel order"
},
"correction": "Send back for correction",
"revoke": "Revoke release",
"reasonTitle": "Reason required",
"reason": "Reason",
"reasonPlaceholder": "Briefly describe why",
"confirm": "Confirm",
"pending": "Saving…",
"done": "Status changed."
},
"edit": {
"title": "Edit work order",
"submit": "Save",
"pending": "Saving…",
"saved": "Saved."
},
"conflicts": {
"crumb": "Work orders",
"title": "Sync conflicts",
"sub": "Changes recorded offline that could not be applied automatically",
"empty": "No open conflicts.",
"received": "Received",
"user": "Device / person",
"operation": "Operation",
"entity": "Work order",
"baseVersion": "Device state: version {base} · current: version {current}",
"payload": "Content",
"apply": "Apply",
"discard": "Discard",
"applied": "Applied.",
"discarded": "Discarded.",
"applyHint": "Apply re-runs the operation against the current state – on behalf of the person who recorded it.",
"stubHint": "Until sync is connected, only status changes can be applied."
},
"errors": {
"not_found": "Not found or no permission.",
"forbidden": "You lack the permission for this.",
"invalid": "Please check your input.",
"conflict": "The order was changed in the meantime. Reload and try again.",
"blocked": "Not possible yet – information is missing.",
"internal": "Operation not possible.",
"validation_failed": "Please check required fields.",
"work_order_not_found": "Work order not found.",
"customer_not_found": "Customer not found.",
"site_not_found": "Site not found.",
"contact_not_found": "Contact person not found.",
"site_customer_mismatch": "The site belongs to another customer.",
"contact_customer_mismatch": "The contact person belongs to another customer.",
"order_type_not_found": "Order type not found.",
"planned_end_before_start": "The end is before the start.",
"nothing_to_update": "No changes.",
"not_editable": "The order can no longer be changed in this status.",
"delete_only_draft": "Only drafts can be deleted.",
"transition_not_allowed": "This status change is not intended.",
"transition_forbidden": "You may not perform this status change.",
"transition_blocked": "Not possible yet – information is missing.",
"reason_required": "Please give a reason.",
"version_conflict": "The order was changed in the meantime. Reload and try again.",
"team_not_found": "Team not found or not active.",
"user_not_found": "At least one person is not active.",
"material_plan_not_found": "Material item not found.",
"material_in_use": "Material has already been recorded for this item.",
"checklist_item_not_found": "Checklist item not found.",
"checklist_item_checked": "Completed items are kept as evidence.",
"photo_requirement_not_found": "Required photo not found.",
"photo_requirement_has_photos": "Photos already exist for this requirement.",
"template_not_found": "Template not found.",
"sync_conflict_not_found": "Conflict not found or already resolved.",
"sync_conflict_already_resolved": "Conflict already resolved.",
"sync_payload_invalid": "The operation is incomplete.",
"sync_user_inactive": "The person is no longer active.",
"reapply_unsupported": "This operation cannot be applied yet.",
"document_not_found": "Document not found.",
"file_type_not_allowed": "File type not allowed.",
"file_too_large": "File is empty or too large.",
"file_missing": "Please choose a file.",
"category_invalid": "Category not allowed.",
"visibility_forbidden": "You may not assign this visibility.",
"initial_status_not_allowed": "This initial status is not allowed."
},
"blockers": {
"checklist_item": "Checklist: {label}",
"photo_requirement": "Required photo: {label}",
"running_session": "A work session is still running",
"field": {
"signature": "Signature missing",
"approved_completion_report": "Completion report not approved yet"
}
},
"saved": "Saved."
}