quotes.json 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. {
  2. "list": {
  3. "statusAll": "Todos",
  4. "statusAttention": "Requiere atención",
  5. "statusDraft": "Borrador",
  6. "statusSent": "Enviado",
  7. "statusAccepted": "Aceptado",
  8. "statusRejected": "Rechazado",
  9. "statusConverted": "Convertido",
  10. "searchPlaceholder": "Buscar presupuestos...",
  11. "newQuote": "Nuevo presupuesto",
  12. "columnQuoteNumber": "Presupuesto N.º",
  13. "columnTitle": "Título",
  14. "columnCustomer": "Cliente",
  15. "columnVehicle": "Vehículo",
  16. "columnStatus": "Estado",
  17. "columnDate": "Fecha",
  18. "columnTotal": "Total",
  19. "noQuotes": "No se encontraron presupuestos."
  20. },
  21. "page": {
  22. "quote": "Presupuesto",
  23. "save": "Guardar",
  24. "pdf": "PDF",
  25. "email": "Correo electrónico",
  26. "share": "Compartir",
  27. "delete": "Eliminar",
  28. "deleteTitle": "Eliminar presupuesto",
  29. "deleteDescription": "Este presupuesto se eliminará permanentemente.",
  30. "saved": "Presupuesto guardado",
  31. "unsavedChanges": "Cambios sin guardar",
  32. "saveFirst": "Por favor, guarde sus cambios primero",
  33. "failedSave": "Error al guardar el presupuesto",
  34. "failedDelete": "Error al eliminar",
  35. "failedPdf": "Error al generar el PDF",
  36. "selectVehicle": "Por favor seleccione un vehículo",
  37. "convertTitle": "Convertir presupuesto en orden de trabajo",
  38. "convertDescription": "Se creará un nuevo registro de servicio (orden de trabajo) a partir de este presupuesto. Seleccione un vehículo para la orden de trabajo.",
  39. "convert": "Convertir",
  40. "convertToWorkOrder": "Convertir en orden de trabajo",
  41. "cancel": "Cancelar",
  42. "failedConvert": "Error al convertir",
  43. "changesRequested": "Cambios solicitados",
  44. "quoteAccepted": "Presupuesto aceptado",
  45. "markResolved": "Marcar como resuelto",
  46. "responseResolved": "Respuesta del cliente resuelta",
  47. "entityLabel": "Presupuesto",
  48. "tabs": {
  49. "details": "Detalles",
  50. "images": "Imágenes",
  51. "documents": "Documentos"
  52. },
  53. "customFieldsInvalid": "Completa todos los campos personalizados obligatorios",
  54. "customFieldsSaveFailed": "No se pudieron guardar los campos personalizados"
  55. },
  56. "form": {
  57. "newQuote": "Nuevo presupuesto",
  58. "editQuote": "Editar presupuesto",
  59. "cancel": "Cancelar",
  60. "createQuote": "Crear presupuesto",
  61. "updateQuote": "Actualizar presupuesto",
  62. "created": "Presupuesto creado",
  63. "updated": "Presupuesto actualizado",
  64. "failedCreate": "Error al crear el presupuesto",
  65. "failedUpdate": "Error al actualizar el presupuesto"
  66. },
  67. "parts": {
  68. "title": "Repuestos",
  69. "addPart": "Agregar repuesto",
  70. "partNumber": "N.º de repuesto",
  71. "name": "Nombre",
  72. "namePlaceholder": "Nombre *",
  73. "qty": "Cant.",
  74. "unitPrice": "Precio unitario",
  75. "total": "Total",
  76. "subtotal": "Subtotal de repuestos: {amount}",
  77. "deleteRow": "Eliminar fila",
  78. "excludeFromTotal": "Excluir del total",
  79. "addFromInventory": "Del inventario",
  80. "unitCost": "Costo",
  81. "markupPercent": "Margen %",
  82. "nameMissingHint": "Las filas sin nombre de pieza no se guardan."
  83. },
  84. "labor": {
  85. "title": "Mano de obra",
  86. "addLabor": "Agregar mano de obra",
  87. "fromPresets": "Desde plantillas",
  88. "description": "Descripción",
  89. "descriptionPlaceholder": "Descripción *",
  90. "hours": "Horas",
  91. "rate": "Tarifa ({currency}/hr)",
  92. "total": "Total",
  93. "subtotal": "Subtotal de mano de obra: {amount}",
  94. "addService": "Agregar servicio",
  95. "qty": "Cant.",
  96. "qtyOrHours": "Unidad / Horas",
  97. "hourlyTag": "HR",
  98. "serviceTag": "SVC",
  99. "switchToHourlyHint": "Por horas: se calcula por las horas trabajadas (horas × tarifa/h). Haz clic para cambiar.",
  100. "switchToServiceHint": "Servicio: se cobra como tarifa fija por unidad. Haz clic para cambiar.",
  101. "deleteRow": "Eliminar fila",
  102. "excludeFromTotal": "Excluir del total"
  103. },
  104. "notes": {
  105. "title": "Notas",
  106. "public": "Pública",
  107. "internal": "Interna",
  108. "publicPlaceholder": "Descripción del presupuesto visible para el cliente...",
  109. "internalPlaceholder": "Notas internas (no visibles para el cliente)...",
  110. "publicHelper": "Se muestra en el documento del presupuesto",
  111. "internalHelper": "Solo visible para su equipo"
  112. },
  113. "sidebar": {
  114. "sharedLink": {
  115. "title": "Enlace compartido",
  116. "sharedOn": "Compartido el {date}",
  117. "notViewed": "Aún no visto",
  118. "viewedTimes": "Visto {count, plural, one {# vez} other {# veces}}",
  119. "lastViewed": "Último {date}",
  120. "copyLink": "Copiar enlace",
  121. "linkCopied": "Enlace copiado"
  122. }
  123. },
  124. "details": {
  125. "title": "Detalles del presupuesto",
  126. "titleLabel": "Título *",
  127. "titlePlaceholder": "Estimación de reparación de vehículo",
  128. "status": "Estado",
  129. "statusDraft": "Borrador",
  130. "statusSent": "Enviado",
  131. "statusAccepted": "Aceptado",
  132. "statusRejected": "Rechazado",
  133. "validUntil": "Válido hasta",
  134. "viewInspection": "Ver inspección vinculada",
  135. "vehicle": "Vehículo",
  136. "customer": "Cliente",
  137. "selectVehicle": "Seleccionar vehículo...",
  138. "selectCustomer": "Seleccionar cliente...",
  139. "none": "Ninguno",
  140. "clearVehicle": "Quitar vehículo",
  141. "clearCustomer": "Quitar cliente"
  142. },
  143. "totals": {
  144. "title": "Totales",
  145. "parts": "Repuestos",
  146. "labor": "Mano de obra",
  147. "subtotal": "Subtotal",
  148. "subtotalInclTax": "Subtotal (con impuesto)",
  149. "discount": "Descuento",
  150. "discountNone": "Ninguno",
  151. "discountPercentage": "Porcentaje",
  152. "discountFixed": "Fijo",
  153. "tax": "Impuesto",
  154. "taxIncluded": "Impuesto (incl.)",
  155. "total": "Total",
  156. "inclusiveModeHint": "Los precios por línea se introducen con impuesto incluido. Los totales muestran el desglose neto + impuesto."
  157. },
  158. "shareDialog": {
  159. "title": "Compartir presupuesto",
  160. "description": "Genere un enlace público que permita a cualquier persona ver y descargar este presupuesto sin iniciar sesión.",
  161. "notifyTitle": "Notificar a {name}",
  162. "email": "Correo electrónico",
  163. "noEmail": "(sin correo registrado)",
  164. "sms": "SMS",
  165. "noPhone": "(sin teléfono registrado)",
  166. "sendNotification": "Enviar notificación",
  167. "revokeLink": "Revocar enlace",
  168. "generateLink": "Generar enlace público",
  169. "emailSent": "Correo enviado",
  170. "failedEmail": "Error al enviar el correo",
  171. "smsSent": "SMS enviado",
  172. "failedSms": "Error al enviar el SMS",
  173. "copyLink": "Copiar enlace"
  174. },
  175. "images": {
  176. "title": "Imágenes del presupuesto",
  177. "dropzone": "Arrastre imágenes aquí o haga clic para explorar",
  178. "uploading": "Subiendo...",
  179. "formats": "JPG, PNG, WebP — máx. 10 MB cada una",
  180. "uploadingImages": "Subiendo imágenes...",
  181. "limitReached": "Límite de imágenes alcanzado ({count}/{max})",
  182. "upgradePrompt": "Actualice su plan para subir más imágenes.",
  183. "onlyAllowed": "Solo se permiten imágenes JPG, PNG y WebP. {names} omitidas.",
  184. "onlyUploading": "Solo se subirán {count} imagen(es) para no exceder el límite.",
  185. "uploadingCount": "Subiendo {count} imagen(es)...",
  186. "uploadedCount": "{count} imagen(es) subida(s)",
  187. "uploadFailed": "Error al subir",
  188. "failedUploadFile": "No se pudo subir {name}",
  189. "failedSaveFile": "No se pudo guardar {name}",
  190. "deleted": "Imagen eliminada",
  191. "failedDelete": "Error al eliminar la imagen",
  192. "failedUpdate": "Error al actualizar",
  193. "description": "Descripción...",
  194. "pdf": "PDF"
  195. },
  196. "documents": {
  197. "title": "Documentos",
  198. "dropzone": "Arrastre archivos aquí o haga clic para explorar",
  199. "uploading": "Subiendo...",
  200. "formats": "PDF, CSV, TXT — máx. 10 MB cada uno",
  201. "uploadingDocuments": "Subiendo documentos...",
  202. "limitReached": "Límite de documentos alcanzado ({count}/{max})",
  203. "upgradePrompt": "Actualice su plan para subir más.",
  204. "onlyUploading": "Solo se subirán {count} archivo(s) para no exceder el límite.",
  205. "uploadingCount": "Subiendo {count} archivo(s)...",
  206. "uploadedCount": "{count} archivo(s) subido(s)",
  207. "uploadFailed": "Error al subir",
  208. "failedUploadFile": "No se pudo subir {name}",
  209. "failedSaveFile": "No se pudo guardar {name}",
  210. "deleted": "Archivo eliminado",
  211. "failedDelete": "Error al eliminar el archivo",
  212. "failedUpdate": "Error al actualizar",
  213. "pdf": "PDF"
  214. },
  215. "statusLabels": {
  216. "draft": "Borrador",
  217. "sent": "Enviado",
  218. "accepted": "Aceptado",
  219. "rejected": "Rechazado",
  220. "expired": "Caducado",
  221. "converted": "Convertido",
  222. "changes_requested": "Cambios solicitados"
  223. }
  224. }