فهرست منبع

Rename "Boat" service type to "Marine" with vessel terminology (#110)

* rename boats to marine

* translations

* move service type to workshop
Bernt Christian Egeland 6 ماه پیش
والد
کامیت
c511e49f0b
100فایلهای تغییر یافته به همراه257 افزوده شده و 239 حذف شده
  1. 1 1
      messages/de/customers.json
  2. 1 0
      messages/de/navigation.json
  3. 2 2
      messages/de/pdf.json
  4. 1 1
      messages/de/service.json
  5. 2 2
      messages/de/settings.json
  6. 1 1
      messages/de/share.json
  7. 8 8
      messages/de/vehicles.json
  8. 1 1
      messages/en/customers.json
  9. 1 0
      messages/en/navigation.json
  10. 2 2
      messages/en/pdf.json
  11. 1 1
      messages/en/service.json
  12. 2 2
      messages/en/settings.json
  13. 1 1
      messages/en/share.json
  14. 8 8
      messages/en/vehicles.json
  15. 1 1
      messages/es/customers.json
  16. 1 0
      messages/es/navigation.json
  17. 2 2
      messages/es/pdf.json
  18. 1 1
      messages/es/service.json
  19. 2 2
      messages/es/settings.json
  20. 1 1
      messages/es/share.json
  21. 8 8
      messages/es/vehicles.json
  22. 1 1
      messages/fr/customers.json
  23. 1 0
      messages/fr/navigation.json
  24. 2 2
      messages/fr/pdf.json
  25. 1 1
      messages/fr/service.json
  26. 2 2
      messages/fr/settings.json
  27. 1 1
      messages/fr/share.json
  28. 8 8
      messages/fr/vehicles.json
  29. 1 1
      messages/it/customers.json
  30. 1 0
      messages/it/navigation.json
  31. 2 2
      messages/it/pdf.json
  32. 1 1
      messages/it/service.json
  33. 2 2
      messages/it/settings.json
  34. 1 1
      messages/it/share.json
  35. 8 8
      messages/it/vehicles.json
  36. 1 1
      messages/nb/customers.json
  37. 1 0
      messages/nb/navigation.json
  38. 2 2
      messages/nb/pdf.json
  39. 1 1
      messages/nb/service.json
  40. 2 2
      messages/nb/settings.json
  41. 1 1
      messages/nb/share.json
  42. 8 8
      messages/nb/vehicles.json
  43. 1 1
      messages/nl/customers.json
  44. 1 0
      messages/nl/navigation.json
  45. 2 2
      messages/nl/pdf.json
  46. 1 1
      messages/nl/service.json
  47. 2 2
      messages/nl/settings.json
  48. 1 1
      messages/nl/share.json
  49. 8 8
      messages/nl/vehicles.json
  50. 1 1
      messages/pl/customers.json
  51. 1 0
      messages/pl/navigation.json
  52. 2 2
      messages/pl/pdf.json
  53. 1 1
      messages/pl/service.json
  54. 2 2
      messages/pl/settings.json
  55. 1 1
      messages/pl/share.json
  56. 8 8
      messages/pl/vehicles.json
  57. 1 1
      messages/pt-BR/customers.json
  58. 1 0
      messages/pt-BR/navigation.json
  59. 2 2
      messages/pt-BR/pdf.json
  60. 1 1
      messages/pt-BR/service.json
  61. 2 2
      messages/pt-BR/settings.json
  62. 1 1
      messages/pt-BR/share.json
  63. 8 8
      messages/pt-BR/vehicles.json
  64. 1 1
      messages/ru/customers.json
  65. 1 0
      messages/ru/navigation.json
  66. 2 2
      messages/ru/pdf.json
  67. 1 1
      messages/ru/service.json
  68. 2 2
      messages/ru/settings.json
  69. 1 1
      messages/ru/share.json
  70. 8 8
      messages/ru/vehicles.json
  71. 1 1
      messages/tr/customers.json
  72. 1 0
      messages/tr/navigation.json
  73. 2 2
      messages/tr/pdf.json
  74. 1 1
      messages/tr/service.json
  75. 2 2
      messages/tr/settings.json
  76. 1 1
      messages/tr/share.json
  77. 8 8
      messages/tr/vehicles.json
  78. 1 1
      src/app/(authenticated)/customers/[id]/customer-detail-client.tsx
  79. 0 4
      src/app/(authenticated)/settings/company/company-settings.tsx
  80. 4 4
      src/app/(authenticated)/settings/company/service-type-selector.tsx
  81. 6 0
      src/app/(authenticated)/settings/workshop/workshop-settings.tsx
  82. 1 1
      src/app/(authenticated)/vehicles/[id]/service-records-table.tsx
  83. 3 3
      src/app/(authenticated)/vehicles/[id]/vehicle-detail-client.tsx
  84. 1 1
      src/app/(authenticated)/vehicles/vehicles-client.tsx
  85. 4 4
      src/app/(public)/portal/[orgId]/vehicles/[vehicleId]/page.tsx
  86. 4 4
      src/app/(public)/share/inspection/[orgId]/[token]/inspection-view.tsx
  87. 1 1
      src/app/(public)/share/inspection/[orgId]/[token]/page.tsx
  88. 4 4
      src/app/(public)/share/invoice/[orgId]/[token]/invoice-view.tsx
  89. 1 1
      src/app/(public)/share/invoice/[orgId]/[token]/page.tsx
  90. 1 1
      src/app/(public)/share/quote/[orgId]/[token]/page.tsx
  91. 3 3
      src/app/(public)/share/quote/[orgId]/[token]/quote-view.tsx
  92. 8 8
      src/app/api/protected/inspections/[id]/pdf/route.ts
  93. 5 5
      src/app/api/protected/quotes/[id]/pdf/route.ts
  94. 6 6
      src/app/api/protected/services/[id]/pdf/route.ts
  95. 8 8
      src/app/api/public/share/inspection/[orgId]/[token]/pdf/route.ts
  96. 6 6
      src/app/api/public/share/invoice/[orgId]/[token]/pdf/route.ts
  97. 5 5
      src/app/api/public/share/quote/[orgId]/[token]/pdf/route.ts
  98. 6 1
      src/components/app-sidebar.tsx
  99. 2 2
      src/components/service-type-context.tsx
  100. 1 1
      src/features/inspections/Components/InspectionPageClient.tsx

+ 1 - 1
messages/de/customers.json

@@ -40,7 +40,7 @@
       "plate": "Kennzeichen",
       "vehicle": "Fahrzeug",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Betriebsstunden",
+      "mileageMarine": "Betriebsstunden",
       "services": "Wartungen"
     },
     "noVehicles": "Diesem Kunden sind keine Fahrzeuge zugewiesen"

+ 1 - 0
messages/de/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Werkstatt",
     "vehicles": "Fahrzeuge",
+    "vessels": "Wasserfahrzeuge",
     "reminders": "Erinnerungen",
     "workOrders": "Arbeitsaufträge",
     "inspections": "Inspektionen",

+ 2 - 2
messages/de/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Kennzeichen: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Betriebsstunden: {mileage}",
+    "mileageMarine": "Betriebsstunden: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Service",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Kennzeichen: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Betriebsstunden: {mileage}",
+    "mileageMarine": "Betriebsstunden: {mileage}",
     "customer": "Kunde",
     "inspectionDetails": "Inspektionsdetails",
     "statusCompleted": "Abgeschlossen",

+ 1 - 1
messages/de/service.json

@@ -47,7 +47,7 @@
     "date": "Datum",
     "type": "Typ",
     "mileage": "Kilometerstand",
-    "mileageBoat": "Betriebsstunden",
+    "mileageMarine": "Betriebsstunden",
     "status": "Status",
     "technician": "Techniker",
     "invoiceNumber": "Rechnungsnummer",

+ 2 - 2
messages/de/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Wählen Sie die Art der Dienstleistung, die Ihre Werkstatt anbietet. Dies ändert die Feldbezeichnungen in der gesamten Anwendung.",
     "automotive": "Automobil",
     "automotiveDescription": "Autos, LKWs und andere Straßenfahrzeuge",
-    "boatService": "Bootsservice",
-    "boatServiceDescription": "Boote, Yachten und Wasserfahrzeuge"
+    "marineService": "Marine",
+    "marineServiceDescription": "Boote, Yachten und Wasserfahrzeuge"
   },
   "account": {
     "profileTitle": "Profil",

+ 1 - 1
messages/de/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Kennzeichen: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Betriebsstunden: {mileage}",
+    "mileageMarine": "Betriebsstunden: {mileage}",
     "inspected": "geprüft",
     "pass": "Bestanden",
     "fail": "Nicht bestanden",

+ 8 - 8
messages/de/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Fahrzeug",
       "customer": "Kunde",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Betriebsstunden",
+      "mileageMarine": "Betriebsstunden",
       "services": "Services"
     },
     "edit": "Bearbeiten",
@@ -143,7 +143,7 @@
       "type": "Typ",
       "status": "Status",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Betriebsstunden",
+      "mileageMarine": "Betriebsstunden",
       "technician": "Techniker",
       "files": "Dateien",
       "total": "Gesamt"
@@ -213,15 +213,15 @@
     "manual": "Schaltgetriebe",
     "cvt": "CVT",
     "engineSize": "Hubraum",
-    "makeBoat": "Hersteller *",
-    "mileageBoat": "Betriebsstunden",
-    "transmissionBoat": "Motortyp",
+    "makeMarine": "Hersteller *",
+    "mileageMarine": "Betriebsstunden",
+    "transmissionMarine": "Motortyp",
     "outboard": "Außenborder",
     "inboard": "Innenborder",
-    "engineSizeBoat": "Motor",
+    "engineSizeMarine": "Motor",
     "twoStroke": "Zweitakt",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Registrierungsnummer",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Registrierungsnummer",
     "vehicleUpdated": "Fahrzeug aktualisiert",
     "vehicleAdded": "Fahrzeug hinzugef\u00fcgt",
     "saveError": "Fehler beim Speichern des Fahrzeugs"

+ 1 - 1
messages/en/customers.json

@@ -40,7 +40,7 @@
       "plate": "Plate",
       "vehicle": "Vehicle",
       "mileage": "Mileage",
-      "mileageBoat": "Engine Hours",
+      "mileageMarine": "Engine Hours",
       "services": "Services"
     },
     "noVehicles": "No vehicles assigned to this customer"

+ 1 - 0
messages/en/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Workshop",
     "vehicles": "Vehicles",
+    "vessels": "Vessels",
     "reminders": "Reminders",
     "workOrders": "Work Orders",
     "inspections": "Inspections",

+ 2 - 2
messages/en/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Plate: {plate}",
     "mileage": "Mileage: {mileage}",
-    "mileageBoat": "Engine Hours: {mileage}",
+    "mileageMarine": "Engine Hours: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Service",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Plate: {plate}",
     "mileage": "Mileage: {mileage}",
-    "mileageBoat": "Engine Hours: {mileage}",
+    "mileageMarine": "Engine Hours: {mileage}",
     "customer": "Customer",
     "inspectionDetails": "Inspection Details",
     "statusCompleted": "Completed",

+ 1 - 1
messages/en/service.json

@@ -47,7 +47,7 @@
     "date": "Date",
     "type": "Type",
     "mileage": "Mileage",
-    "mileageBoat": "Engine Hours",
+    "mileageMarine": "Engine Hours",
     "status": "Status",
     "technician": "Technician",
     "invoiceNumber": "Invoice Number",

+ 2 - 2
messages/en/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Select the type of service your workshop provides. This changes field labels throughout the application.",
     "automotive": "Automotive",
     "automotiveDescription": "Cars, trucks, and other road vehicles",
-    "boatService": "Boat Service",
-    "boatServiceDescription": "Boats, yachts, and marine vessels"
+    "marineService": "Marine",
+    "marineServiceDescription": "Boats, yachts, and marine vessels"
   },
   "account": {
     "profileTitle": "Profile",

+ 1 - 1
messages/en/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Plate: {plate}",
     "mileage": "Mileage: {mileage}",
-    "mileageBoat": "Engine Hours: {mileage}",
+    "mileageMarine": "Engine Hours: {mileage}",
     "inspected": "inspected",
     "pass": "Pass",
     "fail": "Fail",

+ 8 - 8
messages/en/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Vehicle",
       "customer": "Customer",
       "mileage": "Mileage",
-      "mileageBoat": "Engine Hours",
+      "mileageMarine": "Engine Hours",
       "services": "Services"
     },
     "edit": "Edit",
@@ -143,7 +143,7 @@
       "type": "Type",
       "status": "Status",
       "mileage": "Mileage",
-      "mileageBoat": "Engine Hours",
+      "mileageMarine": "Engine Hours",
       "technician": "Technician",
       "files": "Files",
       "total": "Total"
@@ -213,15 +213,15 @@
     "manual": "Manual",
     "cvt": "CVT",
     "engineSize": "Engine Size",
-    "makeBoat": "Manufacturer *",
-    "mileageBoat": "Engine Hours",
-    "transmissionBoat": "Engine Type",
+    "makeMarine": "Manufacturer *",
+    "mileageMarine": "Engine Hours",
+    "transmissionMarine": "Engine Type",
     "outboard": "Outboard",
     "inboard": "Inboard",
-    "engineSizeBoat": "Engine",
+    "engineSizeMarine": "Engine",
     "twoStroke": "Two-Stroke",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Registration Number",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Registration Number",
     "vehicleUpdated": "Vehicle updated",
     "vehicleAdded": "Vehicle added",
     "saveError": "Failed to save vehicle"

+ 1 - 1
messages/es/customers.json

@@ -40,7 +40,7 @@
       "plate": "Placa",
       "vehicle": "Vehículo",
       "mileage": "Kilometraje",
-      "mileageBoat": "Horas de Motor",
+      "mileageMarine": "Horas de Motor",
       "services": "Servicios"
     },
     "noVehicles": "No hay vehículos asignados a este cliente"

+ 1 - 0
messages/es/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Taller",
     "vehicles": "Vehículos",
+    "vessels": "Embarcaciones",
     "reminders": "Recordatorios",
     "workOrders": "Órdenes de trabajo",
     "inspections": "Inspecciones",

+ 2 - 2
messages/es/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Placa: {plate}",
     "mileage": "Kilometraje: {mileage}",
-    "mileageBoat": "Horas de Motor: {mileage}",
+    "mileageMarine": "Horas de Motor: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Servicio",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Placa: {plate}",
     "mileage": "Kilometraje: {mileage}",
-    "mileageBoat": "Horas de Motor: {mileage}",
+    "mileageMarine": "Horas de Motor: {mileage}",
     "customer": "Cliente",
     "inspectionDetails": "Detalles de la inspección",
     "statusCompleted": "Completado",

+ 1 - 1
messages/es/service.json

@@ -47,7 +47,7 @@
     "date": "Fecha",
     "type": "Tipo",
     "mileage": "Millaje",
-    "mileageBoat": "Horas de Motor",
+    "mileageMarine": "Horas de Motor",
     "status": "Estado",
     "technician": "Técnico",
     "invoiceNumber": "Número de Factura",

+ 2 - 2
messages/es/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Seleccione el tipo de servicio que ofrece su taller. Esto cambia las etiquetas de los campos en toda la aplicación.",
     "automotive": "Automotriz",
     "automotiveDescription": "Coches, camiones y otros vehículos de carretera",
-    "boatService": "Servicio Náutico",
-    "boatServiceDescription": "Barcos, yates y embarcaciones"
+    "marineService": "Marine",
+    "marineServiceDescription": "Barcos, yates y embarcaciones"
   },
   "account": {
     "profileTitle": "Perfil",

+ 1 - 1
messages/es/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Placa: {plate}",
     "mileage": "Kilometraje: {mileage}",
-    "mileageBoat": "Horas de Motor: {mileage}",
+    "mileageMarine": "Horas de Motor: {mileage}",
     "inspected": "inspeccionado",
     "pass": "Aprobado",
     "fail": "Reprobado",

+ 8 - 8
messages/es/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Vehiculo",
       "customer": "Cliente",
       "mileage": "Kilometraje",
-      "mileageBoat": "Horas de Motor",
+      "mileageMarine": "Horas de Motor",
       "services": "Servicios"
     },
     "edit": "Editar",
@@ -143,7 +143,7 @@
       "type": "Tipo",
       "status": "Estado",
       "mileage": "Kilometraje",
-      "mileageBoat": "Horas de Motor",
+      "mileageMarine": "Horas de Motor",
       "technician": "Tecnico",
       "files": "Archivos",
       "total": "Total"
@@ -213,15 +213,15 @@
     "manual": "Manual",
     "cvt": "CVT",
     "engineSize": "Tamano del motor",
-    "makeBoat": "Fabricante *",
-    "mileageBoat": "Horas de Motor",
-    "transmissionBoat": "Tipo de Motor",
+    "makeMarine": "Fabricante *",
+    "mileageMarine": "Horas de Motor",
+    "transmissionMarine": "Tipo de Motor",
     "outboard": "Fueraborda",
     "inboard": "Intraborda",
-    "engineSizeBoat": "Motor",
+    "engineSizeMarine": "Motor",
     "twoStroke": "Dos Tiempos",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Número de Registro",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Número de Registro",
     "vehicleUpdated": "Vehiculo actualizado",
     "vehicleAdded": "Vehiculo agregado",
     "saveError": "Error al guardar vehiculo"

+ 1 - 1
messages/fr/customers.json

@@ -40,7 +40,7 @@
       "plate": "Plaque",
       "vehicle": "Véhicule",
       "mileage": "Kilométrage",
-      "mileageBoat": "Heures Moteur",
+      "mileageMarine": "Heures Moteur",
       "services": "Services"
     },
     "noVehicles": "Aucun véhicule associé à ce client"

+ 1 - 0
messages/fr/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Atelier",
     "vehicles": "Véhicules",
+    "vessels": "Navires",
     "reminders": "Rappels",
     "workOrders": "Ordres de travail",
     "inspections": "Inspections",

+ 2 - 2
messages/fr/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN : {vin}",
     "plate": "Plaque : {plate}",
     "mileage": "Kilométrage : {mileage}",
-    "mileageBoat": "Heures Moteur: {mileage}",
+    "mileageMarine": "Heures Moteur: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Service",
@@ -88,7 +88,7 @@
     "vin": "VIN : {vin}",
     "plate": "Plaque : {plate}",
     "mileage": "Kilométrage : {mileage}",
-    "mileageBoat": "Heures Moteur: {mileage}",
+    "mileageMarine": "Heures Moteur: {mileage}",
     "customer": "Client",
     "inspectionDetails": "Détails de l'inspection",
     "statusCompleted": "Terminé",

+ 1 - 1
messages/fr/service.json

@@ -47,7 +47,7 @@
     "date": "Date",
     "type": "Type",
     "mileage": "Kilométrage",
-    "mileageBoat": "Heures Moteur",
+    "mileageMarine": "Heures Moteur",
     "status": "Statut",
     "technician": "Technicien",
     "invoiceNumber": "Numéro de Facture",

+ 2 - 2
messages/fr/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Sélectionnez le type de service proposé par votre atelier. Cela modifie les libellés des champs dans toute l'application.",
     "automotive": "Automobile",
     "automotiveDescription": "Voitures, camions et autres véhicules routiers",
-    "boatService": "Service Nautique",
-    "boatServiceDescription": "Bateaux, yachts et navires"
+    "marineService": "Marine",
+    "marineServiceDescription": "Bateaux, yachts et navires"
   },
   "account": {
     "profileTitle": "Profil",

+ 1 - 1
messages/fr/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN : {vin}",
     "plate": "Plaque : {plate}",
     "mileage": "Kilométrage : {mileage}",
-    "mileageBoat": "Heures Moteur: {mileage}",
+    "mileageMarine": "Heures Moteur: {mileage}",
     "inspected": "inspecté",
     "pass": "Conforme",
     "fail": "Non conforme",

+ 8 - 8
messages/fr/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "V\u00e9hicule",
       "customer": "Client",
       "mileage": "Kilom\u00e9trage",
-      "mileageBoat": "Heures Moteur",
+      "mileageMarine": "Heures Moteur",
       "services": "Services"
     },
     "edit": "Modifier",
@@ -143,7 +143,7 @@
       "type": "Type",
       "status": "Statut",
       "mileage": "Kilom\u00e9trage",
-      "mileageBoat": "Heures Moteur",
+      "mileageMarine": "Heures Moteur",
       "technician": "Technicien",
       "files": "Fichiers",
       "total": "Total"
@@ -213,15 +213,15 @@
     "manual": "Manuelle",
     "cvt": "CVT",
     "engineSize": "Cylindr\u00e9e",
-    "makeBoat": "Fabricant *",
-    "mileageBoat": "Heures Moteur",
-    "transmissionBoat": "Type de Moteur",
+    "makeMarine": "Fabricant *",
+    "mileageMarine": "Heures Moteur",
+    "transmissionMarine": "Type de Moteur",
     "outboard": "Hors-bord",
     "inboard": "In-bord",
-    "engineSizeBoat": "Moteur",
+    "engineSizeMarine": "Moteur",
     "twoStroke": "Deux Temps",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Numéro d'Immatriculation",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Numéro d'Immatriculation",
     "vehicleUpdated": "V\u00e9hicule mis \u00e0 jour",
     "vehicleAdded": "V\u00e9hicule ajout\u00e9",
     "saveError": "\u00c9chec de l'enregistrement du v\u00e9hicule"

+ 1 - 1
messages/it/customers.json

@@ -40,7 +40,7 @@
       "plate": "Targa",
       "vehicle": "Veicolo",
       "mileage": "Chilometraggio",
-      "mileageBoat": "Ore Motore",
+      "mileageMarine": "Ore Motore",
       "services": "Servizi"
     },
     "noVehicles": "Nessun veicolo assegnato a questo cliente"

+ 1 - 0
messages/it/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Officina",
     "vehicles": "Veicoli",
+    "vessels": "Imbarcazioni",
     "reminders": "Promemoria",
     "workOrders": "Ordini di lavoro",
     "inspections": "Ispezioni",

+ 2 - 2
messages/it/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Targa: {plate}",
     "mileage": "Chilometraggio: {mileage}",
-    "mileageBoat": "Ore Motore: {mileage}",
+    "mileageMarine": "Ore Motore: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Servizio",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Targa: {plate}",
     "mileage": "Chilometraggio: {mileage}",
-    "mileageBoat": "Ore Motore: {mileage}",
+    "mileageMarine": "Ore Motore: {mileage}",
     "customer": "Cliente",
     "inspectionDetails": "Dettagli Ispezione",
     "statusCompleted": "Completato",

+ 1 - 1
messages/it/service.json

@@ -47,7 +47,7 @@
     "date": "Data",
     "type": "Tipo",
     "mileage": "Chilometraggio",
-    "mileageBoat": "Ore Motore",
+    "mileageMarine": "Ore Motore",
     "status": "Stato",
     "technician": "Tecnico",
     "invoiceNumber": "Numero Fattura",

+ 2 - 2
messages/it/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Seleziona il tipo di servizio offerto dalla tua officina. Questo cambia le etichette dei campi in tutta l'applicazione.",
     "automotive": "Automobilistico",
     "automotiveDescription": "Auto, camion e altri veicoli stradali",
-    "boatService": "Servizio Nautico",
-    "boatServiceDescription": "Barche, yacht e imbarcazioni"
+    "marineService": "Marine",
+    "marineServiceDescription": "Barche, yacht e imbarcazioni"
   },
   "account": {
     "profileTitle": "Profilo",

+ 1 - 1
messages/it/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Targa: {plate}",
     "mileage": "Chilometraggio: {mileage}",
-    "mileageBoat": "Ore Motore: {mileage}",
+    "mileageMarine": "Ore Motore: {mileage}",
     "inspected": "ispezionato",
     "pass": "Superato",
     "fail": "Non Superato",

+ 8 - 8
messages/it/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Veicolo",
       "customer": "Cliente",
       "mileage": "Chilometraggio",
-      "mileageBoat": "Ore Motore",
+      "mileageMarine": "Ore Motore",
       "services": "Interventi"
     },
     "edit": "Modifica",
@@ -143,7 +143,7 @@
       "type": "Tipo",
       "status": "Stato",
       "mileage": "Chilometraggio",
-      "mileageBoat": "Ore Motore",
+      "mileageMarine": "Ore Motore",
       "technician": "Tecnico",
       "files": "File",
       "total": "Totale"
@@ -213,15 +213,15 @@
     "manual": "Manuale",
     "cvt": "CVT",
     "engineSize": "Cilindrata",
-    "makeBoat": "Costruttore *",
-    "mileageBoat": "Ore Motore",
-    "transmissionBoat": "Tipo di Motore",
+    "makeMarine": "Costruttore *",
+    "mileageMarine": "Ore Motore",
+    "transmissionMarine": "Tipo di Motore",
     "outboard": "Fuoribordo",
     "inboard": "Entrobordo",
-    "engineSizeBoat": "Motore",
+    "engineSizeMarine": "Motore",
     "twoStroke": "Due Tempi",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Numero di Registrazione",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Numero di Registrazione",
     "vehicleUpdated": "Veicolo aggiornato",
     "vehicleAdded": "Veicolo aggiunto",
     "saveError": "Impossibile salvare il veicolo"

+ 1 - 1
messages/nb/customers.json

@@ -40,7 +40,7 @@
       "plate": "Registreringsnummer",
       "vehicle": "Kjøretøy",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Motortimer",
+      "mileageMarine": "Motortimer",
       "services": "Tjenester"
     },
     "noVehicles": "Ingen kjøretøy tilknyttet denne kunden"

+ 1 - 0
messages/nb/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Verksted",
     "vehicles": "Kjøretøy",
+    "vessels": "Fartøy",
     "reminders": "Påminnelser",
     "workOrders": "Arbeidsordre",
     "inspections": "Inspeksjoner",

+ 2 - 2
messages/nb/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Reg.nr: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Motortimer: {mileage}",
+    "mileageMarine": "Motortimer: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Tjeneste",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Reg.nr: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Motortimer: {mileage}",
+    "mileageMarine": "Motortimer: {mileage}",
     "customer": "Kunde",
     "inspectionDetails": "Kontrolldetaljer",
     "statusCompleted": "Fullført",

+ 1 - 1
messages/nb/service.json

@@ -47,7 +47,7 @@
     "date": "Dato",
     "type": "Type",
     "mileage": "Kilometerstand",
-    "mileageBoat": "Motortimer",
+    "mileageMarine": "Motortimer",
     "status": "Status",
     "technician": "Tekniker",
     "invoiceNumber": "Fakturanummer",

+ 2 - 2
messages/nb/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Velg typen tjeneste verkstedet ditt tilbyr. Dette endrer feltetiketter i hele applikasjonen.",
     "automotive": "Bil",
     "automotiveDescription": "Biler, lastebiler og andre kjøretøy",
-    "boatService": "Båtservice",
-    "boatServiceDescription": "Båter, yachter og fartøy"
+    "marineService": "Marine",
+    "marineServiceDescription": "Båter, yachter og marine fartøy"
   },
   "account": {
     "profileTitle": "Profil",

+ 1 - 1
messages/nb/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Reg.nr: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Motortimer: {mileage}",
+    "mileageMarine": "Motortimer: {mileage}",
     "inspected": "kontrollert",
     "pass": "Godkjent",
     "fail": "Ikke godkjent",

+ 8 - 8
messages/nb/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Kjoretoy",
       "customer": "Kunde",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Motortimer",
+      "mileageMarine": "Motortimer",
       "services": "Tjenester"
     },
     "edit": "Rediger",
@@ -143,7 +143,7 @@
       "type": "Type",
       "status": "Status",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Motortimer",
+      "mileageMarine": "Motortimer",
       "technician": "Mekaniker",
       "files": "Filer",
       "total": "Totalt"
@@ -213,15 +213,15 @@
     "manual": "Manuell",
     "cvt": "CVT",
     "engineSize": "Motorstorrelse",
-    "makeBoat": "Produsent *",
-    "mileageBoat": "Motortimer",
-    "transmissionBoat": "Motortype",
+    "makeMarine": "Produsent *",
+    "mileageMarine": "Motortimer",
+    "transmissionMarine": "Motortype",
     "outboard": "Utenbords",
     "inboard": "Innenbords",
-    "engineSizeBoat": "Motor",
+    "engineSizeMarine": "Motor",
     "twoStroke": "Totakt",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Registreringsnummer",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Registreringsnummer",
     "vehicleUpdated": "Kjoretoy oppdatert",
     "vehicleAdded": "Kjoretoy lagt til",
     "saveError": "Kunne ikke lagre kjoretoy"

+ 1 - 1
messages/nl/customers.json

@@ -40,7 +40,7 @@
       "plate": "Kenteken",
       "vehicle": "Voertuig",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Motoruren",
+      "mileageMarine": "Motoruren",
       "services": "Services"
     },
     "noVehicles": "Geen voertuigen gekoppeld aan deze klant"

+ 1 - 0
messages/nl/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Werkplaats",
     "vehicles": "Voertuigen",
+    "vessels": "Vaartuigen",
     "reminders": "Herinneringen",
     "workOrders": "Werkorders",
     "inspections": "Inspecties",

+ 2 - 2
messages/nl/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Kenteken: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Motoruren: {mileage}",
+    "mileageMarine": "Motoruren: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Service",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Kenteken: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Motoruren: {mileage}",
+    "mileageMarine": "Motoruren: {mileage}",
     "customer": "Klant",
     "inspectionDetails": "Inspectiedetails",
     "statusCompleted": "Afgerond",

+ 1 - 1
messages/nl/service.json

@@ -47,7 +47,7 @@
     "date": "Datum",
     "type": "Type",
     "mileage": "Kilometerstand",
-    "mileageBoat": "Motoruren",
+    "mileageMarine": "Motoruren",
     "status": "Status",
     "technician": "Technicus",
     "invoiceNumber": "Factuurnummer",

+ 2 - 2
messages/nl/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Selecteer het type service dat uw werkplaats biedt. Dit verandert de veldlabels in de hele applicatie.",
     "automotive": "Auto",
     "automotiveDescription": "Auto's, vrachtwagens en andere wegvoertuigen",
-    "boatService": "Bootservice",
-    "boatServiceDescription": "Boten, jachten en vaartuigen"
+    "marineService": "Marine",
+    "marineServiceDescription": "Boten, jachten en vaartuigen"
   },
   "account": {
     "profileTitle": "Profiel",

+ 1 - 1
messages/nl/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Kenteken: {plate}",
     "mileage": "Kilometerstand: {mileage}",
-    "mileageBoat": "Motoruren: {mileage}",
+    "mileageMarine": "Motoruren: {mileage}",
     "inspected": "geïnspecteerd",
     "pass": "Goedgekeurd",
     "fail": "Afgekeurd",

+ 8 - 8
messages/nl/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Voertuig",
       "customer": "Klant",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Motoruren",
+      "mileageMarine": "Motoruren",
       "services": "Onderhoud"
     },
     "edit": "Bewerken",
@@ -143,7 +143,7 @@
       "type": "Type",
       "status": "Status",
       "mileage": "Kilometerstand",
-      "mileageBoat": "Motoruren",
+      "mileageMarine": "Motoruren",
       "technician": "Monteur",
       "files": "Bestanden",
       "total": "Totaal"
@@ -213,15 +213,15 @@
     "manual": "Handgeschakeld",
     "cvt": "CVT",
     "engineSize": "Motorinhoud",
-    "makeBoat": "Fabrikant *",
-    "mileageBoat": "Motoruren",
-    "transmissionBoat": "Motortype",
+    "makeMarine": "Fabrikant *",
+    "mileageMarine": "Motoruren",
+    "transmissionMarine": "Motortype",
     "outboard": "Buitenboord",
     "inboard": "Binnenboord",
-    "engineSizeBoat": "Motor",
+    "engineSizeMarine": "Motor",
     "twoStroke": "Tweetakt",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Registratienummer",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Registratienummer",
     "vehicleUpdated": "Voertuig bijgewerkt",
     "vehicleAdded": "Voertuig toegevoegd",
     "saveError": "Opslaan van voertuig mislukt"

+ 1 - 1
messages/pl/customers.json

@@ -40,7 +40,7 @@
       "plate": "Tablica",
       "vehicle": "Pojazd",
       "mileage": "Przebieg",
-      "mileageBoat": "Godziny Pracy",
+      "mileageMarine": "Godziny Pracy",
       "services": "Usługi"
     },
     "noVehicles": "Brak pojazdów przypisanych do tego klienta"

+ 1 - 0
messages/pl/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Warsztat",
     "vehicles": "Pojazdy",
+    "vessels": "Jednostki",
     "reminders": "Przypomnienia",
     "workOrders": "Zlecenia",
     "inspections": "Przeglądy",

+ 2 - 2
messages/pl/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Tablica: {plate}",
     "mileage": "Przebieg: {mileage}",
-    "mileageBoat": "Godziny Pracy: {mileage}",
+    "mileageMarine": "Godziny Pracy: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Usługa",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Tablica: {plate}",
     "mileage": "Przebieg: {mileage}",
-    "mileageBoat": "Godziny Pracy: {mileage}",
+    "mileageMarine": "Godziny Pracy: {mileage}",
     "customer": "Klient",
     "inspectionDetails": "Szczegóły inspekcji",
     "statusCompleted": "Ukończono",

+ 1 - 1
messages/pl/service.json

@@ -47,7 +47,7 @@
     "date": "Data",
     "type": "Typ",
     "mileage": "Przebieg",
-    "mileageBoat": "Godziny Pracy",
+    "mileageMarine": "Godziny Pracy",
     "status": "Status",
     "technician": "Technik",
     "invoiceNumber": "Numer Faktury",

+ 2 - 2
messages/pl/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Wybierz typ usługi oferowanej przez Twój warsztat. Zmienia to etykiety pól w całej aplikacji.",
     "automotive": "Motoryzacja",
     "automotiveDescription": "Samochody, ciężarówki i inne pojazdy drogowe",
-    "boatService": "Serwis Łodzi",
-    "boatServiceDescription": "Łodzie, jachty i jednostki pływające"
+    "marineService": "Marine",
+    "marineServiceDescription": "Łodzie, jachty i jednostki pływające"
   },
   "account": {
     "profileTitle": "Profil",

+ 1 - 1
messages/pl/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Tablica: {plate}",
     "mileage": "Przebieg: {mileage}",
-    "mileageBoat": "Godziny Pracy: {mileage}",
+    "mileageMarine": "Godziny Pracy: {mileage}",
     "inspected": "sprawdzono",
     "pass": "Zaliczono",
     "fail": "Nie zaliczono",

+ 8 - 8
messages/pl/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Pojazd",
       "customer": "Klient",
       "mileage": "Przebieg",
-      "mileageBoat": "Godziny Pracy",
+      "mileageMarine": "Godziny Pracy",
       "services": "Usługi"
     },
     "edit": "Edytuj",
@@ -143,7 +143,7 @@
       "type": "Typ",
       "status": "Status",
       "mileage": "Przebieg",
-      "mileageBoat": "Godziny Pracy",
+      "mileageMarine": "Godziny Pracy",
       "technician": "Technik",
       "files": "Pliki",
       "total": "Suma"
@@ -213,15 +213,15 @@
     "manual": "Manualna",
     "cvt": "CVT",
     "engineSize": "Pojemność silnika",
-    "makeBoat": "Producent *",
-    "mileageBoat": "Godziny Pracy Silnika",
-    "transmissionBoat": "Typ Silnika",
+    "makeMarine": "Producent *",
+    "mileageMarine": "Godziny Pracy Silnika",
+    "transmissionMarine": "Typ Silnika",
     "outboard": "Zaburtowy",
     "inboard": "Stacjonarny",
-    "engineSizeBoat": "Silnik",
+    "engineSizeMarine": "Silnik",
     "twoStroke": "Dwusuwowy",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Numer Rejestracyjny",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Numer Rejestracyjny",
     "vehicleUpdated": "Pojazd zaktualizowany",
     "vehicleAdded": "Pojazd dodany",
     "saveError": "Nie udało się zapisać pojazdu"

+ 1 - 1
messages/pt-BR/customers.json

@@ -40,7 +40,7 @@
       "plate": "Placa",
       "vehicle": "Veículo",
       "mileage": "Quilometragem",
-      "mileageBoat": "Horas de Motor",
+      "mileageMarine": "Horas de Motor",
       "services": "Serviços"
     },
     "noVehicles": "Nenhum veículo atribuído a este cliente"

+ 1 - 0
messages/pt-BR/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Oficina",
     "vehicles": "Veículos",
+    "vessels": "Embarcações",
     "reminders": "Lembretes",
     "workOrders": "Ordens de Serviço",
     "inspections": "Inspeções",

+ 2 - 2
messages/pt-BR/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Placa: {plate}",
     "mileage": "Quilometragem: {mileage}",
-    "mileageBoat": "Horas de Motor: {mileage}",
+    "mileageMarine": "Horas de Motor: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Serviço",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Placa: {plate}",
     "mileage": "Quilometragem: {mileage}",
-    "mileageBoat": "Horas de Motor: {mileage}",
+    "mileageMarine": "Horas de Motor: {mileage}",
     "customer": "Cliente",
     "inspectionDetails": "Detalhes da Inspeção",
     "statusCompleted": "Concluído",

+ 1 - 1
messages/pt-BR/service.json

@@ -47,7 +47,7 @@
     "date": "Data",
     "type": "Tipo",
     "mileage": "Quilometragem",
-    "mileageBoat": "Horas de Motor",
+    "mileageMarine": "Horas de Motor",
     "status": "Status",
     "technician": "Técnico",
     "invoiceNumber": "Número da Fatura",

+ 2 - 2
messages/pt-BR/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Selecione o tipo de serviço que sua oficina oferece. Isso altera os rótulos dos campos em todo o aplicativo.",
     "automotive": "Automotivo",
     "automotiveDescription": "Carros, caminhões e outros veículos rodoviários",
-    "boatService": "Serviço Náutico",
-    "boatServiceDescription": "Barcos, iates e embarcações"
+    "marineService": "Marine",
+    "marineServiceDescription": "Barcos, iates e embarcações"
   },
   "account": {
     "profileTitle": "Perfil",

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

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Placa: {plate}",
     "mileage": "Quilometragem: {mileage}",
-    "mileageBoat": "Horas de Motor: {mileage}",
+    "mileageMarine": "Horas de Motor: {mileage}",
     "inspected": "inspecionado",
     "pass": "Aprovado",
     "fail": "Reprovado",

+ 8 - 8
messages/pt-BR/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Veículo",
       "customer": "Cliente",
       "mileage": "Quilometragem",
-      "mileageBoat": "Horas de Motor",
+      "mileageMarine": "Horas de Motor",
       "services": "Serviços"
     },
     "edit": "Editar",
@@ -143,7 +143,7 @@
       "type": "Tipo",
       "status": "Status",
       "mileage": "Quilometragem",
-      "mileageBoat": "Horas de Motor",
+      "mileageMarine": "Horas de Motor",
       "technician": "Técnico",
       "files": "Arquivos",
       "total": "Total"
@@ -213,15 +213,15 @@
     "manual": "Manual",
     "cvt": "CVT",
     "engineSize": "Cilindrada",
-    "makeBoat": "Fabricante *",
-    "mileageBoat": "Horas de Motor",
-    "transmissionBoat": "Tipo de Motor",
+    "makeMarine": "Fabricante *",
+    "mileageMarine": "Horas de Motor",
+    "transmissionMarine": "Tipo de Motor",
     "outboard": "De Popa",
     "inboard": "De Centro",
-    "engineSizeBoat": "Motor",
+    "engineSizeMarine": "Motor",
     "twoStroke": "Dois Tempos",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Número de Registro",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Número de Registro",
     "vehicleUpdated": "Veículo atualizado",
     "vehicleAdded": "Veículo adicionado",
     "saveError": "Falha ao salvar veículo"

+ 1 - 1
messages/ru/customers.json

@@ -40,7 +40,7 @@
       "plate": "Госномер",
       "vehicle": "Транспортное средство",
       "mileage": "Пробег",
-      "mileageBoat": "Моточасы",
+      "mileageMarine": "Моточасы",
       "services": "Обслуживания"
     },
     "noVehicles": "У этого клиента нет транспортных средств"

+ 1 - 0
messages/ru/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Мастерская",
     "vehicles": "Транспортные средства",
+    "vessels": "Суда",
     "reminders": "Напоминания",
     "workOrders": "Заказ-наряды",
     "inspections": "Осмотры",

+ 2 - 2
messages/ru/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Госномер: {plate}",
     "mileage": "Пробег: {mileage}",
-    "mileageBoat": "Моточасы: {mileage}",
+    "mileageMarine": "Моточасы: {mileage}",
     "km": "км",
     "mi": "ми",
     "service": "Обслуживание",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Госномер: {plate}",
     "mileage": "Пробег: {mileage}",
-    "mileageBoat": "Моточасы: {mileage}",
+    "mileageMarine": "Моточасы: {mileage}",
     "customer": "Клиент",
     "inspectionDetails": "Детали осмотра",
     "statusCompleted": "Завершён",

+ 1 - 1
messages/ru/service.json

@@ -47,7 +47,7 @@
     "date": "Дата",
     "type": "Тип",
     "mileage": "Пробег",
-    "mileageBoat": "Моточасы",
+    "mileageMarine": "Моточасы",
     "status": "Статус",
     "technician": "Механик",
     "invoiceNumber": "Номер счёта",

+ 2 - 2
messages/ru/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Выберите тип услуг, которые предоставляет ваша мастерская. Это изменит названия полей во всём приложении.",
     "automotive": "Автомобильный",
     "automotiveDescription": "Легковые автомобили, грузовики и другие транспортные средства",
-    "boatService": "Обслуживание Судов",
-    "boatServiceDescription": "Лодки, яхты и морские суда"
+    "marineService": "Marine",
+    "marineServiceDescription": "Лодки, яхты и морские суда"
   },
   "account": {
     "profileTitle": "Профиль",

+ 1 - 1
messages/ru/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Госномер: {plate}",
     "mileage": "Пробег: {mileage}",
-    "mileageBoat": "Моточасы: {mileage}",
+    "mileageMarine": "Моточасы: {mileage}",
     "inspected": "осмотрено",
     "pass": "Норма",
     "fail": "Неисправность",

+ 8 - 8
messages/ru/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Транспортное средство",
       "customer": "Клиент",
       "mileage": "Пробег",
-      "mileageBoat": "Моточасы",
+      "mileageMarine": "Моточасы",
       "services": "Обслуживания"
     },
     "edit": "Редактировать",
@@ -143,7 +143,7 @@
       "type": "Тип",
       "status": "Статус",
       "mileage": "Пробег",
-      "mileageBoat": "Моточасы",
+      "mileageMarine": "Моточасы",
       "technician": "Механик",
       "files": "Файлы",
       "total": "Итого"
@@ -213,15 +213,15 @@
     "manual": "Механическая",
     "cvt": "Вариатор",
     "engineSize": "Объём двигателя",
-    "makeBoat": "Производитель *",
-    "mileageBoat": "Моточасы",
-    "transmissionBoat": "Тип Двигателя",
+    "makeMarine": "Производитель *",
+    "mileageMarine": "Моточасы",
+    "transmissionMarine": "Тип Двигателя",
     "outboard": "Подвесной",
     "inboard": "Стационарный",
-    "engineSizeBoat": "Двигатель",
+    "engineSizeMarine": "Двигатель",
     "twoStroke": "Двухтактный",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Регистрационный Номер",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Регистрационный Номер",
     "vehicleUpdated": "Транспортное средство обновлено",
     "vehicleAdded": "Транспортное средство добавлено",
     "saveError": "Не удалось сохранить транспортное средство"

+ 1 - 1
messages/tr/customers.json

@@ -40,7 +40,7 @@
       "plate": "Plaka",
       "vehicle": "Araç",
       "mileage": "Kilometre",
-      "mileageBoat": "Motor Saatleri",
+      "mileageMarine": "Motor Saatleri",
       "services": "Servisler"
     },
     "noVehicles": "Bu müşteriye atanmış araç yok"

+ 1 - 0
messages/tr/navigation.json

@@ -67,6 +67,7 @@
     "telegram": "Telegram",
     "workshop": "Atölye",
     "vehicles": "Araçlar",
+    "vessels": "Tekneler",
     "reminders": "Hatırlatmalar",
     "workOrders": "İş Emirleri",
     "inspections": "Muayeneler",

+ 2 - 2
messages/tr/pdf.json

@@ -7,7 +7,7 @@
     "vin": "VIN: {vin}",
     "plate": "Plaka: {plate}",
     "mileage": "Kilometre: {mileage}",
-    "mileageBoat": "Motor Saatleri: {mileage}",
+    "mileageMarine": "Motor Saatleri: {mileage}",
     "km": "km",
     "mi": "mi",
     "service": "Servis",
@@ -88,7 +88,7 @@
     "vin": "VIN: {vin}",
     "plate": "Plaka: {plate}",
     "mileage": "Kilometre: {mileage}",
-    "mileageBoat": "Motor Saatleri: {mileage}",
+    "mileageMarine": "Motor Saatleri: {mileage}",
     "customer": "Müşteri",
     "inspectionDetails": "Muayene Detayları",
     "statusCompleted": "Tamamlandı",

+ 1 - 1
messages/tr/service.json

@@ -47,7 +47,7 @@
     "date": "Tarih",
     "type": "Tür",
     "mileage": "Kilometre",
-    "mileageBoat": "Motor Saatleri",
+    "mileageMarine": "Motor Saatleri",
     "status": "Durum",
     "technician": "Teknisyen",
     "invoiceNumber": "Fatura Numarası",

+ 2 - 2
messages/tr/settings.json

@@ -142,8 +142,8 @@
     "serviceTypeDescription": "Atölyenizin sunduğu hizmet türünü seçin. Bu, uygulama genelinde alan etiketlerini değiştirir.",
     "automotive": "Otomotiv",
     "automotiveDescription": "Arabalar, kamyonlar ve diğer kara taşıtları",
-    "boatService": "Tekne Servisi",
-    "boatServiceDescription": "Tekneler, yatlar ve deniz taşıtları"
+    "marineService": "Marine",
+    "marineServiceDescription": "Tekneler, yatlar ve deniz taşıtları"
   },
   "account": {
     "profileTitle": "Profil",

+ 1 - 1
messages/tr/share.json

@@ -115,7 +115,7 @@
     "vin": "VIN: {vin}",
     "plate": "Plaka: {plate}",
     "mileage": "Kilometre: {mileage}",
-    "mileageBoat": "Motor Saatleri: {mileage}",
+    "mileageMarine": "Motor Saatleri: {mileage}",
     "inspected": "muayene edildi",
     "pass": "Geçti",
     "fail": "Başarısız",

+ 8 - 8
messages/tr/vehicles.json

@@ -12,7 +12,7 @@
       "vehicle": "Araç",
       "customer": "Müşteri",
       "mileage": "Kilometre",
-      "mileageBoat": "Motor Saatleri",
+      "mileageMarine": "Motor Saatleri",
       "services": "Servisler"
     },
     "edit": "Düzenle",
@@ -143,7 +143,7 @@
       "type": "Tür",
       "status": "Durum",
       "mileage": "Kilometre",
-      "mileageBoat": "Motor Saatleri",
+      "mileageMarine": "Motor Saatleri",
       "technician": "Teknisyen",
       "files": "Dosyalar",
       "total": "Toplam"
@@ -213,15 +213,15 @@
     "manual": "Manuel",
     "cvt": "CVT",
     "engineSize": "Motor Hacmi",
-    "makeBoat": "Üretici *",
-    "mileageBoat": "Motor Saatleri",
-    "transmissionBoat": "Motor Tipi",
+    "makeMarine": "Üretici *",
+    "mileageMarine": "Motor Saatleri",
+    "transmissionMarine": "Motor Tipi",
     "outboard": "Dıştan Takma",
     "inboard": "İçten Takma",
-    "engineSizeBoat": "Motor",
+    "engineSizeMarine": "Motor",
     "twoStroke": "İki Zamanlı",
-    "vinBoat": "HIN",
-    "licensePlateBoat": "Tescil Numarası",
+    "vinMarine": "HIN",
+    "licensePlateMarine": "Tescil Numarası",
     "vehicleUpdated": "Araç güncellendi",
     "vehicleAdded": "Araç eklendi",
     "saveError": "Araç kaydedilemedi"

+ 1 - 1
src/app/(authenticated)/customers/[id]/customer-detail-client.tsx

@@ -303,7 +303,7 @@ export function CustomerDetailClient({
                     <TableRow>
                       <TableHead className="w-[120px]">{t("vehicleTable.plate")}</TableHead>
                       <TableHead>{t("vehicleTable.vehicle")}</TableHead>
-                      <TableHead className="hidden sm:table-cell w-[100px] text-right">{serviceType === 'boat' ? t("vehicleTable.mileageBoat") : t("vehicleTable.mileage")}</TableHead>
+                      <TableHead className="hidden sm:table-cell w-[100px] text-right">{serviceType === 'marine' ? t("vehicleTable.mileageMarine") : t("vehicleTable.mileage")}</TableHead>
                       <TableHead className="w-[80px] text-center">{t("vehicleTable.services")}</TableHead>
                     </TableRow>
                   </TableHeader>

+ 0 - 4
src/app/(authenticated)/settings/company/company-settings.tsx

@@ -17,7 +17,6 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/u
 import { Building2, ImageIcon, Loader2, Plus, Save, Trash2, Upload } from "lucide-react";
 import { createNewOrganization } from "@/features/team/Actions/createNewOrganization";
 import { ReadOnlyBanner, SaveButton, ReadOnlyWrapper } from "../read-only-guard";
-import { ServiceTypeSelector } from "./service-type-selector";
 
 export function CompanySettings({ settings, organizationName }: { settings: Record<string, string>; organizationName: string }) {
   const router = useRouter();
@@ -30,7 +29,6 @@ export function CompanySettings({ settings, organizationName }: { settings: Reco
   const [orgNumber, setOrgNumber] = useState(settings[SETTING_KEYS.INVOICE_ORG_NUMBER] || "");
   const [logoUrl, setLogoUrl] = useState(settings[SETTING_KEYS.COMPANY_LOGO] || "");
   const [uploadingLogo, setUploadingLogo] = useState(false);
-  const [serviceType, setServiceType] = useState(settings[SETTING_KEYS.SERVICE_TYPE] || "automotive");
   const [showCreateOrg, setShowCreateOrg] = useState(false);
   const [newOrgName, setNewOrgName] = useState("");
   const [creatingOrg, setCreatingOrg] = useState(false);
@@ -44,7 +42,6 @@ export function CompanySettings({ settings, organizationName }: { settings: Reco
         [SETTING_KEYS.WORKSHOP_PHONE]: workshopPhone,
         [SETTING_KEYS.WORKSHOP_EMAIL]: workshopEmail,
         [SETTING_KEYS.INVOICE_ORG_NUMBER]: orgNumber,
-        [SETTING_KEYS.SERVICE_TYPE]: serviceType,
       }),
     ]);
     setSaving(false);
@@ -164,7 +161,6 @@ export function CompanySettings({ settings, organizationName }: { settings: Reco
           </div>
         </CardContent>
       </Card>
-      <ServiceTypeSelector serviceType={serviceType} onServiceTypeChange={setServiceType} />
       <SaveButton>
         <div className="flex items-center justify-between">
           <Button size="sm" onClick={handleSave} disabled={saving}>

+ 4 - 4
src/app/(authenticated)/settings/company/service-type-selector.tsx

@@ -9,7 +9,7 @@ import {
   SelectTrigger,
   SelectValue,
 } from "@/components/ui/select";
-import { Car, Anchor } from "lucide-react";
+import { Car, Ship } from "lucide-react";
 
 interface ServiceTypeSelectorProps {
   serviceType: string;
@@ -41,10 +41,10 @@ export function ServiceTypeSelector({ serviceType, onServiceTypeChange }: Servic
                 {t("company.automotive")}
               </span>
             </SelectItem>
-            <SelectItem value="boat">
+            <SelectItem value="marine">
               <span className="flex items-center gap-2">
-                <Anchor className="h-4 w-4" />
-                {t("company.boatService")}
+                <Ship className="h-4 w-4" />
+                {t("company.marineService")}
               </span>
             </SelectItem>
           </SelectContent>

+ 6 - 0
src/app/(authenticated)/settings/workshop/workshop-settings.tsx

@@ -43,6 +43,7 @@ import {
 import { createTechnician } from "@/features/workboard/Actions/technicianActions";
 import { cn } from "@/lib/utils";
 import { ReadOnlyBanner, SaveButton, ReadOnlyWrapper } from "../read-only-guard";
+import { ServiceTypeSelector } from "../company/service-type-selector";
 
 interface TechnicianOption {
   id: string
@@ -53,6 +54,9 @@ export function WorkshopSettings({ settings, technicians: initialTechnicians = [
   const router = useRouter();
   const t = useTranslations('settings');
   const [saving, setSaving] = useState(false);
+  const [serviceType, setServiceType] = useState(
+    settings[SETTING_KEYS.SERVICE_TYPE] || "automotive"
+  );
 
   const [defaultTechnicianId, setDefaultTechnicianId] = useState(
     settings[SETTING_KEYS.DEFAULT_TECHNICIAN_ID] || ""
@@ -130,6 +134,7 @@ export function WorkshopSettings({ settings, technicians: initialTechnicians = [
   const handleSave = async () => {
     setSaving(true);
     await setSettings({
+      [SETTING_KEYS.SERVICE_TYPE]: serviceType,
       [SETTING_KEYS.DEFAULT_TECHNICIAN_ID]: defaultTechnicianId,
       [SETTING_KEYS.DEFAULT_TECHNICIAN]: selectedTechName,
       [SETTING_KEYS.DEFAULT_LABOR_RATE]: defaultLaborRate,
@@ -147,6 +152,7 @@ export function WorkshopSettings({ settings, technicians: initialTechnicians = [
     <div className="space-y-6">
       <ReadOnlyBanner />
       <ReadOnlyWrapper>
+      <ServiceTypeSelector serviceType={serviceType} onServiceTypeChange={setServiceType} />
       <Card className="border-0 shadow-sm">
         <CardHeader className="flex flex-row items-center gap-3 pb-4">
           <Wrench className="h-5 w-5 text-muted-foreground" />

+ 1 - 1
src/app/(authenticated)/vehicles/[id]/service-records-table.tsx

@@ -184,7 +184,7 @@ export function ServiceRecordsTable({
               <TableHead>{t("table.title")}</TableHead>
               <TableHead className="w-[100px]">{t("table.type")}</TableHead>
               <TableHead className="w-[100px]">{t("table.status")}</TableHead>
-              <TableHead className="w-[100px] text-right">{serviceType === 'boat' ? t("table.mileageBoat") : t("table.mileage")}</TableHead>
+              <TableHead className="w-[100px] text-right">{serviceType === 'marine' ? t("table.mileageMarine") : t("table.mileage")}</TableHead>
               <TableHead className="hidden w-[120px] sm:table-cell">{t("table.technician")}</TableHead>
               <TableHead className="w-[50px] text-center">{t("table.files")}</TableHead>
               <TableHead className="w-[100px] text-right">{t("table.total")}</TableHead>

+ 3 - 3
src/app/(authenticated)/vehicles/[id]/vehicle-detail-client.tsx

@@ -241,8 +241,8 @@ export function VehicleDetailClient({
   aiEnabled?: boolean
 }) {
   const serviceType = useServiceType()
-  const isBoat = serviceType === 'boat'
-  const distUnit = isBoat ? 'hrs' : unitSystem === 'metric' ? 'km' : 'mi'
+  const isMarine = serviceType === 'marine'
+  const distUnit = isMarine ? 'hrs' : unitSystem === 'metric' ? 'km' : 'mi'
   const router = useRouter()
   const searchParams = useSearchParams()
   const { formatDate } = useFormatDate()
@@ -580,7 +580,7 @@ export function VehicleDetailClient({
                     <div className="flex cursor-help items-center gap-1.5">
                       <TrendingUp className="h-3.5 w-3.5" />
                       <span className="text-xs">
-                        {isBoat ? t('predictedHours') : unitSystem === 'metric' ? t('predictedKm') : t('predictedMileage')}
+                        {isMarine ? t('predictedHours') : unitSystem === 'metric' ? t('predictedKm') : t('predictedMileage')}
                       </span>
                       <span className="font-semibold text-foreground">
                         ~{predictionData.predictedMileage.toLocaleString()}

+ 1 - 1
src/app/(authenticated)/vehicles/vehicles-client.tsx

@@ -274,7 +274,7 @@ export function VehiclesClient({
                 <TableHead className="w-[120px]">{t('table.plate')}</TableHead>
                 <TableHead>{t('table.vehicle')}</TableHead>
                 <TableHead className="hidden sm:table-cell">{t('table.customer')}</TableHead>
-                <TableHead className="hidden md:table-cell w-[100px] text-right">{serviceType === 'boat' ? t('table.mileageBoat') : t('table.mileage')}</TableHead>
+                <TableHead className="hidden md:table-cell w-[100px] text-right">{serviceType === 'marine' ? t('table.mileageMarine') : t('table.mileage')}</TableHead>
                 <TableHead className="w-[80px] text-center">{t('table.services')}</TableHead>
                 <TableHead className="w-[50px]" />
               </TableRow>

+ 4 - 4
src/app/(public)/portal/[orgId]/vehicles/[vehicleId]/page.tsx

@@ -24,7 +24,7 @@ export default async function PortalVehicleDetailPage({
       select: { value: true },
     }),
   ]);
-  const serviceType = (serviceTypeSetting?.value || "automotive") as "automotive" | "boat";
+  const serviceType = (serviceTypeSetting?.value || "automotive") as "automotive" | "marine";
 
   if (!result.success || !result.data) {
     return (
@@ -55,10 +55,10 @@ export default async function PortalVehicleDetailPage({
               {v.year} {v.make} {v.model}
             </h1>
             <div className="mt-1 flex flex-wrap gap-3 text-sm text-muted-foreground">
-              {v.licensePlate && <span>{serviceType === 'boat' ? `Reg: ${v.licensePlate}` : t('plate', { plate: v.licensePlate })}</span>}
-              {v.vin && <span>{serviceType === 'boat' ? `HIN: ${v.vin}` : t('vin', { vin: v.vin })}</span>}
+              {v.licensePlate && <span>{serviceType === 'marine' ? `Reg: ${v.licensePlate}` : t('plate', { plate: v.licensePlate })}</span>}
+              {v.vin && <span>{serviceType === 'marine' ? `HIN: ${v.vin}` : t('vin', { vin: v.vin })}</span>}
               {v.mileage > 0 && (
-                <span>{serviceType === 'boat' ? `${v.mileage.toLocaleString()} hrs` : `${v.mileage.toLocaleString()} mi`}</span>
+                <span>{serviceType === 'marine' ? `${v.mileage.toLocaleString()} hrs` : `${v.mileage.toLocaleString()} mi`}</span>
               )}
               {v.color && <span>{v.color}</span>}
             </div>

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

@@ -65,7 +65,7 @@ export function InspectionView({
   hasExistingQuoteRequest: boolean;
   quoteShareUrl?: string;
   portalUrl?: string;
-  serviceType?: "automotive" | "boat";
+  serviceType?: "automotive" | "marine";
 }) {
   const t = useTranslations('share.inspection');
   const tc = useTranslations('share.common');
@@ -240,13 +240,13 @@ export function InspectionView({
             {inspection.vehicle.year} {inspection.vehicle.make} {inspection.vehicle.model}
           </p>
           {inspection.vehicle.vin && (
-            <p className="text-sm text-gray-500">{serviceType === 'boat' ? `HIN: ${inspection.vehicle.vin}` : t('vin', { vin: inspection.vehicle.vin })}</p>
+            <p className="text-sm text-gray-500">{serviceType === 'marine' ? `HIN: ${inspection.vehicle.vin}` : t('vin', { vin: inspection.vehicle.vin })}</p>
           )}
           {inspection.vehicle.licensePlate && (
-            <p className="text-sm text-gray-500">{serviceType === 'boat' ? `Reg: ${inspection.vehicle.licensePlate}` : t('plate', { plate: inspection.vehicle.licensePlate })}</p>
+            <p className="text-sm text-gray-500">{serviceType === 'marine' ? `Reg: ${inspection.vehicle.licensePlate}` : t('plate', { plate: inspection.vehicle.licensePlate })}</p>
           )}
           {inspection.mileage && (
-            <p className="text-sm text-gray-500">{t(serviceType === 'boat' ? 'mileageBoat' : 'mileage', { mileage: inspection.mileage.toLocaleString() })}</p>
+            <p className="text-sm text-gray-500">{t(serviceType === 'marine' ? 'mileageMarine' : 'mileage', { mileage: inspection.mileage.toLocaleString() })}</p>
           )}
         </div>
         {inspection.vehicle.customer && (

+ 1 - 1
src/app/(public)/share/inspection/[orgId]/[token]/page.tsx

@@ -142,7 +142,7 @@ export default async function PublicInspectionPage({
       hasExistingQuoteRequest={!!existingRequest}
       quoteShareUrl={quoteShareUrl}
       portalUrl={portalUrl}
-      serviceType={(settingsMap["workshop.serviceType"] || "automotive") as "automotive" | "boat"}
+      serviceType={(settingsMap["workshop.serviceType"] || "automotive") as "automotive" | "marine"}
     />
   );
 }

+ 4 - 4
src/app/(public)/share/invoice/[orgId]/[token]/invoice-view.tsx

@@ -219,7 +219,7 @@ export function InvoiceView({
   layoutConfig?: InvoiceLayoutConfig
   customFields?: CustomField[]
   telegramBotLink?: string
-  serviceType?: "automotive" | "boat"
+  serviceType?: "automotive" | "marine"
 }) {
   const t = useTranslations('share.invoice')
   const tc = useTranslations('share.common')
@@ -729,9 +729,9 @@ export function InvoiceView({
                     if (!show(fid)) return null
                     switch (fid) {
                       case 'vehicle_name': return <p key={fid} className="font-semibold">{vehicleName}</p>
-                      case 'vin': return record.vehicle.vin ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'boat' ? `HIN: ${record.vehicle.vin}` : t('vin', { vin: record.vehicle.vin })}</p> : null
-                      case 'license_plate': return record.vehicle.licensePlate ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'boat' ? `Reg: ${record.vehicle.licensePlate}` : t('plate', { plate: record.vehicle.licensePlate })}</p> : null
-                      case 'mileage': return record.vehicle.mileage > 0 ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'boat' ? `Engine Hours: ${record.vehicle.mileage.toLocaleString()}` : record.vehicle.mileage.toLocaleString()}</p> : null
+                      case 'vin': return record.vehicle.vin ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'marine' ? `HIN: ${record.vehicle.vin}` : t('vin', { vin: record.vehicle.vin })}</p> : null
+                      case 'license_plate': return record.vehicle.licensePlate ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'marine' ? `Reg: ${record.vehicle.licensePlate}` : t('plate', { plate: record.vehicle.licensePlate })}</p> : null
+                      case 'mileage': return record.vehicle.mileage > 0 ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'marine' ? `Engine Hours: ${record.vehicle.mileage.toLocaleString()}` : record.vehicle.mileage.toLocaleString()}</p> : null
                       default: return null
                     }
                   }

+ 1 - 1
src/app/(public)/share/invoice/[orgId]/[token]/page.tsx

@@ -211,7 +211,7 @@ export default async function PublicInvoicePage({
       layoutConfig={layoutConfig}
       customFields={customFields}
       telegramBotLink={telegramBotLink}
-      serviceType={(settingsMap["workshop.serviceType"] || "automotive") as "automotive" | "boat"}
+      serviceType={(settingsMap["workshop.serviceType"] || "automotive") as "automotive" | "marine"}
     />
   );
 }

+ 1 - 1
src/app/(public)/share/quote/[orgId]/[token]/page.tsx

@@ -173,7 +173,7 @@ export default async function PublicQuotePage({
       documentAttachments={documentAttachments}
       layoutConfig={layoutConfig}
       customFields={customFields}
-      serviceType={(settingsMap["workshop.serviceType"] || "automotive") as "automotive" | "boat"}
+      serviceType={(settingsMap["workshop.serviceType"] || "automotive") as "automotive" | "marine"}
     />
   );
 }

+ 3 - 3
src/app/(public)/share/quote/[orgId]/[token]/quote-view.tsx

@@ -164,7 +164,7 @@ export function QuoteView({
   documentAttachments?: QuoteAttachmentView[];
   layoutConfig?: InvoiceLayoutConfig;
   customFields?: CustomField[];
-  serviceType?: "automotive" | "boat";
+  serviceType?: "automotive" | "marine";
 }) {
   const t = useTranslations('share.quote');
   const tc = useTranslations('share.common');
@@ -475,8 +475,8 @@ export function QuoteView({
                     if (!show(fid)) return null
                     switch (fid) {
                       case 'vehicle_name': return <p key={fid} className="font-semibold">{quote.vehicle!.year} {quote.vehicle!.make} {quote.vehicle!.model}</p>
-                      case 'vin': return quote.vehicle!.vin ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'boat' ? `HIN: ${quote.vehicle!.vin}` : t('vin', { vin: quote.vehicle!.vin })}</p> : null
-                      case 'license_plate': return quote.vehicle!.licensePlate ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'boat' ? `Reg: ${quote.vehicle!.licensePlate}` : t('plate', { plate: quote.vehicle!.licensePlate })}</p> : null
+                      case 'vin': return quote.vehicle!.vin ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'marine' ? `HIN: ${quote.vehicle!.vin}` : t('vin', { vin: quote.vehicle!.vin })}</p> : null
+                      case 'license_plate': return quote.vehicle!.licensePlate ? <p key={fid} className="text-sm text-gray-500">{serviceType === 'marine' ? `Reg: ${quote.vehicle!.licensePlate}` : t('plate', { plate: quote.vehicle!.licensePlate })}</p> : null
                       default: return null
                     }
                   }

+ 8 - 8
src/app/api/protected/inspections/[id]/pdf/route.ts

@@ -66,15 +66,15 @@ export async function GET(
     const settingsMap: Record<string, string> = {};
     for (const s of settings) settingsMap[s.key] = s.value;
 
-    // Override labels for boat service type
+    // Override labels for marine service type
     const serviceType = settingsMap["workshop.serviceType"] || "automotive";
-    if (serviceType === "boat") {
-      if (pdfMessages.inspection.mileageBoat) labels.mileage = pdfMessages.inspection.mileageBoat;
-      if (pdfMessages.inspection.vinBoat) labels.vin = pdfMessages.inspection.vinBoat;
-      if (pdfMessages.inspection.plateBoat) labels.plate = pdfMessages.inspection.plateBoat;
-      if (pdfMessages.inspection.vehicleBoat) labels.vehicle = pdfMessages.inspection.vehicleBoat;
-      if (pdfMessages.inspection.titleBoat) labels.title = pdfMessages.inspection.titleBoat;
-      if (pdfMessages.inspection.footerTextBoat) labels.footerText = pdfMessages.inspection.footerTextBoat;
+    if (serviceType === "marine") {
+      if (pdfMessages.inspection.mileageMarine) labels.mileage = pdfMessages.inspection.mileageMarine;
+      if (pdfMessages.inspection.vinMarine) labels.vin = pdfMessages.inspection.vinMarine;
+      if (pdfMessages.inspection.plateMarine) labels.plate = pdfMessages.inspection.plateMarine;
+      if (pdfMessages.inspection.vehicleMarine) labels.vehicle = pdfMessages.inspection.vehicleMarine;
+      if (pdfMessages.inspection.titleMarine) labels.title = pdfMessages.inspection.titleMarine;
+      if (pdfMessages.inspection.footerTextMarine) labels.footerText = pdfMessages.inspection.footerTextMarine;
     }
 
     let logoDataUri: string | undefined;

+ 5 - 5
src/app/api/protected/quotes/[id]/pdf/route.ts

@@ -64,12 +64,12 @@ export async function GET(
     const settingsMap: Record<string, string> = {};
     for (const s of settings) settingsMap[s.key] = s.value;
 
-    // Override labels for boat service type
+    // Override labels for marine service type
     const serviceType = settingsMap["workshop.serviceType"] || "automotive";
-    if (serviceType === "boat") {
-      if (pdfMessages.quote.vinBoat) labels.vin = pdfMessages.quote.vinBoat;
-      if (pdfMessages.quote.plateBoat) labels.plate = pdfMessages.quote.plateBoat;
-      if (pdfMessages.quote.vehicleBoat) labels.vehicle = pdfMessages.quote.vehicleBoat;
+    if (serviceType === "marine") {
+      if (pdfMessages.quote.vinMarine) labels.vin = pdfMessages.quote.vinMarine;
+      if (pdfMessages.quote.plateMarine) labels.plate = pdfMessages.quote.plateMarine;
+      if (pdfMessages.quote.vehicleMarine) labels.vehicle = pdfMessages.quote.vehicleMarine;
     }
 
     let logoDataUri: string | undefined;

+ 6 - 6
src/app/api/protected/services/[id]/pdf/route.ts

@@ -98,13 +98,13 @@ export async function GET(
     const settingsMap: Record<string, string> = {};
     for (const s of settings) settingsMap[s.key] = s.value;
 
-    // Override labels for boat service type
+    // Override labels for marine service type
     const serviceType = settingsMap["workshop.serviceType"] || "automotive";
-    if (serviceType === "boat") {
-      if (pdfMessages.invoice.mileageBoat) labels.mileage = pdfMessages.invoice.mileageBoat;
-      if (pdfMessages.invoice.vinBoat) labels.vin = pdfMessages.invoice.vinBoat;
-      if (pdfMessages.invoice.plateBoat) labels.plate = pdfMessages.invoice.plateBoat;
-      if (pdfMessages.invoice.vehicleBoat) labels.vehicle = pdfMessages.invoice.vehicleBoat;
+    if (serviceType === "marine") {
+      if (pdfMessages.invoice.mileageMarine) labels.mileage = pdfMessages.invoice.mileageMarine;
+      if (pdfMessages.invoice.vinMarine) labels.vin = pdfMessages.invoice.vinMarine;
+      if (pdfMessages.invoice.plateMarine) labels.plate = pdfMessages.invoice.plateMarine;
+      if (pdfMessages.invoice.vehicleMarine) labels.vehicle = pdfMessages.invoice.vehicleMarine;
       // Override unit labels for engine hours
       labels.km = "hrs";
       labels.mi = "hrs";

+ 8 - 8
src/app/api/public/share/inspection/[orgId]/[token]/pdf/route.ts

@@ -66,15 +66,15 @@ export async function GET(
     const settingsMap: Record<string, string> = {};
     for (const s of settings) settingsMap[s.key] = s.value;
 
-    // Override labels for boat service type
+    // Override labels for marine service type
     const serviceType = settingsMap["workshop.serviceType"] || "automotive";
-    if (serviceType === "boat") {
-      if (pdfMessages.inspection.mileageBoat) labels.mileage = pdfMessages.inspection.mileageBoat;
-      if (pdfMessages.inspection.vinBoat) labels.vin = pdfMessages.inspection.vinBoat;
-      if (pdfMessages.inspection.plateBoat) labels.plate = pdfMessages.inspection.plateBoat;
-      if (pdfMessages.inspection.vehicleBoat) labels.vehicle = pdfMessages.inspection.vehicleBoat;
-      if (pdfMessages.inspection.titleBoat) labels.title = pdfMessages.inspection.titleBoat;
-      if (pdfMessages.inspection.footerTextBoat) labels.footerText = pdfMessages.inspection.footerTextBoat;
+    if (serviceType === "marine") {
+      if (pdfMessages.inspection.mileageMarine) labels.mileage = pdfMessages.inspection.mileageMarine;
+      if (pdfMessages.inspection.vinMarine) labels.vin = pdfMessages.inspection.vinMarine;
+      if (pdfMessages.inspection.plateMarine) labels.plate = pdfMessages.inspection.plateMarine;
+      if (pdfMessages.inspection.vehicleMarine) labels.vehicle = pdfMessages.inspection.vehicleMarine;
+      if (pdfMessages.inspection.titleMarine) labels.title = pdfMessages.inspection.titleMarine;
+      if (pdfMessages.inspection.footerTextMarine) labels.footerText = pdfMessages.inspection.footerTextMarine;
     }
 
     let logoDataUri: string | undefined;

+ 6 - 6
src/app/api/public/share/invoice/[orgId]/[token]/pdf/route.ts

@@ -101,13 +101,13 @@ export async function GET(
     const settingsMap: Record<string, string> = {};
     for (const s of settings) settingsMap[s.key] = s.value;
 
-    // Override labels for boat service type
+    // Override labels for marine service type
     const serviceType = settingsMap["workshop.serviceType"] || "automotive";
-    if (serviceType === "boat") {
-      if (pdfMessages.invoice.mileageBoat) labels.mileage = pdfMessages.invoice.mileageBoat;
-      if (pdfMessages.invoice.vinBoat) labels.vin = pdfMessages.invoice.vinBoat;
-      if (pdfMessages.invoice.plateBoat) labels.plate = pdfMessages.invoice.plateBoat;
-      if (pdfMessages.invoice.vehicleBoat) labels.vehicle = pdfMessages.invoice.vehicleBoat;
+    if (serviceType === "marine") {
+      if (pdfMessages.invoice.mileageMarine) labels.mileage = pdfMessages.invoice.mileageMarine;
+      if (pdfMessages.invoice.vinMarine) labels.vin = pdfMessages.invoice.vinMarine;
+      if (pdfMessages.invoice.plateMarine) labels.plate = pdfMessages.invoice.plateMarine;
+      if (pdfMessages.invoice.vehicleMarine) labels.vehicle = pdfMessages.invoice.vehicleMarine;
       // Override unit labels for engine hours
       labels.km = "hrs";
       labels.mi = "hrs";

+ 5 - 5
src/app/api/public/share/quote/[orgId]/[token]/pdf/route.ts

@@ -68,12 +68,12 @@ export async function GET(
     const settingsMap: Record<string, string> = {};
     for (const s of settings) settingsMap[s.key] = s.value;
 
-    // Override labels for boat service type
+    // Override labels for marine service type
     const serviceType = settingsMap["workshop.serviceType"] || "automotive";
-    if (serviceType === "boat") {
-      if (pdfMessages.quote.vinBoat) labels.vin = pdfMessages.quote.vinBoat;
-      if (pdfMessages.quote.plateBoat) labels.plate = pdfMessages.quote.plateBoat;
-      if (pdfMessages.quote.vehicleBoat) labels.vehicle = pdfMessages.quote.vehicleBoat;
+    if (serviceType === "marine") {
+      if (pdfMessages.quote.vinMarine) labels.vin = pdfMessages.quote.vinMarine;
+      if (pdfMessages.quote.plateMarine) labels.plate = pdfMessages.quote.plateMarine;
+      if (pdfMessages.quote.vehicleMarine) labels.vehicle = pdfMessages.quote.vehicleMarine;
     }
 
     let logoDataUri: string | undefined;

+ 6 - 1
src/components/app-sidebar.tsx

@@ -61,6 +61,7 @@ import {
   Plus,
   Receipt,
   Settings,
+  Ship,
   ShieldCheck,
   Sun,
   Users,
@@ -72,6 +73,7 @@ import { locales, localeNames } from '@/i18n/config'
 import { createNewOrganization } from '@/features/team/Actions/createNewOrganization'
 import type { PlanFeatures } from '@/lib/features'
 import { useTheme } from '@/components/theme-provider'
+import { useServiceType } from '@/components/service-type-context'
 import { NotificationBell, NotificationPanel } from '@/features/notifications/Components/NotificationPanel'
 import { SidebarInstallButton } from '@/components/pwa-install-prompt'
 
@@ -110,6 +112,9 @@ export function AppSidebar({
   const [newOrgName, setNewOrgName] = React.useState('')
   const [creatingOrg, setCreatingOrg] = React.useState(false)
 
+  const serviceType = useServiceType()
+  const isMarine = serviceType === 'marine'
+
   const canAccess = (subject: string) => !visibleSubjects || visibleSubjects.includes(subject)
 
   const clientItems = [
@@ -119,7 +124,7 @@ export function AppSidebar({
   ].filter((item) => canAccess(item.subject))
 
   const workshopItems = [
-    { titleKey: 'sidebar.vehicles' as const, url: '/vehicles', icon: Car, subject: 'vehicles' },
+    { titleKey: isMarine ? 'sidebar.vessels' as const : 'sidebar.vehicles' as const, url: '/vehicles', icon: isMarine ? Ship : Car, subject: 'vehicles' },
     { titleKey: 'sidebar.reminders' as const, url: '/reminders', icon: Bell, subject: 'vehicles' },
     { titleKey: 'sidebar.workOrders' as const, url: '/work-orders', icon: ClipboardList, subject: 'work_orders' },
     { titleKey: 'sidebar.inspections' as const, url: '/inspections', icon: ClipboardCheck, subject: 'inspections' },

+ 2 - 2
src/components/service-type-context.tsx

@@ -2,7 +2,7 @@
 
 import { createContext, useContext } from "react";
 
-type ServiceType = "automotive" | "boat";
+type ServiceType = "automotive" | "marine";
 
 const ServiceTypeContext = createContext<ServiceType>("automotive");
 
@@ -14,7 +14,7 @@ export function ServiceTypeProvider({
   children: React.ReactNode;
 }) {
   const value: ServiceType =
-    serviceType === "boat" ? "boat" : "automotive";
+    serviceType === "marine" ? "marine" : "automotive";
 
   return (
     <ServiceTypeContext.Provider value={value}>

+ 1 - 1
src/features/inspections/Components/InspectionPageClient.tsx

@@ -601,7 +601,7 @@ export function InspectionPageClient({
               {inspection.mileage && (
                 <>
                   <span>&middot;</span>
-                  <span>{inspection.mileage.toLocaleString()} {serviceType === 'boat' ? 'hrs' : 'mi'}</span>
+                  <span>{inspection.mileage.toLocaleString()} {serviceType === 'marine' ? 'hrs' : 'mi'}</span>
                 </>
               )}
               {inspection.vehicle.licensePlate && (

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است