service.json 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  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. "datesExpiredUseToday": "Aggiorna alla data di oggi",
  15. "datesExpiredCustomize": "Scegli le date manualmente",
  16. "datesExpiredBack": "Indietro",
  17. "datesExpiredSetToday": "Imposta a oggi",
  18. "customFieldsInvalid": "Compila tutti i campi personalizzati obbligatori",
  19. "customFieldsSaveFailed": "Impossibile salvare i campi personalizzati"
  20. },
  21. "header": {
  22. "tabs": {
  23. "details": "Dettagli",
  24. "images": "Immagini",
  25. "video": "Video",
  26. "documents": "Documenti",
  27. "statusReports": "Rapporti di stato"
  28. },
  29. "save": "Salva",
  30. "pdf": "PDF",
  31. "email": "Email",
  32. "share": "Condividi",
  33. "notify": "Notifica",
  34. "delete": "Elimina",
  35. "unpaid": "Non Pagato",
  36. "unsavedChanges": "Modifiche non salvate",
  37. "saved": "Salvato",
  38. "joinCall": "Partecipa alla videochiamata"
  39. },
  40. "basicInfo": {
  41. "title": "Informazioni di Base",
  42. "invoiceDetails": "Dettagli fattura",
  43. "customerInfo": "Cliente e veicolo",
  44. "paid": "Pagato",
  45. "markPaid": "Segna come pagato",
  46. "markUnpaid": "Segna come non pagato",
  47. "vehicle": "Veicolo",
  48. "open": "Apri",
  49. "customer": "Cliente",
  50. "titleLabel": "Titolo *",
  51. "titlePlaceholder": "Cambio Olio",
  52. "date": "Data",
  53. "type": "Tipo",
  54. "mileage": "Chilometraggio",
  55. "mileageMarine": "Ore Motore",
  56. "status": "Stato",
  57. "technician": "Tecnico",
  58. "invoiceNumber": "Numero Fattura",
  59. "invoiceDate": "Data fattura",
  60. "invoiceDueDate": "Data di scadenza",
  61. "typeOptions": {
  62. "maintenance": "Manutenzione",
  63. "repair": "Riparazione",
  64. "upgrade": "Aggiornamento",
  65. "inspection": "Ispezione"
  66. },
  67. "statusOptions": {
  68. "pending": "In Sospeso",
  69. "in_progress": "In Corso",
  70. "waiting_parts": "In Attesa di Pezzi",
  71. "completed": "Completato"
  72. },
  73. "searchVehicles": "Cerca veicoli...",
  74. "noVehicleFound": "Nessun veicolo trovato.",
  75. "techPicker": {
  76. "placeholder": "Seleziona o digita un nome...",
  77. "searchPlaceholder": "Cerca o digita nome...",
  78. "useCustom": "Usa \"{search}\"",
  79. "typePrompt": "Digita un nome...",
  80. "boardTechnicians": "Tecnici della Lavagna",
  81. "teamMembers": "Membri del Team"
  82. },
  83. "design": "Design della fattura",
  84. "designDefault": "Predefinito dell'officina",
  85. "designFollowing": "Predefinito ({name})",
  86. "designPinned": "Il foglio è stato congelato all'emissione della fattura il {date}. Una nuova scelta vale solo dopo che un titolare sblocca la fattura e questa viene inviata di nuovo.",
  87. "designSaved": "Design della fattura aggiornato",
  88. "designFollowingRule": "Predefinito ({name}, {rule})",
  89. "designRule": {
  90. "parts_sale": "Vendita solo ricambi"
  91. },
  92. "designSaveFailed": "Impossibile cambiare il design della fattura"
  93. },
  94. "parts": {
  95. "title": "Pezzi",
  96. "fromInventory": "Da Inventario",
  97. "addPart": "Aggiungi Pezzo",
  98. "partNumber": "Numero Pezzo",
  99. "name": "Nome",
  100. "qty": "Qty",
  101. "unitCost": "Costo",
  102. "unitCostHint": "Costo fornitore (interno — non mostrato al cliente)",
  103. "markupPercent": "Ricarico %",
  104. "markupPercentHint": "Ricarico applicato al costo (interno — non mostrato al cliente)",
  105. "applyMarkup": "Applica {percent}%",
  106. "applyMarkupHint": "Riapplicare il ricarico del {percent}% al costo su ogni riga",
  107. "unitPrice": "Prezzo Unitario",
  108. "total": "Totale",
  109. "namePlaceholder": "Nome *",
  110. "subtotal": "Subtotale Pezzi: {amount}",
  111. "inventoryTitle": "Seleziona Pezzo da Inventario",
  112. "searchInventory": "Cerca inventario...",
  113. "inStock": "{quantity} in magazzino",
  114. "noInventory": "Nessun pezzo inventario trovato.",
  115. "scanBarcode": "Scansiona",
  116. "scanTitle": "Scansiona codice a barre",
  117. "partFound": "\"{name}\" aggiunto dall'inventario",
  118. "partNotFound": "Nessun pezzo trovato per il codice a barre \"{barcode}\"",
  119. "deleteRow": "Delete row",
  120. "outOfStock": "Esaurito",
  121. "onBackorder": "In arretrato ({count})",
  122. "nameMissingHint": "Le righe senza nome del ricambio non vengono salvate."
  123. },
  124. "labor": {
  125. "title": "Manodopera",
  126. "addLabor": "Aggiungi Manodopera",
  127. "fromPresets": "Da modelli",
  128. "description": "Descrizione",
  129. "hours": "Ore",
  130. "rate": "Tariffa ({currency}/h)",
  131. "total": "Totale",
  132. "descriptionPlaceholder": "Descrizione *",
  133. "subtotal": "Subtotale Manodopera: {amount}",
  134. "addService": "Add Service",
  135. "addFinding": "Osservazione",
  136. "newObservation": "Nuova osservazione",
  137. "addExisting": "Mostra esistenti ({count})",
  138. "qty": "Qty",
  139. "qtyOrHours": "Unit / Hours",
  140. "hourlyTag": "HR",
  141. "serviceTag": "SVC",
  142. "switchToHourly": "Switch to hourly pricing",
  143. "switchToService": "Switch to service pricing",
  144. "switchToHourlyHint": "Hourly: priced by hours worked (hours 00d7 rate/hr). Click to switch.",
  145. "switchToServiceHint": "Service: priced as a flat fee per unit. Click to switch.",
  146. "deleteRow": "Delete row"
  147. },
  148. "totals": {
  149. "title": "Totali",
  150. "parts": "Pezzi",
  151. "labor": "Manodopera",
  152. "subtotal": "Subtotale",
  153. "subtotalInclTax": "Subtotale (incl. imposta)",
  154. "discount": "Sconto",
  155. "discountNone": "Nessuno",
  156. "discountPercentage": "Percentuale",
  157. "discountFixed": "Fisso",
  158. "tax": "Imposta",
  159. "taxIncluded": "Imposta (incl.)",
  160. "total": "Totale",
  161. "inclusiveModeHint": "I prezzi delle righe sono inseriti con imposta inclusa. I totali mostrano la suddivisione netto + imposta.",
  162. "partsCost": "Costo ricambi (interno)"
  163. },
  164. "notes": {
  165. "title": "Note",
  166. "public": "Pubblico",
  167. "internal": "Interno",
  168. "publicPlaceholder": "Note visibili sulla fattura...",
  169. "internalPlaceholder": "Note interne (non mostrate sulla fattura)...",
  170. "publicHelper": "Mostrato sulla fattura e nei documenti condivisi",
  171. "internalHelper": "Visibile solo al tuo team",
  172. "aiWrite": "AI Scrivi",
  173. "aiGenerated": "Note AI generate con successo",
  174. "aiGenerateFailed": "Generazione note AI non riuscita",
  175. "aiDialogTitle": "AI Scrivi",
  176. "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.",
  177. "aiGenerate": "Genera",
  178. "aiOverwriteDescription": "Questa nota ha già del contenuto. Puoi sostituirlo o aggiungere il testo generato dall'IA sotto.",
  179. "aiOverwriteReplace": "Sostituisci",
  180. "aiOverwriteAppend": "Aggiungi",
  181. "aiOverwriteCancel": "Annulla",
  182. "aiDontShowAgain": "Non mostrare più"
  183. },
  184. "invoice": {
  185. "title": "Riepilogo Fattura",
  186. "parts": "Pezzi",
  187. "labor": "Manodopera",
  188. "subtotal": "Subtotale",
  189. "subtotalInclTax": "Subtotale (incl. imposta)",
  190. "discount": "Sconto",
  191. "tax": "Imposta ({rate}%)",
  192. "taxIncluded": "Imposta (incl., {rate}%)",
  193. "total": "Totale",
  194. "paid": "Pagato",
  195. "balanceDue": "Importo Dovuto",
  196. "paidBadge": "PAGATO",
  197. "entityLabel": "Fattura",
  198. "emailSubject": "Conferma Pagamento",
  199. "statusEmailSubject": "Aggiornamento dello stato del servizio",
  200. "markCompletedTitle": "Contrassegnare questa fattura come completata?",
  201. "markCompletedDescription": "È stata inviata al cliente ma risulta ancora non conclusa, quindi resterà visibile sulla lavagna.",
  202. "markCompletedConfirm": "Segna come completata",
  203. "lockedFieldsetLabel": "Fattura bloccata, modifica disattivata"
  204. },
  205. "payments": {
  206. "title": "Pagamenti",
  207. "markUnpaid": "Contrassegna come Non Pagato",
  208. "markPaid": "Contrassegna come Pagato",
  209. "recordPayment": "Registra Pagamento",
  210. "totalPaid": "Totale Pagato",
  211. "amount": "Importo",
  212. "date": "Data",
  213. "method": "Metodo",
  214. "note": "Nota",
  215. "notePlaceholder": "Nota facoltativa",
  216. "savePayment": "Salva Pagamento",
  217. "methodOptions": {
  218. "cash": "Contanti",
  219. "card": "Carta",
  220. "transfer": "Trasferimento",
  221. "other": "Altro"
  222. },
  223. "recorded": "Pagamento registrato",
  224. "markedPaid": "Contrassegnato come pagato",
  225. "markedUnpaid": "Contrassegnato come non pagato",
  226. "deleted": "Pagamento eliminato",
  227. "failedRecord": "Impossibile registrare il pagamento",
  228. "failedStatus": "Impossibile aggiornare lo stato del pagamento",
  229. "failedDelete": "Impossibile eliminare il pagamento",
  230. "deleteTitle": "Elimina Pagamento",
  231. "deleteDescription": "Questo rimuoverà questo record di pagamento.",
  232. "failedPdf": "Impossibile generare PDF fattura"
  233. },
  234. "attachments": {
  235. "deleteTitle": "Elimina Allegato",
  236. "deleteDescription": "Questo eliminerà permanentemente questo allegato. Non può essere annullato.",
  237. "deleted": "Allegato eliminato",
  238. "failedDelete": "Impossibile eliminare",
  239. "images": "Immagini ({count})",
  240. "videos": "Video ({count})",
  241. "diagnostics": "Rapporti Diagnostici ({count})",
  242. "documents": "Documenti ({count})",
  243. "download": "Download",
  244. "close": "Close"
  245. },
  246. "share": {
  247. "title": "Condividi Fattura",
  248. "description": "Genera un collegamento pubblico che consente a chiunque di visualizzare e scaricare questa fattura senza accedere.",
  249. "notifyTitle": "Notifica {name}",
  250. "email": "Email",
  251. "noEmail": "(nessun email in archivio)",
  252. "sms": "SMS",
  253. "noPhone": "(nessun telefono in archivio)",
  254. "sendNotification": "Invia Notifica",
  255. "revokeLink": "Revoca Collegamento",
  256. "generateLink": "Genera Collegamento Pubblico",
  257. "emailSent": "Email inviata",
  258. "failedEmail": "Impossibile inviare email",
  259. "smsSent": "SMS inviato",
  260. "failedSms": "Impossibile inviare SMS",
  261. "copyLink": "Copy link"
  262. },
  263. "sidebar": {
  264. "vehicle": "Veicolo",
  265. "customer": "Cliente",
  266. "vin": "VIN: {vin}",
  267. "mileageAtService": "Chilometraggio al servizio: {mileage} {unit}",
  268. "engineHoursAtService": "Ore motore al servizio: {mileage} {unit}",
  269. "sharedLink": {
  270. "title": "Link condiviso",
  271. "sharedOn": "Condiviso il {date}",
  272. "notViewed": "Non ancora visualizzato",
  273. "viewedTimes": "Visualizzato {count, plural, one {# volta} other {# volte}}",
  274. "lastViewed": "Ultimo {date}",
  275. "copyLink": "Copia link",
  276. "linkCopied": "Link copiato"
  277. }
  278. },
  279. "images": {
  280. "title": "Immagini del Servizio",
  281. "dropzone": "Trascina le immagini qui o clicca per sfogliare",
  282. "uploading": "Caricamento...",
  283. "formats": "JPG, PNG, WebP — max 10 MB ciascuna",
  284. "uploadingImages": "Caricamento immagini...",
  285. "limitReached": "Limite immagini raggiunto ({count}/{max})",
  286. "upgradePrompt": "Aggiorna il tuo piano per caricare più immagini.",
  287. "onlyAllowed": "Sono consentite solo immagini JPG, PNG e WebP. {names} saltati.",
  288. "onlyUploading": "Verranno caricate solo {count} immagine/i per rispettare il limite.",
  289. "uploadingCount": "Caricamento di {count} immagine/i...",
  290. "uploadedCount": "{count} immagine/i caricata/e",
  291. "uploadFailed": "Caricamento fallito",
  292. "deleted": "Immagine eliminata",
  293. "failedDelete": "Impossibile eliminare l'immagine",
  294. "failedUpdate": "Impossibile aggiornare",
  295. "description": "Descrizione...",
  296. "invoice": "Fattura"
  297. },
  298. "videos": {
  299. "title": "Video del Servizio",
  300. "dropzone": "Trascina i video qui o clicca per sfogliare",
  301. "uploading": "Caricamento...",
  302. "formats": "MP4, WebM, MOV — max 10 MB ciascuno",
  303. "uploadingVideos": "Caricamento video...",
  304. "uploadingCount": "Caricamento di {count} video...",
  305. "uploadedCount": "{count} video caricato/i",
  306. "uploadFailed": "Caricamento fallito",
  307. "deleted": "Video eliminato",
  308. "failedDelete": "Impossibile eliminare il video",
  309. "failedUpdate": "Impossibile aggiornare",
  310. "invoice": "Fattura"
  311. },
  312. "documents": {
  313. "diagnosticTitle": "Rapporti Diagnostici",
  314. "documentsTitle": "Documenti",
  315. "dropzone": "Trascina i file qui o clicca per sfogliare",
  316. "uploading": "Caricamento...",
  317. "diagnosticFormats": "PDF, CSV, TXT — max 10 MB ciascuno",
  318. "documentFormats": "PDF, DOCX, XLSX, CSV, TXT — max 10 MB ciascuno",
  319. "uploadingReports": "Caricamento rapporti...",
  320. "uploadingDocuments": "Caricamento documenti...",
  321. "diagnosticLimitReached": "Limite rapporti diagnostici raggiunto ({count}/{max})",
  322. "documentLimitReached": "Limite documenti raggiunto ({count}/{max})",
  323. "upgradePrompt": "Aggiorna il tuo piano per caricare di più.",
  324. "diagnosticLabel": "Rapporto diagnostico",
  325. "documentLabel": "Documento",
  326. "limitReachedToast": "Limite {label} raggiunto ({count}/{max}). Aggiorna il tuo piano per di più.",
  327. "onlyUploading": "Verranno caricati solo {count} file per rispettare il limite.",
  328. "uploadingCount": "Caricamento di {count} file...",
  329. "uploadedCount": "{count} file caricato/i",
  330. "uploadFailed": "Caricamento fallito",
  331. "deleted": "File eliminato",
  332. "failedDelete": "Impossibile eliminare il file",
  333. "failedUpdate": "Impossibile aggiornare",
  334. "invoice": "Fattura"
  335. },
  336. "schedule": {
  337. "title": "Pianificazione",
  338. "date": "Data",
  339. "startTime": "Ora di inizio",
  340. "endTime": "Ora di fine",
  341. "technician": "Tecnico",
  342. "selectTechnician": "Seleziona tecnico...",
  343. "searchOrCreate": "Cerca o crea tecnico...",
  344. "createTechnician": "Crea \"{name}\"",
  345. "creating": "Creazione...",
  346. "failedCreate": "Impossibile creare il tecnico",
  347. "addNew": "+ Aggiungi nuovo",
  348. "add": "Aggiungi",
  349. "newTechPlaceholder": "Nome del tecnico...",
  350. "assign": "Assegna alla bacheca",
  351. "assigned": "Assegnato alla bacheca di lavoro",
  352. "failedAssign": "Assegnazione fallita",
  353. "endBeforeStart": "L'ora di fine deve essere dopo l'ora di inizio",
  354. "failedUpdate": "Impossibile aggiornare la pianificazione",
  355. "splitCreated": "Il lavoro si estende su più giorni — continuazione creata per il giorno successivo",
  356. "platformUsers": "Platform Users",
  357. "customTechnicians": "Custom",
  358. "readMore": "Scopri di più",
  359. "setDefaults": "Valori predefiniti",
  360. "workBay": "Postazione",
  361. "selectWorkBay": "Seleziona postazione…",
  362. "noWorkBay": "Nessuna postazione",
  363. "noTechnician": "Senza tecnico",
  364. "technicians": "Tecnici",
  365. "otherTeamMembers": "Altri membri del team",
  366. "makeTechnician": "Lo rende un tecnico",
  367. "addSomeoneNew": "Aggiungi qualcuno",
  368. "notOnBoard": "Non ancora sulla lavagna",
  369. "putOnBoard": "Metti sulla lavagna",
  370. "slotTaken": "{count, plural, one {Questa fascia è già occupata} other {Questa fascia ha # conflitti}}",
  371. "anotherJob": "un altro lavoro",
  372. "clashTechnician": "il tecnico è occupato",
  373. "clashBay": "la postazione è occupata",
  374. "clashBoth": "entrambi sono occupati",
  375. "bookedAnyway": "Salvato comunque. Cambia l'orario o scegli la prossima fascia libera.",
  376. "pickNextAvailable": "Scegli la prossima fascia libera",
  377. "findingSlot": "Ricerca di una fascia…",
  378. "slotPicked": "Spostato sulla prossima fascia libera",
  379. "noSlotFound": "Nessuna fascia libera trovata nelle prossime settimane"
  380. },
  381. "notifications": {
  382. "title": "Notifiche al cliente",
  383. "viaSms": "via SMS",
  384. "viaEmail": "via e-mail",
  385. "justNow": "Proprio ora",
  386. "minutesAgo": "{count}m fa",
  387. "hoursAgo": "{count}h fa",
  388. "daysAgo": "{count}g fa"
  389. },
  390. "table": {
  391. "warranty": "Garanzia"
  392. },
  393. "warranty": {
  394. "title": "Garanzia",
  395. "months": "Durata (mesi)",
  396. "mileage": "Limite chilometrico",
  397. "notes": "Termini di garanzia",
  398. "notesPlaceholder": "es. Garanzia di 12 mesi su tutti i ricambi e la manodopera...",
  399. "expiresAt": "Scadenza",
  400. "presets": {
  401. "3months": "3 m",
  402. "6months": "6 m",
  403. "12months": "12 m",
  404. "24months": "24 m"
  405. },
  406. "status": {
  407. "active": "Attiva",
  408. "expiring": "In scadenza",
  409. "expired": "Scaduta",
  410. "none": "Nessuna"
  411. },
  412. "defaults": {
  413. "title": "Impostazioni garanzia predefinite",
  414. "description": "Imposta i termini di garanzia predefiniti per i nuovi interventi"
  415. }
  416. },
  417. "concerns": {
  418. "title": "Segnalazioni del cliente",
  419. "addFirst": "Aggiungi una segnalazione del cliente",
  420. "add": "Aggiungine un altro",
  421. "placeholder": "C'è un rumore dietro quando freno",
  422. "remove": "Rimuovi questo punto",
  423. "notAnswered": "Non è ancora stato trovato nulla",
  424. "answered": "{count} riscontro/i su questo"
  425. },
  426. "videoCall": {
  427. "title": "Videochiamata",
  428. "none": "Nessuna videochiamata su questo ordine di lavoro.",
  429. "needsSchedule": "Imposta prima un'ora di inizio. La riunione segue la programmazione.",
  430. "add": "Aggiungi riunione {provider}",
  431. "addedHere": "aggiunta da questo ordine di lavoro",
  432. "fromCalendar": "dall'evento del calendario",
  433. "join": "Partecipa",
  434. "copy": "Copia link",
  435. "copied": "Link copiato",
  436. "remove": "Rimuovi",
  437. "removeTitle": "Rimuovere la videochiamata?",
  438. "removeDescription": "La riunione viene eliminata presso il fornitore. Chi ha già il link non potrà più partecipare.",
  439. "created": "Riunione creata. Il link è sull'ordine di lavoro.",
  440. "removed": "Riunione rimossa",
  441. "failed": "Qualcosa è andato storto",
  442. "shareHint": "Il cliente riceve questo link solo quando glielo invii. Copialo in un messaggio o aggiungilo a una notifica."
  443. }
  444. }