Files
craftvia/messages/en/field.json
T
msolarczekandClaude Opus 5 fe3eba6e44 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>
2026-09-15 09:29:38 +02:00

441 lines
14 KiB
JSON
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.
{
"nav": {
"label": "Field navigation",
"today": "Today",
"orders": "Orders",
"emergency": "Emergency",
"sync": "Sync",
"profile": "Profile",
"approvalsBadge": "{count} time entries to approve"
},
"connection": {
"online": "Online",
"offline": "Offline"
},
"noAccess": "The field app is not enabled for your role.",
"today": {
"title": "Today",
"greeting": "Hello {name}",
"count": "{count, plural, =0 {No jobs} one {# job} other {# jobs}}",
"empty": "No jobs scheduled for today.",
"allOrders": "View all orders"
},
"orders": {
"title": "Orders",
"tabs": {
"upcoming": "Upcoming",
"running": "Ongoing",
"to_complete": "To complete",
"past": "Past"
},
"empty": "No orders in this list."
},
"card": {
"open": "Open order",
"route": "Route",
"noDate": "No date",
"emergency": "Emergency",
"urgent": "Urgent",
"high": "High",
"running": "Time running",
"paused": "Paused",
"enRoute": "On the way",
"startWork": "Start work",
"pause": "Pause",
"resume": "Resume"
},
"statusGroup": {
"new": "New",
"planned": "Planned",
"en_route": "On the way",
"in_progress": "In progress",
"documentation_incomplete": "Documentation incomplete",
"in_review": "In review",
"ready_for_billing": "Ready for billing",
"billed": "Billed",
"cancelled": "Cancelled"
},
"statusDetail": {
"draft": "Draft",
"review_required": "Review required",
"planned": "Planned",
"assigned": "Assigned",
"accepted": "Accepted",
"en_route": "On the way",
"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": "Ready for billing",
"billed": "Billed",
"cancelled": "Cancelled"
},
"action": {
"accept": "Accept",
"travel": "Leave now",
"start": "Start work",
"pause": "Pause",
"resume": "Resume",
"complete": "Complete",
"confirmComplete": "Complete now",
"confirmHint": "Time tracking stops and the order is marked technically completed.",
"saving": "Saving …",
"blocked": "Still missing before completion:",
"reportNext": "Report and signature follow in the next step.",
"nothing": "No action required.",
"stop_day": "Stop for today",
"confirmStopDay": "Stop for today now",
"stopDayHint": "Time recording ends, the order stays open and can be continued tomorrow.",
"completeLink": "Complete order …",
"segment": {
"return_travel": "Start return trip",
"material_procurement": "Fetch material",
"work": "Back to work"
},
"currentSegment": "Current: {type}"
},
"blocker": {
"checklist_item": "Checklist: {label}",
"photo_requirement": "Required photo: {label}",
"running_session": "A team member's time tracking is still running",
"missing_field": "Missing: {label}"
},
"errors": {
"not_found": "Not found or not shared with you.",
"forbidden": "You are not allowed to do this.",
"invalid": "Please check your input.",
"conflict": "The order was changed in the meantime. The view has been refreshed.",
"blocked": "Required information is still missing.",
"internal": "Technical error. Please try again.",
"network": "No connection. Please try again.",
"image": "The photo could not be processed."
},
"detail": {
"back": "Back",
"backToOrder": "Back to order",
"window": "Time window",
"hints": "Notes for technicians",
"order": "Order",
"orderType": "Order type",
"externalNumber": "Customer order",
"team": "Team",
"scope": "Scope of work",
"description": "Description",
"customer": "Customer",
"contact": "Contact",
"onSiteContact": "On site",
"call": "Call",
"mail": "Email",
"site": "Site",
"route": "Open route",
"access": "Access",
"parking": "Parking",
"safety": "Safety",
"technical": "Technical",
"documents": "Documents",
"noDocuments": "No documents.",
"siteDocument": "Site",
"openDocument": "Open",
"history": "Site history",
"noHistory": "No approved reports at this site.",
"reportType": {
"daily": "Daily report",
"completion": "Completion report"
},
"checklist": "Checklist",
"checklistProgress": "{done} of {total} done",
"materials": "Material",
"materialsProgress": "{done} of {total} items recorded",
"materialsNone": "No material planned",
"photos": "Photos",
"photosProgress": "{count} photos · {done} of {total} required photos",
"photosCount": "{count} photos",
"notes": "Notes",
"notesCount": "{count, plural, =0 {No notes yet} one {# note} other {# notes}}",
"time": "Time",
"myTime": "My working time: {duration}",
"quick": {
"photo": "Photo",
"note": "Note",
"material": "Material",
"checklist": "Checklist",
"time": "Time"
}
},
"photos": {
"title": "Photos",
"camera": "Camera",
"gallery": "Gallery",
"phaseLabel": "When",
"phase": {
"before": "Before",
"during": "During",
"after": "After"
},
"requirement": "Required photo",
"checklistItem": "Checklist item",
"none": "Not assigned",
"comment": "Comment",
"location": "Include location",
"save": "Save photo",
"discard": "Discard",
"preview": "Photo preview",
"compressing": "Resizing photo …",
"uploading": "Uploading … {percent} %",
"saved": "Photo saved.",
"empty": "No photos yet.",
"requirements": "Required photos",
"missing": "Missing",
"done": "Present"
},
"notes": {
"title": "Notes",
"kindLabel": "Type",
"kind": {
"work_done": "Work done",
"deviation": "Deviation",
"problem": "Problem",
"additional_work": "Additional work",
"not_executable": "Not feasible",
"follow_up": "Follow-up work",
"recommendation": "Recommendation",
"customer_note": "Customer note",
"general": "General"
},
"text": "Note",
"placeholder": "Briefly describe what happened on site …",
"save": "Save note",
"saved": "Note saved.",
"draftKept": "Draft is kept on this device.",
"empty": "No notes yet."
},
"voice": {
"title": "Voice note",
"record": "Start recording",
"stop": "Stop recording",
"recording": "Recording · {time} of 5:00",
"save": "Save voice note",
"discard": "Discard",
"saved": "Voice note saved.",
"unsupported": "Voice recording is not supported on this device.",
"denied": "Microphone access is not granted.",
"status": {
"pending": "Transcription running",
"done": "Transcribed",
"failed": "Transcription failed",
"disabled": "No transcription"
}
},
"materials": {
"title": "Material",
"planned": "Planned: {quantity} {unit}",
"usage": {
"fully_used": "Fully used",
"partially_used": "Partially used",
"not_used": "Not used",
"additional": "Additional"
},
"quantity": "Quantity",
"unit": "Unit",
"decrease": "Decrease quantity",
"increase": "Increase quantity",
"reason": "Reason for deviation",
"reasonRequired": "A reason is required for deviations.",
"save": "Save",
"saved": "Saved.",
"recorded": "Recorded: {quantity} {unit}",
"open": "Open",
"noPlan": "No material planned.",
"additionalTitle": "Additional material",
"additionalEmpty": "No additional material recorded.",
"name": "Name",
"articleNumber": "Article number (optional)",
"additionalReason": "Reason",
"add": "Save additional material",
"invalid": "Incomplete input or quantity does not match the status."
},
"checklist": {
"title": "Checklist",
"required": "Required",
"photo": "Photo needed",
"done": "Done",
"open": "Open",
"comment": "Comment",
"saveComment": "Save comment",
"empty": "This order has no checklist."
},
"time": {
"title": "Time",
"type": {
"travel": "Travel",
"work": "Working time",
"break": "Break",
"material_procurement": "Material procurement",
"return_travel": "Return travel",
"interruption": "Interruption"
},
"session": {
"en_route": "On the way",
"running": "Running",
"paused": "Paused",
"ended": "Ended",
"manual": "Recorded later"
},
"running": "running",
"offlineStarted": "started offline",
"corrected": "Corrected: {reason}",
"correct": "Correct",
"start": "Start",
"end": "End",
"reason": "Reason for correction",
"reasonHint": "Required, will be logged.",
"save": "Save correction",
"saved": "Correction saved.",
"empty": "No time recorded yet.",
"totalWork": "Total working time: {duration}",
"propose": "Propose correction",
"totalPending": "Awaiting approval: {duration}",
"ownEntryHint": "Correct your own time via “Propose correction”."
},
"profile": {
"title": "Profile",
"tenant": "Company",
"teams": "Team",
"noTeam": "Not assigned to a team",
"roles": "Role",
"language": "Language",
"logout": "Sign out",
"backoffice": "Go to office area",
"myTime": "My time",
"approvals": "Approve time"
},
"sync": {
"title": "Synchronisation",
"immediate": "Changes are sent to the office immediately.",
"offlineHint": "Without a connection, entries cannot be buffered yet – the offline queue will follow.",
"status": "Connection"
},
"clock": {
"label": "Running time recording",
"running": "Running",
"paused": "Paused",
"enRoute": "Travel",
"openOrder": "Open order {number}",
"pause": "Pause",
"resume": "Resume",
"stopDay": "Stop for today",
"stopDayConfirm": "Stop?",
"myTime": "My time",
"offline": "offline"
},
"switch": {
"title": "Another time recording is running",
"text": "{from} is still running. Pause it and start {to}?",
"textUnknown": "Time is still running on another order. Pause it and start {to}?",
"confirm": "Switch",
"cancel": "Cancel"
},
"myTime": {
"title": "My time",
"sub": "Your time per day across all orders.",
"today": "Today",
"yesterday": "Yesterday",
"days": "Choose day",
"empty": "No time recorded on this day.",
"approved": "Approved",
"pending": "Awaiting approval",
"dayTotal": "Day total",
"totalApproved": "Approved: {duration}",
"totalPending": "Open: {duration}",
"add": "Add time",
"running": "running",
"badge": {
"manual": "Manual",
"pending": "Awaiting approval",
"rejected": "Rejected: {reason}",
"correctionRequested": "Correction requested",
"correctionRejected": "Correction rejected: {reason}",
"corrected": "Corrected"
},
"proposed": "Proposal: {from}–{to} · {type}",
"localPending": "Waiting to be sent",
"localTitle": "Not sent yet",
"form": {
"title": "Add time",
"order": "Order",
"orderPlaceholder": "Choose order",
"noOrders": "No orders from the last 7 days available.",
"forUser": "For",
"me": "Myself",
"type": "Type",
"date": "Date",
"mode": "Entry",
"modeRange": "From – to",
"modeDuration": "Duration",
"from": "From",
"to": "To",
"duration": "Duration in minutes",
"quick": "{minutes} min",
"reason": "Reason",
"reasonHint": "Required, at least 3 characters.",
"note": "Note (optional)",
"approvalHint": "Counts once approved by the team lead or office.",
"directHint": "Time recorded for team members is approved immediately.",
"save": "Save entry",
"saved": "Entry saved – awaiting approval.",
"savedDirect": "Time saved.",
"queued": "Saved offline – will be sent once connected.",
"cancel": "Cancel"
},
"correction": {
"title": "Propose correction",
"hint": "The current time stays valid until approved.",
"save": "Send proposal",
"saved": "Correction requested."
},
"reasons": {
"forgotStart": "Forgot to start",
"noNetwork": "No network",
"recordedLater": "Recorded afterwards"
},
"errors": {
"overlap": "The period overlaps with time already recorded.",
"too_old": "Time can only be added for the last 7 days.",
"in_future": "The time must not be in the future.",
"too_long": "An entry may be at most 16 hours long.",
"end_before_start": "The end must be after the start.",
"work_order_status": "Time can no longer be recorded for this order.",
"not_own_entry": "You can only correct your own time.",
"own_entry": "You cannot approve your own time.",
"entry_running": "The time is still running."
}
},
"approvals": {
"title": "Approve time",
"sub": "Added entries and corrections of your team.",
"empty": "No open entries or corrections.",
"link": "Approve time",
"count": "{count, plural, =0 {Nothing open} one {# open} other {# open}}",
"manual": "Added entry",
"correction": "Correction",
"reason": "Reason",
"note": "Note",
"old": "Before",
"new": "New",
"approve": "Approve",
"reject": "Reject",
"rejectReason": "Reason for rejection",
"rejectConfirm": "Send rejection",
"cancel": "Cancel",
"approved": "Approved.",
"rejected": "Rejected."
},
"pendingTime": {
"report": "Note: {duration} of added time is not approved yet and missing from the report.",
"proposals": "Note: {count, plural, one {# time correction is} other {# time corrections are}} awaiting approval."
}
}