Просмотр исходного кода

Sum up a workshop's own inspection in plain words instead of a roadworthiness verdict (#524)

Bernt Christian Egeland 3 дней назад
Родитель
Сommit
98e1505c86
46 измененных файлов с 712 добавлено и 51 удалено
  1. 14 0
      messages/de/inspections.json
  2. 12 1
      messages/de/pdf.json
  3. 15 1
      messages/de/share.json
  4. 14 0
      messages/en/inspections.json
  5. 12 1
      messages/en/pdf.json
  6. 15 1
      messages/en/share.json
  7. 14 0
      messages/es/inspections.json
  8. 12 1
      messages/es/pdf.json
  9. 15 1
      messages/es/share.json
  10. 14 0
      messages/fr/inspections.json
  11. 12 1
      messages/fr/pdf.json
  12. 15 1
      messages/fr/share.json
  13. 14 0
      messages/it/inspections.json
  14. 12 1
      messages/it/pdf.json
  15. 15 1
      messages/it/share.json
  16. 14 0
      messages/lt/inspections.json
  17. 12 1
      messages/lt/pdf.json
  18. 15 1
      messages/lt/share.json
  19. 14 0
      messages/nb/inspections.json
  20. 12 1
      messages/nb/pdf.json
  21. 15 1
      messages/nb/share.json
  22. 14 0
      messages/nl/inspections.json
  23. 12 1
      messages/nl/pdf.json
  24. 15 1
      messages/nl/share.json
  25. 14 0
      messages/pl/inspections.json
  26. 12 1
      messages/pl/pdf.json
  27. 15 1
      messages/pl/share.json
  28. 14 0
      messages/pt-BR/inspections.json
  29. 12 1
      messages/pt-BR/pdf.json
  30. 15 1
      messages/pt-BR/share.json
  31. 14 0
      messages/pt-PT/inspections.json
  32. 12 1
      messages/pt-PT/pdf.json
  33. 15 1
      messages/pt-PT/share.json
  34. 14 0
      messages/ru/inspections.json
  35. 12 1
      messages/ru/pdf.json
  36. 15 1
      messages/ru/share.json
  37. 14 0
      messages/tr/inspections.json
  38. 12 1
      messages/tr/pdf.json
  39. 15 1
      messages/tr/share.json
  40. 52 0
      src/__tests__/features/inspections/certificate-print.test.ts
  41. 18 0
      src/__tests__/features/public/inspection-view.test.tsx
  42. 5 2
      src/app/(public)/share/inspection/[orgId]/[token]/inspection-view.tsx
  43. 45 16
      src/features/inspections/Components/InspectionPDF.tsx
  44. 25 0
      src/features/inspections/Lib/conditions.ts
  45. 4 2
      src/features/inspections/Lib/useConditionLabels.ts
  46. 30 5
      src/features/inspections/Pdf/buildCertificatePrint.ts

+ 14 - 0
messages/de/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Fotos",
     "photos": "Fotos",
     "documents": "Dokumente",
     "documents": "Dokumente",
     "video": "Video"
     "video": "Video"
+  },
+  "checkResults": {
+    "pass": "Alle Punkte in Ordnung",
+    "pass_minor": "Einige Punkte im Auge behalten",
+    "fail": "Einige Punkte müssen repariert werden",
+    "fail_dangerous": "Einige Punkte müssen dringend repariert werden",
+    "incomplete": "Nicht abgeschlossen",
+    "detail": {
+      "pass": "Nichts musste beanstandet werden.",
+      "pass_minor": "Nichts Dringendes. Die markierten Punkte sollten Sie einplanen.",
+      "fail": "Einige Punkte müssen repariert werden. Die Notizen beschreiben, was gefunden wurde.",
+      "fail_dangerous": "Einige Punkte sind nicht sicher und sollten vor der weiteren Nutzung repariert werden.",
+      "incomplete": "Diese Prüfung läuft noch."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/de/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Nicht zutreffend",
     "basicNotApplicable": "Nicht zutreffend",
     "allResults": "Alle Ergebnisse",
     "allResults": "Alle Ergebnisse",
     "signature": "Unterschrift",
     "signature": "Unterschrift",
-    "sectionColumn": "Abschnitt"
+    "sectionColumn": "Abschnitt",
+    "checkPass": "Alle Punkte in Ordnung",
+    "checkPassMinor": "Einige Punkte im Auge behalten",
+    "checkFail": "Einige Punkte müssen repariert werden",
+    "checkFailDangerous": "Einige Punkte müssen dringend repariert werden",
+    "checkIncomplete": "Nicht abgeschlossen",
+    "checkDetailPass": "Nichts musste beanstandet werden.",
+    "checkDetailPassMinor": "Nichts Dringendes. Die markierten Punkte sollten Sie einplanen.",
+    "checkDetailFail": "Einige Punkte müssen repariert werden. Die Notizen beschreiben, was gefunden wurde.",
+    "checkDetailFailDangerous": "Einige Punkte sind nicht sicher und sollten vor der weiteren Nutzung repariert werden.",
+    "checkDetailIncomplete": "Diese Prüfung läuft noch.",
+    "overallCheck": "Zusammenfassung"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "SERVICEHISTORIE",
     "serviceHistoryTitle": "SERVICEHISTORIE",

+ 15 - 1
messages/de/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Festgestellte Mängel ({count})",
     "deficienciesFound": "Festgestellte Mängel ({count})",
     "allResults": "Alle Ergebnisse",
     "allResults": "Alle Ergebnisse",
     "privacyNotice": "Dieser Bericht wird Ihnen von der Werkstatt bereitgestellt, die die Prüfung durchgeführt hat. Er ist für jeden mit diesem Link abrufbar — bitte leiten Sie ihn nicht weiter. Wenden Sie sich an die Werkstatt, um den Link zurückzuziehen oder Ihre Daten löschen zu lassen.",
     "privacyNotice": "Dieser Bericht wird Ihnen von der Werkstatt bereitgestellt, die die Prüfung durchgeführt hat. Er ist für jeden mit diesem Link abrufbar — bitte leiten Sie ihn nicht weiter. Wenden Sie sich an die Werkstatt, um den Link zurückzuziehen oder Ihre Daten löschen zu lassen.",
-    "inspectionPhotos": "Fotos und Dokumente"
+    "inspectionPhotos": "Fotos und Dokumente",
+    "checkResult": {
+      "pass": "Alle Punkte in Ordnung",
+      "pass_minor": "Einige Punkte im Auge behalten",
+      "fail": "Einige Punkte müssen repariert werden",
+      "fail_dangerous": "Einige Punkte müssen dringend repariert werden",
+      "incomplete": "Nicht abgeschlossen"
+    },
+    "checkResultDetail": {
+      "pass": "Nichts musste beanstandet werden.",
+      "pass_minor": "Nichts Dringendes. Die markierten Punkte sollten Sie einplanen.",
+      "fail": "Einige Punkte müssen repariert werden. Die Notizen beschreiben, was gefunden wurde.",
+      "fail_dangerous": "Einige Punkte sind nicht sicher und sollten vor der weiteren Nutzung repariert werden.",
+      "incomplete": "Diese Prüfung läuft noch."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Verkaufsbedingungen",
     "title": "Verkaufsbedingungen",

+ 14 - 0
messages/en/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Photos",
     "photos": "Photos",
     "documents": "Documents",
     "documents": "Documents",
     "video": "Video"
     "video": "Video"
+  },
+  "checkResults": {
+    "pass": "All checks passed",
+    "pass_minor": "Some items to keep an eye on",
+    "fail": "Some items need work",
+    "fail_dangerous": "Some items need urgent work",
+    "incomplete": "Not completed",
+    "detail": {
+      "pass": "Nothing needed attention.",
+      "pass_minor": "Nothing urgent. The items marked for attention are worth planning for.",
+      "fail": "Some items need repairing. The notes say what was found.",
+      "fail_dangerous": "Some items are unsafe and should be repaired before further use.",
+      "incomplete": "This check is still in progress."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/en/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Not applicable",
     "basicNotApplicable": "Not applicable",
     "allResults": "All results",
     "allResults": "All results",
     "signature": "Signature",
     "signature": "Signature",
-    "sectionColumn": "Section"
+    "sectionColumn": "Section",
+    "checkPass": "All checks passed",
+    "checkPassMinor": "Some items to keep an eye on",
+    "checkFail": "Some items need work",
+    "checkFailDangerous": "Some items need urgent work",
+    "checkIncomplete": "Not completed",
+    "checkDetailPass": "Nothing needed attention.",
+    "checkDetailPassMinor": "Nothing urgent. The items marked for attention are worth planning for.",
+    "checkDetailFail": "Some items need repairing. The notes say what was found.",
+    "checkDetailFailDangerous": "Some items are unsafe and should be repaired before further use.",
+    "checkDetailIncomplete": "This check is still in progress.",
+    "overallCheck": "Summary"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "SERVICE HISTORY",
     "serviceHistoryTitle": "SERVICE HISTORY",

+ 15 - 1
messages/en/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Deficiencies found ({count})",
     "deficienciesFound": "Deficiencies found ({count})",
     "allResults": "All results",
     "allResults": "All results",
     "privacyNotice": "This report is shared with you by the workshop that carried out the inspection. It is available to anyone holding this link, so please do not forward it. Contact the workshop to have the link withdrawn or your data erased.",
     "privacyNotice": "This report is shared with you by the workshop that carried out the inspection. It is available to anyone holding this link, so please do not forward it. Contact the workshop to have the link withdrawn or your data erased.",
-    "inspectionPhotos": "Photos and documents"
+    "inspectionPhotos": "Photos and documents",
+    "checkResult": {
+      "pass": "All checks passed",
+      "pass_minor": "Some items to keep an eye on",
+      "fail": "Some items need work",
+      "fail_dangerous": "Some items need urgent work",
+      "incomplete": "Not completed"
+    },
+    "checkResultDetail": {
+      "pass": "Nothing needed attention.",
+      "pass_minor": "Nothing urgent. The items marked for attention are worth planning for.",
+      "fail": "Some items need repairing. The notes say what was found.",
+      "fail_dangerous": "Some items are unsafe and should be repaired before further use.",
+      "incomplete": "This check is still in progress."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Terms of Sale",
     "title": "Terms of Sale",

+ 14 - 0
messages/es/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Fotos",
     "photos": "Fotos",
     "documents": "Documentos",
     "documents": "Documentos",
     "video": "Vídeo"
     "video": "Vídeo"
+  },
+  "checkResults": {
+    "pass": "Todo en orden",
+    "pass_minor": "Algunos puntos a vigilar",
+    "fail": "Algunos puntos necesitan reparación",
+    "fail_dangerous": "Algunos puntos necesitan reparación urgente",
+    "incomplete": "Sin completar",
+    "detail": {
+      "pass": "No había nada que requiriera atención.",
+      "pass_minor": "Nada urgente. Conviene planificar los puntos marcados.",
+      "fail": "Algunos puntos necesitan reparación. Las notas indican lo que se encontró.",
+      "fail_dangerous": "Algunos puntos no son seguros y deben repararse antes de seguir usándolo.",
+      "incomplete": "Esta revisión aún está en curso."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/es/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "No aplicable",
     "basicNotApplicable": "No aplicable",
     "allResults": "Todos los resultados",
     "allResults": "Todos los resultados",
     "signature": "Firma",
     "signature": "Firma",
-    "sectionColumn": "Sección"
+    "sectionColumn": "Sección",
+    "checkPass": "Todo en orden",
+    "checkPassMinor": "Algunos puntos a vigilar",
+    "checkFail": "Algunos puntos necesitan reparación",
+    "checkFailDangerous": "Algunos puntos necesitan reparación urgente",
+    "checkIncomplete": "Sin completar",
+    "checkDetailPass": "No había nada que requiriera atención.",
+    "checkDetailPassMinor": "Nada urgente. Conviene planificar los puntos marcados.",
+    "checkDetailFail": "Algunos puntos necesitan reparación. Las notas indican lo que se encontró.",
+    "checkDetailFailDangerous": "Algunos puntos no son seguros y deben repararse antes de seguir usándolo.",
+    "checkDetailIncomplete": "Esta revisión aún está en curso.",
+    "overallCheck": "Resumen"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "HISTORIAL DE SERVICIO",
     "serviceHistoryTitle": "HISTORIAL DE SERVICIO",

+ 15 - 1
messages/es/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Deficiencias detectadas ({count})",
     "deficienciesFound": "Deficiencias detectadas ({count})",
     "allResults": "Todos los resultados",
     "allResults": "Todos los resultados",
     "privacyNotice": "Este informe se lo facilita el taller que realizó la inspección. Cualquier persona con este enlace puede consultarlo, así que le rogamos que no lo reenvíe. Contacte con el taller para retirar el enlace o solicitar la supresión de sus datos.",
     "privacyNotice": "Este informe se lo facilita el taller que realizó la inspección. Cualquier persona con este enlace puede consultarlo, así que le rogamos que no lo reenvíe. Contacte con el taller para retirar el enlace o solicitar la supresión de sus datos.",
-    "inspectionPhotos": "Fotos y documentos"
+    "inspectionPhotos": "Fotos y documentos",
+    "checkResult": {
+      "pass": "Todo en orden",
+      "pass_minor": "Algunos puntos a vigilar",
+      "fail": "Algunos puntos necesitan reparación",
+      "fail_dangerous": "Algunos puntos necesitan reparación urgente",
+      "incomplete": "Sin completar"
+    },
+    "checkResultDetail": {
+      "pass": "No había nada que requiriera atención.",
+      "pass_minor": "Nada urgente. Conviene planificar los puntos marcados.",
+      "fail": "Algunos puntos necesitan reparación. Las notas indican lo que se encontró.",
+      "fail_dangerous": "Algunos puntos no son seguros y deben repararse antes de seguir usándolo.",
+      "incomplete": "Esta revisión aún está en curso."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Términos de venta",
     "title": "Términos de venta",

+ 14 - 0
messages/fr/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Photos",
     "photos": "Photos",
     "documents": "Documents",
     "documents": "Documents",
     "video": "Vidéo"
     "video": "Vidéo"
+  },
+  "checkResults": {
+    "pass": "Tous les points sont conformes",
+    "pass_minor": "Quelques points à surveiller",
+    "fail": "Quelques points à réparer",
+    "fail_dangerous": "Quelques points à réparer d'urgence",
+    "incomplete": "Non terminé",
+    "detail": {
+      "pass": "Rien ne nécessitait d'intervention.",
+      "pass_minor": "Rien d'urgent. Pensez à prévoir les points signalés.",
+      "fail": "Certains points doivent être réparés. Les notes indiquent ce qui a été constaté.",
+      "fail_dangerous": "Certains points ne sont pas sûrs et doivent être réparés avant toute nouvelle utilisation.",
+      "incomplete": "Ce contrôle est encore en cours."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/fr/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Sans objet",
     "basicNotApplicable": "Sans objet",
     "allResults": "Tous les résultats",
     "allResults": "Tous les résultats",
     "signature": "Signature",
     "signature": "Signature",
-    "sectionColumn": "Section"
+    "sectionColumn": "Section",
+    "checkPass": "Tous les points sont conformes",
+    "checkPassMinor": "Quelques points à surveiller",
+    "checkFail": "Quelques points à réparer",
+    "checkFailDangerous": "Quelques points à réparer d'urgence",
+    "checkIncomplete": "Non terminé",
+    "checkDetailPass": "Rien ne nécessitait d'intervention.",
+    "checkDetailPassMinor": "Rien d'urgent. Pensez à prévoir les points signalés.",
+    "checkDetailFail": "Certains points doivent être réparés. Les notes indiquent ce qui a été constaté.",
+    "checkDetailFailDangerous": "Certains points ne sont pas sûrs et doivent être réparés avant toute nouvelle utilisation.",
+    "checkDetailIncomplete": "Ce contrôle est encore en cours.",
+    "overallCheck": "Résumé"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "HISTORIQUE D'ENTRETIEN",
     "serviceHistoryTitle": "HISTORIQUE D'ENTRETIEN",

+ 15 - 1
messages/fr/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Défaillances constatées ({count})",
     "deficienciesFound": "Défaillances constatées ({count})",
     "allResults": "Tous les résultats",
     "allResults": "Tous les résultats",
     "privacyNotice": "Ce rapport vous est communiqué par l'atelier qui a réalisé le contrôle. Toute personne disposant de ce lien peut le consulter : merci de ne pas le transmettre. Contactez l'atelier pour faire retirer le lien ou effacer vos données.",
     "privacyNotice": "Ce rapport vous est communiqué par l'atelier qui a réalisé le contrôle. Toute personne disposant de ce lien peut le consulter : merci de ne pas le transmettre. Contactez l'atelier pour faire retirer le lien ou effacer vos données.",
-    "inspectionPhotos": "Photos et documents"
+    "inspectionPhotos": "Photos et documents",
+    "checkResult": {
+      "pass": "Tous les points sont conformes",
+      "pass_minor": "Quelques points à surveiller",
+      "fail": "Quelques points à réparer",
+      "fail_dangerous": "Quelques points à réparer d'urgence",
+      "incomplete": "Non terminé"
+    },
+    "checkResultDetail": {
+      "pass": "Rien ne nécessitait d'intervention.",
+      "pass_minor": "Rien d'urgent. Pensez à prévoir les points signalés.",
+      "fail": "Certains points doivent être réparés. Les notes indiquent ce qui a été constaté.",
+      "fail_dangerous": "Certains points ne sont pas sûrs et doivent être réparés avant toute nouvelle utilisation.",
+      "incomplete": "Ce contrôle est encore en cours."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Conditions de vente",
     "title": "Conditions de vente",

+ 14 - 0
messages/it/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Foto",
     "photos": "Foto",
     "documents": "Documenti",
     "documents": "Documenti",
     "video": "Video"
     "video": "Video"
+  },
+  "checkResults": {
+    "pass": "Tutto in ordine",
+    "pass_minor": "Alcuni punti da tenere d'occhio",
+    "fail": "Alcuni punti da riparare",
+    "fail_dangerous": "Alcuni punti da riparare con urgenza",
+    "incomplete": "Non completato",
+    "detail": {
+      "pass": "Nulla richiedeva attenzione.",
+      "pass_minor": "Niente di urgente. Conviene pianificare i punti segnalati.",
+      "fail": "Alcuni punti vanno riparati. Le note indicano cosa è stato trovato.",
+      "fail_dangerous": "Alcuni punti non sono sicuri e vanno riparati prima di continuare a usarlo.",
+      "incomplete": "Questo controllo è ancora in corso."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/it/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Non applicabile",
     "basicNotApplicable": "Non applicabile",
     "allResults": "Tutti gli esiti",
     "allResults": "Tutti gli esiti",
     "signature": "Firma",
     "signature": "Firma",
-    "sectionColumn": "Sezione"
+    "sectionColumn": "Sezione",
+    "checkPass": "Tutto in ordine",
+    "checkPassMinor": "Alcuni punti da tenere d'occhio",
+    "checkFail": "Alcuni punti da riparare",
+    "checkFailDangerous": "Alcuni punti da riparare con urgenza",
+    "checkIncomplete": "Non completato",
+    "checkDetailPass": "Nulla richiedeva attenzione.",
+    "checkDetailPassMinor": "Niente di urgente. Conviene pianificare i punti segnalati.",
+    "checkDetailFail": "Alcuni punti vanno riparati. Le note indicano cosa è stato trovato.",
+    "checkDetailFailDangerous": "Alcuni punti non sono sicuri e vanno riparati prima di continuare a usarlo.",
+    "checkDetailIncomplete": "Questo controllo è ancora in corso.",
+    "overallCheck": "Riepilogo"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "STORICO ASSISTENZA",
     "serviceHistoryTitle": "STORICO ASSISTENZA",

+ 15 - 1
messages/it/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Carenze riscontrate ({count})",
     "deficienciesFound": "Carenze riscontrate ({count})",
     "allResults": "Tutti i risultati",
     "allResults": "Tutti i risultati",
     "privacyNotice": "Questo rapporto le viene fornito dall'officina che ha eseguito il controllo. È consultabile da chiunque disponga di questo link: la preghiamo di non inoltrarlo. Contatti l'officina per revocare il link o cancellare i suoi dati.",
     "privacyNotice": "Questo rapporto le viene fornito dall'officina che ha eseguito il controllo. È consultabile da chiunque disponga di questo link: la preghiamo di non inoltrarlo. Contatti l'officina per revocare il link o cancellare i suoi dati.",
-    "inspectionPhotos": "Foto e documenti"
+    "inspectionPhotos": "Foto e documenti",
+    "checkResult": {
+      "pass": "Tutto in ordine",
+      "pass_minor": "Alcuni punti da tenere d'occhio",
+      "fail": "Alcuni punti da riparare",
+      "fail_dangerous": "Alcuni punti da riparare con urgenza",
+      "incomplete": "Non completato"
+    },
+    "checkResultDetail": {
+      "pass": "Nulla richiedeva attenzione.",
+      "pass_minor": "Niente di urgente. Conviene pianificare i punti segnalati.",
+      "fail": "Alcuni punti vanno riparati. Le note indicano cosa è stato trovato.",
+      "fail_dangerous": "Alcuni punti non sono sicuri e vanno riparati prima di continuare a usarlo.",
+      "incomplete": "Questo controllo è ancora in corso."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Condizioni di Vendita",
     "title": "Condizioni di Vendita",

+ 14 - 0
messages/lt/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Nuotraukos",
     "photos": "Nuotraukos",
     "documents": "Dokumentai",
     "documents": "Dokumentai",
     "video": "Vaizdo įrašai"
     "video": "Vaizdo įrašai"
+  },
+  "checkResults": {
+    "pass": "Viskas tvarkoje",
+    "pass_minor": "Keli punktai, kuriuos verta stebėti",
+    "fail": "Kelis punktus reikia sutaisyti",
+    "fail_dangerous": "Kelis punktus reikia skubiai sutaisyti",
+    "incomplete": "Nebaigta",
+    "detail": {
+      "pass": "Nieko nereikėjo taisyti.",
+      "pass_minor": "Nieko skubaus. Pažymėtus punktus verta suplanuoti.",
+      "fail": "Kai kuriuos punktus reikia sutaisyti. Pastabose nurodyta, kas rasta.",
+      "fail_dangerous": "Kai kurie punktai nesaugūs, juos reikia sutaisyti prieš toliau naudojant.",
+      "incomplete": "Ši patikra dar vyksta."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/lt/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Netaikoma",
     "basicNotApplicable": "Netaikoma",
     "allResults": "Visi rezultatai",
     "allResults": "Visi rezultatai",
     "signature": "Parašas",
     "signature": "Parašas",
-    "sectionColumn": "Skyrius"
+    "sectionColumn": "Skyrius",
+    "checkPass": "Viskas tvarkoje",
+    "checkPassMinor": "Keli punktai, kuriuos verta stebėti",
+    "checkFail": "Kelis punktus reikia sutaisyti",
+    "checkFailDangerous": "Kelis punktus reikia skubiai sutaisyti",
+    "checkIncomplete": "Nebaigta",
+    "checkDetailPass": "Nieko nereikėjo taisyti.",
+    "checkDetailPassMinor": "Nieko skubaus. Pažymėtus punktus verta suplanuoti.",
+    "checkDetailFail": "Kai kuriuos punktus reikia sutaisyti. Pastabose nurodyta, kas rasta.",
+    "checkDetailFailDangerous": "Kai kurie punktai nesaugūs, juos reikia sutaisyti prieš toliau naudojant.",
+    "checkDetailIncomplete": "Ši patikra dar vyksta.",
+    "overallCheck": "Santrauka"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "PASLAUGŲ ISTORIJA",
     "serviceHistoryTitle": "PASLAUGŲ ISTORIJA",

+ 15 - 1
messages/lt/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Nustatyti trūkumai ({count})",
     "deficienciesFound": "Nustatyti trūkumai ({count})",
     "allResults": "Visi rezultatai",
     "allResults": "Visi rezultatai",
     "privacyNotice": "Šią ataskaitą jums pateikia dirbtuvės, atlikusios apžiūrą. Ją gali peržiūrėti kiekvienas, turintis šią nuorodą, todėl neperduokite jos kitiems. Kreipkitės į dirbtuves, jei norite, kad nuoroda būtų panaikinta arba jūsų duomenys ištrinti.",
     "privacyNotice": "Šią ataskaitą jums pateikia dirbtuvės, atlikusios apžiūrą. Ją gali peržiūrėti kiekvienas, turintis šią nuorodą, todėl neperduokite jos kitiems. Kreipkitės į dirbtuves, jei norite, kad nuoroda būtų panaikinta arba jūsų duomenys ištrinti.",
-    "inspectionPhotos": "Nuotraukos ir dokumentai"
+    "inspectionPhotos": "Nuotraukos ir dokumentai",
+    "checkResult": {
+      "pass": "Viskas tvarkoje",
+      "pass_minor": "Keli punktai, kuriuos verta stebėti",
+      "fail": "Kelis punktus reikia sutaisyti",
+      "fail_dangerous": "Kelis punktus reikia skubiai sutaisyti",
+      "incomplete": "Nebaigta"
+    },
+    "checkResultDetail": {
+      "pass": "Nieko nereikėjo taisyti.",
+      "pass_minor": "Nieko skubaus. Pažymėtus punktus verta suplanuoti.",
+      "fail": "Kai kuriuos punktus reikia sutaisyti. Pastabose nurodyta, kas rasta.",
+      "fail_dangerous": "Kai kurie punktai nesaugūs, juos reikia sutaisyti prieš toliau naudojant.",
+      "incomplete": "Ši patikra dar vyksta."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Pardavimo sąlygos",
     "title": "Pardavimo sąlygos",

+ 14 - 0
messages/nb/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Bilder",
     "photos": "Bilder",
     "documents": "Dokumenter",
     "documents": "Dokumenter",
     "video": "Video"
     "video": "Video"
+  },
+  "checkResults": {
+    "pass": "Alt i orden",
+    "pass_minor": "Noen punkter å følge med på",
+    "fail": "Noen punkter må repareres",
+    "fail_dangerous": "Noen punkter må repareres snarest",
+    "incomplete": "Ikke fullført",
+    "detail": {
+      "pass": "Ingenting trengte oppfølging.",
+      "pass_minor": "Ikke noe som haster. Punktene som er merket bør planlegges inn.",
+      "fail": "Noen punkter må repareres. Notatene forteller hva som ble funnet.",
+      "fail_dangerous": "Noen punkter er ikke trygge og bør repareres før videre bruk.",
+      "incomplete": "Denne kontrollen pågår fortsatt."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/nb/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Ikke aktuelt",
     "basicNotApplicable": "Ikke aktuelt",
     "allResults": "Alle resultater",
     "allResults": "Alle resultater",
     "signature": "Signatur",
     "signature": "Signatur",
-    "sectionColumn": "Seksjon"
+    "sectionColumn": "Seksjon",
+    "checkPass": "Alt i orden",
+    "checkPassMinor": "Noen punkter å følge med på",
+    "checkFail": "Noen punkter må repareres",
+    "checkFailDangerous": "Noen punkter må repareres snarest",
+    "checkIncomplete": "Ikke fullført",
+    "checkDetailPass": "Ingenting trengte oppfølging.",
+    "checkDetailPassMinor": "Ikke noe som haster. Punktene som er merket bør planlegges inn.",
+    "checkDetailFail": "Noen punkter må repareres. Notatene forteller hva som ble funnet.",
+    "checkDetailFailDangerous": "Noen punkter er ikke trygge og bør repareres før videre bruk.",
+    "checkDetailIncomplete": "Denne kontrollen pågår fortsatt.",
+    "overallCheck": "Oppsummering"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "SERVICEHISTORIKK",
     "serviceHistoryTitle": "SERVICEHISTORIKK",

+ 15 - 1
messages/nb/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Mangler funnet ({count})",
     "deficienciesFound": "Mangler funnet ({count})",
     "allResults": "Alle resultater",
     "allResults": "Alle resultater",
     "privacyNotice": "Denne rapporten deles med deg av verkstedet som utførte kontrollen. Alle som har lenken kan se den, så ikke send den videre. Ta kontakt med verkstedet for å trekke tilbake lenken eller få slettet opplysningene dine.",
     "privacyNotice": "Denne rapporten deles med deg av verkstedet som utførte kontrollen. Alle som har lenken kan se den, så ikke send den videre. Ta kontakt med verkstedet for å trekke tilbake lenken eller få slettet opplysningene dine.",
-    "inspectionPhotos": "Bilder og dokumenter"
+    "inspectionPhotos": "Bilder og dokumenter",
+    "checkResult": {
+      "pass": "Alt i orden",
+      "pass_minor": "Noen punkter å følge med på",
+      "fail": "Noen punkter må repareres",
+      "fail_dangerous": "Noen punkter må repareres snarest",
+      "incomplete": "Ikke fullført"
+    },
+    "checkResultDetail": {
+      "pass": "Ingenting trengte oppfølging.",
+      "pass_minor": "Ikke noe som haster. Punktene som er merket bør planlegges inn.",
+      "fail": "Noen punkter må repareres. Notatene forteller hva som ble funnet.",
+      "fail_dangerous": "Noen punkter er ikke trygge og bør repareres før videre bruk.",
+      "incomplete": "Denne kontrollen pågår fortsatt."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Salgsvilkår",
     "title": "Salgsvilkår",

+ 14 - 0
messages/nl/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Foto's",
     "photos": "Foto's",
     "documents": "Documenten",
     "documents": "Documenten",
     "video": "Video"
     "video": "Video"
+  },
+  "checkResults": {
+    "pass": "Alles in orde",
+    "pass_minor": "Enkele punten om in de gaten te houden",
+    "fail": "Enkele punten moeten worden gerepareerd",
+    "fail_dangerous": "Enkele punten moeten dringend worden gerepareerd",
+    "incomplete": "Niet voltooid",
+    "detail": {
+      "pass": "Er hoefde niets te gebeuren.",
+      "pass_minor": "Niets dringends. De gemarkeerde punten zijn het inplannen waard.",
+      "fail": "Enkele punten moeten worden gerepareerd. De notities zeggen wat er is gevonden.",
+      "fail_dangerous": "Enkele punten zijn niet veilig en moeten worden gerepareerd voor verder gebruik.",
+      "incomplete": "Deze controle is nog bezig."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/nl/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Niet van toepassing",
     "basicNotApplicable": "Niet van toepassing",
     "allResults": "Alle resultaten",
     "allResults": "Alle resultaten",
     "signature": "Handtekening",
     "signature": "Handtekening",
-    "sectionColumn": "Sectie"
+    "sectionColumn": "Sectie",
+    "checkPass": "Alles in orde",
+    "checkPassMinor": "Enkele punten om in de gaten te houden",
+    "checkFail": "Enkele punten moeten worden gerepareerd",
+    "checkFailDangerous": "Enkele punten moeten dringend worden gerepareerd",
+    "checkIncomplete": "Niet voltooid",
+    "checkDetailPass": "Er hoefde niets te gebeuren.",
+    "checkDetailPassMinor": "Niets dringends. De gemarkeerde punten zijn het inplannen waard.",
+    "checkDetailFail": "Enkele punten moeten worden gerepareerd. De notities zeggen wat er is gevonden.",
+    "checkDetailFailDangerous": "Enkele punten zijn niet veilig en moeten worden gerepareerd voor verder gebruik.",
+    "checkDetailIncomplete": "Deze controle is nog bezig.",
+    "overallCheck": "Samenvatting"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "SERVICEGESCHIEDENIS",
     "serviceHistoryTitle": "SERVICEGESCHIEDENIS",

+ 15 - 1
messages/nl/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Vastgestelde gebreken ({count})",
     "deficienciesFound": "Vastgestelde gebreken ({count})",
     "allResults": "Alle resultaten",
     "allResults": "Alle resultaten",
     "privacyNotice": "Dit rapport wordt u verstrekt door de werkplaats die de keuring heeft uitgevoerd. Iedereen met deze link kan het bekijken; stuur de link daarom niet door. Neem contact op met de werkplaats om de link in te trekken of uw gegevens te laten wissen.",
     "privacyNotice": "Dit rapport wordt u verstrekt door de werkplaats die de keuring heeft uitgevoerd. Iedereen met deze link kan het bekijken; stuur de link daarom niet door. Neem contact op met de werkplaats om de link in te trekken of uw gegevens te laten wissen.",
-    "inspectionPhotos": "Foto's en documenten"
+    "inspectionPhotos": "Foto's en documenten",
+    "checkResult": {
+      "pass": "Alles in orde",
+      "pass_minor": "Enkele punten om in de gaten te houden",
+      "fail": "Enkele punten moeten worden gerepareerd",
+      "fail_dangerous": "Enkele punten moeten dringend worden gerepareerd",
+      "incomplete": "Niet voltooid"
+    },
+    "checkResultDetail": {
+      "pass": "Er hoefde niets te gebeuren.",
+      "pass_minor": "Niets dringends. De gemarkeerde punten zijn het inplannen waard.",
+      "fail": "Enkele punten moeten worden gerepareerd. De notities zeggen wat er is gevonden.",
+      "fail_dangerous": "Enkele punten zijn niet veilig en moeten worden gerepareerd voor verder gebruik.",
+      "incomplete": "Deze controle is nog bezig."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Verkoopvoorwaarden",
     "title": "Verkoopvoorwaarden",

+ 14 - 0
messages/pl/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Zdjęcia",
     "photos": "Zdjęcia",
     "documents": "Dokumenty",
     "documents": "Dokumenty",
     "video": "Wideo"
     "video": "Wideo"
+  },
+  "checkResults": {
+    "pass": "Wszystko w porządku",
+    "pass_minor": "Kilka punktów do obserwacji",
+    "fail": "Kilka punktów wymaga naprawy",
+    "fail_dangerous": "Kilka punktów wymaga pilnej naprawy",
+    "incomplete": "Nie zakończono",
+    "detail": {
+      "pass": "Nic nie wymagało uwagi.",
+      "pass_minor": "Nic pilnego. Warto zaplanować oznaczone punkty.",
+      "fail": "Niektóre punkty wymagają naprawy. Notatki opisują, co znaleziono.",
+      "fail_dangerous": "Niektóre punkty nie są bezpieczne i należy je naprawić przed dalszym użytkowaniem.",
+      "incomplete": "Ta kontrola wciąż trwa."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/pl/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Nie dotyczy",
     "basicNotApplicable": "Nie dotyczy",
     "allResults": "Wszystkie wyniki",
     "allResults": "Wszystkie wyniki",
     "signature": "Podpis",
     "signature": "Podpis",
-    "sectionColumn": "Sekcja"
+    "sectionColumn": "Sekcja",
+    "checkPass": "Wszystko w porządku",
+    "checkPassMinor": "Kilka punktów do obserwacji",
+    "checkFail": "Kilka punktów wymaga naprawy",
+    "checkFailDangerous": "Kilka punktów wymaga pilnej naprawy",
+    "checkIncomplete": "Nie zakończono",
+    "checkDetailPass": "Nic nie wymagało uwagi.",
+    "checkDetailPassMinor": "Nic pilnego. Warto zaplanować oznaczone punkty.",
+    "checkDetailFail": "Niektóre punkty wymagają naprawy. Notatki opisują, co znaleziono.",
+    "checkDetailFailDangerous": "Niektóre punkty nie są bezpieczne i należy je naprawić przed dalszym użytkowaniem.",
+    "checkDetailIncomplete": "Ta kontrola wciąż trwa.",
+    "overallCheck": "Podsumowanie"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "HISTORIA SERWISOWA",
     "serviceHistoryTitle": "HISTORIA SERWISOWA",

+ 15 - 1
messages/pl/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Stwierdzone usterki ({count})",
     "deficienciesFound": "Stwierdzone usterki ({count})",
     "allResults": "Wszystkie wyniki",
     "allResults": "Wszystkie wyniki",
     "privacyNotice": "Ten raport udostępnia Ci warsztat, który wykonał badanie. Może go zobaczyć każdy, kto ma ten link — prosimy go nie przekazywać. Skontaktuj się z warsztatem, aby wycofać link lub usunąć swoje dane.",
     "privacyNotice": "Ten raport udostępnia Ci warsztat, który wykonał badanie. Może go zobaczyć każdy, kto ma ten link — prosimy go nie przekazywać. Skontaktuj się z warsztatem, aby wycofać link lub usunąć swoje dane.",
-    "inspectionPhotos": "Zdjęcia i dokumenty"
+    "inspectionPhotos": "Zdjęcia i dokumenty",
+    "checkResult": {
+      "pass": "Wszystko w porządku",
+      "pass_minor": "Kilka punktów do obserwacji",
+      "fail": "Kilka punktów wymaga naprawy",
+      "fail_dangerous": "Kilka punktów wymaga pilnej naprawy",
+      "incomplete": "Nie zakończono"
+    },
+    "checkResultDetail": {
+      "pass": "Nic nie wymagało uwagi.",
+      "pass_minor": "Nic pilnego. Warto zaplanować oznaczone punkty.",
+      "fail": "Niektóre punkty wymagają naprawy. Notatki opisują, co znaleziono.",
+      "fail_dangerous": "Niektóre punkty nie są bezpieczne i należy je naprawić przed dalszym użytkowaniem.",
+      "incomplete": "Ta kontrola wciąż trwa."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Warunki sprzedaży",
     "title": "Warunki sprzedaży",

+ 14 - 0
messages/pt-BR/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Fotos",
     "photos": "Fotos",
     "documents": "Documentos",
     "documents": "Documentos",
     "video": "Vídeo"
     "video": "Vídeo"
+  },
+  "checkResults": {
+    "pass": "Tudo em ordem",
+    "pass_minor": "Alguns itens para acompanhar",
+    "fail": "Alguns itens precisam de reparo",
+    "fail_dangerous": "Alguns itens precisam de reparo urgente",
+    "incomplete": "Não concluída",
+    "detail": {
+      "pass": "Nada precisou de atenção.",
+      "pass_minor": "Nada urgente. Vale planejar os itens marcados.",
+      "fail": "Alguns itens precisam de reparo. As anotações dizem o que foi encontrado.",
+      "fail_dangerous": "Alguns itens não são seguros e devem ser reparados antes de continuar o uso.",
+      "incomplete": "Esta verificação ainda está em andamento."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/pt-BR/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Não aplicável",
     "basicNotApplicable": "Não aplicável",
     "allResults": "Todos os resultados",
     "allResults": "Todos os resultados",
     "signature": "Assinatura",
     "signature": "Assinatura",
-    "sectionColumn": "Seção"
+    "sectionColumn": "Seção",
+    "checkPass": "Tudo em ordem",
+    "checkPassMinor": "Alguns itens para acompanhar",
+    "checkFail": "Alguns itens precisam de reparo",
+    "checkFailDangerous": "Alguns itens precisam de reparo urgente",
+    "checkIncomplete": "Não concluída",
+    "checkDetailPass": "Nada precisou de atenção.",
+    "checkDetailPassMinor": "Nada urgente. Vale planejar os itens marcados.",
+    "checkDetailFail": "Alguns itens precisam de reparo. As anotações dizem o que foi encontrado.",
+    "checkDetailFailDangerous": "Alguns itens não são seguros e devem ser reparados antes de continuar o uso.",
+    "checkDetailIncomplete": "Esta verificação ainda está em andamento.",
+    "overallCheck": "Resumo"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "HISTÓRICO DE SERVIÇO",
     "serviceHistoryTitle": "HISTÓRICO DE SERVIÇO",

+ 15 - 1
messages/pt-BR/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Deficiências encontradas ({count})",
     "deficienciesFound": "Deficiências encontradas ({count})",
     "allResults": "Todos os resultados",
     "allResults": "Todos os resultados",
     "privacyNotice": "Este relatório é compartilhado com você pela oficina que realizou a inspeção. Qualquer pessoa com este link pode acessá-lo, portanto não o encaminhe. Entre em contato com a oficina para revogar o link ou solicitar a exclusão dos seus dados.",
     "privacyNotice": "Este relatório é compartilhado com você pela oficina que realizou a inspeção. Qualquer pessoa com este link pode acessá-lo, portanto não o encaminhe. Entre em contato com a oficina para revogar o link ou solicitar a exclusão dos seus dados.",
-    "inspectionPhotos": "Fotos e documentos"
+    "inspectionPhotos": "Fotos e documentos",
+    "checkResult": {
+      "pass": "Tudo em ordem",
+      "pass_minor": "Alguns itens para acompanhar",
+      "fail": "Alguns itens precisam de reparo",
+      "fail_dangerous": "Alguns itens precisam de reparo urgente",
+      "incomplete": "Não concluída"
+    },
+    "checkResultDetail": {
+      "pass": "Nada precisou de atenção.",
+      "pass_minor": "Nada urgente. Vale planejar os itens marcados.",
+      "fail": "Alguns itens precisam de reparo. As anotações dizem o que foi encontrado.",
+      "fail_dangerous": "Alguns itens não são seguros e devem ser reparados antes de continuar o uso.",
+      "incomplete": "Esta verificação ainda está em andamento."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Termos de Venda",
     "title": "Termos de Venda",

+ 14 - 0
messages/pt-PT/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Fotografias",
     "photos": "Fotografias",
     "documents": "Documentos",
     "documents": "Documentos",
     "video": "Vídeo"
     "video": "Vídeo"
+  },
+  "checkResults": {
+    "pass": "Tudo em ordem",
+    "pass_minor": "Alguns itens a acompanhar",
+    "fail": "Alguns itens precisam de reparação",
+    "fail_dangerous": "Alguns itens precisam de reparação urgente",
+    "incomplete": "Não concluída",
+    "detail": {
+      "pass": "Nada precisou de atenção.",
+      "pass_minor": "Nada urgente. Convém planear os itens assinalados.",
+      "fail": "Alguns itens precisam de reparação. As notas indicam o que foi encontrado.",
+      "fail_dangerous": "Alguns itens não são seguros e devem ser reparados antes de continuar a utilização.",
+      "incomplete": "Esta verificação ainda está em curso."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/pt-PT/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Não aplicável",
     "basicNotApplicable": "Não aplicável",
     "allResults": "Todos os resultados",
     "allResults": "Todos os resultados",
     "signature": "Assinatura",
     "signature": "Assinatura",
-    "sectionColumn": "Secção"
+    "sectionColumn": "Secção",
+    "checkPass": "Tudo em ordem",
+    "checkPassMinor": "Alguns itens a acompanhar",
+    "checkFail": "Alguns itens precisam de reparação",
+    "checkFailDangerous": "Alguns itens precisam de reparação urgente",
+    "checkIncomplete": "Não concluída",
+    "checkDetailPass": "Nada precisou de atenção.",
+    "checkDetailPassMinor": "Nada urgente. Convém planear os itens assinalados.",
+    "checkDetailFail": "Alguns itens precisam de reparação. As notas indicam o que foi encontrado.",
+    "checkDetailFailDangerous": "Alguns itens não são seguros e devem ser reparados antes de continuar a utilização.",
+    "checkDetailIncomplete": "Esta verificação ainda está em curso.",
+    "overallCheck": "Resumo"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "HISTÓRICO DE SERVIÇOS",
     "serviceHistoryTitle": "HISTÓRICO DE SERVIÇOS",

+ 15 - 1
messages/pt-PT/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Deficiências detetadas ({count})",
     "deficienciesFound": "Deficiências detetadas ({count})",
     "allResults": "Todos os resultados",
     "allResults": "Todos os resultados",
     "privacyNotice": "Este relatório foi partilhado consigo pela oficina que realizou a inspeção. Qualquer pessoa com este link pode aceder-lhe, por isso não o reencaminhe. Contacte a oficina para desativar o link ou pedir a eliminação dos seus dados.",
     "privacyNotice": "Este relatório foi partilhado consigo pela oficina que realizou a inspeção. Qualquer pessoa com este link pode aceder-lhe, por isso não o reencaminhe. Contacte a oficina para desativar o link ou pedir a eliminação dos seus dados.",
-    "inspectionPhotos": "Fotografias e documentos"
+    "inspectionPhotos": "Fotografias e documentos",
+    "checkResult": {
+      "pass": "Tudo em ordem",
+      "pass_minor": "Alguns itens a acompanhar",
+      "fail": "Alguns itens precisam de reparação",
+      "fail_dangerous": "Alguns itens precisam de reparação urgente",
+      "incomplete": "Não concluída"
+    },
+    "checkResultDetail": {
+      "pass": "Nada precisou de atenção.",
+      "pass_minor": "Nada urgente. Convém planear os itens assinalados.",
+      "fail": "Alguns itens precisam de reparação. As notas indicam o que foi encontrado.",
+      "fail_dangerous": "Alguns itens não são seguros e devem ser reparados antes de continuar a utilização.",
+      "incomplete": "Esta verificação ainda está em curso."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Condições Gerais de Venda",
     "title": "Condições Gerais de Venda",

+ 14 - 0
messages/ru/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Фото",
     "photos": "Фото",
     "documents": "Документы",
     "documents": "Документы",
     "video": "Видео"
     "video": "Видео"
+  },
+  "checkResults": {
+    "pass": "Всё в порядке",
+    "pass_minor": "Несколько пунктов под наблюдением",
+    "fail": "Несколько пунктов требуют ремонта",
+    "fail_dangerous": "Несколько пунктов требуют срочного ремонта",
+    "incomplete": "Не завершено",
+    "detail": {
+      "pass": "Ничего не требовало внимания.",
+      "pass_minor": "Ничего срочного. Отмеченные пункты стоит запланировать.",
+      "fail": "Некоторые пункты требуют ремонта. В заметках сказано, что найдено.",
+      "fail_dangerous": "Некоторые пункты небезопасны, их нужно отремонтировать до дальнейшей эксплуатации.",
+      "incomplete": "Эта проверка ещё не завершена."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/ru/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Не применимо",
     "basicNotApplicable": "Не применимо",
     "allResults": "Все результаты",
     "allResults": "Все результаты",
     "signature": "Подпись",
     "signature": "Подпись",
-    "sectionColumn": "Раздел"
+    "sectionColumn": "Раздел",
+    "checkPass": "Всё в порядке",
+    "checkPassMinor": "Несколько пунктов под наблюдением",
+    "checkFail": "Несколько пунктов требуют ремонта",
+    "checkFailDangerous": "Несколько пунктов требуют срочного ремонта",
+    "checkIncomplete": "Не завершено",
+    "checkDetailPass": "Ничего не требовало внимания.",
+    "checkDetailPassMinor": "Ничего срочного. Отмеченные пункты стоит запланировать.",
+    "checkDetailFail": "Некоторые пункты требуют ремонта. В заметках сказано, что найдено.",
+    "checkDetailFailDangerous": "Некоторые пункты небезопасны, их нужно отремонтировать до дальнейшей эксплуатации.",
+    "checkDetailIncomplete": "Эта проверка ещё не завершена.",
+    "overallCheck": "Итог"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "ИСТОРИЯ ОБСЛУЖИВАНИЯ",
     "serviceHistoryTitle": "ИСТОРИЯ ОБСЛУЖИВАНИЯ",

+ 15 - 1
messages/ru/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Выявленные неисправности ({count})",
     "deficienciesFound": "Выявленные неисправности ({count})",
     "allResults": "Все результаты",
     "allResults": "Все результаты",
     "privacyNotice": "Этот отчёт предоставлен вам мастерской, проводившей проверку. Он доступен любому, у кого есть эта ссылка, — не пересылайте её. Обратитесь в мастерскую, чтобы отозвать ссылку или удалить ваши данные.",
     "privacyNotice": "Этот отчёт предоставлен вам мастерской, проводившей проверку. Он доступен любому, у кого есть эта ссылка, — не пересылайте её. Обратитесь в мастерскую, чтобы отозвать ссылку или удалить ваши данные.",
-    "inspectionPhotos": "Фото и документы"
+    "inspectionPhotos": "Фото и документы",
+    "checkResult": {
+      "pass": "Всё в порядке",
+      "pass_minor": "Несколько пунктов под наблюдением",
+      "fail": "Несколько пунктов требуют ремонта",
+      "fail_dangerous": "Несколько пунктов требуют срочного ремонта",
+      "incomplete": "Не завершено"
+    },
+    "checkResultDetail": {
+      "pass": "Ничего не требовало внимания.",
+      "pass_minor": "Ничего срочного. Отмеченные пункты стоит запланировать.",
+      "fail": "Некоторые пункты требуют ремонта. В заметках сказано, что найдено.",
+      "fail_dangerous": "Некоторые пункты небезопасны, их нужно отремонтировать до дальнейшей эксплуатации.",
+      "incomplete": "Эта проверка ещё не завершена."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Условия продажи",
     "title": "Условия продажи",

+ 14 - 0
messages/tr/inspections.json

@@ -494,5 +494,19 @@
     "photos": "Fotoğraflar",
     "photos": "Fotoğraflar",
     "documents": "Belgeler",
     "documents": "Belgeler",
     "video": "Video"
     "video": "Video"
+  },
+  "checkResults": {
+    "pass": "Her şey yolunda",
+    "pass_minor": "Takip edilmesi gereken birkaç nokta",
+    "fail": "Onarım gereken birkaç nokta",
+    "fail_dangerous": "Acil onarım gereken birkaç nokta",
+    "incomplete": "Tamamlanmadı",
+    "detail": {
+      "pass": "Dikkat gerektiren bir şey yoktu.",
+      "pass_minor": "Acil bir şey yok. İşaretli noktaları planlamakta fayda var.",
+      "fail": "Bazı noktaların onarılması gerekiyor. Notlar neyin bulunduğunu anlatıyor.",
+      "fail_dangerous": "Bazı noktalar güvenli değil ve kullanıma devam etmeden önce onarılmalı.",
+      "incomplete": "Bu kontrol hâlâ sürüyor."
+    }
   }
   }
 }
 }

+ 12 - 1
messages/tr/pdf.json

@@ -195,7 +195,18 @@
     "basicNotApplicable": "Uygulanamaz",
     "basicNotApplicable": "Uygulanamaz",
     "allResults": "Tüm sonuçlar",
     "allResults": "Tüm sonuçlar",
     "signature": "İmza",
     "signature": "İmza",
-    "sectionColumn": "Bölüm"
+    "sectionColumn": "Bölüm",
+    "checkPass": "Her şey yolunda",
+    "checkPassMinor": "Takip edilmesi gereken birkaç nokta",
+    "checkFail": "Onarım gereken birkaç nokta",
+    "checkFailDangerous": "Acil onarım gereken birkaç nokta",
+    "checkIncomplete": "Tamamlanmadı",
+    "checkDetailPass": "Dikkat gerektiren bir şey yoktu.",
+    "checkDetailPassMinor": "Acil bir şey yok. İşaretli noktaları planlamakta fayda var.",
+    "checkDetailFail": "Bazı noktaların onarılması gerekiyor. Notlar neyin bulunduğunu anlatıyor.",
+    "checkDetailFailDangerous": "Bazı noktalar güvenli değil ve kullanıma devam etmeden önce onarılmalı.",
+    "checkDetailIncomplete": "Bu kontrol hâlâ sürüyor.",
+    "overallCheck": "Özet"
   },
   },
   "serviceHistory": {
   "serviceHistory": {
     "serviceHistoryTitle": "SERVİS GEÇMİŞİ",
     "serviceHistoryTitle": "SERVİS GEÇMİŞİ",

+ 15 - 1
messages/tr/share.json

@@ -202,7 +202,21 @@
     "deficienciesFound": "Tespit edilen kusurlar ({count})",
     "deficienciesFound": "Tespit edilen kusurlar ({count})",
     "allResults": "Tüm sonuçlar",
     "allResults": "Tüm sonuçlar",
     "privacyNotice": "Bu rapor, muayeneyi yapan servis tarafından sizinle paylaşılmıştır. Bu bağlantıya sahip herkes raporu görebilir, lütfen iletmeyin. Bağlantının geri çekilmesi veya verilerinizin silinmesi için servisle iletişime geçin.",
     "privacyNotice": "Bu rapor, muayeneyi yapan servis tarafından sizinle paylaşılmıştır. Bu bağlantıya sahip herkes raporu görebilir, lütfen iletmeyin. Bağlantının geri çekilmesi veya verilerinizin silinmesi için servisle iletişime geçin.",
-    "inspectionPhotos": "Fotoğraflar ve belgeler"
+    "inspectionPhotos": "Fotoğraflar ve belgeler",
+    "checkResult": {
+      "pass": "Her şey yolunda",
+      "pass_minor": "Takip edilmesi gereken birkaç nokta",
+      "fail": "Onarım gereken birkaç nokta",
+      "fail_dangerous": "Acil onarım gereken birkaç nokta",
+      "incomplete": "Tamamlanmadı"
+    },
+    "checkResultDetail": {
+      "pass": "Dikkat gerektiren bir şey yoktu.",
+      "pass_minor": "Acil bir şey yok. İşaretli noktaları planlamakta fayda var.",
+      "fail": "Bazı noktaların onarılması gerekiyor. Notlar neyin bulunduğunu anlatıyor.",
+      "fail_dangerous": "Bazı noktalar güvenli değil ve kullanıma devam etmeden önce onarılmalı.",
+      "incomplete": "Bu kontrol hâlâ sürüyor."
+    }
   },
   },
   "terms": {
   "terms": {
     "title": "Satış Koşulları",
     "title": "Satış Koşulları",

+ 52 - 0
src/__tests__/features/inspections/certificate-print.test.ts

@@ -312,3 +312,55 @@ describe('the certificate result switches', () => {
     ).toEqual([])
     ).toEqual([])
   })
   })
 })
 })
+
+/**
+ * Only the EU scale is a roadworthiness test. A workshop's own check on the
+ * basic scale (a multi-point check, a check-in) is summed up in plain words: it
+ * used to borrow the test verdict, so one worn tyre on a pre-track check read
+ * "The vehicle fails ... must be retested".
+ */
+describe('the result of a workshop check rather than a roadworthiness test', () => {
+  const basic = () => {
+    const d = data()
+    return {
+      ...d,
+      severityScale: 'basic',
+      country: null,
+      template: { name: 'Standard multi-point inspection', severityScale: 'basic', country: null },
+      items: [
+        item({ id: 'p', name: 'Lights', condition: 'pass', sortOrder: 1 }),
+        item({
+          id: 't',
+          name: 'Tread depth',
+          condition: 'fail',
+          notes: 'Worn inside edge',
+          sortOrder: 2,
+        }),
+      ],
+    }
+  }
+  const resultOf = (inspection: unknown) => {
+    const spec = buildCertificatePrintSpec({
+      data: inspection as any,
+      workshop: { name: 'Shop', address: 'Road 1', phone: '555', email: 's@x.no' },
+      labels: {},
+      layoutConfig: getDefaultLayout('certificate'),
+    }) as any
+    return texts(spec.blocks.find((b: any) => b.id === 'result')?.content)
+  }
+
+  it('sums up a failed item as work to do, not a failed test', () => {
+    const t = resultOf(basic())
+    expect(t[0]).toBe('Some items need work')
+    expect(t.join(' ')).not.toMatch(/fails|retested/i)
+  })
+
+  it('keeps the test verdict for an inspection on the EU scale', () => {
+    const eu = {
+      ...basic(),
+      severityScale: 'eu',
+      template: { ...basic().template, severityScale: 'eu' },
+    }
+    expect(resultOf(eu)[0]).toBe('Fail — major defects')
+  })
+})

+ 18 - 0
src/__tests__/features/public/inspection-view.test.tsx

@@ -258,6 +258,24 @@ describe('InspectionView', () => {
       expect(screen.queryByText('Minor defect')).not.toBeInTheDocument()
       expect(screen.queryByText('Minor defect')).not.toBeInTheDocument()
     })
     })
 
 
+    it('gives a test verdict on the EU scale', () => {
+      render(<InspectionView {...DEFAULT_PROPS} />)
+      expect(screen.getByRole('heading', { name: 'Fail — major defects' })).toBeInTheDocument()
+    })
+
+    it("sums up a workshop's own check without a test verdict", () => {
+      const props = {
+        ...DEFAULT_PROPS,
+        inspection: {
+          ...BASE_INSPECTION,
+          template: { name: 'Standard multi-point inspection', severityScale: 'basic' },
+        },
+      }
+      render(<InspectionView {...props} />)
+      expect(screen.getByRole('heading', { name: 'Some items need work' })).toBeInTheDocument()
+      expect(screen.queryByText(/the vehicle fails/i)).not.toBeInTheDocument()
+    })
+
     it('renders item notes when present', () => {
     it('renders item notes when present', () => {
       render(<InspectionView {...DEFAULT_PROPS} />)
       render(<InspectionView {...DEFAULT_PROPS} />)
       // Once in the deficiencies summary and once in the full results.
       // Once in the deficiencies summary and once in the full results.

+ 5 - 2
src/app/(public)/share/inspection/[orgId]/[token]/inspection-view.tsx

@@ -358,10 +358,13 @@ export function InspectionView({
             aria-labelledby="result-heading"
             aria-labelledby="result-heading"
             className={`mb-6 rounded-xl border-2 p-5 ${resultToken.soft}`}
             className={`mb-6 rounded-xl border-2 p-5 ${resultToken.soft}`}
           >
           >
+            {/* A roadworthiness test gives a verdict; a workshop's own check gives a summary. */}
             <h2 id="result-heading" className="text-xl font-bold">
             <h2 id="result-heading" className="text-xl font-bold">
-              {t(`result.${result}`)}
+              {t(scale === 'basic' ? `checkResult.${result}` : `result.${result}`)}
             </h2>
             </h2>
-            <p className="mt-1 text-sm">{t(`resultDetail.${result}`)}</p>
+            <p className="mt-1 text-sm">
+              {t(scale === 'basic' ? `checkResultDetail.${result}` : `resultDetail.${result}`)}
+            </p>
           </section>
           </section>
 
 
           {/* Test details */}
           {/* Test details */}

+ 45 - 16
src/features/inspections/Components/InspectionPDF.tsx

@@ -4,6 +4,7 @@ import { createStyles, gray, getFontBold } from '@/features/vehicles/Components/
 import type { TemplateConfig } from '@/features/vehicles/Components/invoice-pdf/types'
 import type { TemplateConfig } from '@/features/vehicles/Components/invoice-pdf/types'
 import {
 import {
   CONDITION_TOKENS,
   CONDITION_TOKENS,
+  CHECK_RESULT_COPY,
   TEST_RESULT_TOKENS,
   TEST_RESULT_TOKENS,
   gradedConditionLabel,
   gradedConditionLabel,
   countConditions,
   countConditions,
@@ -92,6 +93,13 @@ const FALLBACK: Record<string, string> = {
   resultFailDangerous: 'Fail — dangerous defects',
   resultFailDangerous: 'Fail — dangerous defects',
   resultIncomplete: 'Not completed',
   resultIncomplete: 'Not completed',
   overallResult: 'Result of the test',
   overallResult: 'Result of the test',
+  // A workshop's own check (basic scale) is summed up, not given a test verdict.
+  overallCheck: 'Summary',
+  checkPass: CHECK_RESULT_COPY.pass.label,
+  checkPassMinor: CHECK_RESULT_COPY.pass_minor.label,
+  checkFail: CHECK_RESULT_COPY.fail.label,
+  checkFailDangerous: CHECK_RESULT_COPY.fail_dangerous.label,
+  checkIncomplete: CHECK_RESULT_COPY.incomplete.label,
   testDetails: 'Test details',
   testDetails: 'Test details',
   testDate: 'Date of test',
   testDate: 'Date of test',
   testLocation: 'Place of test',
   testLocation: 'Place of test',
@@ -191,20 +199,41 @@ export function InspectionPDF({
   const counts = countConditions(gradedItems)
   const counts = countConditions(gradedItems)
   const result = deriveTestResult(gradedItems)
   const result = deriveTestResult(gradedItems)
   const resultToken = TEST_RESULT_TOKENS[result]
   const resultToken = TEST_RESULT_TOKENS[result]
-  const resultLabelKey = {
-    pass: 'resultPass',
-    pass_minor: 'resultPassMinor',
-    fail: 'resultFail',
-    fail_dangerous: 'resultFailDangerous',
-    incomplete: 'resultIncomplete',
-  }[result]
-  const resultDetailKey = {
-    pass: 'resultDetailPass',
-    pass_minor: 'resultDetailPassMinor',
-    fail: 'resultDetailFail',
-    fail_dangerous: 'resultDetailFailDangerous',
-    incomplete: 'resultDetailIncomplete',
-  }[result]
+  const resultLabelKey = (
+    isBasic
+      ? {
+          pass: 'checkPass',
+          pass_minor: 'checkPassMinor',
+          fail: 'checkFail',
+          fail_dangerous: 'checkFailDangerous',
+          incomplete: 'checkIncomplete',
+        }
+      : {
+          pass: 'resultPass',
+          pass_minor: 'resultPassMinor',
+          fail: 'resultFail',
+          fail_dangerous: 'resultFailDangerous',
+          incomplete: 'resultIncomplete',
+        }
+  )[result]
+  const resultDetailKey = (
+    isBasic
+      ? {
+          pass: 'checkDetailPass',
+          pass_minor: 'checkDetailPassMinor',
+          fail: 'checkDetailFail',
+          fail_dangerous: 'checkDetailFailDangerous',
+          incomplete: 'checkDetailIncomplete',
+        }
+      : {
+          pass: 'resultDetailPass',
+          pass_minor: 'resultDetailPassMinor',
+          fail: 'resultDetailFail',
+          fail_dangerous: 'resultDetailFailDangerous',
+          incomplete: 'resultDetailIncomplete',
+        }
+  )[result]
+  const resultDetailFallback = isBasic ? CHECK_RESULT_COPY[result].detail : resultToken.detail
   const deficiencies = gradedItems.filter((i) => isDefect(i.condition))
   const deficiencies = gradedItems.filter((i) => isDefect(i.condition))
 
 
   /**
   /**
@@ -471,13 +500,13 @@ export function InspectionPDF({
           }}
           }}
         >
         >
           <Text style={{ fontSize: 8, color: resultToken.pdf.text, marginBottom: 2 }}>
           <Text style={{ fontSize: 8, color: resultToken.pdf.text, marginBottom: 2 }}>
-            {label('overallResult')}
+            {label(isBasic ? 'overallCheck' : 'overallResult')}
           </Text>
           </Text>
           <Text style={{ fontSize: 15, fontFamily: fontBold, color: resultToken.pdf.text }}>
           <Text style={{ fontSize: 15, fontFamily: fontBold, color: resultToken.pdf.text }}>
             {label(resultLabelKey)}
             {label(resultLabelKey)}
           </Text>
           </Text>
           <Text style={{ fontSize: 8, color: resultToken.pdf.text, marginTop: 3 }}>
           <Text style={{ fontSize: 8, color: resultToken.pdf.text, marginTop: 3 }}>
-            {labels[resultDetailKey] || resultToken.detail}
+            {labels[resultDetailKey] || resultDetailFallback}
           </Text>
           </Text>
         </View>
         </View>
 
 

+ 25 - 0
src/features/inspections/Lib/conditions.ts

@@ -295,6 +295,31 @@ export const TEST_RESULT_TOKENS: Record<TestResult, TestResultToken> = {
   },
   },
 }
 }
 
 
+/**
+ * The same outcome in a workshop's words, for checklists graded on the basic
+ * scale: a multi-point check, a check-in, a pre-purchase look. Only the EU
+ * scale is a roadworthiness test, so only it gets a verdict with legal weight.
+ * The basic scale used to borrow that verdict, so one worn tyre on a
+ * multi-point check read "The vehicle fails ... must be retested". English
+ * fallbacks; the translations live under `checkResults` and friends.
+ */
+export const CHECK_RESULT_COPY: Record<TestResult, { label: string; detail: string }> = {
+  pass: { label: 'All checks passed', detail: 'Nothing needed attention.' },
+  pass_minor: {
+    label: 'Some items to keep an eye on',
+    detail: 'Nothing urgent. The items marked for attention are worth planning for.',
+  },
+  fail: {
+    label: 'Some items need work',
+    detail: 'Some items need repairing. The notes say what was found.',
+  },
+  fail_dangerous: {
+    label: 'Some items need urgent work',
+    detail: 'Some items are unsafe and should be repaired before further use.',
+  },
+  incomplete: { label: 'Not completed', detail: 'This check is still in progress.' },
+}
+
 export interface ConditionCounts {
 export interface ConditionCounts {
   total: number
   total: number
   inspected: number
   inspected: number

+ 4 - 2
src/features/inspections/Lib/useConditionLabels.ts

@@ -35,8 +35,10 @@ export function useConditionLabels(scale: SeverityScale, country?: string | null
     [label, scale, country]
     [label, scale, country]
   )
   )
 
 
-  const result = useCallback((value: TestResult) => t(`results.${value}`), [t])
-  const resultDetail = useCallback((value: TestResult) => t(`results.detail.${value}`), [t])
+  // A roadworthiness test gives a verdict; a workshop's own check gives a summary.
+  const group = scale === 'basic' ? 'checkResults' : 'results'
+  const result = useCallback((value: TestResult) => t(`${group}.${value}`), [t, group])
+  const resultDetail = useCallback((value: TestResult) => t(`${group}.detail.${value}`), [t, group])
 
 
   return { label, short, hint, graded, result, resultDetail }
   return { label, short, hint, graded, result, resultDetail }
 }
 }

+ 30 - 5
src/features/inspections/Pdf/buildCertificatePrint.ts

@@ -23,6 +23,7 @@ import type {
 import { type ConditionMapLabels, conditionMapForPrint } from '@/features/condition-map/Lib/print'
 import { type ConditionMapLabels, conditionMapForPrint } from '@/features/condition-map/Lib/print'
 import type { ConditionMarkData } from '@/features/condition-map/Lib/marks'
 import type { ConditionMarkData } from '@/features/condition-map/Lib/marks'
 import {
 import {
+  CHECK_RESULT_COPY,
   CONDITION_TOKENS,
   CONDITION_TOKENS,
   TEST_RESULT_TOKENS,
   TEST_RESULT_TOKENS,
   type Condition,
   type Condition,
@@ -144,6 +145,23 @@ const RESULT_DETAIL_KEY = {
   incomplete: 'resultDetailIncomplete',
   incomplete: 'resultDetailIncomplete',
 } as const
 } as const
 
 
+/** The basic scale's summary instead of a test verdict; see CHECK_RESULT_COPY. */
+const CHECK_LABEL_KEY = {
+  pass: 'checkPass',
+  pass_minor: 'checkPassMinor',
+  fail: 'checkFail',
+  fail_dangerous: 'checkFailDangerous',
+  incomplete: 'checkIncomplete',
+} as const
+
+const CHECK_DETAIL_KEY = {
+  pass: 'checkDetailPass',
+  pass_minor: 'checkDetailPassMinor',
+  fail: 'checkDetailFail',
+  fail_dangerous: 'checkDetailFailDangerous',
+  incomplete: 'checkDetailIncomplete',
+} as const
+
 /** A plain note as the rich-text block expects it: paragraphs, nothing else. */
 /** A plain note as the rich-text block expects it: paragraphs, nothing else. */
 function notesHtml(notes: string | null): string | undefined {
 function notesHtml(notes: string | null): string | undefined {
   const text = notes?.trim()
   const text = notes?.trim()
@@ -251,11 +269,18 @@ export function certificateDataFor(input: {
   }
   }
 
 
   return {
   return {
-    result: {
-      label: L(RESULT_LABEL_KEY[result], resultToken.label),
-      detail: L(RESULT_DETAIL_KEY[result], resultToken.detail),
-      color: resultToken.pdf,
-    },
+    result:
+      scale === 'basic'
+        ? {
+            label: L(CHECK_LABEL_KEY[result], CHECK_RESULT_COPY[result].label),
+            detail: L(CHECK_DETAIL_KEY[result], CHECK_RESULT_COPY[result].detail),
+            color: resultToken.pdf,
+          }
+        : {
+            label: L(RESULT_LABEL_KEY[result], resultToken.label),
+            detail: L(RESULT_DETAIL_KEY[result], resultToken.detail),
+            color: resultToken.pdf,
+          },
     summary: summaryParts.join(' · '),
     summary: summaryParts.join(' · '),
     defects: defectsWorstFirst(graded).map((item) => ({
     defects: defectsWorstFirst(graded).map((item) => ({
       code: item.code ?? null,
       code: item.code ?? null,