| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478 |
- {
- "page": {
- "notFound": "Servicerecord niet gevonden",
- "updated": "Servicerecord bijgewerkt",
- "failedUpdate": "Servicerecord bijwerken mislukt",
- "deleteTitle": "Servicerecord verwijderen",
- "deleteDescription": "Dit zal dit servicerecord permanent verwijderen en alle bijbehorende gegevens. Dit kan niet ongedaan worden gemaakt.",
- "deleted": "Servicerecord verwijderd",
- "failedDelete": "Verwijderen mislukt",
- "datesExpiredTitle": "Factuurdatums verlopen",
- "datesExpiredDescription": "De factuurdatum of vervaldatum is verstreken. Wilt u de datums bijwerken voordat u verdergaat?",
- "datesExpiredUpdate": "Datums bijwerken en doorgaan",
- "datesExpiredProceed": "Doorgaan zonder wijzigingen",
- "datesExpiredUseToday": "Bijwerken naar vandaag",
- "datesExpiredCustomize": "Datums handmatig kiezen",
- "datesExpiredBack": "Terug",
- "datesExpiredSetToday": "Instellen op vandaag",
- "customFieldsInvalid": "Vul alle verplichte aangepaste velden in",
- "customFieldsSaveFailed": "Kan aangepaste velden niet opslaan",
- "problems": {
- "title": "De opdracht heeft een titel nodig voordat deze kan worden opgeslagen.",
- "negative": "Aantallen, uren, prijzen en kosten kunnen niet negatief zijn.",
- "partName": "Elk onderdeel met een prijs heeft een naam nodig.",
- "laborDescription": "Elke arbeidsregel met uren of tarief heeft een omschrijving nodig."
- }
- },
- "header": {
- "tabs": {
- "details": "Details",
- "images": "Afbeeldingen",
- "video": "Video",
- "documents": "Documenten",
- "statusReports": "Statusrapporten"
- },
- "save": "Opslaan",
- "pdf": "PDF",
- "email": "E-mail",
- "share": "Delen",
- "notify": "Melden",
- "delete": "Verwijderen",
- "unpaid": "Onbetaald",
- "unsavedChanges": "Niet-opgeslagen wijzigingen",
- "saved": "Opgeslagen",
- "joinCall": "Deelnemen aan videogesprek"
- },
- "basicInfo": {
- "title": "Basisinformatie",
- "invoiceDetails": "Factuurgegevens",
- "customerInfo": "Klant en voertuig",
- "paid": "Betaald",
- "markPaid": "Markeer als betaald",
- "markUnpaid": "Markeer als onbetaald",
- "vehicle": "Voertuig",
- "open": "Open",
- "customer": "Klant",
- "titleLabel": "Titel *",
- "titlePlaceholder": "Olievervanging",
- "date": "Datum",
- "type": "Type",
- "mileage": "Kilometerstand",
- "mileageMarine": "Motoruren",
- "status": "Status",
- "technician": "Technicus",
- "invoiceNumber": "Factuurnummer",
- "invoiceDate": "Factuurdatum",
- "invoiceDueDate": "Vervaldatum",
- "typeOptions": {
- "maintenance": "Onderhoud",
- "repair": "Reparatie",
- "upgrade": "Upgrade",
- "inspection": "Inspectie"
- },
- "statusOptions": {
- "pending": "In afwachting",
- "in_progress": "In uitvoering",
- "waiting_parts": "Wacht op onderdelen",
- "completed": "Voltooid"
- },
- "searchVehicles": "Voertuigen zoeken...",
- "noVehicleFound": "Geen voertuig gevonden.",
- "techPicker": {
- "placeholder": "Selecteer of typ een naam...",
- "searchPlaceholder": "Zoeken of naam typen...",
- "useCustom": "Gebruik \"{search}\"",
- "typePrompt": "Typ een naam...",
- "boardTechnicians": "Werkbordtechnici",
- "teamMembers": "Teamleden"
- },
- "design": "Factuurontwerp",
- "designDefault": "Standaard van de werkplaats",
- "designFollowing": "Standaard ({name})",
- "designPinned": "Het blad is bevroren toen de factuur op {date} werd uitgegeven. Een nieuwe keuze geldt pas nadat een eigenaar de factuur ontgrendelt en ze opnieuw wordt verzonden.",
- "designSaved": "Factuurontwerp bijgewerkt",
- "designFollowingRule": "Standaard ({name}, {rule})",
- "designRule": {
- "parts_sale": "Alleen onderdelenverkoop"
- },
- "designSaveFailed": "Kon het factuurontwerp niet wijzigen"
- },
- "parts": {
- "title": "Onderdelen",
- "fromInventory": "Uit voorraad",
- "addPart": "Onderdeel toevoegen",
- "partNumber": "Onderdeel #",
- "name": "Naam",
- "qty": "Hoeveelheid",
- "unitCost": "Inkoop",
- "unitCostHint": "Inkoopprijs (intern — niet zichtbaar voor klant)",
- "markupPercent": "Marge %",
- "markupPercentHint": "Marge toegepast op inkoopprijs (intern — niet zichtbaar voor klant)",
- "applyMarkup": "{percent}% toepassen",
- "applyMarkupHint": "{percent}% marge opnieuw toepassen op inkoop op elke rij",
- "unitPrice": "Eenheidsprijs",
- "total": "Totaal",
- "namePlaceholder": "Naam *",
- "subtotal": "Onderdelen totaal: {amount}",
- "inventoryTitle": "Onderdeel uit voorraad selecteren",
- "searchInventory": "Voorraad zoeken...",
- "inStock": "{quantity} in voorraad",
- "noInventory": "Geen voorraadarticelen gevonden.",
- "scanBarcode": "Scannen",
- "scanTitle": "Barcode scannen",
- "partFound": "\"{name}\" toegevoegd uit voorraad",
- "partNotFound": "Geen onderdeel gevonden voor barcode \"{barcode}\"",
- "deleteRow": "Delete row",
- "outOfStock": "Niet op voorraad",
- "onBackorder": "In nabestelling ({count})",
- "nameMissingHint": "Rijen zonder onderdeelnaam worden niet opgeslagen."
- },
- "labor": {
- "title": "Arbeidskosten",
- "addLabor": "Arbeid toevoegen",
- "fromPresets": "Uit sjablonen",
- "description": "Beschrijving",
- "hours": "Uren",
- "rate": "Tarief ({currency}/uur)",
- "total": "Totaal",
- "descriptionPlaceholder": "Beschrijving *",
- "subtotal": "Arbeidskosten totaal: {amount}",
- "addService": "Add Service",
- "addFinding": "Observatie",
- "newObservation": "Nieuwe observatie",
- "addExisting": "Bestaande tonen ({count})",
- "qty": "Qty",
- "qtyOrHours": "Unit / Hours",
- "hourlyTag": "HR",
- "serviceTag": "SVC",
- "switchToHourly": "Switch to hourly pricing",
- "switchToService": "Switch to service pricing",
- "switchToHourlyHint": "Per uur: berekend op gewerkte uren (uren × tarief/uur). Klik om te wisselen.",
- "switchToServiceHint": "Service: berekend als vast bedrag per eenheid. Klik om te wisselen.",
- "deleteRow": "Delete row",
- "descriptionMissingHint": "Regels zonder omschrijving worden niet opgeslagen."
- },
- "totals": {
- "title": "Totalen",
- "parts": "Onderdelen",
- "labor": "Arbeidskosten",
- "subtotal": "Subtotaal",
- "subtotalInclTax": "Subtotaal (incl. btw)",
- "discount": "Korting",
- "discountNone": "Geen",
- "discountPercentage": "Percentage",
- "discountFixed": "Vast",
- "tax": "Belasting",
- "taxIncluded": "Belasting (incl.)",
- "total": "Totaal",
- "inclusiveModeHint": "Regelprijzen worden inclusief belasting ingevoerd. De totalen tonen de uitsplitsing netto + belasting.",
- "partsCost": "Onderdelenkosten (intern)"
- },
- "notes": {
- "title": "Opmerkingen",
- "public": "Openbaar",
- "internal": "Intern",
- "publicPlaceholder": "Opmerkingen zichtbaar op de factuur...",
- "internalPlaceholder": "Interne opmerkingen (niet weergegeven op de factuur)...",
- "publicHelper": "Weergegeven op de factuur en gedeelde documenten",
- "internalHelper": "Alleen zichtbaar voor uw team",
- "aiWrite": "AI Schrijven",
- "aiGenerated": "AI-notities succesvol gegenereerd",
- "aiGenerateFailed": "AI-notities genereren mislukt",
- "aiDialogTitle": "AI Schrijven",
- "aiDialogDescription": "AI analyseert de onderdelen en arbeid in dit servicerecord en genereert een professionele beschrijving. Het resultaat wordt geschreven naar het geselecteerde notitietype.",
- "aiGenerate": "Genereren",
- "aiOverwriteDescription": "Deze notitie heeft al inhoud. U kunt deze vervangen of de AI-gegenereerde tekst eronder toevoegen.",
- "aiOverwriteReplace": "Vervangen",
- "aiOverwriteAppend": "Toevoegen",
- "aiOverwriteCancel": "Annuleren",
- "aiDontShowAgain": "Niet meer tonen"
- },
- "invoice": {
- "title": "Factuursamenvatting",
- "parts": "Onderdelen",
- "labor": "Arbeidskosten",
- "subtotal": "Subtotaal",
- "subtotalInclTax": "Subtotaal (incl. btw)",
- "discount": "Korting",
- "tax": "Belasting ({rate}%)",
- "taxIncluded": "Btw (incl., {rate}%)",
- "total": "Totaal",
- "paid": "Betaald",
- "balanceDue": "Verschuldigd bedrag",
- "paidBadge": "BETAALD",
- "entityLabel": "Factuur",
- "emailSubject": "Betalingsbevestiging",
- "statusEmailSubject": "Update servicestatus",
- "markCompletedTitle": "Deze factuur als afgerond markeren?",
- "markCompletedDescription": "Hij is naar de klant gegaan maar staat nog als niet afgerond, dus hij blijft op het bord staan.",
- "markCompletedConfirm": "Als afgerond markeren",
- "lockedFieldsetLabel": "Vergrendelde factuur, bewerken uitgeschakeld"
- },
- "payments": {
- "title": "Betalingen",
- "markUnpaid": "Markeren als onbetaald",
- "markPaid": "Markeren als betaald",
- "recordPayment": "Betaling registreren",
- "totalPaid": "Totaal betaald",
- "amount": "Bedrag",
- "date": "Datum",
- "method": "Methode",
- "note": "Opmerking",
- "notePlaceholder": "Optionele opmerking",
- "savePayment": "Betaling opslaan",
- "methodOptions": {
- "cash": "Contant",
- "card": "Kaart",
- "transfer": "Overboeking",
- "other": "Overig"
- },
- "recorded": "Betaling geregistreerd",
- "markedPaid": "Markering als betaald",
- "markedUnpaid": "Markering als onbetaald",
- "deleted": "Betaling verwijderd",
- "failedRecord": "Betaling registreren mislukt",
- "failedStatus": "Betalingsstatus bijwerken mislukt",
- "failedDelete": "Betaling verwijderen mislukt",
- "deleteTitle": "Betaling verwijderen",
- "deleteDescription": "Dit zal deze betalingsrecord verwijderen.",
- "failedPdf": "PDF-factuur genereren mislukt"
- },
- "attachments": {
- "deleteTitle": "Bijlage verwijderen",
- "deleteDescription": "Dit zal deze bijlage permanent verwijderen. Dit kan niet ongedaan worden gemaakt.",
- "deleted": "Bijlage verwijderd",
- "failedDelete": "Verwijderen mislukt",
- "images": "Afbeeldingen ({count})",
- "videos": "Video's ({count})",
- "diagnostics": "Diagnostische verslagen ({count})",
- "documents": "Documenten ({count})",
- "download": "Download",
- "close": "Close"
- },
- "share": {
- "title": "Factuur delen",
- "description": "Genereer een openbare koppeling waarmee iedereen deze factuur kan bekijken en downloaden zonder in te loggen.",
- "notifyTitle": "Stuur bericht naar {name}",
- "email": "E-mail",
- "noEmail": "(geen e-mailadres op bestand)",
- "sms": "SMS",
- "noPhone": "(geen telefoonnummer op bestand)",
- "sendNotification": "Melding verzenden",
- "revokeLink": "Koppeling intrekken",
- "generateLink": "Openbare koppeling genereren",
- "emailSent": "E-mail verzonden",
- "failedEmail": "E-mail verzenden mislukt",
- "smsSent": "SMS verzonden",
- "failedSms": "SMS verzenden mislukt",
- "copyLink": "Copy link"
- },
- "sidebar": {
- "vehicle": "Voertuig",
- "customer": "Klant",
- "vin": "VIN: {vin}",
- "mileageAtService": "Kilometerstand bij service: {mileage} {unit}",
- "engineHoursAtService": "Motoruren bij service: {mileage} {unit}",
- "sharedLink": {
- "title": "Gedeelde link",
- "sharedOn": "Gedeeld op {date}",
- "notViewed": "Nog niet bekeken",
- "viewedTimes": "{count, plural, one {# keer} other {# keer}} bekeken",
- "lastViewed": "Laatst {date}",
- "copyLink": "Link kopiëren",
- "linkCopied": "Link gekopieerd"
- }
- },
- "images": {
- "title": "Service-afbeeldingen",
- "dropzone": "Sleep afbeeldingen hierheen of klik om te bladeren",
- "uploading": "Uploaden...",
- "formats": "JPG, PNG, WebP — max. 10 MB per stuk",
- "uploadingImages": "Afbeeldingen uploaden...",
- "limitReached": "Afbeeldingslimiet bereikt ({count}/{max})",
- "upgradePrompt": "Upgrade uw abonnement om meer afbeeldingen te uploaden.",
- "onlyAllowed": "Alleen JPG, PNG en WebP afbeeldingen zijn toegestaan. {names} overgeslagen.",
- "onlyUploading": "Er worden slechts {count} afbeelding(en) geüpload om binnen de limiet te blijven.",
- "uploadingCount": "{count} afbeelding(en) uploaden...",
- "uploadedCount": "{count} afbeelding(en) geüpload",
- "uploadFailed": "Upload mislukt",
- "deleted": "Afbeelding verwijderd",
- "failedDelete": "Afbeelding verwijderen mislukt",
- "failedUpdate": "Bijwerken mislukt",
- "description": "Beschrijving...",
- "invoice": "Factuur"
- },
- "videos": {
- "title": "Service-video's",
- "dropzone": "Sleep video's hierheen of klik om te bladeren",
- "uploading": "Uploaden...",
- "formats": "MP4, WebM, MOV — max. 10 MB per stuk",
- "uploadingVideos": "Video's uploaden...",
- "uploadingCount": "{count} video('s) uploaden...",
- "uploadedCount": "{count} video('s) geüpload",
- "uploadFailed": "Upload mislukt",
- "deleted": "Video verwijderd",
- "failedDelete": "Video verwijderen mislukt",
- "failedUpdate": "Bijwerken mislukt",
- "invoice": "Factuur"
- },
- "documents": {
- "diagnosticTitle": "Diagnostische Verslagen",
- "documentsTitle": "Documenten",
- "dropzone": "Sleep bestanden hierheen of klik om te bladeren",
- "uploading": "Uploaden...",
- "diagnosticFormats": "PDF, CSV, TXT — max. 10 MB per stuk",
- "documentFormats": "PDF, DOCX, XLSX, CSV, TXT — max. 10 MB per stuk",
- "uploadingReports": "Verslagen uploaden...",
- "uploadingDocuments": "Documenten uploaden...",
- "diagnosticLimitReached": "Limiet diagnostische verslagen bereikt ({count}/{max})",
- "documentLimitReached": "Documentlimiet bereikt ({count}/{max})",
- "upgradePrompt": "Upgrade uw abonnement om meer te uploaden.",
- "diagnosticLabel": "Diagnostisch verslag",
- "documentLabel": "Document",
- "limitReachedToast": "{label}-limiet bereikt ({count}/{max}). Upgrade uw abonnement voor meer.",
- "onlyUploading": "Er worden slechts {count} bestand(en) geüpload om binnen de limiet te blijven.",
- "uploadingCount": "{count} bestand(en) uploaden...",
- "uploadedCount": "{count} bestand(en) geüpload",
- "uploadFailed": "Upload mislukt",
- "deleted": "Bestand verwijderd",
- "failedDelete": "Bestand verwijderen mislukt",
- "failedUpdate": "Bijwerken mislukt",
- "invoice": "Factuur"
- },
- "schedule": {
- "title": "Planning",
- "date": "Datum",
- "startTime": "Starttijd",
- "endTime": "Eindtijd",
- "technician": "Technicus",
- "selectTechnician": "Selecteer technicus...",
- "searchOrCreate": "Zoek of maak technicus aan...",
- "createTechnician": "\"{name}\" aanmaken",
- "creating": "Aanmaken...",
- "failedCreate": "Technicus aanmaken mislukt",
- "addNew": "+ Nieuwe toevoegen",
- "add": "Toevoegen",
- "newTechPlaceholder": "Naam technicus...",
- "assign": "Toewijzen aan bord",
- "assigned": "Toegewezen aan werkbord",
- "failedAssign": "Toewijzing mislukt",
- "endBeforeStart": "Eindtijd moet na de starttijd zijn",
- "failedUpdate": "Planning bijwerken mislukt",
- "splitCreated": "Taak beslaat meerdere dagen — vervolg aangemaakt voor de volgende dag",
- "platformUsers": "Platform Users",
- "customTechnicians": "Custom",
- "readMore": "Meer lezen",
- "setDefaults": "Standaardwaarden",
- "workBay": "Werkplek",
- "selectWorkBay": "Werkplek kiezen…",
- "noWorkBay": "Geen werkplek",
- "noTechnician": "Zonder monteur",
- "technicians": "Monteurs",
- "otherTeamMembers": "Andere teamleden",
- "makeTechnician": "Maakt hen monteur",
- "addSomeoneNew": "Iemand nieuw toevoegen",
- "notOnBoard": "Nog niet op het bord",
- "putOnBoard": "Op het bord zetten",
- "slotTaken": "{count, plural, one {Dit tijdslot is al bezet} other {Dit tijdslot heeft # conflicten}}",
- "anotherJob": "een andere klus",
- "clashTechnician": "de monteur is bezet",
- "clashBay": "de brug is bezet",
- "clashBoth": "beide zijn bezet",
- "bookedAnyway": "Toch opgeslagen. Wijzig de tijd of kies het eerstvolgende vrije slot.",
- "pickNextAvailable": "Kies eerstvolgende vrije slot",
- "findingSlot": "Slot zoeken…",
- "slotPicked": "Ingepland op het eerstvolgende vrije slot",
- "noSlotFound": "Geen vrij slot gevonden in de komende weken"
- },
- "notifications": {
- "title": "Klantmeldingen",
- "viaSms": "via SMS",
- "viaEmail": "via e-mail",
- "justNow": "Zojuist",
- "minutesAgo": "{count}m geleden",
- "hoursAgo": "{count}u geleden",
- "daysAgo": "{count}d geleden"
- },
- "table": {
- "warranty": "Garantie"
- },
- "warranty": {
- "title": "Garantie",
- "months": "Duur (maanden)",
- "mileage": "Kilometerlimiet",
- "notes": "Garantievoorwaarden",
- "notesPlaceholder": "bijv. 12 maanden garantie op alle onderdelen en arbeid...",
- "expiresAt": "Verloopt",
- "presets": {
- "3months": "3 md",
- "6months": "6 md",
- "12months": "12 md",
- "24months": "24 md"
- },
- "status": {
- "active": "Actief",
- "expiring": "Verloopt binnenkort",
- "expired": "Verlopen",
- "none": "Geen"
- },
- "defaults": {
- "title": "Standaard garantie-instellingen",
- "description": "Stel standaard garantievoorwaarden in voor nieuwe serviceregistraties"
- }
- },
- "concerns": {
- "title": "Klantmeldingen",
- "addFirst": "Klantmelding toevoegen",
- "add": "Nog een toevoegen",
- "placeholder": "Er komt een geluid van achteren als ik rem",
- "remove": "Dit punt verwijderen",
- "notAnswered": "Hier is nog niets op gevonden",
- "answered": "{count} bevinding(en) hierop"
- },
- "videoCall": {
- "title": "Videogesprek",
- "none": "Geen videogesprek op deze werkorder.",
- "needsSchedule": "Stel eerst een starttijd in. De vergadering volgt de planning.",
- "add": "{provider}-vergadering toevoegen",
- "addedHere": "toegevoegd vanaf deze werkorder",
- "fromCalendar": "uit de agenda-afspraak",
- "join": "Deelnemen",
- "copy": "Link kopiëren",
- "copied": "Link gekopieerd",
- "remove": "Verwijderen",
- "removeTitle": "Videogesprek verwijderen?",
- "removeDescription": "De vergadering wordt bij de aanbieder verwijderd. Wie de link al heeft, kan niet meer deelnemen.",
- "created": "Vergadering aangemaakt. De link staat op de werkorder.",
- "removed": "Vergadering verwijderd",
- "failed": "Er is iets misgegaan",
- "shareHint": "De klant krijgt deze link alleen als je die verstuurt.",
- "shareHintNoChannel": "De klant krijgt deze link alleen als je die verstuurt. Er is geen berichtenkanaal ingesteld, dus kopieer hem zelf in een bericht.",
- "send": {
- "button": "Naar klant sturen",
- "title": "Link van het videogesprek sturen",
- "description": "De deelnamelink naar {name} sturen.",
- "messageLabel": "Notitie (optioneel)",
- "messagePlaceholder": "Wat de klant vóór het gesprek moet weten...",
- "linkAlwaysIncluded": "De deelnamelink komt altijd onder je notitie.",
- "sms": "Sms",
- "email": "E-mail",
- "telegram": "Telegram",
- "noPhone": "(geen telefoon)",
- "noEmail": "(geen e-mail)",
- "noTelegram": "(geen chat gekoppeld)",
- "notAvailable": "(niet ingesteld)",
- "cancel": "Annuleren",
- "send": "Versturen",
- "sent": "Link van het videogesprek verstuurd",
- "partlySent": "Verstuurd via {sent}; niet via {failed}",
- "failed": "Link kon niet worden verstuurd"
- },
- "notify": {
- "invitation": "Hallo {name}, je videogesprek over de {vehicle} is op {when}. Neem hier deel: {url}",
- "invitationNoTime": "Hallo {name}, hier is de link voor het videogesprek over de {vehicle}: {url}",
- "joinLine": "Neem hier deel aan het videogesprek: {url}",
- "emailSubject": "Videogesprek over je {vehicle}"
- }
- }
- }
|