| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- {
- "title": "Import {entity}",
- "cancel": "Cancel",
- "done": "Done",
- "entities": {
- "customers": "customers",
- "vehicles": "vehicles",
- "services": "service history"
- },
- "entityHints": {
- "customers": "Names, contact details, addresses. One row per customer.",
- "vehicles": "Make, model, year, plate, VIN. An owner column links or creates the customer.",
- "services": "Past jobs and invoices. One row per job, with the vehicle it belongs to."
- },
- "groups": {
- "customer": "Customer",
- "vehicle": "Vehicle",
- "service": "Service"
- },
- "steps": {
- "upload": "Choose what to import and upload the file from your current system.",
- "mapping": "Check which column becomes which field. Nothing is written yet.",
- "preview": "Dry run: this is exactly what the import will do. Review it, then import.",
- "importing": "Writing rows. Keep this window open.",
- "result": "Import finished."
- },
- "upload": {
- "drop": "Drag and drop a file here",
- "formats": "CSV, Excel (.xlsx) or vCard (.vcf), up to 25 MB and 50,000 rows",
- "browse": "Browse files",
- "reading": "Reading the file...",
- "templateHint": "No export yet? Fill in a template and upload that.",
- "templateXlsx": "Excel template",
- "templateCsv": "CSV template",
- "sourcesHint": "Works with exports from any shop system, accounting tool, Google Contacts, Outlook or a spreadsheet. Column names are recognised in many languages; you confirm the mapping before anything is written."
- },
- "mapping": {
- "rows": "{count, plural, one {# row} other {# rows}}",
- "colColumn": "Column in your file",
- "colSample": "Sample values",
- "colField": "Becomes",
- "ignore": "Ignore this column",
- "source": {
- "preset": "Recognised layout",
- "header": "Matched by header",
- "values": "Guessed from the values"
- },
- "suggestWithAi": "Suggest with AI",
- "aiApplied": "{count, plural, one {# column mapped} other {# columns mapped}} by AI. Check them before continuing.",
- "chooseAnother": "Choose another file",
- "missingRequired": "Still needed: {fields}",
- "dryRunHint": "The dry run checks every row against your existing data without writing anything.",
- "runDryRun": "Run dry run"
- },
- "options": {
- "dateFormat": "Date format",
- "dateAuto": "Detect automatically",
- "dateDMY": "Day / month / year",
- "dateMDY": "Month / day / year",
- "dateYMD": "Year / month / day",
- "decimal": "Decimal mark",
- "decimalAuto": "Detect automatically",
- "decimalDot": "Dot (1,234.56)",
- "decimalComma": "Comma (1.234,56)",
- "countryCode": "Country code for phone numbers",
- "duplicates": "When a row matches an existing record",
- "duplicatesUpdate": "Update the existing record",
- "duplicatesSkip": "Skip the row",
- "duplicatesCreate": "Create a new record anyway"
- },
- "summary": {
- "create": "Will be created",
- "update": "Will be updated",
- "skip": "Will be skipped",
- "error": "Cannot be imported",
- "warnings": "With warnings",
- "customersToCreate": "{count, plural, one {# new customer} other {# new customers}}",
- "customersToUpdate": "{count, plural, one {# customer updated} other {# customers updated}}",
- "vehiclesToCreate": "{count, plural, one {# new vehicle} other {# new vehicles}}",
- "vehiclesToUpdate": "{count, plural, one {# vehicle updated} other {# vehicles updated}}",
- "servicesToCreate": "{count, plural, one {# service record} other {# service records}}"
- },
- "actions": {
- "create": "Create",
- "update": "Update",
- "skip": "Skip",
- "error": "Error"
- },
- "matchOn": {
- "number": "customer number",
- "email": "email",
- "phone": "phone",
- "name": "name",
- "vin": "VIN",
- "plate": "plate",
- "makeModelYear": "make, model and year"
- },
- "preview": {
- "colAction": "Action",
- "colOwner": "Owner",
- "colDetails": "Details",
- "empty": "No rows match this filter.",
- "matchedOn": "Matches {name} (by {on})",
- "linksCustomer": "Linked to customer {name}",
- "linksVehicle": "Linked to {label}",
- "sameCustomerAsRow": "Same customer as row {row}",
- "sameVehicleAsRow": "Same vehicle as row {row}",
- "createsCustomer": "Creates the customer",
- "createsVehicle": "Creates the vehicle",
- "downloadReport": "Download dry run report",
- "limitExceeded": "Your plan allows {remaining} more customers, but this import would create {needed}. Remove rows or upgrade your plan.",
- "pageInfo": "{from}–{to} of {total}",
- "prev": "Previous",
- "next": "Next",
- "backToMapping": "Back to mapping",
- "import": "Import {count, plural, one {# row} other {# rows}}",
- "nothingWrittenYet": "Nothing has been written yet. The import can be undone afterwards from Settings → Data."
- },
- "importing": {
- "title": "Importing...",
- "starting": "Starting",
- "progress": "{done} of {total} rows",
- "keepOpen": "Large files take a minute or two."
- },
- "result": {
- "title": "Import complete",
- "undoneTitle": "Import undone",
- "created": "{count, plural, one {# record created} other {# records created}}",
- "updated": "{count, plural, one {# record updated} other {# records updated}}",
- "skipped": "{count, plural, one {# row skipped} other {# rows skipped}}",
- "failed": "{count, plural, one {# row not imported} other {# rows not imported}}",
- "writeFailures": "{count, plural, one {# row failed while writing} other {# rows failed while writing}}",
- "rowFailure": "Row {row}: {error}",
- "undo": "Undo this import",
- "undone": "Removed {customers} customers, {vehicles} vehicles and {services} service records.",
- "undoHint": "Undo removes every record this import created. Records it only updated keep their new values."
- },
- "history": {
- "title": "Import history",
- "description": "Spreadsheet imports run on this workshop. Undo removes what an import created.",
- "loading": "Loading...",
- "statusUndone": "Undone",
- "counts": "{created} created, {updated} updated, {skipped} skipped, {failed} failed",
- "undo": "Undo",
- "undone": "Removed {customers} customers, {vehicles} vehicles and {services} service records.",
- "undoFailed": "Could not undo the import",
- "confirmTitle": "Undo this import?",
- "confirmDescription": "Removes what {file} created: {customers} customers, {vehicles} vehicles and {services} service records. Records the import only updated are kept.",
- "cancel": "Cancel",
- "confirm": "Undo import"
- },
- "fields": {
- "customer": {
- "name": "Customer name",
- "firstName": "First name",
- "lastName": "Last name",
- "customerNumber": "Customer number",
- "email": "Email",
- "phone": "Phone",
- "company": "Company",
- "address": "Address",
- "street": "Street",
- "postalCode": "Postal code",
- "city": "City",
- "state": "State / region",
- "country": "Country",
- "taxId": "Tax ID",
- "notes": "Customer notes"
- },
- "vehicle": {
- "description": "Vehicle (year make model in one column)",
- "make": "Make",
- "model": "Model",
- "year": "Year",
- "vin": "VIN",
- "licensePlate": "License plate",
- "color": "Color",
- "mileage": "Mileage",
- "fuelType": "Fuel type",
- "transmission": "Transmission",
- "engineSize": "Engine size",
- "engineCode": "Engine code",
- "purchaseDate": "Purchase date",
- "purchasePrice": "Purchase price"
- },
- "service": {
- "date": "Service date",
- "title": "Service title",
- "description": "Description",
- "total": "Total amount",
- "mileage": "Mileage at service",
- "invoiceNumber": "Invoice number",
- "notes": "Service notes",
- "technician": "Technician"
- }
- },
- "issues": {
- "customer_name_required": "Customer name is missing",
- "invalid_email": "Email \"{value}\" is not valid and was left out",
- "invalid_vin": "VIN \"{value}\" is not 17 characters; kept as typed",
- "vehicle_make_model_required": "Make and model are missing",
- "vehicle_year_required": "Year is missing",
- "vehicle_year_invalid": "Year \"{value}\" is not a valid year",
- "vehicle_identifier_required": "No plate, VIN or make and model to identify the vehicle",
- "vehicle_not_found": "No existing vehicle matches \"{value}\" and there is not enough to create one",
- "service_date_required": "Service date is missing",
- "service_date_invalid": "Date \"{value}\" could not be read",
- "service_title_required": "Service title or description is missing",
- "invalid_date": "{field} \"{value}\" could not be read and was left out",
- "invalid_number": "{field} \"{value}\" is not a number and was left out",
- "duplicate_invoice_number": "Invoice number {value} already exists",
- "write_failed": "Could not be written: {value}"
- },
- "errors": {
- "uploadFailed": "The file could not be read",
- "aiFailed": "AI could not suggest a mapping",
- "dryRunFailed": "The dry run failed",
- "importFailed": "The import failed",
- "undoFailed": "Could not undo the import"
- },
- "entry": {
- "title": "Import from a spreadsheet",
- "description": "Bring customers, vehicles and service history from any system that exports CSV or Excel. Map the columns, run a dry run, then import. Every import can be undone.",
- "customers": "Import customers",
- "vehicles": "Import vehicles",
- "services": "Import service history"
- }
- }
|