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>
509 lines
16 KiB
JSON
509 lines
16 KiB
JSON
{
|
||
"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"
|
||
},
|
||
"pendingMinutes": "Awaiting approval: {minutes} min",
|
||
"approvedMinutes": "Approved",
|
||
"badgeManual": "Manual",
|
||
"badgePending": "Awaiting approval",
|
||
"badgeRejected": "Rejected: {reason}",
|
||
"badgeCorrection": "Correction requested: {from}–{to}",
|
||
"reason": "Reason: {reason}",
|
||
"manualSession": "Recorded later",
|
||
"approve": "Approve",
|
||
"reject": "Reject",
|
||
"rejectReason": "Reason",
|
||
"approved": "Approved.",
|
||
"rejected": "Rejected.",
|
||
"openApprovals": "All open approvals"
|
||
},
|
||
"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",
|
||
"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.",
|
||
"scopeHint": "Apply supports status changes and submitted reports; please rework other operations in the order."
|
||
},
|
||
"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",
|
||
"pending_time_entries": "Time entries are still awaiting approval"
|
||
}
|
||
},
|
||
"saved": "Saved.",
|
||
"timeApprovals": {
|
||
"crumb": "Work orders",
|
||
"title": "Time approvals",
|
||
"sub": "Added time and corrections by technicians. They count for reports and billing only after approval.",
|
||
"empty": "No open entries or corrections.",
|
||
"employee": "Employee",
|
||
"order": "Order",
|
||
"date": "Date",
|
||
"range": "From–to",
|
||
"duration": "Duration",
|
||
"type": "Type",
|
||
"reason": "Reason",
|
||
"kindManual": "Added entry",
|
||
"kindCorrection": "Correction",
|
||
"oldNew": "{old} → {new}",
|
||
"select": "Select",
|
||
"selectAll": "Select all",
|
||
"approveSelected": "Approve selected",
|
||
"approve": "Approve",
|
||
"reject": "Reject",
|
||
"rejectReason": "Reason for rejection",
|
||
"approved": "Approved.",
|
||
"bulkApproved": "{ok} approved, {failed} not possible.",
|
||
"rejected": "Rejected.",
|
||
"count": "{count, plural, one {# open entry} other {# open entries}}"
|
||
}
|
||
}
|