| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- {
- "page": {
- "notFound": "Service record not found",
- "updated": "Service record updated",
- "failedUpdate": "Failed to update service record",
- "deleteTitle": "Delete Service Record",
- "deleteDescription": "This will permanently delete this service record and all associated data. This cannot be undone.",
- "deleted": "Service record deleted",
- "failedDelete": "Failed to delete"
- },
- "header": {
- "tabs": {
- "details": "Details",
- "images": "Images",
- "video": "Video",
- "documents": "Documents"
- },
- "save": "Save",
- "pdf": "PDF",
- "email": "Email",
- "share": "Share",
- "delete": "Delete",
- "unpaid": "Unpaid",
- "unsavedChanges": "Unsaved changes",
- "saved": "Saved"
- },
- "basicInfo": {
- "title": "Basic Information",
- "vehicle": "Vehicle",
- "open": "Open",
- "customer": "Customer",
- "titleLabel": "Title *",
- "titlePlaceholder": "Oil Change",
- "date": "Date",
- "type": "Type",
- "mileage": "Mileage",
- "status": "Status",
- "technician": "Technician",
- "invoiceNumber": "Invoice Number",
- "typeOptions": {
- "maintenance": "Maintenance",
- "repair": "Repair",
- "upgrade": "Upgrade",
- "inspection": "Inspection"
- },
- "statusOptions": {
- "pending": "Pending",
- "in_progress": "In Progress",
- "waiting_parts": "Waiting Parts",
- "completed": "Completed"
- },
- "searchVehicles": "Search vehicles...",
- "noVehicleFound": "No vehicle found.",
- "techPicker": {
- "placeholder": "Select or type a name...",
- "searchPlaceholder": "Search or type name...",
- "useCustom": "Use \"{search}\"",
- "typePrompt": "Type a name...",
- "boardTechnicians": "Board Technicians",
- "teamMembers": "Team Members"
- }
- },
- "parts": {
- "title": "Parts",
- "fromInventory": "From Inventory",
- "addPart": "Add Part",
- "partNumber": "Part #",
- "name": "Name",
- "qty": "Qty",
- "unitPrice": "Unit Price",
- "total": "Total",
- "namePlaceholder": "Name *",
- "subtotal": "Parts Subtotal: {amount}",
- "inventoryTitle": "Select Part from Inventory",
- "searchInventory": "Search inventory...",
- "inStock": "{quantity} in stock",
- "noInventory": "No inventory parts found."
- },
- "labor": {
- "title": "Labor",
- "addLabor": "Add Labor",
- "description": "Description",
- "hours": "Hours",
- "rate": "Rate ({currency}/hr)",
- "total": "Total",
- "descriptionPlaceholder": "Description *",
- "subtotal": "Labor Subtotal: {amount}"
- },
- "totals": {
- "title": "Totals",
- "parts": "Parts",
- "labor": "Labor",
- "subtotal": "Subtotal",
- "discount": "Discount",
- "discountNone": "None",
- "discountPercentage": "Percentage",
- "discountFixed": "Fixed",
- "tax": "Tax",
- "total": "Total"
- },
- "notes": {
- "title": "Notes",
- "public": "Public",
- "internal": "Internal",
- "publicPlaceholder": "Notes visible on the invoice...",
- "internalPlaceholder": "Internal notes (not shown on invoice)...",
- "publicHelper": "Shown on the invoice and shared documents",
- "internalHelper": "Only visible to your team"
- },
- "invoice": {
- "title": "Invoice Summary",
- "parts": "Parts",
- "labor": "Labor",
- "subtotal": "Subtotal",
- "discount": "Discount",
- "tax": "Tax ({rate}%)",
- "total": "Total",
- "paid": "Paid",
- "balanceDue": "Balance Due",
- "paidBadge": "PAID",
- "entityLabel": "Invoice",
- "emailSubject": "Payment Confirmation"
- },
- "payments": {
- "title": "Payments",
- "markUnpaid": "Mark as Unpaid",
- "markPaid": "Mark as Paid",
- "recordPayment": "Record Payment",
- "totalPaid": "Total Paid",
- "amount": "Amount",
- "date": "Date",
- "method": "Method",
- "note": "Note",
- "notePlaceholder": "Optional note",
- "savePayment": "Save Payment",
- "methodOptions": {
- "cash": "Cash",
- "card": "Card",
- "transfer": "Transfer",
- "other": "Other"
- },
- "recorded": "Payment recorded",
- "markedPaid": "Marked as paid",
- "markedUnpaid": "Marked as unpaid",
- "deleted": "Payment deleted",
- "failedRecord": "Failed to record payment",
- "failedStatus": "Failed to update payment status",
- "failedDelete": "Failed to delete payment",
- "deleteTitle": "Delete Payment",
- "deleteDescription": "This will remove this payment record.",
- "failedPdf": "Failed to generate PDF invoice"
- },
- "attachments": {
- "deleteTitle": "Delete Attachment",
- "deleteDescription": "This will permanently delete this attachment. This cannot be undone.",
- "deleted": "Attachment deleted",
- "failedDelete": "Failed to delete",
- "images": "Images ({count})",
- "videos": "Videos ({count})",
- "diagnostics": "Diagnostic Reports ({count})",
- "documents": "Documents ({count})"
- },
- "share": {
- "title": "Share Invoice",
- "description": "Generate a public link that allows anyone to view and download this invoice without signing in.",
- "notifyTitle": "Notify {name}",
- "email": "Email",
- "noEmail": "(no email on file)",
- "sms": "SMS",
- "noPhone": "(no phone on file)",
- "sendNotification": "Send Notification",
- "revokeLink": "Revoke Link",
- "generateLink": "Generate Public Link",
- "emailSent": "Email sent",
- "failedEmail": "Failed to send email",
- "smsSent": "SMS sent",
- "failedSms": "Failed to send SMS"
- },
- "sidebar": {
- "vehicle": "Vehicle",
- "customer": "Customer",
- "vin": "VIN: {vin}",
- "mileageAtService": "Mileage at service: {mileage} {unit}",
- "sharedLink": {
- "title": "Shared Link",
- "sharedOn": "Shared on {date}",
- "notViewed": "Not viewed yet",
- "viewedTimes": "Viewed {count, plural, one {# time} other {# times}}",
- "lastViewed": "Last {date}",
- "copyLink": "Copy link",
- "linkCopied": "Link copied"
- }
- },
- "images": {
- "title": "Service Images",
- "dropzone": "Drop images here or click to browse",
- "uploading": "Uploading...",
- "formats": "JPG, PNG, WebP — max 10MB each",
- "uploadingImages": "Uploading images...",
- "limitReached": "Image limit reached ({count}/{max})",
- "upgradePrompt": "Upgrade your plan to upload more images.",
- "onlyAllowed": "Only JPG, PNG, and WebP images are allowed. {names} skipped.",
- "onlyUploading": "Only uploading {count} image(s) to stay within limit.",
- "uploadingCount": "Uploading {count} image(s)...",
- "uploadedCount": "{count} image(s) uploaded",
- "uploadFailed": "Upload failed",
- "deleted": "Image deleted",
- "failedDelete": "Failed to delete image",
- "failedUpdate": "Failed to update",
- "description": "Description...",
- "invoice": "Invoice"
- },
- "videos": {
- "title": "Service Videos",
- "dropzone": "Drop videos here or click to browse",
- "uploading": "Uploading...",
- "formats": "MP4, WebM, MOV — max 10MB each",
- "uploadingVideos": "Uploading videos...",
- "uploadingCount": "Uploading {count} video(s)...",
- "uploadedCount": "{count} video(s) uploaded",
- "uploadFailed": "Upload failed",
- "deleted": "Video deleted",
- "failedDelete": "Failed to delete video",
- "failedUpdate": "Failed to update",
- "invoice": "Invoice"
- },
- "documents": {
- "diagnosticTitle": "Diagnostic Reports",
- "documentsTitle": "Documents",
- "dropzone": "Drop files here or click to browse",
- "uploading": "Uploading...",
- "diagnosticFormats": "PDF, CSV, TXT — max 10MB each",
- "documentFormats": "PDF, DOCX, XLSX, CSV, TXT — max 10MB each",
- "uploadingReports": "Uploading reports...",
- "uploadingDocuments": "Uploading documents...",
- "diagnosticLimitReached": "Diagnostic report limit reached ({count}/{max})",
- "documentLimitReached": "Document limit reached ({count}/{max})",
- "upgradePrompt": "Upgrade your plan to upload more.",
- "diagnosticLabel": "Diagnostic report",
- "documentLabel": "Document",
- "limitReachedToast": "{label} limit reached ({count}/{max}). Upgrade your plan for more.",
- "onlyUploading": "Only uploading {count} file(s) to stay within limit.",
- "uploadingCount": "Uploading {count} file(s)...",
- "uploadedCount": "{count} file(s) uploaded",
- "uploadFailed": "Upload failed",
- "deleted": "File deleted",
- "failedDelete": "Failed to delete file",
- "failedUpdate": "Failed to update",
- "invoice": "Invoice"
- }
- }
|