service.json 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. {
  2. "page": {
  3. "notFound": "Registro di servizio non trovato",
  4. "updated": "Registro di servizio aggiornato",
  5. "failedUpdate": "Impossibile aggiornare il registro di servizio",
  6. "deleteTitle": "Elimina Registro di Servizio",
  7. "deleteDescription": "Questo eliminerà permanentemente questo registro di servizio e tutti i dati associati. Non può essere annullato.",
  8. "deleted": "Registro di servizio eliminato",
  9. "failedDelete": "Impossibile eliminare",
  10. "datesExpiredTitle": "Date della fattura scadute",
  11. "datesExpiredDescription": "La data della fattura o la data di scadenza è passata. Vuoi aggiornare le date prima di procedere?",
  12. "datesExpiredUpdate": "Aggiorna le date e procedi",
  13. "datesExpiredProceed": "Procedi senza modifiche",
  14. "datesExpiredSetToday": "Imposta a oggi",
  15. "customFieldsInvalid": "Compila tutti i campi personalizzati obbligatori",
  16. "customFieldsSaveFailed": "Impossibile salvare i campi personalizzati"
  17. },
  18. "header": {
  19. "tabs": {
  20. "details": "Dettagli",
  21. "images": "Immagini",
  22. "video": "Video",
  23. "documents": "Documenti",
  24. "statusReports": "Rapporti di stato"
  25. },
  26. "save": "Salva",
  27. "pdf": "PDF",
  28. "email": "Email",
  29. "share": "Condividi",
  30. "delete": "Elimina",
  31. "unpaid": "Non Pagato",
  32. "unsavedChanges": "Modifiche non salvate",
  33. "saved": "Salvato"
  34. },
  35. "basicInfo": {
  36. "title": "Informazioni di Base",
  37. "invoiceDetails": "Dettagli fattura",
  38. "customerInfo": "Cliente e veicolo",
  39. "paid": "Pagato",
  40. "markPaid": "Segna come pagato",
  41. "markUnpaid": "Segna come non pagato",
  42. "vehicle": "Veicolo",
  43. "open": "Apri",
  44. "customer": "Cliente",
  45. "titleLabel": "Titolo *",
  46. "titlePlaceholder": "Cambio Olio",
  47. "date": "Data",
  48. "type": "Tipo",
  49. "mileage": "Chilometraggio",
  50. "mileageMarine": "Ore Motore",
  51. "status": "Stato",
  52. "technician": "Tecnico",
  53. "invoiceNumber": "Numero Fattura",
  54. "invoiceDate": "Data fattura",
  55. "invoiceDueDate": "Data di scadenza",
  56. "typeOptions": {
  57. "maintenance": "Manutenzione",
  58. "repair": "Riparazione",
  59. "upgrade": "Aggiornamento",
  60. "inspection": "Ispezione"
  61. },
  62. "statusOptions": {
  63. "pending": "In Sospeso",
  64. "in_progress": "In Corso",
  65. "waiting_parts": "In Attesa di Pezzi",
  66. "completed": "Completato"
  67. },
  68. "searchVehicles": "Cerca veicoli...",
  69. "noVehicleFound": "Nessun veicolo trovato.",
  70. "techPicker": {
  71. "placeholder": "Seleziona o digita un nome...",
  72. "searchPlaceholder": "Cerca o digita nome...",
  73. "useCustom": "Usa \"{search}\"",
  74. "typePrompt": "Digita un nome...",
  75. "boardTechnicians": "Tecnici della Lavagna",
  76. "teamMembers": "Membri del Team"
  77. }
  78. },
  79. "parts": {
  80. "title": "Pezzi",
  81. "fromInventory": "Da Inventario",
  82. "addPart": "Aggiungi Pezzo",
  83. "partNumber": "Numero Pezzo",
  84. "name": "Nome",
  85. "qty": "Qty",
  86. "unitPrice": "Prezzo Unitario",
  87. "total": "Totale",
  88. "namePlaceholder": "Nome *",
  89. "subtotal": "Subtotale Pezzi: {amount}",
  90. "inventoryTitle": "Seleziona Pezzo da Inventario",
  91. "searchInventory": "Cerca inventario...",
  92. "inStock": "{quantity} in magazzino",
  93. "noInventory": "Nessun pezzo inventario trovato.",
  94. "scanBarcode": "Scansiona",
  95. "scanTitle": "Scansiona codice a barre",
  96. "partFound": "\"{name}\" aggiunto dall'inventario",
  97. "partNotFound": "Nessun pezzo trovato per il codice a barre \"{barcode}\""
  98. },
  99. "labor": {
  100. "title": "Manodopera",
  101. "addLabor": "Aggiungi Manodopera",
  102. "fromPresets": "Da modelli",
  103. "description": "Descrizione",
  104. "hours": "Ore",
  105. "rate": "Tariffa ({currency}/h)",
  106. "total": "Totale",
  107. "descriptionPlaceholder": "Descrizione *",
  108. "subtotal": "Subtotale Manodopera: {amount}",
  109. "addService": "Add Service",
  110. "qty": "Qty",
  111. "qtyOrHours": "Unit / Hours",
  112. "hourlyTag": "HR",
  113. "serviceTag": "SVC",
  114. "switchToHourly": "Switch to hourly pricing",
  115. "switchToService": "Switch to service pricing",
  116. "switchToHourlyHint": "Hourly: priced by hours worked (hours 00d7 rate/hr). Click to switch.",
  117. "switchToServiceHint": "Service: priced as a flat fee per unit. Click to switch."
  118. },
  119. "totals": {
  120. "title": "Totali",
  121. "parts": "Pezzi",
  122. "labor": "Manodopera",
  123. "subtotal": "Subtotale",
  124. "discount": "Sconto",
  125. "discountNone": "Nessuno",
  126. "discountPercentage": "Percentuale",
  127. "discountFixed": "Fisso",
  128. "tax": "Imposta",
  129. "total": "Totale"
  130. },
  131. "notes": {
  132. "title": "Note",
  133. "public": "Pubblico",
  134. "internal": "Interno",
  135. "publicPlaceholder": "Note visibili sulla fattura...",
  136. "internalPlaceholder": "Note interne (non mostrate sulla fattura)...",
  137. "publicHelper": "Mostrato sulla fattura e nei documenti condivisi",
  138. "internalHelper": "Visibile solo al tuo team",
  139. "aiWrite": "AI Scrivi",
  140. "aiGenerated": "Note AI generate con successo",
  141. "aiGenerateFailed": "Generazione note AI non riuscita",
  142. "aiDialogTitle": "AI Scrivi",
  143. "aiDialogDescription": "L'IA analizzerà le parti e la manodopera in questo record di servizio e genererà una descrizione professionale. Il risultato verrà scritto nel tipo di nota selezionato.",
  144. "aiGenerate": "Genera",
  145. "aiOverwriteDescription": "Questa nota ha già del contenuto. Puoi sostituirlo o aggiungere il testo generato dall'IA sotto.",
  146. "aiOverwriteReplace": "Sostituisci",
  147. "aiOverwriteAppend": "Aggiungi",
  148. "aiOverwriteCancel": "Annulla",
  149. "aiDontShowAgain": "Non mostrare più"
  150. },
  151. "invoice": {
  152. "title": "Riepilogo Fattura",
  153. "parts": "Pezzi",
  154. "labor": "Manodopera",
  155. "subtotal": "Subtotale",
  156. "discount": "Sconto",
  157. "tax": "Imposta ({rate}%)",
  158. "total": "Totale",
  159. "paid": "Pagato",
  160. "balanceDue": "Importo Dovuto",
  161. "paidBadge": "PAGATO",
  162. "entityLabel": "Fattura",
  163. "emailSubject": "Conferma Pagamento"
  164. },
  165. "payments": {
  166. "title": "Pagamenti",
  167. "markUnpaid": "Contrassegna come Non Pagato",
  168. "markPaid": "Contrassegna come Pagato",
  169. "recordPayment": "Registra Pagamento",
  170. "totalPaid": "Totale Pagato",
  171. "amount": "Importo",
  172. "date": "Data",
  173. "method": "Metodo",
  174. "note": "Nota",
  175. "notePlaceholder": "Nota facoltativa",
  176. "savePayment": "Salva Pagamento",
  177. "methodOptions": {
  178. "cash": "Contanti",
  179. "card": "Carta",
  180. "transfer": "Trasferimento",
  181. "other": "Altro"
  182. },
  183. "recorded": "Pagamento registrato",
  184. "markedPaid": "Contrassegnato come pagato",
  185. "markedUnpaid": "Contrassegnato come non pagato",
  186. "deleted": "Pagamento eliminato",
  187. "failedRecord": "Impossibile registrare il pagamento",
  188. "failedStatus": "Impossibile aggiornare lo stato del pagamento",
  189. "failedDelete": "Impossibile eliminare il pagamento",
  190. "deleteTitle": "Elimina Pagamento",
  191. "deleteDescription": "Questo rimuoverà questo record di pagamento.",
  192. "failedPdf": "Impossibile generare PDF fattura"
  193. },
  194. "attachments": {
  195. "deleteTitle": "Elimina Allegato",
  196. "deleteDescription": "Questo eliminerà permanentemente questo allegato. Non può essere annullato.",
  197. "deleted": "Allegato eliminato",
  198. "failedDelete": "Impossibile eliminare",
  199. "images": "Immagini ({count})",
  200. "videos": "Video ({count})",
  201. "diagnostics": "Rapporti Diagnostici ({count})",
  202. "documents": "Documenti ({count})"
  203. },
  204. "share": {
  205. "title": "Condividi Fattura",
  206. "description": "Genera un collegamento pubblico che consente a chiunque di visualizzare e scaricare questa fattura senza accedere.",
  207. "notifyTitle": "Notifica {name}",
  208. "email": "Email",
  209. "noEmail": "(nessun email in archivio)",
  210. "sms": "SMS",
  211. "noPhone": "(nessun telefono in archivio)",
  212. "sendNotification": "Invia Notifica",
  213. "revokeLink": "Revoca Collegamento",
  214. "generateLink": "Genera Collegamento Pubblico",
  215. "emailSent": "Email inviata",
  216. "failedEmail": "Impossibile inviare email",
  217. "smsSent": "SMS inviato",
  218. "failedSms": "Impossibile inviare SMS"
  219. },
  220. "sidebar": {
  221. "vehicle": "Veicolo",
  222. "customer": "Cliente",
  223. "vin": "VIN: {vin}",
  224. "mileageAtService": "Chilometraggio al servizio: {mileage} {unit}",
  225. "engineHoursAtService": "Ore motore al servizio: {mileage} {unit}",
  226. "sharedLink": {
  227. "title": "Link condiviso",
  228. "sharedOn": "Condiviso il {date}",
  229. "notViewed": "Non ancora visualizzato",
  230. "viewedTimes": "Visualizzato {count, plural, one {# volta} other {# volte}}",
  231. "lastViewed": "Ultimo {date}",
  232. "copyLink": "Copia link",
  233. "linkCopied": "Link copiato"
  234. }
  235. },
  236. "images": {
  237. "title": "Immagini del Servizio",
  238. "dropzone": "Trascina le immagini qui o clicca per sfogliare",
  239. "uploading": "Caricamento...",
  240. "formats": "JPG, PNG, WebP — max 10 MB ciascuna",
  241. "uploadingImages": "Caricamento immagini...",
  242. "limitReached": "Limite immagini raggiunto ({count}/{max})",
  243. "upgradePrompt": "Aggiorna il tuo piano per caricare più immagini.",
  244. "onlyAllowed": "Sono consentite solo immagini JPG, PNG e WebP. {names} saltati.",
  245. "onlyUploading": "Verranno caricate solo {count} immagine/i per rispettare il limite.",
  246. "uploadingCount": "Caricamento di {count} immagine/i...",
  247. "uploadedCount": "{count} immagine/i caricata/e",
  248. "uploadFailed": "Caricamento fallito",
  249. "deleted": "Immagine eliminata",
  250. "failedDelete": "Impossibile eliminare l'immagine",
  251. "failedUpdate": "Impossibile aggiornare",
  252. "description": "Descrizione...",
  253. "invoice": "Fattura"
  254. },
  255. "videos": {
  256. "title": "Video del Servizio",
  257. "dropzone": "Trascina i video qui o clicca per sfogliare",
  258. "uploading": "Caricamento...",
  259. "formats": "MP4, WebM, MOV — max 10 MB ciascuno",
  260. "uploadingVideos": "Caricamento video...",
  261. "uploadingCount": "Caricamento di {count} video...",
  262. "uploadedCount": "{count} video caricato/i",
  263. "uploadFailed": "Caricamento fallito",
  264. "deleted": "Video eliminato",
  265. "failedDelete": "Impossibile eliminare il video",
  266. "failedUpdate": "Impossibile aggiornare",
  267. "invoice": "Fattura"
  268. },
  269. "documents": {
  270. "diagnosticTitle": "Rapporti Diagnostici",
  271. "documentsTitle": "Documenti",
  272. "dropzone": "Trascina i file qui o clicca per sfogliare",
  273. "uploading": "Caricamento...",
  274. "diagnosticFormats": "PDF, CSV, TXT — max 10 MB ciascuno",
  275. "documentFormats": "PDF, DOCX, XLSX, CSV, TXT — max 10 MB ciascuno",
  276. "uploadingReports": "Caricamento rapporti...",
  277. "uploadingDocuments": "Caricamento documenti...",
  278. "diagnosticLimitReached": "Limite rapporti diagnostici raggiunto ({count}/{max})",
  279. "documentLimitReached": "Limite documenti raggiunto ({count}/{max})",
  280. "upgradePrompt": "Aggiorna il tuo piano per caricare di più.",
  281. "diagnosticLabel": "Rapporto diagnostico",
  282. "documentLabel": "Documento",
  283. "limitReachedToast": "Limite {label} raggiunto ({count}/{max}). Aggiorna il tuo piano per di più.",
  284. "onlyUploading": "Verranno caricati solo {count} file per rispettare il limite.",
  285. "uploadingCount": "Caricamento di {count} file...",
  286. "uploadedCount": "{count} file caricato/i",
  287. "uploadFailed": "Caricamento fallito",
  288. "deleted": "File eliminato",
  289. "failedDelete": "Impossibile eliminare il file",
  290. "failedUpdate": "Impossibile aggiornare",
  291. "invoice": "Fattura"
  292. },
  293. "schedule": {
  294. "title": "Pianificazione",
  295. "date": "Data",
  296. "startTime": "Ora di inizio",
  297. "endTime": "Ora di fine",
  298. "technician": "Tecnico",
  299. "selectTechnician": "Seleziona tecnico...",
  300. "searchOrCreate": "Cerca o crea tecnico...",
  301. "createTechnician": "Crea \"{name}\"",
  302. "creating": "Creazione...",
  303. "failedCreate": "Impossibile creare il tecnico",
  304. "addNew": "+ Aggiungi nuovo",
  305. "add": "Aggiungi",
  306. "newTechPlaceholder": "Nome del tecnico...",
  307. "assign": "Assegna alla bacheca",
  308. "assigned": "Assegnato alla bacheca di lavoro",
  309. "failedAssign": "Assegnazione fallita",
  310. "endBeforeStart": "L'ora di fine deve essere dopo l'ora di inizio",
  311. "failedUpdate": "Impossibile aggiornare la pianificazione",
  312. "splitCreated": "Il lavoro si estende su più giorni — continuazione creata per il giorno successivo",
  313. "platformUsers": "Platform Users",
  314. "customTechnicians": "Custom",
  315. "readMore": "Scopri di più",
  316. "setDefaults": "Valori predefiniti"
  317. }
  318. }